From c79ce881521513c893101f10842ea857976c1030 Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Sun, 15 May 2022 13:24:05 +0200 Subject: [PATCH 0001/1028] Fix a timing leak in ecp_mul_mxz() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The bit length of m is leaked through through timing in ecp_mul_mxz(). Initially found by Manuel Pégourié-Gonnard on ecp_mul_edxyz(), which has been inspired from ecp_mul_mxz(), during initial review of the EdDSA PR. See: https://github.com/Mbed-TLS/mbedtls/pull/3245#discussion_r490827996 Fix that by using grp->nbits + 1 instead, which anyway is very close to the length of m, which means there is no significant performance impact. Signed-off-by: Aurelien Jarno --- library/ecp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ecp.c b/library/ecp.c index 8b32caa38a..8943837b9f 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -2526,7 +2526,7 @@ static int ecp_mul_mxz( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, MBEDTLS_MPI_CHK( ecp_randomize_mxz( grp, &RP, f_rng, p_rng ) ); /* Loop invariant: R = result so far, RP = R + P */ - i = mbedtls_mpi_bitlen( m ); /* one past the (zero-based) most significant bit */ + i = grp->nbits + 1; /* one past the (zero-based) required msb for private keys */ while( i-- > 0 ) { b = mbedtls_mpi_get_bit( m, i ); From 8b2df74b125191bf3ae18cdb5ae5f62d15966f7b Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Fri, 8 Jul 2022 13:54:57 +0100 Subject: [PATCH 0002/1028] Add bignum test generation framework Adds python script for generation of bignum test cases, with initial classes for mpi_cmp_mpi test cases. Build scripts are updated to generate test data. Signed-off-by: Werner Lewis --- scripts/make_generated_files.bat | 1 + tests/CMakeLists.txt | 20 +- tests/Makefile | 33 ++- tests/scripts/check-generated-files.sh | 1 + tests/scripts/generate_bignum_tests.py | 269 +++++++++++++++++++++++++ 5 files changed, 313 insertions(+), 11 deletions(-) create mode 100755 tests/scripts/generate_bignum_tests.py diff --git a/scripts/make_generated_files.bat b/scripts/make_generated_files.bat index 662da984c7..e9d92758a6 100644 --- a/scripts/make_generated_files.bat +++ b/scripts/make_generated_files.bat @@ -10,4 +10,5 @@ perl scripts\generate_features.pl || exit /b 1 python scripts\generate_ssl_debug_helpers.py || exit /b 1 perl scripts\generate_visualc_files.pl || exit /b 1 python scripts\generate_psa_constants.py || exit /b 1 +python tests\scripts\generate_bignum_tests.py || exit /b 1 python tests\scripts\generate_psa_tests.py || exit /b 1 diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 6049b74739..edb513cd7c 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -17,6 +17,17 @@ endif() file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/suites) # Get base names for generated files (starting at "suites/") +execute_process( + COMMAND + ${MBEDTLS_PYTHON_EXECUTABLE} + ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_bignum_tests.py + --list-for-cmake + --directory suites + WORKING_DIRECTORY + ${CMAKE_CURRENT_SOURCE_DIR}/.. + OUTPUT_VARIABLE + bignum_generated_data_files) + execute_process( COMMAND ${MBEDTLS_PYTHON_EXECUTABLE} @@ -26,11 +37,11 @@ execute_process( WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/.. OUTPUT_VARIABLE - base_generated_data_files) + psa_generated_data_files) # Derive generated file paths in the build directory set(generated_data_files "") -foreach(file ${base_generated_data_files}) +foreach(file ${bignum_generated_data_files} ${psa_generated_data_files}) list(APPEND generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/${file}) endforeach() @@ -44,8 +55,13 @@ if(GEN_FILES) ${MBEDTLS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_psa_tests.py --directory ${CMAKE_CURRENT_BINARY_DIR}/suites + COMMAND + ${MBEDTLS_PYTHON_EXECUTABLE} + ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_bignum_tests.py + --directory ${CMAKE_CURRENT_BINARY_DIR}/suites DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_psa_tests.py + ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_bignum_tests.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/crypto_knowledge.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/macro_collector.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/psa_storage.py diff --git a/tests/Makefile b/tests/Makefile index 0d08f845d5..e9acca3fe5 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -66,23 +66,38 @@ PYTHON ?= $(shell if type python3 >/dev/null 2>/dev/null; then echo python3; els endif .PHONY: generated_files -GENERATED_DATA_FILES := $(patsubst tests/%,%,$(shell \ +GENERATED_BIGNUM_DATA_FILES := $(patsubst tests/%,%,$(shell \ + $(PYTHON) scripts/generate_bignum_tests.py --list || \ + echo FAILED \ +)) +ifeq ($(GENERATED_BIGNUM_DATA_FILES),FAILED) +$(error "$(PYTHON) scripts/generate_bignum_tests.py --list" failed) +endif +GENERATED_PSA_DATA_FILES := $(patsubst tests/%,%,$(shell \ $(PYTHON) scripts/generate_psa_tests.py --list || \ echo FAILED \ )) -ifeq ($(GENERATED_DATA_FILES),FAILED) +ifeq ($(GENERATED_PSA_DATA_FILES),FAILED) $(error "$(PYTHON) scripts/generate_psa_tests.py --list" failed) endif -GENERATED_FILES := $(GENERATED_DATA_FILES) +GENERATED_FILES := $(GENERATED_PSA_DATA_FILES) $(GENERATED_BIGNUM_DATA_FILES) generated_files: $(GENERATED_FILES) -# generate_psa_tests.py spends more time analyzing inputs than generating -# outputs. Its inputs are the same no matter which files are being generated. +# generate_bignum_tests.py and generate_psa_tests.py spend more time analyzing +# inputs than generating outputs. Its inputs are the same no matter which files +# are being generated. # It's rare not to want all the outputs. So always generate all of its outputs. # Use an intermediate phony dependency so that parallel builds don't run # a separate instance of the recipe for each output file. -.SECONDARY: generated_psa_test_data -$(GENERATED_DATA_FILES): generated_psa_test_data +.SECONDARY: generated_bignum_test_data generated_psa_test_data +$(GENERATED_BIGNUM_DATA_FILES): generated_bignum_test_data +generated_bignum_test_data: scripts/generate_bignum_tests.py +generated_bignum_test_data: ../scripts/mbedtls_dev/test_case.py +generated_bignum_test_data: + echo " Gen $(GENERATED_BIGNUM_DATA_FILES)" + $(PYTHON) scripts/generate_bignum_tests.py + +$(GENERATED_PSA_DATA_FILES): generated_psa_test_data generated_psa_test_data: scripts/generate_psa_tests.py generated_psa_test_data: ../scripts/mbedtls_dev/crypto_knowledge.py generated_psa_test_data: ../scripts/mbedtls_dev/macro_collector.py @@ -98,7 +113,7 @@ generated_psa_test_data: ../include/psa/crypto_values.h generated_psa_test_data: ../include/psa/crypto_extra.h generated_psa_test_data: suites/test_suite_psa_crypto_metadata.data generated_psa_test_data: - echo " Gen $(GENERATED_DATA_FILES) ..." + echo " Gen $(GENERATED_PSA_DATA_FILES) ..." $(PYTHON) scripts/generate_psa_tests.py # A test application is built for each suites/test_suite_*.data file. @@ -107,7 +122,7 @@ generated_psa_test_data: DATA_FILES := $(wildcard suites/test_suite_*.data) # Make sure that generated data files are included even if they don't # exist yet when the makefile is parsed. -DATA_FILES += $(filter-out $(DATA_FILES),$(GENERATED_DATA_FILES)) +DATA_FILES += $(filter-out $(DATA_FILES),$(GENERATED_FILES)) APPS = $(basename $(subst suites/,,$(DATA_FILES))) # Construct executable name by adding OS specific suffix $(EXEXT). diff --git a/tests/scripts/check-generated-files.sh b/tests/scripts/check-generated-files.sh index 1736f24d25..3006ec7bf3 100755 --- a/tests/scripts/check-generated-files.sh +++ b/tests/scripts/check-generated-files.sh @@ -126,4 +126,5 @@ check scripts/generate_ssl_debug_helpers.py library/ssl_debug_helpers_generated. # the step that creates or updates these files. check scripts/generate_visualc_files.pl visualc/VS2010 check scripts/generate_psa_constants.py programs/psa/psa_constant_names_generated.c +check tests/scripts/generate_bignum_tests.py $(tests/scripts/generate_bignum_tests.py --list) check tests/scripts/generate_psa_tests.py $(tests/scripts/generate_psa_tests.py --list) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py new file mode 100755 index 0000000000..c6e6a116ca --- /dev/null +++ b/tests/scripts/generate_bignum_tests.py @@ -0,0 +1,269 @@ +#!/usr/bin/env python3 +"""Generate test data for bignum functions. + +With no arguments, generate all test data. With non-option arguments, +generate only the specified files. +""" + +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse +import itertools +import os +import posixpath +import re +import sys +from typing import Iterable, Iterator, Optional, Tuple, TypeVar + +import scripts_path # pylint: disable=unused-import +from mbedtls_dev import build_tree +from mbedtls_dev import test_case + +T = TypeVar('T') #pylint: disable=invalid-name + +def hex_to_int(val): + return int(val, 16) if val else 0 + +def quote_str(val): + return "\"{}\"".format(val) + + +class BaseTarget: + """Base target for test case generation. + + Attributes: + count: Counter for test class. + desc: Short description of test case. + func: Function which the class generates tests for. + gen_file: File to write generated tests to. + title: Description of the test function/purpose. + """ + count = 0 + desc = None + func = None + gen_file = "" + title = None + + def __init__(self) -> None: + type(self).count += 1 + + @property + def args(self) -> Iterable[str]: + """Create list of arguments for test case.""" + return [] + + @property + def description(self) -> str: + """Create a numbered test description.""" + return "{} #{} {}".format(self.title, self.count, self.desc) + + def create_test_case(self) -> test_case.TestCase: + """Generate test case from the current object.""" + tc = test_case.TestCase() + tc.set_description(self.description) + tc.set_function(self.func) + tc.set_arguments(self.args) + + return tc + + @classmethod + def generate_tests(cls): + """Generate test cases for the target subclasses.""" + for subclass in cls.__subclasses__(): + yield from subclass.generate_tests() + + +class BignumTarget(BaseTarget): + """Target for bignum (mpi) test case generation.""" + gen_file = 'test_suite_mpi.generated' + + +class BignumOperation(BignumTarget): + """Common features for test cases covering bignum operations. + + Attributes: + symb: Symbol used for operation in description. + input_vals: List of values used to generate test case args. + input_cases: List of tuples containing test case inputs. This + can be used to implement specific pairs of inputs. + """ + symb = "" + input_vals = [ + "", "0", "7b", "-7b", + "0000000000000000123", "-0000000000000000123", + "1230000000000000000", "-1230000000000000000" + ] + input_cases = [] + + def __init__(self, val_l: str, val_r: str) -> None: + super().__init__() + + self.arg_l = val_l + self.arg_r = val_r + self.int_l = hex_to_int(val_l) + self.int_r = hex_to_int(val_r) + + @property + def args(self): + return [quote_str(self.arg_l), quote_str(self.arg_r), self.result] + + @property + def description(self): + desc = self.desc if self.desc else "{} {} {}".format( + self.val_desc(self.arg_l), + self.symb, + self.val_desc(self.arg_r) + ) + return "{} #{} {}".format(self.title, self.count, desc) + + @property + def result(self) -> Optional[str]: + return None + + @staticmethod + def val_desc(val) -> str: + """Generate description of the argument val.""" + if val == "": + return "0 (null)" + if val == "0": + return "0 (1 limb)" + + if val[0] == "-": + tmp = "negative" + val = val[1:] + else: + tmp = "positive" + if val[0] == "0": + tmp += " with leading zero limb" + elif len(val) > 10: + tmp = "large " + tmp + return tmp + + @classmethod + def get_value_pairs(cls) -> Iterator[Tuple[str, ...]]: + """Generate value pairs.""" + for pair in set( + list(itertools.combinations(cls.input_vals, 2)) + + cls.input_cases + ): + yield pair + + @classmethod + def generate_tests(cls) -> Iterator[test_case.TestCase]: + if cls.func is not None: + # Generate tests for the current class + for l_value, r_value in cls.get_value_pairs(): + cur_op = cls(l_value, r_value) + yield cur_op.create_test_case() + # Once current class completed, check descendants + yield from super().generate_tests() + + +class BignumCmp(BignumOperation): + """Target for bignum comparison test cases.""" + count = 0 + func = "mbedtls_mpi_cmp_mpi" + title = "MPI compare" + input_cases = [ + ("-2", "-3"), + ("-2", "-2"), + ("2b4", "2b5"), + ("2b5", "2b6") + ] + + def __init__(self, val_l, val_r): + super().__init__(val_l, val_r) + self._result = (self.int_l > self.int_r) - (self.int_l < self.int_r) + self.symb = ["<", "==", ">"][self._result + 1] + + @property + def result(self): + return str(self._result) + + +class TestGenerator: + """Generate test data.""" + + def __init__(self, options) -> None: + self.test_suite_directory = self.get_option(options, 'directory', + 'tests/suites') + + @staticmethod + def get_option(options, name: str, default: T) -> T: + value = getattr(options, name, None) + return default if value is None else value + + def filename_for(self, basename: str) -> str: + """The location of the data file with the specified base name.""" + return posixpath.join(self.test_suite_directory, basename + '.data') + + def write_test_data_file(self, basename: str, + test_cases: Iterable[test_case.TestCase]) -> None: + """Write the test cases to a .data file. + + The output file is ``basename + '.data'`` in the test suite directory. + """ + filename = self.filename_for(basename) + test_case.write_data_file(filename, test_cases) + + # Note that targets whose names contain 'test_format' have their content + # validated by `abi_check.py`. + TARGETS = { + subclass.gen_file: subclass.generate_tests for subclass in + BaseTarget.__subclasses__() + } + + def generate_target(self, name: str) -> None: + test_cases = self.TARGETS[name]() + self.write_test_data_file(name, test_cases) + +def main(args): + """Command line entry point.""" + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--list', action='store_true', + help='List available targets and exit') + parser.add_argument('--list-for-cmake', action='store_true', + help='Print \';\'-separated list of available targets and exit') + parser.add_argument('--directory', metavar='DIR', + help='Output directory (default: tests/suites)') + parser.add_argument('targets', nargs='*', metavar='TARGET', + help='Target file to generate (default: all; "-": none)') + options = parser.parse_args(args) + build_tree.chdir_to_root() + generator = TestGenerator(options) + if options.list: + for name in sorted(generator.TARGETS): + print(generator.filename_for(name)) + return + # List in a cmake list format (i.e. ';'-separated) + if options.list_for_cmake: + print(';'.join(generator.filename_for(name) + for name in sorted(generator.TARGETS)), end='') + return + if options.targets: + # Allow "-" as a special case so you can run + # ``generate_bignum_tests.py - $targets`` and it works uniformly whether + # ``$targets`` is empty or not. + options.targets = [os.path.basename(re.sub(r'\.data\Z', r'', target)) + for target in options.targets + if target != '-'] + else: + options.targets = sorted(generator.TARGETS) + for target in options.targets: + generator.generate_target(target) + +if __name__ == '__main__': + main(sys.argv[1:]) From 69a92ce497ea40de53b83a9fe60f6b7eaefe6994 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Mon, 18 Jul 2022 15:49:43 +0100 Subject: [PATCH 0003/1028] Add test generation for bignum cmp variant Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index c6e6a116ca..36d0d22904 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -194,6 +194,16 @@ class BignumCmp(BignumOperation): return str(self._result) +class BignumCmpAbs(BignumCmp): + """Target for abs comparison variant.""" + count = 0 + func = "mbedtls_mpi_cmp_abs" + title = "MPI compare (abs)" + + def __init__(self, val_l, val_r): + super().__init__(val_l.strip("-"), val_r.strip("-")) + + class TestGenerator: """Generate test data.""" From 86caf85ed23d70bfe64adc3f566fb9dd765b063c Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Mon, 18 Jul 2022 17:22:58 +0100 Subject: [PATCH 0004/1028] Add test case generation for bignum add Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 36d0d22904..e8db99d091 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -204,6 +204,27 @@ class BignumCmpAbs(BignumCmp): super().__init__(val_l.strip("-"), val_r.strip("-")) +class BignumAdd(BignumOperation): + """Target for bignum addition test cases.""" + count = 0 + func = "mbedtls_mpi_add_mpi" + title = "MPI add" + input_cases = list(itertools.combinations( + [ + "1c67967269c6", "9cde3", + "-1c67967269c6", "-9cde3", + ], 2 + )) + + def __init__(self, val_l, val_r): + super().__init__(val_l, val_r) + self.symb = "+" + + @property + def result(self): + return quote_str(hex(self.int_l + self.int_r).replace("0x", "", 1)) + + class TestGenerator: """Generate test data.""" From a51fe2b27e253a4e1cbc8d3b8e112be8d670118d Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 20 Jul 2022 13:35:22 +0100 Subject: [PATCH 0005/1028] Sort tests when generating cases Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index e8db99d091..76bce5e7bd 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -82,7 +82,7 @@ class BaseTarget: @classmethod def generate_tests(cls): """Generate test cases for the target subclasses.""" - for subclass in cls.__subclasses__(): + for subclass in sorted(cls.__subclasses__(), key=lambda c: c.__name__): yield from subclass.generate_tests() From b17ca8ad807330ca7b485152a814c86d5a24fa13 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 20 Jul 2022 13:35:53 +0100 Subject: [PATCH 0006/1028] Remove set() to preserve test case order Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 76bce5e7bd..72a10616f7 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -155,10 +155,9 @@ class BignumOperation(BignumTarget): @classmethod def get_value_pairs(cls) -> Iterator[Tuple[str, ...]]: """Generate value pairs.""" - for pair in set( - list(itertools.combinations(cls.input_vals, 2)) + - cls.input_cases - ): + for pair in list( + itertools.combinations(cls.input_vals, 2) + ) + cls.input_cases: yield pair @classmethod From c442f6a3d698770b8d05ec3f8c52120b97f898d4 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 20 Jul 2022 14:13:44 +0100 Subject: [PATCH 0007/1028] Fix type issues Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 72a10616f7..e15261500c 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -26,7 +26,7 @@ import os import posixpath import re import sys -from typing import Iterable, Iterator, Optional, Tuple, TypeVar +from typing import Iterable, Iterator, List, Optional, Tuple, TypeVar import scripts_path # pylint: disable=unused-import from mbedtls_dev import build_tree @@ -52,16 +52,16 @@ class BaseTarget: title: Description of the test function/purpose. """ count = 0 - desc = None - func = None + desc = "" + func = "" gen_file = "" - title = None + title = "" def __init__(self) -> None: type(self).count += 1 @property - def args(self) -> Iterable[str]: + def args(self) -> List[str]: """Create list of arguments for test case.""" return [] @@ -105,8 +105,8 @@ class BignumOperation(BignumTarget): "", "0", "7b", "-7b", "0000000000000000123", "-0000000000000000123", "1230000000000000000", "-1230000000000000000" - ] - input_cases = [] + ] # type: List[str] + input_cases = [] # type: List[Tuple[str, ...]] def __init__(self, val_l: str, val_r: str) -> None: super().__init__() From 265e051d06ccd4e1b55b4ff4faa3020154cc7cd8 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 20 Jul 2022 14:45:23 +0100 Subject: [PATCH 0008/1028] Remove is None from if statement Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index e15261500c..299b619e8c 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -162,7 +162,7 @@ class BignumOperation(BignumTarget): @classmethod def generate_tests(cls) -> Iterator[test_case.TestCase]: - if cls.func is not None: + if cls.func: # Generate tests for the current class for l_value, r_value in cls.get_value_pairs(): cur_op = cls(l_value, r_value) From 6a31396a13901f1106942e0d5c5066d71a46455b Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 20 Jul 2022 15:16:50 +0100 Subject: [PATCH 0009/1028] Fix incorrect indentation Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 299b619e8c..61f642b37b 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -156,7 +156,7 @@ class BignumOperation(BignumTarget): def get_value_pairs(cls) -> Iterator[Tuple[str, ...]]: """Generate value pairs.""" for pair in list( - itertools.combinations(cls.input_vals, 2) + itertools.combinations(cls.input_vals, 2) ) + cls.input_cases: yield pair From 75ef944da3c3d98bc9b3b6dd10245d6fc4e132a1 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Thu, 21 Jul 2022 16:57:22 +0100 Subject: [PATCH 0010/1028] Fix CMake change failures on Windows Signed-off-by: Werner Lewis --- tests/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index edb513cd7c..dcc5de0ffb 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -40,8 +40,9 @@ execute_process( psa_generated_data_files) # Derive generated file paths in the build directory +set(base_generated_data_files ${bignum_generated_data_files} ${psa_generated_data_files}) set(generated_data_files "") -foreach(file ${bignum_generated_data_files} ${psa_generated_data_files}) +foreach(file ${base_generated_data_files}) list(APPEND generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/${file}) endforeach() From c6d16362f3b14a6b4d829a184ff58a373aadddd7 Mon Sep 17 00:00:00 2001 From: Dominik Gschwind Date: Wed, 10 Aug 2022 16:27:14 +0200 Subject: [PATCH 0011/1028] Copy files instead of hard-linking on Windows Fixes an issue on Windows where when source and build directory are on different drives hard-linking to files or directory fails as it doesn't work across filesystem boundaries. Note that symlinking is also not possible because it requires administrator privileges on Windows. The solution copies the files using the built-in cmake `configure_file(src dest COPYONLY)` command. As this command only operates on files, if a directory is specified the files will be globbed recursively and through symlinks. Signed-off-by: Dominik Gschwind --- CMakeLists.txt | 35 +++++++++++-------------- ChangeLog.d/fix_hard_link_across_drives | 3 +++ 2 files changed, 18 insertions(+), 20 deletions(-) create mode 100644 ChangeLog.d/fix_hard_link_across_drives diff --git a/CMakeLists.txt b/CMakeLists.txt index f2741d4ab8..59a960a8b6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -120,38 +120,33 @@ endif() # Create a symbolic link from ${base_name} in the binary directory # to the corresponding path in the source directory. +# Note: Copies the file(s) on Windows. function(link_to_source base_name) - # Get OS dependent path to use in `execute_process` - if (CMAKE_HOST_WIN32) - #mklink is an internal command of cmd.exe it can only work with \ - string(REPLACE "/" "\\" link "${CMAKE_CURRENT_BINARY_DIR}/${base_name}") - string(REPLACE "/" "\\" target "${CMAKE_CURRENT_SOURCE_DIR}/${base_name}") - else() - set(link "${CMAKE_CURRENT_BINARY_DIR}/${base_name}") - set(target "${CMAKE_CURRENT_SOURCE_DIR}/${base_name}") - endif() + set(link "${CMAKE_CURRENT_BINARY_DIR}/${base_name}") + set(target "${CMAKE_CURRENT_SOURCE_DIR}/${base_name}") # Linking to non-existent file is not desirable. At best you will have a # dangling link, but when building in tree, this can create a symbolic link # to itself. if (EXISTS ${target} AND NOT EXISTS ${link}) if (CMAKE_HOST_UNIX) - set(command ln -s ${target} ${link}) + execute_process(COMMAND ln -s ${target} ${link} + RESULT_VARIABLE result + ERROR_VARIABLE output) + + if (NOT ${result} EQUAL 0) + message(FATAL_ERROR "Could not create symbolic link for: ${target} --> ${output}") + endif() else() if (IS_DIRECTORY ${target}) - set(command cmd.exe /c mklink /j ${link} ${target}) + file(GLOB_RECURSE files FOLLOW_SYMLINKS LIST_DIRECTORIES false RELATIVE ${target} "${target}/*") + foreach(file IN LISTS files) + configure_file("${target}/${file}" "${link}/${file}" COPYONLY) + endforeach(file) else() - set(command cmd.exe /c mklink /h ${link} ${target}) + configure_file(${target} ${link} COPYONLY) endif() endif() - - execute_process(COMMAND ${command} - RESULT_VARIABLE result - ERROR_VARIABLE output) - - if (NOT ${result} EQUAL 0) - message(FATAL_ERROR "Could not create symbolic link for: ${target} --> ${output}") - endif() endif() endfunction(link_to_source) diff --git a/ChangeLog.d/fix_hard_link_across_drives b/ChangeLog.d/fix_hard_link_across_drives new file mode 100644 index 0000000000..0c55c3038b --- /dev/null +++ b/ChangeLog.d/fix_hard_link_across_drives @@ -0,0 +1,3 @@ +Bugfix + * Fix a build issue on Windows where the source and build directory could not be on + different drives (#5751). From e54046c9c2eb463629b69e465d6bd288596346af Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Mon, 15 Aug 2022 11:43:56 +0100 Subject: [PATCH 0012/1028] Add test for ECP group metadata Test cases added to check curve parameters and information for each curve supported. Expected parameters are taken from references: SEC 2 for NIST, RFC 5639 for Brainpool, and RFC 7748 for curve25519/curve448. Signed-off-by: Werner Lewis --- tests/suites/test_suite_ecp.data | 52 +++++++++++++ tests/suites/test_suite_ecp.function | 106 +++++++++++++++++++++++++++ 2 files changed, 158 insertions(+) diff --git a/tests/suites/test_suite_ecp.data b/tests/suites/test_suite_ecp.data index 5332c07184..c190fbe8c4 100644 --- a/tests/suites/test_suite_ecp.data +++ b/tests/suites/test_suite_ecp.data @@ -309,6 +309,58 @@ ECP tls write-read point #2 depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED ecp_tls_write_read_point:MBEDTLS_ECP_DP_SECP521R1 +Check ECP group metadata #1 secp192k1 (SEC 2) +depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP192K1:192:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"fffffffffffffffffffffffffffffffffffffffeffffee37":"0":"3":"db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d":"9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d":"fffffffffffffffffffffffe26f2fc170f69466a74defd8d":18 + +Check ECP group metadata #2 secp192r1 (SEC 2) +depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP192R1:192:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"fffffffffffffffffffffffffffffffeffffffffffffffff":"":"64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1":"188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012":"7192b95ffc8da78631011ed6b24cdd573f977a11e794811":"ffffffffffffffffffffffff99def836146bc9b1b4d22831":19 + +Check ECP group metadata #3 secp224k1 (SEC 2) +depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP224K1:224:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"0":"5":"a1455b334df099df30fc28a169a467e9e47075a90f7e650eb6b7a45c":"7e089fed7fba344282cafbd6f7e319f7c0b0bd59e2ca4bdb556d61a5":"10000000000000000000000000001dce8d2ec6184caf0a971769fb1f7":20 + +Check ECP group metadata #4 secp224r1 (SEC 2) +depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP224R1:224:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"ffffffffffffffffffffffffffffffff000000000000000000000001":"":"b4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4":"b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21":"bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34":"ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d":21 + +Check ECP group metadata #5 secp256k1 (SEC 2) +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP256K1:256:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"0":"7":"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798":"483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8":"fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141":22 + +Check ECP group metadata #6 secp256r1 (SEC 2) +depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP256R1:256:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff":"":"5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b":"6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296":"4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5":"ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551":23 + +Check ECP group metadata #7 secp384r1 (SEC 2) +depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP384R1:384:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff":"":"b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef":"aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7":"3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f":"ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973":24 + +Check ECP group metadata #8 secp521r1 (SEC 2) +depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP521R1:521:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"":"51953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00":"c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66":"11839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650":"1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409":25 + +Check ECP group metadata #9 bp256r1 (RFC 5639) +depends_on:MBEDTLS_ECP_DP_BP256R1_ENABLED +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_BP256R1:256:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"a9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377":"7d5a0975fc2c3057eef67530417affe7fb8055c126dc5c6ce94a4b44f330b5d9":"26dc5c6ce94a4b44f330b5d9bbd77cbf958416295cf7e1ce6bccdc18ff8c07b6":"8bd2aeb9cb7e57cb2c4b482ffc81b7afb9de27e1e3bd23c23a4453bd9ace3262":"547ef835c3dac4fd97f8461a14611dc9c27745132ded8e545c1d54c72f046997":"a9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7":26 + +Check ECP group metadata #10 bp384r1 (RFC 5639) +depends_on:MBEDTLS_ECP_DP_BP384R1_ENABLED +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_BP384R1:384:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53":"7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826":"4a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11":"1d1c64f068cf45ffa2a63a81b7c13f6b8847a3e77ef14fe3db7fcafe0cbd10e8e826e03436d646aaef87b2e247d4af1e":"8abe1d7520f9c2a45cb1eb8e95cfd55262b70b29feec5864e19c054ff99129280e4646217791811142820341263c5315":"8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565":27 + +Check ECP group metadata #11 bp512r1 (RFC 5639) +depends_on:MBEDTLS_ECP_DP_BP521R1_ENABLED +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_BP512R1:512:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3":"7830a3318b603b89e2327145ac234cc594cbdd8d3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94ca":"3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94cadc083e67984050b75ebae5dd2809bd638016f723":"81aee4bdd82ed9645a21322e9c4c6a9385ed9f70b5d916c1b43b62eef4d0098eff3b1f78e2d0d48d50d1687b93b97d5f7c6d5047406a5e688b352209bcb9f822":"7dde385d566332ecc0eabfa9cf7822fdf209f70024a57b1aa000c55b881f8111b2dcde494a5f485e5bca4bd88a2763aed1ca2b2fa8f0540678cd1e0f3ad80892":"aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069":28 + +Check ECP group metadata #12 curve25519 (RFC 7748) +depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_CURVE25519:256:MBEDTLS_ECP_TYPE_MONTGOMERY:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"1db42":"":"9":"":"1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed":29 + +Check ECP group metadata #13 curve448 (RFC 7748) +depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_CURVE448:448:MBEDTLS_ECP_TYPE_MONTGOMERY:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"98aa":"":"5":"":"3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3":30 + ECP tls read group #1 (record too short) mbedtls_ecp_tls_read_group:"0313":MBEDTLS_ERR_ECP_BAD_INPUT_DATA:0:0 diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function index 65c7067d33..025f3f83a0 100644 --- a/tests/suites/test_suite_ecp.function +++ b/tests/suites/test_suite_ecp.function @@ -1,5 +1,7 @@ /* BEGIN_HEADER */ #include "mbedtls/ecp.h" +#include "mbedtls/ecdsa.h" +#include "mbedtls/ecdh.h" #include "ecp_invasive.h" @@ -788,6 +790,110 @@ exit: } /* END_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_ECDH_C:MBEDTLS_ECDSA_C */ +void mbedtls_ecp_group_metadata( int id, int bit_size, int crv_type, + char* P, char* A, char* B, + char* G_x, char* G_y, char* N, + int tls_id ) +{ + mbedtls_ecp_group grp, grp_read, grp_cpy; + const mbedtls_ecp_group_id *g_id; + const mbedtls_ecp_curve_info *crv, *crv_tls_id, *crv_name; + + mbedtls_mpi exp_P, exp_A, exp_B, exp_G_x, exp_G_y, exp_N; + + unsigned char buf[3], ecparameters[3] = { 3, 0, tls_id }; + const unsigned char *vbuf = buf; + size_t olen; + + mbedtls_ecp_group_init( &grp ); + mbedtls_ecp_group_init( &grp_read ); + mbedtls_ecp_group_init( &grp_cpy ); + + mbedtls_mpi_init( &exp_P ); + mbedtls_mpi_init( &exp_A ); + mbedtls_mpi_init( &exp_B ); + mbedtls_mpi_init( &exp_G_x ); + mbedtls_mpi_init( &exp_G_y ); + mbedtls_mpi_init( &exp_N ); + + // Read expected parameters + TEST_EQUAL( mbedtls_test_read_mpi( &exp_P, P ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &exp_A, A ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &exp_G_x, G_x ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &exp_N, N ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &exp_B, B ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &exp_G_y, G_y ), 0 ); + + // Load group + TEST_EQUAL( mbedtls_ecp_group_load( &grp, id ), 0 ); + + // Compare group with expected parameters + // A is NULL for SECPxxxR1 curves + // B and G_y are NULL for curve25519 and curve448 + TEST_EQUAL( mbedtls_mpi_cmp_mpi( &exp_P, &grp.P ), 0 ); + if( *A != 0 ) + TEST_EQUAL( mbedtls_mpi_cmp_mpi( &exp_A, &grp.A ), 0 ); + if( *B != 0 ) + TEST_EQUAL( mbedtls_mpi_cmp_mpi( &exp_B, &grp.B ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_mpi( &exp_G_x, &grp.G.X ), 0 ); + if( *G_y != 0 ) + TEST_EQUAL( mbedtls_mpi_cmp_mpi( &exp_G_y, &grp.G.Y ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_mpi( &exp_N, &grp.N ), 0 ); + + // Load curve info and compare with known values + crv = mbedtls_ecp_curve_info_from_grp_id( id ); + TEST_EQUAL( crv->grp_id, id ); + TEST_EQUAL( crv->bit_size, bit_size ); + TEST_EQUAL( crv->tls_id, tls_id ); + + // Load curve from TLS ID and name, and compare IDs + crv_tls_id = mbedtls_ecp_curve_info_from_tls_id( crv->tls_id ); + crv_name = mbedtls_ecp_curve_info_from_name( crv->name ); + TEST_EQUAL( crv_tls_id->grp_id, id ); + TEST_EQUAL( crv_name->grp_id, id ); + + // Validate write_group against test data, read result + TEST_EQUAL( mbedtls_ecp_tls_write_group( &grp, &olen, + buf, sizeof( buf ) ), + 0 ); + TEST_EQUAL( mbedtls_test_hexcmp( buf, ecparameters, olen, + sizeof( ecparameters ) ), + 0 ); + TEST_EQUAL( mbedtls_ecp_tls_read_group( &grp_read, &vbuf, olen ), + 0 ); + TEST_EQUAL( grp_read.id, id ); + + // Check curve type, and if it can be used for ECDH/ECDSA + TEST_EQUAL( mbedtls_ecp_get_type( &grp ), crv_type ); + TEST_EQUAL( mbedtls_ecdh_can_do( id ), 1 ); + TEST_EQUAL( mbedtls_ecdsa_can_do( id ), + crv_type == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ); + + // Copy group and compare with original + TEST_EQUAL( mbedtls_ecp_group_copy( &grp_cpy, &grp ), 0 ); + TEST_EQUAL( mbedtls_ecp_group_cmp( &grp, &grp_cpy ), 0 ); + + // Check curve is in curve list and group ID list + for( crv = mbedtls_ecp_curve_list( ); + crv->grp_id != MBEDTLS_ECP_DP_NONE && + crv->grp_id != (unsigned) id; + crv++ ); + TEST_EQUAL( crv->grp_id, id ); + for( g_id = mbedtls_ecp_grp_id_list( ); + *g_id != MBEDTLS_ECP_DP_NONE && *g_id != (unsigned) id; + g_id++ ); + TEST_EQUAL( *g_id, (unsigned) id ); + +exit: + mbedtls_ecp_group_free( &grp ); mbedtls_ecp_group_free( &grp_cpy ); + mbedtls_ecp_group_free( &grp_read ); + mbedtls_mpi_free( &exp_P ); mbedtls_mpi_free( &exp_A ); + mbedtls_mpi_free( &exp_B ); mbedtls_mpi_free( &exp_G_x ); + mbedtls_mpi_free( &exp_G_y ); mbedtls_mpi_free( &exp_N ); +} +/* END_CASE */ + /* BEGIN_CASE */ void mbedtls_ecp_check_privkey( int id, char * key_hex, int ret ) { From 1fdb8e8c17b761b1008ffb76e4c879594e0ac5e2 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 10 Aug 2022 11:32:07 +0100 Subject: [PATCH 0013/1028] Add unit tests for ECDSA with invalid public key Add tests for a case in ECDSA signing where an invalid public key is accepted in signature verification. Test data taken from the OSS-fuzz issue, and additional generated with python-ecdsa. Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.data | 60 ++++++++++++++++++++++++ tests/suites/test_suite_ecdsa.function | 65 ++++++++++++++++++++++++++ 2 files changed, 125 insertions(+) diff --git a/tests/suites/test_suite_ecdsa.data b/tests/suites/test_suite_ecdsa.data index 9bb35c54a0..7ed6fe25b4 100644 --- a/tests/suites/test_suite_ecdsa.data +++ b/tests/suites/test_suite_ecdsa.data @@ -361,3 +361,63 @@ ecdsa_prim_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0":"0151518F1AF0F563517EDD5485 ECDSA private parameter greater than n p521 depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED ecdsa_prim_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0065FDA3409451DCAB0A0EAD45495112A3D813C17BFD34BDF8C1209D7DF5849120597779060A7FF9D704ADF78B570FFAD6F062E95C7E0C5D5481C5B153B48B375FA11":"0151518F1AF0F563517EDD5485190DF95A4BF57B5CBA4CF2A9A3F6474725A35F7AFE0A6DDEB8BEDBCD6A197E592D40188901CECD650699C9B5E456AEA5ADD19052A8":"006F3B142EA1BFFF7E2837AD44C9E4FF6D2D34C73184BBAD90026DD5E6E85317D9DF45CAD7803C6C20035B2F3FF63AFF4E1BA64D1C077577DA3F4286C58F0AEAE643":"00C1C2B305419F5A41344D7E4359933D734096F556197A9B244342B8B62F46F9373778F9DE6B6497B1EF825FF24F42F9B4A4BD7382CFC3378A540B1B7F0C1B956C2F":"DDAF35A193617ABACC417349AE20413112E6FA4E89A97EA20A9EEEE64B55D39A2192992A274FC1A836BA3C23A3FEEBBD454D4423643CE80E2A9AC94FA54CA49F":"0154FD3836AF92D0DCA57DD5341D3053988534FDE8318FC6AAAAB68E2E6F4339B19F2F281A7E0B22C269D93CF8794A9278880ED7DBB8D9362CAEACEE544320552251":"017705A7030290D1CEB605A9A1BB03FF9CDD521E87A696EC926C8C10C8362DF4975367101F67D1CF9BCCBF2F3D239534FA509E70AAC851AE01AAC68D62F866472660":MBEDTLS_ERR_ECP_INVALID_KEY + +ECDSA verify invalid public key, zero bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":0:0:MBEDTLS_ERR_ECP_INVALID_KEY + +ECDSA verify invalid public key, one byte of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":1:0:MBEDTLS_ERR_ECP_INVALID_KEY + +ECDSA verify invalid public key, 32 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY + +ECDSA verify invalid public key, 32 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"12345":"1":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY + +ECDSA verify invalid public key, 32 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"12345":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY + +ECDSA verify invalid public key, 32 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"12345":32:0:MBEDTLS_ERR_ECP_INVALID_KEY + +ECDSA verify valid public key, invalid signature, 0 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":0:1:MBEDTLS_ERR_ECP_VERIFY_FAILED + +ECDSA verify valid public key, invalid signature, 1 byte of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":1:1:MBEDTLS_ERR_ECP_VERIFY_FAILED + +ECDSA verify valid public key, invalid signature, 32 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141":"12":32:1:MBEDTLS_ERR_ECP_VERIFY_FAILED + +ECDSA verify valid public key, valid/incorrect signature, 0 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":0:1:MBEDTLS_ERR_ECP_VERIFY_FAILED + +ECDSA verify valid public key, valid/incorrect signature, 1 byte of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":1:1:MBEDTLS_ERR_ECP_VERIFY_FAILED + +ECDSA verify valid public key, valid/incorrect signature, 32 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":32:1:MBEDTLS_ERR_ECP_VERIFY_FAILED + +ECDSA verify valid public key, correct signature, 0 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":0:1:0 + +ECDSA verify valid public key, correct signature, 1 byte of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":1:1:0 + +ECDSA verify valid public key, correct signature, 32 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":32:1:0 \ No newline at end of file diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function index a8b1e45a2e..947890a268 100644 --- a/tests/suites/test_suite_ecdsa.function +++ b/tests/suites/test_suite_ecdsa.function @@ -466,3 +466,68 @@ exit: mbedtls_ecdsa_free( &ctx ); } /* END_CASE */ + +/* BEGIN_CASE */ +void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, int len, int key_is_valid, int expected ) +{ + uint8_t FUZZ_DATA[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 136, 251, 46, 240, 45, 45, 27, 62, 60, 0, 0, 0, 32, 32, 32, 32, 124, 102, 235, 242, 220, 21, 68, 255, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 121, 1, 0, 0, 0, 91, 1, 0, 0, 0, 151, 1, 0, 0, 0, 32, 32, 255, 32, 32, 150, 14, 240, 249, 163, 174, 190, 100, 0, 0, 0, 0, 32, 32, 32, 32, 51, 48, 79, 125, 229, 21, 223, 118, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + + mbedtls_ecdsa_context ctx; + mbedtls_mpi sig_r, sig_s; + const mbedtls_ecp_curve_info *curve_info; + + mbedtls_ecdsa_init( &ctx ); + mbedtls_mpi_init( &sig_r ); + mbedtls_mpi_init( &sig_s ); + + /* Prepare ECP group context */ + curve_info = mbedtls_ecp_curve_info_from_grp_id( grp_id ); + TEST_ASSERT( curve_info != NULL ); + TEST_EQUAL( mbedtls_ecp_group_load( &ctx.grp, curve_info->grp_id ), 0 ); + + /* Prepare public key */ + TEST_EQUAL( mbedtls_mpi_read_string( &ctx.Q.X, 16, x ), 0 ); + TEST_EQUAL( mbedtls_mpi_read_string( &ctx.Q.Y, 16, y ), 0 ); + TEST_EQUAL( mbedtls_mpi_lset( &ctx.Q.Z, 1 ), 0 ); + + /* Prepare signature R & S */ + TEST_EQUAL( mbedtls_mpi_read_string( &sig_r, 16, r ), 0 ); + TEST_EQUAL( mbedtls_mpi_read_string( &sig_s, 16, s ), 0 ); + + /* Test whether public key has expected validity */ + TEST_EQUAL( mbedtls_ecp_check_pubkey( &ctx.grp, &ctx.Q ), key_is_valid ? 0 : MBEDTLS_ERR_ECP_INVALID_KEY ); + + /* Verification */ + int result = mbedtls_ecdsa_verify( &ctx.grp, FUZZ_DATA, ( size_t ) len, &ctx.Q, &sig_r, &sig_s ); + + TEST_EQUAL( result, expected ); + + if ( !key_is_valid ) { + /* Invalid public key must always fail */ + TEST_ASSERT( result != 0 ); + } + +exit: + mbedtls_ecdsa_free( &ctx ); + mbedtls_mpi_free( &sig_r ); + mbedtls_mpi_free( &sig_s ); +} +/* END_CASE */ \ No newline at end of file From c947751a5f51191d0229e7e2e5e421eb30221dc9 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 10 Aug 2022 11:26:24 +0100 Subject: [PATCH 0014/1028] Fix ECDSA signature verification edge-case For R and S equal to 1, ensure the public key is checked for validity. Signed-off-by: Dave Rodgman --- library/ecp.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/library/ecp.c b/library/ecp.c index 009be61fc5..74c02323f3 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -2666,14 +2666,17 @@ static int mbedtls_ecp_mul_shortcuts( mbedtls_ecp_group *grp, if( mbedtls_mpi_cmp_int( m, 0 ) == 0 ) { + MBEDTLS_MPI_CHK( mbedtls_ecp_check_pubkey( grp, P ) ); MBEDTLS_MPI_CHK( mbedtls_ecp_set_zero( R ) ); } else if( mbedtls_mpi_cmp_int( m, 1 ) == 0 ) { + MBEDTLS_MPI_CHK( mbedtls_ecp_check_pubkey( grp, P ) ); MBEDTLS_MPI_CHK( mbedtls_ecp_copy( R, P ) ); } else if( mbedtls_mpi_cmp_int( m, -1 ) == 0 ) { + MBEDTLS_MPI_CHK( mbedtls_ecp_check_pubkey( grp, P ) ); MBEDTLS_MPI_CHK( mbedtls_ecp_copy( R, P ) ); MPI_ECP_NEG( &R->Y ); } From 56cfb31dd1703cc6f607f32f5944601f7c028bee Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 10 Aug 2022 12:21:23 +0100 Subject: [PATCH 0015/1028] Add missing newlines Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.data | 2 +- tests/suites/test_suite_ecdsa.function | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_ecdsa.data b/tests/suites/test_suite_ecdsa.data index 7ed6fe25b4..4d59d02f64 100644 --- a/tests/suites/test_suite_ecdsa.data +++ b/tests/suites/test_suite_ecdsa.data @@ -420,4 +420,4 @@ ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2 ECDSA verify valid public key, correct signature, 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":32:1:0 \ No newline at end of file +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":32:1:0 diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function index 947890a268..8f2f6b1a88 100644 --- a/tests/suites/test_suite_ecdsa.function +++ b/tests/suites/test_suite_ecdsa.function @@ -530,4 +530,4 @@ exit: mbedtls_mpi_free( &sig_r ); mbedtls_mpi_free( &sig_s ); } -/* END_CASE */ \ No newline at end of file +/* END_CASE */ From 66bcadb47dce2281be4b62617daf04e1de3c6e14 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 10 Aug 2022 13:31:44 +0100 Subject: [PATCH 0016/1028] Fix duplicate test names Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.data | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_ecdsa.data b/tests/suites/test_suite_ecdsa.data index 4d59d02f64..9044d84731 100644 --- a/tests/suites/test_suite_ecdsa.data +++ b/tests/suites/test_suite_ecdsa.data @@ -370,19 +370,19 @@ ECDSA verify invalid public key, one byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":1:0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key, 32 bytes of data +ECDSA verify invalid public key (a), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key, 32 bytes of data +ECDSA verify invalid public key (b), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"12345":"1":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key, 32 bytes of data +ECDSA verify invalid public key (c), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"12345":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key, 32 bytes of data +ECDSA verify invalid public key (d), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"12345":32:0:MBEDTLS_ERR_ECP_INVALID_KEY From d106308c83597a3c2f891bad4480a81c49c30b91 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 10 Aug 2022 13:41:11 +0100 Subject: [PATCH 0017/1028] Changelog for ECDSA verify fix Signed-off-by: Dave Rodgman --- ChangeLog.d/ecdsa-verify-fixes.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 ChangeLog.d/ecdsa-verify-fixes.txt diff --git a/ChangeLog.d/ecdsa-verify-fixes.txt b/ChangeLog.d/ecdsa-verify-fixes.txt new file mode 100644 index 0000000000..6dbd4702e5 --- /dev/null +++ b/ChangeLog.d/ecdsa-verify-fixes.txt @@ -0,0 +1,5 @@ +Bugfix + * Fix ECDSA verification, where it was failing to validate the public key + for signatures where R == 1 and S == 1. This bug meant that it was + possible to verify such signatures with an invalid public key, in some + cases. From b44c72861faa175d3da65bd555b0dfeec6509e82 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 11 Aug 2022 13:47:35 +0100 Subject: [PATCH 0018/1028] Minor tidy-up Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.function | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function index 8f2f6b1a88..760890b455 100644 --- a/tests/suites/test_suite_ecdsa.function +++ b/tests/suites/test_suite_ecdsa.function @@ -504,19 +504,19 @@ void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, int len, TEST_EQUAL( mbedtls_ecp_group_load( &ctx.grp, curve_info->grp_id ), 0 ); /* Prepare public key */ - TEST_EQUAL( mbedtls_mpi_read_string( &ctx.Q.X, 16, x ), 0 ); - TEST_EQUAL( mbedtls_mpi_read_string( &ctx.Q.Y, 16, y ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &ctx.Q.X, x ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &ctx.Q.Y, y ), 0 ); TEST_EQUAL( mbedtls_mpi_lset( &ctx.Q.Z, 1 ), 0 ); /* Prepare signature R & S */ - TEST_EQUAL( mbedtls_mpi_read_string( &sig_r, 16, r ), 0 ); - TEST_EQUAL( mbedtls_mpi_read_string( &sig_s, 16, s ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &sig_r, r ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &sig_s, s ), 0 ); /* Test whether public key has expected validity */ TEST_EQUAL( mbedtls_ecp_check_pubkey( &ctx.grp, &ctx.Q ), key_is_valid ? 0 : MBEDTLS_ERR_ECP_INVALID_KEY ); /* Verification */ - int result = mbedtls_ecdsa_verify( &ctx.grp, FUZZ_DATA, ( size_t ) len, &ctx.Q, &sig_r, &sig_s ); + int result = mbedtls_ecdsa_verify( &ctx.grp, FUZZ_DATA, (size_t)len, &ctx.Q, &sig_r, &sig_s ); TEST_EQUAL( result, expected ); From cd57a61fec176011cb9e010856a4a3ffc9938c71 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 18 Aug 2022 15:48:46 +0100 Subject: [PATCH 0019/1028] Paramaterise ecdsa_verify test case more clearly Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.data | 30 +++++++++++++------------- tests/suites/test_suite_ecdsa.function | 24 ++------------------- 2 files changed, 17 insertions(+), 37 deletions(-) diff --git a/tests/suites/test_suite_ecdsa.data b/tests/suites/test_suite_ecdsa.data index 9044d84731..d59355e17a 100644 --- a/tests/suites/test_suite_ecdsa.data +++ b/tests/suites/test_suite_ecdsa.data @@ -364,60 +364,60 @@ ecdsa_prim_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0065FDA3409451DCAB0A0EAD454951 ECDSA verify invalid public key, zero bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":0:0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"":0:MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid public key, one byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":1:0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"00":0:MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid public key (a), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid public key (b), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"12345":"1":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"12345":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid public key (c), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"12345":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"12345":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid public key (d), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"12345":32:0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"12345":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify valid public key, invalid signature, 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":0:1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"":1:MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid public key, invalid signature, 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":1:1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"00":1:MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid public key, invalid signature, 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141":"12":32:1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141":"12":"0000000000000000000000000000000000000000000000000000000000000000":1:MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid public key, valid/incorrect signature, 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":0:1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"":1:MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid public key, valid/incorrect signature, 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":1:1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"00":1:MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid public key, valid/incorrect signature, 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":32:1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"0000000000000000000000000000000000000000000000000000000000000000":1:MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid public key, correct signature, 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":0:1:0 +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"":1:0 ECDSA verify valid public key, correct signature, 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":1:1:0 +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"00":1:0 ECDSA verify valid public key, correct signature, 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":32:1:0 +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"0000000000000000000000000000000000000000000000000000000000000000":1:0 diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function index 760890b455..50a547d39d 100644 --- a/tests/suites/test_suite_ecdsa.function +++ b/tests/suites/test_suite_ecdsa.function @@ -468,28 +468,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, int len, int key_is_valid, int expected ) +void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, data_t * content, int key_is_valid, int expected ) { - uint8_t FUZZ_DATA[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 136, 251, 46, 240, 45, 45, 27, 62, 60, 0, 0, 0, 32, 32, 32, 32, 124, 102, 235, 242, 220, 21, 68, 255, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 121, 1, 0, 0, 0, 91, 1, 0, 0, 0, 151, 1, 0, 0, 0, 32, 32, 255, 32, 32, 150, 14, 240, 249, 163, 174, 190, 100, 0, 0, 0, 0, 32, 32, 32, 32, 51, 48, 79, 125, 229, 21, 223, 118, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; - mbedtls_ecdsa_context ctx; mbedtls_mpi sig_r, sig_s; const mbedtls_ecp_curve_info *curve_info; @@ -516,7 +496,7 @@ void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, int len, TEST_EQUAL( mbedtls_ecp_check_pubkey( &ctx.grp, &ctx.Q ), key_is_valid ? 0 : MBEDTLS_ERR_ECP_INVALID_KEY ); /* Verification */ - int result = mbedtls_ecdsa_verify( &ctx.grp, FUZZ_DATA, (size_t)len, &ctx.Q, &sig_r, &sig_s ); + int result = mbedtls_ecdsa_verify( &ctx.grp, content->x, content->len, &ctx.Q, &sig_r, &sig_s ); TEST_EQUAL( result, expected ); From b153c6c31be425220526f5b5c42b3a943c21a0e2 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 18 Aug 2022 16:05:49 +0100 Subject: [PATCH 0020/1028] Improve test descriptions Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.data | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/tests/suites/test_suite_ecdsa.data b/tests/suites/test_suite_ecdsa.data index d59355e17a..f07483da13 100644 --- a/tests/suites/test_suite_ecdsa.data +++ b/tests/suites/test_suite_ecdsa.data @@ -362,62 +362,62 @@ ECDSA private parameter greater than n p521 depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED ecdsa_prim_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0065FDA3409451DCAB0A0EAD45495112A3D813C17BFD34BDF8C1209D7DF5849120597779060A7FF9D704ADF78B570FFAD6F062E95C7E0C5D5481C5B153B48B375FA11":"0151518F1AF0F563517EDD5485190DF95A4BF57B5CBA4CF2A9A3F6474725A35F7AFE0A6DDEB8BEDBCD6A197E592D40188901CECD650699C9B5E456AEA5ADD19052A8":"006F3B142EA1BFFF7E2837AD44C9E4FF6D2D34C73184BBAD90026DD5E6E85317D9DF45CAD7803C6C20035B2F3FF63AFF4E1BA64D1C077577DA3F4286C58F0AEAE643":"00C1C2B305419F5A41344D7E4359933D734096F556197A9B244342B8B62F46F9373778F9DE6B6497B1EF825FF24F42F9B4A4BD7382CFC3378A540B1B7F0C1B956C2F":"DDAF35A193617ABACC417349AE20413112E6FA4E89A97EA20A9EEEE64B55D39A2192992A274FC1A836BA3C23A3FEEBBD454D4423643CE80E2A9AC94FA54CA49F":"0154FD3836AF92D0DCA57DD5341D3053988534FDE8318FC6AAAAB68E2E6F4339B19F2F281A7E0B22C269D93CF8794A9278880ED7DBB8D9362CAEACEE544320552251":"017705A7030290D1CEB605A9A1BB03FF9CDD521E87A696EC926C8C10C8362DF4975367101F67D1CF9BCCBF2F3D239534FA509E70AAC851AE01AAC68D62F866472660":MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key, zero bytes of data +ECDSA verify invalid pub key (not on curve), zero bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"":0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key, one byte of data +ECDSA verify invalid pub key (not on curve), one byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"00":0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key (a), 32 bytes of data +ECDSA verify invalid pub key (not on curve), r=1, s=1 depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key (b), 32 bytes of data +ECDSA verify invalid pub key (also not on curve), r=1, s=1 depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"12345":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key (c), 32 bytes of data +ECDSA verify invalid pub key (not on curve), r=12345, s=1 depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"12345":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key (d), 32 bytes of data +ECDSA verify invalid pub key (not on curve), r=1, s=12345 depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"12345":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify valid public key, invalid signature, 0 bytes of data +ECDSA verify valid pub key, invalid sig (r=0), 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"":1:MBEDTLS_ERR_ECP_VERIFY_FAILED -ECDSA verify valid public key, invalid signature, 1 byte of data +ECDSA verify valid pub key, invalid sig (r=0), 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"00":1:MBEDTLS_ERR_ECP_VERIFY_FAILED -ECDSA verify valid public key, invalid signature, 32 bytes of data +ECDSA verify valid pub key, invalid sig (r>n-1), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141":"12":"0000000000000000000000000000000000000000000000000000000000000000":1:MBEDTLS_ERR_ECP_VERIFY_FAILED -ECDSA verify valid public key, valid/incorrect signature, 0 bytes of data +ECDSA verify valid pub key, valid/incorrect sig, 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"":1:MBEDTLS_ERR_ECP_VERIFY_FAILED -ECDSA verify valid public key, valid/incorrect signature, 1 byte of data +ECDSA verify valid pub key, valid/incorrect sig, 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"00":1:MBEDTLS_ERR_ECP_VERIFY_FAILED -ECDSA verify valid public key, valid/incorrect signature, 32 bytes of data +ECDSA verify valid pub key, valid/incorrect sig, 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"0000000000000000000000000000000000000000000000000000000000000000":1:MBEDTLS_ERR_ECP_VERIFY_FAILED -ECDSA verify valid public key, correct signature, 0 bytes of data +ECDSA verify valid public key, correct sig, 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"":1:0 -ECDSA verify valid public key, correct signature, 1 byte of data +ECDSA verify valid pub key, correct sig, 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"00":1:0 -ECDSA verify valid public key, correct signature, 32 bytes of data +ECDSA verify valid pub key, correct sig, 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"0000000000000000000000000000000000000000000000000000000000000000":1:0 From 34ff6a7a31d088a1f47d993de3774576105b5fbe Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 19 Aug 2022 11:08:07 +0100 Subject: [PATCH 0021/1028] Correct documentation for mbedtls_ecdsa_verify Signed-off-by: Dave Rodgman --- include/mbedtls/ecdsa.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/mbedtls/ecdsa.h b/include/mbedtls/ecdsa.h index 71b73eee54..967f07b9b5 100644 --- a/include/mbedtls/ecdsa.h +++ b/include/mbedtls/ecdsa.h @@ -245,10 +245,8 @@ int mbedtls_ecdsa_sign_det_ext( mbedtls_ecp_group *grp, mbedtls_mpi *r, * This must be initialized. * * \return \c 0 on success. - * \return #MBEDTLS_ERR_ECP_BAD_INPUT_DATA if the signature - * is invalid. * \return An \c MBEDTLS_ERR_ECP_XXX or \c MBEDTLS_MPI_XXX - * error code on failure for any other reason. + * error code on failure. */ int mbedtls_ecdsa_verify( mbedtls_ecp_group *grp, const unsigned char *buf, size_t blen, From 5d7a235efe9acf6b591e94aac650e0f5e22efc6c Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 19 Aug 2022 11:26:32 +0100 Subject: [PATCH 0022/1028] Simplify test for ecdsa_verify Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.data | 30 +++++++++++++------------- tests/suites/test_suite_ecdsa.function | 11 +++------- 2 files changed, 18 insertions(+), 23 deletions(-) diff --git a/tests/suites/test_suite_ecdsa.data b/tests/suites/test_suite_ecdsa.data index f07483da13..50411e9b17 100644 --- a/tests/suites/test_suite_ecdsa.data +++ b/tests/suites/test_suite_ecdsa.data @@ -364,60 +364,60 @@ ecdsa_prim_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0065FDA3409451DCAB0A0EAD454951 ECDSA verify invalid pub key (not on curve), zero bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"":0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"":MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid pub key (not on curve), one byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"00":0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"00":MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid pub key (not on curve), r=1, s=1 depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid pub key (also not on curve), r=1, s=1 depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"12345":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"12345":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid pub key (not on curve), r=12345, s=1 depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"12345":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"12345":"1":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid pub key (not on curve), r=1, s=12345 depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"12345":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"12345":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify valid pub key, invalid sig (r=0), 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"":1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"":MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid pub key, invalid sig (r=0), 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"00":1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"00":MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid pub key, invalid sig (r>n-1), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141":"12":"0000000000000000000000000000000000000000000000000000000000000000":1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141":"12":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid pub key, valid/incorrect sig, 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"":1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"":MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid pub key, valid/incorrect sig, 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"00":1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"00":MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid pub key, valid/incorrect sig, 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"0000000000000000000000000000000000000000000000000000000000000000":1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid public key, correct sig, 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"":1:0 +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"":0 ECDSA verify valid pub key, correct sig, 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"00":1:0 +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"00":0 ECDSA verify valid pub key, correct sig, 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"0000000000000000000000000000000000000000000000000000000000000000":1:0 +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"0000000000000000000000000000000000000000000000000000000000000000":0 diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function index 50a547d39d..b1a1611fb4 100644 --- a/tests/suites/test_suite_ecdsa.function +++ b/tests/suites/test_suite_ecdsa.function @@ -468,7 +468,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, data_t * content, int key_is_valid, int expected ) +void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, data_t * content, int expected ) { mbedtls_ecdsa_context ctx; mbedtls_mpi sig_r, sig_s; @@ -493,18 +493,13 @@ void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, data_t * TEST_EQUAL( mbedtls_test_read_mpi( &sig_s, s ), 0 ); /* Test whether public key has expected validity */ - TEST_EQUAL( mbedtls_ecp_check_pubkey( &ctx.grp, &ctx.Q ), key_is_valid ? 0 : MBEDTLS_ERR_ECP_INVALID_KEY ); + TEST_EQUAL( mbedtls_ecp_check_pubkey( &ctx.grp, &ctx.Q ), + expected == MBEDTLS_ERR_ECP_INVALID_KEY ? MBEDTLS_ERR_ECP_INVALID_KEY : 0 ); /* Verification */ int result = mbedtls_ecdsa_verify( &ctx.grp, content->x, content->len, &ctx.Q, &sig_r, &sig_s ); TEST_EQUAL( result, expected ); - - if ( !key_is_valid ) { - /* Invalid public key must always fail */ - TEST_ASSERT( result != 0 ); - } - exit: mbedtls_ecdsa_free( &ctx ); mbedtls_mpi_free( &sig_r ); From 82d3f1e8240748a133e1f9ff72861f37a8f0f1de Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 23 Aug 2022 12:01:39 +0100 Subject: [PATCH 0023/1028] Remove bignum_internal.h, moving contents to bignum_core.h Signed-off-by: Tom Cosgrove --- library/bignum.c | 1 - library/bignum_core.h | 21 ++++++++++++++++ library/bignum_internal.h | 50 --------------------------------------- library/ecp_curves.c | 5 +--- 4 files changed, 22 insertions(+), 55 deletions(-) delete mode 100644 library/bignum_internal.h diff --git a/library/bignum.c b/library/bignum.c index acf620f9a2..1c5ef8cb13 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -38,7 +38,6 @@ #if defined(MBEDTLS_BIGNUM_C) #include "mbedtls/bignum.h" -#include "bignum_internal.h" #include "bignum_core.h" #include "bn_mul.h" #include "mbedtls/platform_util.h" diff --git a/library/bignum_core.h b/library/bignum_core.h index 434f52b5ee..1e159a7e9a 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -155,4 +155,25 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, #define GET_BYTE( X, i ) \ ( ( (X)[(i) / ciL] >> ( ( (i) % ciL ) * 8 ) ) & 0xff ) +/** Perform a known-size multiply accumulate operation + * + * Add \p b * \p s to \p d. + * + * \param[in,out] d The pointer to the (little-endian) array + * representing the bignum to accumulate onto. + * \param d_len The number of limbs of \p d. This must be + * at least \p s_len. + * \param[in] s The pointer to the (little-endian) array + * representing the bignum to multiply with. + * This may be the same as \p d. Otherwise, + * it must be disjoint from \p d. + * \param s_len The number of limbs of \p s. + * \param b A scalar to multiply with. + * + * \return c The carry at the end of the operation. + */ +mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len , + const mbedtls_mpi_uint *s, size_t s_len, + mbedtls_mpi_uint b ); + #endif /* MBEDTLS_BIGNUM_CORE_H */ diff --git a/library/bignum_internal.h b/library/bignum_internal.h deleted file mode 100644 index 8677dcf1f0..0000000000 --- a/library/bignum_internal.h +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Internal bignum functions - * - * Copyright The Mbed TLS Contributors - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef MBEDTLS_BIGNUM_INTERNAL_H -#define MBEDTLS_BIGNUM_INTERNAL_H - -#include "common.h" - -#if defined(MBEDTLS_BIGNUM_C) -#include "mbedtls/bignum.h" -#endif - -/** Perform a known-size multiply accumulate operation - * - * Add \p b * \p s to \p d. - * - * \param[in,out] d The pointer to the (little-endian) array - * representing the bignum to accumulate onto. - * \param d_len The number of limbs of \p d. This must be - * at least \p s_len. - * \param[in] s The pointer to the (little-endian) array - * representing the bignum to multiply with. - * This may be the same as \p d. Otherwise, - * it must be disjoint from \p d. - * \param s_len The number of limbs of \p s. - * \param b A scalar to multiply with. - * - * \return c The carry at the end of the operation. - */ -mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len , - const mbedtls_mpi_uint *s, size_t s_len, - mbedtls_mpi_uint b ); - -#endif /* MBEDTLS_BIGNUM_INTERNAL_H */ diff --git a/library/ecp_curves.c b/library/ecp_curves.c index 51956cd5b7..7b142370dd 100644 --- a/library/ecp_curves.c +++ b/library/ecp_curves.c @@ -26,7 +26,7 @@ #include "mbedtls/error.h" #include "bn_mul.h" -#include "bignum_internal.h" +#include "bignum_core.h" #include "ecp_invasive.h" #include @@ -4969,9 +4969,6 @@ static inline void sub32( uint32_t *dst, uint32_t src, signed char *carry ) #define ADD( j ) add32( &cur, A( j ), &c ); #define SUB( j ) sub32( &cur, A( j ), &c ); -#define ciL (sizeof(mbedtls_mpi_uint)) /* chars in limb */ -#define biL (ciL << 3) /* bits in limb */ - /* * Helpers for the main 'loop' */ From 71f4b0dda6d9440187044df65e737b58db72b20e Mon Sep 17 00:00:00 2001 From: Hanno Becker Date: Tue, 23 Aug 2022 12:09:35 +0100 Subject: [PATCH 0024/1028] Add bignum_new.c starting with MPI_CORE(montmul) for Montgomery multiplication Signed-off-by: Tom Cosgrove --- include/mbedtls/mbedtls_config.h | 1 + library/CMakeLists.txt | 1 + library/Makefile | 1 + library/bignum_core.h | 101 ++++++++++++++++++++++++- library/bignum_new.c | 126 +++++++++++++++++++++++++++++++ 5 files changed, 229 insertions(+), 1 deletion(-) create mode 100644 library/bignum_new.c diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index ad0e5992a3..cfa5e46e80 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2016,6 +2016,7 @@ * library/bignum_core.c * library/bignum_mod.c * library/bignum_mod_raw.c + * library/bignum_new.c * Caller: library/dhm.c * library/ecp.c * library/ecdsa.c diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index 378cfb4570..7e28df0df7 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -21,6 +21,7 @@ set(src_crypto bignum_core.c bignum_mod.c bignum_mod_raw.c + bignum_new.c camellia.c ccm.c chacha20.c diff --git a/library/Makefile b/library/Makefile index 85cea6b08d..041b5afbd1 100644 --- a/library/Makefile +++ b/library/Makefile @@ -86,6 +86,7 @@ OBJS_CRYPTO= \ bignum_core.o \ bignum_mod.o \ bignum_mod_raw.o \ + bignum_new.o \ camellia.o \ ccm.o \ chacha20.o \ diff --git a/library/bignum_core.h b/library/bignum_core.h index 1e159a7e9a..62d0151e5f 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -172,8 +172,107 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, * * \return c The carry at the end of the operation. */ -mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len , +mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len, const mbedtls_mpi_uint *s, size_t s_len, mbedtls_mpi_uint b ); +#define MPI_CORE(func) mbedtls_mpi_core_ ## func ## _minimal + +/** Montgomery multiplication: X = A * B * R^-1 mod N (HAC 14.36) + * + * \param[out] X The destination MPI, as a big endian array of length \p n. + * On successful completion, X contains the result of + * the multiplication A * B * R^-1 mod N where + * R = (2^ciL)^n. + * \param[in] A Big endian presentation of first operand. + * Must have exactly \p n limbs. + * \param[in] B Big endian presentation of second operand. + * \param[in] B_len The number of limbs in \p B. + * \param[in] N Big endian presentation of the modulus. + * This must be odd and have exactly \p n limbs. + * \param[in] n The number of limbs in \p X, \p A, \p N. + * \param mm The Montgomery constant for \p N: -N^-1 mod 2^ciL. + * This can be calculated by `mpi_montg_init()`. + * \param[in,out] T Temporary storage of size at least 2*n+1 limbs. + * Its initial content is unused and + * its final content is indeterminate. + */ +void MPI_CORE(montmul)( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, size_t B_len, + const mbedtls_mpi_uint *N, size_t n, + mbedtls_mpi_uint mm, mbedtls_mpi_uint *T ); + +/** + * \brief Perform a known-size multiply accumulate operation + * + * Add \p b * \p s to \p d. + * + * \param[in,out] d The pointer to the (little-endian) array + * representing the bignum to accumulate onto. + * \param d_len The number of limbs of \p d. This must be + * at least \p s_len. + * \param[in] s The pointer to the (little-endian) array + * representing the bignum to multiply with. + * This may be the same as \p d. Otherwise, + * it must be disjoint from \p d. + * \param s_len The number of limbs of \p s. + * \param b A scalar to multiply with. + * + * \return c The carry at the end of the operation. + */ +mbedtls_mpi_uint MPI_CORE(mla)( mbedtls_mpi_uint *d, size_t d_len , + const mbedtls_mpi_uint *s, size_t s_len, + mbedtls_mpi_uint b ); + +/** + * \brief Subtract two known-size large unsigned integers, returning the borrow. + * + * Calculate l - r where l and r have the same size. + * This function operates modulo (2^ciL)^n and returns the carry + * (1 if there was a wraparound, i.e. if `l < r`, and 0 otherwise). + * + * d may be aliased to l or r. + * + * \param[out] d The result of the subtraction. + * \param[in] l The left operand. + * \param[in] r The right operand. + * \param n Number of limbs of \p d, \p l and \p r. + * + * \return 1 if `l < r`. + * 0 if `l >= r`. + */ +mbedtls_mpi_uint MPI_CORE(sub)( mbedtls_mpi_uint *d, + const mbedtls_mpi_uint *l, + const mbedtls_mpi_uint *r, + size_t n ); + +/** + * \brief Constant-time conditional addition of two known-size large unsigned + * integers, returning the carry. + * + * Functionally equivalent to + * + * ``` + * if( cond ) + * d += r; + * return carry; + * ``` + * + * \param[in,out] d The pointer to the (little-endian) array + * representing the bignum to accumulate onto. + * \param[in] r The pointer to the (little-endian) array + * representing the bignum to conditionally add + * to \p d. This must be disjoint from \p d. + * \param n Number of limbs of \p d and \p r. + * \param cond Condition bit dictating whether addition should + * happen or not. This must be \c 0 or \c 1. + * + * \return 1 if `d + cond*r >= (2^{ciL})^n`, 0 otherwise. + */ +mbedtls_mpi_uint MPI_CORE(add_if)( mbedtls_mpi_uint *d, + const mbedtls_mpi_uint *r, + size_t n, + unsigned cond ); + #endif /* MBEDTLS_BIGNUM_CORE_H */ diff --git a/library/bignum_new.c b/library/bignum_new.c new file mode 100644 index 0000000000..29c1212665 --- /dev/null +++ b/library/bignum_new.c @@ -0,0 +1,126 @@ +/* + * Multi-precision integer library + * + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "common.h" + +#if defined(MBEDTLS_BIGNUM_C) + +#include "mbedtls/bignum.h" +#include "bignum_core.h" +#include "bn_mul.h" + +#include + +void MPI_CORE(montmul)( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t B_len, + const mbedtls_mpi_uint *N, + size_t n, + mbedtls_mpi_uint mm, + mbedtls_mpi_uint *T ) +{ + memset( T, 0, (2*n+1)*ciL ); + + for( size_t i = 0; i < n; i++, T++ ) + { + mbedtls_mpi_uint u0, u1; + /* T = (T + u0*B + u1*N) / 2^biL */ + u0 = A[i]; + u1 = ( T[0] + u0 * B[0] ) * mm; + + (void) MPI_CORE(mla)( T, n + 2, B, B_len, u0 ); + (void) MPI_CORE(mla)( T, n + 2, N, n, u1 ); + } + + mbedtls_mpi_uint carry, borrow, fixup; + + carry = T[n]; + borrow = MPI_CORE(sub)( X, T, N, n ); + fixup = carry < borrow; + (void) MPI_CORE(add_if)( X, N, n, fixup ); +} + +mbedtls_mpi_uint MPI_CORE(mla)( mbedtls_mpi_uint *d, size_t d_len, + const mbedtls_mpi_uint *s, size_t s_len, + mbedtls_mpi_uint b ) +{ + mbedtls_mpi_uint c = 0; /* carry */ + if( d_len < s_len ) + s_len = d_len; + size_t excess_len = d_len - s_len; + size_t steps_x8 = s_len / 8; + size_t steps_x1 = s_len & 7; + + while( steps_x8-- ) + { + MULADDC_X8_INIT + MULADDC_X8_CORE + MULADDC_X8_STOP + } + + while( steps_x1-- ) + { + MULADDC_X1_INIT + MULADDC_X1_CORE + MULADDC_X1_STOP + } + + while( excess_len-- ) + { + *d += c; c = ( *d < c ); d++; + } + + return( c ); +} + +mbedtls_mpi_uint MPI_CORE(sub)( mbedtls_mpi_uint *d, + const mbedtls_mpi_uint *l, + const mbedtls_mpi_uint *r, + size_t n ) +{ + mbedtls_mpi_uint c = 0, t, z; + + for( size_t i = 0; i < n; i++ ) + { + z = ( l[i] < c ); t = l[i] - c; + c = ( t < r[i] ) + z; d[i] = t - r[i]; + } + + return( c ); +} + +mbedtls_mpi_uint MPI_CORE(add_if)( mbedtls_mpi_uint *d, + const mbedtls_mpi_uint *r, + size_t n, + unsigned cond ) +{ + mbedtls_mpi_uint c = 0, t; + for( size_t i = 0; i < n; i++ ) + { + mbedtls_mpi_uint add = cond * r[i]; + t = c; + t += d[i]; c = ( t < d[i] ); + t += add; c += ( t < add ); + d[i] = t; + } + return( c ); +} + +#endif /* MBEDTLS_BIGNUM_C */ From 90c426b9325d5958573029e920b5b49d0e590296 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 23 Aug 2022 16:15:19 +0100 Subject: [PATCH 0025/1028] Tidy up, removing MPI_CORE(), and using the new mbedtls_mpi_core_mla() Signed-off-by: Tom Cosgrove --- library/bignum.c | 32 -------------- library/bignum_core.h | 99 +++++++++++++++++-------------------------- library/bignum_new.c | 46 ++++++++++---------- 3 files changed, 61 insertions(+), 116 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 1c5ef8cb13..59b10654e3 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1156,38 +1156,6 @@ int mbedtls_mpi_sub_int( mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_sint return( mbedtls_mpi_sub_mpi( X, A, &B ) ); } -mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len, - const mbedtls_mpi_uint *s, size_t s_len, - mbedtls_mpi_uint b ) -{ - mbedtls_mpi_uint c = 0; /* carry */ - size_t excess_len = d_len - s_len; - - size_t steps_x8 = s_len / 8; - size_t steps_x1 = s_len & 7; - - while( steps_x8-- ) - { - MULADDC_X8_INIT - MULADDC_X8_CORE - MULADDC_X8_STOP - } - - while( steps_x1-- ) - { - MULADDC_X1_INIT - MULADDC_X1_CORE - MULADDC_X1_STOP - } - - while( excess_len-- ) - { - *d += c; c = ( *d < c ); d++; - } - - return( c ); -} - /* * Baseline multiplication: X = A * B (HAC 14.12) */ diff --git a/library/bignum_core.h b/library/bignum_core.h index 62d0151e5f..77364670a0 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -155,9 +155,35 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, #define GET_BYTE( X, i ) \ ( ( (X)[(i) / ciL] >> ( ( (i) % ciL ) * 8 ) ) & 0xff ) -/** Perform a known-size multiply accumulate operation +/** + * \brief Montgomery multiplication: X = A * B * R^-1 mod N (HAC 14.36) * - * Add \p b * \p s to \p d. + * \param[out] X The destination MPI, as a little-endian array of + * length \p n. + * On successful completion, X contains the result of + * the multiplication A * B * R^-1 mod N where + * R = (2^ciL)^n. + * \param[in] A Little-endian presentation of first operand. + * Must have exactly \p n limbs. + * \param[in] B Little-endian presentation of second operand. + * \param[in] B_len The number of limbs in \p B. + * \param[in] N Little-endian presentation of the modulus. + * This must be odd and have exactly \p n limbs. + * \param[in] n The number of limbs in \p X, \p A, \p N. + * \param mm The Montgomery constant for \p N: -N^-1 mod 2^ciL. + * This can be calculated by `mpi_montg_init()`. + * \param[in,out] T Temporary storage of size at least 2*n+1 limbs. + * Its initial content is unused and + * its final content is indeterminate. + */ +void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, size_t B_len, + const mbedtls_mpi_uint *N, size_t n, + mbedtls_mpi_uint mm, mbedtls_mpi_uint *T ); + +/** + * \brief Perform a known-size multiply accumulate operation: d += b * s * * \param[in,out] d The pointer to the (little-endian) array * representing the bignum to accumulate onto. @@ -176,55 +202,6 @@ mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len, const mbedtls_mpi_uint *s, size_t s_len, mbedtls_mpi_uint b ); -#define MPI_CORE(func) mbedtls_mpi_core_ ## func ## _minimal - -/** Montgomery multiplication: X = A * B * R^-1 mod N (HAC 14.36) - * - * \param[out] X The destination MPI, as a big endian array of length \p n. - * On successful completion, X contains the result of - * the multiplication A * B * R^-1 mod N where - * R = (2^ciL)^n. - * \param[in] A Big endian presentation of first operand. - * Must have exactly \p n limbs. - * \param[in] B Big endian presentation of second operand. - * \param[in] B_len The number of limbs in \p B. - * \param[in] N Big endian presentation of the modulus. - * This must be odd and have exactly \p n limbs. - * \param[in] n The number of limbs in \p X, \p A, \p N. - * \param mm The Montgomery constant for \p N: -N^-1 mod 2^ciL. - * This can be calculated by `mpi_montg_init()`. - * \param[in,out] T Temporary storage of size at least 2*n+1 limbs. - * Its initial content is unused and - * its final content is indeterminate. - */ -void MPI_CORE(montmul)( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, size_t B_len, - const mbedtls_mpi_uint *N, size_t n, - mbedtls_mpi_uint mm, mbedtls_mpi_uint *T ); - -/** - * \brief Perform a known-size multiply accumulate operation - * - * Add \p b * \p s to \p d. - * - * \param[in,out] d The pointer to the (little-endian) array - * representing the bignum to accumulate onto. - * \param d_len The number of limbs of \p d. This must be - * at least \p s_len. - * \param[in] s The pointer to the (little-endian) array - * representing the bignum to multiply with. - * This may be the same as \p d. Otherwise, - * it must be disjoint from \p d. - * \param s_len The number of limbs of \p s. - * \param b A scalar to multiply with. - * - * \return c The carry at the end of the operation. - */ -mbedtls_mpi_uint MPI_CORE(mla)( mbedtls_mpi_uint *d, size_t d_len , - const mbedtls_mpi_uint *s, size_t s_len, - mbedtls_mpi_uint b ); - /** * \brief Subtract two known-size large unsigned integers, returning the borrow. * @@ -235,17 +212,17 @@ mbedtls_mpi_uint MPI_CORE(mla)( mbedtls_mpi_uint *d, size_t d_len , * d may be aliased to l or r. * * \param[out] d The result of the subtraction. - * \param[in] l The left operand. - * \param[in] r The right operand. + * \param[in] l Little-endian presentation of left operand. + * \param[in] r Little-endian presentation of right operand. * \param n Number of limbs of \p d, \p l and \p r. * * \return 1 if `l < r`. * 0 if `l >= r`. */ -mbedtls_mpi_uint MPI_CORE(sub)( mbedtls_mpi_uint *d, - const mbedtls_mpi_uint *l, - const mbedtls_mpi_uint *r, - size_t n ); +mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *d, + const mbedtls_mpi_uint *l, + const mbedtls_mpi_uint *r, + size_t n ); /** * \brief Constant-time conditional addition of two known-size large unsigned @@ -270,9 +247,9 @@ mbedtls_mpi_uint MPI_CORE(sub)( mbedtls_mpi_uint *d, * * \return 1 if `d + cond*r >= (2^{ciL})^n`, 0 otherwise. */ -mbedtls_mpi_uint MPI_CORE(add_if)( mbedtls_mpi_uint *d, - const mbedtls_mpi_uint *r, - size_t n, - unsigned cond ); +mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *d, + const mbedtls_mpi_uint *r, + size_t n, + unsigned cond ); #endif /* MBEDTLS_BIGNUM_CORE_H */ diff --git a/library/bignum_new.c b/library/bignum_new.c index 29c1212665..1c7523ead7 100644 --- a/library/bignum_new.c +++ b/library/bignum_new.c @@ -27,14 +27,14 @@ #include -void MPI_CORE(montmul)( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - size_t B_len, - const mbedtls_mpi_uint *N, - size_t n, - mbedtls_mpi_uint mm, - mbedtls_mpi_uint *T ) +void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t B_len, + const mbedtls_mpi_uint *N, + size_t n, + mbedtls_mpi_uint mm, + mbedtls_mpi_uint *T ) { memset( T, 0, (2*n+1)*ciL ); @@ -45,21 +45,21 @@ void MPI_CORE(montmul)( mbedtls_mpi_uint *X, u0 = A[i]; u1 = ( T[0] + u0 * B[0] ) * mm; - (void) MPI_CORE(mla)( T, n + 2, B, B_len, u0 ); - (void) MPI_CORE(mla)( T, n + 2, N, n, u1 ); + (void) mbedtls_mpi_core_mla( T, n + 2, B, B_len, u0 ); + (void) mbedtls_mpi_core_mla( T, n + 2, N, n, u1 ); } mbedtls_mpi_uint carry, borrow, fixup; carry = T[n]; - borrow = MPI_CORE(sub)( X, T, N, n ); + borrow = mbedtls_mpi_core_sub( X, T, N, n ); fixup = carry < borrow; - (void) MPI_CORE(add_if)( X, N, n, fixup ); + (void) mbedtls_mpi_core_add_if( X, N, n, fixup ); } -mbedtls_mpi_uint MPI_CORE(mla)( mbedtls_mpi_uint *d, size_t d_len, - const mbedtls_mpi_uint *s, size_t s_len, - mbedtls_mpi_uint b ) +mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len, + const mbedtls_mpi_uint *s, size_t s_len, + mbedtls_mpi_uint b ) { mbedtls_mpi_uint c = 0; /* carry */ if( d_len < s_len ) @@ -90,10 +90,10 @@ mbedtls_mpi_uint MPI_CORE(mla)( mbedtls_mpi_uint *d, size_t d_len, return( c ); } -mbedtls_mpi_uint MPI_CORE(sub)( mbedtls_mpi_uint *d, - const mbedtls_mpi_uint *l, - const mbedtls_mpi_uint *r, - size_t n ) +mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *d, + const mbedtls_mpi_uint *l, + const mbedtls_mpi_uint *r, + size_t n ) { mbedtls_mpi_uint c = 0, t, z; @@ -106,10 +106,10 @@ mbedtls_mpi_uint MPI_CORE(sub)( mbedtls_mpi_uint *d, return( c ); } -mbedtls_mpi_uint MPI_CORE(add_if)( mbedtls_mpi_uint *d, - const mbedtls_mpi_uint *r, - size_t n, - unsigned cond ) +mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *d, + const mbedtls_mpi_uint *r, + size_t n, + unsigned cond ) { mbedtls_mpi_uint c = 0, t; for( size_t i = 0; i < n; i++ ) From 7e655f7b4ca2905811f1ca66a15fd3a0c530c90c Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 20 Jul 2022 14:02:11 +0100 Subject: [PATCH 0026/1028] Use new mbedtls_mpi_core_sub() instead of old static mpi_sub_hlp() Signed-off-by: Tom Cosgrove --- library/bignum.c | 38 ++------------------------------------ 1 file changed, 2 insertions(+), 36 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 59b10654e3..931d34df44 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -961,40 +961,6 @@ cleanup: return( ret ); } -/** - * Helper for mbedtls_mpi subtraction. - * - * Calculate l - r where l and r have the same size. - * This function operates modulo (2^ciL)^n and returns the carry - * (1 if there was a wraparound, i.e. if `l < r`, and 0 otherwise). - * - * d may be aliased to l or r. - * - * \param n Number of limbs of \p d, \p l and \p r. - * \param[out] d The result of the subtraction. - * \param[in] l The left operand. - * \param[in] r The right operand. - * - * \return 1 if `l < r`. - * 0 if `l >= r`. - */ -static mbedtls_mpi_uint mpi_sub_hlp( size_t n, - mbedtls_mpi_uint *d, - const mbedtls_mpi_uint *l, - const mbedtls_mpi_uint *r ) -{ - size_t i; - mbedtls_mpi_uint c = 0, t, z; - - for( i = 0; i < n; i++ ) - { - z = ( l[i] < c ); t = l[i] - c; - c = ( t < r[i] ) + z; d[i] = t - r[i]; - } - - return( c ); -} - /* * Unsigned subtraction: X = |A| - |B| (HAC 14.9, 14.10) */ @@ -1027,7 +993,7 @@ int mbedtls_mpi_sub_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi if( X->n > A->n ) memset( X->p + A->n, 0, ( X->n - A->n ) * ciL ); - carry = mpi_sub_hlp( n, X->p, A->p, B->p ); + carry = mbedtls_mpi_core_sub( X->p, A->p, B->p, n ); if( carry != 0 ) { /* Propagate the carry to the first nonzero limb of X. */ @@ -1660,7 +1626,7 @@ static void mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B, const mbedtls_mpi * do the calculation without using conditional tests. */ /* Set d to d0 + (2^biL)^n - N where d0 is the current value of d. */ d[n] += 1; - d[n] -= mpi_sub_hlp( n, d, d, N->p ); + d[n] -= mbedtls_mpi_core_sub( d, d, N->p, n ); /* If d0 < N then d < (2^biL)^n * so d[n] == 0 and we want to keep A as it is. * If d0 >= N then d >= (2^biL)^n, and d <= (2^biL)^n + N < 2 * (2^biL)^n From 268f96b0ef462e410ffde39694f4ab92a70cda6f Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Sun, 31 Jul 2022 22:30:16 +0100 Subject: [PATCH 0027/1028] Fix Windows builds, which were getting "possible loss of data" "bignum_new.c(61,52): warning C4244: 'function': conversion from 'mbedtls_mpi_uint' to 'unsigned int', possible loss of data" Signed-off-by: Tom Cosgrove --- library/bignum_new.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/library/bignum_new.c b/library/bignum_new.c index 1c7523ead7..024348ad4a 100644 --- a/library/bignum_new.c +++ b/library/bignum_new.c @@ -49,12 +49,11 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, (void) mbedtls_mpi_core_mla( T, n + 2, N, n, u1 ); } - mbedtls_mpi_uint carry, borrow, fixup; + mbedtls_mpi_uint carry, borrow; carry = T[n]; borrow = mbedtls_mpi_core_sub( X, T, N, n ); - fixup = carry < borrow; - (void) mbedtls_mpi_core_add_if( X, N, n, fixup ); + (void) mbedtls_mpi_core_add_if( X, N, n, ( carry < borrow ) ); } mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len, From 0cc78658c3728a318478e6777cfd683b7df62e29 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 23 Aug 2022 16:26:52 +0100 Subject: [PATCH 0028/1028] Add unit tests for the new function mbedtls_mpi_core_add_if() in bignum_new.c The test cases use the following MPI values. The .data file only includes those (a, b) values where a <= b, and gives the sum unconditionally; the test code exercises a >= b and cond == 0 using these values. The .data file gives two values for the carry out, which are for when sizeof(mbedtls_mpi_uint) == 4 or 8. 0 1 3 f fe ff 100 ff00 fffe ffff 10000 fffffffe ffffffff 100000000 1f7f7f7f7f7f7f 8000000000000000 fefefefefefefefe fffffffffffffffe ffffffffffffffff 10000000000000000 1234567890abcdef0 fffffffffffffffffefefefefefefefe fffffffffffffffffffffffffffffffe ffffffffffffffffffffffffffffffff 100000000000000000000000000000000 1234567890abcdef01234567890abcdef0 fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 10000000000000000000000000000000000000000000000000000000000000000 1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b The lines in the .data file were generated by the following script ``` #!/usr/bin/env perl # # mpi-test-core-add-if.pl - generate MPI tests in Perl for mbedtls_mpi_core_add_if() # use strict; use warnings; use Math::BigInt; use sort 'stable'; my @add_mpis = qw( 0 1 3 f fe ff 100 ff00 fffe ffff 10000 fffffffe ffffffff 100000000 1f7f7f7f7f7f7f 8000000000000000 fefefefefefefefe fffffffffffffffe ffffffffffffffff 10000000000000000 1234567890abcdef0 fffffffffffffffffefefefefefefefe fffffffffffffffffffffffffffffffe ffffffffffffffffffffffffffffffff 100000000000000000000000000000000 1234567890abcdef01234567890abcdef0 fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 10000000000000000000000000000000000000000000000000000000000000000 1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b ); generate_tests(); sub generate_tests { generate_mbedtls_mpi_core_add_if(); } sub generate_mbedtls_mpi_core_add_if { my $sub_name = (caller(0))[3]; # e.g. main::generate_mbedtls_mpi_add_mpi my ($ignore, $test_name) = split("main::generate_", $sub_name); my @cases = (); for my $ah (@add_mpis) { for my $bh (@add_mpis) { my $a = Math::BigInt->from_hex($ah); my $b = Math::BigInt->from_hex($bh); next if $a > $b; # don't need to repeat test cases # $b is the larger (or equal) of the two numbers. That's the number of limbs # we'll be using. my $bound4 = bound_mpi4($b); my $bound8 = bound_mpi8($b); my $r = $a + $b; my ($r4, $carry4) = ($r->copy(), 0); my ($r8, $carry8) = ($r->copy(), 0); ($carry4, $r4) = $r4->bdiv($bound4); ($carry8, $r8) = $r8->bdiv($bound8); my $rh4 = $r4->to_hex(); my $rh8 = $r8->to_hex(); my $desc = "$test_name #NUMBER: 0x$ah + 0x$bh = (0x$rh4, carry $carry4)/(0x$rh8, carry $carry8)EXPLAIN"; my $case = output($test_name, str($ah), str($bh), str($rh4), $carry4, str($rh8), $carry8); push(@cases, [$case, $desc]); } } output_cases(" (for when sizeof(mbedtls_mpi_uint) == 4/8)", @cases); } sub output_cases { my ($explain, @cases) = @_; my $count = 1; for my $c (@cases) { my ($case, $desc, $dep) = @$c; $desc =~ s/NUMBER/$count/; $count++; if (defined($explain) && $desc =~ /EXPLAIN/) { $desc =~ s/EXPLAIN/$explain/; $explain = ""; } my $depends = ""; $depends = "depends_on:$dep\n" if defined($dep) && length($dep); print <new(1); # blsft modifies caller return $one->blsft(bits_mpi4($_[0])); } sub bound_mpi8 { my $one = Math::BigInt->new(1); # blsft modifies caller return $one->blsft(bits_mpi8($_[0])); } # How many bits (a multiple of 32) needed to store the specified number # when using 4-byte MPIs sub bits_mpi4 { return 32 * mpi4s($_[0]); } # How many bits (a multiple of 64) needed to store the specified number # when using 8-byte MPIs sub bits_mpi8 { return 64 * mpi8s($_[0]); } # How many 4-byte MPIs needed to store the specified number sub mpi4s { my ($n) = @_; my $h = $n->to_hex(); return int((length($h) + 7) / 8); } # How many 8-byte MPIs needed to store the specified number sub mpi8s { my ($n) = @_; my $h = $n->to_hex(); return int((length($h) + 15) / 16); } sub output { return join(":", @_); } sub str { return '"' . $_[0] . '"'; } ``` Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.data | 1584 ++++++++++++++++++++++++++ tests/suites/test_suite_mpi.function | 94 ++ 2 files changed, 1678 insertions(+) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 7573f95a30..af5c11047a 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -2282,6 +2282,1590 @@ mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mbedtls_mpi_core_add_if #1: 0x0 + 0x0 = (0x0, carry 0)/(0x0, carry 0) (for when sizeof(mbedtls_mpi_uint) == 4/8) +mbedtls_mpi_core_add_if:"0":"0":"0":0:"0":0 + +mbedtls_mpi_core_add_if #2: 0x0 + 0x1 = (0x1, carry 0)/(0x1, carry 0) +mbedtls_mpi_core_add_if:"0":"1":"1":0:"1":0 + +mbedtls_mpi_core_add_if #3: 0x0 + 0x3 = (0x3, carry 0)/(0x3, carry 0) +mbedtls_mpi_core_add_if:"0":"3":"3":0:"3":0 + +mbedtls_mpi_core_add_if #4: 0x0 + 0xf = (0xf, carry 0)/(0xf, carry 0) +mbedtls_mpi_core_add_if:"0":"f":"f":0:"f":0 + +mbedtls_mpi_core_add_if #5: 0x0 + 0xfe = (0xfe, carry 0)/(0xfe, carry 0) +mbedtls_mpi_core_add_if:"0":"fe":"fe":0:"fe":0 + +mbedtls_mpi_core_add_if #6: 0x0 + 0xff = (0xff, carry 0)/(0xff, carry 0) +mbedtls_mpi_core_add_if:"0":"ff":"ff":0:"ff":0 + +mbedtls_mpi_core_add_if #7: 0x0 + 0x100 = (0x100, carry 0)/(0x100, carry 0) +mbedtls_mpi_core_add_if:"0":"100":"100":0:"100":0 + +mbedtls_mpi_core_add_if #8: 0x0 + 0xff00 = (0xff00, carry 0)/(0xff00, carry 0) +mbedtls_mpi_core_add_if:"0":"ff00":"ff00":0:"ff00":0 + +mbedtls_mpi_core_add_if #9: 0x0 + 0xfffe = (0xfffe, carry 0)/(0xfffe, carry 0) +mbedtls_mpi_core_add_if:"0":"fffe":"fffe":0:"fffe":0 + +mbedtls_mpi_core_add_if #10: 0x0 + 0xffff = (0xffff, carry 0)/(0xffff, carry 0) +mbedtls_mpi_core_add_if:"0":"ffff":"ffff":0:"ffff":0 + +mbedtls_mpi_core_add_if #11: 0x0 + 0x10000 = (0x10000, carry 0)/(0x10000, carry 0) +mbedtls_mpi_core_add_if:"0":"10000":"10000":0:"10000":0 + +mbedtls_mpi_core_add_if #12: 0x0 + 0xfffffffe = (0xfffffffe, carry 0)/(0xfffffffe, carry 0) +mbedtls_mpi_core_add_if:"0":"fffffffe":"fffffffe":0:"fffffffe":0 + +mbedtls_mpi_core_add_if #13: 0x0 + 0xffffffff = (0xffffffff, carry 0)/(0xffffffff, carry 0) +mbedtls_mpi_core_add_if:"0":"ffffffff":"ffffffff":0:"ffffffff":0 + +mbedtls_mpi_core_add_if #14: 0x0 + 0x100000000 = (0x100000000, carry 0)/(0x100000000, carry 0) +mbedtls_mpi_core_add_if:"0":"100000000":"100000000":0:"100000000":0 + +mbedtls_mpi_core_add_if #15: 0x0 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f7f7f, carry 0)/(0x1f7f7f7f7f7f7f, carry 0) +mbedtls_mpi_core_add_if:"0":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":0:"1f7f7f7f7f7f7f":0 + +mbedtls_mpi_core_add_if #16: 0x0 + 0x8000000000000000 = (0x8000000000000000, carry 0)/(0x8000000000000000, carry 0) +mbedtls_mpi_core_add_if:"0":"8000000000000000":"8000000000000000":0:"8000000000000000":0 + +mbedtls_mpi_core_add_if #17: 0x0 + 0xfefefefefefefefe = (0xfefefefefefefefe, carry 0)/(0xfefefefefefefefe, carry 0) +mbedtls_mpi_core_add_if:"0":"fefefefefefefefe":"fefefefefefefefe":0:"fefefefefefefefe":0 + +mbedtls_mpi_core_add_if #18: 0x0 + 0xfffffffffffffffe = (0xfffffffffffffffe, carry 0)/(0xfffffffffffffffe, carry 0) +mbedtls_mpi_core_add_if:"0":"fffffffffffffffe":"fffffffffffffffe":0:"fffffffffffffffe":0 + +mbedtls_mpi_core_add_if #19: 0x0 + 0xffffffffffffffff = (0xffffffffffffffff, carry 0)/(0xffffffffffffffff, carry 0) +mbedtls_mpi_core_add_if:"0":"ffffffffffffffff":"ffffffffffffffff":0:"ffffffffffffffff":0 + +mbedtls_mpi_core_add_if #20: 0x0 + 0x10000000000000000 = (0x10000000000000000, carry 0)/(0x10000000000000000, carry 0) +mbedtls_mpi_core_add_if:"0":"10000000000000000":"10000000000000000":0:"10000000000000000":0 + +mbedtls_mpi_core_add_if #21: 0x0 + 0x1234567890abcdef0 = (0x1234567890abcdef0, carry 0)/(0x1234567890abcdef0, carry 0) +mbedtls_mpi_core_add_if:"0":"1234567890abcdef0":"1234567890abcdef0":0:"1234567890abcdef0":0 + +mbedtls_mpi_core_add_if #22: 0x0 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefefe, carry 0)/(0xfffffffffffffffffefefefefefefefe, carry 0) +mbedtls_mpi_core_add_if:"0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":0:"fffffffffffffffffefefefefefefefe":0 + +mbedtls_mpi_core_add_if #23: 0x0 + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffe, carry 0)/(0xfffffffffffffffffffffffffffffffe, carry 0) +mbedtls_mpi_core_add_if:"0":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":0:"fffffffffffffffffffffffffffffffe":0 + +mbedtls_mpi_core_add_if #24: 0x0 + 0xffffffffffffffffffffffffffffffff = (0xffffffffffffffffffffffffffffffff, carry 0)/(0xffffffffffffffffffffffffffffffff, carry 0) +mbedtls_mpi_core_add_if:"0":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffff":0 + +mbedtls_mpi_core_add_if #25: 0x0 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000000000, carry 0)/(0x100000000000000000000000000000000, carry 0) +mbedtls_mpi_core_add_if:"0":"100000000000000000000000000000000":"100000000000000000000000000000000":0:"100000000000000000000000000000000":0 + +mbedtls_mpi_core_add_if #26: 0x0 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef0, carry 0) +mbedtls_mpi_core_add_if:"0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":0:"1234567890abcdef01234567890abcdef0":0 + +mbedtls_mpi_core_add_if #27: 0x0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0) +mbedtls_mpi_core_add_if:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0 + +mbedtls_mpi_core_add_if #28: 0x0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0) +mbedtls_mpi_core_add_if:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 + +mbedtls_mpi_core_add_if #29: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0) +mbedtls_mpi_core_add_if:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 + +mbedtls_mpi_core_add_if #30: 0x0 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000000000, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000000000, carry 0) +mbedtls_mpi_core_add_if:"0":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":0:"10000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_core_add_if #31: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0) +mbedtls_mpi_core_add_if:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 + +mbedtls_mpi_core_add_if #32: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0) +mbedtls_mpi_core_add_if:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 + +mbedtls_mpi_core_add_if #33: 0x1 + 0x1 = (0x2, carry 0)/(0x2, carry 0) +mbedtls_mpi_core_add_if:"1":"1":"2":0:"2":0 + +mbedtls_mpi_core_add_if #34: 0x1 + 0x3 = (0x4, carry 0)/(0x4, carry 0) +mbedtls_mpi_core_add_if:"1":"3":"4":0:"4":0 + +mbedtls_mpi_core_add_if #35: 0x1 + 0xf = (0x10, carry 0)/(0x10, carry 0) +mbedtls_mpi_core_add_if:"1":"f":"10":0:"10":0 + +mbedtls_mpi_core_add_if #36: 0x1 + 0xfe = (0xff, carry 0)/(0xff, carry 0) +mbedtls_mpi_core_add_if:"1":"fe":"ff":0:"ff":0 + +mbedtls_mpi_core_add_if #37: 0x1 + 0xff = (0x100, carry 0)/(0x100, carry 0) +mbedtls_mpi_core_add_if:"1":"ff":"100":0:"100":0 + +mbedtls_mpi_core_add_if #38: 0x1 + 0x100 = (0x101, carry 0)/(0x101, carry 0) +mbedtls_mpi_core_add_if:"1":"100":"101":0:"101":0 + +mbedtls_mpi_core_add_if #39: 0x1 + 0xff00 = (0xff01, carry 0)/(0xff01, carry 0) +mbedtls_mpi_core_add_if:"1":"ff00":"ff01":0:"ff01":0 + +mbedtls_mpi_core_add_if #40: 0x1 + 0xfffe = (0xffff, carry 0)/(0xffff, carry 0) +mbedtls_mpi_core_add_if:"1":"fffe":"ffff":0:"ffff":0 + +mbedtls_mpi_core_add_if #41: 0x1 + 0xffff = (0x10000, carry 0)/(0x10000, carry 0) +mbedtls_mpi_core_add_if:"1":"ffff":"10000":0:"10000":0 + +mbedtls_mpi_core_add_if #42: 0x1 + 0x10000 = (0x10001, carry 0)/(0x10001, carry 0) +mbedtls_mpi_core_add_if:"1":"10000":"10001":0:"10001":0 + +mbedtls_mpi_core_add_if #43: 0x1 + 0xfffffffe = (0xffffffff, carry 0)/(0xffffffff, carry 0) +mbedtls_mpi_core_add_if:"1":"fffffffe":"ffffffff":0:"ffffffff":0 + +mbedtls_mpi_core_add_if #44: 0x1 + 0xffffffff = (0x0, carry 1)/(0x100000000, carry 0) +mbedtls_mpi_core_add_if:"1":"ffffffff":"0":1:"100000000":0 + +mbedtls_mpi_core_add_if #45: 0x1 + 0x100000000 = (0x100000001, carry 0)/(0x100000001, carry 0) +mbedtls_mpi_core_add_if:"1":"100000000":"100000001":0:"100000001":0 + +mbedtls_mpi_core_add_if #46: 0x1 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f7f80, carry 0)/(0x1f7f7f7f7f7f80, carry 0) +mbedtls_mpi_core_add_if:"1":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f80":0:"1f7f7f7f7f7f80":0 + +mbedtls_mpi_core_add_if #47: 0x1 + 0x8000000000000000 = (0x8000000000000001, carry 0)/(0x8000000000000001, carry 0) +mbedtls_mpi_core_add_if:"1":"8000000000000000":"8000000000000001":0:"8000000000000001":0 + +mbedtls_mpi_core_add_if #48: 0x1 + 0xfefefefefefefefe = (0xfefefefefefefeff, carry 0)/(0xfefefefefefefeff, carry 0) +mbedtls_mpi_core_add_if:"1":"fefefefefefefefe":"fefefefefefefeff":0:"fefefefefefefeff":0 + +mbedtls_mpi_core_add_if #49: 0x1 + 0xfffffffffffffffe = (0xffffffffffffffff, carry 0)/(0xffffffffffffffff, carry 0) +mbedtls_mpi_core_add_if:"1":"fffffffffffffffe":"ffffffffffffffff":0:"ffffffffffffffff":0 + +mbedtls_mpi_core_add_if #50: 0x1 + 0xffffffffffffffff = (0x0, carry 1)/(0x0, carry 1) +mbedtls_mpi_core_add_if:"1":"ffffffffffffffff":"0":1:"0":1 + +mbedtls_mpi_core_add_if #51: 0x1 + 0x10000000000000000 = (0x10000000000000001, carry 0)/(0x10000000000000001, carry 0) +mbedtls_mpi_core_add_if:"1":"10000000000000000":"10000000000000001":0:"10000000000000001":0 + +mbedtls_mpi_core_add_if #52: 0x1 + 0x1234567890abcdef0 = (0x1234567890abcdef1, carry 0)/(0x1234567890abcdef1, carry 0) +mbedtls_mpi_core_add_if:"1":"1234567890abcdef0":"1234567890abcdef1":0:"1234567890abcdef1":0 + +mbedtls_mpi_core_add_if #53: 0x1 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefeff, carry 0)/(0xfffffffffffffffffefefefefefefeff, carry 0) +mbedtls_mpi_core_add_if:"1":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefeff":0:"fffffffffffffffffefefefefefefeff":0 + +mbedtls_mpi_core_add_if #54: 0x1 + 0xfffffffffffffffffffffffffffffffe = (0xffffffffffffffffffffffffffffffff, carry 0)/(0xffffffffffffffffffffffffffffffff, carry 0) +mbedtls_mpi_core_add_if:"1":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffff":0 + +mbedtls_mpi_core_add_if #55: 0x1 + 0xffffffffffffffffffffffffffffffff = (0x0, carry 1)/(0x0, carry 1) +mbedtls_mpi_core_add_if:"1":"ffffffffffffffffffffffffffffffff":"0":1:"0":1 + +mbedtls_mpi_core_add_if #56: 0x1 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000000001, carry 0)/(0x100000000000000000000000000000001, carry 0) +mbedtls_mpi_core_add_if:"1":"100000000000000000000000000000000":"100000000000000000000000000000001":0:"100000000000000000000000000000001":0 + +mbedtls_mpi_core_add_if #57: 0x1 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef1, carry 0)/(0x1234567890abcdef01234567890abcdef1, carry 0) +mbedtls_mpi_core_add_if:"1":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef1":0:"1234567890abcdef01234567890abcdef1":0 + +mbedtls_mpi_core_add_if #58: 0x1 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff, carry 0) +mbedtls_mpi_core_add_if:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":0 + +mbedtls_mpi_core_add_if #59: 0x1 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0) +mbedtls_mpi_core_add_if:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 + +mbedtls_mpi_core_add_if #60: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x0, carry 1)/(0x0, carry 1) +mbedtls_mpi_core_add_if:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":1:"0":1 + +mbedtls_mpi_core_add_if #61: 0x1 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000000001, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000000001, carry 0) +mbedtls_mpi_core_add_if:"1":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000001":0:"10000000000000000000000000000000000000000000000000000000000000001":0 + +mbedtls_mpi_core_add_if #62: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1, carry 0) +mbedtls_mpi_core_add_if:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":0 + +mbedtls_mpi_core_add_if #63: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c, carry 0) +mbedtls_mpi_core_add_if:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":0 + +mbedtls_mpi_core_add_if #64: 0x3 + 0x3 = (0x6, carry 0)/(0x6, carry 0) +mbedtls_mpi_core_add_if:"3":"3":"6":0:"6":0 + +mbedtls_mpi_core_add_if #65: 0x3 + 0xf = (0x12, carry 0)/(0x12, carry 0) +mbedtls_mpi_core_add_if:"3":"f":"12":0:"12":0 + +mbedtls_mpi_core_add_if #66: 0x3 + 0xfe = (0x101, carry 0)/(0x101, carry 0) +mbedtls_mpi_core_add_if:"3":"fe":"101":0:"101":0 + +mbedtls_mpi_core_add_if #67: 0x3 + 0xff = (0x102, carry 0)/(0x102, carry 0) +mbedtls_mpi_core_add_if:"3":"ff":"102":0:"102":0 + +mbedtls_mpi_core_add_if #68: 0x3 + 0x100 = (0x103, carry 0)/(0x103, carry 0) +mbedtls_mpi_core_add_if:"3":"100":"103":0:"103":0 + +mbedtls_mpi_core_add_if #69: 0x3 + 0xff00 = (0xff03, carry 0)/(0xff03, carry 0) +mbedtls_mpi_core_add_if:"3":"ff00":"ff03":0:"ff03":0 + +mbedtls_mpi_core_add_if #70: 0x3 + 0xfffe = (0x10001, carry 0)/(0x10001, carry 0) +mbedtls_mpi_core_add_if:"3":"fffe":"10001":0:"10001":0 + +mbedtls_mpi_core_add_if #71: 0x3 + 0xffff = (0x10002, carry 0)/(0x10002, carry 0) +mbedtls_mpi_core_add_if:"3":"ffff":"10002":0:"10002":0 + +mbedtls_mpi_core_add_if #72: 0x3 + 0x10000 = (0x10003, carry 0)/(0x10003, carry 0) +mbedtls_mpi_core_add_if:"3":"10000":"10003":0:"10003":0 + +mbedtls_mpi_core_add_if #73: 0x3 + 0xfffffffe = (0x1, carry 1)/(0x100000001, carry 0) +mbedtls_mpi_core_add_if:"3":"fffffffe":"1":1:"100000001":0 + +mbedtls_mpi_core_add_if #74: 0x3 + 0xffffffff = (0x2, carry 1)/(0x100000002, carry 0) +mbedtls_mpi_core_add_if:"3":"ffffffff":"2":1:"100000002":0 + +mbedtls_mpi_core_add_if #75: 0x3 + 0x100000000 = (0x100000003, carry 0)/(0x100000003, carry 0) +mbedtls_mpi_core_add_if:"3":"100000000":"100000003":0:"100000003":0 + +mbedtls_mpi_core_add_if #76: 0x3 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f7f82, carry 0)/(0x1f7f7f7f7f7f82, carry 0) +mbedtls_mpi_core_add_if:"3":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f82":0:"1f7f7f7f7f7f82":0 + +mbedtls_mpi_core_add_if #77: 0x3 + 0x8000000000000000 = (0x8000000000000003, carry 0)/(0x8000000000000003, carry 0) +mbedtls_mpi_core_add_if:"3":"8000000000000000":"8000000000000003":0:"8000000000000003":0 + +mbedtls_mpi_core_add_if #78: 0x3 + 0xfefefefefefefefe = (0xfefefefefefeff01, carry 0)/(0xfefefefefefeff01, carry 0) +mbedtls_mpi_core_add_if:"3":"fefefefefefefefe":"fefefefefefeff01":0:"fefefefefefeff01":0 + +mbedtls_mpi_core_add_if #79: 0x3 + 0xfffffffffffffffe = (0x1, carry 1)/(0x1, carry 1) +mbedtls_mpi_core_add_if:"3":"fffffffffffffffe":"1":1:"1":1 + +mbedtls_mpi_core_add_if #80: 0x3 + 0xffffffffffffffff = (0x2, carry 1)/(0x2, carry 1) +mbedtls_mpi_core_add_if:"3":"ffffffffffffffff":"2":1:"2":1 + +mbedtls_mpi_core_add_if #81: 0x3 + 0x10000000000000000 = (0x10000000000000003, carry 0)/(0x10000000000000003, carry 0) +mbedtls_mpi_core_add_if:"3":"10000000000000000":"10000000000000003":0:"10000000000000003":0 + +mbedtls_mpi_core_add_if #82: 0x3 + 0x1234567890abcdef0 = (0x1234567890abcdef3, carry 0)/(0x1234567890abcdef3, carry 0) +mbedtls_mpi_core_add_if:"3":"1234567890abcdef0":"1234567890abcdef3":0:"1234567890abcdef3":0 + +mbedtls_mpi_core_add_if #83: 0x3 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefeff01, carry 0)/(0xfffffffffffffffffefefefefefeff01, carry 0) +mbedtls_mpi_core_add_if:"3":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefeff01":0:"fffffffffffffffffefefefefefeff01":0 + +mbedtls_mpi_core_add_if #84: 0x3 + 0xfffffffffffffffffffffffffffffffe = (0x1, carry 1)/(0x1, carry 1) +mbedtls_mpi_core_add_if:"3":"fffffffffffffffffffffffffffffffe":"1":1:"1":1 + +mbedtls_mpi_core_add_if #85: 0x3 + 0xffffffffffffffffffffffffffffffff = (0x2, carry 1)/(0x2, carry 1) +mbedtls_mpi_core_add_if:"3":"ffffffffffffffffffffffffffffffff":"2":1:"2":1 + +mbedtls_mpi_core_add_if #86: 0x3 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000000003, carry 0)/(0x100000000000000000000000000000003, carry 0) +mbedtls_mpi_core_add_if:"3":"100000000000000000000000000000000":"100000000000000000000000000000003":0:"100000000000000000000000000000003":0 + +mbedtls_mpi_core_add_if #87: 0x3 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef3, carry 0)/(0x1234567890abcdef01234567890abcdef3, carry 0) +mbedtls_mpi_core_add_if:"3":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef3":0:"1234567890abcdef01234567890abcdef3":0 + +mbedtls_mpi_core_add_if #88: 0x3 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01, carry 0) +mbedtls_mpi_core_add_if:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01":0 + +mbedtls_mpi_core_add_if #89: 0x3 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x1, carry 1)/(0x1, carry 1) +mbedtls_mpi_core_add_if:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1":1:"1":1 + +mbedtls_mpi_core_add_if #90: 0x3 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x2, carry 1)/(0x2, carry 1) +mbedtls_mpi_core_add_if:"3":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"2":1:"2":1 + +mbedtls_mpi_core_add_if #91: 0x3 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000000003, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000000003, carry 0) +mbedtls_mpi_core_add_if:"3":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000003":0:"10000000000000000000000000000000000000000000000000000000000000003":0 + +mbedtls_mpi_core_add_if #92: 0x3 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3, carry 0) +mbedtls_mpi_core_add_if:"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":0 + +mbedtls_mpi_core_add_if #93: 0x3 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e, carry 0) +mbedtls_mpi_core_add_if:"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":0 + +mbedtls_mpi_core_add_if #94: 0xf + 0xf = (0x1e, carry 0)/(0x1e, carry 0) +mbedtls_mpi_core_add_if:"f":"f":"1e":0:"1e":0 + +mbedtls_mpi_core_add_if #95: 0xf + 0xfe = (0x10d, carry 0)/(0x10d, carry 0) +mbedtls_mpi_core_add_if:"f":"fe":"10d":0:"10d":0 + +mbedtls_mpi_core_add_if #96: 0xf + 0xff = (0x10e, carry 0)/(0x10e, carry 0) +mbedtls_mpi_core_add_if:"f":"ff":"10e":0:"10e":0 + +mbedtls_mpi_core_add_if #97: 0xf + 0x100 = (0x10f, carry 0)/(0x10f, carry 0) +mbedtls_mpi_core_add_if:"f":"100":"10f":0:"10f":0 + +mbedtls_mpi_core_add_if #98: 0xf + 0xff00 = (0xff0f, carry 0)/(0xff0f, carry 0) +mbedtls_mpi_core_add_if:"f":"ff00":"ff0f":0:"ff0f":0 + +mbedtls_mpi_core_add_if #99: 0xf + 0xfffe = (0x1000d, carry 0)/(0x1000d, carry 0) +mbedtls_mpi_core_add_if:"f":"fffe":"1000d":0:"1000d":0 + +mbedtls_mpi_core_add_if #100: 0xf + 0xffff = (0x1000e, carry 0)/(0x1000e, carry 0) +mbedtls_mpi_core_add_if:"f":"ffff":"1000e":0:"1000e":0 + +mbedtls_mpi_core_add_if #101: 0xf + 0x10000 = (0x1000f, carry 0)/(0x1000f, carry 0) +mbedtls_mpi_core_add_if:"f":"10000":"1000f":0:"1000f":0 + +mbedtls_mpi_core_add_if #102: 0xf + 0xfffffffe = (0xd, carry 1)/(0x10000000d, carry 0) +mbedtls_mpi_core_add_if:"f":"fffffffe":"d":1:"10000000d":0 + +mbedtls_mpi_core_add_if #103: 0xf + 0xffffffff = (0xe, carry 1)/(0x10000000e, carry 0) +mbedtls_mpi_core_add_if:"f":"ffffffff":"e":1:"10000000e":0 + +mbedtls_mpi_core_add_if #104: 0xf + 0x100000000 = (0x10000000f, carry 0)/(0x10000000f, carry 0) +mbedtls_mpi_core_add_if:"f":"100000000":"10000000f":0:"10000000f":0 + +mbedtls_mpi_core_add_if #105: 0xf + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f7f8e, carry 0)/(0x1f7f7f7f7f7f8e, carry 0) +mbedtls_mpi_core_add_if:"f":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f8e":0:"1f7f7f7f7f7f8e":0 + +mbedtls_mpi_core_add_if #106: 0xf + 0x8000000000000000 = (0x800000000000000f, carry 0)/(0x800000000000000f, carry 0) +mbedtls_mpi_core_add_if:"f":"8000000000000000":"800000000000000f":0:"800000000000000f":0 + +mbedtls_mpi_core_add_if #107: 0xf + 0xfefefefefefefefe = (0xfefefefefefeff0d, carry 0)/(0xfefefefefefeff0d, carry 0) +mbedtls_mpi_core_add_if:"f":"fefefefefefefefe":"fefefefefefeff0d":0:"fefefefefefeff0d":0 + +mbedtls_mpi_core_add_if #108: 0xf + 0xfffffffffffffffe = (0xd, carry 1)/(0xd, carry 1) +mbedtls_mpi_core_add_if:"f":"fffffffffffffffe":"d":1:"d":1 + +mbedtls_mpi_core_add_if #109: 0xf + 0xffffffffffffffff = (0xe, carry 1)/(0xe, carry 1) +mbedtls_mpi_core_add_if:"f":"ffffffffffffffff":"e":1:"e":1 + +mbedtls_mpi_core_add_if #110: 0xf + 0x10000000000000000 = (0x1000000000000000f, carry 0)/(0x1000000000000000f, carry 0) +mbedtls_mpi_core_add_if:"f":"10000000000000000":"1000000000000000f":0:"1000000000000000f":0 + +mbedtls_mpi_core_add_if #111: 0xf + 0x1234567890abcdef0 = (0x1234567890abcdeff, carry 0)/(0x1234567890abcdeff, carry 0) +mbedtls_mpi_core_add_if:"f":"1234567890abcdef0":"1234567890abcdeff":0:"1234567890abcdeff":0 + +mbedtls_mpi_core_add_if #112: 0xf + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefeff0d, carry 0)/(0xfffffffffffffffffefefefefefeff0d, carry 0) +mbedtls_mpi_core_add_if:"f":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefeff0d":0:"fffffffffffffffffefefefefefeff0d":0 + +mbedtls_mpi_core_add_if #113: 0xf + 0xfffffffffffffffffffffffffffffffe = (0xd, carry 1)/(0xd, carry 1) +mbedtls_mpi_core_add_if:"f":"fffffffffffffffffffffffffffffffe":"d":1:"d":1 + +mbedtls_mpi_core_add_if #114: 0xf + 0xffffffffffffffffffffffffffffffff = (0xe, carry 1)/(0xe, carry 1) +mbedtls_mpi_core_add_if:"f":"ffffffffffffffffffffffffffffffff":"e":1:"e":1 + +mbedtls_mpi_core_add_if #115: 0xf + 0x100000000000000000000000000000000 = (0x10000000000000000000000000000000f, carry 0)/(0x10000000000000000000000000000000f, carry 0) +mbedtls_mpi_core_add_if:"f":"100000000000000000000000000000000":"10000000000000000000000000000000f":0:"10000000000000000000000000000000f":0 + +mbedtls_mpi_core_add_if #116: 0xf + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdeff, carry 0)/(0x1234567890abcdef01234567890abcdeff, carry 0) +mbedtls_mpi_core_add_if:"f":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdeff":0:"1234567890abcdef01234567890abcdeff":0 + +mbedtls_mpi_core_add_if #117: 0xf + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d, carry 0) +mbedtls_mpi_core_add_if:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d":0 + +mbedtls_mpi_core_add_if #118: 0xf + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xd, carry 1)/(0xd, carry 1) +mbedtls_mpi_core_add_if:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"d":1:"d":1 + +mbedtls_mpi_core_add_if #119: 0xf + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xe, carry 1)/(0xe, carry 1) +mbedtls_mpi_core_add_if:"f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"e":1:"e":1 + +mbedtls_mpi_core_add_if #120: 0xf + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000000000000000000f, carry 0)/(0x1000000000000000000000000000000000000000000000000000000000000000f, carry 0) +mbedtls_mpi_core_add_if:"f":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000000f":0:"1000000000000000000000000000000000000000000000000000000000000000f":0 + +mbedtls_mpi_core_add_if #121: 0xf + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff, carry 0) +mbedtls_mpi_core_add_if:"f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff":0 + +mbedtls_mpi_core_add_if #122: 0xf + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a, carry 0) +mbedtls_mpi_core_add_if:"f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a":0 + +mbedtls_mpi_core_add_if #123: 0xfe + 0xfe = (0x1fc, carry 0)/(0x1fc, carry 0) +mbedtls_mpi_core_add_if:"fe":"fe":"1fc":0:"1fc":0 + +mbedtls_mpi_core_add_if #124: 0xfe + 0xff = (0x1fd, carry 0)/(0x1fd, carry 0) +mbedtls_mpi_core_add_if:"fe":"ff":"1fd":0:"1fd":0 + +mbedtls_mpi_core_add_if #125: 0xfe + 0x100 = (0x1fe, carry 0)/(0x1fe, carry 0) +mbedtls_mpi_core_add_if:"fe":"100":"1fe":0:"1fe":0 + +mbedtls_mpi_core_add_if #126: 0xfe + 0xff00 = (0xfffe, carry 0)/(0xfffe, carry 0) +mbedtls_mpi_core_add_if:"fe":"ff00":"fffe":0:"fffe":0 + +mbedtls_mpi_core_add_if #127: 0xfe + 0xfffe = (0x100fc, carry 0)/(0x100fc, carry 0) +mbedtls_mpi_core_add_if:"fe":"fffe":"100fc":0:"100fc":0 + +mbedtls_mpi_core_add_if #128: 0xfe + 0xffff = (0x100fd, carry 0)/(0x100fd, carry 0) +mbedtls_mpi_core_add_if:"fe":"ffff":"100fd":0:"100fd":0 + +mbedtls_mpi_core_add_if #129: 0xfe + 0x10000 = (0x100fe, carry 0)/(0x100fe, carry 0) +mbedtls_mpi_core_add_if:"fe":"10000":"100fe":0:"100fe":0 + +mbedtls_mpi_core_add_if #130: 0xfe + 0xfffffffe = (0xfc, carry 1)/(0x1000000fc, carry 0) +mbedtls_mpi_core_add_if:"fe":"fffffffe":"fc":1:"1000000fc":0 + +mbedtls_mpi_core_add_if #131: 0xfe + 0xffffffff = (0xfd, carry 1)/(0x1000000fd, carry 0) +mbedtls_mpi_core_add_if:"fe":"ffffffff":"fd":1:"1000000fd":0 + +mbedtls_mpi_core_add_if #132: 0xfe + 0x100000000 = (0x1000000fe, carry 0)/(0x1000000fe, carry 0) +mbedtls_mpi_core_add_if:"fe":"100000000":"1000000fe":0:"1000000fe":0 + +mbedtls_mpi_core_add_if #133: 0xfe + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f807d, carry 0)/(0x1f7f7f7f7f807d, carry 0) +mbedtls_mpi_core_add_if:"fe":"1f7f7f7f7f7f7f":"1f7f7f7f7f807d":0:"1f7f7f7f7f807d":0 + +mbedtls_mpi_core_add_if #134: 0xfe + 0x8000000000000000 = (0x80000000000000fe, carry 0)/(0x80000000000000fe, carry 0) +mbedtls_mpi_core_add_if:"fe":"8000000000000000":"80000000000000fe":0:"80000000000000fe":0 + +mbedtls_mpi_core_add_if #135: 0xfe + 0xfefefefefefefefe = (0xfefefefefefefffc, carry 0)/(0xfefefefefefefffc, carry 0) +mbedtls_mpi_core_add_if:"fe":"fefefefefefefefe":"fefefefefefefffc":0:"fefefefefefefffc":0 + +mbedtls_mpi_core_add_if #136: 0xfe + 0xfffffffffffffffe = (0xfc, carry 1)/(0xfc, carry 1) +mbedtls_mpi_core_add_if:"fe":"fffffffffffffffe":"fc":1:"fc":1 + +mbedtls_mpi_core_add_if #137: 0xfe + 0xffffffffffffffff = (0xfd, carry 1)/(0xfd, carry 1) +mbedtls_mpi_core_add_if:"fe":"ffffffffffffffff":"fd":1:"fd":1 + +mbedtls_mpi_core_add_if #138: 0xfe + 0x10000000000000000 = (0x100000000000000fe, carry 0)/(0x100000000000000fe, carry 0) +mbedtls_mpi_core_add_if:"fe":"10000000000000000":"100000000000000fe":0:"100000000000000fe":0 + +mbedtls_mpi_core_add_if #139: 0xfe + 0x1234567890abcdef0 = (0x1234567890abcdfee, carry 0)/(0x1234567890abcdfee, carry 0) +mbedtls_mpi_core_add_if:"fe":"1234567890abcdef0":"1234567890abcdfee":0:"1234567890abcdfee":0 + +mbedtls_mpi_core_add_if #140: 0xfe + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefffc, carry 0)/(0xfffffffffffffffffefefefefefefffc, carry 0) +mbedtls_mpi_core_add_if:"fe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefffc":0:"fffffffffffffffffefefefefefefffc":0 + +mbedtls_mpi_core_add_if #141: 0xfe + 0xfffffffffffffffffffffffffffffffe = (0xfc, carry 1)/(0xfc, carry 1) +mbedtls_mpi_core_add_if:"fe":"fffffffffffffffffffffffffffffffe":"fc":1:"fc":1 + +mbedtls_mpi_core_add_if #142: 0xfe + 0xffffffffffffffffffffffffffffffff = (0xfd, carry 1)/(0xfd, carry 1) +mbedtls_mpi_core_add_if:"fe":"ffffffffffffffffffffffffffffffff":"fd":1:"fd":1 + +mbedtls_mpi_core_add_if #143: 0xfe + 0x100000000000000000000000000000000 = (0x1000000000000000000000000000000fe, carry 0)/(0x1000000000000000000000000000000fe, carry 0) +mbedtls_mpi_core_add_if:"fe":"100000000000000000000000000000000":"1000000000000000000000000000000fe":0:"1000000000000000000000000000000fe":0 + +mbedtls_mpi_core_add_if #144: 0xfe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdfee, carry 0)/(0x1234567890abcdef01234567890abcdfee, carry 0) +mbedtls_mpi_core_add_if:"fe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdfee":0:"1234567890abcdef01234567890abcdfee":0 + +mbedtls_mpi_core_add_if #145: 0xfe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc, carry 0) +mbedtls_mpi_core_add_if:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc":0 + +mbedtls_mpi_core_add_if #146: 0xfe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfc, carry 1)/(0xfc, carry 1) +mbedtls_mpi_core_add_if:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fc":1:"fc":1 + +mbedtls_mpi_core_add_if #147: 0xfe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfd, carry 1)/(0xfd, carry 1) +mbedtls_mpi_core_add_if:"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fd":1:"fd":1 + +mbedtls_mpi_core_add_if #148: 0xfe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000000000000000000000000000000000fe, carry 0)/(0x100000000000000000000000000000000000000000000000000000000000000fe, carry 0) +mbedtls_mpi_core_add_if:"fe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000000000fe":0:"100000000000000000000000000000000000000000000000000000000000000fe":0 + +mbedtls_mpi_core_add_if #149: 0xfe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee, carry 0) +mbedtls_mpi_core_add_if:"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":0 + +mbedtls_mpi_core_add_if #150: 0xfe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229, carry 0) +mbedtls_mpi_core_add_if:"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":0 + +mbedtls_mpi_core_add_if #151: 0xff + 0xff = (0x1fe, carry 0)/(0x1fe, carry 0) +mbedtls_mpi_core_add_if:"ff":"ff":"1fe":0:"1fe":0 + +mbedtls_mpi_core_add_if #152: 0xff + 0x100 = (0x1ff, carry 0)/(0x1ff, carry 0) +mbedtls_mpi_core_add_if:"ff":"100":"1ff":0:"1ff":0 + +mbedtls_mpi_core_add_if #153: 0xff + 0xff00 = (0xffff, carry 0)/(0xffff, carry 0) +mbedtls_mpi_core_add_if:"ff":"ff00":"ffff":0:"ffff":0 + +mbedtls_mpi_core_add_if #154: 0xff + 0xfffe = (0x100fd, carry 0)/(0x100fd, carry 0) +mbedtls_mpi_core_add_if:"ff":"fffe":"100fd":0:"100fd":0 + +mbedtls_mpi_core_add_if #155: 0xff + 0xffff = (0x100fe, carry 0)/(0x100fe, carry 0) +mbedtls_mpi_core_add_if:"ff":"ffff":"100fe":0:"100fe":0 + +mbedtls_mpi_core_add_if #156: 0xff + 0x10000 = (0x100ff, carry 0)/(0x100ff, carry 0) +mbedtls_mpi_core_add_if:"ff":"10000":"100ff":0:"100ff":0 + +mbedtls_mpi_core_add_if #157: 0xff + 0xfffffffe = (0xfd, carry 1)/(0x1000000fd, carry 0) +mbedtls_mpi_core_add_if:"ff":"fffffffe":"fd":1:"1000000fd":0 + +mbedtls_mpi_core_add_if #158: 0xff + 0xffffffff = (0xfe, carry 1)/(0x1000000fe, carry 0) +mbedtls_mpi_core_add_if:"ff":"ffffffff":"fe":1:"1000000fe":0 + +mbedtls_mpi_core_add_if #159: 0xff + 0x100000000 = (0x1000000ff, carry 0)/(0x1000000ff, carry 0) +mbedtls_mpi_core_add_if:"ff":"100000000":"1000000ff":0:"1000000ff":0 + +mbedtls_mpi_core_add_if #160: 0xff + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f807e, carry 0)/(0x1f7f7f7f7f807e, carry 0) +mbedtls_mpi_core_add_if:"ff":"1f7f7f7f7f7f7f":"1f7f7f7f7f807e":0:"1f7f7f7f7f807e":0 + +mbedtls_mpi_core_add_if #161: 0xff + 0x8000000000000000 = (0x80000000000000ff, carry 0)/(0x80000000000000ff, carry 0) +mbedtls_mpi_core_add_if:"ff":"8000000000000000":"80000000000000ff":0:"80000000000000ff":0 + +mbedtls_mpi_core_add_if #162: 0xff + 0xfefefefefefefefe = (0xfefefefefefefffd, carry 0)/(0xfefefefefefefffd, carry 0) +mbedtls_mpi_core_add_if:"ff":"fefefefefefefefe":"fefefefefefefffd":0:"fefefefefefefffd":0 + +mbedtls_mpi_core_add_if #163: 0xff + 0xfffffffffffffffe = (0xfd, carry 1)/(0xfd, carry 1) +mbedtls_mpi_core_add_if:"ff":"fffffffffffffffe":"fd":1:"fd":1 + +mbedtls_mpi_core_add_if #164: 0xff + 0xffffffffffffffff = (0xfe, carry 1)/(0xfe, carry 1) +mbedtls_mpi_core_add_if:"ff":"ffffffffffffffff":"fe":1:"fe":1 + +mbedtls_mpi_core_add_if #165: 0xff + 0x10000000000000000 = (0x100000000000000ff, carry 0)/(0x100000000000000ff, carry 0) +mbedtls_mpi_core_add_if:"ff":"10000000000000000":"100000000000000ff":0:"100000000000000ff":0 + +mbedtls_mpi_core_add_if #166: 0xff + 0x1234567890abcdef0 = (0x1234567890abcdfef, carry 0)/(0x1234567890abcdfef, carry 0) +mbedtls_mpi_core_add_if:"ff":"1234567890abcdef0":"1234567890abcdfef":0:"1234567890abcdfef":0 + +mbedtls_mpi_core_add_if #167: 0xff + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefffd, carry 0)/(0xfffffffffffffffffefefefefefefffd, carry 0) +mbedtls_mpi_core_add_if:"ff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefffd":0:"fffffffffffffffffefefefefefefffd":0 + +mbedtls_mpi_core_add_if #168: 0xff + 0xfffffffffffffffffffffffffffffffe = (0xfd, carry 1)/(0xfd, carry 1) +mbedtls_mpi_core_add_if:"ff":"fffffffffffffffffffffffffffffffe":"fd":1:"fd":1 + +mbedtls_mpi_core_add_if #169: 0xff + 0xffffffffffffffffffffffffffffffff = (0xfe, carry 1)/(0xfe, carry 1) +mbedtls_mpi_core_add_if:"ff":"ffffffffffffffffffffffffffffffff":"fe":1:"fe":1 + +mbedtls_mpi_core_add_if #170: 0xff + 0x100000000000000000000000000000000 = (0x1000000000000000000000000000000ff, carry 0)/(0x1000000000000000000000000000000ff, carry 0) +mbedtls_mpi_core_add_if:"ff":"100000000000000000000000000000000":"1000000000000000000000000000000ff":0:"1000000000000000000000000000000ff":0 + +mbedtls_mpi_core_add_if #171: 0xff + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdfef, carry 0)/(0x1234567890abcdef01234567890abcdfef, carry 0) +mbedtls_mpi_core_add_if:"ff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdfef":0:"1234567890abcdef01234567890abcdfef":0 + +mbedtls_mpi_core_add_if #172: 0xff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd, carry 0) +mbedtls_mpi_core_add_if:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd":0 + +mbedtls_mpi_core_add_if #173: 0xff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfd, carry 1)/(0xfd, carry 1) +mbedtls_mpi_core_add_if:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fd":1:"fd":1 + +mbedtls_mpi_core_add_if #174: 0xff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfe, carry 1)/(0xfe, carry 1) +mbedtls_mpi_core_add_if:"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":1:"fe":1 + +mbedtls_mpi_core_add_if #175: 0xff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000000000000000000000000000000000ff, carry 0)/(0x100000000000000000000000000000000000000000000000000000000000000ff, carry 0) +mbedtls_mpi_core_add_if:"ff":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000000000ff":0:"100000000000000000000000000000000000000000000000000000000000000ff":0 + +mbedtls_mpi_core_add_if #176: 0xff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef, carry 0) +mbedtls_mpi_core_add_if:"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":0 + +mbedtls_mpi_core_add_if #177: 0xff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a, carry 0) +mbedtls_mpi_core_add_if:"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":0 + +mbedtls_mpi_core_add_if #178: 0x100 + 0x100 = (0x200, carry 0)/(0x200, carry 0) +mbedtls_mpi_core_add_if:"100":"100":"200":0:"200":0 + +mbedtls_mpi_core_add_if #179: 0x100 + 0xff00 = (0x10000, carry 0)/(0x10000, carry 0) +mbedtls_mpi_core_add_if:"100":"ff00":"10000":0:"10000":0 + +mbedtls_mpi_core_add_if #180: 0x100 + 0xfffe = (0x100fe, carry 0)/(0x100fe, carry 0) +mbedtls_mpi_core_add_if:"100":"fffe":"100fe":0:"100fe":0 + +mbedtls_mpi_core_add_if #181: 0x100 + 0xffff = (0x100ff, carry 0)/(0x100ff, carry 0) +mbedtls_mpi_core_add_if:"100":"ffff":"100ff":0:"100ff":0 + +mbedtls_mpi_core_add_if #182: 0x100 + 0x10000 = (0x10100, carry 0)/(0x10100, carry 0) +mbedtls_mpi_core_add_if:"100":"10000":"10100":0:"10100":0 + +mbedtls_mpi_core_add_if #183: 0x100 + 0xfffffffe = (0xfe, carry 1)/(0x1000000fe, carry 0) +mbedtls_mpi_core_add_if:"100":"fffffffe":"fe":1:"1000000fe":0 + +mbedtls_mpi_core_add_if #184: 0x100 + 0xffffffff = (0xff, carry 1)/(0x1000000ff, carry 0) +mbedtls_mpi_core_add_if:"100":"ffffffff":"ff":1:"1000000ff":0 + +mbedtls_mpi_core_add_if #185: 0x100 + 0x100000000 = (0x100000100, carry 0)/(0x100000100, carry 0) +mbedtls_mpi_core_add_if:"100":"100000000":"100000100":0:"100000100":0 + +mbedtls_mpi_core_add_if #186: 0x100 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f807f, carry 0)/(0x1f7f7f7f7f807f, carry 0) +mbedtls_mpi_core_add_if:"100":"1f7f7f7f7f7f7f":"1f7f7f7f7f807f":0:"1f7f7f7f7f807f":0 + +mbedtls_mpi_core_add_if #187: 0x100 + 0x8000000000000000 = (0x8000000000000100, carry 0)/(0x8000000000000100, carry 0) +mbedtls_mpi_core_add_if:"100":"8000000000000000":"8000000000000100":0:"8000000000000100":0 + +mbedtls_mpi_core_add_if #188: 0x100 + 0xfefefefefefefefe = (0xfefefefefefefffe, carry 0)/(0xfefefefefefefffe, carry 0) +mbedtls_mpi_core_add_if:"100":"fefefefefefefefe":"fefefefefefefffe":0:"fefefefefefefffe":0 + +mbedtls_mpi_core_add_if #189: 0x100 + 0xfffffffffffffffe = (0xfe, carry 1)/(0xfe, carry 1) +mbedtls_mpi_core_add_if:"100":"fffffffffffffffe":"fe":1:"fe":1 + +mbedtls_mpi_core_add_if #190: 0x100 + 0xffffffffffffffff = (0xff, carry 1)/(0xff, carry 1) +mbedtls_mpi_core_add_if:"100":"ffffffffffffffff":"ff":1:"ff":1 + +mbedtls_mpi_core_add_if #191: 0x100 + 0x10000000000000000 = (0x10000000000000100, carry 0)/(0x10000000000000100, carry 0) +mbedtls_mpi_core_add_if:"100":"10000000000000000":"10000000000000100":0:"10000000000000100":0 + +mbedtls_mpi_core_add_if #192: 0x100 + 0x1234567890abcdef0 = (0x1234567890abcdff0, carry 0)/(0x1234567890abcdff0, carry 0) +mbedtls_mpi_core_add_if:"100":"1234567890abcdef0":"1234567890abcdff0":0:"1234567890abcdff0":0 + +mbedtls_mpi_core_add_if #193: 0x100 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefffe, carry 0)/(0xfffffffffffffffffefefefefefefffe, carry 0) +mbedtls_mpi_core_add_if:"100":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefffe":0:"fffffffffffffffffefefefefefefffe":0 + +mbedtls_mpi_core_add_if #194: 0x100 + 0xfffffffffffffffffffffffffffffffe = (0xfe, carry 1)/(0xfe, carry 1) +mbedtls_mpi_core_add_if:"100":"fffffffffffffffffffffffffffffffe":"fe":1:"fe":1 + +mbedtls_mpi_core_add_if #195: 0x100 + 0xffffffffffffffffffffffffffffffff = (0xff, carry 1)/(0xff, carry 1) +mbedtls_mpi_core_add_if:"100":"ffffffffffffffffffffffffffffffff":"ff":1:"ff":1 + +mbedtls_mpi_core_add_if #196: 0x100 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000000100, carry 0)/(0x100000000000000000000000000000100, carry 0) +mbedtls_mpi_core_add_if:"100":"100000000000000000000000000000000":"100000000000000000000000000000100":0:"100000000000000000000000000000100":0 + +mbedtls_mpi_core_add_if #197: 0x100 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdff0, carry 0)/(0x1234567890abcdef01234567890abcdff0, carry 0) +mbedtls_mpi_core_add_if:"100":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdff0":0:"1234567890abcdef01234567890abcdff0":0 + +mbedtls_mpi_core_add_if #198: 0x100 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe, carry 0) +mbedtls_mpi_core_add_if:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe":0 + +mbedtls_mpi_core_add_if #199: 0x100 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfe, carry 1)/(0xfe, carry 1) +mbedtls_mpi_core_add_if:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fe":1:"fe":1 + +mbedtls_mpi_core_add_if #200: 0x100 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xff, carry 1)/(0xff, carry 1) +mbedtls_mpi_core_add_if:"100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":1:"ff":1 + +mbedtls_mpi_core_add_if #201: 0x100 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000000100, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000000100, carry 0) +mbedtls_mpi_core_add_if:"100":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000100":0:"10000000000000000000000000000000000000000000000000000000000000100":0 + +mbedtls_mpi_core_add_if #202: 0x100 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0, carry 0) +mbedtls_mpi_core_add_if:"100":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0":0 + +mbedtls_mpi_core_add_if #203: 0x100 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b, carry 0) +mbedtls_mpi_core_add_if:"100":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b":0 + +mbedtls_mpi_core_add_if #204: 0xff00 + 0xff00 = (0x1fe00, carry 0)/(0x1fe00, carry 0) +mbedtls_mpi_core_add_if:"ff00":"ff00":"1fe00":0:"1fe00":0 + +mbedtls_mpi_core_add_if #205: 0xff00 + 0xfffe = (0x1fefe, carry 0)/(0x1fefe, carry 0) +mbedtls_mpi_core_add_if:"ff00":"fffe":"1fefe":0:"1fefe":0 + +mbedtls_mpi_core_add_if #206: 0xff00 + 0xffff = (0x1feff, carry 0)/(0x1feff, carry 0) +mbedtls_mpi_core_add_if:"ff00":"ffff":"1feff":0:"1feff":0 + +mbedtls_mpi_core_add_if #207: 0xff00 + 0x10000 = (0x1ff00, carry 0)/(0x1ff00, carry 0) +mbedtls_mpi_core_add_if:"ff00":"10000":"1ff00":0:"1ff00":0 + +mbedtls_mpi_core_add_if #208: 0xff00 + 0xfffffffe = (0xfefe, carry 1)/(0x10000fefe, carry 0) +mbedtls_mpi_core_add_if:"ff00":"fffffffe":"fefe":1:"10000fefe":0 + +mbedtls_mpi_core_add_if #209: 0xff00 + 0xffffffff = (0xfeff, carry 1)/(0x10000feff, carry 0) +mbedtls_mpi_core_add_if:"ff00":"ffffffff":"feff":1:"10000feff":0 + +mbedtls_mpi_core_add_if #210: 0xff00 + 0x100000000 = (0x10000ff00, carry 0)/(0x10000ff00, carry 0) +mbedtls_mpi_core_add_if:"ff00":"100000000":"10000ff00":0:"10000ff00":0 + +mbedtls_mpi_core_add_if #211: 0xff00 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f807e7f, carry 0)/(0x1f7f7f7f807e7f, carry 0) +mbedtls_mpi_core_add_if:"ff00":"1f7f7f7f7f7f7f":"1f7f7f7f807e7f":0:"1f7f7f7f807e7f":0 + +mbedtls_mpi_core_add_if #212: 0xff00 + 0x8000000000000000 = (0x800000000000ff00, carry 0)/(0x800000000000ff00, carry 0) +mbedtls_mpi_core_add_if:"ff00":"8000000000000000":"800000000000ff00":0:"800000000000ff00":0 + +mbedtls_mpi_core_add_if #213: 0xff00 + 0xfefefefefefefefe = (0xfefefefefefffdfe, carry 0)/(0xfefefefefefffdfe, carry 0) +mbedtls_mpi_core_add_if:"ff00":"fefefefefefefefe":"fefefefefefffdfe":0:"fefefefefefffdfe":0 + +mbedtls_mpi_core_add_if #214: 0xff00 + 0xfffffffffffffffe = (0xfefe, carry 1)/(0xfefe, carry 1) +mbedtls_mpi_core_add_if:"ff00":"fffffffffffffffe":"fefe":1:"fefe":1 + +mbedtls_mpi_core_add_if #215: 0xff00 + 0xffffffffffffffff = (0xfeff, carry 1)/(0xfeff, carry 1) +mbedtls_mpi_core_add_if:"ff00":"ffffffffffffffff":"feff":1:"feff":1 + +mbedtls_mpi_core_add_if #216: 0xff00 + 0x10000000000000000 = (0x1000000000000ff00, carry 0)/(0x1000000000000ff00, carry 0) +mbedtls_mpi_core_add_if:"ff00":"10000000000000000":"1000000000000ff00":0:"1000000000000ff00":0 + +mbedtls_mpi_core_add_if #217: 0xff00 + 0x1234567890abcdef0 = (0x1234567890abdddf0, carry 0)/(0x1234567890abdddf0, carry 0) +mbedtls_mpi_core_add_if:"ff00":"1234567890abcdef0":"1234567890abdddf0":0:"1234567890abdddf0":0 + +mbedtls_mpi_core_add_if #218: 0xff00 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefffdfe, carry 0)/(0xfffffffffffffffffefefefefefffdfe, carry 0) +mbedtls_mpi_core_add_if:"ff00":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffdfe":0:"fffffffffffffffffefefefefefffdfe":0 + +mbedtls_mpi_core_add_if #219: 0xff00 + 0xfffffffffffffffffffffffffffffffe = (0xfefe, carry 1)/(0xfefe, carry 1) +mbedtls_mpi_core_add_if:"ff00":"fffffffffffffffffffffffffffffffe":"fefe":1:"fefe":1 + +mbedtls_mpi_core_add_if #220: 0xff00 + 0xffffffffffffffffffffffffffffffff = (0xfeff, carry 1)/(0xfeff, carry 1) +mbedtls_mpi_core_add_if:"ff00":"ffffffffffffffffffffffffffffffff":"feff":1:"feff":1 + +mbedtls_mpi_core_add_if #221: 0xff00 + 0x100000000000000000000000000000000 = (0x10000000000000000000000000000ff00, carry 0)/(0x10000000000000000000000000000ff00, carry 0) +mbedtls_mpi_core_add_if:"ff00":"100000000000000000000000000000000":"10000000000000000000000000000ff00":0:"10000000000000000000000000000ff00":0 + +mbedtls_mpi_core_add_if #222: 0xff00 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abdddf0, carry 0)/(0x1234567890abcdef01234567890abdddf0, carry 0) +mbedtls_mpi_core_add_if:"ff00":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abdddf0":0:"1234567890abcdef01234567890abdddf0":0 + +mbedtls_mpi_core_add_if #223: 0xff00 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe, carry 0) +mbedtls_mpi_core_add_if:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe":0 + +mbedtls_mpi_core_add_if #224: 0xff00 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfefe, carry 1)/(0xfefe, carry 1) +mbedtls_mpi_core_add_if:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefe":1:"fefe":1 + +mbedtls_mpi_core_add_if #225: 0xff00 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfeff, carry 1)/(0xfeff, carry 1) +mbedtls_mpi_core_add_if:"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"feff":1:"feff":1 + +mbedtls_mpi_core_add_if #226: 0xff00 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000000000000000ff00, carry 0)/(0x1000000000000000000000000000000000000000000000000000000000000ff00, carry 0) +mbedtls_mpi_core_add_if:"ff00":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000ff00":0:"1000000000000000000000000000000000000000000000000000000000000ff00":0 + +mbedtls_mpi_core_add_if #227: 0xff00 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0, carry 0) +mbedtls_mpi_core_add_if:"ff00":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0":0 + +mbedtls_mpi_core_add_if #228: 0xff00 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b, carry 0) +mbedtls_mpi_core_add_if:"ff00":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b":0 + +mbedtls_mpi_core_add_if #229: 0xfffe + 0xfffe = (0x1fffc, carry 0)/(0x1fffc, carry 0) +mbedtls_mpi_core_add_if:"fffe":"fffe":"1fffc":0:"1fffc":0 + +mbedtls_mpi_core_add_if #230: 0xfffe + 0xffff = (0x1fffd, carry 0)/(0x1fffd, carry 0) +mbedtls_mpi_core_add_if:"fffe":"ffff":"1fffd":0:"1fffd":0 + +mbedtls_mpi_core_add_if #231: 0xfffe + 0x10000 = (0x1fffe, carry 0)/(0x1fffe, carry 0) +mbedtls_mpi_core_add_if:"fffe":"10000":"1fffe":0:"1fffe":0 + +mbedtls_mpi_core_add_if #232: 0xfffe + 0xfffffffe = (0xfffc, carry 1)/(0x10000fffc, carry 0) +mbedtls_mpi_core_add_if:"fffe":"fffffffe":"fffc":1:"10000fffc":0 + +mbedtls_mpi_core_add_if #233: 0xfffe + 0xffffffff = (0xfffd, carry 1)/(0x10000fffd, carry 0) +mbedtls_mpi_core_add_if:"fffe":"ffffffff":"fffd":1:"10000fffd":0 + +mbedtls_mpi_core_add_if #234: 0xfffe + 0x100000000 = (0x10000fffe, carry 0)/(0x10000fffe, carry 0) +mbedtls_mpi_core_add_if:"fffe":"100000000":"10000fffe":0:"10000fffe":0 + +mbedtls_mpi_core_add_if #235: 0xfffe + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f807f7d, carry 0)/(0x1f7f7f7f807f7d, carry 0) +mbedtls_mpi_core_add_if:"fffe":"1f7f7f7f7f7f7f":"1f7f7f7f807f7d":0:"1f7f7f7f807f7d":0 + +mbedtls_mpi_core_add_if #236: 0xfffe + 0x8000000000000000 = (0x800000000000fffe, carry 0)/(0x800000000000fffe, carry 0) +mbedtls_mpi_core_add_if:"fffe":"8000000000000000":"800000000000fffe":0:"800000000000fffe":0 + +mbedtls_mpi_core_add_if #237: 0xfffe + 0xfefefefefefefefe = (0xfefefefefefffefc, carry 0)/(0xfefefefefefffefc, carry 0) +mbedtls_mpi_core_add_if:"fffe":"fefefefefefefefe":"fefefefefefffefc":0:"fefefefefefffefc":0 + +mbedtls_mpi_core_add_if #238: 0xfffe + 0xfffffffffffffffe = (0xfffc, carry 1)/(0xfffc, carry 1) +mbedtls_mpi_core_add_if:"fffe":"fffffffffffffffe":"fffc":1:"fffc":1 + +mbedtls_mpi_core_add_if #239: 0xfffe + 0xffffffffffffffff = (0xfffd, carry 1)/(0xfffd, carry 1) +mbedtls_mpi_core_add_if:"fffe":"ffffffffffffffff":"fffd":1:"fffd":1 + +mbedtls_mpi_core_add_if #240: 0xfffe + 0x10000000000000000 = (0x1000000000000fffe, carry 0)/(0x1000000000000fffe, carry 0) +mbedtls_mpi_core_add_if:"fffe":"10000000000000000":"1000000000000fffe":0:"1000000000000fffe":0 + +mbedtls_mpi_core_add_if #241: 0xfffe + 0x1234567890abcdef0 = (0x1234567890abddeee, carry 0)/(0x1234567890abddeee, carry 0) +mbedtls_mpi_core_add_if:"fffe":"1234567890abcdef0":"1234567890abddeee":0:"1234567890abddeee":0 + +mbedtls_mpi_core_add_if #242: 0xfffe + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefffefc, carry 0)/(0xfffffffffffffffffefefefefefffefc, carry 0) +mbedtls_mpi_core_add_if:"fffe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffefc":0:"fffffffffffffffffefefefefefffefc":0 + +mbedtls_mpi_core_add_if #243: 0xfffe + 0xfffffffffffffffffffffffffffffffe = (0xfffc, carry 1)/(0xfffc, carry 1) +mbedtls_mpi_core_add_if:"fffe":"fffffffffffffffffffffffffffffffe":"fffc":1:"fffc":1 + +mbedtls_mpi_core_add_if #244: 0xfffe + 0xffffffffffffffffffffffffffffffff = (0xfffd, carry 1)/(0xfffd, carry 1) +mbedtls_mpi_core_add_if:"fffe":"ffffffffffffffffffffffffffffffff":"fffd":1:"fffd":1 + +mbedtls_mpi_core_add_if #245: 0xfffe + 0x100000000000000000000000000000000 = (0x10000000000000000000000000000fffe, carry 0)/(0x10000000000000000000000000000fffe, carry 0) +mbedtls_mpi_core_add_if:"fffe":"100000000000000000000000000000000":"10000000000000000000000000000fffe":0:"10000000000000000000000000000fffe":0 + +mbedtls_mpi_core_add_if #246: 0xfffe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abddeee, carry 0)/(0x1234567890abcdef01234567890abddeee, carry 0) +mbedtls_mpi_core_add_if:"fffe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abddeee":0:"1234567890abcdef01234567890abddeee":0 + +mbedtls_mpi_core_add_if #247: 0xfffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc, carry 0) +mbedtls_mpi_core_add_if:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc":0 + +mbedtls_mpi_core_add_if #248: 0xfffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffc, carry 1)/(0xfffc, carry 1) +mbedtls_mpi_core_add_if:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffc":1:"fffc":1 + +mbedtls_mpi_core_add_if #249: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffd, carry 1)/(0xfffd, carry 1) +mbedtls_mpi_core_add_if:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffd":1:"fffd":1 + +mbedtls_mpi_core_add_if #250: 0xfffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000000000000000fffe, carry 0)/(0x1000000000000000000000000000000000000000000000000000000000000fffe, carry 0) +mbedtls_mpi_core_add_if:"fffe":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000fffe":0:"1000000000000000000000000000000000000000000000000000000000000fffe":0 + +mbedtls_mpi_core_add_if #251: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee, carry 0) +mbedtls_mpi_core_add_if:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee":0 + +mbedtls_mpi_core_add_if #252: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129, carry 0) +mbedtls_mpi_core_add_if:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129":0 + +mbedtls_mpi_core_add_if #253: 0xffff + 0xffff = (0x1fffe, carry 0)/(0x1fffe, carry 0) +mbedtls_mpi_core_add_if:"ffff":"ffff":"1fffe":0:"1fffe":0 + +mbedtls_mpi_core_add_if #254: 0xffff + 0x10000 = (0x1ffff, carry 0)/(0x1ffff, carry 0) +mbedtls_mpi_core_add_if:"ffff":"10000":"1ffff":0:"1ffff":0 + +mbedtls_mpi_core_add_if #255: 0xffff + 0xfffffffe = (0xfffd, carry 1)/(0x10000fffd, carry 0) +mbedtls_mpi_core_add_if:"ffff":"fffffffe":"fffd":1:"10000fffd":0 + +mbedtls_mpi_core_add_if #256: 0xffff + 0xffffffff = (0xfffe, carry 1)/(0x10000fffe, carry 0) +mbedtls_mpi_core_add_if:"ffff":"ffffffff":"fffe":1:"10000fffe":0 + +mbedtls_mpi_core_add_if #257: 0xffff + 0x100000000 = (0x10000ffff, carry 0)/(0x10000ffff, carry 0) +mbedtls_mpi_core_add_if:"ffff":"100000000":"10000ffff":0:"10000ffff":0 + +mbedtls_mpi_core_add_if #258: 0xffff + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f807f7e, carry 0)/(0x1f7f7f7f807f7e, carry 0) +mbedtls_mpi_core_add_if:"ffff":"1f7f7f7f7f7f7f":"1f7f7f7f807f7e":0:"1f7f7f7f807f7e":0 + +mbedtls_mpi_core_add_if #259: 0xffff + 0x8000000000000000 = (0x800000000000ffff, carry 0)/(0x800000000000ffff, carry 0) +mbedtls_mpi_core_add_if:"ffff":"8000000000000000":"800000000000ffff":0:"800000000000ffff":0 + +mbedtls_mpi_core_add_if #260: 0xffff + 0xfefefefefefefefe = (0xfefefefefefffefd, carry 0)/(0xfefefefefefffefd, carry 0) +mbedtls_mpi_core_add_if:"ffff":"fefefefefefefefe":"fefefefefefffefd":0:"fefefefefefffefd":0 + +mbedtls_mpi_core_add_if #261: 0xffff + 0xfffffffffffffffe = (0xfffd, carry 1)/(0xfffd, carry 1) +mbedtls_mpi_core_add_if:"ffff":"fffffffffffffffe":"fffd":1:"fffd":1 + +mbedtls_mpi_core_add_if #262: 0xffff + 0xffffffffffffffff = (0xfffe, carry 1)/(0xfffe, carry 1) +mbedtls_mpi_core_add_if:"ffff":"ffffffffffffffff":"fffe":1:"fffe":1 + +mbedtls_mpi_core_add_if #263: 0xffff + 0x10000000000000000 = (0x1000000000000ffff, carry 0)/(0x1000000000000ffff, carry 0) +mbedtls_mpi_core_add_if:"ffff":"10000000000000000":"1000000000000ffff":0:"1000000000000ffff":0 + +mbedtls_mpi_core_add_if #264: 0xffff + 0x1234567890abcdef0 = (0x1234567890abddeef, carry 0)/(0x1234567890abddeef, carry 0) +mbedtls_mpi_core_add_if:"ffff":"1234567890abcdef0":"1234567890abddeef":0:"1234567890abddeef":0 + +mbedtls_mpi_core_add_if #265: 0xffff + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefffefd, carry 0)/(0xfffffffffffffffffefefefefefffefd, carry 0) +mbedtls_mpi_core_add_if:"ffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffefd":0:"fffffffffffffffffefefefefefffefd":0 + +mbedtls_mpi_core_add_if #266: 0xffff + 0xfffffffffffffffffffffffffffffffe = (0xfffd, carry 1)/(0xfffd, carry 1) +mbedtls_mpi_core_add_if:"ffff":"fffffffffffffffffffffffffffffffe":"fffd":1:"fffd":1 + +mbedtls_mpi_core_add_if #267: 0xffff + 0xffffffffffffffffffffffffffffffff = (0xfffe, carry 1)/(0xfffe, carry 1) +mbedtls_mpi_core_add_if:"ffff":"ffffffffffffffffffffffffffffffff":"fffe":1:"fffe":1 + +mbedtls_mpi_core_add_if #268: 0xffff + 0x100000000000000000000000000000000 = (0x10000000000000000000000000000ffff, carry 0)/(0x10000000000000000000000000000ffff, carry 0) +mbedtls_mpi_core_add_if:"ffff":"100000000000000000000000000000000":"10000000000000000000000000000ffff":0:"10000000000000000000000000000ffff":0 + +mbedtls_mpi_core_add_if #269: 0xffff + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abddeef, carry 0)/(0x1234567890abcdef01234567890abddeef, carry 0) +mbedtls_mpi_core_add_if:"ffff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abddeef":0:"1234567890abcdef01234567890abddeef":0 + +mbedtls_mpi_core_add_if #270: 0xffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd, carry 0) +mbedtls_mpi_core_add_if:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd":0 + +mbedtls_mpi_core_add_if #271: 0xffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffd, carry 1)/(0xfffd, carry 1) +mbedtls_mpi_core_add_if:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffd":1:"fffd":1 + +mbedtls_mpi_core_add_if #272: 0xffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffe, carry 1)/(0xfffe, carry 1) +mbedtls_mpi_core_add_if:"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":1:"fffe":1 + +mbedtls_mpi_core_add_if #273: 0xffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000000000000000ffff, carry 0)/(0x1000000000000000000000000000000000000000000000000000000000000ffff, carry 0) +mbedtls_mpi_core_add_if:"ffff":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000ffff":0:"1000000000000000000000000000000000000000000000000000000000000ffff":0 + +mbedtls_mpi_core_add_if #274: 0xffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef, carry 0) +mbedtls_mpi_core_add_if:"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":0 + +mbedtls_mpi_core_add_if #275: 0xffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a, carry 0) +mbedtls_mpi_core_add_if:"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":0 + +mbedtls_mpi_core_add_if #276: 0x10000 + 0x10000 = (0x20000, carry 0)/(0x20000, carry 0) +mbedtls_mpi_core_add_if:"10000":"10000":"20000":0:"20000":0 + +mbedtls_mpi_core_add_if #277: 0x10000 + 0xfffffffe = (0xfffe, carry 1)/(0x10000fffe, carry 0) +mbedtls_mpi_core_add_if:"10000":"fffffffe":"fffe":1:"10000fffe":0 + +mbedtls_mpi_core_add_if #278: 0x10000 + 0xffffffff = (0xffff, carry 1)/(0x10000ffff, carry 0) +mbedtls_mpi_core_add_if:"10000":"ffffffff":"ffff":1:"10000ffff":0 + +mbedtls_mpi_core_add_if #279: 0x10000 + 0x100000000 = (0x100010000, carry 0)/(0x100010000, carry 0) +mbedtls_mpi_core_add_if:"10000":"100000000":"100010000":0:"100010000":0 + +mbedtls_mpi_core_add_if #280: 0x10000 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f807f7f, carry 0)/(0x1f7f7f7f807f7f, carry 0) +mbedtls_mpi_core_add_if:"10000":"1f7f7f7f7f7f7f":"1f7f7f7f807f7f":0:"1f7f7f7f807f7f":0 + +mbedtls_mpi_core_add_if #281: 0x10000 + 0x8000000000000000 = (0x8000000000010000, carry 0)/(0x8000000000010000, carry 0) +mbedtls_mpi_core_add_if:"10000":"8000000000000000":"8000000000010000":0:"8000000000010000":0 + +mbedtls_mpi_core_add_if #282: 0x10000 + 0xfefefefefefefefe = (0xfefefefefefffefe, carry 0)/(0xfefefefefefffefe, carry 0) +mbedtls_mpi_core_add_if:"10000":"fefefefefefefefe":"fefefefefefffefe":0:"fefefefefefffefe":0 + +mbedtls_mpi_core_add_if #283: 0x10000 + 0xfffffffffffffffe = (0xfffe, carry 1)/(0xfffe, carry 1) +mbedtls_mpi_core_add_if:"10000":"fffffffffffffffe":"fffe":1:"fffe":1 + +mbedtls_mpi_core_add_if #284: 0x10000 + 0xffffffffffffffff = (0xffff, carry 1)/(0xffff, carry 1) +mbedtls_mpi_core_add_if:"10000":"ffffffffffffffff":"ffff":1:"ffff":1 + +mbedtls_mpi_core_add_if #285: 0x10000 + 0x10000000000000000 = (0x10000000000010000, carry 0)/(0x10000000000010000, carry 0) +mbedtls_mpi_core_add_if:"10000":"10000000000000000":"10000000000010000":0:"10000000000010000":0 + +mbedtls_mpi_core_add_if #286: 0x10000 + 0x1234567890abcdef0 = (0x1234567890abddef0, carry 0)/(0x1234567890abddef0, carry 0) +mbedtls_mpi_core_add_if:"10000":"1234567890abcdef0":"1234567890abddef0":0:"1234567890abddef0":0 + +mbedtls_mpi_core_add_if #287: 0x10000 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefffefe, carry 0)/(0xfffffffffffffffffefefefefefffefe, carry 0) +mbedtls_mpi_core_add_if:"10000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffefe":0:"fffffffffffffffffefefefefefffefe":0 + +mbedtls_mpi_core_add_if #288: 0x10000 + 0xfffffffffffffffffffffffffffffffe = (0xfffe, carry 1)/(0xfffe, carry 1) +mbedtls_mpi_core_add_if:"10000":"fffffffffffffffffffffffffffffffe":"fffe":1:"fffe":1 + +mbedtls_mpi_core_add_if #289: 0x10000 + 0xffffffffffffffffffffffffffffffff = (0xffff, carry 1)/(0xffff, carry 1) +mbedtls_mpi_core_add_if:"10000":"ffffffffffffffffffffffffffffffff":"ffff":1:"ffff":1 + +mbedtls_mpi_core_add_if #290: 0x10000 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000010000, carry 0)/(0x100000000000000000000000000010000, carry 0) +mbedtls_mpi_core_add_if:"10000":"100000000000000000000000000000000":"100000000000000000000000000010000":0:"100000000000000000000000000010000":0 + +mbedtls_mpi_core_add_if #291: 0x10000 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abddef0, carry 0)/(0x1234567890abcdef01234567890abddef0, carry 0) +mbedtls_mpi_core_add_if:"10000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abddef0":0:"1234567890abcdef01234567890abddef0":0 + +mbedtls_mpi_core_add_if #292: 0x10000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe, carry 0) +mbedtls_mpi_core_add_if:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe":0 + +mbedtls_mpi_core_add_if #293: 0x10000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffe, carry 1)/(0xfffe, carry 1) +mbedtls_mpi_core_add_if:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffe":1:"fffe":1 + +mbedtls_mpi_core_add_if #294: 0x10000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffff, carry 1)/(0xffff, carry 1) +mbedtls_mpi_core_add_if:"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":1:"ffff":1 + +mbedtls_mpi_core_add_if #295: 0x10000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000010000, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000010000, carry 0) +mbedtls_mpi_core_add_if:"10000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000010000":0:"10000000000000000000000000000000000000000000000000000000000010000":0 + +mbedtls_mpi_core_add_if #296: 0x10000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0, carry 0) +mbedtls_mpi_core_add_if:"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":0 + +mbedtls_mpi_core_add_if #297: 0x10000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b, carry 0) +mbedtls_mpi_core_add_if:"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":0 + +mbedtls_mpi_core_add_if #298: 0xfffffffe + 0xfffffffe = (0xfffffffc, carry 1)/(0x1fffffffc, carry 0) +mbedtls_mpi_core_add_if:"fffffffe":"fffffffe":"fffffffc":1:"1fffffffc":0 + +mbedtls_mpi_core_add_if #299: 0xfffffffe + 0xffffffff = (0xfffffffd, carry 1)/(0x1fffffffd, carry 0) +mbedtls_mpi_core_add_if:"fffffffe":"ffffffff":"fffffffd":1:"1fffffffd":0 + +mbedtls_mpi_core_add_if #300: 0xfffffffe + 0x100000000 = (0x1fffffffe, carry 0)/(0x1fffffffe, carry 0) +mbedtls_mpi_core_add_if:"fffffffe":"100000000":"1fffffffe":0:"1fffffffe":0 + +mbedtls_mpi_core_add_if #301: 0xfffffffe + 0x1f7f7f7f7f7f7f = (0x1f7f807f7f7f7d, carry 0)/(0x1f7f807f7f7f7d, carry 0) +mbedtls_mpi_core_add_if:"fffffffe":"1f7f7f7f7f7f7f":"1f7f807f7f7f7d":0:"1f7f807f7f7f7d":0 + +mbedtls_mpi_core_add_if #302: 0xfffffffe + 0x8000000000000000 = (0x80000000fffffffe, carry 0)/(0x80000000fffffffe, carry 0) +mbedtls_mpi_core_add_if:"fffffffe":"8000000000000000":"80000000fffffffe":0:"80000000fffffffe":0 + +mbedtls_mpi_core_add_if #303: 0xfffffffe + 0xfefefefefefefefe = (0xfefefefffefefefc, carry 0)/(0xfefefefffefefefc, carry 0) +mbedtls_mpi_core_add_if:"fffffffe":"fefefefefefefefe":"fefefefffefefefc":0:"fefefefffefefefc":0 + +mbedtls_mpi_core_add_if #304: 0xfffffffe + 0xfffffffffffffffe = (0xfffffffc, carry 1)/(0xfffffffc, carry 1) +mbedtls_mpi_core_add_if:"fffffffe":"fffffffffffffffe":"fffffffc":1:"fffffffc":1 + +mbedtls_mpi_core_add_if #305: 0xfffffffe + 0xffffffffffffffff = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) +mbedtls_mpi_core_add_if:"fffffffe":"ffffffffffffffff":"fffffffd":1:"fffffffd":1 + +mbedtls_mpi_core_add_if #306: 0xfffffffe + 0x10000000000000000 = (0x100000000fffffffe, carry 0)/(0x100000000fffffffe, carry 0) +mbedtls_mpi_core_add_if:"fffffffe":"10000000000000000":"100000000fffffffe":0:"100000000fffffffe":0 + +mbedtls_mpi_core_add_if #307: 0xfffffffe + 0x1234567890abcdef0 = (0x12345678a0abcdeee, carry 0)/(0x12345678a0abcdeee, carry 0) +mbedtls_mpi_core_add_if:"fffffffe":"1234567890abcdef0":"12345678a0abcdeee":0:"12345678a0abcdeee":0 + +mbedtls_mpi_core_add_if #308: 0xfffffffe + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefffefefefc, carry 0)/(0xfffffffffffffffffefefefffefefefc, carry 0) +mbedtls_mpi_core_add_if:"fffffffe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefffefefefc":0:"fffffffffffffffffefefefffefefefc":0 + +mbedtls_mpi_core_add_if #309: 0xfffffffe + 0xfffffffffffffffffffffffffffffffe = (0xfffffffc, carry 1)/(0xfffffffc, carry 1) +mbedtls_mpi_core_add_if:"fffffffe":"fffffffffffffffffffffffffffffffe":"fffffffc":1:"fffffffc":1 + +mbedtls_mpi_core_add_if #310: 0xfffffffe + 0xffffffffffffffffffffffffffffffff = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) +mbedtls_mpi_core_add_if:"fffffffe":"ffffffffffffffffffffffffffffffff":"fffffffd":1:"fffffffd":1 + +mbedtls_mpi_core_add_if #311: 0xfffffffe + 0x100000000000000000000000000000000 = (0x1000000000000000000000000fffffffe, carry 0)/(0x1000000000000000000000000fffffffe, carry 0) +mbedtls_mpi_core_add_if:"fffffffe":"100000000000000000000000000000000":"1000000000000000000000000fffffffe":0:"1000000000000000000000000fffffffe":0 + +mbedtls_mpi_core_add_if #312: 0xfffffffe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef012345678a0abcdeee, carry 0)/(0x1234567890abcdef012345678a0abcdeee, carry 0) +mbedtls_mpi_core_add_if:"fffffffe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012345678a0abcdeee":0:"1234567890abcdef012345678a0abcdeee":0 + +mbedtls_mpi_core_add_if #313: 0xfffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc, carry 0) +mbedtls_mpi_core_add_if:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc":0 + +mbedtls_mpi_core_add_if #314: 0xfffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffc, carry 1)/(0xfffffffc, carry 1) +mbedtls_mpi_core_add_if:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffc":1:"fffffffc":1 + +mbedtls_mpi_core_add_if #315: 0xfffffffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) +mbedtls_mpi_core_add_if:"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffd":1:"fffffffd":1 + +mbedtls_mpi_core_add_if #316: 0xfffffffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000000000000000000000000000fffffffe, carry 0)/(0x100000000000000000000000000000000000000000000000000000000fffffffe, carry 0) +mbedtls_mpi_core_add_if:"fffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000fffffffe":0:"100000000000000000000000000000000000000000000000000000000fffffffe":0 + +mbedtls_mpi_core_add_if #317: 0xfffffffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee, carry 0) +mbedtls_mpi_core_add_if:"fffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee":0:"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee":0 + +mbedtls_mpi_core_add_if #318: 0xfffffffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129, carry 0) +mbedtls_mpi_core_add_if:"fffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129":0 + +mbedtls_mpi_core_add_if #319: 0xffffffff + 0xffffffff = (0xfffffffe, carry 1)/(0x1fffffffe, carry 0) +mbedtls_mpi_core_add_if:"ffffffff":"ffffffff":"fffffffe":1:"1fffffffe":0 + +mbedtls_mpi_core_add_if #320: 0xffffffff + 0x100000000 = (0x1ffffffff, carry 0)/(0x1ffffffff, carry 0) +mbedtls_mpi_core_add_if:"ffffffff":"100000000":"1ffffffff":0:"1ffffffff":0 + +mbedtls_mpi_core_add_if #321: 0xffffffff + 0x1f7f7f7f7f7f7f = (0x1f7f807f7f7f7e, carry 0)/(0x1f7f807f7f7f7e, carry 0) +mbedtls_mpi_core_add_if:"ffffffff":"1f7f7f7f7f7f7f":"1f7f807f7f7f7e":0:"1f7f807f7f7f7e":0 + +mbedtls_mpi_core_add_if #322: 0xffffffff + 0x8000000000000000 = (0x80000000ffffffff, carry 0)/(0x80000000ffffffff, carry 0) +mbedtls_mpi_core_add_if:"ffffffff":"8000000000000000":"80000000ffffffff":0:"80000000ffffffff":0 + +mbedtls_mpi_core_add_if #323: 0xffffffff + 0xfefefefefefefefe = (0xfefefefffefefefd, carry 0)/(0xfefefefffefefefd, carry 0) +mbedtls_mpi_core_add_if:"ffffffff":"fefefefefefefefe":"fefefefffefefefd":0:"fefefefffefefefd":0 + +mbedtls_mpi_core_add_if #324: 0xffffffff + 0xfffffffffffffffe = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) +mbedtls_mpi_core_add_if:"ffffffff":"fffffffffffffffe":"fffffffd":1:"fffffffd":1 + +mbedtls_mpi_core_add_if #325: 0xffffffff + 0xffffffffffffffff = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) +mbedtls_mpi_core_add_if:"ffffffff":"ffffffffffffffff":"fffffffe":1:"fffffffe":1 + +mbedtls_mpi_core_add_if #326: 0xffffffff + 0x10000000000000000 = (0x100000000ffffffff, carry 0)/(0x100000000ffffffff, carry 0) +mbedtls_mpi_core_add_if:"ffffffff":"10000000000000000":"100000000ffffffff":0:"100000000ffffffff":0 + +mbedtls_mpi_core_add_if #327: 0xffffffff + 0x1234567890abcdef0 = (0x12345678a0abcdeef, carry 0)/(0x12345678a0abcdeef, carry 0) +mbedtls_mpi_core_add_if:"ffffffff":"1234567890abcdef0":"12345678a0abcdeef":0:"12345678a0abcdeef":0 + +mbedtls_mpi_core_add_if #328: 0xffffffff + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefffefefefd, carry 0)/(0xfffffffffffffffffefefefffefefefd, carry 0) +mbedtls_mpi_core_add_if:"ffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefffefefefd":0:"fffffffffffffffffefefefffefefefd":0 + +mbedtls_mpi_core_add_if #329: 0xffffffff + 0xfffffffffffffffffffffffffffffffe = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) +mbedtls_mpi_core_add_if:"ffffffff":"fffffffffffffffffffffffffffffffe":"fffffffd":1:"fffffffd":1 + +mbedtls_mpi_core_add_if #330: 0xffffffff + 0xffffffffffffffffffffffffffffffff = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) +mbedtls_mpi_core_add_if:"ffffffff":"ffffffffffffffffffffffffffffffff":"fffffffe":1:"fffffffe":1 + +mbedtls_mpi_core_add_if #331: 0xffffffff + 0x100000000000000000000000000000000 = (0x1000000000000000000000000ffffffff, carry 0)/(0x1000000000000000000000000ffffffff, carry 0) +mbedtls_mpi_core_add_if:"ffffffff":"100000000000000000000000000000000":"1000000000000000000000000ffffffff":0:"1000000000000000000000000ffffffff":0 + +mbedtls_mpi_core_add_if #332: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef012345678a0abcdeef, carry 0)/(0x1234567890abcdef012345678a0abcdeef, carry 0) +mbedtls_mpi_core_add_if:"ffffffff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012345678a0abcdeef":0:"1234567890abcdef012345678a0abcdeef":0 + +mbedtls_mpi_core_add_if #333: 0xffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd, carry 0) +mbedtls_mpi_core_add_if:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd":0 + +mbedtls_mpi_core_add_if #334: 0xffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) +mbedtls_mpi_core_add_if:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffd":1:"fffffffd":1 + +mbedtls_mpi_core_add_if #335: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) +mbedtls_mpi_core_add_if:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffe":1:"fffffffe":1 + +mbedtls_mpi_core_add_if #336: 0xffffffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000000000000000000000000000ffffffff, carry 0)/(0x100000000000000000000000000000000000000000000000000000000ffffffff, carry 0) +mbedtls_mpi_core_add_if:"ffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000ffffffff":0:"100000000000000000000000000000000000000000000000000000000ffffffff":0 + +mbedtls_mpi_core_add_if #337: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef, carry 0) +mbedtls_mpi_core_add_if:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":0:"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":0 + +mbedtls_mpi_core_add_if #338: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a, carry 0) +mbedtls_mpi_core_add_if:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":0 + +mbedtls_mpi_core_add_if #339: 0x100000000 + 0x100000000 = (0x200000000, carry 0)/(0x200000000, carry 0) +mbedtls_mpi_core_add_if:"100000000":"100000000":"200000000":0:"200000000":0 + +mbedtls_mpi_core_add_if #340: 0x100000000 + 0x1f7f7f7f7f7f7f = (0x1f7f807f7f7f7f, carry 0)/(0x1f7f807f7f7f7f, carry 0) +mbedtls_mpi_core_add_if:"100000000":"1f7f7f7f7f7f7f":"1f7f807f7f7f7f":0:"1f7f807f7f7f7f":0 + +mbedtls_mpi_core_add_if #341: 0x100000000 + 0x8000000000000000 = (0x8000000100000000, carry 0)/(0x8000000100000000, carry 0) +mbedtls_mpi_core_add_if:"100000000":"8000000000000000":"8000000100000000":0:"8000000100000000":0 + +mbedtls_mpi_core_add_if #342: 0x100000000 + 0xfefefefefefefefe = (0xfefefefffefefefe, carry 0)/(0xfefefefffefefefe, carry 0) +mbedtls_mpi_core_add_if:"100000000":"fefefefefefefefe":"fefefefffefefefe":0:"fefefefffefefefe":0 + +mbedtls_mpi_core_add_if #343: 0x100000000 + 0xfffffffffffffffe = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) +mbedtls_mpi_core_add_if:"100000000":"fffffffffffffffe":"fffffffe":1:"fffffffe":1 + +mbedtls_mpi_core_add_if #344: 0x100000000 + 0xffffffffffffffff = (0xffffffff, carry 1)/(0xffffffff, carry 1) +mbedtls_mpi_core_add_if:"100000000":"ffffffffffffffff":"ffffffff":1:"ffffffff":1 + +mbedtls_mpi_core_add_if #345: 0x100000000 + 0x10000000000000000 = (0x10000000100000000, carry 0)/(0x10000000100000000, carry 0) +mbedtls_mpi_core_add_if:"100000000":"10000000000000000":"10000000100000000":0:"10000000100000000":0 + +mbedtls_mpi_core_add_if #346: 0x100000000 + 0x1234567890abcdef0 = (0x12345678a0abcdef0, carry 0)/(0x12345678a0abcdef0, carry 0) +mbedtls_mpi_core_add_if:"100000000":"1234567890abcdef0":"12345678a0abcdef0":0:"12345678a0abcdef0":0 + +mbedtls_mpi_core_add_if #347: 0x100000000 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefffefefefe, carry 0)/(0xfffffffffffffffffefefefffefefefe, carry 0) +mbedtls_mpi_core_add_if:"100000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefffefefefe":0:"fffffffffffffffffefefefffefefefe":0 + +mbedtls_mpi_core_add_if #348: 0x100000000 + 0xfffffffffffffffffffffffffffffffe = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) +mbedtls_mpi_core_add_if:"100000000":"fffffffffffffffffffffffffffffffe":"fffffffe":1:"fffffffe":1 + +mbedtls_mpi_core_add_if #349: 0x100000000 + 0xffffffffffffffffffffffffffffffff = (0xffffffff, carry 1)/(0xffffffff, carry 1) +mbedtls_mpi_core_add_if:"100000000":"ffffffffffffffffffffffffffffffff":"ffffffff":1:"ffffffff":1 + +mbedtls_mpi_core_add_if #350: 0x100000000 + 0x100000000000000000000000000000000 = (0x100000000000000000000000100000000, carry 0)/(0x100000000000000000000000100000000, carry 0) +mbedtls_mpi_core_add_if:"100000000":"100000000000000000000000000000000":"100000000000000000000000100000000":0:"100000000000000000000000100000000":0 + +mbedtls_mpi_core_add_if #351: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef012345678a0abcdef0, carry 0)/(0x1234567890abcdef012345678a0abcdef0, carry 0) +mbedtls_mpi_core_add_if:"100000000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012345678a0abcdef0":0:"1234567890abcdef012345678a0abcdef0":0 + +mbedtls_mpi_core_add_if #352: 0x100000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe, carry 0) +mbedtls_mpi_core_add_if:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe":0 + +mbedtls_mpi_core_add_if #353: 0x100000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) +mbedtls_mpi_core_add_if:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffe":1:"fffffffe":1 + +mbedtls_mpi_core_add_if #354: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffffffff, carry 1)/(0xffffffff, carry 1) +mbedtls_mpi_core_add_if:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":1:"ffffffff":1 + +mbedtls_mpi_core_add_if #355: 0x100000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000100000000, carry 0)/(0x10000000000000000000000000000000000000000000000000000000100000000, carry 0) +mbedtls_mpi_core_add_if:"100000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000100000000":0:"10000000000000000000000000000000000000000000000000000000100000000":0 + +mbedtls_mpi_core_add_if #356: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0, carry 0) +mbedtls_mpi_core_add_if:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":0 + +mbedtls_mpi_core_add_if #357: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b, carry 0) +mbedtls_mpi_core_add_if:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":0 + +mbedtls_mpi_core_add_if #358: 0x1f7f7f7f7f7f7f + 0x1f7f7f7f7f7f7f = (0x3efefefefefefe, carry 0)/(0x3efefefefefefe, carry 0) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":"3efefefefefefe":0:"3efefefefefefe":0 + +mbedtls_mpi_core_add_if #359: 0x1f7f7f7f7f7f7f + 0x8000000000000000 = (0x801f7f7f7f7f7f7f, carry 0)/(0x801f7f7f7f7f7f7f, carry 0) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"8000000000000000":"801f7f7f7f7f7f7f":0:"801f7f7f7f7f7f7f":0 + +mbedtls_mpi_core_add_if #360: 0x1f7f7f7f7f7f7f + 0xfefefefefefefefe = (0xff1e7e7e7e7e7e7d, carry 0)/(0xff1e7e7e7e7e7e7d, carry 0) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"fefefefefefefefe":"ff1e7e7e7e7e7e7d":0:"ff1e7e7e7e7e7e7d":0 + +mbedtls_mpi_core_add_if #361: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffe = (0x1f7f7f7f7f7f7d, carry 1)/(0x1f7f7f7f7f7f7d, carry 1) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffe":"1f7f7f7f7f7f7d":1:"1f7f7f7f7f7f7d":1 + +mbedtls_mpi_core_add_if #362: 0x1f7f7f7f7f7f7f + 0xffffffffffffffff = (0x1f7f7f7f7f7f7e, carry 1)/(0x1f7f7f7f7f7f7e, carry 1) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"ffffffffffffffff":"1f7f7f7f7f7f7e":1:"1f7f7f7f7f7f7e":1 + +mbedtls_mpi_core_add_if #363: 0x1f7f7f7f7f7f7f + 0x10000000000000000 = (0x1001f7f7f7f7f7f7f, carry 0)/(0x1001f7f7f7f7f7f7f, carry 0) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"10000000000000000":"1001f7f7f7f7f7f7f":0:"1001f7f7f7f7f7f7f":0 + +mbedtls_mpi_core_add_if #364: 0x1f7f7f7f7f7f7f + 0x1234567890abcdef0 = (0x12364e7088a3c5e6f, carry 0)/(0x12364e7088a3c5e6f, carry 0) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"1234567890abcdef0":"12364e7088a3c5e6f":0:"12364e7088a3c5e6f":0 + +mbedtls_mpi_core_add_if #365: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffffefefefefefefefe = (0xffffffffffffffffff1e7e7e7e7e7e7d, carry 0)/(0xffffffffffffffffff1e7e7e7e7e7e7d, carry 0) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffff1e7e7e7e7e7e7d":0:"ffffffffffffffffff1e7e7e7e7e7e7d":0 + +mbedtls_mpi_core_add_if #366: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffffffffffffffffffe = (0x1f7f7f7f7f7f7d, carry 1)/(0x1f7f7f7f7f7f7d, carry 1) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7d":1:"1f7f7f7f7f7f7d":1 + +mbedtls_mpi_core_add_if #367: 0x1f7f7f7f7f7f7f + 0xffffffffffffffffffffffffffffffff = (0x1f7f7f7f7f7f7e, carry 1)/(0x1f7f7f7f7f7f7e, carry 1) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7e":1:"1f7f7f7f7f7f7e":1 + +mbedtls_mpi_core_add_if #368: 0x1f7f7f7f7f7f7f + 0x100000000000000000000000000000000 = (0x10000000000000000001f7f7f7f7f7f7f, carry 0)/(0x10000000000000000001f7f7f7f7f7f7f, carry 0) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"100000000000000000000000000000000":"10000000000000000001f7f7f7f7f7f7f":0:"10000000000000000001f7f7f7f7f7f7f":0 + +mbedtls_mpi_core_add_if #369: 0x1f7f7f7f7f7f7f + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef012364e7088a3c5e6f, carry 0)/(0x1234567890abcdef012364e7088a3c5e6f, carry 0) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012364e7088a3c5e6f":0:"1234567890abcdef012364e7088a3c5e6f":0 + +mbedtls_mpi_core_add_if #370: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d, carry 0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d, carry 0) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d":0:"ffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d":0 + +mbedtls_mpi_core_add_if #371: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x1f7f7f7f7f7f7d, carry 1)/(0x1f7f7f7f7f7f7d, carry 1) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7d":1:"1f7f7f7f7f7f7d":1 + +mbedtls_mpi_core_add_if #372: 0x1f7f7f7f7f7f7f + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x1f7f7f7f7f7f7e, carry 1)/(0x1f7f7f7f7f7f7e, carry 1) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7e":1:"1f7f7f7f7f7f7e":1 + +mbedtls_mpi_core_add_if #373: 0x1f7f7f7f7f7f7f + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f, carry 0)/(0x1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f, carry 0) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":0:"1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":0 + +mbedtls_mpi_core_add_if #374: 0x1f7f7f7f7f7f7f + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f, carry 0) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f":0:"1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f":0 + +mbedtls_mpi_core_add_if #375: 0x1f7f7f7f7f7f7f + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa, carry 0) +mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa":0 + +mbedtls_mpi_core_add_if #376: 0x8000000000000000 + 0x8000000000000000 = (0x0, carry 1)/(0x0, carry 1) +mbedtls_mpi_core_add_if:"8000000000000000":"8000000000000000":"0":1:"0":1 + +mbedtls_mpi_core_add_if #377: 0x8000000000000000 + 0xfefefefefefefefe = (0x7efefefefefefefe, carry 1)/(0x7efefefefefefefe, carry 1) +mbedtls_mpi_core_add_if:"8000000000000000":"fefefefefefefefe":"7efefefefefefefe":1:"7efefefefefefefe":1 + +mbedtls_mpi_core_add_if #378: 0x8000000000000000 + 0xfffffffffffffffe = (0x7ffffffffffffffe, carry 1)/(0x7ffffffffffffffe, carry 1) +mbedtls_mpi_core_add_if:"8000000000000000":"fffffffffffffffe":"7ffffffffffffffe":1:"7ffffffffffffffe":1 + +mbedtls_mpi_core_add_if #379: 0x8000000000000000 + 0xffffffffffffffff = (0x7fffffffffffffff, carry 1)/(0x7fffffffffffffff, carry 1) +mbedtls_mpi_core_add_if:"8000000000000000":"ffffffffffffffff":"7fffffffffffffff":1:"7fffffffffffffff":1 + +mbedtls_mpi_core_add_if #380: 0x8000000000000000 + 0x10000000000000000 = (0x18000000000000000, carry 0)/(0x18000000000000000, carry 0) +mbedtls_mpi_core_add_if:"8000000000000000":"10000000000000000":"18000000000000000":0:"18000000000000000":0 + +mbedtls_mpi_core_add_if #381: 0x8000000000000000 + 0x1234567890abcdef0 = (0x1a34567890abcdef0, carry 0)/(0x1a34567890abcdef0, carry 0) +mbedtls_mpi_core_add_if:"8000000000000000":"1234567890abcdef0":"1a34567890abcdef0":0:"1a34567890abcdef0":0 + +mbedtls_mpi_core_add_if #382: 0x8000000000000000 + 0xfffffffffffffffffefefefefefefefe = (0x7efefefefefefefe, carry 1)/(0x7efefefefefefefe, carry 1) +mbedtls_mpi_core_add_if:"8000000000000000":"fffffffffffffffffefefefefefefefe":"7efefefefefefefe":1:"7efefefefefefefe":1 + +mbedtls_mpi_core_add_if #383: 0x8000000000000000 + 0xfffffffffffffffffffffffffffffffe = (0x7ffffffffffffffe, carry 1)/(0x7ffffffffffffffe, carry 1) +mbedtls_mpi_core_add_if:"8000000000000000":"fffffffffffffffffffffffffffffffe":"7ffffffffffffffe":1:"7ffffffffffffffe":1 + +mbedtls_mpi_core_add_if #384: 0x8000000000000000 + 0xffffffffffffffffffffffffffffffff = (0x7fffffffffffffff, carry 1)/(0x7fffffffffffffff, carry 1) +mbedtls_mpi_core_add_if:"8000000000000000":"ffffffffffffffffffffffffffffffff":"7fffffffffffffff":1:"7fffffffffffffff":1 + +mbedtls_mpi_core_add_if #385: 0x8000000000000000 + 0x100000000000000000000000000000000 = (0x100000000000000008000000000000000, carry 0)/(0x100000000000000008000000000000000, carry 0) +mbedtls_mpi_core_add_if:"8000000000000000":"100000000000000000000000000000000":"100000000000000008000000000000000":0:"100000000000000008000000000000000":0 + +mbedtls_mpi_core_add_if #386: 0x8000000000000000 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01a34567890abcdef0, carry 0)/(0x1234567890abcdef01a34567890abcdef0, carry 0) +mbedtls_mpi_core_add_if:"8000000000000000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01a34567890abcdef0":0:"1234567890abcdef01a34567890abcdef0":0 + +mbedtls_mpi_core_add_if #387: 0x8000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0x7efefefefefefefe, carry 1)/(0x7efefefefefefefe, carry 1) +mbedtls_mpi_core_add_if:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"7efefefefefefefe":1:"7efefefefefefefe":1 + +mbedtls_mpi_core_add_if #388: 0x8000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x7ffffffffffffffe, carry 1)/(0x7ffffffffffffffe, carry 1) +mbedtls_mpi_core_add_if:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"7ffffffffffffffe":1:"7ffffffffffffffe":1 + +mbedtls_mpi_core_add_if #389: 0x8000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x7fffffffffffffff, carry 1)/(0x7fffffffffffffff, carry 1) +mbedtls_mpi_core_add_if:"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7fffffffffffffff":1:"7fffffffffffffff":1 + +mbedtls_mpi_core_add_if #390: 0x8000000000000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000008000000000000000, carry 0)/(0x10000000000000000000000000000000000000000000000008000000000000000, carry 0) +mbedtls_mpi_core_add_if:"8000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000008000000000000000":0:"10000000000000000000000000000000000000000000000008000000000000000":0 + +mbedtls_mpi_core_add_if #391: 0x8000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0, carry 0) +mbedtls_mpi_core_add_if:"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":0 + +mbedtls_mpi_core_add_if #392: 0x8000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b, carry 0) +mbedtls_mpi_core_add_if:"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":0 + +mbedtls_mpi_core_add_if #393: 0xfefefefefefefefe + 0xfefefefefefefefe = (0xfdfdfdfdfdfdfdfc, carry 1)/(0xfdfdfdfdfdfdfdfc, carry 1) +mbedtls_mpi_core_add_if:"fefefefefefefefe":"fefefefefefefefe":"fdfdfdfdfdfdfdfc":1:"fdfdfdfdfdfdfdfc":1 + +mbedtls_mpi_core_add_if #394: 0xfefefefefefefefe + 0xfffffffffffffffe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) +mbedtls_mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffe":"fefefefefefefefc":1:"fefefefefefefefc":1 + +mbedtls_mpi_core_add_if #395: 0xfefefefefefefefe + 0xffffffffffffffff = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) +mbedtls_mpi_core_add_if:"fefefefefefefefe":"ffffffffffffffff":"fefefefefefefefd":1:"fefefefefefefefd":1 + +mbedtls_mpi_core_add_if #396: 0xfefefefefefefefe + 0x10000000000000000 = (0x1fefefefefefefefe, carry 0)/(0x1fefefefefefefefe, carry 0) +mbedtls_mpi_core_add_if:"fefefefefefefefe":"10000000000000000":"1fefefefefefefefe":0:"1fefefefefefefefe":0 + +mbedtls_mpi_core_add_if #397: 0xfefefefefefefefe + 0x1234567890abcdef0 = (0x22244668809bbddee, carry 0)/(0x22244668809bbddee, carry 0) +mbedtls_mpi_core_add_if:"fefefefefefefefe":"1234567890abcdef0":"22244668809bbddee":0:"22244668809bbddee":0 + +mbedtls_mpi_core_add_if #398: 0xfefefefefefefefe + 0xfffffffffffffffffefefefefefefefe = (0xfdfdfdfdfdfdfdfc, carry 1)/(0xfdfdfdfdfdfdfdfc, carry 1) +mbedtls_mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fdfdfdfdfdfdfdfc":1:"fdfdfdfdfdfdfdfc":1 + +mbedtls_mpi_core_add_if #399: 0xfefefefefefefefe + 0xfffffffffffffffffffffffffffffffe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) +mbedtls_mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fefefefefefefefc":1:"fefefefefefefefc":1 + +mbedtls_mpi_core_add_if #400: 0xfefefefefefefefe + 0xffffffffffffffffffffffffffffffff = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) +mbedtls_mpi_core_add_if:"fefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fefefefefefefefd":1:"fefefefefefefefd":1 + +mbedtls_mpi_core_add_if #401: 0xfefefefefefefefe + 0x100000000000000000000000000000000 = (0x10000000000000000fefefefefefefefe, carry 0)/(0x10000000000000000fefefefefefefefe, carry 0) +mbedtls_mpi_core_add_if:"fefefefefefefefe":"100000000000000000000000000000000":"10000000000000000fefefefefefefefe":0:"10000000000000000fefefefefefefefe":0 + +mbedtls_mpi_core_add_if #402: 0xfefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef022244668809bbddee, carry 0)/(0x1234567890abcdef022244668809bbddee, carry 0) +mbedtls_mpi_core_add_if:"fefefefefefefefe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef022244668809bbddee":0:"1234567890abcdef022244668809bbddee":0 + +mbedtls_mpi_core_add_if #403: 0xfefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfdfdfdfdfdfdfdfc, carry 1)/(0xfdfdfdfdfdfdfdfc, carry 1) +mbedtls_mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fdfdfdfdfdfdfdfc":1:"fdfdfdfdfdfdfdfc":1 + +mbedtls_mpi_core_add_if #404: 0xfefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) +mbedtls_mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefefefefefefefc":1:"fefefefefefefefc":1 + +mbedtls_mpi_core_add_if #405: 0xfefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) +mbedtls_mpi_core_add_if:"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fefefefefefefefd":1:"fefefefefefefefd":1 + +mbedtls_mpi_core_add_if #406: 0xfefefefefefefefe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000fefefefefefefefe, carry 0)/(0x1000000000000000000000000000000000000000000000000fefefefefefefefe, carry 0) +mbedtls_mpi_core_add_if:"fefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000fefefefefefefefe":0:"1000000000000000000000000000000000000000000000000fefefefefefefefe":0 + +mbedtls_mpi_core_add_if #407: 0xfefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee, carry 0) +mbedtls_mpi_core_add_if:"fefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee":0:"1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee":0 + +mbedtls_mpi_core_add_if #408: 0xfefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029, carry 0) +mbedtls_mpi_core_add_if:"fefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029":0 + +mbedtls_mpi_core_add_if #409: 0xfffffffffffffffe + 0xfffffffffffffffe = (0xfffffffffffffffc, carry 1)/(0xfffffffffffffffc, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffe":"fffffffffffffffc":1:"fffffffffffffffc":1 + +mbedtls_mpi_core_add_if #410: 0xfffffffffffffffe + 0xffffffffffffffff = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffe":"ffffffffffffffff":"fffffffffffffffd":1:"fffffffffffffffd":1 + +mbedtls_mpi_core_add_if #411: 0xfffffffffffffffe + 0x10000000000000000 = (0x1fffffffffffffffe, carry 0)/(0x1fffffffffffffffe, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffe":"10000000000000000":"1fffffffffffffffe":0:"1fffffffffffffffe":0 + +mbedtls_mpi_core_add_if #412: 0xfffffffffffffffe + 0x1234567890abcdef0 = (0x2234567890abcdeee, carry 0)/(0x2234567890abcdeee, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffe":"1234567890abcdef0":"2234567890abcdeee":0:"2234567890abcdeee":0 + +mbedtls_mpi_core_add_if #413: 0xfffffffffffffffe + 0xfffffffffffffffffefefefefefefefe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffefefefefefefefe":"fefefefefefefefc":1:"fefefefefefefefc":1 + +mbedtls_mpi_core_add_if #414: 0xfffffffffffffffe + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffc, carry 1)/(0xfffffffffffffffc, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffc":1:"fffffffffffffffc":1 + +mbedtls_mpi_core_add_if #415: 0xfffffffffffffffe + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffd":1:"fffffffffffffffd":1 + +mbedtls_mpi_core_add_if #416: 0xfffffffffffffffe + 0x100000000000000000000000000000000 = (0x10000000000000000fffffffffffffffe, carry 0)/(0x10000000000000000fffffffffffffffe, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffe":"100000000000000000000000000000000":"10000000000000000fffffffffffffffe":0:"10000000000000000fffffffffffffffe":0 + +mbedtls_mpi_core_add_if #417: 0xfffffffffffffffe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef02234567890abcdeee, carry 0)/(0x1234567890abcdef02234567890abcdeee, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02234567890abcdeee":0:"1234567890abcdef02234567890abcdeee":0 + +mbedtls_mpi_core_add_if #418: 0xfffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefc":1:"fefefefefefefefc":1 + +mbedtls_mpi_core_add_if #419: 0xfffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffc, carry 1)/(0xfffffffffffffffc, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffc":1:"fffffffffffffffc":1 + +mbedtls_mpi_core_add_if #420: 0xfffffffffffffffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffd":1:"fffffffffffffffd":1 + +mbedtls_mpi_core_add_if #421: 0xfffffffffffffffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000fffffffffffffffe, carry 0)/(0x1000000000000000000000000000000000000000000000000fffffffffffffffe, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000fffffffffffffffe":0:"1000000000000000000000000000000000000000000000000fffffffffffffffe":0 + +mbedtls_mpi_core_add_if #422: 0xfffffffffffffffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":0:"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":0 + +mbedtls_mpi_core_add_if #423: 0xfffffffffffffffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":0 + +mbedtls_mpi_core_add_if #424: 0xffffffffffffffff + 0xffffffffffffffff = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) +mbedtls_mpi_core_add_if:"ffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":1:"fffffffffffffffe":1 + +mbedtls_mpi_core_add_if #425: 0xffffffffffffffff + 0x10000000000000000 = (0x1ffffffffffffffff, carry 0)/(0x1ffffffffffffffff, carry 0) +mbedtls_mpi_core_add_if:"ffffffffffffffff":"10000000000000000":"1ffffffffffffffff":0:"1ffffffffffffffff":0 + +mbedtls_mpi_core_add_if #426: 0xffffffffffffffff + 0x1234567890abcdef0 = (0x2234567890abcdeef, carry 0)/(0x2234567890abcdeef, carry 0) +mbedtls_mpi_core_add_if:"ffffffffffffffff":"1234567890abcdef0":"2234567890abcdeef":0:"2234567890abcdeef":0 + +mbedtls_mpi_core_add_if #427: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) +mbedtls_mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fefefefefefefefd":1:"fefefefefefefefd":1 + +mbedtls_mpi_core_add_if #428: 0xffffffffffffffff + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) +mbedtls_mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffffffffffffffffe":"fffffffffffffffd":1:"fffffffffffffffd":1 + +mbedtls_mpi_core_add_if #429: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) +mbedtls_mpi_core_add_if:"ffffffffffffffff":"ffffffffffffffffffffffffffffffff":"fffffffffffffffe":1:"fffffffffffffffe":1 + +mbedtls_mpi_core_add_if #430: 0xffffffffffffffff + 0x100000000000000000000000000000000 = (0x10000000000000000ffffffffffffffff, carry 0)/(0x10000000000000000ffffffffffffffff, carry 0) +mbedtls_mpi_core_add_if:"ffffffffffffffff":"100000000000000000000000000000000":"10000000000000000ffffffffffffffff":0:"10000000000000000ffffffffffffffff":0 + +mbedtls_mpi_core_add_if #431: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef02234567890abcdeef, carry 0)/(0x1234567890abcdef02234567890abcdeef, carry 0) +mbedtls_mpi_core_add_if:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02234567890abcdeef":0:"1234567890abcdef02234567890abcdeef":0 + +mbedtls_mpi_core_add_if #432: 0xffffffffffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) +mbedtls_mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefd":1:"fefefefefefefefd":1 + +mbedtls_mpi_core_add_if #433: 0xffffffffffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) +mbedtls_mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffd":1:"fffffffffffffffd":1 + +mbedtls_mpi_core_add_if #434: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) +mbedtls_mpi_core_add_if:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":1:"fffffffffffffffe":1 + +mbedtls_mpi_core_add_if #435: 0xffffffffffffffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000ffffffffffffffff, carry 0)/(0x1000000000000000000000000000000000000000000000000ffffffffffffffff, carry 0) +mbedtls_mpi_core_add_if:"ffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000ffffffffffffffff":0:"1000000000000000000000000000000000000000000000000ffffffffffffffff":0 + +mbedtls_mpi_core_add_if #436: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef, carry 0) +mbedtls_mpi_core_add_if:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef":0:"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef":0 + +mbedtls_mpi_core_add_if #437: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a, carry 0) +mbedtls_mpi_core_add_if:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a":0 + +mbedtls_mpi_core_add_if #438: 0x10000000000000000 + 0x10000000000000000 = (0x20000000000000000, carry 0)/(0x20000000000000000, carry 0) +mbedtls_mpi_core_add_if:"10000000000000000":"10000000000000000":"20000000000000000":0:"20000000000000000":0 + +mbedtls_mpi_core_add_if #439: 0x10000000000000000 + 0x1234567890abcdef0 = (0x2234567890abcdef0, carry 0)/(0x2234567890abcdef0, carry 0) +mbedtls_mpi_core_add_if:"10000000000000000":"1234567890abcdef0":"2234567890abcdef0":0:"2234567890abcdef0":0 + +mbedtls_mpi_core_add_if #440: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe = (0xfefefefefefefefe, carry 1)/(0xfefefefefefefefe, carry 1) +mbedtls_mpi_core_add_if:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fefefefefefefefe":1:"fefefefefefefefe":1 + +mbedtls_mpi_core_add_if #441: 0x10000000000000000 + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) +mbedtls_mpi_core_add_if:"10000000000000000":"fffffffffffffffffffffffffffffffe":"fffffffffffffffe":1:"fffffffffffffffe":1 + +mbedtls_mpi_core_add_if #442: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffff = (0xffffffffffffffff, carry 1)/(0xffffffffffffffff, carry 1) +mbedtls_mpi_core_add_if:"10000000000000000":"ffffffffffffffffffffffffffffffff":"ffffffffffffffff":1:"ffffffffffffffff":1 + +mbedtls_mpi_core_add_if #443: 0x10000000000000000 + 0x100000000000000000000000000000000 = (0x100000000000000010000000000000000, carry 0)/(0x100000000000000010000000000000000, carry 0) +mbedtls_mpi_core_add_if:"10000000000000000":"100000000000000000000000000000000":"100000000000000010000000000000000":0:"100000000000000010000000000000000":0 + +mbedtls_mpi_core_add_if #444: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef02234567890abcdef0, carry 0)/(0x1234567890abcdef02234567890abcdef0, carry 0) +mbedtls_mpi_core_add_if:"10000000000000000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02234567890abcdef0":0:"1234567890abcdef02234567890abcdef0":0 + +mbedtls_mpi_core_add_if #445: 0x10000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfefefefefefefefe, carry 1)/(0xfefefefefefefefe, carry 1) +mbedtls_mpi_core_add_if:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefe":1:"fefefefefefefefe":1 + +mbedtls_mpi_core_add_if #446: 0x10000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) +mbedtls_mpi_core_add_if:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffe":1:"fffffffffffffffe":1 + +mbedtls_mpi_core_add_if #447: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffffffffffffffff, carry 1)/(0xffffffffffffffff, carry 1) +mbedtls_mpi_core_add_if:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":1:"ffffffffffffffff":1 + +mbedtls_mpi_core_add_if #448: 0x10000000000000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000010000000000000000, carry 0)/(0x10000000000000000000000000000000000000000000000010000000000000000, carry 0) +mbedtls_mpi_core_add_if:"10000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000010000000000000000":0:"10000000000000000000000000000000000000000000000010000000000000000":0 + +mbedtls_mpi_core_add_if #449: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0, carry 0) +mbedtls_mpi_core_add_if:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":0 + +mbedtls_mpi_core_add_if #450: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b, carry 0) +mbedtls_mpi_core_add_if:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":0 + +mbedtls_mpi_core_add_if #451: 0x1234567890abcdef0 + 0x1234567890abcdef0 = (0x2468acf121579bde0, carry 0)/(0x2468acf121579bde0, carry 0) +mbedtls_mpi_core_add_if:"1234567890abcdef0":"1234567890abcdef0":"2468acf121579bde0":0:"2468acf121579bde0":0 + +mbedtls_mpi_core_add_if #452: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe = (0x12244668809bbddee, carry 1)/(0x12244668809bbddee, carry 1) +mbedtls_mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"12244668809bbddee":1:"12244668809bbddee":1 + +mbedtls_mpi_core_add_if #453: 0x1234567890abcdef0 + 0xfffffffffffffffffffffffffffffffe = (0x1234567890abcdeee, carry 1)/(0x1234567890abcdeee, carry 1) +mbedtls_mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1234567890abcdeee":1:"1234567890abcdeee":1 + +mbedtls_mpi_core_add_if #454: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffff = (0x1234567890abcdeef, carry 1)/(0x1234567890abcdeef, carry 1) +mbedtls_mpi_core_add_if:"1234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1234567890abcdeef":1:"1234567890abcdeef":1 + +mbedtls_mpi_core_add_if #455: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 = (0x10000000000000001234567890abcdef0, carry 0)/(0x10000000000000001234567890abcdef0, carry 0) +mbedtls_mpi_core_add_if:"1234567890abcdef0":"100000000000000000000000000000000":"10000000000000001234567890abcdef0":0:"10000000000000001234567890abcdef0":0 + +mbedtls_mpi_core_add_if #456: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef02468acf121579bde0, carry 0)/(0x1234567890abcdef02468acf121579bde0, carry 0) +mbedtls_mpi_core_add_if:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02468acf121579bde0":0:"1234567890abcdef02468acf121579bde0":0 + +mbedtls_mpi_core_add_if #457: 0x1234567890abcdef0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0x12244668809bbddee, carry 1)/(0x12244668809bbddee, carry 1) +mbedtls_mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"12244668809bbddee":1:"12244668809bbddee":1 + +mbedtls_mpi_core_add_if #458: 0x1234567890abcdef0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x1234567890abcdeee, carry 1)/(0x1234567890abcdeee, carry 1) +mbedtls_mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdeee":1:"1234567890abcdeee":1 + +mbedtls_mpi_core_add_if #459: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x1234567890abcdeef, carry 1)/(0x1234567890abcdeef, carry 1) +mbedtls_mpi_core_add_if:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdeef":1:"1234567890abcdeef":1 + +mbedtls_mpi_core_add_if #460: 0x1234567890abcdef0 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000001234567890abcdef0, carry 0)/(0x1000000000000000000000000000000000000000000000001234567890abcdef0, carry 0) +mbedtls_mpi_core_add_if:"1234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000001234567890abcdef0":0:"1000000000000000000000000000000000000000000000001234567890abcdef0":0 + +mbedtls_mpi_core_add_if #461: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0, carry 0) +mbedtls_mpi_core_add_if:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0":0:"1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0":0 + +mbedtls_mpi_core_add_if #462: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b, carry 0) +mbedtls_mpi_core_add_if:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b":0 + +mbedtls_mpi_core_add_if #463: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffdfdfdfdfdfdfdfc, carry 1)/(0xfffffffffffffffffdfdfdfdfdfdfdfc, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffdfdfdfdfdfdfdfc":1:"fffffffffffffffffdfdfdfdfdfdfdfc":1 + +mbedtls_mpi_core_add_if #464: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffffefefefefefefefc, carry 1)/(0xfffffffffffffffffefefefefefefefc, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefc":1:"fffffffffffffffffefefefefefefefc":1 + +mbedtls_mpi_core_add_if #465: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffffefefefefefefefd, carry 1)/(0xfffffffffffffffffefefefefefefefd, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefd":1:"fffffffffffffffffefefefefefefefd":1 + +mbedtls_mpi_core_add_if #466: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 = (0x1fffffffffffffffffefefefefefefefe, carry 0)/(0x1fffffffffffffffffefefefefefefefe, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"1fffffffffffffffffefefefefefefefe":0:"1fffffffffffffffffefefefefefefefe":0 + +mbedtls_mpi_core_add_if #467: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 = (0x1334567890abcdef012244668809bbddee, carry 0)/(0x1334567890abcdef012244668809bbddee, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"1334567890abcdef012244668809bbddee":0:"1334567890abcdef012244668809bbddee":0 + +mbedtls_mpi_core_add_if #468: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffdfdfdfdfdfdfdfc, carry 1)/(0xfffffffffffffffffdfdfdfdfdfdfdfc, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffdfdfdfdfdfdfdfc":1:"fffffffffffffffffdfdfdfdfdfdfdfc":1 + +mbedtls_mpi_core_add_if #469: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffefefefefefefefc, carry 1)/(0xfffffffffffffffffefefefefefefefc, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefc":1:"fffffffffffffffffefefefefefefefc":1 + +mbedtls_mpi_core_add_if #470: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffefefefefefefefd, carry 1)/(0xfffffffffffffffffefefefefefefefd, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefd":1:"fffffffffffffffffefefefefefefefd":1 + +mbedtls_mpi_core_add_if #471: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000fffffffffffffffffefefefefefefefe, carry 0)/(0x100000000000000000000000000000000fffffffffffffffffefefefefefefefe, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000fffffffffffffffffefefefefefefefe":0:"100000000000000000000000000000000fffffffffffffffffefefefefefefefe":0 + +mbedtls_mpi_core_add_if #472: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee, carry 0)/(0x1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee":0:"1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee":0 + +mbedtls_mpi_core_add_if #473: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029":0 + +mbedtls_mpi_core_add_if #474: 0xfffffffffffffffffffffffffffffffe + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffc, carry 1)/(0xfffffffffffffffffffffffffffffffc, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffc":1:"fffffffffffffffffffffffffffffffc":1 + +mbedtls_mpi_core_add_if #475: 0xfffffffffffffffffffffffffffffffe + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffd, carry 1)/(0xfffffffffffffffffffffffffffffffd, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffd":1 + +mbedtls_mpi_core_add_if #476: 0xfffffffffffffffffffffffffffffffe + 0x100000000000000000000000000000000 = (0x1fffffffffffffffffffffffffffffffe, carry 0)/(0x1fffffffffffffffffffffffffffffffe, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"1fffffffffffffffffffffffffffffffe":0:"1fffffffffffffffffffffffffffffffe":0 + +mbedtls_mpi_core_add_if #477: 0xfffffffffffffffffffffffffffffffe + 0x1234567890abcdef01234567890abcdef0 = (0x1334567890abcdef01234567890abcdeee, carry 0)/(0x1334567890abcdef01234567890abcdeee, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef0":"1334567890abcdef01234567890abcdeee":0:"1334567890abcdef01234567890abcdeee":0 + +mbedtls_mpi_core_add_if #478: 0xfffffffffffffffffffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefefc, carry 1)/(0xfffffffffffffffffefefefefefefefc, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefc":1:"fffffffffffffffffefefefefefefefc":1 + +mbedtls_mpi_core_add_if #479: 0xfffffffffffffffffffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffc, carry 1)/(0xfffffffffffffffffffffffffffffffc, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffc":1:"fffffffffffffffffffffffffffffffc":1 + +mbedtls_mpi_core_add_if #480: 0xfffffffffffffffffffffffffffffffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffd, carry 1)/(0xfffffffffffffffffffffffffffffffd, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffd":1 + +mbedtls_mpi_core_add_if #481: 0xfffffffffffffffffffffffffffffffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000fffffffffffffffffffffffffffffffe, carry 0)/(0x100000000000000000000000000000000fffffffffffffffffffffffffffffffe, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000fffffffffffffffffffffffffffffffe":0:"100000000000000000000000000000000fffffffffffffffffffffffffffffffe":0 + +mbedtls_mpi_core_add_if #482: 0xfffffffffffffffffffffffffffffffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee, carry 0)/(0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee":0:"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee":0 + +mbedtls_mpi_core_add_if #483: 0xfffffffffffffffffffffffffffffffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129":0 + +mbedtls_mpi_core_add_if #484: 0xffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffe, carry 1)/(0xfffffffffffffffffffffffffffffffe, carry 1) +mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffe":1 + +mbedtls_mpi_core_add_if #485: 0xffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 = (0x1ffffffffffffffffffffffffffffffff, carry 0)/(0x1ffffffffffffffffffffffffffffffff, carry 0) +mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"1ffffffffffffffffffffffffffffffff":0:"1ffffffffffffffffffffffffffffffff":0 + +mbedtls_mpi_core_add_if #486: 0xffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 = (0x1334567890abcdef01234567890abcdeef, carry 0)/(0x1334567890abcdef01234567890abcdeef, carry 0) +mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"1334567890abcdef01234567890abcdeef":0:"1334567890abcdef01234567890abcdeef":0 + +mbedtls_mpi_core_add_if #487: 0xffffffffffffffffffffffffffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefefd, carry 1)/(0xfffffffffffffffffefefefefefefefd, carry 1) +mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefd":1:"fffffffffffffffffefefefefefefefd":1 + +mbedtls_mpi_core_add_if #488: 0xffffffffffffffffffffffffffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffd, carry 1)/(0xfffffffffffffffffffffffffffffffd, carry 1) +mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffd":1 + +mbedtls_mpi_core_add_if #489: 0xffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffe, carry 1)/(0xfffffffffffffffffffffffffffffffe, carry 1) +mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffe":1 + +mbedtls_mpi_core_add_if #490: 0xffffffffffffffffffffffffffffffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000ffffffffffffffffffffffffffffffff, carry 0)/(0x100000000000000000000000000000000ffffffffffffffffffffffffffffffff, carry 0) +mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000ffffffffffffffffffffffffffffffff":0:"100000000000000000000000000000000ffffffffffffffffffffffffffffffff":0 + +mbedtls_mpi_core_add_if #491: 0xffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef, carry 0)/(0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef, carry 0) +mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef":0:"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef":0 + +mbedtls_mpi_core_add_if #492: 0xffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a, carry 0) +mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a":0 + +mbedtls_mpi_core_add_if #493: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 = (0x200000000000000000000000000000000, carry 0)/(0x200000000000000000000000000000000, carry 0) +mbedtls_mpi_core_add_if:"100000000000000000000000000000000":"100000000000000000000000000000000":"200000000000000000000000000000000":0:"200000000000000000000000000000000":0 + +mbedtls_mpi_core_add_if #494: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 = (0x1334567890abcdef01234567890abcdef0, carry 0)/(0x1334567890abcdef01234567890abcdef0, carry 0) +mbedtls_mpi_core_add_if:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"1334567890abcdef01234567890abcdef0":0:"1334567890abcdef01234567890abcdef0":0 + +mbedtls_mpi_core_add_if #495: 0x100000000000000000000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefefe, carry 1)/(0xfffffffffffffffffefefefefefefefe, carry 1) +mbedtls_mpi_core_add_if:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":1:"fffffffffffffffffefefefefefefefe":1 + +mbedtls_mpi_core_add_if #496: 0x100000000000000000000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffe, carry 1)/(0xfffffffffffffffffffffffffffffffe, carry 1) +mbedtls_mpi_core_add_if:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffe":1 + +mbedtls_mpi_core_add_if #497: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffffffffffffffffffffffffffffffff, carry 1)/(0xffffffffffffffffffffffffffffffff, carry 1) +mbedtls_mpi_core_add_if:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1:"ffffffffffffffffffffffffffffffff":1 + +mbedtls_mpi_core_add_if #498: 0x100000000000000000000000000000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000100000000000000000000000000000000, carry 0)/(0x10000000000000000000000000000000100000000000000000000000000000000, carry 0) +mbedtls_mpi_core_add_if:"100000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000100000000000000000000000000000000":0:"10000000000000000000000000000000100000000000000000000000000000000":0 + +mbedtls_mpi_core_add_if #499: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0, carry 0) +mbedtls_mpi_core_add_if:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0":0:"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0":0 + +mbedtls_mpi_core_add_if #500: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b, carry 0) +mbedtls_mpi_core_add_if:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b":0 + +mbedtls_mpi_core_add_if #501: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 = (0x2468acf121579bde02468acf121579bde0, carry 0)/(0x2468acf121579bde02468acf121579bde0, carry 0) +mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"2468acf121579bde02468acf121579bde0":0:"2468acf121579bde02468acf121579bde0":0 + +mbedtls_mpi_core_add_if #502: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0x1234567890abcdef012244668809bbddee, carry 1)/(0x1234567890abcdef012244668809bbddee, carry 1) +mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef012244668809bbddee":1:"1234567890abcdef012244668809bbddee":1 + +mbedtls_mpi_core_add_if #503: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x1234567890abcdef01234567890abcdeee, carry 1)/(0x1234567890abcdef01234567890abcdeee, carry 1) +mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdeee":1:"1234567890abcdef01234567890abcdeee":1 + +mbedtls_mpi_core_add_if #504: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x1234567890abcdef01234567890abcdeef, carry 1)/(0x1234567890abcdef01234567890abcdeef, carry 1) +mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdeef":1:"1234567890abcdef01234567890abcdeef":1 + +mbedtls_mpi_core_add_if #505: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000001234567890abcdef01234567890abcdef0, carry 0)/(0x10000000000000000000000000000001234567890abcdef01234567890abcdef0, carry 0) +mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000001234567890abcdef01234567890abcdef0":0:"10000000000000000000000000000001234567890abcdef01234567890abcdef0":0 + +mbedtls_mpi_core_add_if #506: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0, carry 0)/(0x1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0, carry 0) +mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0":0:"1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0":0 + +mbedtls_mpi_core_add_if #507: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b, carry 0) +mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b":0 + +mbedtls_mpi_core_add_if #508: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc":1:"fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc":1 + +mbedtls_mpi_core_add_if #509: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc":1:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc":1 + +mbedtls_mpi_core_add_if #510: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":1:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":1 + +mbedtls_mpi_core_add_if #511: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0)/(0x1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0:"1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0 + +mbedtls_mpi_core_add_if #512: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee, carry 0)/(0x1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee":0:"1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee":0 + +mbedtls_mpi_core_add_if #513: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029":0 + +mbedtls_mpi_core_add_if #514: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":1 + +mbedtls_mpi_core_add_if #515: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 1) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":1 + +mbedtls_mpi_core_add_if #516: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0)/(0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0:"1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 + +mbedtls_mpi_core_add_if #517: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee, carry 0)/(0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee":0:"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee":0 + +mbedtls_mpi_core_add_if #518: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129, carry 0) +mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129":0 + +mbedtls_mpi_core_add_if #519: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 1) +mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":1 + +mbedtls_mpi_core_add_if #520: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0)/(0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0) +mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0:"1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 + +mbedtls_mpi_core_add_if #521: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef, carry 0)/(0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef, carry 0) +mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":0:"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":0 + +mbedtls_mpi_core_add_if #522: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a, carry 0) +mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":0 + +mbedtls_mpi_core_add_if #523: 0x10000000000000000000000000000000000000000000000000000000000000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x20000000000000000000000000000000000000000000000000000000000000000, carry 0)/(0x20000000000000000000000000000000000000000000000000000000000000000, carry 0) +mbedtls_mpi_core_add_if:"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"20000000000000000000000000000000000000000000000000000000000000000":0:"20000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_core_add_if #524: 0x10000000000000000000000000000000000000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0)/(0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0) +mbedtls_mpi_core_add_if:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0:"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 + +mbedtls_mpi_core_add_if #525: 0x10000000000000000000000000000000000000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0) +mbedtls_mpi_core_add_if:"10000000000000000000000000000000000000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 + +mbedtls_mpi_core_add_if #526: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0, carry 0)/(0x2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0, carry 0) +mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0":0:"2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0":0 + +mbedtls_mpi_core_add_if #527: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b, carry 0) +mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b":0 + +mbedtls_mpi_core_add_if #528: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256, carry 0)/(0x9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256, carry 0) +mbedtls_mpi_core_add_if:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256":0:"9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256":0 + MPI Selftest depends_on:MBEDTLS_SELF_TEST mpi_selftest: diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index dae3262259..6cdc2e0bbd 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1720,6 +1720,100 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mbedtls_mpi_core_add_if( char * input_l, char * input_r, + char * input_X4, int carry4, + char * input_X8, int carry8 ) +{ + mbedtls_mpi X4, X8, l, r; + mbedtls_mpi_uint *la = NULL; + mbedtls_mpi_uint *ra = NULL; + mbedtls_mpi_uint *Xa = NULL; + mbedtls_mpi_uint *da = NULL; + + mbedtls_mpi_init( &X4 ); + mbedtls_mpi_init( &X8 ); + mbedtls_mpi_init( &l ); + mbedtls_mpi_init( &r ); + + TEST_EQUAL( mbedtls_test_read_mpi( &l, input_l ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &r, input_r ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &X4, input_X4 ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &X8, input_X8 ), 0 ); + + /* We only need to work with one of (X4, carry4) or (X8, carry8) depending + * on sizeof(mbedtls_mpi_uint) + */ + mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; + mbedtls_mpi_uint carry = ( sizeof(mbedtls_mpi_uint) == 4 ) ? carry4 : carry8; + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( l.s, 1 ); + TEST_EQUAL( r.s, 1 ); + TEST_EQUAL( X->s, 1 ); + + /* Test cases are such that l <= r, so #limbs should be <= */ + TEST_ASSERT( l.n <= r.n ); + TEST_ASSERT( X->n <= r.n ); + + /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ + la = mbedtls_calloc( r.n, sizeof(mbedtls_mpi_uint) ); + ra = mbedtls_calloc( r.n, sizeof(mbedtls_mpi_uint) ); + Xa = mbedtls_calloc( r.n, sizeof(mbedtls_mpi_uint) ); + da = mbedtls_calloc( r.n, sizeof(mbedtls_mpi_uint) ); + + TEST_ASSERT( la != NULL ); + TEST_ASSERT( ra != NULL ); + TEST_ASSERT( Xa != NULL ); + TEST_ASSERT( da != NULL ); + + /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as + * processed by mbedtls_mpi_core_add_if()) are little endian, we can just + * copy what we have as long as MSBs are 0 (which they are from calloc()) + */ + memcpy( la, l.p, l.n * sizeof(mbedtls_mpi_uint) ); + memcpy( ra, r.p, r.n * sizeof(mbedtls_mpi_uint) ); + memcpy( Xa, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + + /* 1a) a += b, cond = 0 => there should be no carry */ + memcpy( da, la, r.n * sizeof(mbedtls_mpi_uint) ); + TEST_EQUAL( mbedtls_mpi_core_add_if( da, ra, r.n, 0 ), 0 ); + + /* 1b) and a should be unchanged */ + TEST_EQUAL( memcmp( da, la, r.n * sizeof(mbedtls_mpi_uint) ), 0 ); + + /* 2a) a += b, cond = 1 => we should get the correct carry */ + TEST_EQUAL( mbedtls_mpi_core_add_if( da, ra, r.n, 1 ), carry ); + + /* 2b) and a should have the correct result */ + TEST_EQUAL( memcmp( da, Xa, r.n * sizeof(mbedtls_mpi_uint) ), 0 ); + + /* 3a) b += a, cond = 0 => there should be no carry */ + memcpy( da, ra, r.n * sizeof(mbedtls_mpi_uint) ); + TEST_EQUAL( mbedtls_mpi_core_add_if( da, la, r.n, 0 ), 0 ); + + /* 3b) and b should be unchanged */ + TEST_EQUAL( memcmp( da, ra, r.n * sizeof(mbedtls_mpi_uint) ), 0 ); + + /* 4a) b += a, cond = 1 => we should get the correct carry */ + TEST_EQUAL( mbedtls_mpi_core_add_if( da, la, r.n, 1 ), carry ); + + /* 4b) and b should have the correct result */ + TEST_EQUAL( memcmp( da, Xa, r.n * sizeof(mbedtls_mpi_uint) ), 0 ); + +exit: + mbedtls_free( la ); + mbedtls_free( ra ); + mbedtls_free( Xa ); + mbedtls_free( da ); + + mbedtls_mpi_free( &X4 ); + mbedtls_mpi_free( &X8 ); + mbedtls_mpi_free( &l ); + mbedtls_mpi_free( &r ); +} +/* END_CASE */ + /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ void mpi_selftest( ) { From 2a65b8592856430b5d8c837d88d5699195788705 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 17 Aug 2022 05:43:54 +0100 Subject: [PATCH 0029/1028] Add unit tests for the new function mbedtls_mpi_core_sub() in bignum_new.c The test cases use the following MPI values. The .data file includes two results, for the cases when sizeof(mbedtls_mpi_uint) == 4 or 8. 0 1 3 f fe ff 100 ff00 fffe ffff 10000 fffffffe ffffffff 100000000 1f7f7f7f7f7f7f 8000000000000000 fefefefefefefefe fffffffffffffffe ffffffffffffffff 10000000000000000 1234567890abcdef0 fffffffffffffffffefefefefefefefe fffffffffffffffffffffffffffffffe ffffffffffffffffffffffffffffffff 100000000000000000000000000000000 1234567890abcdef01234567890abcdef0 fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 10000000000000000000000000000000000000000000000000000000000000000 1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b The lines in the .data file were generated by the following script #!/usr/bin/env perl # # mpi-test-core-sub.pl - generate/run MPI tests in Perl for mbedtls_mpi_core_sub() # use strict; use warnings; use Math::BigInt; use sort 'stable'; my @sub_mpis = qw( 0 1 3 f fe ff 100 ff00 fffe ffff 10000 fffffffe ffffffff 100000000 1f7f7f7f7f7f7f 8000000000000000 fefefefefefefefe fffffffffffffffe ffffffffffffffff 10000000000000000 1234567890abcdef0 fffffffffffffffffefefefefefefefe fffffffffffffffffffffffffffffffe ffffffffffffffffffffffffffffffff 100000000000000000000000000000000 1234567890abcdef01234567890abcdef0 fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 10000000000000000000000000000000000000000000000000000000000000000 1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b ); generate_tests(); sub generate_tests { generate_mbedtls_mpi_core_sub(); } sub generate_mbedtls_mpi_core_sub { my $sub_name = (caller(0))[3]; # e.g. main::generate_mbedtls_mpi_sub_mpi my ($ignore, $test_name) = split("main::generate_", $sub_name); my @cases = (); for my $ah (@sub_mpis) { for my $bh (@sub_mpis) { my $a = Math::BigInt->from_hex($ah); my $b = Math::BigInt->from_hex($bh); my ($rh4, $rh8, $carry); if ($a >= $b) { my $r = $a - $b; $rh4 = $rh8 = $r->to_hex(); $carry = 0; } else { my $r4 = bound_mpi4($b) + $a - $b; my $r8 = bound_mpi8($b) + $a - $b; $rh4 = $r4->to_hex(); $rh8 = $r8->to_hex(); $carry = 1; } my $desc = "$test_name #NUMBER: 0x$ah - 0x$bh = 0x$rh4/${rh8}EXPLAIN, carry ${carry}"; my $case = output($test_name, str($ah), str($bh), str($rh4), str($rh8), $carry); push(@cases, [$case, $desc]); } } output_cases(" (for when sizeof(mbedtls_mpi_uint) == 4/8)", @cases); } sub output_cases { my ($explain, @cases) = @_; my $count = 1; for my $c (@cases) { my ($case, $desc, $dep) = @$c; $desc =~ s/NUMBER/$count/; $count++; if (defined($explain) && $desc =~ /EXPLAIN/) { $desc =~ s/EXPLAIN/$explain/; $explain = ""; } my $depends = ""; $depends = "depends_on:$dep\n" if defined($dep) && length($dep); print <new(1); # blsft modifies caller return $one->blsft(bits_mpi4($_[0])); } sub bound_mpi8 { my $one = Math::BigInt->new(1); # blsft modifies caller return $one->blsft(bits_mpi8($_[0])); } # How many bits (a multiple of 32) needed to store the specified number # when using 4-byte MPIs sub bits_mpi4 { return 32 * mpi4s($_[0]); } # How many bits (a multiple of 64) needed to store the specified number # when using 8-byte MPIs sub bits_mpi8 { return 64 * mpi8s($_[0]); } # How many 4-byte MPIs needed to store the specified number sub mpi4s { my ($n) = @_; my $h = $n->to_hex(); return int((length($h) + 7) / 8); } # How many 8-byte MPIs needed to store the specified number sub mpi8s { my ($n) = @_; my $h = $n->to_hex(); return int((length($h) + 15) / 16); } sub output { return join(":", @_); } sub str { return '"' . $_[0] . '"'; } Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.data | 3072 ++++++++++++++++++++++++++ tests/suites/test_suite_mpi.function | 89 + 2 files changed, 3161 insertions(+) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index af5c11047a..3323c8e4cd 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -3866,6 +3866,3078 @@ mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef01234567890abcdef01234 mbedtls_mpi_core_add_if #528: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256, carry 0)/(0x9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256, carry 0) mbedtls_mpi_core_add_if:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256":0:"9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256":0 +mbedtls_mpi_core_sub #1: 0x0 - 0x0 = 0x0/0 (for when sizeof(mbedtls_mpi_uint) == 4/8), carry 0 +mbedtls_mpi_core_sub:"0":"0":"0":"0":0 + +mbedtls_mpi_core_sub #2: 0x0 - 0x1 = 0xffffffff/ffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"0":"1":"ffffffff":"ffffffffffffffff":1 + +mbedtls_mpi_core_sub #3: 0x0 - 0x3 = 0xfffffffd/fffffffffffffffd, carry 1 +mbedtls_mpi_core_sub:"0":"3":"fffffffd":"fffffffffffffffd":1 + +mbedtls_mpi_core_sub #4: 0x0 - 0xf = 0xfffffff1/fffffffffffffff1, carry 1 +mbedtls_mpi_core_sub:"0":"f":"fffffff1":"fffffffffffffff1":1 + +mbedtls_mpi_core_sub #5: 0x0 - 0xfe = 0xffffff02/ffffffffffffff02, carry 1 +mbedtls_mpi_core_sub:"0":"fe":"ffffff02":"ffffffffffffff02":1 + +mbedtls_mpi_core_sub #6: 0x0 - 0xff = 0xffffff01/ffffffffffffff01, carry 1 +mbedtls_mpi_core_sub:"0":"ff":"ffffff01":"ffffffffffffff01":1 + +mbedtls_mpi_core_sub #7: 0x0 - 0x100 = 0xffffff00/ffffffffffffff00, carry 1 +mbedtls_mpi_core_sub:"0":"100":"ffffff00":"ffffffffffffff00":1 + +mbedtls_mpi_core_sub #8: 0x0 - 0xff00 = 0xffff0100/ffffffffffff0100, carry 1 +mbedtls_mpi_core_sub:"0":"ff00":"ffff0100":"ffffffffffff0100":1 + +mbedtls_mpi_core_sub #9: 0x0 - 0xfffe = 0xffff0002/ffffffffffff0002, carry 1 +mbedtls_mpi_core_sub:"0":"fffe":"ffff0002":"ffffffffffff0002":1 + +mbedtls_mpi_core_sub #10: 0x0 - 0xffff = 0xffff0001/ffffffffffff0001, carry 1 +mbedtls_mpi_core_sub:"0":"ffff":"ffff0001":"ffffffffffff0001":1 + +mbedtls_mpi_core_sub #11: 0x0 - 0x10000 = 0xffff0000/ffffffffffff0000, carry 1 +mbedtls_mpi_core_sub:"0":"10000":"ffff0000":"ffffffffffff0000":1 + +mbedtls_mpi_core_sub #12: 0x0 - 0xfffffffe = 0x2/ffffffff00000002, carry 1 +mbedtls_mpi_core_sub:"0":"fffffffe":"2":"ffffffff00000002":1 + +mbedtls_mpi_core_sub #13: 0x0 - 0xffffffff = 0x1/ffffffff00000001, carry 1 +mbedtls_mpi_core_sub:"0":"ffffffff":"1":"ffffffff00000001":1 + +mbedtls_mpi_core_sub #14: 0x0 - 0x100000000 = 0xffffffff00000000/ffffffff00000000, carry 1 +mbedtls_mpi_core_sub:"0":"100000000":"ffffffff00000000":"ffffffff00000000":1 + +mbedtls_mpi_core_sub #15: 0x0 - 0x1f7f7f7f7f7f7f = 0xffe0808080808081/ffe0808080808081, carry 1 +mbedtls_mpi_core_sub:"0":"1f7f7f7f7f7f7f":"ffe0808080808081":"ffe0808080808081":1 + +mbedtls_mpi_core_sub #16: 0x0 - 0x8000000000000000 = 0x8000000000000000/8000000000000000, carry 1 +mbedtls_mpi_core_sub:"0":"8000000000000000":"8000000000000000":"8000000000000000":1 + +mbedtls_mpi_core_sub #17: 0x0 - 0xfefefefefefefefe = 0x101010101010102/101010101010102, carry 1 +mbedtls_mpi_core_sub:"0":"fefefefefefefefe":"101010101010102":"101010101010102":1 + +mbedtls_mpi_core_sub #18: 0x0 - 0xfffffffffffffffe = 0x2/2, carry 1 +mbedtls_mpi_core_sub:"0":"fffffffffffffffe":"2":"2":1 + +mbedtls_mpi_core_sub #19: 0x0 - 0xffffffffffffffff = 0x1/1, carry 1 +mbedtls_mpi_core_sub:"0":"ffffffffffffffff":"1":"1":1 + +mbedtls_mpi_core_sub #20: 0x0 - 0x10000000000000000 = 0xffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 1 +mbedtls_mpi_core_sub:"0":"10000000000000000":"ffffffff0000000000000000":"ffffffffffffffff0000000000000000":1 + +mbedtls_mpi_core_sub #21: 0x0 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5432110/fffffffffffffffedcba9876f5432110, carry 1 +mbedtls_mpi_core_sub:"0":"1234567890abcdef0":"fffffffedcba9876f5432110":"fffffffffffffffedcba9876f5432110":1 + +mbedtls_mpi_core_sub #22: 0x0 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010102/101010101010102, carry 1 +mbedtls_mpi_core_sub:"0":"fffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":1 + +mbedtls_mpi_core_sub #23: 0x0 - 0xfffffffffffffffffffffffffffffffe = 0x2/2, carry 1 +mbedtls_mpi_core_sub:"0":"fffffffffffffffffffffffffffffffe":"2":"2":1 + +mbedtls_mpi_core_sub #24: 0x0 - 0xffffffffffffffffffffffffffffffff = 0x1/1, carry 1 +mbedtls_mpi_core_sub:"0":"ffffffffffffffffffffffffffffffff":"1":"1":1 + +mbedtls_mpi_core_sub #25: 0x0 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000/ffffffffffffffff00000000000000000000000000000000, carry 1 +mbedtls_mpi_core_sub:"0":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000000":"ffffffffffffffff00000000000000000000000000000000":1 + +mbedtls_mpi_core_sub #26: 0x0 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5432110/ffffffffffffffedcba9876f543210fedcba9876f5432110, carry 1 +mbedtls_mpi_core_sub:"0":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432110":"ffffffffffffffedcba9876f543210fedcba9876f5432110":1 + +mbedtls_mpi_core_sub #27: 0x0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010102/101010101010102, carry 1 +mbedtls_mpi_core_sub:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":1 + +mbedtls_mpi_core_sub #28: 0x0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x2/2, carry 1 +mbedtls_mpi_core_sub:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2":"2":1 + +mbedtls_mpi_core_sub #29: 0x0 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1/1, carry 1 +mbedtls_mpi_core_sub:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"1":1 + +mbedtls_mpi_core_sub #30: 0x0 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000000000/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000, carry 1 +mbedtls_mpi_core_sub:"0":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000":1 + +mbedtls_mpi_core_sub #31: 0x0 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110, carry 1 +mbedtls_mpi_core_sub:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":1 + +mbedtls_mpi_core_sub #32: 0x0 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5, carry 1 +mbedtls_mpi_core_sub:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":1 + +mbedtls_mpi_core_sub #33: 0x1 - 0x0 = 0x1/1, carry 0 +mbedtls_mpi_core_sub:"1":"0":"1":"1":0 + +mbedtls_mpi_core_sub #34: 0x1 - 0x1 = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"1":"1":"0":"0":0 + +mbedtls_mpi_core_sub #35: 0x1 - 0x3 = 0xfffffffe/fffffffffffffffe, carry 1 +mbedtls_mpi_core_sub:"1":"3":"fffffffe":"fffffffffffffffe":1 + +mbedtls_mpi_core_sub #36: 0x1 - 0xf = 0xfffffff2/fffffffffffffff2, carry 1 +mbedtls_mpi_core_sub:"1":"f":"fffffff2":"fffffffffffffff2":1 + +mbedtls_mpi_core_sub #37: 0x1 - 0xfe = 0xffffff03/ffffffffffffff03, carry 1 +mbedtls_mpi_core_sub:"1":"fe":"ffffff03":"ffffffffffffff03":1 + +mbedtls_mpi_core_sub #38: 0x1 - 0xff = 0xffffff02/ffffffffffffff02, carry 1 +mbedtls_mpi_core_sub:"1":"ff":"ffffff02":"ffffffffffffff02":1 + +mbedtls_mpi_core_sub #39: 0x1 - 0x100 = 0xffffff01/ffffffffffffff01, carry 1 +mbedtls_mpi_core_sub:"1":"100":"ffffff01":"ffffffffffffff01":1 + +mbedtls_mpi_core_sub #40: 0x1 - 0xff00 = 0xffff0101/ffffffffffff0101, carry 1 +mbedtls_mpi_core_sub:"1":"ff00":"ffff0101":"ffffffffffff0101":1 + +mbedtls_mpi_core_sub #41: 0x1 - 0xfffe = 0xffff0003/ffffffffffff0003, carry 1 +mbedtls_mpi_core_sub:"1":"fffe":"ffff0003":"ffffffffffff0003":1 + +mbedtls_mpi_core_sub #42: 0x1 - 0xffff = 0xffff0002/ffffffffffff0002, carry 1 +mbedtls_mpi_core_sub:"1":"ffff":"ffff0002":"ffffffffffff0002":1 + +mbedtls_mpi_core_sub #43: 0x1 - 0x10000 = 0xffff0001/ffffffffffff0001, carry 1 +mbedtls_mpi_core_sub:"1":"10000":"ffff0001":"ffffffffffff0001":1 + +mbedtls_mpi_core_sub #44: 0x1 - 0xfffffffe = 0x3/ffffffff00000003, carry 1 +mbedtls_mpi_core_sub:"1":"fffffffe":"3":"ffffffff00000003":1 + +mbedtls_mpi_core_sub #45: 0x1 - 0xffffffff = 0x2/ffffffff00000002, carry 1 +mbedtls_mpi_core_sub:"1":"ffffffff":"2":"ffffffff00000002":1 + +mbedtls_mpi_core_sub #46: 0x1 - 0x100000000 = 0xffffffff00000001/ffffffff00000001, carry 1 +mbedtls_mpi_core_sub:"1":"100000000":"ffffffff00000001":"ffffffff00000001":1 + +mbedtls_mpi_core_sub #47: 0x1 - 0x1f7f7f7f7f7f7f = 0xffe0808080808082/ffe0808080808082, carry 1 +mbedtls_mpi_core_sub:"1":"1f7f7f7f7f7f7f":"ffe0808080808082":"ffe0808080808082":1 + +mbedtls_mpi_core_sub #48: 0x1 - 0x8000000000000000 = 0x8000000000000001/8000000000000001, carry 1 +mbedtls_mpi_core_sub:"1":"8000000000000000":"8000000000000001":"8000000000000001":1 + +mbedtls_mpi_core_sub #49: 0x1 - 0xfefefefefefefefe = 0x101010101010103/101010101010103, carry 1 +mbedtls_mpi_core_sub:"1":"fefefefefefefefe":"101010101010103":"101010101010103":1 + +mbedtls_mpi_core_sub #50: 0x1 - 0xfffffffffffffffe = 0x3/3, carry 1 +mbedtls_mpi_core_sub:"1":"fffffffffffffffe":"3":"3":1 + +mbedtls_mpi_core_sub #51: 0x1 - 0xffffffffffffffff = 0x2/2, carry 1 +mbedtls_mpi_core_sub:"1":"ffffffffffffffff":"2":"2":1 + +mbedtls_mpi_core_sub #52: 0x1 - 0x10000000000000000 = 0xffffffff0000000000000001/ffffffffffffffff0000000000000001, carry 1 +mbedtls_mpi_core_sub:"1":"10000000000000000":"ffffffff0000000000000001":"ffffffffffffffff0000000000000001":1 + +mbedtls_mpi_core_sub #53: 0x1 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5432111/fffffffffffffffedcba9876f5432111, carry 1 +mbedtls_mpi_core_sub:"1":"1234567890abcdef0":"fffffffedcba9876f5432111":"fffffffffffffffedcba9876f5432111":1 + +mbedtls_mpi_core_sub #54: 0x1 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010103/101010101010103, carry 1 +mbedtls_mpi_core_sub:"1":"fffffffffffffffffefefefefefefefe":"101010101010103":"101010101010103":1 + +mbedtls_mpi_core_sub #55: 0x1 - 0xfffffffffffffffffffffffffffffffe = 0x3/3, carry 1 +mbedtls_mpi_core_sub:"1":"fffffffffffffffffffffffffffffffe":"3":"3":1 + +mbedtls_mpi_core_sub #56: 0x1 - 0xffffffffffffffffffffffffffffffff = 0x2/2, carry 1 +mbedtls_mpi_core_sub:"1":"ffffffffffffffffffffffffffffffff":"2":"2":1 + +mbedtls_mpi_core_sub #57: 0x1 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000000001/ffffffffffffffff00000000000000000000000000000001, carry 1 +mbedtls_mpi_core_sub:"1":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000001":"ffffffffffffffff00000000000000000000000000000001":1 + +mbedtls_mpi_core_sub #58: 0x1 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5432111/ffffffffffffffedcba9876f543210fedcba9876f5432111, carry 1 +mbedtls_mpi_core_sub:"1":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432111":"ffffffffffffffedcba9876f543210fedcba9876f5432111":1 + +mbedtls_mpi_core_sub #59: 0x1 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010103/101010101010103, carry 1 +mbedtls_mpi_core_sub:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010103":"101010101010103":1 + +mbedtls_mpi_core_sub #60: 0x1 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x3/3, carry 1 +mbedtls_mpi_core_sub:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"3":"3":1 + +mbedtls_mpi_core_sub #61: 0x1 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x2/2, carry 1 +mbedtls_mpi_core_sub:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"2":"2":1 + +mbedtls_mpi_core_sub #62: 0x1 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000000001/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001, carry 1 +mbedtls_mpi_core_sub:"1":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000001":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001":1 + +mbedtls_mpi_core_sub #63: 0x1 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111, carry 1 +mbedtls_mpi_core_sub:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111":1 + +mbedtls_mpi_core_sub #64: 0x1 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6, carry 1 +mbedtls_mpi_core_sub:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6":1 + +mbedtls_mpi_core_sub #65: 0x3 - 0x0 = 0x3/3, carry 0 +mbedtls_mpi_core_sub:"3":"0":"3":"3":0 + +mbedtls_mpi_core_sub #66: 0x3 - 0x1 = 0x2/2, carry 0 +mbedtls_mpi_core_sub:"3":"1":"2":"2":0 + +mbedtls_mpi_core_sub #67: 0x3 - 0x3 = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"3":"3":"0":"0":0 + +mbedtls_mpi_core_sub #68: 0x3 - 0xf = 0xfffffff4/fffffffffffffff4, carry 1 +mbedtls_mpi_core_sub:"3":"f":"fffffff4":"fffffffffffffff4":1 + +mbedtls_mpi_core_sub #69: 0x3 - 0xfe = 0xffffff05/ffffffffffffff05, carry 1 +mbedtls_mpi_core_sub:"3":"fe":"ffffff05":"ffffffffffffff05":1 + +mbedtls_mpi_core_sub #70: 0x3 - 0xff = 0xffffff04/ffffffffffffff04, carry 1 +mbedtls_mpi_core_sub:"3":"ff":"ffffff04":"ffffffffffffff04":1 + +mbedtls_mpi_core_sub #71: 0x3 - 0x100 = 0xffffff03/ffffffffffffff03, carry 1 +mbedtls_mpi_core_sub:"3":"100":"ffffff03":"ffffffffffffff03":1 + +mbedtls_mpi_core_sub #72: 0x3 - 0xff00 = 0xffff0103/ffffffffffff0103, carry 1 +mbedtls_mpi_core_sub:"3":"ff00":"ffff0103":"ffffffffffff0103":1 + +mbedtls_mpi_core_sub #73: 0x3 - 0xfffe = 0xffff0005/ffffffffffff0005, carry 1 +mbedtls_mpi_core_sub:"3":"fffe":"ffff0005":"ffffffffffff0005":1 + +mbedtls_mpi_core_sub #74: 0x3 - 0xffff = 0xffff0004/ffffffffffff0004, carry 1 +mbedtls_mpi_core_sub:"3":"ffff":"ffff0004":"ffffffffffff0004":1 + +mbedtls_mpi_core_sub #75: 0x3 - 0x10000 = 0xffff0003/ffffffffffff0003, carry 1 +mbedtls_mpi_core_sub:"3":"10000":"ffff0003":"ffffffffffff0003":1 + +mbedtls_mpi_core_sub #76: 0x3 - 0xfffffffe = 0x5/ffffffff00000005, carry 1 +mbedtls_mpi_core_sub:"3":"fffffffe":"5":"ffffffff00000005":1 + +mbedtls_mpi_core_sub #77: 0x3 - 0xffffffff = 0x4/ffffffff00000004, carry 1 +mbedtls_mpi_core_sub:"3":"ffffffff":"4":"ffffffff00000004":1 + +mbedtls_mpi_core_sub #78: 0x3 - 0x100000000 = 0xffffffff00000003/ffffffff00000003, carry 1 +mbedtls_mpi_core_sub:"3":"100000000":"ffffffff00000003":"ffffffff00000003":1 + +mbedtls_mpi_core_sub #79: 0x3 - 0x1f7f7f7f7f7f7f = 0xffe0808080808084/ffe0808080808084, carry 1 +mbedtls_mpi_core_sub:"3":"1f7f7f7f7f7f7f":"ffe0808080808084":"ffe0808080808084":1 + +mbedtls_mpi_core_sub #80: 0x3 - 0x8000000000000000 = 0x8000000000000003/8000000000000003, carry 1 +mbedtls_mpi_core_sub:"3":"8000000000000000":"8000000000000003":"8000000000000003":1 + +mbedtls_mpi_core_sub #81: 0x3 - 0xfefefefefefefefe = 0x101010101010105/101010101010105, carry 1 +mbedtls_mpi_core_sub:"3":"fefefefefefefefe":"101010101010105":"101010101010105":1 + +mbedtls_mpi_core_sub #82: 0x3 - 0xfffffffffffffffe = 0x5/5, carry 1 +mbedtls_mpi_core_sub:"3":"fffffffffffffffe":"5":"5":1 + +mbedtls_mpi_core_sub #83: 0x3 - 0xffffffffffffffff = 0x4/4, carry 1 +mbedtls_mpi_core_sub:"3":"ffffffffffffffff":"4":"4":1 + +mbedtls_mpi_core_sub #84: 0x3 - 0x10000000000000000 = 0xffffffff0000000000000003/ffffffffffffffff0000000000000003, carry 1 +mbedtls_mpi_core_sub:"3":"10000000000000000":"ffffffff0000000000000003":"ffffffffffffffff0000000000000003":1 + +mbedtls_mpi_core_sub #85: 0x3 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5432113/fffffffffffffffedcba9876f5432113, carry 1 +mbedtls_mpi_core_sub:"3":"1234567890abcdef0":"fffffffedcba9876f5432113":"fffffffffffffffedcba9876f5432113":1 + +mbedtls_mpi_core_sub #86: 0x3 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010105/101010101010105, carry 1 +mbedtls_mpi_core_sub:"3":"fffffffffffffffffefefefefefefefe":"101010101010105":"101010101010105":1 + +mbedtls_mpi_core_sub #87: 0x3 - 0xfffffffffffffffffffffffffffffffe = 0x5/5, carry 1 +mbedtls_mpi_core_sub:"3":"fffffffffffffffffffffffffffffffe":"5":"5":1 + +mbedtls_mpi_core_sub #88: 0x3 - 0xffffffffffffffffffffffffffffffff = 0x4/4, carry 1 +mbedtls_mpi_core_sub:"3":"ffffffffffffffffffffffffffffffff":"4":"4":1 + +mbedtls_mpi_core_sub #89: 0x3 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000000003/ffffffffffffffff00000000000000000000000000000003, carry 1 +mbedtls_mpi_core_sub:"3":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000003":"ffffffffffffffff00000000000000000000000000000003":1 + +mbedtls_mpi_core_sub #90: 0x3 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5432113/ffffffffffffffedcba9876f543210fedcba9876f5432113, carry 1 +mbedtls_mpi_core_sub:"3":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432113":"ffffffffffffffedcba9876f543210fedcba9876f5432113":1 + +mbedtls_mpi_core_sub #91: 0x3 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010105/101010101010105, carry 1 +mbedtls_mpi_core_sub:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010105":"101010101010105":1 + +mbedtls_mpi_core_sub #92: 0x3 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x5/5, carry 1 +mbedtls_mpi_core_sub:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"5":"5":1 + +mbedtls_mpi_core_sub #93: 0x3 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x4/4, carry 1 +mbedtls_mpi_core_sub:"3":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4":"4":1 + +mbedtls_mpi_core_sub #94: 0x3 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000000003/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000003, carry 1 +mbedtls_mpi_core_sub:"3":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000003":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000003":1 + +mbedtls_mpi_core_sub #95: 0x3 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113, carry 1 +mbedtls_mpi_core_sub:"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113":1 + +mbedtls_mpi_core_sub #96: 0x3 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8, carry 1 +mbedtls_mpi_core_sub:"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8":1 + +mbedtls_mpi_core_sub #97: 0xf - 0x0 = 0xf/f, carry 0 +mbedtls_mpi_core_sub:"f":"0":"f":"f":0 + +mbedtls_mpi_core_sub #98: 0xf - 0x1 = 0xe/e, carry 0 +mbedtls_mpi_core_sub:"f":"1":"e":"e":0 + +mbedtls_mpi_core_sub #99: 0xf - 0x3 = 0xc/c, carry 0 +mbedtls_mpi_core_sub:"f":"3":"c":"c":0 + +mbedtls_mpi_core_sub #100: 0xf - 0xf = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"f":"f":"0":"0":0 + +mbedtls_mpi_core_sub #101: 0xf - 0xfe = 0xffffff11/ffffffffffffff11, carry 1 +mbedtls_mpi_core_sub:"f":"fe":"ffffff11":"ffffffffffffff11":1 + +mbedtls_mpi_core_sub #102: 0xf - 0xff = 0xffffff10/ffffffffffffff10, carry 1 +mbedtls_mpi_core_sub:"f":"ff":"ffffff10":"ffffffffffffff10":1 + +mbedtls_mpi_core_sub #103: 0xf - 0x100 = 0xffffff0f/ffffffffffffff0f, carry 1 +mbedtls_mpi_core_sub:"f":"100":"ffffff0f":"ffffffffffffff0f":1 + +mbedtls_mpi_core_sub #104: 0xf - 0xff00 = 0xffff010f/ffffffffffff010f, carry 1 +mbedtls_mpi_core_sub:"f":"ff00":"ffff010f":"ffffffffffff010f":1 + +mbedtls_mpi_core_sub #105: 0xf - 0xfffe = 0xffff0011/ffffffffffff0011, carry 1 +mbedtls_mpi_core_sub:"f":"fffe":"ffff0011":"ffffffffffff0011":1 + +mbedtls_mpi_core_sub #106: 0xf - 0xffff = 0xffff0010/ffffffffffff0010, carry 1 +mbedtls_mpi_core_sub:"f":"ffff":"ffff0010":"ffffffffffff0010":1 + +mbedtls_mpi_core_sub #107: 0xf - 0x10000 = 0xffff000f/ffffffffffff000f, carry 1 +mbedtls_mpi_core_sub:"f":"10000":"ffff000f":"ffffffffffff000f":1 + +mbedtls_mpi_core_sub #108: 0xf - 0xfffffffe = 0x11/ffffffff00000011, carry 1 +mbedtls_mpi_core_sub:"f":"fffffffe":"11":"ffffffff00000011":1 + +mbedtls_mpi_core_sub #109: 0xf - 0xffffffff = 0x10/ffffffff00000010, carry 1 +mbedtls_mpi_core_sub:"f":"ffffffff":"10":"ffffffff00000010":1 + +mbedtls_mpi_core_sub #110: 0xf - 0x100000000 = 0xffffffff0000000f/ffffffff0000000f, carry 1 +mbedtls_mpi_core_sub:"f":"100000000":"ffffffff0000000f":"ffffffff0000000f":1 + +mbedtls_mpi_core_sub #111: 0xf - 0x1f7f7f7f7f7f7f = 0xffe0808080808090/ffe0808080808090, carry 1 +mbedtls_mpi_core_sub:"f":"1f7f7f7f7f7f7f":"ffe0808080808090":"ffe0808080808090":1 + +mbedtls_mpi_core_sub #112: 0xf - 0x8000000000000000 = 0x800000000000000f/800000000000000f, carry 1 +mbedtls_mpi_core_sub:"f":"8000000000000000":"800000000000000f":"800000000000000f":1 + +mbedtls_mpi_core_sub #113: 0xf - 0xfefefefefefefefe = 0x101010101010111/101010101010111, carry 1 +mbedtls_mpi_core_sub:"f":"fefefefefefefefe":"101010101010111":"101010101010111":1 + +mbedtls_mpi_core_sub #114: 0xf - 0xfffffffffffffffe = 0x11/11, carry 1 +mbedtls_mpi_core_sub:"f":"fffffffffffffffe":"11":"11":1 + +mbedtls_mpi_core_sub #115: 0xf - 0xffffffffffffffff = 0x10/10, carry 1 +mbedtls_mpi_core_sub:"f":"ffffffffffffffff":"10":"10":1 + +mbedtls_mpi_core_sub #116: 0xf - 0x10000000000000000 = 0xffffffff000000000000000f/ffffffffffffffff000000000000000f, carry 1 +mbedtls_mpi_core_sub:"f":"10000000000000000":"ffffffff000000000000000f":"ffffffffffffffff000000000000000f":1 + +mbedtls_mpi_core_sub #117: 0xf - 0x1234567890abcdef0 = 0xfffffffedcba9876f543211f/fffffffffffffffedcba9876f543211f, carry 1 +mbedtls_mpi_core_sub:"f":"1234567890abcdef0":"fffffffedcba9876f543211f":"fffffffffffffffedcba9876f543211f":1 + +mbedtls_mpi_core_sub #118: 0xf - 0xfffffffffffffffffefefefefefefefe = 0x101010101010111/101010101010111, carry 1 +mbedtls_mpi_core_sub:"f":"fffffffffffffffffefefefefefefefe":"101010101010111":"101010101010111":1 + +mbedtls_mpi_core_sub #119: 0xf - 0xfffffffffffffffffffffffffffffffe = 0x11/11, carry 1 +mbedtls_mpi_core_sub:"f":"fffffffffffffffffffffffffffffffe":"11":"11":1 + +mbedtls_mpi_core_sub #120: 0xf - 0xffffffffffffffffffffffffffffffff = 0x10/10, carry 1 +mbedtls_mpi_core_sub:"f":"ffffffffffffffffffffffffffffffff":"10":"10":1 + +mbedtls_mpi_core_sub #121: 0xf - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000f/ffffffffffffffff0000000000000000000000000000000f, carry 1 +mbedtls_mpi_core_sub:"f":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000000f":"ffffffffffffffff0000000000000000000000000000000f":1 + +mbedtls_mpi_core_sub #122: 0xf - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f543211f/ffffffffffffffedcba9876f543210fedcba9876f543211f, carry 1 +mbedtls_mpi_core_sub:"f":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f543211f":"ffffffffffffffedcba9876f543210fedcba9876f543211f":1 + +mbedtls_mpi_core_sub #123: 0xf - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010111/101010101010111, carry 1 +mbedtls_mpi_core_sub:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010111":"101010101010111":1 + +mbedtls_mpi_core_sub #124: 0xf - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x11/11, carry 1 +mbedtls_mpi_core_sub:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"11":"11":1 + +mbedtls_mpi_core_sub #125: 0xf - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10/10, carry 1 +mbedtls_mpi_core_sub:"f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10":"10":1 + +mbedtls_mpi_core_sub #126: 0xf - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000000000000000000f/ffffffffffffffff000000000000000000000000000000000000000000000000000000000000000f, carry 1 +mbedtls_mpi_core_sub:"f":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000000f":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000000f":1 + +mbedtls_mpi_core_sub #127: 0xf - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f, carry 1 +mbedtls_mpi_core_sub:"f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f":1 + +mbedtls_mpi_core_sub #128: 0xf - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4, carry 1 +mbedtls_mpi_core_sub:"f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4":1 + +mbedtls_mpi_core_sub #129: 0xfe - 0x0 = 0xfe/fe, carry 0 +mbedtls_mpi_core_sub:"fe":"0":"fe":"fe":0 + +mbedtls_mpi_core_sub #130: 0xfe - 0x1 = 0xfd/fd, carry 0 +mbedtls_mpi_core_sub:"fe":"1":"fd":"fd":0 + +mbedtls_mpi_core_sub #131: 0xfe - 0x3 = 0xfb/fb, carry 0 +mbedtls_mpi_core_sub:"fe":"3":"fb":"fb":0 + +mbedtls_mpi_core_sub #132: 0xfe - 0xf = 0xef/ef, carry 0 +mbedtls_mpi_core_sub:"fe":"f":"ef":"ef":0 + +mbedtls_mpi_core_sub #133: 0xfe - 0xfe = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"fe":"fe":"0":"0":0 + +mbedtls_mpi_core_sub #134: 0xfe - 0xff = 0xffffffff/ffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"fe":"ff":"ffffffff":"ffffffffffffffff":1 + +mbedtls_mpi_core_sub #135: 0xfe - 0x100 = 0xfffffffe/fffffffffffffffe, carry 1 +mbedtls_mpi_core_sub:"fe":"100":"fffffffe":"fffffffffffffffe":1 + +mbedtls_mpi_core_sub #136: 0xfe - 0xff00 = 0xffff01fe/ffffffffffff01fe, carry 1 +mbedtls_mpi_core_sub:"fe":"ff00":"ffff01fe":"ffffffffffff01fe":1 + +mbedtls_mpi_core_sub #137: 0xfe - 0xfffe = 0xffff0100/ffffffffffff0100, carry 1 +mbedtls_mpi_core_sub:"fe":"fffe":"ffff0100":"ffffffffffff0100":1 + +mbedtls_mpi_core_sub #138: 0xfe - 0xffff = 0xffff00ff/ffffffffffff00ff, carry 1 +mbedtls_mpi_core_sub:"fe":"ffff":"ffff00ff":"ffffffffffff00ff":1 + +mbedtls_mpi_core_sub #139: 0xfe - 0x10000 = 0xffff00fe/ffffffffffff00fe, carry 1 +mbedtls_mpi_core_sub:"fe":"10000":"ffff00fe":"ffffffffffff00fe":1 + +mbedtls_mpi_core_sub #140: 0xfe - 0xfffffffe = 0x100/ffffffff00000100, carry 1 +mbedtls_mpi_core_sub:"fe":"fffffffe":"100":"ffffffff00000100":1 + +mbedtls_mpi_core_sub #141: 0xfe - 0xffffffff = 0xff/ffffffff000000ff, carry 1 +mbedtls_mpi_core_sub:"fe":"ffffffff":"ff":"ffffffff000000ff":1 + +mbedtls_mpi_core_sub #142: 0xfe - 0x100000000 = 0xffffffff000000fe/ffffffff000000fe, carry 1 +mbedtls_mpi_core_sub:"fe":"100000000":"ffffffff000000fe":"ffffffff000000fe":1 + +mbedtls_mpi_core_sub #143: 0xfe - 0x1f7f7f7f7f7f7f = 0xffe080808080817f/ffe080808080817f, carry 1 +mbedtls_mpi_core_sub:"fe":"1f7f7f7f7f7f7f":"ffe080808080817f":"ffe080808080817f":1 + +mbedtls_mpi_core_sub #144: 0xfe - 0x8000000000000000 = 0x80000000000000fe/80000000000000fe, carry 1 +mbedtls_mpi_core_sub:"fe":"8000000000000000":"80000000000000fe":"80000000000000fe":1 + +mbedtls_mpi_core_sub #145: 0xfe - 0xfefefefefefefefe = 0x101010101010200/101010101010200, carry 1 +mbedtls_mpi_core_sub:"fe":"fefefefefefefefe":"101010101010200":"101010101010200":1 + +mbedtls_mpi_core_sub #146: 0xfe - 0xfffffffffffffffe = 0x100/100, carry 1 +mbedtls_mpi_core_sub:"fe":"fffffffffffffffe":"100":"100":1 + +mbedtls_mpi_core_sub #147: 0xfe - 0xffffffffffffffff = 0xff/ff, carry 1 +mbedtls_mpi_core_sub:"fe":"ffffffffffffffff":"ff":"ff":1 + +mbedtls_mpi_core_sub #148: 0xfe - 0x10000000000000000 = 0xffffffff00000000000000fe/ffffffffffffffff00000000000000fe, carry 1 +mbedtls_mpi_core_sub:"fe":"10000000000000000":"ffffffff00000000000000fe":"ffffffffffffffff00000000000000fe":1 + +mbedtls_mpi_core_sub #149: 0xfe - 0x1234567890abcdef0 = 0xfffffffedcba9876f543220e/fffffffffffffffedcba9876f543220e, carry 1 +mbedtls_mpi_core_sub:"fe":"1234567890abcdef0":"fffffffedcba9876f543220e":"fffffffffffffffedcba9876f543220e":1 + +mbedtls_mpi_core_sub #150: 0xfe - 0xfffffffffffffffffefefefefefefefe = 0x101010101010200/101010101010200, carry 1 +mbedtls_mpi_core_sub:"fe":"fffffffffffffffffefefefefefefefe":"101010101010200":"101010101010200":1 + +mbedtls_mpi_core_sub #151: 0xfe - 0xfffffffffffffffffffffffffffffffe = 0x100/100, carry 1 +mbedtls_mpi_core_sub:"fe":"fffffffffffffffffffffffffffffffe":"100":"100":1 + +mbedtls_mpi_core_sub #152: 0xfe - 0xffffffffffffffffffffffffffffffff = 0xff/ff, carry 1 +mbedtls_mpi_core_sub:"fe":"ffffffffffffffffffffffffffffffff":"ff":"ff":1 + +mbedtls_mpi_core_sub #153: 0xfe - 0x100000000000000000000000000000000 = 0xffffffff000000000000000000000000000000fe/ffffffffffffffff000000000000000000000000000000fe, carry 1 +mbedtls_mpi_core_sub:"fe":"100000000000000000000000000000000":"ffffffff000000000000000000000000000000fe":"ffffffffffffffff000000000000000000000000000000fe":1 + +mbedtls_mpi_core_sub #154: 0xfe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f543220e/ffffffffffffffedcba9876f543210fedcba9876f543220e, carry 1 +mbedtls_mpi_core_sub:"fe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f543220e":"ffffffffffffffedcba9876f543210fedcba9876f543220e":1 + +mbedtls_mpi_core_sub #155: 0xfe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010200/101010101010200, carry 1 +mbedtls_mpi_core_sub:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010200":"101010101010200":1 + +mbedtls_mpi_core_sub #156: 0xfe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100/100, carry 1 +mbedtls_mpi_core_sub:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100":"100":1 + +mbedtls_mpi_core_sub #157: 0xfe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xff/ff, carry 1 +mbedtls_mpi_core_sub:"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ff":1 + +mbedtls_mpi_core_sub #158: 0xfe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000000000000000000000000000000000fe/ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000fe, carry 1 +mbedtls_mpi_core_sub:"fe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000000000fe":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000fe":1 + +mbedtls_mpi_core_sub #159: 0xfe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e, carry 1 +mbedtls_mpi_core_sub:"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e":1 + +mbedtls_mpi_core_sub #160: 0xfe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3, carry 1 +mbedtls_mpi_core_sub:"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3":1 + +mbedtls_mpi_core_sub #161: 0xff - 0x0 = 0xff/ff, carry 0 +mbedtls_mpi_core_sub:"ff":"0":"ff":"ff":0 + +mbedtls_mpi_core_sub #162: 0xff - 0x1 = 0xfe/fe, carry 0 +mbedtls_mpi_core_sub:"ff":"1":"fe":"fe":0 + +mbedtls_mpi_core_sub #163: 0xff - 0x3 = 0xfc/fc, carry 0 +mbedtls_mpi_core_sub:"ff":"3":"fc":"fc":0 + +mbedtls_mpi_core_sub #164: 0xff - 0xf = 0xf0/f0, carry 0 +mbedtls_mpi_core_sub:"ff":"f":"f0":"f0":0 + +mbedtls_mpi_core_sub #165: 0xff - 0xfe = 0x1/1, carry 0 +mbedtls_mpi_core_sub:"ff":"fe":"1":"1":0 + +mbedtls_mpi_core_sub #166: 0xff - 0xff = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"ff":"ff":"0":"0":0 + +mbedtls_mpi_core_sub #167: 0xff - 0x100 = 0xffffffff/ffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"ff":"100":"ffffffff":"ffffffffffffffff":1 + +mbedtls_mpi_core_sub #168: 0xff - 0xff00 = 0xffff01ff/ffffffffffff01ff, carry 1 +mbedtls_mpi_core_sub:"ff":"ff00":"ffff01ff":"ffffffffffff01ff":1 + +mbedtls_mpi_core_sub #169: 0xff - 0xfffe = 0xffff0101/ffffffffffff0101, carry 1 +mbedtls_mpi_core_sub:"ff":"fffe":"ffff0101":"ffffffffffff0101":1 + +mbedtls_mpi_core_sub #170: 0xff - 0xffff = 0xffff0100/ffffffffffff0100, carry 1 +mbedtls_mpi_core_sub:"ff":"ffff":"ffff0100":"ffffffffffff0100":1 + +mbedtls_mpi_core_sub #171: 0xff - 0x10000 = 0xffff00ff/ffffffffffff00ff, carry 1 +mbedtls_mpi_core_sub:"ff":"10000":"ffff00ff":"ffffffffffff00ff":1 + +mbedtls_mpi_core_sub #172: 0xff - 0xfffffffe = 0x101/ffffffff00000101, carry 1 +mbedtls_mpi_core_sub:"ff":"fffffffe":"101":"ffffffff00000101":1 + +mbedtls_mpi_core_sub #173: 0xff - 0xffffffff = 0x100/ffffffff00000100, carry 1 +mbedtls_mpi_core_sub:"ff":"ffffffff":"100":"ffffffff00000100":1 + +mbedtls_mpi_core_sub #174: 0xff - 0x100000000 = 0xffffffff000000ff/ffffffff000000ff, carry 1 +mbedtls_mpi_core_sub:"ff":"100000000":"ffffffff000000ff":"ffffffff000000ff":1 + +mbedtls_mpi_core_sub #175: 0xff - 0x1f7f7f7f7f7f7f = 0xffe0808080808180/ffe0808080808180, carry 1 +mbedtls_mpi_core_sub:"ff":"1f7f7f7f7f7f7f":"ffe0808080808180":"ffe0808080808180":1 + +mbedtls_mpi_core_sub #176: 0xff - 0x8000000000000000 = 0x80000000000000ff/80000000000000ff, carry 1 +mbedtls_mpi_core_sub:"ff":"8000000000000000":"80000000000000ff":"80000000000000ff":1 + +mbedtls_mpi_core_sub #177: 0xff - 0xfefefefefefefefe = 0x101010101010201/101010101010201, carry 1 +mbedtls_mpi_core_sub:"ff":"fefefefefefefefe":"101010101010201":"101010101010201":1 + +mbedtls_mpi_core_sub #178: 0xff - 0xfffffffffffffffe = 0x101/101, carry 1 +mbedtls_mpi_core_sub:"ff":"fffffffffffffffe":"101":"101":1 + +mbedtls_mpi_core_sub #179: 0xff - 0xffffffffffffffff = 0x100/100, carry 1 +mbedtls_mpi_core_sub:"ff":"ffffffffffffffff":"100":"100":1 + +mbedtls_mpi_core_sub #180: 0xff - 0x10000000000000000 = 0xffffffff00000000000000ff/ffffffffffffffff00000000000000ff, carry 1 +mbedtls_mpi_core_sub:"ff":"10000000000000000":"ffffffff00000000000000ff":"ffffffffffffffff00000000000000ff":1 + +mbedtls_mpi_core_sub #181: 0xff - 0x1234567890abcdef0 = 0xfffffffedcba9876f543220f/fffffffffffffffedcba9876f543220f, carry 1 +mbedtls_mpi_core_sub:"ff":"1234567890abcdef0":"fffffffedcba9876f543220f":"fffffffffffffffedcba9876f543220f":1 + +mbedtls_mpi_core_sub #182: 0xff - 0xfffffffffffffffffefefefefefefefe = 0x101010101010201/101010101010201, carry 1 +mbedtls_mpi_core_sub:"ff":"fffffffffffffffffefefefefefefefe":"101010101010201":"101010101010201":1 + +mbedtls_mpi_core_sub #183: 0xff - 0xfffffffffffffffffffffffffffffffe = 0x101/101, carry 1 +mbedtls_mpi_core_sub:"ff":"fffffffffffffffffffffffffffffffe":"101":"101":1 + +mbedtls_mpi_core_sub #184: 0xff - 0xffffffffffffffffffffffffffffffff = 0x100/100, carry 1 +mbedtls_mpi_core_sub:"ff":"ffffffffffffffffffffffffffffffff":"100":"100":1 + +mbedtls_mpi_core_sub #185: 0xff - 0x100000000000000000000000000000000 = 0xffffffff000000000000000000000000000000ff/ffffffffffffffff000000000000000000000000000000ff, carry 1 +mbedtls_mpi_core_sub:"ff":"100000000000000000000000000000000":"ffffffff000000000000000000000000000000ff":"ffffffffffffffff000000000000000000000000000000ff":1 + +mbedtls_mpi_core_sub #186: 0xff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f543220f/ffffffffffffffedcba9876f543210fedcba9876f543220f, carry 1 +mbedtls_mpi_core_sub:"ff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f543220f":"ffffffffffffffedcba9876f543210fedcba9876f543220f":1 + +mbedtls_mpi_core_sub #187: 0xff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010201/101010101010201, carry 1 +mbedtls_mpi_core_sub:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010201":"101010101010201":1 + +mbedtls_mpi_core_sub #188: 0xff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x101/101, carry 1 +mbedtls_mpi_core_sub:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"101":"101":1 + +mbedtls_mpi_core_sub #189: 0xff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100/100, carry 1 +mbedtls_mpi_core_sub:"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100":"100":1 + +mbedtls_mpi_core_sub #190: 0xff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000000000000000000000000000000000ff/ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000ff, carry 1 +mbedtls_mpi_core_sub:"ff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000000000ff":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000ff":1 + +mbedtls_mpi_core_sub #191: 0xff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f, carry 1 +mbedtls_mpi_core_sub:"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f":1 + +mbedtls_mpi_core_sub #192: 0xff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4, carry 1 +mbedtls_mpi_core_sub:"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4":1 + +mbedtls_mpi_core_sub #193: 0x100 - 0x0 = 0x100/100, carry 0 +mbedtls_mpi_core_sub:"100":"0":"100":"100":0 + +mbedtls_mpi_core_sub #194: 0x100 - 0x1 = 0xff/ff, carry 0 +mbedtls_mpi_core_sub:"100":"1":"ff":"ff":0 + +mbedtls_mpi_core_sub #195: 0x100 - 0x3 = 0xfd/fd, carry 0 +mbedtls_mpi_core_sub:"100":"3":"fd":"fd":0 + +mbedtls_mpi_core_sub #196: 0x100 - 0xf = 0xf1/f1, carry 0 +mbedtls_mpi_core_sub:"100":"f":"f1":"f1":0 + +mbedtls_mpi_core_sub #197: 0x100 - 0xfe = 0x2/2, carry 0 +mbedtls_mpi_core_sub:"100":"fe":"2":"2":0 + +mbedtls_mpi_core_sub #198: 0x100 - 0xff = 0x1/1, carry 0 +mbedtls_mpi_core_sub:"100":"ff":"1":"1":0 + +mbedtls_mpi_core_sub #199: 0x100 - 0x100 = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"100":"100":"0":"0":0 + +mbedtls_mpi_core_sub #200: 0x100 - 0xff00 = 0xffff0200/ffffffffffff0200, carry 1 +mbedtls_mpi_core_sub:"100":"ff00":"ffff0200":"ffffffffffff0200":1 + +mbedtls_mpi_core_sub #201: 0x100 - 0xfffe = 0xffff0102/ffffffffffff0102, carry 1 +mbedtls_mpi_core_sub:"100":"fffe":"ffff0102":"ffffffffffff0102":1 + +mbedtls_mpi_core_sub #202: 0x100 - 0xffff = 0xffff0101/ffffffffffff0101, carry 1 +mbedtls_mpi_core_sub:"100":"ffff":"ffff0101":"ffffffffffff0101":1 + +mbedtls_mpi_core_sub #203: 0x100 - 0x10000 = 0xffff0100/ffffffffffff0100, carry 1 +mbedtls_mpi_core_sub:"100":"10000":"ffff0100":"ffffffffffff0100":1 + +mbedtls_mpi_core_sub #204: 0x100 - 0xfffffffe = 0x102/ffffffff00000102, carry 1 +mbedtls_mpi_core_sub:"100":"fffffffe":"102":"ffffffff00000102":1 + +mbedtls_mpi_core_sub #205: 0x100 - 0xffffffff = 0x101/ffffffff00000101, carry 1 +mbedtls_mpi_core_sub:"100":"ffffffff":"101":"ffffffff00000101":1 + +mbedtls_mpi_core_sub #206: 0x100 - 0x100000000 = 0xffffffff00000100/ffffffff00000100, carry 1 +mbedtls_mpi_core_sub:"100":"100000000":"ffffffff00000100":"ffffffff00000100":1 + +mbedtls_mpi_core_sub #207: 0x100 - 0x1f7f7f7f7f7f7f = 0xffe0808080808181/ffe0808080808181, carry 1 +mbedtls_mpi_core_sub:"100":"1f7f7f7f7f7f7f":"ffe0808080808181":"ffe0808080808181":1 + +mbedtls_mpi_core_sub #208: 0x100 - 0x8000000000000000 = 0x8000000000000100/8000000000000100, carry 1 +mbedtls_mpi_core_sub:"100":"8000000000000000":"8000000000000100":"8000000000000100":1 + +mbedtls_mpi_core_sub #209: 0x100 - 0xfefefefefefefefe = 0x101010101010202/101010101010202, carry 1 +mbedtls_mpi_core_sub:"100":"fefefefefefefefe":"101010101010202":"101010101010202":1 + +mbedtls_mpi_core_sub #210: 0x100 - 0xfffffffffffffffe = 0x102/102, carry 1 +mbedtls_mpi_core_sub:"100":"fffffffffffffffe":"102":"102":1 + +mbedtls_mpi_core_sub #211: 0x100 - 0xffffffffffffffff = 0x101/101, carry 1 +mbedtls_mpi_core_sub:"100":"ffffffffffffffff":"101":"101":1 + +mbedtls_mpi_core_sub #212: 0x100 - 0x10000000000000000 = 0xffffffff0000000000000100/ffffffffffffffff0000000000000100, carry 1 +mbedtls_mpi_core_sub:"100":"10000000000000000":"ffffffff0000000000000100":"ffffffffffffffff0000000000000100":1 + +mbedtls_mpi_core_sub #213: 0x100 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5432210/fffffffffffffffedcba9876f5432210, carry 1 +mbedtls_mpi_core_sub:"100":"1234567890abcdef0":"fffffffedcba9876f5432210":"fffffffffffffffedcba9876f5432210":1 + +mbedtls_mpi_core_sub #214: 0x100 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010202/101010101010202, carry 1 +mbedtls_mpi_core_sub:"100":"fffffffffffffffffefefefefefefefe":"101010101010202":"101010101010202":1 + +mbedtls_mpi_core_sub #215: 0x100 - 0xfffffffffffffffffffffffffffffffe = 0x102/102, carry 1 +mbedtls_mpi_core_sub:"100":"fffffffffffffffffffffffffffffffe":"102":"102":1 + +mbedtls_mpi_core_sub #216: 0x100 - 0xffffffffffffffffffffffffffffffff = 0x101/101, carry 1 +mbedtls_mpi_core_sub:"100":"ffffffffffffffffffffffffffffffff":"101":"101":1 + +mbedtls_mpi_core_sub #217: 0x100 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000000100/ffffffffffffffff00000000000000000000000000000100, carry 1 +mbedtls_mpi_core_sub:"100":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000100":"ffffffffffffffff00000000000000000000000000000100":1 + +mbedtls_mpi_core_sub #218: 0x100 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5432210/ffffffffffffffedcba9876f543210fedcba9876f5432210, carry 1 +mbedtls_mpi_core_sub:"100":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432210":"ffffffffffffffedcba9876f543210fedcba9876f5432210":1 + +mbedtls_mpi_core_sub #219: 0x100 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010202/101010101010202, carry 1 +mbedtls_mpi_core_sub:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010202":"101010101010202":1 + +mbedtls_mpi_core_sub #220: 0x100 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x102/102, carry 1 +mbedtls_mpi_core_sub:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"102":"102":1 + +mbedtls_mpi_core_sub #221: 0x100 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x101/101, carry 1 +mbedtls_mpi_core_sub:"100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"101":"101":1 + +mbedtls_mpi_core_sub #222: 0x100 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000000100/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000100, carry 1 +mbedtls_mpi_core_sub:"100":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000100":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000100":1 + +mbedtls_mpi_core_sub #223: 0x100 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210, carry 1 +mbedtls_mpi_core_sub:"100":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210":1 + +mbedtls_mpi_core_sub #224: 0x100 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5, carry 1 +mbedtls_mpi_core_sub:"100":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5":1 + +mbedtls_mpi_core_sub #225: 0xff00 - 0x0 = 0xff00/ff00, carry 0 +mbedtls_mpi_core_sub:"ff00":"0":"ff00":"ff00":0 + +mbedtls_mpi_core_sub #226: 0xff00 - 0x1 = 0xfeff/feff, carry 0 +mbedtls_mpi_core_sub:"ff00":"1":"feff":"feff":0 + +mbedtls_mpi_core_sub #227: 0xff00 - 0x3 = 0xfefd/fefd, carry 0 +mbedtls_mpi_core_sub:"ff00":"3":"fefd":"fefd":0 + +mbedtls_mpi_core_sub #228: 0xff00 - 0xf = 0xfef1/fef1, carry 0 +mbedtls_mpi_core_sub:"ff00":"f":"fef1":"fef1":0 + +mbedtls_mpi_core_sub #229: 0xff00 - 0xfe = 0xfe02/fe02, carry 0 +mbedtls_mpi_core_sub:"ff00":"fe":"fe02":"fe02":0 + +mbedtls_mpi_core_sub #230: 0xff00 - 0xff = 0xfe01/fe01, carry 0 +mbedtls_mpi_core_sub:"ff00":"ff":"fe01":"fe01":0 + +mbedtls_mpi_core_sub #231: 0xff00 - 0x100 = 0xfe00/fe00, carry 0 +mbedtls_mpi_core_sub:"ff00":"100":"fe00":"fe00":0 + +mbedtls_mpi_core_sub #232: 0xff00 - 0xff00 = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"ff00":"ff00":"0":"0":0 + +mbedtls_mpi_core_sub #233: 0xff00 - 0xfffe = 0xffffff02/ffffffffffffff02, carry 1 +mbedtls_mpi_core_sub:"ff00":"fffe":"ffffff02":"ffffffffffffff02":1 + +mbedtls_mpi_core_sub #234: 0xff00 - 0xffff = 0xffffff01/ffffffffffffff01, carry 1 +mbedtls_mpi_core_sub:"ff00":"ffff":"ffffff01":"ffffffffffffff01":1 + +mbedtls_mpi_core_sub #235: 0xff00 - 0x10000 = 0xffffff00/ffffffffffffff00, carry 1 +mbedtls_mpi_core_sub:"ff00":"10000":"ffffff00":"ffffffffffffff00":1 + +mbedtls_mpi_core_sub #236: 0xff00 - 0xfffffffe = 0xff02/ffffffff0000ff02, carry 1 +mbedtls_mpi_core_sub:"ff00":"fffffffe":"ff02":"ffffffff0000ff02":1 + +mbedtls_mpi_core_sub #237: 0xff00 - 0xffffffff = 0xff01/ffffffff0000ff01, carry 1 +mbedtls_mpi_core_sub:"ff00":"ffffffff":"ff01":"ffffffff0000ff01":1 + +mbedtls_mpi_core_sub #238: 0xff00 - 0x100000000 = 0xffffffff0000ff00/ffffffff0000ff00, carry 1 +mbedtls_mpi_core_sub:"ff00":"100000000":"ffffffff0000ff00":"ffffffff0000ff00":1 + +mbedtls_mpi_core_sub #239: 0xff00 - 0x1f7f7f7f7f7f7f = 0xffe0808080817f81/ffe0808080817f81, carry 1 +mbedtls_mpi_core_sub:"ff00":"1f7f7f7f7f7f7f":"ffe0808080817f81":"ffe0808080817f81":1 + +mbedtls_mpi_core_sub #240: 0xff00 - 0x8000000000000000 = 0x800000000000ff00/800000000000ff00, carry 1 +mbedtls_mpi_core_sub:"ff00":"8000000000000000":"800000000000ff00":"800000000000ff00":1 + +mbedtls_mpi_core_sub #241: 0xff00 - 0xfefefefefefefefe = 0x101010101020002/101010101020002, carry 1 +mbedtls_mpi_core_sub:"ff00":"fefefefefefefefe":"101010101020002":"101010101020002":1 + +mbedtls_mpi_core_sub #242: 0xff00 - 0xfffffffffffffffe = 0xff02/ff02, carry 1 +mbedtls_mpi_core_sub:"ff00":"fffffffffffffffe":"ff02":"ff02":1 + +mbedtls_mpi_core_sub #243: 0xff00 - 0xffffffffffffffff = 0xff01/ff01, carry 1 +mbedtls_mpi_core_sub:"ff00":"ffffffffffffffff":"ff01":"ff01":1 + +mbedtls_mpi_core_sub #244: 0xff00 - 0x10000000000000000 = 0xffffffff000000000000ff00/ffffffffffffffff000000000000ff00, carry 1 +mbedtls_mpi_core_sub:"ff00":"10000000000000000":"ffffffff000000000000ff00":"ffffffffffffffff000000000000ff00":1 + +mbedtls_mpi_core_sub #245: 0xff00 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5442010/fffffffffffffffedcba9876f5442010, carry 1 +mbedtls_mpi_core_sub:"ff00":"1234567890abcdef0":"fffffffedcba9876f5442010":"fffffffffffffffedcba9876f5442010":1 + +mbedtls_mpi_core_sub #246: 0xff00 - 0xfffffffffffffffffefefefefefefefe = 0x101010101020002/101010101020002, carry 1 +mbedtls_mpi_core_sub:"ff00":"fffffffffffffffffefefefefefefefe":"101010101020002":"101010101020002":1 + +mbedtls_mpi_core_sub #247: 0xff00 - 0xfffffffffffffffffffffffffffffffe = 0xff02/ff02, carry 1 +mbedtls_mpi_core_sub:"ff00":"fffffffffffffffffffffffffffffffe":"ff02":"ff02":1 + +mbedtls_mpi_core_sub #248: 0xff00 - 0xffffffffffffffffffffffffffffffff = 0xff01/ff01, carry 1 +mbedtls_mpi_core_sub:"ff00":"ffffffffffffffffffffffffffffffff":"ff01":"ff01":1 + +mbedtls_mpi_core_sub #249: 0xff00 - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000000000000000ff00/ffffffffffffffff0000000000000000000000000000ff00, carry 1 +mbedtls_mpi_core_sub:"ff00":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000ff00":"ffffffffffffffff0000000000000000000000000000ff00":1 + +mbedtls_mpi_core_sub #250: 0xff00 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5442010/ffffffffffffffedcba9876f543210fedcba9876f5442010, carry 1 +mbedtls_mpi_core_sub:"ff00":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5442010":"ffffffffffffffedcba9876f543210fedcba9876f5442010":1 + +mbedtls_mpi_core_sub #251: 0xff00 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101020002/101010101020002, carry 1 +mbedtls_mpi_core_sub:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020002":"101010101020002":1 + +mbedtls_mpi_core_sub #252: 0xff00 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0xff02/ff02, carry 1 +mbedtls_mpi_core_sub:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ff02":"ff02":1 + +mbedtls_mpi_core_sub #253: 0xff00 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xff01/ff01, carry 1 +mbedtls_mpi_core_sub:"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff01":"ff01":1 + +mbedtls_mpi_core_sub #254: 0xff00 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000000000000000ff00/ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ff00, carry 1 +mbedtls_mpi_core_sub:"ff00":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000ff00":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ff00":1 + +mbedtls_mpi_core_sub #255: 0xff00 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010, carry 1 +mbedtls_mpi_core_sub:"ff00":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010":1 + +mbedtls_mpi_core_sub #256: 0xff00 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5, carry 1 +mbedtls_mpi_core_sub:"ff00":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5":1 + +mbedtls_mpi_core_sub #257: 0xfffe - 0x0 = 0xfffe/fffe, carry 0 +mbedtls_mpi_core_sub:"fffe":"0":"fffe":"fffe":0 + +mbedtls_mpi_core_sub #258: 0xfffe - 0x1 = 0xfffd/fffd, carry 0 +mbedtls_mpi_core_sub:"fffe":"1":"fffd":"fffd":0 + +mbedtls_mpi_core_sub #259: 0xfffe - 0x3 = 0xfffb/fffb, carry 0 +mbedtls_mpi_core_sub:"fffe":"3":"fffb":"fffb":0 + +mbedtls_mpi_core_sub #260: 0xfffe - 0xf = 0xffef/ffef, carry 0 +mbedtls_mpi_core_sub:"fffe":"f":"ffef":"ffef":0 + +mbedtls_mpi_core_sub #261: 0xfffe - 0xfe = 0xff00/ff00, carry 0 +mbedtls_mpi_core_sub:"fffe":"fe":"ff00":"ff00":0 + +mbedtls_mpi_core_sub #262: 0xfffe - 0xff = 0xfeff/feff, carry 0 +mbedtls_mpi_core_sub:"fffe":"ff":"feff":"feff":0 + +mbedtls_mpi_core_sub #263: 0xfffe - 0x100 = 0xfefe/fefe, carry 0 +mbedtls_mpi_core_sub:"fffe":"100":"fefe":"fefe":0 + +mbedtls_mpi_core_sub #264: 0xfffe - 0xff00 = 0xfe/fe, carry 0 +mbedtls_mpi_core_sub:"fffe":"ff00":"fe":"fe":0 + +mbedtls_mpi_core_sub #265: 0xfffe - 0xfffe = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"fffe":"fffe":"0":"0":0 + +mbedtls_mpi_core_sub #266: 0xfffe - 0xffff = 0xffffffff/ffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"fffe":"ffff":"ffffffff":"ffffffffffffffff":1 + +mbedtls_mpi_core_sub #267: 0xfffe - 0x10000 = 0xfffffffe/fffffffffffffffe, carry 1 +mbedtls_mpi_core_sub:"fffe":"10000":"fffffffe":"fffffffffffffffe":1 + +mbedtls_mpi_core_sub #268: 0xfffe - 0xfffffffe = 0x10000/ffffffff00010000, carry 1 +mbedtls_mpi_core_sub:"fffe":"fffffffe":"10000":"ffffffff00010000":1 + +mbedtls_mpi_core_sub #269: 0xfffe - 0xffffffff = 0xffff/ffffffff0000ffff, carry 1 +mbedtls_mpi_core_sub:"fffe":"ffffffff":"ffff":"ffffffff0000ffff":1 + +mbedtls_mpi_core_sub #270: 0xfffe - 0x100000000 = 0xffffffff0000fffe/ffffffff0000fffe, carry 1 +mbedtls_mpi_core_sub:"fffe":"100000000":"ffffffff0000fffe":"ffffffff0000fffe":1 + +mbedtls_mpi_core_sub #271: 0xfffe - 0x1f7f7f7f7f7f7f = 0xffe080808081807f/ffe080808081807f, carry 1 +mbedtls_mpi_core_sub:"fffe":"1f7f7f7f7f7f7f":"ffe080808081807f":"ffe080808081807f":1 + +mbedtls_mpi_core_sub #272: 0xfffe - 0x8000000000000000 = 0x800000000000fffe/800000000000fffe, carry 1 +mbedtls_mpi_core_sub:"fffe":"8000000000000000":"800000000000fffe":"800000000000fffe":1 + +mbedtls_mpi_core_sub #273: 0xfffe - 0xfefefefefefefefe = 0x101010101020100/101010101020100, carry 1 +mbedtls_mpi_core_sub:"fffe":"fefefefefefefefe":"101010101020100":"101010101020100":1 + +mbedtls_mpi_core_sub #274: 0xfffe - 0xfffffffffffffffe = 0x10000/10000, carry 1 +mbedtls_mpi_core_sub:"fffe":"fffffffffffffffe":"10000":"10000":1 + +mbedtls_mpi_core_sub #275: 0xfffe - 0xffffffffffffffff = 0xffff/ffff, carry 1 +mbedtls_mpi_core_sub:"fffe":"ffffffffffffffff":"ffff":"ffff":1 + +mbedtls_mpi_core_sub #276: 0xfffe - 0x10000000000000000 = 0xffffffff000000000000fffe/ffffffffffffffff000000000000fffe, carry 1 +mbedtls_mpi_core_sub:"fffe":"10000000000000000":"ffffffff000000000000fffe":"ffffffffffffffff000000000000fffe":1 + +mbedtls_mpi_core_sub #277: 0xfffe - 0x1234567890abcdef0 = 0xfffffffedcba9876f544210e/fffffffffffffffedcba9876f544210e, carry 1 +mbedtls_mpi_core_sub:"fffe":"1234567890abcdef0":"fffffffedcba9876f544210e":"fffffffffffffffedcba9876f544210e":1 + +mbedtls_mpi_core_sub #278: 0xfffe - 0xfffffffffffffffffefefefefefefefe = 0x101010101020100/101010101020100, carry 1 +mbedtls_mpi_core_sub:"fffe":"fffffffffffffffffefefefefefefefe":"101010101020100":"101010101020100":1 + +mbedtls_mpi_core_sub #279: 0xfffe - 0xfffffffffffffffffffffffffffffffe = 0x10000/10000, carry 1 +mbedtls_mpi_core_sub:"fffe":"fffffffffffffffffffffffffffffffe":"10000":"10000":1 + +mbedtls_mpi_core_sub #280: 0xfffe - 0xffffffffffffffffffffffffffffffff = 0xffff/ffff, carry 1 +mbedtls_mpi_core_sub:"fffe":"ffffffffffffffffffffffffffffffff":"ffff":"ffff":1 + +mbedtls_mpi_core_sub #281: 0xfffe - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000000000000000fffe/ffffffffffffffff0000000000000000000000000000fffe, carry 1 +mbedtls_mpi_core_sub:"fffe":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000fffe":"ffffffffffffffff0000000000000000000000000000fffe":1 + +mbedtls_mpi_core_sub #282: 0xfffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f544210e/ffffffffffffffedcba9876f543210fedcba9876f544210e, carry 1 +mbedtls_mpi_core_sub:"fffe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f544210e":"ffffffffffffffedcba9876f543210fedcba9876f544210e":1 + +mbedtls_mpi_core_sub #283: 0xfffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101020100/101010101020100, carry 1 +mbedtls_mpi_core_sub:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020100":"101010101020100":1 + +mbedtls_mpi_core_sub #284: 0xfffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10000/10000, carry 1 +mbedtls_mpi_core_sub:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000":"10000":1 + +mbedtls_mpi_core_sub #285: 0xfffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffff/ffff, carry 1 +mbedtls_mpi_core_sub:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff":1 + +mbedtls_mpi_core_sub #286: 0xfffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000000000000000fffe/ffffffffffffffff000000000000000000000000000000000000000000000000000000000000fffe, carry 1 +mbedtls_mpi_core_sub:"fffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000fffe":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000fffe":1 + +mbedtls_mpi_core_sub #287: 0xfffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e, carry 1 +mbedtls_mpi_core_sub:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e":1 + +mbedtls_mpi_core_sub #288: 0xfffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3, carry 1 +mbedtls_mpi_core_sub:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3":1 + +mbedtls_mpi_core_sub #289: 0xffff - 0x0 = 0xffff/ffff, carry 0 +mbedtls_mpi_core_sub:"ffff":"0":"ffff":"ffff":0 + +mbedtls_mpi_core_sub #290: 0xffff - 0x1 = 0xfffe/fffe, carry 0 +mbedtls_mpi_core_sub:"ffff":"1":"fffe":"fffe":0 + +mbedtls_mpi_core_sub #291: 0xffff - 0x3 = 0xfffc/fffc, carry 0 +mbedtls_mpi_core_sub:"ffff":"3":"fffc":"fffc":0 + +mbedtls_mpi_core_sub #292: 0xffff - 0xf = 0xfff0/fff0, carry 0 +mbedtls_mpi_core_sub:"ffff":"f":"fff0":"fff0":0 + +mbedtls_mpi_core_sub #293: 0xffff - 0xfe = 0xff01/ff01, carry 0 +mbedtls_mpi_core_sub:"ffff":"fe":"ff01":"ff01":0 + +mbedtls_mpi_core_sub #294: 0xffff - 0xff = 0xff00/ff00, carry 0 +mbedtls_mpi_core_sub:"ffff":"ff":"ff00":"ff00":0 + +mbedtls_mpi_core_sub #295: 0xffff - 0x100 = 0xfeff/feff, carry 0 +mbedtls_mpi_core_sub:"ffff":"100":"feff":"feff":0 + +mbedtls_mpi_core_sub #296: 0xffff - 0xff00 = 0xff/ff, carry 0 +mbedtls_mpi_core_sub:"ffff":"ff00":"ff":"ff":0 + +mbedtls_mpi_core_sub #297: 0xffff - 0xfffe = 0x1/1, carry 0 +mbedtls_mpi_core_sub:"ffff":"fffe":"1":"1":0 + +mbedtls_mpi_core_sub #298: 0xffff - 0xffff = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"ffff":"ffff":"0":"0":0 + +mbedtls_mpi_core_sub #299: 0xffff - 0x10000 = 0xffffffff/ffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"ffff":"10000":"ffffffff":"ffffffffffffffff":1 + +mbedtls_mpi_core_sub #300: 0xffff - 0xfffffffe = 0x10001/ffffffff00010001, carry 1 +mbedtls_mpi_core_sub:"ffff":"fffffffe":"10001":"ffffffff00010001":1 + +mbedtls_mpi_core_sub #301: 0xffff - 0xffffffff = 0x10000/ffffffff00010000, carry 1 +mbedtls_mpi_core_sub:"ffff":"ffffffff":"10000":"ffffffff00010000":1 + +mbedtls_mpi_core_sub #302: 0xffff - 0x100000000 = 0xffffffff0000ffff/ffffffff0000ffff, carry 1 +mbedtls_mpi_core_sub:"ffff":"100000000":"ffffffff0000ffff":"ffffffff0000ffff":1 + +mbedtls_mpi_core_sub #303: 0xffff - 0x1f7f7f7f7f7f7f = 0xffe0808080818080/ffe0808080818080, carry 1 +mbedtls_mpi_core_sub:"ffff":"1f7f7f7f7f7f7f":"ffe0808080818080":"ffe0808080818080":1 + +mbedtls_mpi_core_sub #304: 0xffff - 0x8000000000000000 = 0x800000000000ffff/800000000000ffff, carry 1 +mbedtls_mpi_core_sub:"ffff":"8000000000000000":"800000000000ffff":"800000000000ffff":1 + +mbedtls_mpi_core_sub #305: 0xffff - 0xfefefefefefefefe = 0x101010101020101/101010101020101, carry 1 +mbedtls_mpi_core_sub:"ffff":"fefefefefefefefe":"101010101020101":"101010101020101":1 + +mbedtls_mpi_core_sub #306: 0xffff - 0xfffffffffffffffe = 0x10001/10001, carry 1 +mbedtls_mpi_core_sub:"ffff":"fffffffffffffffe":"10001":"10001":1 + +mbedtls_mpi_core_sub #307: 0xffff - 0xffffffffffffffff = 0x10000/10000, carry 1 +mbedtls_mpi_core_sub:"ffff":"ffffffffffffffff":"10000":"10000":1 + +mbedtls_mpi_core_sub #308: 0xffff - 0x10000000000000000 = 0xffffffff000000000000ffff/ffffffffffffffff000000000000ffff, carry 1 +mbedtls_mpi_core_sub:"ffff":"10000000000000000":"ffffffff000000000000ffff":"ffffffffffffffff000000000000ffff":1 + +mbedtls_mpi_core_sub #309: 0xffff - 0x1234567890abcdef0 = 0xfffffffedcba9876f544210f/fffffffffffffffedcba9876f544210f, carry 1 +mbedtls_mpi_core_sub:"ffff":"1234567890abcdef0":"fffffffedcba9876f544210f":"fffffffffffffffedcba9876f544210f":1 + +mbedtls_mpi_core_sub #310: 0xffff - 0xfffffffffffffffffefefefefefefefe = 0x101010101020101/101010101020101, carry 1 +mbedtls_mpi_core_sub:"ffff":"fffffffffffffffffefefefefefefefe":"101010101020101":"101010101020101":1 + +mbedtls_mpi_core_sub #311: 0xffff - 0xfffffffffffffffffffffffffffffffe = 0x10001/10001, carry 1 +mbedtls_mpi_core_sub:"ffff":"fffffffffffffffffffffffffffffffe":"10001":"10001":1 + +mbedtls_mpi_core_sub #312: 0xffff - 0xffffffffffffffffffffffffffffffff = 0x10000/10000, carry 1 +mbedtls_mpi_core_sub:"ffff":"ffffffffffffffffffffffffffffffff":"10000":"10000":1 + +mbedtls_mpi_core_sub #313: 0xffff - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000000000000000ffff/ffffffffffffffff0000000000000000000000000000ffff, carry 1 +mbedtls_mpi_core_sub:"ffff":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000ffff":"ffffffffffffffff0000000000000000000000000000ffff":1 + +mbedtls_mpi_core_sub #314: 0xffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f544210f/ffffffffffffffedcba9876f543210fedcba9876f544210f, carry 1 +mbedtls_mpi_core_sub:"ffff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f544210f":"ffffffffffffffedcba9876f543210fedcba9876f544210f":1 + +mbedtls_mpi_core_sub #315: 0xffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101020101/101010101020101, carry 1 +mbedtls_mpi_core_sub:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020101":"101010101020101":1 + +mbedtls_mpi_core_sub #316: 0xffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10001/10001, carry 1 +mbedtls_mpi_core_sub:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10001":"10001":1 + +mbedtls_mpi_core_sub #317: 0xffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10000/10000, carry 1 +mbedtls_mpi_core_sub:"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"10000":1 + +mbedtls_mpi_core_sub #318: 0xffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000000000000000ffff/ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ffff, carry 1 +mbedtls_mpi_core_sub:"ffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000ffff":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ffff":1 + +mbedtls_mpi_core_sub #319: 0xffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f, carry 1 +mbedtls_mpi_core_sub:"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f":1 + +mbedtls_mpi_core_sub #320: 0xffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4, carry 1 +mbedtls_mpi_core_sub:"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4":1 + +mbedtls_mpi_core_sub #321: 0x10000 - 0x0 = 0x10000/10000, carry 0 +mbedtls_mpi_core_sub:"10000":"0":"10000":"10000":0 + +mbedtls_mpi_core_sub #322: 0x10000 - 0x1 = 0xffff/ffff, carry 0 +mbedtls_mpi_core_sub:"10000":"1":"ffff":"ffff":0 + +mbedtls_mpi_core_sub #323: 0x10000 - 0x3 = 0xfffd/fffd, carry 0 +mbedtls_mpi_core_sub:"10000":"3":"fffd":"fffd":0 + +mbedtls_mpi_core_sub #324: 0x10000 - 0xf = 0xfff1/fff1, carry 0 +mbedtls_mpi_core_sub:"10000":"f":"fff1":"fff1":0 + +mbedtls_mpi_core_sub #325: 0x10000 - 0xfe = 0xff02/ff02, carry 0 +mbedtls_mpi_core_sub:"10000":"fe":"ff02":"ff02":0 + +mbedtls_mpi_core_sub #326: 0x10000 - 0xff = 0xff01/ff01, carry 0 +mbedtls_mpi_core_sub:"10000":"ff":"ff01":"ff01":0 + +mbedtls_mpi_core_sub #327: 0x10000 - 0x100 = 0xff00/ff00, carry 0 +mbedtls_mpi_core_sub:"10000":"100":"ff00":"ff00":0 + +mbedtls_mpi_core_sub #328: 0x10000 - 0xff00 = 0x100/100, carry 0 +mbedtls_mpi_core_sub:"10000":"ff00":"100":"100":0 + +mbedtls_mpi_core_sub #329: 0x10000 - 0xfffe = 0x2/2, carry 0 +mbedtls_mpi_core_sub:"10000":"fffe":"2":"2":0 + +mbedtls_mpi_core_sub #330: 0x10000 - 0xffff = 0x1/1, carry 0 +mbedtls_mpi_core_sub:"10000":"ffff":"1":"1":0 + +mbedtls_mpi_core_sub #331: 0x10000 - 0x10000 = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"10000":"10000":"0":"0":0 + +mbedtls_mpi_core_sub #332: 0x10000 - 0xfffffffe = 0x10002/ffffffff00010002, carry 1 +mbedtls_mpi_core_sub:"10000":"fffffffe":"10002":"ffffffff00010002":1 + +mbedtls_mpi_core_sub #333: 0x10000 - 0xffffffff = 0x10001/ffffffff00010001, carry 1 +mbedtls_mpi_core_sub:"10000":"ffffffff":"10001":"ffffffff00010001":1 + +mbedtls_mpi_core_sub #334: 0x10000 - 0x100000000 = 0xffffffff00010000/ffffffff00010000, carry 1 +mbedtls_mpi_core_sub:"10000":"100000000":"ffffffff00010000":"ffffffff00010000":1 + +mbedtls_mpi_core_sub #335: 0x10000 - 0x1f7f7f7f7f7f7f = 0xffe0808080818081/ffe0808080818081, carry 1 +mbedtls_mpi_core_sub:"10000":"1f7f7f7f7f7f7f":"ffe0808080818081":"ffe0808080818081":1 + +mbedtls_mpi_core_sub #336: 0x10000 - 0x8000000000000000 = 0x8000000000010000/8000000000010000, carry 1 +mbedtls_mpi_core_sub:"10000":"8000000000000000":"8000000000010000":"8000000000010000":1 + +mbedtls_mpi_core_sub #337: 0x10000 - 0xfefefefefefefefe = 0x101010101020102/101010101020102, carry 1 +mbedtls_mpi_core_sub:"10000":"fefefefefefefefe":"101010101020102":"101010101020102":1 + +mbedtls_mpi_core_sub #338: 0x10000 - 0xfffffffffffffffe = 0x10002/10002, carry 1 +mbedtls_mpi_core_sub:"10000":"fffffffffffffffe":"10002":"10002":1 + +mbedtls_mpi_core_sub #339: 0x10000 - 0xffffffffffffffff = 0x10001/10001, carry 1 +mbedtls_mpi_core_sub:"10000":"ffffffffffffffff":"10001":"10001":1 + +mbedtls_mpi_core_sub #340: 0x10000 - 0x10000000000000000 = 0xffffffff0000000000010000/ffffffffffffffff0000000000010000, carry 1 +mbedtls_mpi_core_sub:"10000":"10000000000000000":"ffffffff0000000000010000":"ffffffffffffffff0000000000010000":1 + +mbedtls_mpi_core_sub #341: 0x10000 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5442110/fffffffffffffffedcba9876f5442110, carry 1 +mbedtls_mpi_core_sub:"10000":"1234567890abcdef0":"fffffffedcba9876f5442110":"fffffffffffffffedcba9876f5442110":1 + +mbedtls_mpi_core_sub #342: 0x10000 - 0xfffffffffffffffffefefefefefefefe = 0x101010101020102/101010101020102, carry 1 +mbedtls_mpi_core_sub:"10000":"fffffffffffffffffefefefefefefefe":"101010101020102":"101010101020102":1 + +mbedtls_mpi_core_sub #343: 0x10000 - 0xfffffffffffffffffffffffffffffffe = 0x10002/10002, carry 1 +mbedtls_mpi_core_sub:"10000":"fffffffffffffffffffffffffffffffe":"10002":"10002":1 + +mbedtls_mpi_core_sub #344: 0x10000 - 0xffffffffffffffffffffffffffffffff = 0x10001/10001, carry 1 +mbedtls_mpi_core_sub:"10000":"ffffffffffffffffffffffffffffffff":"10001":"10001":1 + +mbedtls_mpi_core_sub #345: 0x10000 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000010000/ffffffffffffffff00000000000000000000000000010000, carry 1 +mbedtls_mpi_core_sub:"10000":"100000000000000000000000000000000":"ffffffff00000000000000000000000000010000":"ffffffffffffffff00000000000000000000000000010000":1 + +mbedtls_mpi_core_sub #346: 0x10000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5442110/ffffffffffffffedcba9876f543210fedcba9876f5442110, carry 1 +mbedtls_mpi_core_sub:"10000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5442110":"ffffffffffffffedcba9876f543210fedcba9876f5442110":1 + +mbedtls_mpi_core_sub #347: 0x10000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101020102/101010101020102, carry 1 +mbedtls_mpi_core_sub:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020102":"101010101020102":1 + +mbedtls_mpi_core_sub #348: 0x10000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10002/10002, carry 1 +mbedtls_mpi_core_sub:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10002":"10002":1 + +mbedtls_mpi_core_sub #349: 0x10000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10001/10001, carry 1 +mbedtls_mpi_core_sub:"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10001":"10001":1 + +mbedtls_mpi_core_sub #350: 0x10000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000010000/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000010000, carry 1 +mbedtls_mpi_core_sub:"10000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000010000":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000010000":1 + +mbedtls_mpi_core_sub #351: 0x10000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110, carry 1 +mbedtls_mpi_core_sub:"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110":1 + +mbedtls_mpi_core_sub #352: 0x10000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5, carry 1 +mbedtls_mpi_core_sub:"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5":1 + +mbedtls_mpi_core_sub #353: 0xfffffffe - 0x0 = 0xfffffffe/fffffffe, carry 0 +mbedtls_mpi_core_sub:"fffffffe":"0":"fffffffe":"fffffffe":0 + +mbedtls_mpi_core_sub #354: 0xfffffffe - 0x1 = 0xfffffffd/fffffffd, carry 0 +mbedtls_mpi_core_sub:"fffffffe":"1":"fffffffd":"fffffffd":0 + +mbedtls_mpi_core_sub #355: 0xfffffffe - 0x3 = 0xfffffffb/fffffffb, carry 0 +mbedtls_mpi_core_sub:"fffffffe":"3":"fffffffb":"fffffffb":0 + +mbedtls_mpi_core_sub #356: 0xfffffffe - 0xf = 0xffffffef/ffffffef, carry 0 +mbedtls_mpi_core_sub:"fffffffe":"f":"ffffffef":"ffffffef":0 + +mbedtls_mpi_core_sub #357: 0xfffffffe - 0xfe = 0xffffff00/ffffff00, carry 0 +mbedtls_mpi_core_sub:"fffffffe":"fe":"ffffff00":"ffffff00":0 + +mbedtls_mpi_core_sub #358: 0xfffffffe - 0xff = 0xfffffeff/fffffeff, carry 0 +mbedtls_mpi_core_sub:"fffffffe":"ff":"fffffeff":"fffffeff":0 + +mbedtls_mpi_core_sub #359: 0xfffffffe - 0x100 = 0xfffffefe/fffffefe, carry 0 +mbedtls_mpi_core_sub:"fffffffe":"100":"fffffefe":"fffffefe":0 + +mbedtls_mpi_core_sub #360: 0xfffffffe - 0xff00 = 0xffff00fe/ffff00fe, carry 0 +mbedtls_mpi_core_sub:"fffffffe":"ff00":"ffff00fe":"ffff00fe":0 + +mbedtls_mpi_core_sub #361: 0xfffffffe - 0xfffe = 0xffff0000/ffff0000, carry 0 +mbedtls_mpi_core_sub:"fffffffe":"fffe":"ffff0000":"ffff0000":0 + +mbedtls_mpi_core_sub #362: 0xfffffffe - 0xffff = 0xfffeffff/fffeffff, carry 0 +mbedtls_mpi_core_sub:"fffffffe":"ffff":"fffeffff":"fffeffff":0 + +mbedtls_mpi_core_sub #363: 0xfffffffe - 0x10000 = 0xfffefffe/fffefffe, carry 0 +mbedtls_mpi_core_sub:"fffffffe":"10000":"fffefffe":"fffefffe":0 + +mbedtls_mpi_core_sub #364: 0xfffffffe - 0xfffffffe = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"fffffffe":"fffffffe":"0":"0":0 + +mbedtls_mpi_core_sub #365: 0xfffffffe - 0xffffffff = 0xffffffff/ffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"ffffffff":"ffffffff":"ffffffffffffffff":1 + +mbedtls_mpi_core_sub #366: 0xfffffffe - 0x100000000 = 0xfffffffffffffffe/fffffffffffffffe, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"100000000":"fffffffffffffffe":"fffffffffffffffe":1 + +mbedtls_mpi_core_sub #367: 0xfffffffe - 0x1f7f7f7f7f7f7f = 0xffe080818080807f/ffe080818080807f, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"1f7f7f7f7f7f7f":"ffe080818080807f":"ffe080818080807f":1 + +mbedtls_mpi_core_sub #368: 0xfffffffe - 0x8000000000000000 = 0x80000000fffffffe/80000000fffffffe, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"8000000000000000":"80000000fffffffe":"80000000fffffffe":1 + +mbedtls_mpi_core_sub #369: 0xfffffffe - 0xfefefefefefefefe = 0x101010201010100/101010201010100, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"fefefefefefefefe":"101010201010100":"101010201010100":1 + +mbedtls_mpi_core_sub #370: 0xfffffffe - 0xfffffffffffffffe = 0x100000000/100000000, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"fffffffffffffffe":"100000000":"100000000":1 + +mbedtls_mpi_core_sub #371: 0xfffffffe - 0xffffffffffffffff = 0xffffffff/ffffffff, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"ffffffffffffffff":"ffffffff":"ffffffff":1 + +mbedtls_mpi_core_sub #372: 0xfffffffe - 0x10000000000000000 = 0xffffffff00000000fffffffe/ffffffffffffffff00000000fffffffe, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"10000000000000000":"ffffffff00000000fffffffe":"ffffffffffffffff00000000fffffffe":1 + +mbedtls_mpi_core_sub #373: 0xfffffffe - 0x1234567890abcdef0 = 0xfffffffedcba9877f543210e/fffffffffffffffedcba9877f543210e, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"1234567890abcdef0":"fffffffedcba9877f543210e":"fffffffffffffffedcba9877f543210e":1 + +mbedtls_mpi_core_sub #374: 0xfffffffe - 0xfffffffffffffffffefefefefefefefe = 0x101010201010100/101010201010100, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"fffffffffffffffffefefefefefefefe":"101010201010100":"101010201010100":1 + +mbedtls_mpi_core_sub #375: 0xfffffffe - 0xfffffffffffffffffffffffffffffffe = 0x100000000/100000000, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"fffffffffffffffffffffffffffffffe":"100000000":"100000000":1 + +mbedtls_mpi_core_sub #376: 0xfffffffe - 0xffffffffffffffffffffffffffffffff = 0xffffffff/ffffffff, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"ffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff":1 + +mbedtls_mpi_core_sub #377: 0xfffffffe - 0x100000000000000000000000000000000 = 0xffffffff000000000000000000000000fffffffe/ffffffffffffffff000000000000000000000000fffffffe, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"100000000000000000000000000000000":"ffffffff000000000000000000000000fffffffe":"ffffffffffffffff000000000000000000000000fffffffe":1 + +mbedtls_mpi_core_sub #378: 0xfffffffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9877f543210e/ffffffffffffffedcba9876f543210fedcba9877f543210e, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9877f543210e":"ffffffffffffffedcba9876f543210fedcba9877f543210e":1 + +mbedtls_mpi_core_sub #379: 0xfffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010201010100/101010201010100, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010201010100":"101010201010100":1 + +mbedtls_mpi_core_sub #380: 0xfffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000000/100000000, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000":"100000000":1 + +mbedtls_mpi_core_sub #381: 0xfffffffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffffffff/ffffffff, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff":1 + +mbedtls_mpi_core_sub #382: 0xfffffffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000000000000000000000000000fffffffe/ffffffffffffffff00000000000000000000000000000000000000000000000000000000fffffffe, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000fffffffe":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000fffffffe":1 + +mbedtls_mpi_core_sub #383: 0xfffffffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e":1 + +mbedtls_mpi_core_sub #384: 0xfffffffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3, carry 1 +mbedtls_mpi_core_sub:"fffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3":1 + +mbedtls_mpi_core_sub #385: 0xffffffff - 0x0 = 0xffffffff/ffffffff, carry 0 +mbedtls_mpi_core_sub:"ffffffff":"0":"ffffffff":"ffffffff":0 + +mbedtls_mpi_core_sub #386: 0xffffffff - 0x1 = 0xfffffffe/fffffffe, carry 0 +mbedtls_mpi_core_sub:"ffffffff":"1":"fffffffe":"fffffffe":0 + +mbedtls_mpi_core_sub #387: 0xffffffff - 0x3 = 0xfffffffc/fffffffc, carry 0 +mbedtls_mpi_core_sub:"ffffffff":"3":"fffffffc":"fffffffc":0 + +mbedtls_mpi_core_sub #388: 0xffffffff - 0xf = 0xfffffff0/fffffff0, carry 0 +mbedtls_mpi_core_sub:"ffffffff":"f":"fffffff0":"fffffff0":0 + +mbedtls_mpi_core_sub #389: 0xffffffff - 0xfe = 0xffffff01/ffffff01, carry 0 +mbedtls_mpi_core_sub:"ffffffff":"fe":"ffffff01":"ffffff01":0 + +mbedtls_mpi_core_sub #390: 0xffffffff - 0xff = 0xffffff00/ffffff00, carry 0 +mbedtls_mpi_core_sub:"ffffffff":"ff":"ffffff00":"ffffff00":0 + +mbedtls_mpi_core_sub #391: 0xffffffff - 0x100 = 0xfffffeff/fffffeff, carry 0 +mbedtls_mpi_core_sub:"ffffffff":"100":"fffffeff":"fffffeff":0 + +mbedtls_mpi_core_sub #392: 0xffffffff - 0xff00 = 0xffff00ff/ffff00ff, carry 0 +mbedtls_mpi_core_sub:"ffffffff":"ff00":"ffff00ff":"ffff00ff":0 + +mbedtls_mpi_core_sub #393: 0xffffffff - 0xfffe = 0xffff0001/ffff0001, carry 0 +mbedtls_mpi_core_sub:"ffffffff":"fffe":"ffff0001":"ffff0001":0 + +mbedtls_mpi_core_sub #394: 0xffffffff - 0xffff = 0xffff0000/ffff0000, carry 0 +mbedtls_mpi_core_sub:"ffffffff":"ffff":"ffff0000":"ffff0000":0 + +mbedtls_mpi_core_sub #395: 0xffffffff - 0x10000 = 0xfffeffff/fffeffff, carry 0 +mbedtls_mpi_core_sub:"ffffffff":"10000":"fffeffff":"fffeffff":0 + +mbedtls_mpi_core_sub #396: 0xffffffff - 0xfffffffe = 0x1/1, carry 0 +mbedtls_mpi_core_sub:"ffffffff":"fffffffe":"1":"1":0 + +mbedtls_mpi_core_sub #397: 0xffffffff - 0xffffffff = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"ffffffff":"ffffffff":"0":"0":0 + +mbedtls_mpi_core_sub #398: 0xffffffff - 0x100000000 = 0xffffffffffffffff/ffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"100000000":"ffffffffffffffff":"ffffffffffffffff":1 + +mbedtls_mpi_core_sub #399: 0xffffffff - 0x1f7f7f7f7f7f7f = 0xffe0808180808080/ffe0808180808080, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"1f7f7f7f7f7f7f":"ffe0808180808080":"ffe0808180808080":1 + +mbedtls_mpi_core_sub #400: 0xffffffff - 0x8000000000000000 = 0x80000000ffffffff/80000000ffffffff, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"8000000000000000":"80000000ffffffff":"80000000ffffffff":1 + +mbedtls_mpi_core_sub #401: 0xffffffff - 0xfefefefefefefefe = 0x101010201010101/101010201010101, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"fefefefefefefefe":"101010201010101":"101010201010101":1 + +mbedtls_mpi_core_sub #402: 0xffffffff - 0xfffffffffffffffe = 0x100000001/100000001, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"fffffffffffffffe":"100000001":"100000001":1 + +mbedtls_mpi_core_sub #403: 0xffffffff - 0xffffffffffffffff = 0x100000000/100000000, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"ffffffffffffffff":"100000000":"100000000":1 + +mbedtls_mpi_core_sub #404: 0xffffffff - 0x10000000000000000 = 0xffffffff00000000ffffffff/ffffffffffffffff00000000ffffffff, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"10000000000000000":"ffffffff00000000ffffffff":"ffffffffffffffff00000000ffffffff":1 + +mbedtls_mpi_core_sub #405: 0xffffffff - 0x1234567890abcdef0 = 0xfffffffedcba9877f543210f/fffffffffffffffedcba9877f543210f, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"1234567890abcdef0":"fffffffedcba9877f543210f":"fffffffffffffffedcba9877f543210f":1 + +mbedtls_mpi_core_sub #406: 0xffffffff - 0xfffffffffffffffffefefefefefefefe = 0x101010201010101/101010201010101, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"fffffffffffffffffefefefefefefefe":"101010201010101":"101010201010101":1 + +mbedtls_mpi_core_sub #407: 0xffffffff - 0xfffffffffffffffffffffffffffffffe = 0x100000001/100000001, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"fffffffffffffffffffffffffffffffe":"100000001":"100000001":1 + +mbedtls_mpi_core_sub #408: 0xffffffff - 0xffffffffffffffffffffffffffffffff = 0x100000000/100000000, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"ffffffffffffffffffffffffffffffff":"100000000":"100000000":1 + +mbedtls_mpi_core_sub #409: 0xffffffff - 0x100000000000000000000000000000000 = 0xffffffff000000000000000000000000ffffffff/ffffffffffffffff000000000000000000000000ffffffff, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"100000000000000000000000000000000":"ffffffff000000000000000000000000ffffffff":"ffffffffffffffff000000000000000000000000ffffffff":1 + +mbedtls_mpi_core_sub #410: 0xffffffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9877f543210f/ffffffffffffffedcba9876f543210fedcba9877f543210f, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9877f543210f":"ffffffffffffffedcba9876f543210fedcba9877f543210f":1 + +mbedtls_mpi_core_sub #411: 0xffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010201010101/101010201010101, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010201010101":"101010201010101":1 + +mbedtls_mpi_core_sub #412: 0xffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000001/100000001, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000001":"100000001":1 + +mbedtls_mpi_core_sub #413: 0xffffffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100000000/100000000, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"100000000":1 + +mbedtls_mpi_core_sub #414: 0xffffffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000000000000000000000000000ffffffff/ffffffffffffffff00000000000000000000000000000000000000000000000000000000ffffffff, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000ffffffff":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000ffffffff":1 + +mbedtls_mpi_core_sub #415: 0xffffffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f":1 + +mbedtls_mpi_core_sub #416: 0xffffffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4, carry 1 +mbedtls_mpi_core_sub:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4":1 + +mbedtls_mpi_core_sub #417: 0x100000000 - 0x0 = 0x100000000/100000000, carry 0 +mbedtls_mpi_core_sub:"100000000":"0":"100000000":"100000000":0 + +mbedtls_mpi_core_sub #418: 0x100000000 - 0x1 = 0xffffffff/ffffffff, carry 0 +mbedtls_mpi_core_sub:"100000000":"1":"ffffffff":"ffffffff":0 + +mbedtls_mpi_core_sub #419: 0x100000000 - 0x3 = 0xfffffffd/fffffffd, carry 0 +mbedtls_mpi_core_sub:"100000000":"3":"fffffffd":"fffffffd":0 + +mbedtls_mpi_core_sub #420: 0x100000000 - 0xf = 0xfffffff1/fffffff1, carry 0 +mbedtls_mpi_core_sub:"100000000":"f":"fffffff1":"fffffff1":0 + +mbedtls_mpi_core_sub #421: 0x100000000 - 0xfe = 0xffffff02/ffffff02, carry 0 +mbedtls_mpi_core_sub:"100000000":"fe":"ffffff02":"ffffff02":0 + +mbedtls_mpi_core_sub #422: 0x100000000 - 0xff = 0xffffff01/ffffff01, carry 0 +mbedtls_mpi_core_sub:"100000000":"ff":"ffffff01":"ffffff01":0 + +mbedtls_mpi_core_sub #423: 0x100000000 - 0x100 = 0xffffff00/ffffff00, carry 0 +mbedtls_mpi_core_sub:"100000000":"100":"ffffff00":"ffffff00":0 + +mbedtls_mpi_core_sub #424: 0x100000000 - 0xff00 = 0xffff0100/ffff0100, carry 0 +mbedtls_mpi_core_sub:"100000000":"ff00":"ffff0100":"ffff0100":0 + +mbedtls_mpi_core_sub #425: 0x100000000 - 0xfffe = 0xffff0002/ffff0002, carry 0 +mbedtls_mpi_core_sub:"100000000":"fffe":"ffff0002":"ffff0002":0 + +mbedtls_mpi_core_sub #426: 0x100000000 - 0xffff = 0xffff0001/ffff0001, carry 0 +mbedtls_mpi_core_sub:"100000000":"ffff":"ffff0001":"ffff0001":0 + +mbedtls_mpi_core_sub #427: 0x100000000 - 0x10000 = 0xffff0000/ffff0000, carry 0 +mbedtls_mpi_core_sub:"100000000":"10000":"ffff0000":"ffff0000":0 + +mbedtls_mpi_core_sub #428: 0x100000000 - 0xfffffffe = 0x2/2, carry 0 +mbedtls_mpi_core_sub:"100000000":"fffffffe":"2":"2":0 + +mbedtls_mpi_core_sub #429: 0x100000000 - 0xffffffff = 0x1/1, carry 0 +mbedtls_mpi_core_sub:"100000000":"ffffffff":"1":"1":0 + +mbedtls_mpi_core_sub #430: 0x100000000 - 0x100000000 = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"100000000":"100000000":"0":"0":0 + +mbedtls_mpi_core_sub #431: 0x100000000 - 0x1f7f7f7f7f7f7f = 0xffe0808180808081/ffe0808180808081, carry 1 +mbedtls_mpi_core_sub:"100000000":"1f7f7f7f7f7f7f":"ffe0808180808081":"ffe0808180808081":1 + +mbedtls_mpi_core_sub #432: 0x100000000 - 0x8000000000000000 = 0x8000000100000000/8000000100000000, carry 1 +mbedtls_mpi_core_sub:"100000000":"8000000000000000":"8000000100000000":"8000000100000000":1 + +mbedtls_mpi_core_sub #433: 0x100000000 - 0xfefefefefefefefe = 0x101010201010102/101010201010102, carry 1 +mbedtls_mpi_core_sub:"100000000":"fefefefefefefefe":"101010201010102":"101010201010102":1 + +mbedtls_mpi_core_sub #434: 0x100000000 - 0xfffffffffffffffe = 0x100000002/100000002, carry 1 +mbedtls_mpi_core_sub:"100000000":"fffffffffffffffe":"100000002":"100000002":1 + +mbedtls_mpi_core_sub #435: 0x100000000 - 0xffffffffffffffff = 0x100000001/100000001, carry 1 +mbedtls_mpi_core_sub:"100000000":"ffffffffffffffff":"100000001":"100000001":1 + +mbedtls_mpi_core_sub #436: 0x100000000 - 0x10000000000000000 = 0xffffffff0000000100000000/ffffffffffffffff0000000100000000, carry 1 +mbedtls_mpi_core_sub:"100000000":"10000000000000000":"ffffffff0000000100000000":"ffffffffffffffff0000000100000000":1 + +mbedtls_mpi_core_sub #437: 0x100000000 - 0x1234567890abcdef0 = 0xfffffffedcba9877f5432110/fffffffffffffffedcba9877f5432110, carry 1 +mbedtls_mpi_core_sub:"100000000":"1234567890abcdef0":"fffffffedcba9877f5432110":"fffffffffffffffedcba9877f5432110":1 + +mbedtls_mpi_core_sub #438: 0x100000000 - 0xfffffffffffffffffefefefefefefefe = 0x101010201010102/101010201010102, carry 1 +mbedtls_mpi_core_sub:"100000000":"fffffffffffffffffefefefefefefefe":"101010201010102":"101010201010102":1 + +mbedtls_mpi_core_sub #439: 0x100000000 - 0xfffffffffffffffffffffffffffffffe = 0x100000002/100000002, carry 1 +mbedtls_mpi_core_sub:"100000000":"fffffffffffffffffffffffffffffffe":"100000002":"100000002":1 + +mbedtls_mpi_core_sub #440: 0x100000000 - 0xffffffffffffffffffffffffffffffff = 0x100000001/100000001, carry 1 +mbedtls_mpi_core_sub:"100000000":"ffffffffffffffffffffffffffffffff":"100000001":"100000001":1 + +mbedtls_mpi_core_sub #441: 0x100000000 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000100000000/ffffffffffffffff00000000000000000000000100000000, carry 1 +mbedtls_mpi_core_sub:"100000000":"100000000000000000000000000000000":"ffffffff00000000000000000000000100000000":"ffffffffffffffff00000000000000000000000100000000":1 + +mbedtls_mpi_core_sub #442: 0x100000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9877f5432110/ffffffffffffffedcba9876f543210fedcba9877f5432110, carry 1 +mbedtls_mpi_core_sub:"100000000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9877f5432110":"ffffffffffffffedcba9876f543210fedcba9877f5432110":1 + +mbedtls_mpi_core_sub #443: 0x100000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010201010102/101010201010102, carry 1 +mbedtls_mpi_core_sub:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010201010102":"101010201010102":1 + +mbedtls_mpi_core_sub #444: 0x100000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000002/100000002, carry 1 +mbedtls_mpi_core_sub:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000002":"100000002":1 + +mbedtls_mpi_core_sub #445: 0x100000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100000001/100000001, carry 1 +mbedtls_mpi_core_sub:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000001":"100000001":1 + +mbedtls_mpi_core_sub #446: 0x100000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000100000000/ffffffffffffffff0000000000000000000000000000000000000000000000000000000100000000, carry 1 +mbedtls_mpi_core_sub:"100000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000100000000":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000100000000":1 + +mbedtls_mpi_core_sub #447: 0x100000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110, carry 1 +mbedtls_mpi_core_sub:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110":1 + +mbedtls_mpi_core_sub #448: 0x100000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5, carry 1 +mbedtls_mpi_core_sub:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5":1 + +mbedtls_mpi_core_sub #449: 0x1f7f7f7f7f7f7f - 0x0 = 0x1f7f7f7f7f7f7f/1f7f7f7f7f7f7f, carry 0 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"0":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":0 + +mbedtls_mpi_core_sub #450: 0x1f7f7f7f7f7f7f - 0x1 = 0x1f7f7f7f7f7f7e/1f7f7f7f7f7f7e, carry 0 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"1":"1f7f7f7f7f7f7e":"1f7f7f7f7f7f7e":0 + +mbedtls_mpi_core_sub #451: 0x1f7f7f7f7f7f7f - 0x3 = 0x1f7f7f7f7f7f7c/1f7f7f7f7f7f7c, carry 0 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"3":"1f7f7f7f7f7f7c":"1f7f7f7f7f7f7c":0 + +mbedtls_mpi_core_sub #452: 0x1f7f7f7f7f7f7f - 0xf = 0x1f7f7f7f7f7f70/1f7f7f7f7f7f70, carry 0 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"f":"1f7f7f7f7f7f70":"1f7f7f7f7f7f70":0 + +mbedtls_mpi_core_sub #453: 0x1f7f7f7f7f7f7f - 0xfe = 0x1f7f7f7f7f7e81/1f7f7f7f7f7e81, carry 0 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fe":"1f7f7f7f7f7e81":"1f7f7f7f7f7e81":0 + +mbedtls_mpi_core_sub #454: 0x1f7f7f7f7f7f7f - 0xff = 0x1f7f7f7f7f7e80/1f7f7f7f7f7e80, carry 0 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"ff":"1f7f7f7f7f7e80":"1f7f7f7f7f7e80":0 + +mbedtls_mpi_core_sub #455: 0x1f7f7f7f7f7f7f - 0x100 = 0x1f7f7f7f7f7e7f/1f7f7f7f7f7e7f, carry 0 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"100":"1f7f7f7f7f7e7f":"1f7f7f7f7f7e7f":0 + +mbedtls_mpi_core_sub #456: 0x1f7f7f7f7f7f7f - 0xff00 = 0x1f7f7f7f7e807f/1f7f7f7f7e807f, carry 0 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"ff00":"1f7f7f7f7e807f":"1f7f7f7f7e807f":0 + +mbedtls_mpi_core_sub #457: 0x1f7f7f7f7f7f7f - 0xfffe = 0x1f7f7f7f7e7f81/1f7f7f7f7e7f81, carry 0 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fffe":"1f7f7f7f7e7f81":"1f7f7f7f7e7f81":0 + +mbedtls_mpi_core_sub #458: 0x1f7f7f7f7f7f7f - 0xffff = 0x1f7f7f7f7e7f80/1f7f7f7f7e7f80, carry 0 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"ffff":"1f7f7f7f7e7f80":"1f7f7f7f7e7f80":0 + +mbedtls_mpi_core_sub #459: 0x1f7f7f7f7f7f7f - 0x10000 = 0x1f7f7f7f7e7f7f/1f7f7f7f7e7f7f, carry 0 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"10000":"1f7f7f7f7e7f7f":"1f7f7f7f7e7f7f":0 + +mbedtls_mpi_core_sub #460: 0x1f7f7f7f7f7f7f - 0xfffffffe = 0x1f7f7e7f7f7f81/1f7f7e7f7f7f81, carry 0 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffe":"1f7f7e7f7f7f81":"1f7f7e7f7f7f81":0 + +mbedtls_mpi_core_sub #461: 0x1f7f7f7f7f7f7f - 0xffffffff = 0x1f7f7e7f7f7f80/1f7f7e7f7f7f80, carry 0 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffff":"1f7f7e7f7f7f80":"1f7f7e7f7f7f80":0 + +mbedtls_mpi_core_sub #462: 0x1f7f7f7f7f7f7f - 0x100000000 = 0x1f7f7e7f7f7f7f/1f7f7e7f7f7f7f, carry 0 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"100000000":"1f7f7e7f7f7f7f":"1f7f7e7f7f7f7f":0 + +mbedtls_mpi_core_sub #463: 0x1f7f7f7f7f7f7f - 0x1f7f7f7f7f7f7f = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":"0":"0":0 + +mbedtls_mpi_core_sub #464: 0x1f7f7f7f7f7f7f - 0x8000000000000000 = 0x801f7f7f7f7f7f7f/801f7f7f7f7f7f7f, carry 1 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"8000000000000000":"801f7f7f7f7f7f7f":"801f7f7f7f7f7f7f":1 + +mbedtls_mpi_core_sub #465: 0x1f7f7f7f7f7f7f - 0xfefefefefefefefe = 0x120808080808081/120808080808081, carry 1 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fefefefefefefefe":"120808080808081":"120808080808081":1 + +mbedtls_mpi_core_sub #466: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffe = 0x1f7f7f7f7f7f81/1f7f7f7f7f7f81, carry 1 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffe":"1f7f7f7f7f7f81":"1f7f7f7f7f7f81":1 + +mbedtls_mpi_core_sub #467: 0x1f7f7f7f7f7f7f - 0xffffffffffffffff = 0x1f7f7f7f7f7f80/1f7f7f7f7f7f80, carry 1 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffffffffffff":"1f7f7f7f7f7f80":"1f7f7f7f7f7f80":1 + +mbedtls_mpi_core_sub #468: 0x1f7f7f7f7f7f7f - 0x10000000000000000 = 0xffffffff001f7f7f7f7f7f7f/ffffffffffffffff001f7f7f7f7f7f7f, carry 1 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"10000000000000000":"ffffffff001f7f7f7f7f7f7f":"ffffffffffffffff001f7f7f7f7f7f7f":1 + +mbedtls_mpi_core_sub #469: 0x1f7f7f7f7f7f7f - 0x1234567890abcdef0 = 0xfffffffedcda17f674c2a08f/fffffffffffffffedcda17f674c2a08f, carry 1 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"1234567890abcdef0":"fffffffedcda17f674c2a08f":"fffffffffffffffedcda17f674c2a08f":1 + +mbedtls_mpi_core_sub #470: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffffefefefefefefefe = 0x120808080808081/120808080808081, carry 1 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffefefefefefefefe":"120808080808081":"120808080808081":1 + +mbedtls_mpi_core_sub #471: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffffffffffffffffffe = 0x1f7f7f7f7f7f81/1f7f7f7f7f7f81, carry 1 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f81":"1f7f7f7f7f7f81":1 + +mbedtls_mpi_core_sub #472: 0x1f7f7f7f7f7f7f - 0xffffffffffffffffffffffffffffffff = 0x1f7f7f7f7f7f80/1f7f7f7f7f7f80, carry 1 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f80":"1f7f7f7f7f7f80":1 + +mbedtls_mpi_core_sub #473: 0x1f7f7f7f7f7f7f - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000001f7f7f7f7f7f7f/ffffffffffffffff0000000000000000001f7f7f7f7f7f7f, carry 1 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"100000000000000000000000000000000":"ffffffff0000000000000000001f7f7f7f7f7f7f":"ffffffffffffffff0000000000000000001f7f7f7f7f7f7f":1 + +mbedtls_mpi_core_sub #474: 0x1f7f7f7f7f7f7f - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcda17f674c2a08f/ffffffffffffffedcba9876f543210fedcda17f674c2a08f, carry 1 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcda17f674c2a08f":"ffffffffffffffedcba9876f543210fedcda17f674c2a08f":1 + +mbedtls_mpi_core_sub #475: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x120808080808081/120808080808081, carry 1 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"120808080808081":"120808080808081":1 + +mbedtls_mpi_core_sub #476: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1f7f7f7f7f7f81/1f7f7f7f7f7f81, carry 1 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f81":"1f7f7f7f7f7f81":1 + +mbedtls_mpi_core_sub #477: 0x1f7f7f7f7f7f7f - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1f7f7f7f7f7f80/1f7f7f7f7f7f80, carry 1 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f80":"1f7f7f7f7f7f80":1 + +mbedtls_mpi_core_sub #478: 0x1f7f7f7f7f7f7f - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f/ffffffffffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f, carry 1 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":"ffffffffffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":1 + +mbedtls_mpi_core_sub #479: 0x1f7f7f7f7f7f7f - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f, carry 1 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f":1 + +mbedtls_mpi_core_sub #480: 0x1f7f7f7f7f7f7f - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54, carry 1 +mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54":1 + +mbedtls_mpi_core_sub #481: 0x8000000000000000 - 0x0 = 0x8000000000000000/8000000000000000, carry 0 +mbedtls_mpi_core_sub:"8000000000000000":"0":"8000000000000000":"8000000000000000":0 + +mbedtls_mpi_core_sub #482: 0x8000000000000000 - 0x1 = 0x7fffffffffffffff/7fffffffffffffff, carry 0 +mbedtls_mpi_core_sub:"8000000000000000":"1":"7fffffffffffffff":"7fffffffffffffff":0 + +mbedtls_mpi_core_sub #483: 0x8000000000000000 - 0x3 = 0x7ffffffffffffffd/7ffffffffffffffd, carry 0 +mbedtls_mpi_core_sub:"8000000000000000":"3":"7ffffffffffffffd":"7ffffffffffffffd":0 + +mbedtls_mpi_core_sub #484: 0x8000000000000000 - 0xf = 0x7ffffffffffffff1/7ffffffffffffff1, carry 0 +mbedtls_mpi_core_sub:"8000000000000000":"f":"7ffffffffffffff1":"7ffffffffffffff1":0 + +mbedtls_mpi_core_sub #485: 0x8000000000000000 - 0xfe = 0x7fffffffffffff02/7fffffffffffff02, carry 0 +mbedtls_mpi_core_sub:"8000000000000000":"fe":"7fffffffffffff02":"7fffffffffffff02":0 + +mbedtls_mpi_core_sub #486: 0x8000000000000000 - 0xff = 0x7fffffffffffff01/7fffffffffffff01, carry 0 +mbedtls_mpi_core_sub:"8000000000000000":"ff":"7fffffffffffff01":"7fffffffffffff01":0 + +mbedtls_mpi_core_sub #487: 0x8000000000000000 - 0x100 = 0x7fffffffffffff00/7fffffffffffff00, carry 0 +mbedtls_mpi_core_sub:"8000000000000000":"100":"7fffffffffffff00":"7fffffffffffff00":0 + +mbedtls_mpi_core_sub #488: 0x8000000000000000 - 0xff00 = 0x7fffffffffff0100/7fffffffffff0100, carry 0 +mbedtls_mpi_core_sub:"8000000000000000":"ff00":"7fffffffffff0100":"7fffffffffff0100":0 + +mbedtls_mpi_core_sub #489: 0x8000000000000000 - 0xfffe = 0x7fffffffffff0002/7fffffffffff0002, carry 0 +mbedtls_mpi_core_sub:"8000000000000000":"fffe":"7fffffffffff0002":"7fffffffffff0002":0 + +mbedtls_mpi_core_sub #490: 0x8000000000000000 - 0xffff = 0x7fffffffffff0001/7fffffffffff0001, carry 0 +mbedtls_mpi_core_sub:"8000000000000000":"ffff":"7fffffffffff0001":"7fffffffffff0001":0 + +mbedtls_mpi_core_sub #491: 0x8000000000000000 - 0x10000 = 0x7fffffffffff0000/7fffffffffff0000, carry 0 +mbedtls_mpi_core_sub:"8000000000000000":"10000":"7fffffffffff0000":"7fffffffffff0000":0 + +mbedtls_mpi_core_sub #492: 0x8000000000000000 - 0xfffffffe = 0x7fffffff00000002/7fffffff00000002, carry 0 +mbedtls_mpi_core_sub:"8000000000000000":"fffffffe":"7fffffff00000002":"7fffffff00000002":0 + +mbedtls_mpi_core_sub #493: 0x8000000000000000 - 0xffffffff = 0x7fffffff00000001/7fffffff00000001, carry 0 +mbedtls_mpi_core_sub:"8000000000000000":"ffffffff":"7fffffff00000001":"7fffffff00000001":0 + +mbedtls_mpi_core_sub #494: 0x8000000000000000 - 0x100000000 = 0x7fffffff00000000/7fffffff00000000, carry 0 +mbedtls_mpi_core_sub:"8000000000000000":"100000000":"7fffffff00000000":"7fffffff00000000":0 + +mbedtls_mpi_core_sub #495: 0x8000000000000000 - 0x1f7f7f7f7f7f7f = 0x7fe0808080808081/7fe0808080808081, carry 0 +mbedtls_mpi_core_sub:"8000000000000000":"1f7f7f7f7f7f7f":"7fe0808080808081":"7fe0808080808081":0 + +mbedtls_mpi_core_sub #496: 0x8000000000000000 - 0x8000000000000000 = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"8000000000000000":"8000000000000000":"0":"0":0 + +mbedtls_mpi_core_sub #497: 0x8000000000000000 - 0xfefefefefefefefe = 0x8101010101010102/8101010101010102, carry 1 +mbedtls_mpi_core_sub:"8000000000000000":"fefefefefefefefe":"8101010101010102":"8101010101010102":1 + +mbedtls_mpi_core_sub #498: 0x8000000000000000 - 0xfffffffffffffffe = 0x8000000000000002/8000000000000002, carry 1 +mbedtls_mpi_core_sub:"8000000000000000":"fffffffffffffffe":"8000000000000002":"8000000000000002":1 + +mbedtls_mpi_core_sub #499: 0x8000000000000000 - 0xffffffffffffffff = 0x8000000000000001/8000000000000001, carry 1 +mbedtls_mpi_core_sub:"8000000000000000":"ffffffffffffffff":"8000000000000001":"8000000000000001":1 + +mbedtls_mpi_core_sub #500: 0x8000000000000000 - 0x10000000000000000 = 0xffffffff8000000000000000/ffffffffffffffff8000000000000000, carry 1 +mbedtls_mpi_core_sub:"8000000000000000":"10000000000000000":"ffffffff8000000000000000":"ffffffffffffffff8000000000000000":1 + +mbedtls_mpi_core_sub #501: 0x8000000000000000 - 0x1234567890abcdef0 = 0xffffffff5cba9876f5432110/ffffffffffffffff5cba9876f5432110, carry 1 +mbedtls_mpi_core_sub:"8000000000000000":"1234567890abcdef0":"ffffffff5cba9876f5432110":"ffffffffffffffff5cba9876f5432110":1 + +mbedtls_mpi_core_sub #502: 0x8000000000000000 - 0xfffffffffffffffffefefefefefefefe = 0x8101010101010102/8101010101010102, carry 1 +mbedtls_mpi_core_sub:"8000000000000000":"fffffffffffffffffefefefefefefefe":"8101010101010102":"8101010101010102":1 + +mbedtls_mpi_core_sub #503: 0x8000000000000000 - 0xfffffffffffffffffffffffffffffffe = 0x8000000000000002/8000000000000002, carry 1 +mbedtls_mpi_core_sub:"8000000000000000":"fffffffffffffffffffffffffffffffe":"8000000000000002":"8000000000000002":1 + +mbedtls_mpi_core_sub #504: 0x8000000000000000 - 0xffffffffffffffffffffffffffffffff = 0x8000000000000001/8000000000000001, carry 1 +mbedtls_mpi_core_sub:"8000000000000000":"ffffffffffffffffffffffffffffffff":"8000000000000001":"8000000000000001":1 + +mbedtls_mpi_core_sub #505: 0x8000000000000000 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000008000000000000000/ffffffffffffffff00000000000000008000000000000000, carry 1 +mbedtls_mpi_core_sub:"8000000000000000":"100000000000000000000000000000000":"ffffffff00000000000000008000000000000000":"ffffffffffffffff00000000000000008000000000000000":1 + +mbedtls_mpi_core_sub #506: 0x8000000000000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ff5cba9876f5432110/ffffffffffffffedcba9876f543210ff5cba9876f5432110, carry 1 +mbedtls_mpi_core_sub:"8000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ff5cba9876f5432110":"ffffffffffffffedcba9876f543210ff5cba9876f5432110":1 + +mbedtls_mpi_core_sub #507: 0x8000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x8101010101010102/8101010101010102, carry 1 +mbedtls_mpi_core_sub:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"8101010101010102":"8101010101010102":1 + +mbedtls_mpi_core_sub #508: 0x8000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x8000000000000002/8000000000000002, carry 1 +mbedtls_mpi_core_sub:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"8000000000000002":"8000000000000002":1 + +mbedtls_mpi_core_sub #509: 0x8000000000000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x8000000000000001/8000000000000001, carry 1 +mbedtls_mpi_core_sub:"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000001":"8000000000000001":1 + +mbedtls_mpi_core_sub #510: 0x8000000000000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000008000000000000000/ffffffffffffffff0000000000000000000000000000000000000000000000008000000000000000, carry 1 +mbedtls_mpi_core_sub:"8000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000008000000000000000":"ffffffffffffffff0000000000000000000000000000000000000000000000008000000000000000":1 + +mbedtls_mpi_core_sub #511: 0x8000000000000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110, carry 1 +mbedtls_mpi_core_sub:"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110":1 + +mbedtls_mpi_core_sub #512: 0x8000000000000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5, carry 1 +mbedtls_mpi_core_sub:"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5":1 + +mbedtls_mpi_core_sub #513: 0xfefefefefefefefe - 0x0 = 0xfefefefefefefefe/fefefefefefefefe, carry 0 +mbedtls_mpi_core_sub:"fefefefefefefefe":"0":"fefefefefefefefe":"fefefefefefefefe":0 + +mbedtls_mpi_core_sub #514: 0xfefefefefefefefe - 0x1 = 0xfefefefefefefefd/fefefefefefefefd, carry 0 +mbedtls_mpi_core_sub:"fefefefefefefefe":"1":"fefefefefefefefd":"fefefefefefefefd":0 + +mbedtls_mpi_core_sub #515: 0xfefefefefefefefe - 0x3 = 0xfefefefefefefefb/fefefefefefefefb, carry 0 +mbedtls_mpi_core_sub:"fefefefefefefefe":"3":"fefefefefefefefb":"fefefefefefefefb":0 + +mbedtls_mpi_core_sub #516: 0xfefefefefefefefe - 0xf = 0xfefefefefefefeef/fefefefefefefeef, carry 0 +mbedtls_mpi_core_sub:"fefefefefefefefe":"f":"fefefefefefefeef":"fefefefefefefeef":0 + +mbedtls_mpi_core_sub #517: 0xfefefefefefefefe - 0xfe = 0xfefefefefefefe00/fefefefefefefe00, carry 0 +mbedtls_mpi_core_sub:"fefefefefefefefe":"fe":"fefefefefefefe00":"fefefefefefefe00":0 + +mbedtls_mpi_core_sub #518: 0xfefefefefefefefe - 0xff = 0xfefefefefefefdff/fefefefefefefdff, carry 0 +mbedtls_mpi_core_sub:"fefefefefefefefe":"ff":"fefefefefefefdff":"fefefefefefefdff":0 + +mbedtls_mpi_core_sub #519: 0xfefefefefefefefe - 0x100 = 0xfefefefefefefdfe/fefefefefefefdfe, carry 0 +mbedtls_mpi_core_sub:"fefefefefefefefe":"100":"fefefefefefefdfe":"fefefefefefefdfe":0 + +mbedtls_mpi_core_sub #520: 0xfefefefefefefefe - 0xff00 = 0xfefefefefefdfffe/fefefefefefdfffe, carry 0 +mbedtls_mpi_core_sub:"fefefefefefefefe":"ff00":"fefefefefefdfffe":"fefefefefefdfffe":0 + +mbedtls_mpi_core_sub #521: 0xfefefefefefefefe - 0xfffe = 0xfefefefefefdff00/fefefefefefdff00, carry 0 +mbedtls_mpi_core_sub:"fefefefefefefefe":"fffe":"fefefefefefdff00":"fefefefefefdff00":0 + +mbedtls_mpi_core_sub #522: 0xfefefefefefefefe - 0xffff = 0xfefefefefefdfeff/fefefefefefdfeff, carry 0 +mbedtls_mpi_core_sub:"fefefefefefefefe":"ffff":"fefefefefefdfeff":"fefefefefefdfeff":0 + +mbedtls_mpi_core_sub #523: 0xfefefefefefefefe - 0x10000 = 0xfefefefefefdfefe/fefefefefefdfefe, carry 0 +mbedtls_mpi_core_sub:"fefefefefefefefe":"10000":"fefefefefefdfefe":"fefefefefefdfefe":0 + +mbedtls_mpi_core_sub #524: 0xfefefefefefefefe - 0xfffffffe = 0xfefefefdfefeff00/fefefefdfefeff00, carry 0 +mbedtls_mpi_core_sub:"fefefefefefefefe":"fffffffe":"fefefefdfefeff00":"fefefefdfefeff00":0 + +mbedtls_mpi_core_sub #525: 0xfefefefefefefefe - 0xffffffff = 0xfefefefdfefefeff/fefefefdfefefeff, carry 0 +mbedtls_mpi_core_sub:"fefefefefefefefe":"ffffffff":"fefefefdfefefeff":"fefefefdfefefeff":0 + +mbedtls_mpi_core_sub #526: 0xfefefefefefefefe - 0x100000000 = 0xfefefefdfefefefe/fefefefdfefefefe, carry 0 +mbedtls_mpi_core_sub:"fefefefefefefefe":"100000000":"fefefefdfefefefe":"fefefefdfefefefe":0 + +mbedtls_mpi_core_sub #527: 0xfefefefefefefefe - 0x1f7f7f7f7f7f7f = 0xfedf7f7f7f7f7f7f/fedf7f7f7f7f7f7f, carry 0 +mbedtls_mpi_core_sub:"fefefefefefefefe":"1f7f7f7f7f7f7f":"fedf7f7f7f7f7f7f":"fedf7f7f7f7f7f7f":0 + +mbedtls_mpi_core_sub #528: 0xfefefefefefefefe - 0x8000000000000000 = 0x7efefefefefefefe/7efefefefefefefe, carry 0 +mbedtls_mpi_core_sub:"fefefefefefefefe":"8000000000000000":"7efefefefefefefe":"7efefefefefefefe":0 + +mbedtls_mpi_core_sub #529: 0xfefefefefefefefe - 0xfefefefefefefefe = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"fefefefefefefefe":"fefefefefefefefe":"0":"0":0 + +mbedtls_mpi_core_sub #530: 0xfefefefefefefefe - 0xfffffffffffffffe = 0xfefefefefefeff00/fefefefefefeff00, carry 1 +mbedtls_mpi_core_sub:"fefefefefefefefe":"fffffffffffffffe":"fefefefefefeff00":"fefefefefefeff00":1 + +mbedtls_mpi_core_sub #531: 0xfefefefefefefefe - 0xffffffffffffffff = 0xfefefefefefefeff/fefefefefefefeff, carry 1 +mbedtls_mpi_core_sub:"fefefefefefefefe":"ffffffffffffffff":"fefefefefefefeff":"fefefefefefefeff":1 + +mbedtls_mpi_core_sub #532: 0xfefefefefefefefe - 0x10000000000000000 = 0xfffffffffefefefefefefefe/fffffffffffffffffefefefefefefefe, carry 1 +mbedtls_mpi_core_sub:"fefefefefefefefe":"10000000000000000":"fffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":1 + +mbedtls_mpi_core_sub #533: 0xfefefefefefefefe - 0x1234567890abcdef0 = 0xffffffffdbb99775f442200e/ffffffffffffffffdbb99775f442200e, carry 1 +mbedtls_mpi_core_sub:"fefefefefefefefe":"1234567890abcdef0":"ffffffffdbb99775f442200e":"ffffffffffffffffdbb99775f442200e":1 + +mbedtls_mpi_core_sub #534: 0xfefefefefefefefe - 0xfffffffffffffffffefefefefefefefe = 0x10000000000000000/10000000000000000, carry 1 +mbedtls_mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffefefefefefefefe":"10000000000000000":"10000000000000000":1 + +mbedtls_mpi_core_sub #535: 0xfefefefefefefefe - 0xfffffffffffffffffffffffffffffffe = 0xfefefefefefeff00/fefefefefefeff00, carry 1 +mbedtls_mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fefefefefefeff00":"fefefefefefeff00":1 + +mbedtls_mpi_core_sub #536: 0xfefefefefefefefe - 0xffffffffffffffffffffffffffffffff = 0xfefefefefefefeff/fefefefefefefeff, carry 1 +mbedtls_mpi_core_sub:"fefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fefefefefefefeff":"fefefefefefefeff":1 + +mbedtls_mpi_core_sub #537: 0xfefefefefefefefe - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000fefefefefefefefe/ffffffffffffffff0000000000000000fefefefefefefefe, carry 1 +mbedtls_mpi_core_sub:"fefefefefefefefe":"100000000000000000000000000000000":"ffffffff0000000000000000fefefefefefefefe":"ffffffffffffffff0000000000000000fefefefefefefefe":1 + +mbedtls_mpi_core_sub #538: 0xfefefefefefefefe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ffdbb99775f442200e/ffffffffffffffedcba9876f543210ffdbb99775f442200e, carry 1 +mbedtls_mpi_core_sub:"fefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdbb99775f442200e":"ffffffffffffffedcba9876f543210ffdbb99775f442200e":1 + +mbedtls_mpi_core_sub #539: 0xfefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x10000000000000000/10000000000000000, carry 1 +mbedtls_mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000":"10000000000000000":1 + +mbedtls_mpi_core_sub #540: 0xfefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0xfefefefefefeff00/fefefefefefeff00, carry 1 +mbedtls_mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefefefefefeff00":"fefefefefefeff00":1 + +mbedtls_mpi_core_sub #541: 0xfefefefefefefefe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xfefefefefefefeff/fefefefefefefeff, carry 1 +mbedtls_mpi_core_sub:"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fefefefefefefeff":"fefefefefefefeff":1 + +mbedtls_mpi_core_sub #542: 0xfefefefefefefefe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000fefefefefefefefe/ffffffffffffffff000000000000000000000000000000000000000000000000fefefefefefefefe, carry 1 +mbedtls_mpi_core_sub:"fefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000fefefefefefefefe":"ffffffffffffffff000000000000000000000000000000000000000000000000fefefefefefefefe":1 + +mbedtls_mpi_core_sub #543: 0xfefefefefefefefe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e, carry 1 +mbedtls_mpi_core_sub:"fefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e":1 + +mbedtls_mpi_core_sub #544: 0xfefefefefefefefe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3, carry 1 +mbedtls_mpi_core_sub:"fefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3":1 + +mbedtls_mpi_core_sub #545: 0xfffffffffffffffe - 0x0 = 0xfffffffffffffffe/fffffffffffffffe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"0":"fffffffffffffffe":"fffffffffffffffe":0 + +mbedtls_mpi_core_sub #546: 0xfffffffffffffffe - 0x1 = 0xfffffffffffffffd/fffffffffffffffd, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"1":"fffffffffffffffd":"fffffffffffffffd":0 + +mbedtls_mpi_core_sub #547: 0xfffffffffffffffe - 0x3 = 0xfffffffffffffffb/fffffffffffffffb, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"3":"fffffffffffffffb":"fffffffffffffffb":0 + +mbedtls_mpi_core_sub #548: 0xfffffffffffffffe - 0xf = 0xffffffffffffffef/ffffffffffffffef, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"f":"ffffffffffffffef":"ffffffffffffffef":0 + +mbedtls_mpi_core_sub #549: 0xfffffffffffffffe - 0xfe = 0xffffffffffffff00/ffffffffffffff00, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"fe":"ffffffffffffff00":"ffffffffffffff00":0 + +mbedtls_mpi_core_sub #550: 0xfffffffffffffffe - 0xff = 0xfffffffffffffeff/fffffffffffffeff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"ff":"fffffffffffffeff":"fffffffffffffeff":0 + +mbedtls_mpi_core_sub #551: 0xfffffffffffffffe - 0x100 = 0xfffffffffffffefe/fffffffffffffefe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"100":"fffffffffffffefe":"fffffffffffffefe":0 + +mbedtls_mpi_core_sub #552: 0xfffffffffffffffe - 0xff00 = 0xffffffffffff00fe/ffffffffffff00fe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"ff00":"ffffffffffff00fe":"ffffffffffff00fe":0 + +mbedtls_mpi_core_sub #553: 0xfffffffffffffffe - 0xfffe = 0xffffffffffff0000/ffffffffffff0000, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"fffe":"ffffffffffff0000":"ffffffffffff0000":0 + +mbedtls_mpi_core_sub #554: 0xfffffffffffffffe - 0xffff = 0xfffffffffffeffff/fffffffffffeffff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"ffff":"fffffffffffeffff":"fffffffffffeffff":0 + +mbedtls_mpi_core_sub #555: 0xfffffffffffffffe - 0x10000 = 0xfffffffffffefffe/fffffffffffefffe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"10000":"fffffffffffefffe":"fffffffffffefffe":0 + +mbedtls_mpi_core_sub #556: 0xfffffffffffffffe - 0xfffffffe = 0xffffffff00000000/ffffffff00000000, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"fffffffe":"ffffffff00000000":"ffffffff00000000":0 + +mbedtls_mpi_core_sub #557: 0xfffffffffffffffe - 0xffffffff = 0xfffffffeffffffff/fffffffeffffffff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"ffffffff":"fffffffeffffffff":"fffffffeffffffff":0 + +mbedtls_mpi_core_sub #558: 0xfffffffffffffffe - 0x100000000 = 0xfffffffefffffffe/fffffffefffffffe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"100000000":"fffffffefffffffe":"fffffffefffffffe":0 + +mbedtls_mpi_core_sub #559: 0xfffffffffffffffe - 0x1f7f7f7f7f7f7f = 0xffe080808080807f/ffe080808080807f, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"1f7f7f7f7f7f7f":"ffe080808080807f":"ffe080808080807f":0 + +mbedtls_mpi_core_sub #560: 0xfffffffffffffffe - 0x8000000000000000 = 0x7ffffffffffffffe/7ffffffffffffffe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"8000000000000000":"7ffffffffffffffe":"7ffffffffffffffe":0 + +mbedtls_mpi_core_sub #561: 0xfffffffffffffffe - 0xfefefefefefefefe = 0x101010101010100/101010101010100, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"fefefefefefefefe":"101010101010100":"101010101010100":0 + +mbedtls_mpi_core_sub #562: 0xfffffffffffffffe - 0xfffffffffffffffe = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffe":"fffffffffffffffe":"0":"0":0 + +mbedtls_mpi_core_sub #563: 0xfffffffffffffffe - 0xffffffffffffffff = 0xffffffffffffffff/ffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffe":"ffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff":1 + +mbedtls_mpi_core_sub #564: 0xfffffffffffffffe - 0x10000000000000000 = 0xfffffffffffffffffffffffe/fffffffffffffffffffffffffffffffe, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffe":"10000000000000000":"fffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":1 + +mbedtls_mpi_core_sub #565: 0xfffffffffffffffe - 0x1234567890abcdef0 = 0xffffffffdcba9876f543210e/ffffffffffffffffdcba9876f543210e, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffe":"1234567890abcdef0":"ffffffffdcba9876f543210e":"ffffffffffffffffdcba9876f543210e":1 + +mbedtls_mpi_core_sub #566: 0xfffffffffffffffe - 0xfffffffffffffffffefefefefefefefe = 0x10101010101010100/10101010101010100, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffefefefefefefefe":"10101010101010100":"10101010101010100":1 + +mbedtls_mpi_core_sub #567: 0xfffffffffffffffe - 0xfffffffffffffffffffffffffffffffe = 0x10000000000000000/10000000000000000, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffffffffffffffffe":"10000000000000000":"10000000000000000":1 + +mbedtls_mpi_core_sub #568: 0xfffffffffffffffe - 0xffffffffffffffffffffffffffffffff = 0xffffffffffffffff/ffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffe":"ffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff":1 + +mbedtls_mpi_core_sub #569: 0xfffffffffffffffe - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000fffffffffffffffe/ffffffffffffffff0000000000000000fffffffffffffffe, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffe":"100000000000000000000000000000000":"ffffffff0000000000000000fffffffffffffffe":"ffffffffffffffff0000000000000000fffffffffffffffe":1 + +mbedtls_mpi_core_sub #570: 0xfffffffffffffffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ffdcba9876f543210e/ffffffffffffffedcba9876f543210ffdcba9876f543210e, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdcba9876f543210e":"ffffffffffffffedcba9876f543210ffdcba9876f543210e":1 + +mbedtls_mpi_core_sub #571: 0xfffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x10101010101010100/10101010101010100, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10101010101010100":"10101010101010100":1 + +mbedtls_mpi_core_sub #572: 0xfffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10000000000000000/10000000000000000, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000":"10000000000000000":1 + +mbedtls_mpi_core_sub #573: 0xfffffffffffffffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffffffffffffffff/ffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff":1 + +mbedtls_mpi_core_sub #574: 0xfffffffffffffffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000fffffffffffffffe/ffffffffffffffff000000000000000000000000000000000000000000000000fffffffffffffffe, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000fffffffffffffffe":"ffffffffffffffff000000000000000000000000000000000000000000000000fffffffffffffffe":1 + +mbedtls_mpi_core_sub #575: 0xfffffffffffffffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e":1 + +mbedtls_mpi_core_sub #576: 0xfffffffffffffffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3":1 + +mbedtls_mpi_core_sub #577: 0xffffffffffffffff - 0x0 = 0xffffffffffffffff/ffffffffffffffff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"0":"ffffffffffffffff":"ffffffffffffffff":0 + +mbedtls_mpi_core_sub #578: 0xffffffffffffffff - 0x1 = 0xfffffffffffffffe/fffffffffffffffe, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffe":0 + +mbedtls_mpi_core_sub #579: 0xffffffffffffffff - 0x3 = 0xfffffffffffffffc/fffffffffffffffc, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"3":"fffffffffffffffc":"fffffffffffffffc":0 + +mbedtls_mpi_core_sub #580: 0xffffffffffffffff - 0xf = 0xfffffffffffffff0/fffffffffffffff0, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"f":"fffffffffffffff0":"fffffffffffffff0":0 + +mbedtls_mpi_core_sub #581: 0xffffffffffffffff - 0xfe = 0xffffffffffffff01/ffffffffffffff01, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"fe":"ffffffffffffff01":"ffffffffffffff01":0 + +mbedtls_mpi_core_sub #582: 0xffffffffffffffff - 0xff = 0xffffffffffffff00/ffffffffffffff00, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"ff":"ffffffffffffff00":"ffffffffffffff00":0 + +mbedtls_mpi_core_sub #583: 0xffffffffffffffff - 0x100 = 0xfffffffffffffeff/fffffffffffffeff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"100":"fffffffffffffeff":"fffffffffffffeff":0 + +mbedtls_mpi_core_sub #584: 0xffffffffffffffff - 0xff00 = 0xffffffffffff00ff/ffffffffffff00ff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"ff00":"ffffffffffff00ff":"ffffffffffff00ff":0 + +mbedtls_mpi_core_sub #585: 0xffffffffffffffff - 0xfffe = 0xffffffffffff0001/ffffffffffff0001, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"fffe":"ffffffffffff0001":"ffffffffffff0001":0 + +mbedtls_mpi_core_sub #586: 0xffffffffffffffff - 0xffff = 0xffffffffffff0000/ffffffffffff0000, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"ffff":"ffffffffffff0000":"ffffffffffff0000":0 + +mbedtls_mpi_core_sub #587: 0xffffffffffffffff - 0x10000 = 0xfffffffffffeffff/fffffffffffeffff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"10000":"fffffffffffeffff":"fffffffffffeffff":0 + +mbedtls_mpi_core_sub #588: 0xffffffffffffffff - 0xfffffffe = 0xffffffff00000001/ffffffff00000001, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"fffffffe":"ffffffff00000001":"ffffffff00000001":0 + +mbedtls_mpi_core_sub #589: 0xffffffffffffffff - 0xffffffff = 0xffffffff00000000/ffffffff00000000, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff00000000":0 + +mbedtls_mpi_core_sub #590: 0xffffffffffffffff - 0x100000000 = 0xfffffffeffffffff/fffffffeffffffff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"100000000":"fffffffeffffffff":"fffffffeffffffff":0 + +mbedtls_mpi_core_sub #591: 0xffffffffffffffff - 0x1f7f7f7f7f7f7f = 0xffe0808080808080/ffe0808080808080, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"1f7f7f7f7f7f7f":"ffe0808080808080":"ffe0808080808080":0 + +mbedtls_mpi_core_sub #592: 0xffffffffffffffff - 0x8000000000000000 = 0x7fffffffffffffff/7fffffffffffffff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"8000000000000000":"7fffffffffffffff":"7fffffffffffffff":0 + +mbedtls_mpi_core_sub #593: 0xffffffffffffffff - 0xfefefefefefefefe = 0x101010101010101/101010101010101, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"fefefefefefefefe":"101010101010101":"101010101010101":0 + +mbedtls_mpi_core_sub #594: 0xffffffffffffffff - 0xfffffffffffffffe = 0x1/1, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"fffffffffffffffe":"1":"1":0 + +mbedtls_mpi_core_sub #595: 0xffffffffffffffff - 0xffffffffffffffff = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffff":"ffffffffffffffff":"0":"0":0 + +mbedtls_mpi_core_sub #596: 0xffffffffffffffff - 0x10000000000000000 = 0xffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffff":"10000000000000000":"ffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1 + +mbedtls_mpi_core_sub #597: 0xffffffffffffffff - 0x1234567890abcdef0 = 0xffffffffdcba9876f543210f/ffffffffffffffffdcba9876f543210f, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffff":"1234567890abcdef0":"ffffffffdcba9876f543210f":"ffffffffffffffffdcba9876f543210f":1 + +mbedtls_mpi_core_sub #598: 0xffffffffffffffff - 0xfffffffffffffffffefefefefefefefe = 0x10101010101010101/10101010101010101, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10101010101010101":"10101010101010101":1 + +mbedtls_mpi_core_sub #599: 0xffffffffffffffff - 0xfffffffffffffffffffffffffffffffe = 0x10000000000000001/10000000000000001, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffffffffffffffffe":"10000000000000001":"10000000000000001":1 + +mbedtls_mpi_core_sub #600: 0xffffffffffffffff - 0xffffffffffffffffffffffffffffffff = 0x10000000000000000/10000000000000000, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffff":"ffffffffffffffffffffffffffffffff":"10000000000000000":"10000000000000000":1 + +mbedtls_mpi_core_sub #601: 0xffffffffffffffff - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000ffffffffffffffff/ffffffffffffffff0000000000000000ffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffff":"100000000000000000000000000000000":"ffffffff0000000000000000ffffffffffffffff":"ffffffffffffffff0000000000000000ffffffffffffffff":1 + +mbedtls_mpi_core_sub #602: 0xffffffffffffffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ffdcba9876f543210f/ffffffffffffffedcba9876f543210ffdcba9876f543210f, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdcba9876f543210f":"ffffffffffffffedcba9876f543210ffdcba9876f543210f":1 + +mbedtls_mpi_core_sub #603: 0xffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x10101010101010101/10101010101010101, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10101010101010101":"10101010101010101":1 + +mbedtls_mpi_core_sub #604: 0xffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10000000000000001/10000000000000001, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000001":"10000000000000001":1 + +mbedtls_mpi_core_sub #605: 0xffffffffffffffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10000000000000000/10000000000000000, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"10000000000000000":1 + +mbedtls_mpi_core_sub #606: 0xffffffffffffffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000ffffffffffffffff/ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff":"ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff":1 + +mbedtls_mpi_core_sub #607: 0xffffffffffffffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f":1 + +mbedtls_mpi_core_sub #608: 0xffffffffffffffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4":1 + +mbedtls_mpi_core_sub #609: 0x10000000000000000 - 0x0 = 0x10000000000000000/10000000000000000, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"0":"10000000000000000":"10000000000000000":0 + +mbedtls_mpi_core_sub #610: 0x10000000000000000 - 0x1 = 0xffffffffffffffff/ffffffffffffffff, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"1":"ffffffffffffffff":"ffffffffffffffff":0 + +mbedtls_mpi_core_sub #611: 0x10000000000000000 - 0x3 = 0xfffffffffffffffd/fffffffffffffffd, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"3":"fffffffffffffffd":"fffffffffffffffd":0 + +mbedtls_mpi_core_sub #612: 0x10000000000000000 - 0xf = 0xfffffffffffffff1/fffffffffffffff1, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"f":"fffffffffffffff1":"fffffffffffffff1":0 + +mbedtls_mpi_core_sub #613: 0x10000000000000000 - 0xfe = 0xffffffffffffff02/ffffffffffffff02, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"fe":"ffffffffffffff02":"ffffffffffffff02":0 + +mbedtls_mpi_core_sub #614: 0x10000000000000000 - 0xff = 0xffffffffffffff01/ffffffffffffff01, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"ff":"ffffffffffffff01":"ffffffffffffff01":0 + +mbedtls_mpi_core_sub #615: 0x10000000000000000 - 0x100 = 0xffffffffffffff00/ffffffffffffff00, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"100":"ffffffffffffff00":"ffffffffffffff00":0 + +mbedtls_mpi_core_sub #616: 0x10000000000000000 - 0xff00 = 0xffffffffffff0100/ffffffffffff0100, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"ff00":"ffffffffffff0100":"ffffffffffff0100":0 + +mbedtls_mpi_core_sub #617: 0x10000000000000000 - 0xfffe = 0xffffffffffff0002/ffffffffffff0002, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"fffe":"ffffffffffff0002":"ffffffffffff0002":0 + +mbedtls_mpi_core_sub #618: 0x10000000000000000 - 0xffff = 0xffffffffffff0001/ffffffffffff0001, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"ffff":"ffffffffffff0001":"ffffffffffff0001":0 + +mbedtls_mpi_core_sub #619: 0x10000000000000000 - 0x10000 = 0xffffffffffff0000/ffffffffffff0000, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"10000":"ffffffffffff0000":"ffffffffffff0000":0 + +mbedtls_mpi_core_sub #620: 0x10000000000000000 - 0xfffffffe = 0xffffffff00000002/ffffffff00000002, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"fffffffe":"ffffffff00000002":"ffffffff00000002":0 + +mbedtls_mpi_core_sub #621: 0x10000000000000000 - 0xffffffff = 0xffffffff00000001/ffffffff00000001, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"ffffffff":"ffffffff00000001":"ffffffff00000001":0 + +mbedtls_mpi_core_sub #622: 0x10000000000000000 - 0x100000000 = 0xffffffff00000000/ffffffff00000000, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"100000000":"ffffffff00000000":"ffffffff00000000":0 + +mbedtls_mpi_core_sub #623: 0x10000000000000000 - 0x1f7f7f7f7f7f7f = 0xffe0808080808081/ffe0808080808081, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"1f7f7f7f7f7f7f":"ffe0808080808081":"ffe0808080808081":0 + +mbedtls_mpi_core_sub #624: 0x10000000000000000 - 0x8000000000000000 = 0x8000000000000000/8000000000000000, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"8000000000000000":"8000000000000000":"8000000000000000":0 + +mbedtls_mpi_core_sub #625: 0x10000000000000000 - 0xfefefefefefefefe = 0x101010101010102/101010101010102, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"fefefefefefefefe":"101010101010102":"101010101010102":0 + +mbedtls_mpi_core_sub #626: 0x10000000000000000 - 0xfffffffffffffffe = 0x2/2, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"fffffffffffffffe":"2":"2":0 + +mbedtls_mpi_core_sub #627: 0x10000000000000000 - 0xffffffffffffffff = 0x1/1, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"ffffffffffffffff":"1":"1":0 + +mbedtls_mpi_core_sub #628: 0x10000000000000000 - 0x10000000000000000 = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"10000000000000000":"10000000000000000":"0":"0":0 + +mbedtls_mpi_core_sub #629: 0x10000000000000000 - 0x1234567890abcdef0 = 0xffffffffdcba9876f5432110/ffffffffffffffffdcba9876f5432110, carry 1 +mbedtls_mpi_core_sub:"10000000000000000":"1234567890abcdef0":"ffffffffdcba9876f5432110":"ffffffffffffffffdcba9876f5432110":1 + +mbedtls_mpi_core_sub #630: 0x10000000000000000 - 0xfffffffffffffffffefefefefefefefe = 0x10101010101010102/10101010101010102, carry 1 +mbedtls_mpi_core_sub:"10000000000000000":"fffffffffffffffffefefefefefefefe":"10101010101010102":"10101010101010102":1 + +mbedtls_mpi_core_sub #631: 0x10000000000000000 - 0xfffffffffffffffffffffffffffffffe = 0x10000000000000002/10000000000000002, carry 1 +mbedtls_mpi_core_sub:"10000000000000000":"fffffffffffffffffffffffffffffffe":"10000000000000002":"10000000000000002":1 + +mbedtls_mpi_core_sub #632: 0x10000000000000000 - 0xffffffffffffffffffffffffffffffff = 0x10000000000000001/10000000000000001, carry 1 +mbedtls_mpi_core_sub:"10000000000000000":"ffffffffffffffffffffffffffffffff":"10000000000000001":"10000000000000001":1 + +mbedtls_mpi_core_sub #633: 0x10000000000000000 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000010000000000000000/ffffffffffffffff00000000000000010000000000000000, carry 1 +mbedtls_mpi_core_sub:"10000000000000000":"100000000000000000000000000000000":"ffffffff00000000000000010000000000000000":"ffffffffffffffff00000000000000010000000000000000":1 + +mbedtls_mpi_core_sub #634: 0x10000000000000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ffdcba9876f5432110/ffffffffffffffedcba9876f543210ffdcba9876f5432110, carry 1 +mbedtls_mpi_core_sub:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdcba9876f5432110":"ffffffffffffffedcba9876f543210ffdcba9876f5432110":1 + +mbedtls_mpi_core_sub #635: 0x10000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x10101010101010102/10101010101010102, carry 1 +mbedtls_mpi_core_sub:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10101010101010102":"10101010101010102":1 + +mbedtls_mpi_core_sub #636: 0x10000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10000000000000002/10000000000000002, carry 1 +mbedtls_mpi_core_sub:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000002":"10000000000000002":1 + +mbedtls_mpi_core_sub #637: 0x10000000000000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10000000000000001/10000000000000001, carry 1 +mbedtls_mpi_core_sub:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000001":"10000000000000001":1 + +mbedtls_mpi_core_sub #638: 0x10000000000000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000010000000000000000/ffffffffffffffff0000000000000000000000000000000000000000000000010000000000000000, carry 1 +mbedtls_mpi_core_sub:"10000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000010000000000000000":"ffffffffffffffff0000000000000000000000000000000000000000000000010000000000000000":1 + +mbedtls_mpi_core_sub #639: 0x10000000000000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110, carry 1 +mbedtls_mpi_core_sub:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110":1 + +mbedtls_mpi_core_sub #640: 0x10000000000000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5, carry 1 +mbedtls_mpi_core_sub:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5":1 + +mbedtls_mpi_core_sub #641: 0x1234567890abcdef0 - 0x0 = 0x1234567890abcdef0/1234567890abcdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"0":"1234567890abcdef0":"1234567890abcdef0":0 + +mbedtls_mpi_core_sub #642: 0x1234567890abcdef0 - 0x1 = 0x1234567890abcdeef/1234567890abcdeef, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"1":"1234567890abcdeef":"1234567890abcdeef":0 + +mbedtls_mpi_core_sub #643: 0x1234567890abcdef0 - 0x3 = 0x1234567890abcdeed/1234567890abcdeed, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"3":"1234567890abcdeed":"1234567890abcdeed":0 + +mbedtls_mpi_core_sub #644: 0x1234567890abcdef0 - 0xf = 0x1234567890abcdee1/1234567890abcdee1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"f":"1234567890abcdee1":"1234567890abcdee1":0 + +mbedtls_mpi_core_sub #645: 0x1234567890abcdef0 - 0xfe = 0x1234567890abcddf2/1234567890abcddf2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"fe":"1234567890abcddf2":"1234567890abcddf2":0 + +mbedtls_mpi_core_sub #646: 0x1234567890abcdef0 - 0xff = 0x1234567890abcddf1/1234567890abcddf1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"ff":"1234567890abcddf1":"1234567890abcddf1":0 + +mbedtls_mpi_core_sub #647: 0x1234567890abcdef0 - 0x100 = 0x1234567890abcddf0/1234567890abcddf0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"100":"1234567890abcddf0":"1234567890abcddf0":0 + +mbedtls_mpi_core_sub #648: 0x1234567890abcdef0 - 0xff00 = 0x1234567890abbdff0/1234567890abbdff0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"ff00":"1234567890abbdff0":"1234567890abbdff0":0 + +mbedtls_mpi_core_sub #649: 0x1234567890abcdef0 - 0xfffe = 0x1234567890abbdef2/1234567890abbdef2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"fffe":"1234567890abbdef2":"1234567890abbdef2":0 + +mbedtls_mpi_core_sub #650: 0x1234567890abcdef0 - 0xffff = 0x1234567890abbdef1/1234567890abbdef1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"ffff":"1234567890abbdef1":"1234567890abbdef1":0 + +mbedtls_mpi_core_sub #651: 0x1234567890abcdef0 - 0x10000 = 0x1234567890abbdef0/1234567890abbdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"10000":"1234567890abbdef0":"1234567890abbdef0":0 + +mbedtls_mpi_core_sub #652: 0x1234567890abcdef0 - 0xfffffffe = 0x1234567880abcdef2/1234567880abcdef2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"fffffffe":"1234567880abcdef2":"1234567880abcdef2":0 + +mbedtls_mpi_core_sub #653: 0x1234567890abcdef0 - 0xffffffff = 0x1234567880abcdef1/1234567880abcdef1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"ffffffff":"1234567880abcdef1":"1234567880abcdef1":0 + +mbedtls_mpi_core_sub #654: 0x1234567890abcdef0 - 0x100000000 = 0x1234567880abcdef0/1234567880abcdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"100000000":"1234567880abcdef0":"1234567880abcdef0":0 + +mbedtls_mpi_core_sub #655: 0x1234567890abcdef0 - 0x1f7f7f7f7f7f7f = 0x12325e8098b3d5f71/12325e8098b3d5f71, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"1f7f7f7f7f7f7f":"12325e8098b3d5f71":"12325e8098b3d5f71":0 + +mbedtls_mpi_core_sub #656: 0x1234567890abcdef0 - 0x8000000000000000 = 0xa34567890abcdef0/a34567890abcdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"8000000000000000":"a34567890abcdef0":"a34567890abcdef0":0 + +mbedtls_mpi_core_sub #657: 0x1234567890abcdef0 - 0xfefefefefefefefe = 0x2446688a0bbddff2/2446688a0bbddff2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"fefefefefefefefe":"2446688a0bbddff2":"2446688a0bbddff2":0 + +mbedtls_mpi_core_sub #658: 0x1234567890abcdef0 - 0xfffffffffffffffe = 0x234567890abcdef2/234567890abcdef2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"fffffffffffffffe":"234567890abcdef2":"234567890abcdef2":0 + +mbedtls_mpi_core_sub #659: 0x1234567890abcdef0 - 0xffffffffffffffff = 0x234567890abcdef1/234567890abcdef1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"ffffffffffffffff":"234567890abcdef1":"234567890abcdef1":0 + +mbedtls_mpi_core_sub #660: 0x1234567890abcdef0 - 0x10000000000000000 = 0x234567890abcdef0/234567890abcdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"10000000000000000":"234567890abcdef0":"234567890abcdef0":0 + +mbedtls_mpi_core_sub #661: 0x1234567890abcdef0 - 0x1234567890abcdef0 = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef0":"1234567890abcdef0":"0":"0":0 + +mbedtls_mpi_core_sub #662: 0x1234567890abcdef0 - 0xfffffffffffffffffefefefefefefefe = 0x12446688a0bbddff2/12446688a0bbddff2, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"12446688a0bbddff2":"12446688a0bbddff2":1 + +mbedtls_mpi_core_sub #663: 0x1234567890abcdef0 - 0xfffffffffffffffffffffffffffffffe = 0x1234567890abcdef2/1234567890abcdef2, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1234567890abcdef2":"1234567890abcdef2":1 + +mbedtls_mpi_core_sub #664: 0x1234567890abcdef0 - 0xffffffffffffffffffffffffffffffff = 0x1234567890abcdef1/1234567890abcdef1, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1234567890abcdef1":"1234567890abcdef1":1 + +mbedtls_mpi_core_sub #665: 0x1234567890abcdef0 - 0x100000000000000000000000000000000 = 0xffffffff0000000000000001234567890abcdef0/ffffffffffffffff0000000000000001234567890abcdef0, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef0":"100000000000000000000000000000000":"ffffffff0000000000000001234567890abcdef0":"ffffffffffffffff0000000000000001234567890abcdef0":1 + +mbedtls_mpi_core_sub #666: 0x1234567890abcdef0 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543211000000000000000000/ffffffffffffffedcba9876f543211000000000000000000, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543211000000000000000000":"ffffffffffffffedcba9876f543211000000000000000000":1 + +mbedtls_mpi_core_sub #667: 0x1234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x12446688a0bbddff2/12446688a0bbddff2, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"12446688a0bbddff2":"12446688a0bbddff2":1 + +mbedtls_mpi_core_sub #668: 0x1234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1234567890abcdef2/1234567890abcdef2, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef2":"1234567890abcdef2":1 + +mbedtls_mpi_core_sub #669: 0x1234567890abcdef0 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1234567890abcdef1/1234567890abcdef1, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef1":"1234567890abcdef1":1 + +mbedtls_mpi_core_sub #670: 0x1234567890abcdef0 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000001234567890abcdef0/ffffffffffffffff000000000000000000000000000000000000000000000001234567890abcdef0, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000001234567890abcdef0":"ffffffffffffffff000000000000000000000000000000000000000000000001234567890abcdef0":1 + +mbedtls_mpi_core_sub #671: 0x1234567890abcdef0 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000":1 + +mbedtls_mpi_core_sub #672: 0x1234567890abcdef0 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5":1 + +mbedtls_mpi_core_sub #673: 0xfffffffffffffffffefefefefefefefe - 0x0 = 0xfffffffffffffffffefefefefefefefe/fffffffffffffffffefefefefefefefe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":0 + +mbedtls_mpi_core_sub #674: 0xfffffffffffffffffefefefefefefefe - 0x1 = 0xfffffffffffffffffefefefefefefefd/fffffffffffffffffefefefefefefefd, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1":"fffffffffffffffffefefefefefefefd":"fffffffffffffffffefefefefefefefd":0 + +mbedtls_mpi_core_sub #675: 0xfffffffffffffffffefefefefefefefe - 0x3 = 0xfffffffffffffffffefefefefefefefb/fffffffffffffffffefefefefefefefb, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffefefefefefefefb":"fffffffffffffffffefefefefefefefb":0 + +mbedtls_mpi_core_sub #676: 0xfffffffffffffffffefefefefefefefe - 0xf = 0xfffffffffffffffffefefefefefefeef/fffffffffffffffffefefefefefefeef, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"f":"fffffffffffffffffefefefefefefeef":"fffffffffffffffffefefefefefefeef":0 + +mbedtls_mpi_core_sub #677: 0xfffffffffffffffffefefefefefefefe - 0xfe = 0xfffffffffffffffffefefefefefefe00/fffffffffffffffffefefefefefefe00, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fe":"fffffffffffffffffefefefefefefe00":"fffffffffffffffffefefefefefefe00":0 + +mbedtls_mpi_core_sub #678: 0xfffffffffffffffffefefefefefefefe - 0xff = 0xfffffffffffffffffefefefefefefdff/fffffffffffffffffefefefefefefdff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffffefefefefefefdff":"fffffffffffffffffefefefefefefdff":0 + +mbedtls_mpi_core_sub #679: 0xfffffffffffffffffefefefefefefefe - 0x100 = 0xfffffffffffffffffefefefefefefdfe/fffffffffffffffffefefefefefefdfe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"100":"fffffffffffffffffefefefefefefdfe":"fffffffffffffffffefefefefefefdfe":0 + +mbedtls_mpi_core_sub #680: 0xfffffffffffffffffefefefefefefefe - 0xff00 = 0xfffffffffffffffffefefefefefdfffe/fffffffffffffffffefefefefefdfffe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ff00":"fffffffffffffffffefefefefefdfffe":"fffffffffffffffffefefefefefdfffe":0 + +mbedtls_mpi_core_sub #681: 0xfffffffffffffffffefefefefefefefe - 0xfffe = 0xfffffffffffffffffefefefefefdff00/fffffffffffffffffefefefefefdff00, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffe":"fffffffffffffffffefefefefefdff00":"fffffffffffffffffefefefefefdff00":0 + +mbedtls_mpi_core_sub #682: 0xfffffffffffffffffefefefefefefefe - 0xffff = 0xfffffffffffffffffefefefefefdfeff/fffffffffffffffffefefefefefdfeff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffffffefefefefefdfeff":"fffffffffffffffffefefefefefdfeff":0 + +mbedtls_mpi_core_sub #683: 0xfffffffffffffffffefefefefefefefe - 0x10000 = 0xfffffffffffffffffefefefefefdfefe/fffffffffffffffffefefefefefdfefe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffffffefefefefefdfefe":"fffffffffffffffffefefefefefdfefe":0 + +mbedtls_mpi_core_sub #684: 0xfffffffffffffffffefefefefefefefe - 0xfffffffe = 0xfffffffffffffffffefefefdfefeff00/fffffffffffffffffefefefdfefeff00, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffe":"fffffffffffffffffefefefdfefeff00":"fffffffffffffffffefefefdfefeff00":0 + +mbedtls_mpi_core_sub #685: 0xfffffffffffffffffefefefefefefefe - 0xffffffff = 0xfffffffffffffffffefefefdfefefeff/fffffffffffffffffefefefdfefefeff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffffefefefdfefefeff":"fffffffffffffffffefefefdfefefeff":0 + +mbedtls_mpi_core_sub #686: 0xfffffffffffffffffefefefefefefefe - 0x100000000 = 0xfffffffffffffffffefefefdfefefefe/fffffffffffffffffefefefdfefefefe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffffefefefdfefefefe":"fffffffffffffffffefefefdfefefefe":0 + +mbedtls_mpi_core_sub #687: 0xfffffffffffffffffefefefefefefefe - 0x1f7f7f7f7f7f7f = 0xfffffffffffffffffedf7f7f7f7f7f7f/fffffffffffffffffedf7f7f7f7f7f7f, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1f7f7f7f7f7f7f":"fffffffffffffffffedf7f7f7f7f7f7f":"fffffffffffffffffedf7f7f7f7f7f7f":0 + +mbedtls_mpi_core_sub #688: 0xfffffffffffffffffefefefefefefefe - 0x8000000000000000 = 0xffffffffffffffff7efefefefefefefe/ffffffffffffffff7efefefefefefefe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"ffffffffffffffff7efefefefefefefe":0 + +mbedtls_mpi_core_sub #689: 0xfffffffffffffffffefefefefefefefe - 0xfefefefefefefefe = 0xffffffffffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fefefefefefefefe":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 + +mbedtls_mpi_core_sub #690: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffe = 0xfffffffffffffffefefefefefefeff00/fffffffffffffffefefefefefefeff00, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffefefefefefefeff00":0 + +mbedtls_mpi_core_sub #691: 0xfffffffffffffffffefefefefefefefe - 0xffffffffffffffff = 0xfffffffffffffffefefefefefefefeff/fffffffffffffffefefefefefefefeff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fffffffffffffffefefefefefefefeff":"fffffffffffffffefefefefefefefeff":0 + +mbedtls_mpi_core_sub #692: 0xfffffffffffffffffefefefefefefefe - 0x10000000000000000 = 0xfffffffffffffffefefefefefefefefe/fffffffffffffffefefefefefefefefe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fffffffffffffffefefefefefefefefe":"fffffffffffffffefefefefefefefefe":0 + +mbedtls_mpi_core_sub #693: 0xfffffffffffffffffefefefefefefefe - 0x1234567890abcdef0 = 0xfffffffffffffffedbb99775f442200e/fffffffffffffffedbb99775f442200e, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fffffffffffffffedbb99775f442200e":"fffffffffffffffedbb99775f442200e":0 + +mbedtls_mpi_core_sub #694: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffffefefefefefefefe = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"0":"0":0 + +mbedtls_mpi_core_sub #695: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffe = 0xfffffffffffffffffefefefefefeff00/fffffffffffffffffefefefefefeff00, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefeff00":"fffffffffffffffffefefefefefeff00":1 + +mbedtls_mpi_core_sub #696: 0xfffffffffffffffffefefefefefefefe - 0xffffffffffffffffffffffffffffffff = 0xfffffffffffffffffefefefefefefeff/fffffffffffffffffefefefefefefeff, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefeff":"fffffffffffffffffefefefefefefeff":1 + +mbedtls_mpi_core_sub #697: 0xfffffffffffffffffefefefefefefefe - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffefefefefefefefe/fffffffffffffffffffffffffffffffffefefefefefefefe, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffefefefefefefefe":1 + +mbedtls_mpi_core_sub #698: 0xfffffffffffffffffefefefefefefefe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffeecba9876f543210fedbb99775f442200e/ffffffffffffffeecba9876f543210fedbb99775f442200e, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedbb99775f442200e":"ffffffffffffffeecba9876f543210fedbb99775f442200e":1 + +mbedtls_mpi_core_sub #699: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x100000000000000000000000000000000/100000000000000000000000000000000, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"100000000000000000000000000000000":1 + +mbedtls_mpi_core_sub #700: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0xfffffffffffffffffefefefefefeff00/fffffffffffffffffefefefefefeff00, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefeff00":"fffffffffffffffffefefefefefeff00":1 + +mbedtls_mpi_core_sub #701: 0xfffffffffffffffffefefefefefefefe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xfffffffffffffffffefefefefefefeff/fffffffffffffffffefefefefefefeff, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefeff":"fffffffffffffffffefefefefefefeff":1 + +mbedtls_mpi_core_sub #702: 0xfffffffffffffffffefefefefefefefe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe/ffffffffffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe":"ffffffffffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe":1 + +mbedtls_mpi_core_sub #703: 0xfffffffffffffffffefefefefefefefe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e/ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e":1 + +mbedtls_mpi_core_sub #704: 0xfffffffffffffffffefefefefefefefe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3":1 + +mbedtls_mpi_core_sub #705: 0xfffffffffffffffffffffffffffffffe - 0x0 = 0xfffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"0":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":0 + +mbedtls_mpi_core_sub #706: 0xfffffffffffffffffffffffffffffffe - 0x1 = 0xfffffffffffffffffffffffffffffffd/fffffffffffffffffffffffffffffffd, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1":"fffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffd":0 + +mbedtls_mpi_core_sub #707: 0xfffffffffffffffffffffffffffffffe - 0x3 = 0xfffffffffffffffffffffffffffffffb/fffffffffffffffffffffffffffffffb, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"3":"fffffffffffffffffffffffffffffffb":"fffffffffffffffffffffffffffffffb":0 + +mbedtls_mpi_core_sub #708: 0xfffffffffffffffffffffffffffffffe - 0xf = 0xffffffffffffffffffffffffffffffef/ffffffffffffffffffffffffffffffef, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"f":"ffffffffffffffffffffffffffffffef":"ffffffffffffffffffffffffffffffef":0 + +mbedtls_mpi_core_sub #709: 0xfffffffffffffffffffffffffffffffe - 0xfe = 0xffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffff00, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fe":"ffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffff00":0 + +mbedtls_mpi_core_sub #710: 0xfffffffffffffffffffffffffffffffe - 0xff = 0xfffffffffffffffffffffffffffffeff/fffffffffffffffffffffffffffffeff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ff":"fffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffeff":0 + +mbedtls_mpi_core_sub #711: 0xfffffffffffffffffffffffffffffffe - 0x100 = 0xfffffffffffffffffffffffffffffefe/fffffffffffffffffffffffffffffefe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"100":"fffffffffffffffffffffffffffffefe":"fffffffffffffffffffffffffffffefe":0 + +mbedtls_mpi_core_sub #712: 0xfffffffffffffffffffffffffffffffe - 0xff00 = 0xffffffffffffffffffffffffffff00fe/ffffffffffffffffffffffffffff00fe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ff00":"ffffffffffffffffffffffffffff00fe":"ffffffffffffffffffffffffffff00fe":0 + +mbedtls_mpi_core_sub #713: 0xfffffffffffffffffffffffffffffffe - 0xfffe = 0xffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffff0000, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffe":"ffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffff0000":0 + +mbedtls_mpi_core_sub #714: 0xfffffffffffffffffffffffffffffffe - 0xffff = 0xfffffffffffffffffffffffffffeffff/fffffffffffffffffffffffffffeffff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffff":"fffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffeffff":0 + +mbedtls_mpi_core_sub #715: 0xfffffffffffffffffffffffffffffffe - 0x10000 = 0xfffffffffffffffffffffffffffefffe/fffffffffffffffffffffffffffefffe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"10000":"fffffffffffffffffffffffffffefffe":"fffffffffffffffffffffffffffefffe":0 + +mbedtls_mpi_core_sub #716: 0xfffffffffffffffffffffffffffffffe - 0xfffffffe = 0xffffffffffffffffffffffff00000000/ffffffffffffffffffffffff00000000, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffe":"ffffffffffffffffffffffff00000000":"ffffffffffffffffffffffff00000000":0 + +mbedtls_mpi_core_sub #717: 0xfffffffffffffffffffffffffffffffe - 0xffffffff = 0xfffffffffffffffffffffffeffffffff/fffffffffffffffffffffffeffffffff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffff":"fffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffeffffffff":0 + +mbedtls_mpi_core_sub #718: 0xfffffffffffffffffffffffffffffffe - 0x100000000 = 0xfffffffffffffffffffffffefffffffe/fffffffffffffffffffffffefffffffe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"100000000":"fffffffffffffffffffffffefffffffe":"fffffffffffffffffffffffefffffffe":0 + +mbedtls_mpi_core_sub #719: 0xfffffffffffffffffffffffffffffffe - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffe080808080807f/ffffffffffffffffffe080808080807f, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7f":"ffffffffffffffffffe080808080807f":"ffffffffffffffffffe080808080807f":0 + +mbedtls_mpi_core_sub #720: 0xfffffffffffffffffffffffffffffffe - 0x8000000000000000 = 0xffffffffffffffff7ffffffffffffffe/ffffffffffffffff7ffffffffffffffe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"8000000000000000":"ffffffffffffffff7ffffffffffffffe":"ffffffffffffffff7ffffffffffffffe":0 + +mbedtls_mpi_core_sub #721: 0xfffffffffffffffffffffffffffffffe - 0xfefefefefefefefe = 0xffffffffffffffff0101010101010100/ffffffffffffffff0101010101010100, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fefefefefefefefe":"ffffffffffffffff0101010101010100":"ffffffffffffffff0101010101010100":0 + +mbedtls_mpi_core_sub #722: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffe = 0xffffffffffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffe":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 + +mbedtls_mpi_core_sub #723: 0xfffffffffffffffffffffffffffffffe - 0xffffffffffffffff = 0xfffffffffffffffeffffffffffffffff/fffffffffffffffeffffffffffffffff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffffffffffff":"fffffffffffffffeffffffffffffffff":"fffffffffffffffeffffffffffffffff":0 + +mbedtls_mpi_core_sub #724: 0xfffffffffffffffffffffffffffffffe - 0x10000000000000000 = 0xfffffffffffffffefffffffffffffffe/fffffffffffffffefffffffffffffffe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"10000000000000000":"fffffffffffffffefffffffffffffffe":"fffffffffffffffefffffffffffffffe":0 + +mbedtls_mpi_core_sub #725: 0xfffffffffffffffffffffffffffffffe - 0x1234567890abcdef0 = 0xfffffffffffffffedcba9876f543210e/fffffffffffffffedcba9876f543210e, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1234567890abcdef0":"fffffffffffffffedcba9876f543210e":"fffffffffffffffedcba9876f543210e":0 + +mbedtls_mpi_core_sub #726: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffffefefefefefefefe = 0x101010101010100/101010101010100, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefe":"101010101010100":"101010101010100":0 + +mbedtls_mpi_core_sub #727: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffe = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":"0":"0":0 + +mbedtls_mpi_core_sub #728: 0xfffffffffffffffffffffffffffffffe - 0xffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1 + +mbedtls_mpi_core_sub #729: 0xfffffffffffffffffffffffffffffffe - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffe, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffe":1 + +mbedtls_mpi_core_sub #730: 0xfffffffffffffffffffffffffffffffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffeecba9876f543210fedcba9876f543210e/ffffffffffffffeecba9876f543210fedcba9876f543210e, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedcba9876f543210e":"ffffffffffffffeecba9876f543210fedcba9876f543210e":1 + +mbedtls_mpi_core_sub #731: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x100000000000000000101010101010100/100000000000000000101010101010100, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000101010101010100":"100000000000000000101010101010100":1 + +mbedtls_mpi_core_sub #732: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000000000000000000000000000000/100000000000000000000000000000000, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"100000000000000000000000000000000":1 + +mbedtls_mpi_core_sub #733: 0xfffffffffffffffffffffffffffffffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1 + +mbedtls_mpi_core_sub #734: 0xfffffffffffffffffffffffffffffffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe/ffffffffffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe":"ffffffffffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe":1 + +mbedtls_mpi_core_sub #735: 0xfffffffffffffffffffffffffffffffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e/ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e":1 + +mbedtls_mpi_core_sub #736: 0xfffffffffffffffffffffffffffffffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3":1 + +mbedtls_mpi_core_sub #737: 0xffffffffffffffffffffffffffffffff - 0x0 = 0xffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":0 + +mbedtls_mpi_core_sub #738: 0xffffffffffffffffffffffffffffffff - 0x1 = 0xfffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffe, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":0 + +mbedtls_mpi_core_sub #739: 0xffffffffffffffffffffffffffffffff - 0x3 = 0xfffffffffffffffffffffffffffffffc/fffffffffffffffffffffffffffffffc, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffc":"fffffffffffffffffffffffffffffffc":0 + +mbedtls_mpi_core_sub #740: 0xffffffffffffffffffffffffffffffff - 0xf = 0xfffffffffffffffffffffffffffffff0/fffffffffffffffffffffffffffffff0, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"f":"fffffffffffffffffffffffffffffff0":"fffffffffffffffffffffffffffffff0":0 + +mbedtls_mpi_core_sub #741: 0xffffffffffffffffffffffffffffffff - 0xfe = 0xffffffffffffffffffffffffffffff01/ffffffffffffffffffffffffffffff01, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffff01":0 + +mbedtls_mpi_core_sub #742: 0xffffffffffffffffffffffffffffffff - 0xff = 0xffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffff00, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffff00":0 + +mbedtls_mpi_core_sub #743: 0xffffffffffffffffffffffffffffffff - 0x100 = 0xfffffffffffffffffffffffffffffeff/fffffffffffffffffffffffffffffeff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"100":"fffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffeff":0 + +mbedtls_mpi_core_sub #744: 0xffffffffffffffffffffffffffffffff - 0xff00 = 0xffffffffffffffffffffffffffff00ff/ffffffffffffffffffffffffffff00ff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ff00":"ffffffffffffffffffffffffffff00ff":"ffffffffffffffffffffffffffff00ff":0 + +mbedtls_mpi_core_sub #745: 0xffffffffffffffffffffffffffffffff - 0xfffe = 0xffffffffffffffffffffffffffff0001/ffffffffffffffffffffffffffff0001, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffe":"ffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffff0001":0 + +mbedtls_mpi_core_sub #746: 0xffffffffffffffffffffffffffffffff - 0xffff = 0xffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffff0000, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffff0000":0 + +mbedtls_mpi_core_sub #747: 0xffffffffffffffffffffffffffffffff - 0x10000 = 0xfffffffffffffffffffffffffffeffff/fffffffffffffffffffffffffffeffff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffeffff":0 + +mbedtls_mpi_core_sub #748: 0xffffffffffffffffffffffffffffffff - 0xfffffffe = 0xffffffffffffffffffffffff00000001/ffffffffffffffffffffffff00000001, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffe":"ffffffffffffffffffffffff00000001":"ffffffffffffffffffffffff00000001":0 + +mbedtls_mpi_core_sub #749: 0xffffffffffffffffffffffffffffffff - 0xffffffff = 0xffffffffffffffffffffffff00000000/ffffffffffffffffffffffff00000000, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffff00000000":"ffffffffffffffffffffffff00000000":0 + +mbedtls_mpi_core_sub #750: 0xffffffffffffffffffffffffffffffff - 0x100000000 = 0xfffffffffffffffffffffffeffffffff/fffffffffffffffffffffffeffffffff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffeffffffff":0 + +mbedtls_mpi_core_sub #751: 0xffffffffffffffffffffffffffffffff - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffe0808080808080/ffffffffffffffffffe0808080808080, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7f":"ffffffffffffffffffe0808080808080":"ffffffffffffffffffe0808080808080":0 + +mbedtls_mpi_core_sub #752: 0xffffffffffffffffffffffffffffffff - 0x8000000000000000 = 0xffffffffffffffff7fffffffffffffff/ffffffffffffffff7fffffffffffffff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff7fffffffffffffff":"ffffffffffffffff7fffffffffffffff":0 + +mbedtls_mpi_core_sub #753: 0xffffffffffffffffffffffffffffffff - 0xfefefefefefefefe = 0xffffffffffffffff0101010101010101/ffffffffffffffff0101010101010101, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fefefefefefefefe":"ffffffffffffffff0101010101010101":"ffffffffffffffff0101010101010101":0 + +mbedtls_mpi_core_sub #754: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffe = 0xffffffffffffffff0000000000000001/ffffffffffffffff0000000000000001, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffff0000000000000001":"ffffffffffffffff0000000000000001":0 + +mbedtls_mpi_core_sub #755: 0xffffffffffffffffffffffffffffffff - 0xffffffffffffffff = 0xffffffffffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 + +mbedtls_mpi_core_sub #756: 0xffffffffffffffffffffffffffffffff - 0x10000000000000000 = 0xfffffffffffffffeffffffffffffffff/fffffffffffffffeffffffffffffffff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"10000000000000000":"fffffffffffffffeffffffffffffffff":"fffffffffffffffeffffffffffffffff":0 + +mbedtls_mpi_core_sub #757: 0xffffffffffffffffffffffffffffffff - 0x1234567890abcdef0 = 0xfffffffffffffffedcba9876f543210f/fffffffffffffffedcba9876f543210f, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fffffffffffffffedcba9876f543210f":"fffffffffffffffedcba9876f543210f":0 + +mbedtls_mpi_core_sub #758: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffffefefefefefefefe = 0x101010101010101/101010101010101, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"101010101010101":"101010101010101":0 + +mbedtls_mpi_core_sub #759: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffe = 0x1/1, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":"1":"1":0 + +mbedtls_mpi_core_sub #760: 0xffffffffffffffffffffffffffffffff - 0xffffffffffffffffffffffffffffffff = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"0":"0":0 + +mbedtls_mpi_core_sub #761: 0xffffffffffffffffffffffffffffffff - 0x100000000000000000000000000000000 = 0xffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff":1 + +mbedtls_mpi_core_sub #762: 0xffffffffffffffffffffffffffffffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffeecba9876f543210fedcba9876f543210f/ffffffffffffffeecba9876f543210fedcba9876f543210f, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedcba9876f543210f":"ffffffffffffffeecba9876f543210fedcba9876f543210f":1 + +mbedtls_mpi_core_sub #763: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x100000000000000000101010101010101/100000000000000000101010101010101, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000101010101010101":"100000000000000000101010101010101":1 + +mbedtls_mpi_core_sub #764: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000000000000000000000000000001/100000000000000000000000000000001, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000001":"100000000000000000000000000000001":1 + +mbedtls_mpi_core_sub #765: 0xffffffffffffffffffffffffffffffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100000000000000000000000000000000/100000000000000000000000000000000, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"100000000000000000000000000000000":1 + +mbedtls_mpi_core_sub #766: 0xffffffffffffffffffffffffffffffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff/ffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff":"ffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff":1 + +mbedtls_mpi_core_sub #767: 0xffffffffffffffffffffffffffffffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f/ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f":1 + +mbedtls_mpi_core_sub #768: 0xffffffffffffffffffffffffffffffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4":1 + +mbedtls_mpi_core_sub #769: 0x100000000000000000000000000000000 - 0x0 = 0x100000000000000000000000000000000/100000000000000000000000000000000, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"100000000000000000000000000000000":0 + +mbedtls_mpi_core_sub #770: 0x100000000000000000000000000000000 - 0x1 = 0xffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"1":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":0 + +mbedtls_mpi_core_sub #771: 0x100000000000000000000000000000000 - 0x3 = 0xfffffffffffffffffffffffffffffffd/fffffffffffffffffffffffffffffffd, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"3":"fffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffd":0 + +mbedtls_mpi_core_sub #772: 0x100000000000000000000000000000000 - 0xf = 0xfffffffffffffffffffffffffffffff1/fffffffffffffffffffffffffffffff1, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"f":"fffffffffffffffffffffffffffffff1":"fffffffffffffffffffffffffffffff1":0 + +mbedtls_mpi_core_sub #773: 0x100000000000000000000000000000000 - 0xfe = 0xffffffffffffffffffffffffffffff02/ffffffffffffffffffffffffffffff02, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fe":"ffffffffffffffffffffffffffffff02":"ffffffffffffffffffffffffffffff02":0 + +mbedtls_mpi_core_sub #774: 0x100000000000000000000000000000000 - 0xff = 0xffffffffffffffffffffffffffffff01/ffffffffffffffffffffffffffffff01, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"ff":"ffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffff01":0 + +mbedtls_mpi_core_sub #775: 0x100000000000000000000000000000000 - 0x100 = 0xffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffff00, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"100":"ffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffff00":0 + +mbedtls_mpi_core_sub #776: 0x100000000000000000000000000000000 - 0xff00 = 0xffffffffffffffffffffffffffff0100/ffffffffffffffffffffffffffff0100, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"ff00":"ffffffffffffffffffffffffffff0100":"ffffffffffffffffffffffffffff0100":0 + +mbedtls_mpi_core_sub #777: 0x100000000000000000000000000000000 - 0xfffe = 0xffffffffffffffffffffffffffff0002/ffffffffffffffffffffffffffff0002, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fffe":"ffffffffffffffffffffffffffff0002":"ffffffffffffffffffffffffffff0002":0 + +mbedtls_mpi_core_sub #778: 0x100000000000000000000000000000000 - 0xffff = 0xffffffffffffffffffffffffffff0001/ffffffffffffffffffffffffffff0001, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"ffff":"ffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffff0001":0 + +mbedtls_mpi_core_sub #779: 0x100000000000000000000000000000000 - 0x10000 = 0xffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffff0000, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"10000":"ffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffff0000":0 + +mbedtls_mpi_core_sub #780: 0x100000000000000000000000000000000 - 0xfffffffe = 0xffffffffffffffffffffffff00000002/ffffffffffffffffffffffff00000002, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fffffffe":"ffffffffffffffffffffffff00000002":"ffffffffffffffffffffffff00000002":0 + +mbedtls_mpi_core_sub #781: 0x100000000000000000000000000000000 - 0xffffffff = 0xffffffffffffffffffffffff00000001/ffffffffffffffffffffffff00000001, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffffffffffffffffffff00000001":0 + +mbedtls_mpi_core_sub #782: 0x100000000000000000000000000000000 - 0x100000000 = 0xffffffffffffffffffffffff00000000/ffffffffffffffffffffffff00000000, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"100000000":"ffffffffffffffffffffffff00000000":"ffffffffffffffffffffffff00000000":0 + +mbedtls_mpi_core_sub #783: 0x100000000000000000000000000000000 - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffe0808080808081/ffffffffffffffffffe0808080808081, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"1f7f7f7f7f7f7f":"ffffffffffffffffffe0808080808081":"ffffffffffffffffffe0808080808081":0 + +mbedtls_mpi_core_sub #784: 0x100000000000000000000000000000000 - 0x8000000000000000 = 0xffffffffffffffff8000000000000000/ffffffffffffffff8000000000000000, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"8000000000000000":"ffffffffffffffff8000000000000000":"ffffffffffffffff8000000000000000":0 + +mbedtls_mpi_core_sub #785: 0x100000000000000000000000000000000 - 0xfefefefefefefefe = 0xffffffffffffffff0101010101010102/ffffffffffffffff0101010101010102, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fefefefefefefefe":"ffffffffffffffff0101010101010102":"ffffffffffffffff0101010101010102":0 + +mbedtls_mpi_core_sub #786: 0x100000000000000000000000000000000 - 0xfffffffffffffffe = 0xffffffffffffffff0000000000000002/ffffffffffffffff0000000000000002, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"ffffffffffffffff0000000000000002":0 + +mbedtls_mpi_core_sub #787: 0x100000000000000000000000000000000 - 0xffffffffffffffff = 0xffffffffffffffff0000000000000001/ffffffffffffffff0000000000000001, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"ffffffffffffffff":"ffffffffffffffff0000000000000001":"ffffffffffffffff0000000000000001":0 + +mbedtls_mpi_core_sub #788: 0x100000000000000000000000000000000 - 0x10000000000000000 = 0xffffffffffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"10000000000000000":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 + +mbedtls_mpi_core_sub #789: 0x100000000000000000000000000000000 - 0x1234567890abcdef0 = 0xfffffffffffffffedcba9876f5432110/fffffffffffffffedcba9876f5432110, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"1234567890abcdef0":"fffffffffffffffedcba9876f5432110":"fffffffffffffffedcba9876f5432110":0 + +mbedtls_mpi_core_sub #790: 0x100000000000000000000000000000000 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010102/101010101010102, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":0 + +mbedtls_mpi_core_sub #791: 0x100000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffe = 0x2/2, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffe":"2":"2":0 + +mbedtls_mpi_core_sub #792: 0x100000000000000000000000000000000 - 0xffffffffffffffffffffffffffffffff = 0x1/1, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffff":"1":"1":0 + +mbedtls_mpi_core_sub #793: 0x100000000000000000000000000000000 - 0x100000000000000000000000000000000 = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"100000000000000000000000000000000":"0":"0":0 + +mbedtls_mpi_core_sub #794: 0x100000000000000000000000000000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffeecba9876f543210fedcba9876f5432110/ffffffffffffffeecba9876f543210fedcba9876f5432110, carry 1 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedcba9876f5432110":"ffffffffffffffeecba9876f543210fedcba9876f5432110":1 + +mbedtls_mpi_core_sub #795: 0x100000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x100000000000000000101010101010102/100000000000000000101010101010102, carry 1 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000101010101010102":"100000000000000000101010101010102":1 + +mbedtls_mpi_core_sub #796: 0x100000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000000000000000000000000000002/100000000000000000000000000000002, carry 1 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000002":"100000000000000000000000000000002":1 + +mbedtls_mpi_core_sub #797: 0x100000000000000000000000000000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100000000000000000000000000000001/100000000000000000000000000000001, carry 1 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000001":"100000000000000000000000000000001":1 + +mbedtls_mpi_core_sub #798: 0x100000000000000000000000000000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000100000000000000000000000000000000/ffffffffffffffff0000000000000000000000000000000100000000000000000000000000000000, carry 1 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000100000000000000000000000000000000":"ffffffffffffffff0000000000000000000000000000000100000000000000000000000000000000":1 + +mbedtls_mpi_core_sub #799: 0x100000000000000000000000000000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110/ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110, carry 1 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110":1 + +mbedtls_mpi_core_sub #800: 0x100000000000000000000000000000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5, carry 1 +mbedtls_mpi_core_sub:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5":1 + +mbedtls_mpi_core_sub #801: 0x1234567890abcdef01234567890abcdef0 - 0x0 = 0x1234567890abcdef01234567890abcdef0/1234567890abcdef01234567890abcdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":0 + +mbedtls_mpi_core_sub #802: 0x1234567890abcdef01234567890abcdef0 - 0x1 = 0x1234567890abcdef01234567890abcdeef/1234567890abcdef01234567890abcdeef, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1":"1234567890abcdef01234567890abcdeef":"1234567890abcdef01234567890abcdeef":0 + +mbedtls_mpi_core_sub #803: 0x1234567890abcdef01234567890abcdef0 - 0x3 = 0x1234567890abcdef01234567890abcdeed/1234567890abcdef01234567890abcdeed, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"3":"1234567890abcdef01234567890abcdeed":"1234567890abcdef01234567890abcdeed":0 + +mbedtls_mpi_core_sub #804: 0x1234567890abcdef01234567890abcdef0 - 0xf = 0x1234567890abcdef01234567890abcdee1/1234567890abcdef01234567890abcdee1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"f":"1234567890abcdef01234567890abcdee1":"1234567890abcdef01234567890abcdee1":0 + +mbedtls_mpi_core_sub #805: 0x1234567890abcdef01234567890abcdef0 - 0xfe = 0x1234567890abcdef01234567890abcddf2/1234567890abcdef01234567890abcddf2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fe":"1234567890abcdef01234567890abcddf2":"1234567890abcdef01234567890abcddf2":0 + +mbedtls_mpi_core_sub #806: 0x1234567890abcdef01234567890abcdef0 - 0xff = 0x1234567890abcdef01234567890abcddf1/1234567890abcdef01234567890abcddf1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcddf1":"1234567890abcdef01234567890abcddf1":0 + +mbedtls_mpi_core_sub #807: 0x1234567890abcdef01234567890abcdef0 - 0x100 = 0x1234567890abcdef01234567890abcddf0/1234567890abcdef01234567890abcddf0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"100":"1234567890abcdef01234567890abcddf0":"1234567890abcdef01234567890abcddf0":0 + +mbedtls_mpi_core_sub #808: 0x1234567890abcdef01234567890abcdef0 - 0xff00 = 0x1234567890abcdef01234567890abbdff0/1234567890abcdef01234567890abbdff0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ff00":"1234567890abcdef01234567890abbdff0":"1234567890abcdef01234567890abbdff0":0 + +mbedtls_mpi_core_sub #809: 0x1234567890abcdef01234567890abcdef0 - 0xfffe = 0x1234567890abcdef01234567890abbdef2/1234567890abcdef01234567890abbdef2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffe":"1234567890abcdef01234567890abbdef2":"1234567890abcdef01234567890abbdef2":0 + +mbedtls_mpi_core_sub #810: 0x1234567890abcdef01234567890abcdef0 - 0xffff = 0x1234567890abcdef01234567890abbdef1/1234567890abcdef01234567890abbdef1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abbdef1":"1234567890abcdef01234567890abbdef1":0 + +mbedtls_mpi_core_sub #811: 0x1234567890abcdef01234567890abcdef0 - 0x10000 = 0x1234567890abcdef01234567890abbdef0/1234567890abcdef01234567890abbdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abbdef0":"1234567890abcdef01234567890abbdef0":0 + +mbedtls_mpi_core_sub #812: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffe = 0x1234567890abcdef01234567880abcdef2/1234567890abcdef01234567880abcdef2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffe":"1234567890abcdef01234567880abcdef2":"1234567890abcdef01234567880abcdef2":0 + +mbedtls_mpi_core_sub #813: 0x1234567890abcdef01234567890abcdef0 - 0xffffffff = 0x1234567890abcdef01234567880abcdef1/1234567890abcdef01234567880abcdef1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffff":"1234567890abcdef01234567880abcdef1":"1234567890abcdef01234567880abcdef1":0 + +mbedtls_mpi_core_sub #814: 0x1234567890abcdef01234567890abcdef0 - 0x100000000 = 0x1234567890abcdef01234567880abcdef0/1234567890abcdef01234567880abcdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567880abcdef0":"1234567890abcdef01234567880abcdef0":0 + +mbedtls_mpi_core_sub #815: 0x1234567890abcdef01234567890abcdef0 - 0x1f7f7f7f7f7f7f = 0x1234567890abcdef012325e8098b3d5f71/1234567890abcdef012325e8098b3d5f71, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1f7f7f7f7f7f7f":"1234567890abcdef012325e8098b3d5f71":"1234567890abcdef012325e8098b3d5f71":0 + +mbedtls_mpi_core_sub #816: 0x1234567890abcdef01234567890abcdef0 - 0x8000000000000000 = 0x1234567890abcdef00a34567890abcdef0/1234567890abcdef00a34567890abcdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"1234567890abcdef00a34567890abcdef0":0 + +mbedtls_mpi_core_sub #817: 0x1234567890abcdef01234567890abcdef0 - 0xfefefefefefefefe = 0x1234567890abcdef002446688a0bbddff2/1234567890abcdef002446688a0bbddff2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fefefefefefefefe":"1234567890abcdef002446688a0bbddff2":"1234567890abcdef002446688a0bbddff2":0 + +mbedtls_mpi_core_sub #818: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffe = 0x1234567890abcdef00234567890abcdef2/1234567890abcdef00234567890abcdef2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"1234567890abcdef00234567890abcdef2":0 + +mbedtls_mpi_core_sub #819: 0x1234567890abcdef01234567890abcdef0 - 0xffffffffffffffff = 0x1234567890abcdef00234567890abcdef1/1234567890abcdef00234567890abcdef1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"1234567890abcdef00234567890abcdef1":"1234567890abcdef00234567890abcdef1":0 + +mbedtls_mpi_core_sub #820: 0x1234567890abcdef01234567890abcdef0 - 0x10000000000000000 = 0x1234567890abcdef00234567890abcdef0/1234567890abcdef00234567890abcdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"10000000000000000":"1234567890abcdef00234567890abcdef0":"1234567890abcdef00234567890abcdef0":0 + +mbedtls_mpi_core_sub #821: 0x1234567890abcdef01234567890abcdef0 - 0x1234567890abcdef0 = 0x1234567890abcdef000000000000000000/1234567890abcdef000000000000000000, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"1234567890abcdef000000000000000000":"1234567890abcdef000000000000000000":0 + +mbedtls_mpi_core_sub #822: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffefefefefefefefe = 0x1134567890abcdef012446688a0bbddff2/1134567890abcdef012446688a0bbddff2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"1134567890abcdef012446688a0bbddff2":"1134567890abcdef012446688a0bbddff2":0 + +mbedtls_mpi_core_sub #823: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffe = 0x1134567890abcdef01234567890abcdef2/1134567890abcdef01234567890abcdef2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1134567890abcdef01234567890abcdef2":"1134567890abcdef01234567890abcdef2":0 + +mbedtls_mpi_core_sub #824: 0x1234567890abcdef01234567890abcdef0 - 0xffffffffffffffffffffffffffffffff = 0x1134567890abcdef01234567890abcdef1/1134567890abcdef01234567890abcdef1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1134567890abcdef01234567890abcdef1":"1134567890abcdef01234567890abcdef1":0 + +mbedtls_mpi_core_sub #825: 0x1234567890abcdef01234567890abcdef0 - 0x100000000000000000000000000000000 = 0x1134567890abcdef01234567890abcdef0/1134567890abcdef01234567890abcdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"1134567890abcdef01234567890abcdef0":"1134567890abcdef01234567890abcdef0":0 + +mbedtls_mpi_core_sub #826: 0x1234567890abcdef01234567890abcdef0 - 0x1234567890abcdef01234567890abcdef0 = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"0":0 + +mbedtls_mpi_core_sub #827: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x1234567890abcdef012446688a0bbddff2/1234567890abcdef012446688a0bbddff2, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef012446688a0bbddff2":"1234567890abcdef012446688a0bbddff2":1 + +mbedtls_mpi_core_sub #828: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1234567890abcdef01234567890abcdef2/1234567890abcdef01234567890abcdef2, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef2":"1234567890abcdef01234567890abcdef2":1 + +mbedtls_mpi_core_sub #829: 0x1234567890abcdef01234567890abcdef0 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1234567890abcdef01234567890abcdef1/1234567890abcdef01234567890abcdef1, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef1":"1234567890abcdef01234567890abcdef1":1 + +mbedtls_mpi_core_sub #830: 0x1234567890abcdef01234567890abcdef0 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0/ffffffffffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0":"ffffffffffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0":1 + +mbedtls_mpi_core_sub #831: 0x1234567890abcdef01234567890abcdef0 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000/ffffffffffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000":"ffffffffffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000":1 + +mbedtls_mpi_core_sub #832: 0x1234567890abcdef01234567890abcdef0 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5":1 + +mbedtls_mpi_core_sub #833: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0 + +mbedtls_mpi_core_sub #834: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":0 + +mbedtls_mpi_core_sub #835: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x3 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb":0 + +mbedtls_mpi_core_sub #836: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xf = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef":0 + +mbedtls_mpi_core_sub #837: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfe = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00":0 + +mbedtls_mpi_core_sub #838: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff":0 + +mbedtls_mpi_core_sub #839: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x100 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe":0 + +mbedtls_mpi_core_sub #840: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xff00 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe":0 + +mbedtls_mpi_core_sub #841: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffe = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00":0 + +mbedtls_mpi_core_sub #842: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff":0 + +mbedtls_mpi_core_sub #843: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x10000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe":0 + +mbedtls_mpi_core_sub #844: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffe = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00/fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00":0 + +mbedtls_mpi_core_sub #845: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff/fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff":0 + +mbedtls_mpi_core_sub #846: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x100000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe":0 + +mbedtls_mpi_core_sub #847: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1f7f7f7f7f7f7f = 0xfffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f/fffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f":0 + +mbedtls_mpi_core_sub #848: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x8000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe/ffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe":0 + +mbedtls_mpi_core_sub #849: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfefefefefefefefe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 + +mbedtls_mpi_core_sub #850: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffe = 0xfffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00/fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00":0 + +mbedtls_mpi_core_sub #851: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffffffffffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff/fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff":0 + +mbedtls_mpi_core_sub #852: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x10000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe/fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe":0 + +mbedtls_mpi_core_sub #853: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1234567890abcdef0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e/fffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e":"fffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e":0 + +mbedtls_mpi_core_sub #854: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffffefefefefefefefe = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000/ffffffffffffffffffffffffffffffff00000000000000000000000000000000, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 + +mbedtls_mpi_core_sub #855: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffe = 0xfffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00/fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00":0 + +mbedtls_mpi_core_sub #856: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffffffffffffffffffffffffffffffff = 0xfffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff/fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff":0 + +mbedtls_mpi_core_sub #857: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe/fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe":0 + +mbedtls_mpi_core_sub #858: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e/ffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e":"ffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e":0 + +mbedtls_mpi_core_sub #859: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"0":"0":0 + +mbedtls_mpi_core_sub #860: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00":1 + +mbedtls_mpi_core_sub #861: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":1 + +mbedtls_mpi_core_sub #862: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":1 + +mbedtls_mpi_core_sub #863: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e/ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e":1 + +mbedtls_mpi_core_sub #864: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3":1 + +mbedtls_mpi_core_sub #865: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 + +mbedtls_mpi_core_sub #866: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":0 + +mbedtls_mpi_core_sub #867: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x3 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb":0 + +mbedtls_mpi_core_sub #868: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xf = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef":0 + +mbedtls_mpi_core_sub #869: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":0 + +mbedtls_mpi_core_sub #870: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":0 + +mbedtls_mpi_core_sub #871: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x100 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe":0 + +mbedtls_mpi_core_sub #872: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xff00 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe":0 + +mbedtls_mpi_core_sub #873: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":0 + +mbedtls_mpi_core_sub #874: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":0 + +mbedtls_mpi_core_sub #875: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x10000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe":0 + +mbedtls_mpi_core_sub #876: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":0 + +mbedtls_mpi_core_sub #877: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":0 + +mbedtls_mpi_core_sub #878: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x100000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe":0 + +mbedtls_mpi_core_sub #879: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f/ffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f":0 + +mbedtls_mpi_core_sub #880: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x8000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe/ffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe":0 + +mbedtls_mpi_core_sub #881: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfefefefefefefefe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100/ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100":0 + +mbedtls_mpi_core_sub #882: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 + +mbedtls_mpi_core_sub #883: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffffffffffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff/fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":0 + +mbedtls_mpi_core_sub #884: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x10000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe":0 + +mbedtls_mpi_core_sub #885: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1234567890abcdef0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e/fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e":0 + +mbedtls_mpi_core_sub #886: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffffefefefefefefefe = 0xffffffffffffffffffffffffffffffff00000000000000000101010101010100/ffffffffffffffffffffffffffffffff00000000000000000101010101010100, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000101010101010100":"ffffffffffffffffffffffffffffffff00000000000000000101010101010100":0 + +mbedtls_mpi_core_sub #887: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffe = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000/ffffffffffffffffffffffffffffffff00000000000000000000000000000000, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 + +mbedtls_mpi_core_sub #888: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffffffffffffffffffffffffffffffff = 0xfffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff/fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":0 + +mbedtls_mpi_core_sub #889: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe":0 + +mbedtls_mpi_core_sub #890: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e/ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e":0 + +mbedtls_mpi_core_sub #891: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010100/101010101010100, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010100":"101010101010100":0 + +mbedtls_mpi_core_sub #892: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"0":"0":0 + +mbedtls_mpi_core_sub #893: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":1 + +mbedtls_mpi_core_sub #894: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":1 + +mbedtls_mpi_core_sub #895: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e/ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e":1 + +mbedtls_mpi_core_sub #896: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3, carry 1 +mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3":1 + +mbedtls_mpi_core_sub #897: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x0 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 + +mbedtls_mpi_core_sub #898: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 + +mbedtls_mpi_core_sub #899: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x3 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":0 + +mbedtls_mpi_core_sub #900: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xf = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0":0 + +mbedtls_mpi_core_sub #901: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":0 + +mbedtls_mpi_core_sub #902: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":0 + +mbedtls_mpi_core_sub #903: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x100 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":0 + +mbedtls_mpi_core_sub #904: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xff00 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff":0 + +mbedtls_mpi_core_sub #905: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":0 + +mbedtls_mpi_core_sub #906: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":0 + +mbedtls_mpi_core_sub #907: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x10000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":0 + +mbedtls_mpi_core_sub #908: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":0 + +mbedtls_mpi_core_sub #909: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":0 + +mbedtls_mpi_core_sub #910: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x100000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":0 + +mbedtls_mpi_core_sub #911: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080/ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080":0 + +mbedtls_mpi_core_sub #912: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x8000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":0 + +mbedtls_mpi_core_sub #913: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfefefefefefefefe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101/ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101":0 + +mbedtls_mpi_core_sub #914: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":0 + +mbedtls_mpi_core_sub #915: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffffffffffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 + +mbedtls_mpi_core_sub #916: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x10000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff/fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":0 + +mbedtls_mpi_core_sub #917: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1234567890abcdef0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f/fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f":0 + +mbedtls_mpi_core_sub #918: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffffefefefefefefefe = 0xffffffffffffffffffffffffffffffff00000000000000000101010101010101/ffffffffffffffffffffffffffffffff00000000000000000101010101010101, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000101010101010101":"ffffffffffffffffffffffffffffffff00000000000000000101010101010101":0 + +mbedtls_mpi_core_sub #919: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffe = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000001/ffffffffffffffffffffffffffffffff00000000000000000000000000000001, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":0 + +mbedtls_mpi_core_sub #920: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000/ffffffffffffffffffffffffffffffff00000000000000000000000000000000, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 + +mbedtls_mpi_core_sub #921: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff/fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":0 + +mbedtls_mpi_core_sub #922: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f/ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f":0 + +mbedtls_mpi_core_sub #923: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010101/101010101010101, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010101":"101010101010101":0 + +mbedtls_mpi_core_sub #924: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1/1, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1":"1":0 + +mbedtls_mpi_core_sub #925: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":0 + +mbedtls_mpi_core_sub #926: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":1 + +mbedtls_mpi_core_sub #927: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f/ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f":1 + +mbedtls_mpi_core_sub #928: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4, carry 1 +mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4":1 + +mbedtls_mpi_core_sub #929: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x0 = 0x10000000000000000000000000000000000000000000000000000000000000000/10000000000000000000000000000000000000000000000000000000000000000, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"0":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_core_sub #930: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 + +mbedtls_mpi_core_sub #931: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x3 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":0 + +mbedtls_mpi_core_sub #932: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xf = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1":0 + +mbedtls_mpi_core_sub #933: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":0 + +mbedtls_mpi_core_sub #934: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":0 + +mbedtls_mpi_core_sub #935: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x100 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":0 + +mbedtls_mpi_core_sub #936: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xff00 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100":0 + +mbedtls_mpi_core_sub #937: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":0 + +mbedtls_mpi_core_sub #938: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":0 + +mbedtls_mpi_core_sub #939: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x10000 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":0 + +mbedtls_mpi_core_sub #940: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":0 + +mbedtls_mpi_core_sub #941: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":0 + +mbedtls_mpi_core_sub #942: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x100000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":0 + +mbedtls_mpi_core_sub #943: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081/ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081":0 + +mbedtls_mpi_core_sub #944: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x8000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":0 + +mbedtls_mpi_core_sub #945: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfefefefefefefefe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102/ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102":0 + +mbedtls_mpi_core_sub #946: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":0 + +mbedtls_mpi_core_sub #947: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffffffffffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":0 + +mbedtls_mpi_core_sub #948: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x10000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 + +mbedtls_mpi_core_sub #949: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1234567890abcdef0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110/fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110":0 + +mbedtls_mpi_core_sub #950: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffffefefefefefefefe = 0xffffffffffffffffffffffffffffffff00000000000000000101010101010102/ffffffffffffffffffffffffffffffff00000000000000000101010101010102, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000101010101010102":"ffffffffffffffffffffffffffffffff00000000000000000101010101010102":0 + +mbedtls_mpi_core_sub #951: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffe = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000002/ffffffffffffffffffffffffffffffff00000000000000000000000000000002, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000002":"ffffffffffffffffffffffffffffffff00000000000000000000000000000002":0 + +mbedtls_mpi_core_sub #952: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000001/ffffffffffffffffffffffffffffffff00000000000000000000000000000001, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":0 + +mbedtls_mpi_core_sub #953: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x100000000000000000000000000000000 = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000/ffffffffffffffffffffffffffffffff00000000000000000000000000000000, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 + +mbedtls_mpi_core_sub #954: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110/ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110":0 + +mbedtls_mpi_core_sub #955: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010102/101010101010102, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":0 + +mbedtls_mpi_core_sub #956: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x2/2, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2":"2":0 + +mbedtls_mpi_core_sub #957: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1/1, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"1":0 + +mbedtls_mpi_core_sub #958: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"0":"0":0 + +mbedtls_mpi_core_sub #959: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110/ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110, carry 1 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":1 + +mbedtls_mpi_core_sub #960: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5, carry 1 +mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":1 + +mbedtls_mpi_core_sub #961: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x0 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 + +mbedtls_mpi_core_sub #962: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":0 + +mbedtls_mpi_core_sub #963: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x3 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":0 + +mbedtls_mpi_core_sub #964: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xf = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1":0 + +mbedtls_mpi_core_sub #965: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfe = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":0 + +mbedtls_mpi_core_sub #966: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xff = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":0 + +mbedtls_mpi_core_sub #967: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x100 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0":0 + +mbedtls_mpi_core_sub #968: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xff00 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff00":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0":0 + +mbedtls_mpi_core_sub #969: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffe = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2":0 + +mbedtls_mpi_core_sub #970: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffff = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":0 + +mbedtls_mpi_core_sub #971: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x10000 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":0 + +mbedtls_mpi_core_sub #972: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffe = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2/1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2":0 + +mbedtls_mpi_core_sub #973: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffffffff = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1/1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":0 + +mbedtls_mpi_core_sub #974: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x100000000 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0/1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":0 + +mbedtls_mpi_core_sub #975: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1f7f7f7f7f7f7f = 0x1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71/1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71":"1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71":0 + +mbedtls_mpi_core_sub #976: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x8000000000000000 = 0x1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0/1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":0 + +mbedtls_mpi_core_sub #977: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfefefefefefefefe = 0x1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2/1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2":"1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2":0 + +mbedtls_mpi_core_sub #978: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffe = 0x1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2/1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":0 + +mbedtls_mpi_core_sub #979: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffffffffffffffff = 0x1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1/1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1":0 + +mbedtls_mpi_core_sub #980: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x10000000000000000 = 0x1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0/1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0":0 + +mbedtls_mpi_core_sub #981: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1234567890abcdef0 = 0x1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000/1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000":0 + +mbedtls_mpi_core_sub #982: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffefefefefefefefe = 0x1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2/1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2":"1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2":0 + +mbedtls_mpi_core_sub #983: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffe = 0x1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2/1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2":0 + +mbedtls_mpi_core_sub #984: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffffffffffffffffffffffffffffffff = 0x1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1/1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1":0 + +mbedtls_mpi_core_sub #985: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x100000000000000000000000000000000 = 0x1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0/1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0":0 + +mbedtls_mpi_core_sub #986: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1234567890abcdef01234567890abcdef0 = 0x1234567890abcdef01234567890abcdef00000000000000000000000000000000000/1234567890abcdef01234567890abcdef00000000000000000000000000000000000, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef00000000000000000000000000000000000":"1234567890abcdef01234567890abcdef00000000000000000000000000000000000":0 + +mbedtls_mpi_core_sub #987: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2/1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2":"1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2":0 + +mbedtls_mpi_core_sub #988: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2/1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2":0 + +mbedtls_mpi_core_sub #989: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1/1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":0 + +mbedtls_mpi_core_sub #990: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0x1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0/1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 + +mbedtls_mpi_core_sub #991: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":0 + +mbedtls_mpi_core_sub #992: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5, carry 1 +mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5":1 + +mbedtls_mpi_core_sub #993: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x0 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 + +mbedtls_mpi_core_sub #994: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":0 + +mbedtls_mpi_core_sub #995: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x3 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":0 + +mbedtls_mpi_core_sub #996: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xf = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c":0 + +mbedtls_mpi_core_sub #997: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":0 + +mbedtls_mpi_core_sub #998: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":0 + +mbedtls_mpi_core_sub #999: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x100 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b":0 + +mbedtls_mpi_core_sub #1000: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xff00 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff00":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b":0 + +mbedtls_mpi_core_sub #1001: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d":0 + +mbedtls_mpi_core_sub #1002: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":0 + +mbedtls_mpi_core_sub #1003: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x10000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":0 + +mbedtls_mpi_core_sub #1004: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d":0 + +mbedtls_mpi_core_sub #1005: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffffffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":0 + +mbedtls_mpi_core_sub #1006: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x100000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":0 + +mbedtls_mpi_core_sub #1007: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1f7f7f7f7f7f7f = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac":0 + +mbedtls_mpi_core_sub #1008: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x8000000000000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":0 + +mbedtls_mpi_core_sub #1009: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfefefefefefefefe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d":0 + +mbedtls_mpi_core_sub #1010: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":0 + +mbedtls_mpi_core_sub #1011: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffffffffffffffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c":0 + +mbedtls_mpi_core_sub #1012: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x10000000000000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b":0 + +mbedtls_mpi_core_sub #1013: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1234567890abcdef0 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b":0 + +mbedtls_mpi_core_sub #1014: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffffefefefefefefefe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d":0 + +mbedtls_mpi_core_sub #1015: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffffffffffffffffffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d":0 + +mbedtls_mpi_core_sub #1016: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffffffffffffffffffffffffffffffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c":0 + +mbedtls_mpi_core_sub #1017: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x100000000000000000000000000000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b":0 + +mbedtls_mpi_core_sub #1018: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1234567890abcdef01234567890abcdef0 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b":0 + +mbedtls_mpi_core_sub #1019: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d":0 + +mbedtls_mpi_core_sub #1020: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d":0 + +mbedtls_mpi_core_sub #1021: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":0 + +mbedtls_mpi_core_sub #1022: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000000000000000000000000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 + +mbedtls_mpi_core_sub #1023: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b":0 + +mbedtls_mpi_core_sub #1024: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0x0/0, carry 0 +mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":0 + MPI Selftest depends_on:MBEDTLS_SELF_TEST mpi_selftest: diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 6cdc2e0bbd..cfd8e0466b 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1814,6 +1814,95 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mbedtls_mpi_core_sub( char * input_l, char * input_r, + char * input_X4, char * input_X8, + int carry ) +{ + mbedtls_mpi l, r, X4, X8; + mbedtls_mpi_uint *la = NULL; + mbedtls_mpi_uint *ra = NULL; + mbedtls_mpi_uint *Xa = NULL; + mbedtls_mpi_uint *da = NULL; + + mbedtls_mpi_init( &l ); + mbedtls_mpi_init( &r ); + mbedtls_mpi_init( &X4 ); + mbedtls_mpi_init( &X8 ); + + TEST_EQUAL( mbedtls_test_read_mpi( &l, input_l ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &r, input_r ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &X4, input_X4 ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &X8, input_X8 ), 0 ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( l.s, 1 ); + TEST_EQUAL( r.s, 1 ); + TEST_EQUAL( X4.s, 1 ); + TEST_EQUAL( X8.s, 1 ); + + /* Get the number of limbs we will need */ + size_t limbs = ( l.n < r.n ) ? r.n : l.n; + + /* We only need to work with X4 or X8, depending on sizeof(mbedtls_mpi_uint) */ + mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; + + /* The result shouldn't have more limbs than the longest input */ + TEST_ASSERT( X->n <= limbs ); + + /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ + la = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); + ra = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); + Xa = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); + da = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); + + TEST_ASSERT( la != NULL ); + TEST_ASSERT( ra != NULL ); + TEST_ASSERT( Xa != NULL ); + TEST_ASSERT( da != NULL ); + + /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as + * processed by mbedtls_mpi_core_add_if()) are little endian, we can just + * copy what we have as long as MSBs are 0 (which they are from calloc()) + */ + memcpy( la, l.p, l.n * sizeof(mbedtls_mpi_uint) ); + memcpy( ra, r.p, r.n * sizeof(mbedtls_mpi_uint) ); + memcpy( Xa, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + + /* 1a) d = l - r => we should get the correct carry */ + TEST_EQUAL( mbedtls_mpi_core_sub( da, la, ra, limbs ), (mbedtls_mpi_uint) carry ); + + /* 1b) d = l - r => we should get the correct result */ + TEST_EQUAL( memcmp( da, Xa, limbs * sizeof(mbedtls_mpi_uint) ), 0 ); + + /* 2 and 3 test "d may be aliased to l or r" */ + /* 2a) l -= r => we should get the correct carry (use d to avoid clobbering l) */ + memcpy( da, la, limbs * sizeof(mbedtls_mpi_uint) ); + TEST_EQUAL( mbedtls_mpi_core_sub( da, da, ra, limbs ), (mbedtls_mpi_uint) carry ); + + /* 2b) l -= r => we should get the correct result */ + TEST_EQUAL( memcmp( da, Xa, limbs * sizeof(mbedtls_mpi_uint) ), 0 ); + + /* 3a) r = l - r => we should get the correct carry (use d to avoid clobbering r) */ + memcpy( da, ra, limbs * sizeof(mbedtls_mpi_uint) ); + TEST_EQUAL( mbedtls_mpi_core_sub( da, la, da, limbs ), (mbedtls_mpi_uint) carry ); + + /* 3b) r = l - r => we should get the correct result */ + TEST_EQUAL( memcmp( da, Xa, limbs * sizeof(mbedtls_mpi_uint) ), 0 ); + +exit: + mbedtls_free( la ); + mbedtls_free( ra ); + mbedtls_free( Xa ); + mbedtls_free( da ); + + mbedtls_mpi_free( &X4 ); + mbedtls_mpi_free( &X8 ); + mbedtls_mpi_free( &l ); + mbedtls_mpi_free( &r ); +} +/* END_CASE */ + /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ void mpi_selftest( ) { From 659c84add930ba9529fa3858aba977a7c37b06ef Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 17 Aug 2022 05:45:19 +0100 Subject: [PATCH 0030/1028] Add unit tests for the new function mbedtls_mpi_core_mla() in bignum_new.c The test cases use the following MPI values: 0 1 fffe ffffffff 100000000 20000000000000 ffffffffffffffff 10000000000000000 1234567890abcdef0 fffffffffffffffffefefefefefefefe 100000000000000000000000000000000 1234567890abcdef01234567890abcdef0 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b and the following scalars. The .data files include two sets of results (final accumulator and carry) for the cases sizeof(mbedtls_mpi_uint) == 4 or 8. 0 3 fe ff ffff 10000 ffffffff 100000000 7f7f7f7f7f7f7f7f 8000000000000000 fffffffffffffffe The lines in the .data file were generated by the following script #!/usr/bin/env perl # # mpi-test-core-mla.pl - generate/run MPI tests in Perl for mbedtls_mpi_core_mla() # use strict; use warnings; use Math::BigInt; use sort 'stable'; my @mla_mpis = qw( 0 1 fffe ffffffff 100000000 20000000000000 ffffffffffffffff 10000000000000000 1234567890abcdef0 fffffffffffffffffefefefefefefefe 100000000000000000000000000000000 1234567890abcdef01234567890abcdef0 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b ); my @mla_scalars = qw( 0 3 fe ff ffff 10000 ffffffff 100000000 7f7f7f7f7f7f7f7f 8000000000000000 fffffffffffffffe ); my @mla_full_mpis = qw( 0 1 3 f fe ff 100 ff00 fffe ffff 10000 fffffffe ffffffff 100000000 1f7f7f7f7f7f7f 8000000000000000 fefefefefefefefe fffffffffffffffe ffffffffffffffff 10000000000000000 1234567890abcdef0 fffffffffffffffffefefefefefefefe fffffffffffffffffffffffffffffffe ffffffffffffffffffffffffffffffff 100000000000000000000000000000000 1234567890abcdef01234567890abcdef0 fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 10000000000000000000000000000000000000000000000000000000000000000 1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b ); my @mla_full_scalars = qw( 0 1 3 f fe ff 100 ff00 fffe ffff 10000 fffffffe ffffffff 100000000 8000000000000000 fefefefefefefefe fffffffffffffffe ffffffffffffffff ); generate_tests(); sub generate_tests { generate_mbedtls_mpi_core_mla(); } sub generate_mbedtls_mpi_core_mla { my $sub_name = (caller(0))[3]; # e.g. main::generate_mbedtls_mpi_sub_mpi my ($ignore, $test_name) = split("main::generate_", $sub_name); my @cases = (); for my $ah (@mla_mpis) { for my $bh (@mla_mpis) { for my $ch (@mla_scalars) { # a += b * c (c is scalar) # a_len >= b_len. need carry out. my $a = Math::BigInt->from_hex($ah); my $b = Math::BigInt->from_hex($bh); my $c = Math::BigInt->from_hex($ch); my $max = ($a > $b) ? $a : $b; my $bound4 = bound_mpi4($max); my $bound8 = bound_mpi8($max); my $r = $a + $b * $c; my ($r4, $cy4) = ($r->copy(), 0); my ($r8, $cy8) = ($r->copy(), 0); ($cy4, $r4) = $r4->bdiv($bound4); ($cy8, $r8) = $r8->bdiv($bound8); my $rh4 = $r4->to_hex(); my $rh8 = $r8->to_hex(); my $cyh4 = $cy4->to_hex(); my $cyh8 = $cy8->to_hex(); # If the scalar c is too big for 1 x 4-byte MPI, we can only run this test on a system with 8-byte MPIs my $depends = mpi4s($c) > 1 ? "MBEDTLS_HAVE_INT64" : ""; my $desc = "$test_name #NUMBER: 0x$ah + 0x$bh * 0x$ch = (0x$rh4, carry 0x$cyh4)/(0x$rh8, carry 0x$cyh8)EXPLAIN"; my $case = output($test_name, str($ah), str($bh), str($ch), str($rh4), str($cyh4), str($rh8), str($cyh8)); push(@cases, [$case, $desc, $depends]); } } } output_cases(" (for when sizeof(mbedtls_mpi_uint) == 4/8)", @cases); } sub output_cases { my ($explain, @cases) = @_; my $count = 1; for my $c (@cases) { my ($case, $desc, $dep) = @$c; $desc =~ s/NUMBER/$count/; $count++; if (defined($explain) && $desc =~ /EXPLAIN/) { $desc =~ s/EXPLAIN/$explain/; $explain = ""; } my $depends = ""; $depends = "depends_on:$dep\n" if defined($dep) && length($dep); print <new(1); # blsft modifies caller return $one->blsft(bits_mpi4($_[0])); } sub bound_mpi8 { my $one = Math::BigInt->new(1); # blsft modifies caller return $one->blsft(bits_mpi8($_[0])); } # How many bits (a multiple of 32) needed to store the specified number # when using 4-byte MPIs sub bits_mpi4 { return 32 * mpi4s($_[0]); } # How many bits (a multiple of 64) needed to store the specified number # when using 8-byte MPIs sub bits_mpi8 { return 64 * mpi8s($_[0]); } # How many 4-byte MPIs needed to store the specified number sub mpi4s { my ($n) = @_; my $h = $n->to_hex(); return int((length($h) + 7) / 8); } # How many 8-byte MPIs needed to store the specified number sub mpi8s { my ($n) = @_; my $h = $n->to_hex(); return int((length($h) + 15) / 16); } sub output { #run_test(@_); return join(":", @_); } sub str { return '"' . $_[0] . '"'; } Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.data | 8325 ++++++++++++++++++++++++++ tests/suites/test_suite_mpi.function | 88 + 2 files changed, 8413 insertions(+) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 3323c8e4cd..de7862e282 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -6938,6 +6938,8331 @@ mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab732 mbedtls_mpi_core_sub #1024: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0x0/0, carry 0 mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":0 +mbedtls_mpi_core_mla #1: 0x0 + 0x0 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) (for when sizeof(mbedtls_mpi_uint) == 4/8) +mbedtls_mpi_core_mla:"0":"0":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #2: 0x0 + 0x0 * 0x3 = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"0":"3":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #3: 0x0 + 0x0 * 0xfe = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"0":"fe":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #4: 0x0 + 0x0 * 0xff = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"0":"ff":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #5: 0x0 + 0x0 * 0xffff = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"0":"ffff":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #6: 0x0 + 0x0 * 0x10000 = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"0":"10000":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #7: 0x0 + 0x0 * 0xffffffff = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"0":"ffffffff":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #8: 0x0 + 0x0 * 0x100000000 = (0x0, carry 0x0)/(0x0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"0":"100000000":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #9: 0x0 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x0, carry 0x0)/(0x0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"0":"7f7f7f7f7f7f7f7f":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #10: 0x0 + 0x0 * 0x8000000000000000 = (0x0, carry 0x0)/(0x0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"0":"8000000000000000":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #11: 0x0 + 0x0 * 0xfffffffffffffffe = (0x0, carry 0x0)/(0x0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"0":"fffffffffffffffe":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #12: 0x0 + 0x1 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"1":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #13: 0x0 + 0x1 * 0x3 = (0x3, carry 0x0)/(0x3, carry 0x0) +mbedtls_mpi_core_mla:"0":"1":"3":"3":"0":"3":"0" + +mbedtls_mpi_core_mla #14: 0x0 + 0x1 * 0xfe = (0xfe, carry 0x0)/(0xfe, carry 0x0) +mbedtls_mpi_core_mla:"0":"1":"fe":"fe":"0":"fe":"0" + +mbedtls_mpi_core_mla #15: 0x0 + 0x1 * 0xff = (0xff, carry 0x0)/(0xff, carry 0x0) +mbedtls_mpi_core_mla:"0":"1":"ff":"ff":"0":"ff":"0" + +mbedtls_mpi_core_mla #16: 0x0 + 0x1 * 0xffff = (0xffff, carry 0x0)/(0xffff, carry 0x0) +mbedtls_mpi_core_mla:"0":"1":"ffff":"ffff":"0":"ffff":"0" + +mbedtls_mpi_core_mla #17: 0x0 + 0x1 * 0x10000 = (0x10000, carry 0x0)/(0x10000, carry 0x0) +mbedtls_mpi_core_mla:"0":"1":"10000":"10000":"0":"10000":"0" + +mbedtls_mpi_core_mla #18: 0x0 + 0x1 * 0xffffffff = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"0":"1":"ffffffff":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #19: 0x0 + 0x1 * 0x100000000 = (0x0, carry 0x1)/(0x100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"1":"100000000":"0":"1":"100000000":"0" + +mbedtls_mpi_core_mla #20: 0x0 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f":"7f7f7f7f":"7f7f7f7f7f7f7f7f":"0" + +mbedtls_mpi_core_mla #21: 0x0 + 0x1 * 0x8000000000000000 = (0x0, carry 0x80000000)/(0x8000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"1":"8000000000000000":"0":"80000000":"8000000000000000":"0" + +mbedtls_mpi_core_mla #22: 0x0 + 0x1 * 0xfffffffffffffffe = (0xfffffffe, carry 0xffffffff)/(0xfffffffffffffffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"1":"fffffffffffffffe":"fffffffe":"ffffffff":"fffffffffffffffe":"0" + +mbedtls_mpi_core_mla #23: 0x0 + 0xfffe * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"fffe":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #24: 0x0 + 0xfffe * 0x3 = (0x2fffa, carry 0x0)/(0x2fffa, carry 0x0) +mbedtls_mpi_core_mla:"0":"fffe":"3":"2fffa":"0":"2fffa":"0" + +mbedtls_mpi_core_mla #25: 0x0 + 0xfffe * 0xfe = (0xfdfe04, carry 0x0)/(0xfdfe04, carry 0x0) +mbedtls_mpi_core_mla:"0":"fffe":"fe":"fdfe04":"0":"fdfe04":"0" + +mbedtls_mpi_core_mla #26: 0x0 + 0xfffe * 0xff = (0xfefe02, carry 0x0)/(0xfefe02, carry 0x0) +mbedtls_mpi_core_mla:"0":"fffe":"ff":"fefe02":"0":"fefe02":"0" + +mbedtls_mpi_core_mla #27: 0x0 + 0xfffe * 0xffff = (0xfffd0002, carry 0x0)/(0xfffd0002, carry 0x0) +mbedtls_mpi_core_mla:"0":"fffe":"ffff":"fffd0002":"0":"fffd0002":"0" + +mbedtls_mpi_core_mla #28: 0x0 + 0xfffe * 0x10000 = (0xfffe0000, carry 0x0)/(0xfffe0000, carry 0x0) +mbedtls_mpi_core_mla:"0":"fffe":"10000":"fffe0000":"0":"fffe0000":"0" + +mbedtls_mpi_core_mla #29: 0x0 + 0xfffe * 0xffffffff = (0xffff0002, carry 0xfffd)/(0xfffdffff0002, carry 0x0) +mbedtls_mpi_core_mla:"0":"fffe":"ffffffff":"ffff0002":"fffd":"fffdffff0002":"0" + +mbedtls_mpi_core_mla #30: 0x0 + 0xfffe * 0x100000000 = (0x0, carry 0xfffe)/(0xfffe00000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"fffe":"100000000":"0":"fffe":"fffe00000000":"0" + +mbedtls_mpi_core_mla #31: 0x0 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80800102, carry 0x7f7e80808080)/(0x8080808080800102, carry 0x7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"fffe":"7f7f7f7f7f7f7f7f":"80800102":"7f7e80808080":"8080808080800102":"7f7e" + +mbedtls_mpi_core_mla #32: 0x0 + 0xfffe * 0x8000000000000000 = (0x0, carry 0x7fff00000000)/(0x0, carry 0x7fff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"fffe":"8000000000000000":"0":"7fff00000000":"0":"7fff" + +mbedtls_mpi_core_mla #33: 0x0 + 0xfffe * 0xfffffffffffffffe = (0xfffe0004, carry 0xfffdffffffff)/(0xfffffffffffe0004, carry 0xfffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"fffe":"fffffffffffffffe":"fffe0004":"fffdffffffff":"fffffffffffe0004":"fffd" + +mbedtls_mpi_core_mla #34: 0x0 + 0xffffffff * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"ffffffff":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #35: 0x0 + 0xffffffff * 0x3 = (0xfffffffd, carry 0x2)/(0x2fffffffd, carry 0x0) +mbedtls_mpi_core_mla:"0":"ffffffff":"3":"fffffffd":"2":"2fffffffd":"0" + +mbedtls_mpi_core_mla #36: 0x0 + 0xffffffff * 0xfe = (0xffffff02, carry 0xfd)/(0xfdffffff02, carry 0x0) +mbedtls_mpi_core_mla:"0":"ffffffff":"fe":"ffffff02":"fd":"fdffffff02":"0" + +mbedtls_mpi_core_mla #37: 0x0 + 0xffffffff * 0xff = (0xffffff01, carry 0xfe)/(0xfeffffff01, carry 0x0) +mbedtls_mpi_core_mla:"0":"ffffffff":"ff":"ffffff01":"fe":"feffffff01":"0" + +mbedtls_mpi_core_mla #38: 0x0 + 0xffffffff * 0xffff = (0xffff0001, carry 0xfffe)/(0xfffeffff0001, carry 0x0) +mbedtls_mpi_core_mla:"0":"ffffffff":"ffff":"ffff0001":"fffe":"fffeffff0001":"0" + +mbedtls_mpi_core_mla #39: 0x0 + 0xffffffff * 0x10000 = (0xffff0000, carry 0xffff)/(0xffffffff0000, carry 0x0) +mbedtls_mpi_core_mla:"0":"ffffffff":"10000":"ffff0000":"ffff":"ffffffff0000":"0" + +mbedtls_mpi_core_mla #40: 0x0 + 0xffffffff * 0xffffffff = (0x1, carry 0xfffffffe)/(0xfffffffe00000001, carry 0x0) +mbedtls_mpi_core_mla:"0":"ffffffff":"ffffffff":"1":"fffffffe":"fffffffe00000001":"0" + +mbedtls_mpi_core_mla #41: 0x0 + 0xffffffff * 0x100000000 = (0x0, carry 0xffffffff)/(0xffffffff00000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"ffffffff":"100000000":"0":"ffffffff":"ffffffff00000000":"0" + +mbedtls_mpi_core_mla #42: 0x0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x80808081, carry 0x7f7f7f7effffffff)/(0xffffffff80808081, carry 0x7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"ffffffff":"7f7f7f7f7f7f7f7f":"80808081":"7f7f7f7effffffff":"ffffffff80808081":"7f7f7f7e" + +mbedtls_mpi_core_mla #43: 0x0 + 0xffffffff * 0x8000000000000000 = (0x0, carry 0x7fffffff80000000)/(0x8000000000000000, carry 0x7fffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"ffffffff":"8000000000000000":"0":"7fffffff80000000":"8000000000000000":"7fffffff" + +mbedtls_mpi_core_mla #44: 0x0 + 0xffffffff * 0xfffffffffffffffe = (0x2, carry 0xfffffffefffffffe)/(0xfffffffe00000002, carry 0xfffffffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"ffffffff":"fffffffffffffffe":"2":"fffffffefffffffe":"fffffffe00000002":"fffffffe" + +mbedtls_mpi_core_mla #45: 0x0 + 0x100000000 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"100000000":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #46: 0x0 + 0x100000000 * 0x3 = (0x300000000, carry 0x0)/(0x300000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"100000000":"3":"300000000":"0":"300000000":"0" + +mbedtls_mpi_core_mla #47: 0x0 + 0x100000000 * 0xfe = (0xfe00000000, carry 0x0)/(0xfe00000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"100000000":"fe":"fe00000000":"0":"fe00000000":"0" + +mbedtls_mpi_core_mla #48: 0x0 + 0x100000000 * 0xff = (0xff00000000, carry 0x0)/(0xff00000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"100000000":"ff":"ff00000000":"0":"ff00000000":"0" + +mbedtls_mpi_core_mla #49: 0x0 + 0x100000000 * 0xffff = (0xffff00000000, carry 0x0)/(0xffff00000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"100000000":"ffff":"ffff00000000":"0":"ffff00000000":"0" + +mbedtls_mpi_core_mla #50: 0x0 + 0x100000000 * 0x10000 = (0x1000000000000, carry 0x0)/(0x1000000000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"100000000":"10000":"1000000000000":"0":"1000000000000":"0" + +mbedtls_mpi_core_mla #51: 0x0 + 0x100000000 * 0xffffffff = (0xffffffff00000000, carry 0x0)/(0xffffffff00000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"100000000":"ffffffff":"ffffffff00000000":"0":"ffffffff00000000":"0" + +mbedtls_mpi_core_mla #52: 0x0 + 0x100000000 * 0x100000000 = (0x0, carry 0x1)/(0x0, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"100000000":"100000000":"0":"1":"0":"1" + +mbedtls_mpi_core_mla #53: 0x0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000, carry 0x7f7f7f7f)/(0x7f7f7f7f00000000, carry 0x7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000":"7f7f7f7f":"7f7f7f7f00000000":"7f7f7f7f" + +mbedtls_mpi_core_mla #54: 0x0 + 0x100000000 * 0x8000000000000000 = (0x0, carry 0x80000000)/(0x0, carry 0x80000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"100000000":"8000000000000000":"0":"80000000":"0":"80000000" + +mbedtls_mpi_core_mla #55: 0x0 + 0x100000000 * 0xfffffffffffffffe = (0xfffffffe00000000, carry 0xffffffff)/(0xfffffffe00000000, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"100000000":"fffffffffffffffe":"fffffffe00000000":"ffffffff":"fffffffe00000000":"ffffffff" + +mbedtls_mpi_core_mla #56: 0x0 + 0x20000000000000 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"20000000000000":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #57: 0x0 + 0x20000000000000 * 0x3 = (0x60000000000000, carry 0x0)/(0x60000000000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"20000000000000":"3":"60000000000000":"0":"60000000000000":"0" + +mbedtls_mpi_core_mla #58: 0x0 + 0x20000000000000 * 0xfe = (0x1fc0000000000000, carry 0x0)/(0x1fc0000000000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"20000000000000":"fe":"1fc0000000000000":"0":"1fc0000000000000":"0" + +mbedtls_mpi_core_mla #59: 0x0 + 0x20000000000000 * 0xff = (0x1fe0000000000000, carry 0x0)/(0x1fe0000000000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"20000000000000":"ff":"1fe0000000000000":"0":"1fe0000000000000":"0" + +mbedtls_mpi_core_mla #60: 0x0 + 0x20000000000000 * 0xffff = (0xffe0000000000000, carry 0x1f)/(0xffe0000000000000, carry 0x1f) +mbedtls_mpi_core_mla:"0":"20000000000000":"ffff":"ffe0000000000000":"1f":"ffe0000000000000":"1f" + +mbedtls_mpi_core_mla #61: 0x0 + 0x20000000000000 * 0x10000 = (0x0, carry 0x20)/(0x0, carry 0x20) +mbedtls_mpi_core_mla:"0":"20000000000000":"10000":"0":"20":"0":"20" + +mbedtls_mpi_core_mla #62: 0x0 + 0x20000000000000 * 0xffffffff = (0xffe0000000000000, carry 0x1fffff)/(0xffe0000000000000, carry 0x1fffff) +mbedtls_mpi_core_mla:"0":"20000000000000":"ffffffff":"ffe0000000000000":"1fffff":"ffe0000000000000":"1fffff" + +mbedtls_mpi_core_mla #63: 0x0 + 0x20000000000000 * 0x100000000 = (0x0, carry 0x200000)/(0x0, carry 0x200000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"20000000000000":"100000000":"0":"200000":"0":"200000" + +mbedtls_mpi_core_mla #64: 0x0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe0000000000000, carry 0xfefefefefefef)/(0xefe0000000000000, carry 0xfefefefefefef) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000000000000":"fefefefefefef":"efe0000000000000":"fefefefefefef" + +mbedtls_mpi_core_mla #65: 0x0 + 0x20000000000000 * 0x8000000000000000 = (0x0, carry 0x10000000000000)/(0x0, carry 0x10000000000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"20000000000000":"8000000000000000":"0":"10000000000000":"0":"10000000000000" + +mbedtls_mpi_core_mla #66: 0x0 + 0x20000000000000 * 0xfffffffffffffffe = (0xffc0000000000000, carry 0x1fffffffffffff)/(0xffc0000000000000, carry 0x1fffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"20000000000000":"fffffffffffffffe":"ffc0000000000000":"1fffffffffffff":"ffc0000000000000":"1fffffffffffff" + +mbedtls_mpi_core_mla #67: 0x0 + 0xffffffffffffffff * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #68: 0x0 + 0xffffffffffffffff * 0x3 = (0xfffffffffffffffd, carry 0x2)/(0xfffffffffffffffd, carry 0x2) +mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"3":"fffffffffffffffd":"2":"fffffffffffffffd":"2" + +mbedtls_mpi_core_mla #69: 0x0 + 0xffffffffffffffff * 0xfe = (0xffffffffffffff02, carry 0xfd)/(0xffffffffffffff02, carry 0xfd) +mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"fe":"ffffffffffffff02":"fd":"ffffffffffffff02":"fd" + +mbedtls_mpi_core_mla #70: 0x0 + 0xffffffffffffffff * 0xff = (0xffffffffffffff01, carry 0xfe)/(0xffffffffffffff01, carry 0xfe) +mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"ff":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" + +mbedtls_mpi_core_mla #71: 0x0 + 0xffffffffffffffff * 0xffff = (0xffffffffffff0001, carry 0xfffe)/(0xffffffffffff0001, carry 0xfffe) +mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"ffff":"ffffffffffff0001":"fffe":"ffffffffffff0001":"fffe" + +mbedtls_mpi_core_mla #72: 0x0 + 0xffffffffffffffff * 0x10000 = (0xffffffffffff0000, carry 0xffff)/(0xffffffffffff0000, carry 0xffff) +mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"10000":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" + +mbedtls_mpi_core_mla #73: 0x0 + 0xffffffffffffffff * 0xffffffff = (0xffffffff00000001, carry 0xfffffffe)/(0xffffffff00000001, carry 0xfffffffe) +mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"ffffffff":"ffffffff00000001":"fffffffe":"ffffffff00000001":"fffffffe" + +mbedtls_mpi_core_mla #74: 0x0 + 0xffffffffffffffff * 0x100000000 = (0xffffffff00000000, carry 0xffffffff)/(0xffffffff00000000, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"100000000":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" + +mbedtls_mpi_core_mla #75: 0x0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808081, carry 0x7f7f7f7f7f7f7f7e)/(0x8080808080808081, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7e":"8080808080808081":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #76: 0x0 + 0xffffffffffffffff * 0x8000000000000000 = (0x8000000000000000, carry 0x7fffffffffffffff)/(0x8000000000000000, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"8000000000000000":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #77: 0x0 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x2, carry 0xfffffffffffffffd)/(0x2, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"fffffffffffffffe":"2":"fffffffffffffffd":"2":"fffffffffffffffd" + +mbedtls_mpi_core_mla #78: 0x0 + 0x10000000000000000 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"10000000000000000":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #79: 0x0 + 0x10000000000000000 * 0x3 = (0x30000000000000000, carry 0x0)/(0x30000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"10000000000000000":"3":"30000000000000000":"0":"30000000000000000":"0" + +mbedtls_mpi_core_mla #80: 0x0 + 0x10000000000000000 * 0xfe = (0xfe0000000000000000, carry 0x0)/(0xfe0000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"10000000000000000":"fe":"fe0000000000000000":"0":"fe0000000000000000":"0" + +mbedtls_mpi_core_mla #81: 0x0 + 0x10000000000000000 * 0xff = (0xff0000000000000000, carry 0x0)/(0xff0000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"10000000000000000":"ff":"ff0000000000000000":"0":"ff0000000000000000":"0" + +mbedtls_mpi_core_mla #82: 0x0 + 0x10000000000000000 * 0xffff = (0xffff0000000000000000, carry 0x0)/(0xffff0000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"10000000000000000":"ffff":"ffff0000000000000000":"0":"ffff0000000000000000":"0" + +mbedtls_mpi_core_mla #83: 0x0 + 0x10000000000000000 * 0x10000 = (0x100000000000000000000, carry 0x0)/(0x100000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"10000000000000000":"10000":"100000000000000000000":"0":"100000000000000000000":"0" + +mbedtls_mpi_core_mla #84: 0x0 + 0x10000000000000000 * 0xffffffff = (0xffffffff0000000000000000, carry 0x0)/(0xffffffff0000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"10000000000000000":"ffffffff":"ffffffff0000000000000000":"0":"ffffffff0000000000000000":"0" + +mbedtls_mpi_core_mla #85: 0x0 + 0x10000000000000000 * 0x100000000 = (0x0, carry 0x1)/(0x1000000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"10000000000000000":"100000000":"0":"1":"1000000000000000000000000":"0" + +mbedtls_mpi_core_mla #86: 0x0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000":"0" + +mbedtls_mpi_core_mla #87: 0x0 + 0x10000000000000000 * 0x8000000000000000 = (0x0, carry 0x80000000)/(0x80000000000000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"10000000000000000":"8000000000000000":"0":"80000000":"80000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #88: 0x0 + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000000, carry 0xffffffff)/(0xfffffffffffffffe0000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"10000000000000000":"fffffffffffffffe":"fffffffe0000000000000000":"ffffffff":"fffffffffffffffe0000000000000000":"0" + +mbedtls_mpi_core_mla #89: 0x0 + 0x1234567890abcdef0 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #90: 0x0 + 0x1234567890abcdef0 * 0x3 = (0x369d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"3":"369d0369b20369cd0":"0":"369d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #91: 0x0 + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a7653220, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"fe":"120fedcb9f8a7653220":"0":"120fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #92: 0x0 + 0x1234567890abcdef0 * 0xff = (0x12222222181b2221110, carry 0x0)/(0x12222222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"ff":"12222222181b2221110":"0":"12222222181b2221110":"0" + +mbedtls_mpi_core_mla #93: 0x0 + 0x1234567890abcdef0 * 0xffff = (0x123444443a333d4332110, carry 0x0)/(0x123444443a333d4332110, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"ffff":"123444443a333d4332110":"0":"123444443a333d4332110":"0" + +mbedtls_mpi_core_mla #94: 0x0 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdef00000, carry 0x0)/(0x1234567890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"10000":"1234567890abcdef00000":"0":"1234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #95: 0x0 + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777766f5432110, carry 0x1)/(0x123456787e7777766f5432110, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"ffffffff":"23456787e7777766f5432110":"1":"123456787e7777766f5432110":"0" + +mbedtls_mpi_core_mla #96: 0x0 + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef000000000, carry 0x1)/(0x1234567890abcdef000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"100000000":"234567890abcdef000000000":"1":"1234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #97: 0x0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708abaf5ba910, carry 0x91107edb)/(0x91107edbd82bde76f67708abaf5ba910, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ba910":"91107edb":"91107edbd82bde76f67708abaf5ba910":"0" + +mbedtls_mpi_core_mla #98: 0x0 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f780000000000000000, carry 0x91a2b3c4)/(0x91a2b3c4855e6f780000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"8000000000000000":"855e6f780000000000000000":"91a2b3c4":"91a2b3c4855e6f780000000000000000":"0" + +mbedtls_mpi_core_mla #99: 0x0 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530edea864220, carry 0x123456789)/(0x234567890abcdeedb97530edea864220, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea864220":"123456789":"234567890abcdeedb97530edea864220":"1" + +mbedtls_mpi_core_mla #100: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #101: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfcfcfcfcfa, carry 0x2)/(0xfffffffffffffffffcfcfcfcfcfcfcfa, carry 0x2) +mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfcfcfa":"2":"fffffffffffffffffcfcfcfcfcfcfcfa":"2" + +mbedtls_mpi_core_mla #102: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010101010004, carry 0xfd)/(0xffffffffffffffff0101010101010004, carry 0xfd) +mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101010004":"fd":"ffffffffffffffff0101010101010004":"fd" + +mbedtls_mpi_core_mla #103: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfffffffffffffffeffffffffffffff02, carry 0xfe)/(0xfffffffffffffffeffffffffffffff02, carry 0xfe) +mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffeffffffffffffff02":"fe":"fffffffffffffffeffffffffffffff02":"fe" + +mbedtls_mpi_core_mla #104: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffefeffffffffffff0102, carry 0xfffe)/(0xfffffffffffffefeffffffffffff0102, carry 0xfffe) +mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefeffffffffffff0102":"fffe":"fffffffffffffefeffffffffffff0102":"fffe" + +mbedtls_mpi_core_mla #105: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefefefe0000, carry 0xffff)/(0xfffffffffffffefefefefefefefe0000, carry 0xffff) +mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefe0000":"ffff":"fffffffffffffefefefefefefefe0000":"ffff" + +mbedtls_mpi_core_mla #106: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefefeffffffff01010102, carry 0xfffffffe)/(0xfffffffffefefefeffffffff01010102, carry 0xfffffffe) +mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01010102":"fffffffe":"fffffffffefefefeffffffff01010102":"fffffffe" + +mbedtls_mpi_core_mla #107: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefe00000000, carry 0xffffffff)/(0xfffffffffefefefefefefefe00000000, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000000":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff" + +mbedtls_mpi_core_mla #108: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840383028202, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840383028202, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383028202":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #109: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0000000000000000, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f0000000000000000, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000000000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #110: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020202020204, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020202020204, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202020204":"fffffffffffffffd":"fefefefefefefefe0202020202020204":"fffffffffffffffd" + +mbedtls_mpi_core_mla #111: 0x0 + 0x100000000000000000000000000000000 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #112: 0x0 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000000000000000000000, carry 0x0)/(0x300000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"3":"300000000000000000000000000000000":"0":"300000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #113: 0x0 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000000000000000000000, carry 0x0)/(0xfe00000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"fe":"fe00000000000000000000000000000000":"0":"fe00000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #114: 0x0 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000000000000000000000, carry 0x0)/(0xff00000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"ff":"ff00000000000000000000000000000000":"0":"ff00000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #115: 0x0 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000000000000000000000, carry 0x0)/(0xffff00000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000000000000":"0":"ffff00000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #116: 0x0 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000000000000000000000, carry 0x0)/(0x1000000000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"10000":"1000000000000000000000000000000000000":"0":"1000000000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #117: 0x0 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000000000000000000000, carry 0x0)/(0xffffffff00000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000000000000":"0":"ffffffff00000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #118: 0x0 + 0x100000000000000000000000000000000 * 0x100000000 = (0x0, carry 0x1)/(0x10000000000000000000000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"100000000":"0":"1":"10000000000000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #119: 0x0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000000000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #120: 0x0 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x0, carry 0x80000000)/(0x800000000000000000000000000000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"8000000000000000":"0":"80000000":"800000000000000000000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #121: 0x0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000000000000000000000, carry 0xffffffff)/(0xfffffffffffffffe00000000000000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000000000000":"ffffffff":"fffffffffffffffe00000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #122: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #123: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #124: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a7653220, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #125: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221110":"0" + +mbedtls_mpi_core_mla #126: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d4332110, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d4332110":"0" + +mbedtls_mpi_core_mla #127: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #128: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777766f5432110, carry 0x12)/(0x123456787e7777767077777887e7777766f5432110, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f5432110":"12":"123456787e7777767077777887e7777766f5432110":"0" + +mbedtls_mpi_core_mla #129: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef000000000, carry 0x12)/(0x1234567890abcdef01234567890abcdef000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef000000000":"12":"1234567890abcdef01234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #130: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708abaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708abaf5ba910, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ba910":"9" + +mbedtls_mpi_core_mla #131: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f780000000000000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f780000000000000000, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"9" + +mbedtls_mpi_core_mla #132: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530edea864220, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530edea864220, carry 0x12) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea864220":"1234567890":"34567890abcdeedcba987667b32100edb97530edea864220":"12" + +mbedtls_mpi_core_mla #133: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #134: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 0x2)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 0x2) +mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"2":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"2" + +mbedtls_mpi_core_mla #135: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0xfd)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0xfd) +mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fd":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fd" + +mbedtls_mpi_core_mla #136: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0xfe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0xfe) +mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe" + +mbedtls_mpi_core_mla #137: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0xfffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0xfffe) +mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"fffe" + +mbedtls_mpi_core_mla #138: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0xffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0xffff) +mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff" + +mbedtls_mpi_core_mla #139: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0xfffffffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0xfffffffe) +mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"fffffffe" + +mbedtls_mpi_core_mla #140: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff" + +mbedtls_mpi_core_mla #141: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #142: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #143: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"fffffffffffffffd" + +mbedtls_mpi_core_mla #144: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #145: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #146: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #147: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0" + +mbedtls_mpi_core_mla #148: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110":"0" + +mbedtls_mpi_core_mla #149: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #150: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110, carry 0x0) +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110":"0" + +mbedtls_mpi_core_mla #151: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #152: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910, carry 0x911) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910":"911" + +mbedtls_mpi_core_mla #153: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000, carry 0x91a) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"91a" + +mbedtls_mpi_core_mla #154: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220, carry 0x1234) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220":"1234" + +mbedtls_mpi_core_mla #155: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) +mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #156: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381, carry 0x0) +mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381":"0" + +mbedtls_mpi_core_mla #157: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa, carry 0x0) +mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa":"0" + +mbedtls_mpi_core_mla #158: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0) +mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0" + +mbedtls_mpi_core_mla #159: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5, carry 0x0) +mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5":"0" + +mbedtls_mpi_core_mla #160: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000, carry 0x0) +mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0" + +mbedtls_mpi_core_mla #161: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5, carry 0x4) +mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5":"4" + +mbedtls_mpi_core_mla #162: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000, carry 0x4) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4" + +mbedtls_mpi_core_mla #163: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955, carry 0x26d473ca9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955":"26d473ca9" + +mbedtls_mpi_core_mla #164: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000, carry 0x26fb9683d) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000":"26fb9683d" + +mbedtls_mpi_core_mla #165: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa, carry 0x4df72d07b) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b" + +mbedtls_mpi_core_mla #166: 0x1 + 0x0 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"0":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #167: 0x1 + 0x0 * 0x3 = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"0":"3":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #168: 0x1 + 0x0 * 0xfe = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"0":"fe":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #169: 0x1 + 0x0 * 0xff = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"0":"ff":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #170: 0x1 + 0x0 * 0xffff = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"0":"ffff":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #171: 0x1 + 0x0 * 0x10000 = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"0":"10000":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #172: 0x1 + 0x0 * 0xffffffff = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"0":"ffffffff":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #173: 0x1 + 0x0 * 0x100000000 = (0x1, carry 0x0)/(0x1, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"0":"100000000":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #174: 0x1 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x1, carry 0x0)/(0x1, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"0":"7f7f7f7f7f7f7f7f":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #175: 0x1 + 0x0 * 0x8000000000000000 = (0x1, carry 0x0)/(0x1, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"0":"8000000000000000":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #176: 0x1 + 0x0 * 0xfffffffffffffffe = (0x1, carry 0x0)/(0x1, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"0":"fffffffffffffffe":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #177: 0x1 + 0x1 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"1":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #178: 0x1 + 0x1 * 0x3 = (0x4, carry 0x0)/(0x4, carry 0x0) +mbedtls_mpi_core_mla:"1":"1":"3":"4":"0":"4":"0" + +mbedtls_mpi_core_mla #179: 0x1 + 0x1 * 0xfe = (0xff, carry 0x0)/(0xff, carry 0x0) +mbedtls_mpi_core_mla:"1":"1":"fe":"ff":"0":"ff":"0" + +mbedtls_mpi_core_mla #180: 0x1 + 0x1 * 0xff = (0x100, carry 0x0)/(0x100, carry 0x0) +mbedtls_mpi_core_mla:"1":"1":"ff":"100":"0":"100":"0" + +mbedtls_mpi_core_mla #181: 0x1 + 0x1 * 0xffff = (0x10000, carry 0x0)/(0x10000, carry 0x0) +mbedtls_mpi_core_mla:"1":"1":"ffff":"10000":"0":"10000":"0" + +mbedtls_mpi_core_mla #182: 0x1 + 0x1 * 0x10000 = (0x10001, carry 0x0)/(0x10001, carry 0x0) +mbedtls_mpi_core_mla:"1":"1":"10000":"10001":"0":"10001":"0" + +mbedtls_mpi_core_mla #183: 0x1 + 0x1 * 0xffffffff = (0x0, carry 0x1)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"1":"1":"ffffffff":"0":"1":"100000000":"0" + +mbedtls_mpi_core_mla #184: 0x1 + 0x1 * 0x100000000 = (0x1, carry 0x1)/(0x100000001, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"1":"100000000":"1":"1":"100000001":"0" + +mbedtls_mpi_core_mla #185: 0x1 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f80, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f80, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"1":"7f7f7f7f7f7f7f7f":"7f7f7f80":"7f7f7f7f":"7f7f7f7f7f7f7f80":"0" + +mbedtls_mpi_core_mla #186: 0x1 + 0x1 * 0x8000000000000000 = (0x1, carry 0x80000000)/(0x8000000000000001, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"1":"8000000000000000":"1":"80000000":"8000000000000001":"0" + +mbedtls_mpi_core_mla #187: 0x1 + 0x1 * 0xfffffffffffffffe = (0xffffffff, carry 0xffffffff)/(0xffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"1":"fffffffffffffffe":"ffffffff":"ffffffff":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #188: 0x1 + 0xfffe * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"fffe":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #189: 0x1 + 0xfffe * 0x3 = (0x2fffb, carry 0x0)/(0x2fffb, carry 0x0) +mbedtls_mpi_core_mla:"1":"fffe":"3":"2fffb":"0":"2fffb":"0" + +mbedtls_mpi_core_mla #190: 0x1 + 0xfffe * 0xfe = (0xfdfe05, carry 0x0)/(0xfdfe05, carry 0x0) +mbedtls_mpi_core_mla:"1":"fffe":"fe":"fdfe05":"0":"fdfe05":"0" + +mbedtls_mpi_core_mla #191: 0x1 + 0xfffe * 0xff = (0xfefe03, carry 0x0)/(0xfefe03, carry 0x0) +mbedtls_mpi_core_mla:"1":"fffe":"ff":"fefe03":"0":"fefe03":"0" + +mbedtls_mpi_core_mla #192: 0x1 + 0xfffe * 0xffff = (0xfffd0003, carry 0x0)/(0xfffd0003, carry 0x0) +mbedtls_mpi_core_mla:"1":"fffe":"ffff":"fffd0003":"0":"fffd0003":"0" + +mbedtls_mpi_core_mla #193: 0x1 + 0xfffe * 0x10000 = (0xfffe0001, carry 0x0)/(0xfffe0001, carry 0x0) +mbedtls_mpi_core_mla:"1":"fffe":"10000":"fffe0001":"0":"fffe0001":"0" + +mbedtls_mpi_core_mla #194: 0x1 + 0xfffe * 0xffffffff = (0xffff0003, carry 0xfffd)/(0xfffdffff0003, carry 0x0) +mbedtls_mpi_core_mla:"1":"fffe":"ffffffff":"ffff0003":"fffd":"fffdffff0003":"0" + +mbedtls_mpi_core_mla #195: 0x1 + 0xfffe * 0x100000000 = (0x1, carry 0xfffe)/(0xfffe00000001, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"fffe":"100000000":"1":"fffe":"fffe00000001":"0" + +mbedtls_mpi_core_mla #196: 0x1 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80800103, carry 0x7f7e80808080)/(0x8080808080800103, carry 0x7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"fffe":"7f7f7f7f7f7f7f7f":"80800103":"7f7e80808080":"8080808080800103":"7f7e" + +mbedtls_mpi_core_mla #197: 0x1 + 0xfffe * 0x8000000000000000 = (0x1, carry 0x7fff00000000)/(0x1, carry 0x7fff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"fffe":"8000000000000000":"1":"7fff00000000":"1":"7fff" + +mbedtls_mpi_core_mla #198: 0x1 + 0xfffe * 0xfffffffffffffffe = (0xfffe0005, carry 0xfffdffffffff)/(0xfffffffffffe0005, carry 0xfffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"fffe":"fffffffffffffffe":"fffe0005":"fffdffffffff":"fffffffffffe0005":"fffd" + +mbedtls_mpi_core_mla #199: 0x1 + 0xffffffff * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"ffffffff":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #200: 0x1 + 0xffffffff * 0x3 = (0xfffffffe, carry 0x2)/(0x2fffffffe, carry 0x0) +mbedtls_mpi_core_mla:"1":"ffffffff":"3":"fffffffe":"2":"2fffffffe":"0" + +mbedtls_mpi_core_mla #201: 0x1 + 0xffffffff * 0xfe = (0xffffff03, carry 0xfd)/(0xfdffffff03, carry 0x0) +mbedtls_mpi_core_mla:"1":"ffffffff":"fe":"ffffff03":"fd":"fdffffff03":"0" + +mbedtls_mpi_core_mla #202: 0x1 + 0xffffffff * 0xff = (0xffffff02, carry 0xfe)/(0xfeffffff02, carry 0x0) +mbedtls_mpi_core_mla:"1":"ffffffff":"ff":"ffffff02":"fe":"feffffff02":"0" + +mbedtls_mpi_core_mla #203: 0x1 + 0xffffffff * 0xffff = (0xffff0002, carry 0xfffe)/(0xfffeffff0002, carry 0x0) +mbedtls_mpi_core_mla:"1":"ffffffff":"ffff":"ffff0002":"fffe":"fffeffff0002":"0" + +mbedtls_mpi_core_mla #204: 0x1 + 0xffffffff * 0x10000 = (0xffff0001, carry 0xffff)/(0xffffffff0001, carry 0x0) +mbedtls_mpi_core_mla:"1":"ffffffff":"10000":"ffff0001":"ffff":"ffffffff0001":"0" + +mbedtls_mpi_core_mla #205: 0x1 + 0xffffffff * 0xffffffff = (0x2, carry 0xfffffffe)/(0xfffffffe00000002, carry 0x0) +mbedtls_mpi_core_mla:"1":"ffffffff":"ffffffff":"2":"fffffffe":"fffffffe00000002":"0" + +mbedtls_mpi_core_mla #206: 0x1 + 0xffffffff * 0x100000000 = (0x1, carry 0xffffffff)/(0xffffffff00000001, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"ffffffff":"100000000":"1":"ffffffff":"ffffffff00000001":"0" + +mbedtls_mpi_core_mla #207: 0x1 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x80808082, carry 0x7f7f7f7effffffff)/(0xffffffff80808082, carry 0x7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"ffffffff":"7f7f7f7f7f7f7f7f":"80808082":"7f7f7f7effffffff":"ffffffff80808082":"7f7f7f7e" + +mbedtls_mpi_core_mla #208: 0x1 + 0xffffffff * 0x8000000000000000 = (0x1, carry 0x7fffffff80000000)/(0x8000000000000001, carry 0x7fffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"ffffffff":"8000000000000000":"1":"7fffffff80000000":"8000000000000001":"7fffffff" + +mbedtls_mpi_core_mla #209: 0x1 + 0xffffffff * 0xfffffffffffffffe = (0x3, carry 0xfffffffefffffffe)/(0xfffffffe00000003, carry 0xfffffffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"ffffffff":"fffffffffffffffe":"3":"fffffffefffffffe":"fffffffe00000003":"fffffffe" + +mbedtls_mpi_core_mla #210: 0x1 + 0x100000000 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"100000000":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #211: 0x1 + 0x100000000 * 0x3 = (0x300000001, carry 0x0)/(0x300000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"100000000":"3":"300000001":"0":"300000001":"0" + +mbedtls_mpi_core_mla #212: 0x1 + 0x100000000 * 0xfe = (0xfe00000001, carry 0x0)/(0xfe00000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"100000000":"fe":"fe00000001":"0":"fe00000001":"0" + +mbedtls_mpi_core_mla #213: 0x1 + 0x100000000 * 0xff = (0xff00000001, carry 0x0)/(0xff00000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"100000000":"ff":"ff00000001":"0":"ff00000001":"0" + +mbedtls_mpi_core_mla #214: 0x1 + 0x100000000 * 0xffff = (0xffff00000001, carry 0x0)/(0xffff00000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"100000000":"ffff":"ffff00000001":"0":"ffff00000001":"0" + +mbedtls_mpi_core_mla #215: 0x1 + 0x100000000 * 0x10000 = (0x1000000000001, carry 0x0)/(0x1000000000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"100000000":"10000":"1000000000001":"0":"1000000000001":"0" + +mbedtls_mpi_core_mla #216: 0x1 + 0x100000000 * 0xffffffff = (0xffffffff00000001, carry 0x0)/(0xffffffff00000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"100000000":"ffffffff":"ffffffff00000001":"0":"ffffffff00000001":"0" + +mbedtls_mpi_core_mla #217: 0x1 + 0x100000000 * 0x100000000 = (0x1, carry 0x1)/(0x1, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"100000000":"100000000":"1":"1":"1":"1" + +mbedtls_mpi_core_mla #218: 0x1 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000001, carry 0x7f7f7f7f)/(0x7f7f7f7f00000001, carry 0x7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000001":"7f7f7f7f":"7f7f7f7f00000001":"7f7f7f7f" + +mbedtls_mpi_core_mla #219: 0x1 + 0x100000000 * 0x8000000000000000 = (0x1, carry 0x80000000)/(0x1, carry 0x80000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"100000000":"8000000000000000":"1":"80000000":"1":"80000000" + +mbedtls_mpi_core_mla #220: 0x1 + 0x100000000 * 0xfffffffffffffffe = (0xfffffffe00000001, carry 0xffffffff)/(0xfffffffe00000001, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"100000000":"fffffffffffffffe":"fffffffe00000001":"ffffffff":"fffffffe00000001":"ffffffff" + +mbedtls_mpi_core_mla #221: 0x1 + 0x20000000000000 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"20000000000000":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #222: 0x1 + 0x20000000000000 * 0x3 = (0x60000000000001, carry 0x0)/(0x60000000000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"20000000000000":"3":"60000000000001":"0":"60000000000001":"0" + +mbedtls_mpi_core_mla #223: 0x1 + 0x20000000000000 * 0xfe = (0x1fc0000000000001, carry 0x0)/(0x1fc0000000000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"20000000000000":"fe":"1fc0000000000001":"0":"1fc0000000000001":"0" + +mbedtls_mpi_core_mla #224: 0x1 + 0x20000000000000 * 0xff = (0x1fe0000000000001, carry 0x0)/(0x1fe0000000000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"20000000000000":"ff":"1fe0000000000001":"0":"1fe0000000000001":"0" + +mbedtls_mpi_core_mla #225: 0x1 + 0x20000000000000 * 0xffff = (0xffe0000000000001, carry 0x1f)/(0xffe0000000000001, carry 0x1f) +mbedtls_mpi_core_mla:"1":"20000000000000":"ffff":"ffe0000000000001":"1f":"ffe0000000000001":"1f" + +mbedtls_mpi_core_mla #226: 0x1 + 0x20000000000000 * 0x10000 = (0x1, carry 0x20)/(0x1, carry 0x20) +mbedtls_mpi_core_mla:"1":"20000000000000":"10000":"1":"20":"1":"20" + +mbedtls_mpi_core_mla #227: 0x1 + 0x20000000000000 * 0xffffffff = (0xffe0000000000001, carry 0x1fffff)/(0xffe0000000000001, carry 0x1fffff) +mbedtls_mpi_core_mla:"1":"20000000000000":"ffffffff":"ffe0000000000001":"1fffff":"ffe0000000000001":"1fffff" + +mbedtls_mpi_core_mla #228: 0x1 + 0x20000000000000 * 0x100000000 = (0x1, carry 0x200000)/(0x1, carry 0x200000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"20000000000000":"100000000":"1":"200000":"1":"200000" + +mbedtls_mpi_core_mla #229: 0x1 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe0000000000001, carry 0xfefefefefefef)/(0xefe0000000000001, carry 0xfefefefefefef) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000000000001":"fefefefefefef":"efe0000000000001":"fefefefefefef" + +mbedtls_mpi_core_mla #230: 0x1 + 0x20000000000000 * 0x8000000000000000 = (0x1, carry 0x10000000000000)/(0x1, carry 0x10000000000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"20000000000000":"8000000000000000":"1":"10000000000000":"1":"10000000000000" + +mbedtls_mpi_core_mla #231: 0x1 + 0x20000000000000 * 0xfffffffffffffffe = (0xffc0000000000001, carry 0x1fffffffffffff)/(0xffc0000000000001, carry 0x1fffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"20000000000000":"fffffffffffffffe":"ffc0000000000001":"1fffffffffffff":"ffc0000000000001":"1fffffffffffff" + +mbedtls_mpi_core_mla #232: 0x1 + 0xffffffffffffffff * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #233: 0x1 + 0xffffffffffffffff * 0x3 = (0xfffffffffffffffe, carry 0x2)/(0xfffffffffffffffe, carry 0x2) +mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"3":"fffffffffffffffe":"2":"fffffffffffffffe":"2" + +mbedtls_mpi_core_mla #234: 0x1 + 0xffffffffffffffff * 0xfe = (0xffffffffffffff03, carry 0xfd)/(0xffffffffffffff03, carry 0xfd) +mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"fe":"ffffffffffffff03":"fd":"ffffffffffffff03":"fd" + +mbedtls_mpi_core_mla #235: 0x1 + 0xffffffffffffffff * 0xff = (0xffffffffffffff02, carry 0xfe)/(0xffffffffffffff02, carry 0xfe) +mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"ff":"ffffffffffffff02":"fe":"ffffffffffffff02":"fe" + +mbedtls_mpi_core_mla #236: 0x1 + 0xffffffffffffffff * 0xffff = (0xffffffffffff0002, carry 0xfffe)/(0xffffffffffff0002, carry 0xfffe) +mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"ffff":"ffffffffffff0002":"fffe":"ffffffffffff0002":"fffe" + +mbedtls_mpi_core_mla #237: 0x1 + 0xffffffffffffffff * 0x10000 = (0xffffffffffff0001, carry 0xffff)/(0xffffffffffff0001, carry 0xffff) +mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"10000":"ffffffffffff0001":"ffff":"ffffffffffff0001":"ffff" + +mbedtls_mpi_core_mla #238: 0x1 + 0xffffffffffffffff * 0xffffffff = (0xffffffff00000002, carry 0xfffffffe)/(0xffffffff00000002, carry 0xfffffffe) +mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"ffffffff":"ffffffff00000002":"fffffffe":"ffffffff00000002":"fffffffe" + +mbedtls_mpi_core_mla #239: 0x1 + 0xffffffffffffffff * 0x100000000 = (0xffffffff00000001, carry 0xffffffff)/(0xffffffff00000001, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"100000000":"ffffffff00000001":"ffffffff":"ffffffff00000001":"ffffffff" + +mbedtls_mpi_core_mla #240: 0x1 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808082, carry 0x7f7f7f7f7f7f7f7e)/(0x8080808080808082, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808082":"7f7f7f7f7f7f7f7e":"8080808080808082":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #241: 0x1 + 0xffffffffffffffff * 0x8000000000000000 = (0x8000000000000001, carry 0x7fffffffffffffff)/(0x8000000000000001, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"8000000000000000":"8000000000000001":"7fffffffffffffff":"8000000000000001":"7fffffffffffffff" + +mbedtls_mpi_core_mla #242: 0x1 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x3, carry 0xfffffffffffffffd)/(0x3, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"fffffffffffffffe":"3":"fffffffffffffffd":"3":"fffffffffffffffd" + +mbedtls_mpi_core_mla #243: 0x1 + 0x10000000000000000 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"10000000000000000":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #244: 0x1 + 0x10000000000000000 * 0x3 = (0x30000000000000001, carry 0x0)/(0x30000000000000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"10000000000000000":"3":"30000000000000001":"0":"30000000000000001":"0" + +mbedtls_mpi_core_mla #245: 0x1 + 0x10000000000000000 * 0xfe = (0xfe0000000000000001, carry 0x0)/(0xfe0000000000000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"10000000000000000":"fe":"fe0000000000000001":"0":"fe0000000000000001":"0" + +mbedtls_mpi_core_mla #246: 0x1 + 0x10000000000000000 * 0xff = (0xff0000000000000001, carry 0x0)/(0xff0000000000000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"10000000000000000":"ff":"ff0000000000000001":"0":"ff0000000000000001":"0" + +mbedtls_mpi_core_mla #247: 0x1 + 0x10000000000000000 * 0xffff = (0xffff0000000000000001, carry 0x0)/(0xffff0000000000000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"10000000000000000":"ffff":"ffff0000000000000001":"0":"ffff0000000000000001":"0" + +mbedtls_mpi_core_mla #248: 0x1 + 0x10000000000000000 * 0x10000 = (0x100000000000000000001, carry 0x0)/(0x100000000000000000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"10000000000000000":"10000":"100000000000000000001":"0":"100000000000000000001":"0" + +mbedtls_mpi_core_mla #249: 0x1 + 0x10000000000000000 * 0xffffffff = (0xffffffff0000000000000001, carry 0x0)/(0xffffffff0000000000000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"10000000000000000":"ffffffff":"ffffffff0000000000000001":"0":"ffffffff0000000000000001":"0" + +mbedtls_mpi_core_mla #250: 0x1 + 0x10000000000000000 * 0x100000000 = (0x1, carry 0x1)/(0x1000000000000000000000001, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"10000000000000000":"100000000":"1":"1":"1000000000000000000000001":"0" + +mbedtls_mpi_core_mla #251: 0x1 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000001, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000001, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000001":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000001":"0" + +mbedtls_mpi_core_mla #252: 0x1 + 0x10000000000000000 * 0x8000000000000000 = (0x1, carry 0x80000000)/(0x80000000000000000000000000000001, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"10000000000000000":"8000000000000000":"1":"80000000":"80000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #253: 0x1 + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000001, carry 0xffffffff)/(0xfffffffffffffffe0000000000000001, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"10000000000000000":"fffffffffffffffe":"fffffffe0000000000000001":"ffffffff":"fffffffffffffffe0000000000000001":"0" + +mbedtls_mpi_core_mla #254: 0x1 + 0x1234567890abcdef0 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #255: 0x1 + 0x1234567890abcdef0 * 0x3 = (0x369d0369b20369cd1, carry 0x0)/(0x369d0369b20369cd1, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"3":"369d0369b20369cd1":"0":"369d0369b20369cd1":"0" + +mbedtls_mpi_core_mla #256: 0x1 + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f8a7653221, carry 0x0)/(0x120fedcb9f8a7653221, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"fe":"120fedcb9f8a7653221":"0":"120fedcb9f8a7653221":"0" + +mbedtls_mpi_core_mla #257: 0x1 + 0x1234567890abcdef0 * 0xff = (0x12222222181b2221111, carry 0x0)/(0x12222222181b2221111, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"ff":"12222222181b2221111":"0":"12222222181b2221111":"0" + +mbedtls_mpi_core_mla #258: 0x1 + 0x1234567890abcdef0 * 0xffff = (0x123444443a333d4332111, carry 0x0)/(0x123444443a333d4332111, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"ffff":"123444443a333d4332111":"0":"123444443a333d4332111":"0" + +mbedtls_mpi_core_mla #259: 0x1 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdef00001, carry 0x0)/(0x1234567890abcdef00001, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"10000":"1234567890abcdef00001":"0":"1234567890abcdef00001":"0" + +mbedtls_mpi_core_mla #260: 0x1 + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777766f5432111, carry 0x1)/(0x123456787e7777766f5432111, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"ffffffff":"23456787e7777766f5432111":"1":"123456787e7777766f5432111":"0" + +mbedtls_mpi_core_mla #261: 0x1 + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef000000001, carry 0x1)/(0x1234567890abcdef000000001, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"100000000":"234567890abcdef000000001":"1":"1234567890abcdef000000001":"0" + +mbedtls_mpi_core_mla #262: 0x1 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708abaf5ba911, carry 0x91107edb)/(0x91107edbd82bde76f67708abaf5ba911, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ba911":"91107edb":"91107edbd82bde76f67708abaf5ba911":"0" + +mbedtls_mpi_core_mla #263: 0x1 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f780000000000000001, carry 0x91a2b3c4)/(0x91a2b3c4855e6f780000000000000001, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"8000000000000000":"855e6f780000000000000001":"91a2b3c4":"91a2b3c4855e6f780000000000000001":"0" + +mbedtls_mpi_core_mla #264: 0x1 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530edea864221, carry 0x123456789)/(0x234567890abcdeedb97530edea864221, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea864221":"123456789":"234567890abcdeedb97530edea864221":"1" + +mbedtls_mpi_core_mla #265: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #266: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfcfcfcfcfb, carry 0x2)/(0xfffffffffffffffffcfcfcfcfcfcfcfb, carry 0x2) +mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfcfcfb":"2":"fffffffffffffffffcfcfcfcfcfcfcfb":"2" + +mbedtls_mpi_core_mla #267: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010101010005, carry 0xfd)/(0xffffffffffffffff0101010101010005, carry 0xfd) +mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101010005":"fd":"ffffffffffffffff0101010101010005":"fd" + +mbedtls_mpi_core_mla #268: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfffffffffffffffeffffffffffffff03, carry 0xfe)/(0xfffffffffffffffeffffffffffffff03, carry 0xfe) +mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffeffffffffffffff03":"fe":"fffffffffffffffeffffffffffffff03":"fe" + +mbedtls_mpi_core_mla #269: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffefeffffffffffff0103, carry 0xfffe)/(0xfffffffffffffefeffffffffffff0103, carry 0xfffe) +mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefeffffffffffff0103":"fffe":"fffffffffffffefeffffffffffff0103":"fffe" + +mbedtls_mpi_core_mla #270: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefefefe0001, carry 0xffff)/(0xfffffffffffffefefefefefefefe0001, carry 0xffff) +mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefe0001":"ffff":"fffffffffffffefefefefefefefe0001":"ffff" + +mbedtls_mpi_core_mla #271: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefefeffffffff01010103, carry 0xfffffffe)/(0xfffffffffefefefeffffffff01010103, carry 0xfffffffe) +mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01010103":"fffffffe":"fffffffffefefefeffffffff01010103":"fffffffe" + +mbedtls_mpi_core_mla #272: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefe00000001, carry 0xffffffff)/(0xfffffffffefefefefefefefe00000001, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000001":"ffffffff":"fffffffffefefefefefefefe00000001":"ffffffff" + +mbedtls_mpi_core_mla #273: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840383028203, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840383028203, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383028203":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383028203":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #274: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0000000000000001, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f0000000000000001, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000001":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000000000001":"7fffffffffffffff" + +mbedtls_mpi_core_mla #275: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020202020205, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020202020205, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202020205":"fffffffffffffffd":"fefefefefefefefe0202020202020205":"fffffffffffffffd" + +mbedtls_mpi_core_mla #276: 0x1 + 0x100000000000000000000000000000000 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #277: 0x1 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000000000000000000001, carry 0x0)/(0x300000000000000000000000000000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"3":"300000000000000000000000000000001":"0":"300000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #278: 0x1 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000000000000000000001, carry 0x0)/(0xfe00000000000000000000000000000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"fe":"fe00000000000000000000000000000001":"0":"fe00000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #279: 0x1 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000000000000000000001, carry 0x0)/(0xff00000000000000000000000000000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"ff":"ff00000000000000000000000000000001":"0":"ff00000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #280: 0x1 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000000000000000000001, carry 0x0)/(0xffff00000000000000000000000000000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000000000001":"0":"ffff00000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #281: 0x1 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000000000000000000001, carry 0x0)/(0x1000000000000000000000000000000000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"10000":"1000000000000000000000000000000000001":"0":"1000000000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #282: 0x1 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000000000000000000001, carry 0x0)/(0xffffffff00000000000000000000000000000001, carry 0x0) +mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000000000001":"0":"ffffffff00000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #283: 0x1 + 0x100000000000000000000000000000000 * 0x100000000 = (0x1, carry 0x1)/(0x10000000000000000000000000000000000000001, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"100000000":"1":"1":"10000000000000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #284: 0x1 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000000000000000000001, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000000000000000000001, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000000000001":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #285: 0x1 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x1, carry 0x80000000)/(0x800000000000000000000000000000000000000000000001, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"8000000000000000":"1":"80000000":"800000000000000000000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #286: 0x1 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000000000000000000001, carry 0xffffffff)/(0xfffffffffffffffe00000000000000000000000000000001, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000000000001":"ffffffff":"fffffffffffffffe00000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #287: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #288: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd1, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd1, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd1":"0":"369d0369b20369cd0369d0369b20369cd1":"0" + +mbedtls_mpi_core_mla #289: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a7653221, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a7653221, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653221":"0":"120fedcb9f8a76532320fedcb9f8a7653221":"0" + +mbedtls_mpi_core_mla #290: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221111, carry 0x0)/(0x12222222181b2221122222222181b2221111, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221111":"0":"12222222181b2221122222222181b2221111":"0" + +mbedtls_mpi_core_mla #291: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d4332111, carry 0x0)/(0x123444443a333d433334444443a333d4332111, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4332111":"0":"123444443a333d433334444443a333d4332111":"0" + +mbedtls_mpi_core_mla #292: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef00001, carry 0x0)/(0x1234567890abcdef01234567890abcdef00001, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef00001":"0":"1234567890abcdef01234567890abcdef00001":"0" + +mbedtls_mpi_core_mla #293: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777766f5432111, carry 0x12)/(0x123456787e7777767077777887e7777766f5432111, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f5432111":"12":"123456787e7777767077777887e7777766f5432111":"0" + +mbedtls_mpi_core_mla #294: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef000000001, carry 0x12)/(0x1234567890abcdef01234567890abcdef000000001, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef000000001":"12":"1234567890abcdef01234567890abcdef000000001":"0" + +mbedtls_mpi_core_mla #295: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708abaf5ba911, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708abaf5ba911, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ba911":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ba911":"9" + +mbedtls_mpi_core_mla #296: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f780000000000000001, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f780000000000000001, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000000000001":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"9" + +mbedtls_mpi_core_mla #297: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530edea864221, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530edea864221, carry 0x12) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea864221":"1234567890":"34567890abcdeedcba987667b32100edb97530edea864221":"12" + +mbedtls_mpi_core_mla #298: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #299: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0x2)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0x2) +mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2" + +mbedtls_mpi_core_mla #300: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03, carry 0xfd)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03, carry 0xfd) +mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03":"fd":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03":"fd" + +mbedtls_mpi_core_mla #301: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0xfe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0xfe) +mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fe" + +mbedtls_mpi_core_mla #302: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002, carry 0xfffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002, carry 0xfffe) +mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"fffe" + +mbedtls_mpi_core_mla #303: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0xffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0xffff) +mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffff" + +mbedtls_mpi_core_mla #304: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002, carry 0xfffffffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002, carry 0xfffffffe) +mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"fffffffe" + +mbedtls_mpi_core_mla #305: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffff" + +mbedtls_mpi_core_mla #306: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #307: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001":"7fffffffffffffff" + +mbedtls_mpi_core_mla #308: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003":"fffffffffffffffd" + +mbedtls_mpi_core_mla #309: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #310: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1":"0" + +mbedtls_mpi_core_mla #311: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221":"0" + +mbedtls_mpi_core_mla #312: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221111, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221111, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221111":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221111":"0" + +mbedtls_mpi_core_mla #313: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111":"0" + +mbedtls_mpi_core_mla #314: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001":"0" + +mbedtls_mpi_core_mla #315: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111, carry 0x0) +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111":"0" + +mbedtls_mpi_core_mla #316: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001":"0" + +mbedtls_mpi_core_mla #317: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911, carry 0x911) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911":"911" + +mbedtls_mpi_core_mla #318: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001, carry 0x91a) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"91a" + +mbedtls_mpi_core_mla #319: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221, carry 0x1234) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221":"1234" + +mbedtls_mpi_core_mla #320: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) +mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #321: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382, carry 0x0) +mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382":"0" + +mbedtls_mpi_core_mla #322: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab, carry 0x0) +mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab":"0" + +mbedtls_mpi_core_mla #323: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6, carry 0x0) +mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6":"0" + +mbedtls_mpi_core_mla #324: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6, carry 0x0) +mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6":"0" + +mbedtls_mpi_core_mla #325: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001, carry 0x0) +mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001":"0" + +mbedtls_mpi_core_mla #326: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6, carry 0x4) +mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6":"4" + +mbedtls_mpi_core_mla #327: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001, carry 0x4) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001":"4" + +mbedtls_mpi_core_mla #328: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956, carry 0x26d473ca9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956":"26d473ca9" + +mbedtls_mpi_core_mla #329: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001, carry 0x26fb9683d) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001":"26fb9683d" + +mbedtls_mpi_core_mla #330: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab, carry 0x4df72d07b) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab":"4df72d07b" + +mbedtls_mpi_core_mla #331: 0xfffe + 0x0 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"0":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #332: 0xfffe + 0x0 * 0x3 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"0":"3":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #333: 0xfffe + 0x0 * 0xfe = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"0":"fe":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #334: 0xfffe + 0x0 * 0xff = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"0":"ff":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #335: 0xfffe + 0x0 * 0xffff = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"0":"ffff":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #336: 0xfffe + 0x0 * 0x10000 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"0":"10000":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #337: 0xfffe + 0x0 * 0xffffffff = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"0":"ffffffff":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #338: 0xfffe + 0x0 * 0x100000000 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"0":"100000000":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #339: 0xfffe + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"0":"7f7f7f7f7f7f7f7f":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #340: 0xfffe + 0x0 * 0x8000000000000000 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"0":"8000000000000000":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #341: 0xfffe + 0x0 * 0xfffffffffffffffe = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"0":"fffffffffffffffe":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #342: 0xfffe + 0x1 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #343: 0xfffe + 0x1 * 0x3 = (0x10001, carry 0x0)/(0x10001, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1":"3":"10001":"0":"10001":"0" + +mbedtls_mpi_core_mla #344: 0xfffe + 0x1 * 0xfe = (0x100fc, carry 0x0)/(0x100fc, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1":"fe":"100fc":"0":"100fc":"0" + +mbedtls_mpi_core_mla #345: 0xfffe + 0x1 * 0xff = (0x100fd, carry 0x0)/(0x100fd, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1":"ff":"100fd":"0":"100fd":"0" + +mbedtls_mpi_core_mla #346: 0xfffe + 0x1 * 0xffff = (0x1fffd, carry 0x0)/(0x1fffd, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1":"ffff":"1fffd":"0":"1fffd":"0" + +mbedtls_mpi_core_mla #347: 0xfffe + 0x1 * 0x10000 = (0x1fffe, carry 0x0)/(0x1fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1":"10000":"1fffe":"0":"1fffe":"0" + +mbedtls_mpi_core_mla #348: 0xfffe + 0x1 * 0xffffffff = (0xfffd, carry 0x1)/(0x10000fffd, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1":"ffffffff":"fffd":"1":"10000fffd":"0" + +mbedtls_mpi_core_mla #349: 0xfffe + 0x1 * 0x100000000 = (0xfffe, carry 0x1)/(0x10000fffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"1":"100000000":"fffe":"1":"10000fffe":"0" + +mbedtls_mpi_core_mla #350: 0xfffe + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f807f7d, carry 0x7f7f7f7f)/(0x7f7f7f7f7f807f7d, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"1":"7f7f7f7f7f7f7f7f":"7f807f7d":"7f7f7f7f":"7f7f7f7f7f807f7d":"0" + +mbedtls_mpi_core_mla #351: 0xfffe + 0x1 * 0x8000000000000000 = (0xfffe, carry 0x80000000)/(0x800000000000fffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"1":"8000000000000000":"fffe":"80000000":"800000000000fffe":"0" + +mbedtls_mpi_core_mla #352: 0xfffe + 0x1 * 0xfffffffffffffffe = (0xfffc, carry 0x100000000)/(0xfffc, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"1":"fffffffffffffffe":"fffc":"100000000":"fffc":"1" + +mbedtls_mpi_core_mla #353: 0xfffe + 0xfffe * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"fffe":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #354: 0xfffe + 0xfffe * 0x3 = (0x3fff8, carry 0x0)/(0x3fff8, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"fffe":"3":"3fff8":"0":"3fff8":"0" + +mbedtls_mpi_core_mla #355: 0xfffe + 0xfffe * 0xfe = (0xfefe02, carry 0x0)/(0xfefe02, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"fffe":"fe":"fefe02":"0":"fefe02":"0" + +mbedtls_mpi_core_mla #356: 0xfffe + 0xfffe * 0xff = (0xfffe00, carry 0x0)/(0xfffe00, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"fffe":"ff":"fffe00":"0":"fffe00":"0" + +mbedtls_mpi_core_mla #357: 0xfffe + 0xfffe * 0xffff = (0xfffe0000, carry 0x0)/(0xfffe0000, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"fffe":"ffff":"fffe0000":"0":"fffe0000":"0" + +mbedtls_mpi_core_mla #358: 0xfffe + 0xfffe * 0x10000 = (0xfffefffe, carry 0x0)/(0xfffefffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"fffe":"10000":"fffefffe":"0":"fffefffe":"0" + +mbedtls_mpi_core_mla #359: 0xfffe + 0xfffe * 0xffffffff = (0x0, carry 0xfffe)/(0xfffe00000000, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"fffe":"ffffffff":"0":"fffe":"fffe00000000":"0" + +mbedtls_mpi_core_mla #360: 0xfffe + 0xfffe * 0x100000000 = (0xfffe, carry 0xfffe)/(0xfffe0000fffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"fffe":"100000000":"fffe":"fffe":"fffe0000fffe":"0" + +mbedtls_mpi_core_mla #361: 0xfffe + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80810100, carry 0x7f7e80808080)/(0x8080808080810100, carry 0x7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"fffe":"7f7f7f7f7f7f7f7f":"80810100":"7f7e80808080":"8080808080810100":"7f7e" + +mbedtls_mpi_core_mla #362: 0xfffe + 0xfffe * 0x8000000000000000 = (0xfffe, carry 0x7fff00000000)/(0xfffe, carry 0x7fff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"fffe":"8000000000000000":"fffe":"7fff00000000":"fffe":"7fff" + +mbedtls_mpi_core_mla #363: 0xfffe + 0xfffe * 0xfffffffffffffffe = (0xffff0002, carry 0xfffdffffffff)/(0xffffffffffff0002, carry 0xfffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"fffe":"fffffffffffffffe":"ffff0002":"fffdffffffff":"ffffffffffff0002":"fffd" + +mbedtls_mpi_core_mla #364: 0xfffe + 0xffffffff * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"ffffffff":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #365: 0xfffe + 0xffffffff * 0x3 = (0xfffb, carry 0x3)/(0x30000fffb, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"ffffffff":"3":"fffb":"3":"30000fffb":"0" + +mbedtls_mpi_core_mla #366: 0xfffe + 0xffffffff * 0xfe = (0xff00, carry 0xfe)/(0xfe0000ff00, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"ffffffff":"fe":"ff00":"fe":"fe0000ff00":"0" + +mbedtls_mpi_core_mla #367: 0xfffe + 0xffffffff * 0xff = (0xfeff, carry 0xff)/(0xff0000feff, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"ffffffff":"ff":"feff":"ff":"ff0000feff":"0" + +mbedtls_mpi_core_mla #368: 0xfffe + 0xffffffff * 0xffff = (0xffffffff, carry 0xfffe)/(0xfffeffffffff, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"ffffffff":"ffff":"ffffffff":"fffe":"fffeffffffff":"0" + +mbedtls_mpi_core_mla #369: 0xfffe + 0xffffffff * 0x10000 = (0xfffffffe, carry 0xffff)/(0xfffffffffffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"ffffffff":"10000":"fffffffe":"ffff":"fffffffffffe":"0" + +mbedtls_mpi_core_mla #370: 0xfffe + 0xffffffff * 0xffffffff = (0xffff, carry 0xfffffffe)/(0xfffffffe0000ffff, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"ffffffff":"ffffffff":"ffff":"fffffffe":"fffffffe0000ffff":"0" + +mbedtls_mpi_core_mla #371: 0xfffe + 0xffffffff * 0x100000000 = (0xfffe, carry 0xffffffff)/(0xffffffff0000fffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"ffffffff":"100000000":"fffe":"ffffffff":"ffffffff0000fffe":"0" + +mbedtls_mpi_core_mla #372: 0xfffe + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x8081807f, carry 0x7f7f7f7effffffff)/(0xffffffff8081807f, carry 0x7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"ffffffff":"7f7f7f7f7f7f7f7f":"8081807f":"7f7f7f7effffffff":"ffffffff8081807f":"7f7f7f7e" + +mbedtls_mpi_core_mla #373: 0xfffe + 0xffffffff * 0x8000000000000000 = (0xfffe, carry 0x7fffffff80000000)/(0x800000000000fffe, carry 0x7fffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"ffffffff":"8000000000000000":"fffe":"7fffffff80000000":"800000000000fffe":"7fffffff" + +mbedtls_mpi_core_mla #374: 0xfffe + 0xffffffff * 0xfffffffffffffffe = (0x10000, carry 0xfffffffefffffffe)/(0xfffffffe00010000, carry 0xfffffffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"ffffffff":"fffffffffffffffe":"10000":"fffffffefffffffe":"fffffffe00010000":"fffffffe" + +mbedtls_mpi_core_mla #375: 0xfffe + 0x100000000 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"100000000":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #376: 0xfffe + 0x100000000 * 0x3 = (0x30000fffe, carry 0x0)/(0x30000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"100000000":"3":"30000fffe":"0":"30000fffe":"0" + +mbedtls_mpi_core_mla #377: 0xfffe + 0x100000000 * 0xfe = (0xfe0000fffe, carry 0x0)/(0xfe0000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"100000000":"fe":"fe0000fffe":"0":"fe0000fffe":"0" + +mbedtls_mpi_core_mla #378: 0xfffe + 0x100000000 * 0xff = (0xff0000fffe, carry 0x0)/(0xff0000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"100000000":"ff":"ff0000fffe":"0":"ff0000fffe":"0" + +mbedtls_mpi_core_mla #379: 0xfffe + 0x100000000 * 0xffff = (0xffff0000fffe, carry 0x0)/(0xffff0000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"100000000":"ffff":"ffff0000fffe":"0":"ffff0000fffe":"0" + +mbedtls_mpi_core_mla #380: 0xfffe + 0x100000000 * 0x10000 = (0x100000000fffe, carry 0x0)/(0x100000000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"100000000":"10000":"100000000fffe":"0":"100000000fffe":"0" + +mbedtls_mpi_core_mla #381: 0xfffe + 0x100000000 * 0xffffffff = (0xffffffff0000fffe, carry 0x0)/(0xffffffff0000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"100000000":"ffffffff":"ffffffff0000fffe":"0":"ffffffff0000fffe":"0" + +mbedtls_mpi_core_mla #382: 0xfffe + 0x100000000 * 0x100000000 = (0xfffe, carry 0x1)/(0xfffe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"100000000":"100000000":"fffe":"1":"fffe":"1" + +mbedtls_mpi_core_mla #383: 0xfffe + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000fffe, carry 0x7f7f7f7f)/(0x7f7f7f7f0000fffe, carry 0x7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000fffe":"7f7f7f7f":"7f7f7f7f0000fffe":"7f7f7f7f" + +mbedtls_mpi_core_mla #384: 0xfffe + 0x100000000 * 0x8000000000000000 = (0xfffe, carry 0x80000000)/(0xfffe, carry 0x80000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"100000000":"8000000000000000":"fffe":"80000000":"fffe":"80000000" + +mbedtls_mpi_core_mla #385: 0xfffe + 0x100000000 * 0xfffffffffffffffe = (0xfffffffe0000fffe, carry 0xffffffff)/(0xfffffffe0000fffe, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"100000000":"fffffffffffffffe":"fffffffe0000fffe":"ffffffff":"fffffffe0000fffe":"ffffffff" + +mbedtls_mpi_core_mla #386: 0xfffe + 0x20000000000000 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"20000000000000":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #387: 0xfffe + 0x20000000000000 * 0x3 = (0x6000000000fffe, carry 0x0)/(0x6000000000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"20000000000000":"3":"6000000000fffe":"0":"6000000000fffe":"0" + +mbedtls_mpi_core_mla #388: 0xfffe + 0x20000000000000 * 0xfe = (0x1fc000000000fffe, carry 0x0)/(0x1fc000000000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"20000000000000":"fe":"1fc000000000fffe":"0":"1fc000000000fffe":"0" + +mbedtls_mpi_core_mla #389: 0xfffe + 0x20000000000000 * 0xff = (0x1fe000000000fffe, carry 0x0)/(0x1fe000000000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"20000000000000":"ff":"1fe000000000fffe":"0":"1fe000000000fffe":"0" + +mbedtls_mpi_core_mla #390: 0xfffe + 0x20000000000000 * 0xffff = (0xffe000000000fffe, carry 0x1f)/(0xffe000000000fffe, carry 0x1f) +mbedtls_mpi_core_mla:"fffe":"20000000000000":"ffff":"ffe000000000fffe":"1f":"ffe000000000fffe":"1f" + +mbedtls_mpi_core_mla #391: 0xfffe + 0x20000000000000 * 0x10000 = (0xfffe, carry 0x20)/(0xfffe, carry 0x20) +mbedtls_mpi_core_mla:"fffe":"20000000000000":"10000":"fffe":"20":"fffe":"20" + +mbedtls_mpi_core_mla #392: 0xfffe + 0x20000000000000 * 0xffffffff = (0xffe000000000fffe, carry 0x1fffff)/(0xffe000000000fffe, carry 0x1fffff) +mbedtls_mpi_core_mla:"fffe":"20000000000000":"ffffffff":"ffe000000000fffe":"1fffff":"ffe000000000fffe":"1fffff" + +mbedtls_mpi_core_mla #393: 0xfffe + 0x20000000000000 * 0x100000000 = (0xfffe, carry 0x200000)/(0xfffe, carry 0x200000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"20000000000000":"100000000":"fffe":"200000":"fffe":"200000" + +mbedtls_mpi_core_mla #394: 0xfffe + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe000000000fffe, carry 0xfefefefefefef)/(0xefe000000000fffe, carry 0xfefefefefefef) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"20000000000000":"7f7f7f7f7f7f7f7f":"efe000000000fffe":"fefefefefefef":"efe000000000fffe":"fefefefefefef" + +mbedtls_mpi_core_mla #395: 0xfffe + 0x20000000000000 * 0x8000000000000000 = (0xfffe, carry 0x10000000000000)/(0xfffe, carry 0x10000000000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"20000000000000":"8000000000000000":"fffe":"10000000000000":"fffe":"10000000000000" + +mbedtls_mpi_core_mla #396: 0xfffe + 0x20000000000000 * 0xfffffffffffffffe = (0xffc000000000fffe, carry 0x1fffffffffffff)/(0xffc000000000fffe, carry 0x1fffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"20000000000000":"fffffffffffffffe":"ffc000000000fffe":"1fffffffffffff":"ffc000000000fffe":"1fffffffffffff" + +mbedtls_mpi_core_mla #397: 0xfffe + 0xffffffffffffffff * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #398: 0xfffe + 0xffffffffffffffff * 0x3 = (0xfffb, carry 0x3)/(0xfffb, carry 0x3) +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"3":"fffb":"3":"fffb":"3" + +mbedtls_mpi_core_mla #399: 0xfffe + 0xffffffffffffffff * 0xfe = (0xff00, carry 0xfe)/(0xff00, carry 0xfe) +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"fe":"ff00":"fe":"ff00":"fe" + +mbedtls_mpi_core_mla #400: 0xfffe + 0xffffffffffffffff * 0xff = (0xfeff, carry 0xff)/(0xfeff, carry 0xff) +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"ff":"feff":"ff":"feff":"ff" + +mbedtls_mpi_core_mla #401: 0xfffe + 0xffffffffffffffff * 0xffff = (0xffffffffffffffff, carry 0xfffe)/(0xffffffffffffffff, carry 0xfffe) +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"ffff":"ffffffffffffffff":"fffe":"ffffffffffffffff":"fffe" + +mbedtls_mpi_core_mla #402: 0xfffe + 0xffffffffffffffff * 0x10000 = (0xfffffffffffffffe, carry 0xffff)/(0xfffffffffffffffe, carry 0xffff) +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"10000":"fffffffffffffffe":"ffff":"fffffffffffffffe":"ffff" + +mbedtls_mpi_core_mla #403: 0xfffe + 0xffffffffffffffff * 0xffffffff = (0xffffffff0000ffff, carry 0xfffffffe)/(0xffffffff0000ffff, carry 0xfffffffe) +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"ffffffff":"ffffffff0000ffff":"fffffffe":"ffffffff0000ffff":"fffffffe" + +mbedtls_mpi_core_mla #404: 0xfffe + 0xffffffffffffffff * 0x100000000 = (0xffffffff0000fffe, carry 0xffffffff)/(0xffffffff0000fffe, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"100000000":"ffffffff0000fffe":"ffffffff":"ffffffff0000fffe":"ffffffff" + +mbedtls_mpi_core_mla #405: 0xfffe + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x808080808081807f, carry 0x7f7f7f7f7f7f7f7e)/(0x808080808081807f, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"808080808081807f":"7f7f7f7f7f7f7f7e":"808080808081807f":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #406: 0xfffe + 0xffffffffffffffff * 0x8000000000000000 = (0x800000000000fffe, carry 0x7fffffffffffffff)/(0x800000000000fffe, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"8000000000000000":"800000000000fffe":"7fffffffffffffff":"800000000000fffe":"7fffffffffffffff" + +mbedtls_mpi_core_mla #407: 0xfffe + 0xffffffffffffffff * 0xfffffffffffffffe = (0x10000, carry 0xfffffffffffffffd)/(0x10000, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"fffffffffffffffe":"10000":"fffffffffffffffd":"10000":"fffffffffffffffd" + +mbedtls_mpi_core_mla #408: 0xfffe + 0x10000000000000000 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"10000000000000000":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #409: 0xfffe + 0x10000000000000000 * 0x3 = (0x3000000000000fffe, carry 0x0)/(0x3000000000000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"10000000000000000":"3":"3000000000000fffe":"0":"3000000000000fffe":"0" + +mbedtls_mpi_core_mla #410: 0xfffe + 0x10000000000000000 * 0xfe = (0xfe000000000000fffe, carry 0x0)/(0xfe000000000000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"10000000000000000":"fe":"fe000000000000fffe":"0":"fe000000000000fffe":"0" + +mbedtls_mpi_core_mla #411: 0xfffe + 0x10000000000000000 * 0xff = (0xff000000000000fffe, carry 0x0)/(0xff000000000000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"10000000000000000":"ff":"ff000000000000fffe":"0":"ff000000000000fffe":"0" + +mbedtls_mpi_core_mla #412: 0xfffe + 0x10000000000000000 * 0xffff = (0xffff000000000000fffe, carry 0x0)/(0xffff000000000000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"10000000000000000":"ffff":"ffff000000000000fffe":"0":"ffff000000000000fffe":"0" + +mbedtls_mpi_core_mla #413: 0xfffe + 0x10000000000000000 * 0x10000 = (0x10000000000000000fffe, carry 0x0)/(0x10000000000000000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"10000000000000000":"10000":"10000000000000000fffe":"0":"10000000000000000fffe":"0" + +mbedtls_mpi_core_mla #414: 0xfffe + 0x10000000000000000 * 0xffffffff = (0xffffffff000000000000fffe, carry 0x0)/(0xffffffff000000000000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"10000000000000000":"ffffffff":"ffffffff000000000000fffe":"0":"ffffffff000000000000fffe":"0" + +mbedtls_mpi_core_mla #415: 0xfffe + 0x10000000000000000 * 0x100000000 = (0xfffe, carry 0x1)/(0x100000000000000000000fffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"10000000000000000":"100000000":"fffe":"1":"100000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #416: 0xfffe + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f000000000000fffe, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f000000000000fffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f000000000000fffe":"7f7f7f7f":"7f7f7f7f7f7f7f7f000000000000fffe":"0" + +mbedtls_mpi_core_mla #417: 0xfffe + 0x10000000000000000 * 0x8000000000000000 = (0xfffe, carry 0x80000000)/(0x8000000000000000000000000000fffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"10000000000000000":"8000000000000000":"fffe":"80000000":"8000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #418: 0xfffe + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe000000000000fffe, carry 0xffffffff)/(0xfffffffffffffffe000000000000fffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"10000000000000000":"fffffffffffffffe":"fffffffe000000000000fffe":"ffffffff":"fffffffffffffffe000000000000fffe":"0" + +mbedtls_mpi_core_mla #419: 0xfffe + 0x1234567890abcdef0 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #420: 0xfffe + 0x1234567890abcdef0 * 0x3 = (0x369d0369b20379cce, carry 0x0)/(0x369d0369b20379cce, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"3":"369d0369b20379cce":"0":"369d0369b20379cce":"0" + +mbedtls_mpi_core_mla #421: 0xfffe + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f8a766321e, carry 0x0)/(0x120fedcb9f8a766321e, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"fe":"120fedcb9f8a766321e":"0":"120fedcb9f8a766321e":"0" + +mbedtls_mpi_core_mla #422: 0xfffe + 0x1234567890abcdef0 * 0xff = (0x12222222181b223110e, carry 0x0)/(0x12222222181b223110e, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"ff":"12222222181b223110e":"0":"12222222181b223110e":"0" + +mbedtls_mpi_core_mla #423: 0xfffe + 0x1234567890abcdef0 * 0xffff = (0x123444443a333d434210e, carry 0x0)/(0x123444443a333d434210e, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"ffff":"123444443a333d434210e":"0":"123444443a333d434210e":"0" + +mbedtls_mpi_core_mla #424: 0xfffe + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdef0fffe, carry 0x0)/(0x1234567890abcdef0fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"10000":"1234567890abcdef0fffe":"0":"1234567890abcdef0fffe":"0" + +mbedtls_mpi_core_mla #425: 0xfffe + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777766f544210e, carry 0x1)/(0x123456787e7777766f544210e, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"ffffffff":"23456787e7777766f544210e":"1":"123456787e7777766f544210e":"0" + +mbedtls_mpi_core_mla #426: 0xfffe + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef00000fffe, carry 0x1)/(0x1234567890abcdef00000fffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"100000000":"234567890abcdef00000fffe":"1":"1234567890abcdef00000fffe":"0" + +mbedtls_mpi_core_mla #427: 0xfffe + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708abaf5ca90e, carry 0x91107edb)/(0x91107edbd82bde76f67708abaf5ca90e, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ca90e":"91107edb":"91107edbd82bde76f67708abaf5ca90e":"0" + +mbedtls_mpi_core_mla #428: 0xfffe + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f78000000000000fffe, carry 0x91a2b3c4)/(0x91a2b3c4855e6f78000000000000fffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"8000000000000000":"855e6f78000000000000fffe":"91a2b3c4":"91a2b3c4855e6f78000000000000fffe":"0" + +mbedtls_mpi_core_mla #429: 0xfffe + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530edea87421e, carry 0x123456789)/(0x234567890abcdeedb97530edea87421e, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea87421e":"123456789":"234567890abcdeedb97530edea87421e":"1" + +mbedtls_mpi_core_mla #430: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #431: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfcfcfdfcf8, carry 0x2)/(0xfffffffffffffffffcfcfcfcfcfdfcf8, carry 0x2) +mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfdfcf8":"2":"fffffffffffffffffcfcfcfcfcfdfcf8":"2" + +mbedtls_mpi_core_mla #432: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010101020002, carry 0xfd)/(0xffffffffffffffff0101010101020002, carry 0xfd) +mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101020002":"fd":"ffffffffffffffff0101010101020002":"fd" + +mbedtls_mpi_core_mla #433: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffff000000000000ff00, carry 0xfe)/(0xffffffffffffffff000000000000ff00, carry 0xfe) +mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff000000000000ff00":"fe":"ffffffffffffffff000000000000ff00":"fe" + +mbedtls_mpi_core_mla #434: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeff0000000000000100, carry 0xfffe)/(0xfffffffffffffeff0000000000000100, carry 0xfffe) +mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff0000000000000100":"fffe":"fffffffffffffeff0000000000000100":"fffe" + +mbedtls_mpi_core_mla #435: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefefefefffe, carry 0xffff)/(0xfffffffffffffefefefefefefefefffe, carry 0xffff) +mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefefffe":"ffff":"fffffffffffffefefefefefefefefffe":"ffff" + +mbedtls_mpi_core_mla #436: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefefeffffffff01020100, carry 0xfffffffe)/(0xfffffffffefefefeffffffff01020100, carry 0xfffffffe) +mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01020100":"fffffffe":"fffffffffefefefeffffffff01020100":"fffffffe" + +mbedtls_mpi_core_mla #437: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefe0000fffe, carry 0xffffffff)/(0xfffffffffefefefefefefefe0000fffe, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe0000fffe":"ffffffff":"fffffffffefefefefefefefe0000fffe":"ffffffff" + +mbedtls_mpi_core_mla #438: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840383038200, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840383038200, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383038200":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383038200":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #439: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f000000000000fffe, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f000000000000fffe, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f000000000000fffe":"7fffffffffffffff":"ff7f7f7f7f7f7f7f000000000000fffe":"7fffffffffffffff" + +mbedtls_mpi_core_mla #440: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020202030202, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020202030202, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202030202":"fffffffffffffffd":"fefefefefefefefe0202020202030202":"fffffffffffffffd" + +mbedtls_mpi_core_mla #441: 0xfffe + 0x100000000000000000000000000000000 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #442: 0xfffe + 0x100000000000000000000000000000000 * 0x3 = (0x30000000000000000000000000000fffe, carry 0x0)/(0x30000000000000000000000000000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"3":"30000000000000000000000000000fffe":"0":"30000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #443: 0xfffe + 0x100000000000000000000000000000000 * 0xfe = (0xfe0000000000000000000000000000fffe, carry 0x0)/(0xfe0000000000000000000000000000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"fe":"fe0000000000000000000000000000fffe":"0":"fe0000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #444: 0xfffe + 0x100000000000000000000000000000000 * 0xff = (0xff0000000000000000000000000000fffe, carry 0x0)/(0xff0000000000000000000000000000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"ff":"ff0000000000000000000000000000fffe":"0":"ff0000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #445: 0xfffe + 0x100000000000000000000000000000000 * 0xffff = (0xffff0000000000000000000000000000fffe, carry 0x0)/(0xffff0000000000000000000000000000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"ffff":"ffff0000000000000000000000000000fffe":"0":"ffff0000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #446: 0xfffe + 0x100000000000000000000000000000000 * 0x10000 = (0x100000000000000000000000000000000fffe, carry 0x0)/(0x100000000000000000000000000000000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"10000":"100000000000000000000000000000000fffe":"0":"100000000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #447: 0xfffe + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff0000000000000000000000000000fffe, carry 0x0)/(0xffffffff0000000000000000000000000000fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000000000000000000fffe":"0":"ffffffff0000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #448: 0xfffe + 0x100000000000000000000000000000000 * 0x100000000 = (0xfffe, carry 0x1)/(0x1000000000000000000000000000000000000fffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"100000000":"fffe":"1":"1000000000000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #449: 0xfffe + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000000000000000000fffe, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000000000000000000fffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000000000000000fffe":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #450: 0xfffe + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0xfffe, carry 0x80000000)/(0x80000000000000000000000000000000000000000000fffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"8000000000000000":"fffe":"80000000":"80000000000000000000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #451: 0xfffe + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000000000000000000fffe, carry 0xffffffff)/(0xfffffffffffffffe0000000000000000000000000000fffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000000000000000000fffe":"ffffffff":"fffffffffffffffe0000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #452: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #453: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20379cce, carry 0x0)/(0x369d0369b20369cd0369d0369b20379cce, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20379cce":"0":"369d0369b20369cd0369d0369b20379cce":"0" + +mbedtls_mpi_core_mla #454: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a766321e, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a766321e, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a766321e":"0":"120fedcb9f8a76532320fedcb9f8a766321e":"0" + +mbedtls_mpi_core_mla #455: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b223110e, carry 0x0)/(0x12222222181b2221122222222181b223110e, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b223110e":"0":"12222222181b2221122222222181b223110e":"0" + +mbedtls_mpi_core_mla #456: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d434210e, carry 0x0)/(0x123444443a333d433334444443a333d434210e, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d434210e":"0":"123444443a333d433334444443a333d434210e":"0" + +mbedtls_mpi_core_mla #457: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef0fffe, carry 0x0)/(0x1234567890abcdef01234567890abcdef0fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef0fffe":"0":"1234567890abcdef01234567890abcdef0fffe":"0" + +mbedtls_mpi_core_mla #458: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777766f544210e, carry 0x12)/(0x123456787e7777767077777887e7777766f544210e, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f544210e":"12":"123456787e7777767077777887e7777766f544210e":"0" + +mbedtls_mpi_core_mla #459: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef00000fffe, carry 0x12)/(0x1234567890abcdef01234567890abcdef00000fffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef00000fffe":"12":"1234567890abcdef01234567890abcdef00000fffe":"0" + +mbedtls_mpi_core_mla #460: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708abaf5ca90e, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708abaf5ca90e, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ca90e":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ca90e":"9" + +mbedtls_mpi_core_mla #461: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f78000000000000fffe, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f78000000000000fffe":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"9" + +mbedtls_mpi_core_mla #462: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530edea87421e, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530edea87421e, carry 0x12) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea87421e":"1234567890":"34567890abcdeedcba987667b32100edb97530edea87421e":"12" + +mbedtls_mpi_core_mla #463: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #464: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffb, carry 0x3)/(0xfffb, carry 0x3) +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffb":"3":"fffb":"3" + +mbedtls_mpi_core_mla #465: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xff00, carry 0xfe)/(0xff00, carry 0xfe) +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ff00":"fe":"ff00":"fe" + +mbedtls_mpi_core_mla #466: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xfeff, carry 0xff)/(0xfeff, carry 0xff) +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"feff":"ff":"feff":"ff" + +mbedtls_mpi_core_mla #467: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0xfffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0xfffe) +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe" + +mbedtls_mpi_core_mla #468: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0xffff)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0xffff) +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff" + +mbedtls_mpi_core_mla #469: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff, carry 0xfffffffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff, carry 0xfffffffe) +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff":"fffffffe" + +mbedtls_mpi_core_mla #470: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe":"ffffffff" + +mbedtls_mpi_core_mla #471: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #472: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe":"7fffffffffffffff" + +mbedtls_mpi_core_mla #473: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000":"fffffffffffffffd" + +mbedtls_mpi_core_mla #474: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #475: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce":"0" + +mbedtls_mpi_core_mla #476: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e":"0" + +mbedtls_mpi_core_mla #477: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222181b223110e, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222181b223110e, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b223110e":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b223110e":"0" + +mbedtls_mpi_core_mla #478: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e":"0" + +mbedtls_mpi_core_mla #479: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe":"0" + +mbedtls_mpi_core_mla #480: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e":"0" + +mbedtls_mpi_core_mla #481: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe":"0" + +mbedtls_mpi_core_mla #482: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e, carry 0x911) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e":"911" + +mbedtls_mpi_core_mla #483: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe, carry 0x91a) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"91a" + +mbedtls_mpi_core_mla #484: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e, carry 0x1234) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e":"1234" + +mbedtls_mpi_core_mla #485: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #486: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f":"0" + +mbedtls_mpi_core_mla #487: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8":"0" + +mbedtls_mpi_core_mla #488: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3":"0" + +mbedtls_mpi_core_mla #489: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3":"0" + +mbedtls_mpi_core_mla #490: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe, carry 0x0) +mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe":"0" + +mbedtls_mpi_core_mla #491: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3, carry 0x4) +mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3":"4" + +mbedtls_mpi_core_mla #492: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe, carry 0x4) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe":"4" + +mbedtls_mpi_core_mla #493: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953, carry 0x26d473ca9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953":"26d473ca9" + +mbedtls_mpi_core_mla #494: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe, carry 0x26fb9683d) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe":"26fb9683d" + +mbedtls_mpi_core_mla #495: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8, carry 0x4df72d07b) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8":"4df72d07b" + +mbedtls_mpi_core_mla #496: 0xffffffff + 0x0 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"0":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #497: 0xffffffff + 0x0 * 0x3 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"0":"3":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #498: 0xffffffff + 0x0 * 0xfe = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"0":"fe":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #499: 0xffffffff + 0x0 * 0xff = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"0":"ff":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #500: 0xffffffff + 0x0 * 0xffff = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"0":"ffff":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #501: 0xffffffff + 0x0 * 0x10000 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"0":"10000":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #502: 0xffffffff + 0x0 * 0xffffffff = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"0":"ffffffff":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #503: 0xffffffff + 0x0 * 0x100000000 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"0":"100000000":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #504: 0xffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #505: 0xffffffff + 0x0 * 0x8000000000000000 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"0":"8000000000000000":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #506: 0xffffffff + 0x0 * 0xfffffffffffffffe = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"0":"fffffffffffffffe":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #507: 0xffffffff + 0x1 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #508: 0xffffffff + 0x1 * 0x3 = (0x2, carry 0x1)/(0x100000002, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1":"3":"2":"1":"100000002":"0" + +mbedtls_mpi_core_mla #509: 0xffffffff + 0x1 * 0xfe = (0xfd, carry 0x1)/(0x1000000fd, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1":"fe":"fd":"1":"1000000fd":"0" + +mbedtls_mpi_core_mla #510: 0xffffffff + 0x1 * 0xff = (0xfe, carry 0x1)/(0x1000000fe, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1":"ff":"fe":"1":"1000000fe":"0" + +mbedtls_mpi_core_mla #511: 0xffffffff + 0x1 * 0xffff = (0xfffe, carry 0x1)/(0x10000fffe, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1":"ffff":"fffe":"1":"10000fffe":"0" + +mbedtls_mpi_core_mla #512: 0xffffffff + 0x1 * 0x10000 = (0xffff, carry 0x1)/(0x10000ffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1":"10000":"ffff":"1":"10000ffff":"0" + +mbedtls_mpi_core_mla #513: 0xffffffff + 0x1 * 0xffffffff = (0xfffffffe, carry 0x1)/(0x1fffffffe, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1":"ffffffff":"fffffffe":"1":"1fffffffe":"0" + +mbedtls_mpi_core_mla #514: 0xffffffff + 0x1 * 0x100000000 = (0xffffffff, carry 0x1)/(0x1ffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"1":"100000000":"ffffffff":"1":"1ffffffff":"0" + +mbedtls_mpi_core_mla #515: 0xffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7e, carry 0x7f7f7f80)/(0x7f7f7f807f7f7f7e, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7e":"7f7f7f80":"7f7f7f807f7f7f7e":"0" + +mbedtls_mpi_core_mla #516: 0xffffffff + 0x1 * 0x8000000000000000 = (0xffffffff, carry 0x80000000)/(0x80000000ffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"1":"8000000000000000":"ffffffff":"80000000":"80000000ffffffff":"0" + +mbedtls_mpi_core_mla #517: 0xffffffff + 0x1 * 0xfffffffffffffffe = (0xfffffffd, carry 0x100000000)/(0xfffffffd, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"1":"fffffffffffffffe":"fffffffd":"100000000":"fffffffd":"1" + +mbedtls_mpi_core_mla #518: 0xffffffff + 0xfffe * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"fffe":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #519: 0xffffffff + 0xfffe * 0x3 = (0x2fff9, carry 0x1)/(0x10002fff9, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"fffe":"3":"2fff9":"1":"10002fff9":"0" + +mbedtls_mpi_core_mla #520: 0xffffffff + 0xfffe * 0xfe = (0xfdfe03, carry 0x1)/(0x100fdfe03, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"fffe":"fe":"fdfe03":"1":"100fdfe03":"0" + +mbedtls_mpi_core_mla #521: 0xffffffff + 0xfffe * 0xff = (0xfefe01, carry 0x1)/(0x100fefe01, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"fffe":"ff":"fefe01":"1":"100fefe01":"0" + +mbedtls_mpi_core_mla #522: 0xffffffff + 0xfffe * 0xffff = (0xfffd0001, carry 0x1)/(0x1fffd0001, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"fffe":"ffff":"fffd0001":"1":"1fffd0001":"0" + +mbedtls_mpi_core_mla #523: 0xffffffff + 0xfffe * 0x10000 = (0xfffdffff, carry 0x1)/(0x1fffdffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"fffe":"10000":"fffdffff":"1":"1fffdffff":"0" + +mbedtls_mpi_core_mla #524: 0xffffffff + 0xfffe * 0xffffffff = (0xffff0001, carry 0xfffe)/(0xfffeffff0001, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"fffe":"ffffffff":"ffff0001":"fffe":"fffeffff0001":"0" + +mbedtls_mpi_core_mla #525: 0xffffffff + 0xfffe * 0x100000000 = (0xffffffff, carry 0xfffe)/(0xfffeffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"fffe":"100000000":"ffffffff":"fffe":"fffeffffffff":"0" + +mbedtls_mpi_core_mla #526: 0xffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80800101, carry 0x7f7e80808081)/(0x8080808180800101, carry 0x7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"fffe":"7f7f7f7f7f7f7f7f":"80800101":"7f7e80808081":"8080808180800101":"7f7e" + +mbedtls_mpi_core_mla #527: 0xffffffff + 0xfffe * 0x8000000000000000 = (0xffffffff, carry 0x7fff00000000)/(0xffffffff, carry 0x7fff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"fffe":"8000000000000000":"ffffffff":"7fff00000000":"ffffffff":"7fff" + +mbedtls_mpi_core_mla #528: 0xffffffff + 0xfffe * 0xfffffffffffffffe = (0xfffe0003, carry 0xfffe00000000)/(0xfffe0003, carry 0xfffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"fffe":"fffffffffffffffe":"fffe0003":"fffe00000000":"fffe0003":"fffe" + +mbedtls_mpi_core_mla #529: 0xffffffff + 0xffffffff * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #530: 0xffffffff + 0xffffffff * 0x3 = (0xfffffffc, carry 0x3)/(0x3fffffffc, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"3":"fffffffc":"3":"3fffffffc":"0" + +mbedtls_mpi_core_mla #531: 0xffffffff + 0xffffffff * 0xfe = (0xffffff01, carry 0xfe)/(0xfeffffff01, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"fe":"ffffff01":"fe":"feffffff01":"0" + +mbedtls_mpi_core_mla #532: 0xffffffff + 0xffffffff * 0xff = (0xffffff00, carry 0xff)/(0xffffffff00, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"ff":"ffffff00":"ff":"ffffffff00":"0" + +mbedtls_mpi_core_mla #533: 0xffffffff + 0xffffffff * 0xffff = (0xffff0000, carry 0xffff)/(0xffffffff0000, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"ffff":"ffff0000":"ffff":"ffffffff0000":"0" + +mbedtls_mpi_core_mla #534: 0xffffffff + 0xffffffff * 0x10000 = (0xfffeffff, carry 0x10000)/(0x10000fffeffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"10000":"fffeffff":"10000":"10000fffeffff":"0" + +mbedtls_mpi_core_mla #535: 0xffffffff + 0xffffffff * 0xffffffff = (0x0, carry 0xffffffff)/(0xffffffff00000000, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"ffffffff":"0":"ffffffff":"ffffffff00000000":"0" + +mbedtls_mpi_core_mla #536: 0xffffffff + 0xffffffff * 0x100000000 = (0xffffffff, carry 0xffffffff)/(0xffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"100000000":"ffffffff":"ffffffff":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #537: 0xffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x80808080, carry 0x7f7f7f7f00000000)/(0x80808080, carry 0x7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"80808080":"7f7f7f7f00000000":"80808080":"7f7f7f7f" + +mbedtls_mpi_core_mla #538: 0xffffffff + 0xffffffff * 0x8000000000000000 = (0xffffffff, carry 0x7fffffff80000000)/(0x80000000ffffffff, carry 0x7fffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"8000000000000000":"ffffffff":"7fffffff80000000":"80000000ffffffff":"7fffffff" + +mbedtls_mpi_core_mla #539: 0xffffffff + 0xffffffff * 0xfffffffffffffffe = (0x1, carry 0xfffffffeffffffff)/(0xffffffff00000001, carry 0xfffffffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"fffffffffffffffe":"1":"fffffffeffffffff":"ffffffff00000001":"fffffffe" + +mbedtls_mpi_core_mla #540: 0xffffffff + 0x100000000 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"100000000":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #541: 0xffffffff + 0x100000000 * 0x3 = (0x3ffffffff, carry 0x0)/(0x3ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"100000000":"3":"3ffffffff":"0":"3ffffffff":"0" + +mbedtls_mpi_core_mla #542: 0xffffffff + 0x100000000 * 0xfe = (0xfeffffffff, carry 0x0)/(0xfeffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"100000000":"fe":"feffffffff":"0":"feffffffff":"0" + +mbedtls_mpi_core_mla #543: 0xffffffff + 0x100000000 * 0xff = (0xffffffffff, carry 0x0)/(0xffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"100000000":"ff":"ffffffffff":"0":"ffffffffff":"0" + +mbedtls_mpi_core_mla #544: 0xffffffff + 0x100000000 * 0xffff = (0xffffffffffff, carry 0x0)/(0xffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"100000000":"ffff":"ffffffffffff":"0":"ffffffffffff":"0" + +mbedtls_mpi_core_mla #545: 0xffffffff + 0x100000000 * 0x10000 = (0x10000ffffffff, carry 0x0)/(0x10000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"100000000":"10000":"10000ffffffff":"0":"10000ffffffff":"0" + +mbedtls_mpi_core_mla #546: 0xffffffff + 0x100000000 * 0xffffffff = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"100000000":"ffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #547: 0xffffffff + 0x100000000 * 0x100000000 = (0xffffffff, carry 0x1)/(0xffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"100000000":"100000000":"ffffffff":"1":"ffffffff":"1" + +mbedtls_mpi_core_mla #548: 0xffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7fffffffff, carry 0x7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffff":"7f7f7f7f":"7f7f7f7fffffffff":"7f7f7f7f" + +mbedtls_mpi_core_mla #549: 0xffffffff + 0x100000000 * 0x8000000000000000 = (0xffffffff, carry 0x80000000)/(0xffffffff, carry 0x80000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"100000000":"8000000000000000":"ffffffff":"80000000":"ffffffff":"80000000" + +mbedtls_mpi_core_mla #550: 0xffffffff + 0x100000000 * 0xfffffffffffffffe = (0xfffffffeffffffff, carry 0xffffffff)/(0xfffffffeffffffff, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"100000000":"fffffffffffffffe":"fffffffeffffffff":"ffffffff":"fffffffeffffffff":"ffffffff" + +mbedtls_mpi_core_mla #551: 0xffffffff + 0x20000000000000 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #552: 0xffffffff + 0x20000000000000 * 0x3 = (0x600000ffffffff, carry 0x0)/(0x600000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"3":"600000ffffffff":"0":"600000ffffffff":"0" + +mbedtls_mpi_core_mla #553: 0xffffffff + 0x20000000000000 * 0xfe = (0x1fc00000ffffffff, carry 0x0)/(0x1fc00000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"fe":"1fc00000ffffffff":"0":"1fc00000ffffffff":"0" + +mbedtls_mpi_core_mla #554: 0xffffffff + 0x20000000000000 * 0xff = (0x1fe00000ffffffff, carry 0x0)/(0x1fe00000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"ff":"1fe00000ffffffff":"0":"1fe00000ffffffff":"0" + +mbedtls_mpi_core_mla #555: 0xffffffff + 0x20000000000000 * 0xffff = (0xffe00000ffffffff, carry 0x1f)/(0xffe00000ffffffff, carry 0x1f) +mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"ffff":"ffe00000ffffffff":"1f":"ffe00000ffffffff":"1f" + +mbedtls_mpi_core_mla #556: 0xffffffff + 0x20000000000000 * 0x10000 = (0xffffffff, carry 0x20)/(0xffffffff, carry 0x20) +mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"10000":"ffffffff":"20":"ffffffff":"20" + +mbedtls_mpi_core_mla #557: 0xffffffff + 0x20000000000000 * 0xffffffff = (0xffe00000ffffffff, carry 0x1fffff)/(0xffe00000ffffffff, carry 0x1fffff) +mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"ffffffff":"ffe00000ffffffff":"1fffff":"ffe00000ffffffff":"1fffff" + +mbedtls_mpi_core_mla #558: 0xffffffff + 0x20000000000000 * 0x100000000 = (0xffffffff, carry 0x200000)/(0xffffffff, carry 0x200000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"100000000":"ffffffff":"200000":"ffffffff":"200000" + +mbedtls_mpi_core_mla #559: 0xffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe00000ffffffff, carry 0xfefefefefefef)/(0xefe00000ffffffff, carry 0xfefefefefefef) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"efe00000ffffffff":"fefefefefefef":"efe00000ffffffff":"fefefefefefef" + +mbedtls_mpi_core_mla #560: 0xffffffff + 0x20000000000000 * 0x8000000000000000 = (0xffffffff, carry 0x10000000000000)/(0xffffffff, carry 0x10000000000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"8000000000000000":"ffffffff":"10000000000000":"ffffffff":"10000000000000" + +mbedtls_mpi_core_mla #561: 0xffffffff + 0x20000000000000 * 0xfffffffffffffffe = (0xffc00000ffffffff, carry 0x1fffffffffffff)/(0xffc00000ffffffff, carry 0x1fffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"fffffffffffffffe":"ffc00000ffffffff":"1fffffffffffff":"ffc00000ffffffff":"1fffffffffffff" + +mbedtls_mpi_core_mla #562: 0xffffffff + 0xffffffffffffffff * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #563: 0xffffffff + 0xffffffffffffffff * 0x3 = (0xfffffffc, carry 0x3)/(0xfffffffc, carry 0x3) +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"3":"fffffffc":"3":"fffffffc":"3" + +mbedtls_mpi_core_mla #564: 0xffffffff + 0xffffffffffffffff * 0xfe = (0xffffff01, carry 0xfe)/(0xffffff01, carry 0xfe) +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"fe":"ffffff01":"fe":"ffffff01":"fe" + +mbedtls_mpi_core_mla #565: 0xffffffff + 0xffffffffffffffff * 0xff = (0xffffff00, carry 0xff)/(0xffffff00, carry 0xff) +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"ff":"ffffff00":"ff":"ffffff00":"ff" + +mbedtls_mpi_core_mla #566: 0xffffffff + 0xffffffffffffffff * 0xffff = (0xffff0000, carry 0xffff)/(0xffff0000, carry 0xffff) +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"ffff":"ffff0000":"ffff":"ffff0000":"ffff" + +mbedtls_mpi_core_mla #567: 0xffffffff + 0xffffffffffffffff * 0x10000 = (0xfffeffff, carry 0x10000)/(0xfffeffff, carry 0x10000) +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"10000":"fffeffff":"10000":"fffeffff":"10000" + +mbedtls_mpi_core_mla #568: 0xffffffff + 0xffffffffffffffff * 0xffffffff = (0x0, carry 0xffffffff)/(0x0, carry 0xffffffff) +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff" + +mbedtls_mpi_core_mla #569: 0xffffffff + 0xffffffffffffffff * 0x100000000 = (0xffffffffffffffff, carry 0xffffffff)/(0xffffffffffffffff, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"100000000":"ffffffffffffffff":"ffffffff":"ffffffffffffffff":"ffffffff" + +mbedtls_mpi_core_mla #570: 0xffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808180808080, carry 0x7f7f7f7f7f7f7f7e)/(0x8080808180808080, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808180808080":"7f7f7f7f7f7f7f7e":"8080808180808080":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #571: 0xffffffff + 0xffffffffffffffff * 0x8000000000000000 = (0x80000000ffffffff, carry 0x7fffffffffffffff)/(0x80000000ffffffff, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"8000000000000000":"80000000ffffffff":"7fffffffffffffff":"80000000ffffffff":"7fffffffffffffff" + +mbedtls_mpi_core_mla #572: 0xffffffff + 0xffffffffffffffff * 0xfffffffffffffffe = (0x100000001, carry 0xfffffffffffffffd)/(0x100000001, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"fffffffffffffffe":"100000001":"fffffffffffffffd":"100000001":"fffffffffffffffd" + +mbedtls_mpi_core_mla #573: 0xffffffff + 0x10000000000000000 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #574: 0xffffffff + 0x10000000000000000 * 0x3 = (0x300000000ffffffff, carry 0x0)/(0x300000000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"3":"300000000ffffffff":"0":"300000000ffffffff":"0" + +mbedtls_mpi_core_mla #575: 0xffffffff + 0x10000000000000000 * 0xfe = (0xfe00000000ffffffff, carry 0x0)/(0xfe00000000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"fe":"fe00000000ffffffff":"0":"fe00000000ffffffff":"0" + +mbedtls_mpi_core_mla #576: 0xffffffff + 0x10000000000000000 * 0xff = (0xff00000000ffffffff, carry 0x0)/(0xff00000000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"ff":"ff00000000ffffffff":"0":"ff00000000ffffffff":"0" + +mbedtls_mpi_core_mla #577: 0xffffffff + 0x10000000000000000 * 0xffff = (0xffff00000000ffffffff, carry 0x0)/(0xffff00000000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"ffff":"ffff00000000ffffffff":"0":"ffff00000000ffffffff":"0" + +mbedtls_mpi_core_mla #578: 0xffffffff + 0x10000000000000000 * 0x10000 = (0x1000000000000ffffffff, carry 0x0)/(0x1000000000000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"10000":"1000000000000ffffffff":"0":"1000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #579: 0xffffffff + 0x10000000000000000 * 0xffffffff = (0xffffffff00000000ffffffff, carry 0x0)/(0xffffffff00000000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"ffffffff":"ffffffff00000000ffffffff":"0":"ffffffff00000000ffffffff":"0" + +mbedtls_mpi_core_mla #580: 0xffffffff + 0x10000000000000000 * 0x100000000 = (0xffffffff, carry 0x1)/(0x10000000000000000ffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"100000000":"ffffffff":"1":"10000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #581: 0xffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000ffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000ffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000ffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000ffffffff":"0" + +mbedtls_mpi_core_mla #582: 0xffffffff + 0x10000000000000000 * 0x8000000000000000 = (0xffffffff, carry 0x80000000)/(0x800000000000000000000000ffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"8000000000000000":"ffffffff":"80000000":"800000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #583: 0xffffffff + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000ffffffff, carry 0xffffffff)/(0xfffffffffffffffe00000000ffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"fffffffffffffffe":"fffffffe00000000ffffffff":"ffffffff":"fffffffffffffffe00000000ffffffff":"0" + +mbedtls_mpi_core_mla #584: 0xffffffff + 0x1234567890abcdef0 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #585: 0xffffffff + 0x1234567890abcdef0 * 0x3 = (0x369d0369c20369ccf, carry 0x0)/(0x369d0369c20369ccf, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"3":"369d0369c20369ccf":"0":"369d0369c20369ccf":"0" + +mbedtls_mpi_core_mla #586: 0xffffffff + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f9a765321f, carry 0x0)/(0x120fedcb9f9a765321f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"fe":"120fedcb9f9a765321f":"0":"120fedcb9f9a765321f":"0" + +mbedtls_mpi_core_mla #587: 0xffffffff + 0x1234567890abcdef0 * 0xff = (0x12222222182b222110f, carry 0x0)/(0x12222222182b222110f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"ff":"12222222182b222110f":"0":"12222222182b222110f":"0" + +mbedtls_mpi_core_mla #588: 0xffffffff + 0x1234567890abcdef0 * 0xffff = (0x123444443a334d433210f, carry 0x0)/(0x123444443a334d433210f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"ffff":"123444443a334d433210f":"0":"123444443a334d433210f":"0" + +mbedtls_mpi_core_mla #589: 0xffffffff + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abddeefffff, carry 0x0)/(0x1234567890abddeefffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"10000":"1234567890abddeefffff":"0":"1234567890abddeefffff":"0" + +mbedtls_mpi_core_mla #590: 0xffffffff + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777767f543210f, carry 0x1)/(0x123456787e7777767f543210f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"ffffffff":"23456787e7777767f543210f":"1":"123456787e7777767f543210f":"0" + +mbedtls_mpi_core_mla #591: 0xffffffff + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef0ffffffff, carry 0x1)/(0x1234567890abcdef0ffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"100000000":"234567890abcdef0ffffffff":"1":"1234567890abcdef0ffffffff":"0" + +mbedtls_mpi_core_mla #592: 0xffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708acaf5ba90f, carry 0x91107edb)/(0x91107edbd82bde76f67708acaf5ba90f, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708acaf5ba90f":"91107edb":"91107edbd82bde76f67708acaf5ba90f":"0" + +mbedtls_mpi_core_mla #593: 0xffffffff + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f7800000000ffffffff, carry 0x91a2b3c4)/(0x91a2b3c4855e6f7800000000ffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"8000000000000000":"855e6f7800000000ffffffff":"91a2b3c4":"91a2b3c4855e6f7800000000ffffffff":"0" + +mbedtls_mpi_core_mla #594: 0xffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530eeea86421f, carry 0x123456789)/(0x234567890abcdeedb97530eeea86421f, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530eeea86421f":"123456789":"234567890abcdeedb97530eeea86421f":"1" + +mbedtls_mpi_core_mla #595: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #596: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfdfcfcfcf9, carry 0x2)/(0xfffffffffffffffffcfcfcfdfcfcfcf9, carry 0x2) +mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfdfcfcfcf9":"2":"fffffffffffffffffcfcfcfdfcfcfcf9":"2" + +mbedtls_mpi_core_mla #597: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010201010003, carry 0xfd)/(0xffffffffffffffff0101010201010003, carry 0xfd) +mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010201010003":"fd":"ffffffffffffffff0101010201010003":"fd" + +mbedtls_mpi_core_mla #598: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffff00000000ffffff01, carry 0xfe)/(0xffffffffffffffff00000000ffffff01, carry 0xfe) +mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff00000000ffffff01":"fe":"ffffffffffffffff00000000ffffff01":"fe" + +mbedtls_mpi_core_mla #599: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeff00000000ffff0101, carry 0xfffe)/(0xfffffffffffffeff00000000ffff0101, carry 0xfffe) +mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff00000000ffff0101":"fffe":"fffffffffffffeff00000000ffff0101":"fffe" + +mbedtls_mpi_core_mla #600: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefffefdffff, carry 0xffff)/(0xfffffffffffffefefefefefffefdffff, carry 0xffff) +mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefffefdffff":"ffff":"fffffffffffffefefefefefffefdffff":"ffff" + +mbedtls_mpi_core_mla #601: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeff0000000001010101, carry 0xfffffffe)/(0xfffffffffefefeff0000000001010101, carry 0xfffffffe) +mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff0000000001010101":"fffffffe":"fffffffffefefeff0000000001010101":"fffffffe" + +mbedtls_mpi_core_mla #602: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefeffffffff, carry 0xffffffff)/(0xfffffffffefefefefefefefeffffffff, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefeffffffff":"ffffffff":"fffffffffefefefefefefefeffffffff":"ffffffff" + +mbedtls_mpi_core_mla #603: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840483028201, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840483028201, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840483028201":"7f7f7f7f7f7f7f7e":"ff800081018202828504840483028201":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #604: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f00000000ffffffff, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f00000000ffffffff, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f00000000ffffffff":"7fffffffffffffff":"ff7f7f7f7f7f7f7f00000000ffffffff":"7fffffffffffffff" + +mbedtls_mpi_core_mla #605: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020302020203, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020302020203, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020302020203":"fffffffffffffffd":"fefefefefefefefe0202020302020203":"fffffffffffffffd" + +mbedtls_mpi_core_mla #606: 0xffffffff + 0x100000000000000000000000000000000 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #607: 0xffffffff + 0x100000000000000000000000000000000 * 0x3 = (0x3000000000000000000000000ffffffff, carry 0x0)/(0x3000000000000000000000000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"3":"3000000000000000000000000ffffffff":"0":"3000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #608: 0xffffffff + 0x100000000000000000000000000000000 * 0xfe = (0xfe000000000000000000000000ffffffff, carry 0x0)/(0xfe000000000000000000000000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"fe":"fe000000000000000000000000ffffffff":"0":"fe000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #609: 0xffffffff + 0x100000000000000000000000000000000 * 0xff = (0xff000000000000000000000000ffffffff, carry 0x0)/(0xff000000000000000000000000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ff":"ff000000000000000000000000ffffffff":"0":"ff000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #610: 0xffffffff + 0x100000000000000000000000000000000 * 0xffff = (0xffff000000000000000000000000ffffffff, carry 0x0)/(0xffff000000000000000000000000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ffff":"ffff000000000000000000000000ffffffff":"0":"ffff000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #611: 0xffffffff + 0x100000000000000000000000000000000 * 0x10000 = (0x10000000000000000000000000000ffffffff, carry 0x0)/(0x10000000000000000000000000000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"10000":"10000000000000000000000000000ffffffff":"0":"10000000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #612: 0xffffffff + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff000000000000000000000000ffffffff, carry 0x0)/(0xffffffff000000000000000000000000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ffffffff":"ffffffff000000000000000000000000ffffffff":"0":"ffffffff000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #613: 0xffffffff + 0x100000000000000000000000000000000 * 0x100000000 = (0xffffffff, carry 0x1)/(0x100000000000000000000000000000000ffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"100000000":"ffffffff":"1":"100000000000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #614: 0xffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f000000000000000000000000ffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f000000000000000000000000ffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f000000000000000000000000ffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #615: 0xffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0xffffffff, carry 0x80000000)/(0x8000000000000000000000000000000000000000ffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"8000000000000000":"ffffffff":"80000000":"8000000000000000000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #616: 0xffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe000000000000000000000000ffffffff, carry 0xffffffff)/(0xfffffffffffffffe000000000000000000000000ffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe000000000000000000000000ffffffff":"ffffffff":"fffffffffffffffe000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #617: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #618: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369c20369ccf, carry 0x0)/(0x369d0369b20369cd0369d0369c20369ccf, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369c20369ccf":"0":"369d0369b20369cd0369d0369c20369ccf":"0" + +mbedtls_mpi_core_mla #619: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f9a765321f, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f9a765321f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f9a765321f":"0":"120fedcb9f8a76532320fedcb9f9a765321f":"0" + +mbedtls_mpi_core_mla #620: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222182b222110f, carry 0x0)/(0x12222222181b2221122222222182b222110f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222182b222110f":"0":"12222222181b2221122222222182b222110f":"0" + +mbedtls_mpi_core_mla #621: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a334d433210f, carry 0x0)/(0x123444443a333d433334444443a334d433210f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a334d433210f":"0":"123444443a333d433334444443a334d433210f":"0" + +mbedtls_mpi_core_mla #622: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abddeefffff, carry 0x0)/(0x1234567890abcdef01234567890abddeefffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abddeefffff":"0":"1234567890abcdef01234567890abddeefffff":"0" + +mbedtls_mpi_core_mla #623: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777767f543210f, carry 0x12)/(0x123456787e7777767077777887e7777767f543210f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777767f543210f":"12":"123456787e7777767077777887e7777767f543210f":"0" + +mbedtls_mpi_core_mla #624: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef0ffffffff, carry 0x12)/(0x1234567890abcdef01234567890abcdef0ffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef0ffffffff":"12":"1234567890abcdef01234567890abcdef0ffffffff":"0" + +mbedtls_mpi_core_mla #625: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708acaf5ba90f, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708acaf5ba90f, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708acaf5ba90f":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708acaf5ba90f":"9" + +mbedtls_mpi_core_mla #626: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f7800000000ffffffff, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f7800000000ffffffff":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"9" + +mbedtls_mpi_core_mla #627: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530eeea86421f, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530eeea86421f, carry 0x12) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530eeea86421f":"1234567890":"34567890abcdeedcba987667b32100edb97530eeea86421f":"12" + +mbedtls_mpi_core_mla #628: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #629: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffc, carry 0x3)/(0xfffffffc, carry 0x3) +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffc":"3":"fffffffc":"3" + +mbedtls_mpi_core_mla #630: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffff01, carry 0xfe)/(0xffffff01, carry 0xfe) +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffff01":"fe":"ffffff01":"fe" + +mbedtls_mpi_core_mla #631: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffff00, carry 0xff)/(0xffffff00, carry 0xff) +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffff00":"ff":"ffffff00":"ff" + +mbedtls_mpi_core_mla #632: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffff0000, carry 0xffff)/(0xffff0000, carry 0xffff) +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff0000":"ffff":"ffff0000":"ffff" + +mbedtls_mpi_core_mla #633: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffeffff, carry 0x10000)/(0xfffeffff, carry 0x10000) +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffeffff":"10000":"fffeffff":"10000" + +mbedtls_mpi_core_mla #634: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x0, carry 0xffffffff)/(0x0, carry 0xffffffff) +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff" + +mbedtls_mpi_core_mla #635: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff" + +mbedtls_mpi_core_mla #636: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #637: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff":"7fffffffffffffff" + +mbedtls_mpi_core_mla #638: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001":"fffffffffffffffd" + +mbedtls_mpi_core_mla #639: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #640: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf":"0" + +mbedtls_mpi_core_mla #641: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f":"0" + +mbedtls_mpi_core_mla #642: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222182b222110f, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222182b222110f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222182b222110f":"0":"12222222181b2221122222222181b2221122222222181b2221122222222182b222110f":"0" + +mbedtls_mpi_core_mla #643: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f":"0" + +mbedtls_mpi_core_mla #644: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff":"0" + +mbedtls_mpi_core_mla #645: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f":"0" + +mbedtls_mpi_core_mla #646: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff":"0" + +mbedtls_mpi_core_mla #647: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f, carry 0x911) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f":"911" + +mbedtls_mpi_core_mla #648: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff, carry 0x91a) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"91a" + +mbedtls_mpi_core_mla #649: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f, carry 0x1234) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f":"1234" + +mbedtls_mpi_core_mla #650: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #651: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380":"0" + +mbedtls_mpi_core_mla #652: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9":"0" + +mbedtls_mpi_core_mla #653: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4":"0" + +mbedtls_mpi_core_mla #654: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4":"0" + +mbedtls_mpi_core_mla #655: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff":"0" + +mbedtls_mpi_core_mla #656: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4, carry 0x4) +mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4":"4" + +mbedtls_mpi_core_mla #657: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff, carry 0x4) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff":"4" + +mbedtls_mpi_core_mla #658: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954, carry 0x26d473ca9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954":"26d473ca9" + +mbedtls_mpi_core_mla #659: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff, carry 0x26fb9683d) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff":"26fb9683d" + +mbedtls_mpi_core_mla #660: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9, carry 0x4df72d07b) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9":"4df72d07b" + +mbedtls_mpi_core_mla #661: 0x100000000 + 0x0 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"0":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #662: 0x100000000 + 0x0 * 0x3 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"0":"3":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #663: 0x100000000 + 0x0 * 0xfe = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"0":"fe":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #664: 0x100000000 + 0x0 * 0xff = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"0":"ff":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #665: 0x100000000 + 0x0 * 0xffff = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"0":"ffff":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #666: 0x100000000 + 0x0 * 0x10000 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"0":"10000":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #667: 0x100000000 + 0x0 * 0xffffffff = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"0":"ffffffff":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #668: 0x100000000 + 0x0 * 0x100000000 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"0":"100000000":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #669: 0x100000000 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"0":"7f7f7f7f7f7f7f7f":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #670: 0x100000000 + 0x0 * 0x8000000000000000 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"0":"8000000000000000":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #671: 0x100000000 + 0x0 * 0xfffffffffffffffe = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"0":"fffffffffffffffe":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #672: 0x100000000 + 0x1 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #673: 0x100000000 + 0x1 * 0x3 = (0x100000003, carry 0x0)/(0x100000003, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1":"3":"100000003":"0":"100000003":"0" + +mbedtls_mpi_core_mla #674: 0x100000000 + 0x1 * 0xfe = (0x1000000fe, carry 0x0)/(0x1000000fe, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1":"fe":"1000000fe":"0":"1000000fe":"0" + +mbedtls_mpi_core_mla #675: 0x100000000 + 0x1 * 0xff = (0x1000000ff, carry 0x0)/(0x1000000ff, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1":"ff":"1000000ff":"0":"1000000ff":"0" + +mbedtls_mpi_core_mla #676: 0x100000000 + 0x1 * 0xffff = (0x10000ffff, carry 0x0)/(0x10000ffff, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1":"ffff":"10000ffff":"0":"10000ffff":"0" + +mbedtls_mpi_core_mla #677: 0x100000000 + 0x1 * 0x10000 = (0x100010000, carry 0x0)/(0x100010000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1":"10000":"100010000":"0":"100010000":"0" + +mbedtls_mpi_core_mla #678: 0x100000000 + 0x1 * 0xffffffff = (0x1ffffffff, carry 0x0)/(0x1ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1":"ffffffff":"1ffffffff":"0":"1ffffffff":"0" + +mbedtls_mpi_core_mla #679: 0x100000000 + 0x1 * 0x100000000 = (0x200000000, carry 0x0)/(0x200000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"1":"100000000":"200000000":"0":"200000000":"0" + +mbedtls_mpi_core_mla #680: 0x100000000 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f807f7f7f7f, carry 0x0)/(0x7f7f7f807f7f7f7f, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"1":"7f7f7f7f7f7f7f7f":"7f7f7f807f7f7f7f":"0":"7f7f7f807f7f7f7f":"0" + +mbedtls_mpi_core_mla #681: 0x100000000 + 0x1 * 0x8000000000000000 = (0x8000000100000000, carry 0x0)/(0x8000000100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"1":"8000000000000000":"8000000100000000":"0":"8000000100000000":"0" + +mbedtls_mpi_core_mla #682: 0x100000000 + 0x1 * 0xfffffffffffffffe = (0xfffffffe, carry 0x1)/(0xfffffffe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"1":"fffffffffffffffe":"fffffffe":"1":"fffffffe":"1" + +mbedtls_mpi_core_mla #683: 0x100000000 + 0xfffe * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"fffe":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #684: 0x100000000 + 0xfffe * 0x3 = (0x10002fffa, carry 0x0)/(0x10002fffa, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"fffe":"3":"10002fffa":"0":"10002fffa":"0" + +mbedtls_mpi_core_mla #685: 0x100000000 + 0xfffe * 0xfe = (0x100fdfe04, carry 0x0)/(0x100fdfe04, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"fffe":"fe":"100fdfe04":"0":"100fdfe04":"0" + +mbedtls_mpi_core_mla #686: 0x100000000 + 0xfffe * 0xff = (0x100fefe02, carry 0x0)/(0x100fefe02, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"fffe":"ff":"100fefe02":"0":"100fefe02":"0" + +mbedtls_mpi_core_mla #687: 0x100000000 + 0xfffe * 0xffff = (0x1fffd0002, carry 0x0)/(0x1fffd0002, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"fffe":"ffff":"1fffd0002":"0":"1fffd0002":"0" + +mbedtls_mpi_core_mla #688: 0x100000000 + 0xfffe * 0x10000 = (0x1fffe0000, carry 0x0)/(0x1fffe0000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"fffe":"10000":"1fffe0000":"0":"1fffe0000":"0" + +mbedtls_mpi_core_mla #689: 0x100000000 + 0xfffe * 0xffffffff = (0xfffeffff0002, carry 0x0)/(0xfffeffff0002, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"fffe":"ffffffff":"fffeffff0002":"0":"fffeffff0002":"0" + +mbedtls_mpi_core_mla #690: 0x100000000 + 0xfffe * 0x100000000 = (0xffff00000000, carry 0x0)/(0xffff00000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"fffe":"100000000":"ffff00000000":"0":"ffff00000000":"0" + +mbedtls_mpi_core_mla #691: 0x100000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x8080808180800102, carry 0x7f7e)/(0x8080808180800102, carry 0x7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"fffe":"7f7f7f7f7f7f7f7f":"8080808180800102":"7f7e":"8080808180800102":"7f7e" + +mbedtls_mpi_core_mla #692: 0x100000000 + 0xfffe * 0x8000000000000000 = (0x100000000, carry 0x7fff)/(0x100000000, carry 0x7fff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"fffe":"8000000000000000":"100000000":"7fff":"100000000":"7fff" + +mbedtls_mpi_core_mla #693: 0x100000000 + 0xfffe * 0xfffffffffffffffe = (0xfffe0004, carry 0xfffe)/(0xfffe0004, carry 0xfffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"fffe":"fffffffffffffffe":"fffe0004":"fffe":"fffe0004":"fffe" + +mbedtls_mpi_core_mla #694: 0x100000000 + 0xffffffff * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"ffffffff":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #695: 0x100000000 + 0xffffffff * 0x3 = (0x3fffffffd, carry 0x0)/(0x3fffffffd, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"ffffffff":"3":"3fffffffd":"0":"3fffffffd":"0" + +mbedtls_mpi_core_mla #696: 0x100000000 + 0xffffffff * 0xfe = (0xfeffffff02, carry 0x0)/(0xfeffffff02, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"ffffffff":"fe":"feffffff02":"0":"feffffff02":"0" + +mbedtls_mpi_core_mla #697: 0x100000000 + 0xffffffff * 0xff = (0xffffffff01, carry 0x0)/(0xffffffff01, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"ffffffff":"ff":"ffffffff01":"0":"ffffffff01":"0" + +mbedtls_mpi_core_mla #698: 0x100000000 + 0xffffffff * 0xffff = (0xffffffff0001, carry 0x0)/(0xffffffff0001, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"ffffffff":"ffff":"ffffffff0001":"0":"ffffffff0001":"0" + +mbedtls_mpi_core_mla #699: 0x100000000 + 0xffffffff * 0x10000 = (0x10000ffff0000, carry 0x0)/(0x10000ffff0000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"ffffffff":"10000":"10000ffff0000":"0":"10000ffff0000":"0" + +mbedtls_mpi_core_mla #700: 0x100000000 + 0xffffffff * 0xffffffff = (0xffffffff00000001, carry 0x0)/(0xffffffff00000001, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"ffffffff":"ffffffff":"ffffffff00000001":"0":"ffffffff00000001":"0" + +mbedtls_mpi_core_mla #701: 0x100000000 + 0xffffffff * 0x100000000 = (0x0, carry 0x1)/(0x0, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"ffffffff":"100000000":"0":"1":"0":"1" + +mbedtls_mpi_core_mla #702: 0x100000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x80808081, carry 0x7f7f7f7f)/(0x80808081, carry 0x7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"ffffffff":"7f7f7f7f7f7f7f7f":"80808081":"7f7f7f7f":"80808081":"7f7f7f7f" + +mbedtls_mpi_core_mla #703: 0x100000000 + 0xffffffff * 0x8000000000000000 = (0x8000000100000000, carry 0x7fffffff)/(0x8000000100000000, carry 0x7fffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"ffffffff":"8000000000000000":"8000000100000000":"7fffffff":"8000000100000000":"7fffffff" + +mbedtls_mpi_core_mla #704: 0x100000000 + 0xffffffff * 0xfffffffffffffffe = (0xffffffff00000002, carry 0xfffffffe)/(0xffffffff00000002, carry 0xfffffffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"ffffffff":"fffffffffffffffe":"ffffffff00000002":"fffffffe":"ffffffff00000002":"fffffffe" + +mbedtls_mpi_core_mla #705: 0x100000000 + 0x100000000 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"100000000":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #706: 0x100000000 + 0x100000000 * 0x3 = (0x400000000, carry 0x0)/(0x400000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"100000000":"3":"400000000":"0":"400000000":"0" + +mbedtls_mpi_core_mla #707: 0x100000000 + 0x100000000 * 0xfe = (0xff00000000, carry 0x0)/(0xff00000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"100000000":"fe":"ff00000000":"0":"ff00000000":"0" + +mbedtls_mpi_core_mla #708: 0x100000000 + 0x100000000 * 0xff = (0x10000000000, carry 0x0)/(0x10000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"100000000":"ff":"10000000000":"0":"10000000000":"0" + +mbedtls_mpi_core_mla #709: 0x100000000 + 0x100000000 * 0xffff = (0x1000000000000, carry 0x0)/(0x1000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"100000000":"ffff":"1000000000000":"0":"1000000000000":"0" + +mbedtls_mpi_core_mla #710: 0x100000000 + 0x100000000 * 0x10000 = (0x1000100000000, carry 0x0)/(0x1000100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"100000000":"10000":"1000100000000":"0":"1000100000000":"0" + +mbedtls_mpi_core_mla #711: 0x100000000 + 0x100000000 * 0xffffffff = (0x0, carry 0x1)/(0x0, carry 0x1) +mbedtls_mpi_core_mla:"100000000":"100000000":"ffffffff":"0":"1":"0":"1" + +mbedtls_mpi_core_mla #712: 0x100000000 + 0x100000000 * 0x100000000 = (0x100000000, carry 0x1)/(0x100000000, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"100000000":"100000000":"100000000":"1":"100000000":"1" + +mbedtls_mpi_core_mla #713: 0x100000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f8000000000, carry 0x7f7f7f7f)/(0x7f7f7f8000000000, carry 0x7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f8000000000":"7f7f7f7f":"7f7f7f8000000000":"7f7f7f7f" + +mbedtls_mpi_core_mla #714: 0x100000000 + 0x100000000 * 0x8000000000000000 = (0x100000000, carry 0x80000000)/(0x100000000, carry 0x80000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"100000000":"8000000000000000":"100000000":"80000000":"100000000":"80000000" + +mbedtls_mpi_core_mla #715: 0x100000000 + 0x100000000 * 0xfffffffffffffffe = (0xffffffff00000000, carry 0xffffffff)/(0xffffffff00000000, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"100000000":"fffffffffffffffe":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" + +mbedtls_mpi_core_mla #716: 0x100000000 + 0x20000000000000 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"20000000000000":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #717: 0x100000000 + 0x20000000000000 * 0x3 = (0x60000100000000, carry 0x0)/(0x60000100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"20000000000000":"3":"60000100000000":"0":"60000100000000":"0" + +mbedtls_mpi_core_mla #718: 0x100000000 + 0x20000000000000 * 0xfe = (0x1fc0000100000000, carry 0x0)/(0x1fc0000100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"20000000000000":"fe":"1fc0000100000000":"0":"1fc0000100000000":"0" + +mbedtls_mpi_core_mla #719: 0x100000000 + 0x20000000000000 * 0xff = (0x1fe0000100000000, carry 0x0)/(0x1fe0000100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"20000000000000":"ff":"1fe0000100000000":"0":"1fe0000100000000":"0" + +mbedtls_mpi_core_mla #720: 0x100000000 + 0x20000000000000 * 0xffff = (0xffe0000100000000, carry 0x1f)/(0xffe0000100000000, carry 0x1f) +mbedtls_mpi_core_mla:"100000000":"20000000000000":"ffff":"ffe0000100000000":"1f":"ffe0000100000000":"1f" + +mbedtls_mpi_core_mla #721: 0x100000000 + 0x20000000000000 * 0x10000 = (0x100000000, carry 0x20)/(0x100000000, carry 0x20) +mbedtls_mpi_core_mla:"100000000":"20000000000000":"10000":"100000000":"20":"100000000":"20" + +mbedtls_mpi_core_mla #722: 0x100000000 + 0x20000000000000 * 0xffffffff = (0xffe0000100000000, carry 0x1fffff)/(0xffe0000100000000, carry 0x1fffff) +mbedtls_mpi_core_mla:"100000000":"20000000000000":"ffffffff":"ffe0000100000000":"1fffff":"ffe0000100000000":"1fffff" + +mbedtls_mpi_core_mla #723: 0x100000000 + 0x20000000000000 * 0x100000000 = (0x100000000, carry 0x200000)/(0x100000000, carry 0x200000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"20000000000000":"100000000":"100000000":"200000":"100000000":"200000" + +mbedtls_mpi_core_mla #724: 0x100000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe0000100000000, carry 0xfefefefefefef)/(0xefe0000100000000, carry 0xfefefefefefef) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000100000000":"fefefefefefef":"efe0000100000000":"fefefefefefef" + +mbedtls_mpi_core_mla #725: 0x100000000 + 0x20000000000000 * 0x8000000000000000 = (0x100000000, carry 0x10000000000000)/(0x100000000, carry 0x10000000000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"20000000000000":"8000000000000000":"100000000":"10000000000000":"100000000":"10000000000000" + +mbedtls_mpi_core_mla #726: 0x100000000 + 0x20000000000000 * 0xfffffffffffffffe = (0xffc0000100000000, carry 0x1fffffffffffff)/(0xffc0000100000000, carry 0x1fffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"20000000000000":"fffffffffffffffe":"ffc0000100000000":"1fffffffffffff":"ffc0000100000000":"1fffffffffffff" + +mbedtls_mpi_core_mla #727: 0x100000000 + 0xffffffffffffffff * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #728: 0x100000000 + 0xffffffffffffffff * 0x3 = (0xfffffffd, carry 0x3)/(0xfffffffd, carry 0x3) +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"3":"fffffffd":"3":"fffffffd":"3" + +mbedtls_mpi_core_mla #729: 0x100000000 + 0xffffffffffffffff * 0xfe = (0xffffff02, carry 0xfe)/(0xffffff02, carry 0xfe) +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"fe":"ffffff02":"fe":"ffffff02":"fe" + +mbedtls_mpi_core_mla #730: 0x100000000 + 0xffffffffffffffff * 0xff = (0xffffff01, carry 0xff)/(0xffffff01, carry 0xff) +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"ff":"ffffff01":"ff":"ffffff01":"ff" + +mbedtls_mpi_core_mla #731: 0x100000000 + 0xffffffffffffffff * 0xffff = (0xffff0001, carry 0xffff)/(0xffff0001, carry 0xffff) +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"ffff":"ffff0001":"ffff":"ffff0001":"ffff" + +mbedtls_mpi_core_mla #732: 0x100000000 + 0xffffffffffffffff * 0x10000 = (0xffff0000, carry 0x10000)/(0xffff0000, carry 0x10000) +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"10000":"ffff0000":"10000":"ffff0000":"10000" + +mbedtls_mpi_core_mla #733: 0x100000000 + 0xffffffffffffffff * 0xffffffff = (0x1, carry 0xffffffff)/(0x1, carry 0xffffffff) +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"ffffffff":"1":"ffffffff":"1":"ffffffff" + +mbedtls_mpi_core_mla #734: 0x100000000 + 0xffffffffffffffff * 0x100000000 = (0x0, carry 0x100000000)/(0x0, carry 0x100000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"100000000":"0":"100000000":"0":"100000000" + +mbedtls_mpi_core_mla #735: 0x100000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808180808081, carry 0x7f7f7f7f7f7f7f7e)/(0x8080808180808081, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808180808081":"7f7f7f7f7f7f7f7e":"8080808180808081":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #736: 0x100000000 + 0xffffffffffffffff * 0x8000000000000000 = (0x8000000100000000, carry 0x7fffffffffffffff)/(0x8000000100000000, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"8000000000000000":"8000000100000000":"7fffffffffffffff":"8000000100000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #737: 0x100000000 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x100000002, carry 0xfffffffffffffffd)/(0x100000002, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"fffffffffffffffe":"100000002":"fffffffffffffffd":"100000002":"fffffffffffffffd" + +mbedtls_mpi_core_mla #738: 0x100000000 + 0x10000000000000000 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"10000000000000000":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #739: 0x100000000 + 0x10000000000000000 * 0x3 = (0x30000000100000000, carry 0x0)/(0x30000000100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"10000000000000000":"3":"30000000100000000":"0":"30000000100000000":"0" + +mbedtls_mpi_core_mla #740: 0x100000000 + 0x10000000000000000 * 0xfe = (0xfe0000000100000000, carry 0x0)/(0xfe0000000100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"10000000000000000":"fe":"fe0000000100000000":"0":"fe0000000100000000":"0" + +mbedtls_mpi_core_mla #741: 0x100000000 + 0x10000000000000000 * 0xff = (0xff0000000100000000, carry 0x0)/(0xff0000000100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"10000000000000000":"ff":"ff0000000100000000":"0":"ff0000000100000000":"0" + +mbedtls_mpi_core_mla #742: 0x100000000 + 0x10000000000000000 * 0xffff = (0xffff0000000100000000, carry 0x0)/(0xffff0000000100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"10000000000000000":"ffff":"ffff0000000100000000":"0":"ffff0000000100000000":"0" + +mbedtls_mpi_core_mla #743: 0x100000000 + 0x10000000000000000 * 0x10000 = (0x100000000000100000000, carry 0x0)/(0x100000000000100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"10000000000000000":"10000":"100000000000100000000":"0":"100000000000100000000":"0" + +mbedtls_mpi_core_mla #744: 0x100000000 + 0x10000000000000000 * 0xffffffff = (0xffffffff0000000100000000, carry 0x0)/(0xffffffff0000000100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"10000000000000000":"ffffffff":"ffffffff0000000100000000":"0":"ffffffff0000000100000000":"0" + +mbedtls_mpi_core_mla #745: 0x100000000 + 0x10000000000000000 * 0x100000000 = (0x100000000, carry 0x1)/(0x1000000000000000100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"10000000000000000":"100000000":"100000000":"1":"1000000000000000100000000":"0" + +mbedtls_mpi_core_mla #746: 0x100000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000100000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000100000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000100000000":"0" + +mbedtls_mpi_core_mla #747: 0x100000000 + 0x10000000000000000 * 0x8000000000000000 = (0x100000000, carry 0x80000000)/(0x80000000000000000000000100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"10000000000000000":"8000000000000000":"100000000":"80000000":"80000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #748: 0x100000000 + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000100000000, carry 0xffffffff)/(0xfffffffffffffffe0000000100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"10000000000000000":"fffffffffffffffe":"fffffffe0000000100000000":"ffffffff":"fffffffffffffffe0000000100000000":"0" + +mbedtls_mpi_core_mla #749: 0x100000000 + 0x1234567890abcdef0 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #750: 0x100000000 + 0x1234567890abcdef0 * 0x3 = (0x369d0369c20369cd0, carry 0x0)/(0x369d0369c20369cd0, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"3":"369d0369c20369cd0":"0":"369d0369c20369cd0":"0" + +mbedtls_mpi_core_mla #751: 0x100000000 + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f9a7653220, carry 0x0)/(0x120fedcb9f9a7653220, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"fe":"120fedcb9f9a7653220":"0":"120fedcb9f9a7653220":"0" + +mbedtls_mpi_core_mla #752: 0x100000000 + 0x1234567890abcdef0 * 0xff = (0x12222222182b2221110, carry 0x0)/(0x12222222182b2221110, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"ff":"12222222182b2221110":"0":"12222222182b2221110":"0" + +mbedtls_mpi_core_mla #753: 0x100000000 + 0x1234567890abcdef0 * 0xffff = (0x123444443a334d4332110, carry 0x0)/(0x123444443a334d4332110, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"ffff":"123444443a334d4332110":"0":"123444443a334d4332110":"0" + +mbedtls_mpi_core_mla #754: 0x100000000 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abddef00000, carry 0x0)/(0x1234567890abddef00000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"10000":"1234567890abddef00000":"0":"1234567890abddef00000":"0" + +mbedtls_mpi_core_mla #755: 0x100000000 + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777767f5432110, carry 0x1)/(0x123456787e7777767f5432110, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"ffffffff":"23456787e7777767f5432110":"1":"123456787e7777767f5432110":"0" + +mbedtls_mpi_core_mla #756: 0x100000000 + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef100000000, carry 0x1)/(0x1234567890abcdef100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"100000000":"234567890abcdef100000000":"1":"1234567890abcdef100000000":"0" + +mbedtls_mpi_core_mla #757: 0x100000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708acaf5ba910, carry 0x91107edb)/(0x91107edbd82bde76f67708acaf5ba910, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708acaf5ba910":"91107edb":"91107edbd82bde76f67708acaf5ba910":"0" + +mbedtls_mpi_core_mla #758: 0x100000000 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f780000000100000000, carry 0x91a2b3c4)/(0x91a2b3c4855e6f780000000100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"8000000000000000":"855e6f780000000100000000":"91a2b3c4":"91a2b3c4855e6f780000000100000000":"0" + +mbedtls_mpi_core_mla #759: 0x100000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530eeea864220, carry 0x123456789)/(0x234567890abcdeedb97530eeea864220, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530eeea864220":"123456789":"234567890abcdeedb97530eeea864220":"1" + +mbedtls_mpi_core_mla #760: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #761: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfdfcfcfcfa, carry 0x2)/(0xfffffffffffffffffcfcfcfdfcfcfcfa, carry 0x2) +mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfdfcfcfcfa":"2":"fffffffffffffffffcfcfcfdfcfcfcfa":"2" + +mbedtls_mpi_core_mla #762: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010201010004, carry 0xfd)/(0xffffffffffffffff0101010201010004, carry 0xfd) +mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010201010004":"fd":"ffffffffffffffff0101010201010004":"fd" + +mbedtls_mpi_core_mla #763: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffff00000000ffffff02, carry 0xfe)/(0xffffffffffffffff00000000ffffff02, carry 0xfe) +mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff00000000ffffff02":"fe":"ffffffffffffffff00000000ffffff02":"fe" + +mbedtls_mpi_core_mla #764: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeff00000000ffff0102, carry 0xfffe)/(0xfffffffffffffeff00000000ffff0102, carry 0xfffe) +mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff00000000ffff0102":"fffe":"fffffffffffffeff00000000ffff0102":"fffe" + +mbedtls_mpi_core_mla #765: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefffefe0000, carry 0xffff)/(0xfffffffffffffefefefefefffefe0000, carry 0xffff) +mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefffefe0000":"ffff":"fffffffffffffefefefefefffefe0000":"ffff" + +mbedtls_mpi_core_mla #766: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeff0000000001010102, carry 0xfffffffe)/(0xfffffffffefefeff0000000001010102, carry 0xfffffffe) +mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff0000000001010102":"fffffffe":"fffffffffefefeff0000000001010102":"fffffffe" + +mbedtls_mpi_core_mla #767: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefeff00000000, carry 0xffffffff)/(0xfffffffffefefefefefefeff00000000, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefeff00000000":"ffffffff":"fffffffffefefefefefefeff00000000":"ffffffff" + +mbedtls_mpi_core_mla #768: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840483028202, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840483028202, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840483028202":"7f7f7f7f7f7f7f7e":"ff800081018202828504840483028202":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #769: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0000000100000000, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f0000000100000000, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000100000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000100000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #770: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020302020204, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020302020204, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020302020204":"fffffffffffffffd":"fefefefefefefefe0202020302020204":"fffffffffffffffd" + +mbedtls_mpi_core_mla #771: 0x100000000 + 0x100000000000000000000000000000000 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #772: 0x100000000 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000000000000100000000, carry 0x0)/(0x300000000000000000000000100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"3":"300000000000000000000000100000000":"0":"300000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #773: 0x100000000 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000000000000100000000, carry 0x0)/(0xfe00000000000000000000000100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"fe":"fe00000000000000000000000100000000":"0":"fe00000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #774: 0x100000000 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000000000000100000000, carry 0x0)/(0xff00000000000000000000000100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"ff":"ff00000000000000000000000100000000":"0":"ff00000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #775: 0x100000000 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000000000000100000000, carry 0x0)/(0xffff00000000000000000000000100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000100000000":"0":"ffff00000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #776: 0x100000000 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000000000000100000000, carry 0x0)/(0x1000000000000000000000000000100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"10000":"1000000000000000000000000000100000000":"0":"1000000000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #777: 0x100000000 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000000000000100000000, carry 0x0)/(0xffffffff00000000000000000000000100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000100000000":"0":"ffffffff00000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #778: 0x100000000 + 0x100000000000000000000000000000000 * 0x100000000 = (0x100000000, carry 0x1)/(0x10000000000000000000000000000000100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"100000000":"100000000":"1":"10000000000000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #779: 0x100000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000000000000100000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000000000000100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000100000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #780: 0x100000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x100000000, carry 0x80000000)/(0x800000000000000000000000000000000000000100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"8000000000000000":"100000000":"80000000":"800000000000000000000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #781: 0x100000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000000000000100000000, carry 0xffffffff)/(0xfffffffffffffffe00000000000000000000000100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000100000000":"ffffffff":"fffffffffffffffe00000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #782: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #783: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369c20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369c20369cd0, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369c20369cd0":"0":"369d0369b20369cd0369d0369c20369cd0":"0" + +mbedtls_mpi_core_mla #784: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f9a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f9a7653220, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f9a7653220":"0":"120fedcb9f8a76532320fedcb9f9a7653220":"0" + +mbedtls_mpi_core_mla #785: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222182b2221110, carry 0x0)/(0x12222222181b2221122222222182b2221110, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222182b2221110":"0":"12222222181b2221122222222182b2221110":"0" + +mbedtls_mpi_core_mla #786: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a334d4332110, carry 0x0)/(0x123444443a333d433334444443a334d4332110, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a334d4332110":"0":"123444443a333d433334444443a334d4332110":"0" + +mbedtls_mpi_core_mla #787: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abddef00000, carry 0x0)/(0x1234567890abcdef01234567890abddef00000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abddef00000":"0":"1234567890abcdef01234567890abddef00000":"0" + +mbedtls_mpi_core_mla #788: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777767f5432110, carry 0x12)/(0x123456787e7777767077777887e7777767f5432110, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777767f5432110":"12":"123456787e7777767077777887e7777767f5432110":"0" + +mbedtls_mpi_core_mla #789: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef100000000, carry 0x12)/(0x1234567890abcdef01234567890abcdef100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef100000000":"12":"1234567890abcdef01234567890abcdef100000000":"0" + +mbedtls_mpi_core_mla #790: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708acaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708acaf5ba910, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708acaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708acaf5ba910":"9" + +mbedtls_mpi_core_mla #791: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f780000000100000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f780000000100000000, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000100000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"9" + +mbedtls_mpi_core_mla #792: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530eeea864220, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530eeea864220, carry 0x12) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530eeea864220":"1234567890":"34567890abcdeedcba987667b32100edb97530eeea864220":"12" + +mbedtls_mpi_core_mla #793: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #794: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffd, carry 0x3)/(0xfffffffd, carry 0x3) +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffd":"3":"fffffffd":"3" + +mbedtls_mpi_core_mla #795: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffff02, carry 0xfe)/(0xffffff02, carry 0xfe) +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffff02":"fe":"ffffff02":"fe" + +mbedtls_mpi_core_mla #796: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffff01, carry 0xff)/(0xffffff01, carry 0xff) +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffff01":"ff":"ffffff01":"ff" + +mbedtls_mpi_core_mla #797: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffff0001, carry 0xffff)/(0xffff0001, carry 0xffff) +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff0001":"ffff":"ffff0001":"ffff" + +mbedtls_mpi_core_mla #798: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffff0000, carry 0x10000)/(0xffff0000, carry 0x10000) +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffff0000":"10000":"ffff0000":"10000" + +mbedtls_mpi_core_mla #799: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1, carry 0xffffffff)/(0x1, carry 0xffffffff) +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1":"ffffffff":"1":"ffffffff" + +mbedtls_mpi_core_mla #800: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x0, carry 0x100000000)/(0x0, carry 0x100000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"0":"100000000":"0":"100000000" + +mbedtls_mpi_core_mla #801: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #802: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #803: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002":"fffffffffffffffd" + +mbedtls_mpi_core_mla #804: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #805: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0":"0" + +mbedtls_mpi_core_mla #806: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220":"0" + +mbedtls_mpi_core_mla #807: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222182b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222182b2221110, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222182b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222182b2221110":"0" + +mbedtls_mpi_core_mla #808: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110":"0" + +mbedtls_mpi_core_mla #809: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000":"0" + +mbedtls_mpi_core_mla #810: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110":"0" + +mbedtls_mpi_core_mla #811: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000":"0" + +mbedtls_mpi_core_mla #812: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910, carry 0x911) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910":"911" + +mbedtls_mpi_core_mla #813: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000, carry 0x91a) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"91a" + +mbedtls_mpi_core_mla #814: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220, carry 0x1234) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220":"1234" + +mbedtls_mpi_core_mla #815: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #816: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381":"0" + +mbedtls_mpi_core_mla #817: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa":"0" + +mbedtls_mpi_core_mla #818: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5":"0" + +mbedtls_mpi_core_mla #819: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5":"0" + +mbedtls_mpi_core_mla #820: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000, carry 0x0) +mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000":"0" + +mbedtls_mpi_core_mla #821: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5, carry 0x4) +mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5":"4" + +mbedtls_mpi_core_mla #822: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000, carry 0x4) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000":"4" + +mbedtls_mpi_core_mla #823: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955, carry 0x26d473ca9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955":"26d473ca9" + +mbedtls_mpi_core_mla #824: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000, carry 0x26fb9683d) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000":"26fb9683d" + +mbedtls_mpi_core_mla #825: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa, carry 0x4df72d07b) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa":"4df72d07b" + +mbedtls_mpi_core_mla #826: 0x20000000000000 + 0x0 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"0":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #827: 0x20000000000000 + 0x0 * 0x3 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"0":"3":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #828: 0x20000000000000 + 0x0 * 0xfe = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"0":"fe":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #829: 0x20000000000000 + 0x0 * 0xff = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"0":"ff":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #830: 0x20000000000000 + 0x0 * 0xffff = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"0":"ffff":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #831: 0x20000000000000 + 0x0 * 0x10000 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"0":"10000":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #832: 0x20000000000000 + 0x0 * 0xffffffff = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"0":"ffffffff":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #833: 0x20000000000000 + 0x0 * 0x100000000 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"0":"100000000":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #834: 0x20000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"0":"7f7f7f7f7f7f7f7f":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #835: 0x20000000000000 + 0x0 * 0x8000000000000000 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"0":"8000000000000000":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #836: 0x20000000000000 + 0x0 * 0xfffffffffffffffe = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"0":"fffffffffffffffe":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #837: 0x20000000000000 + 0x1 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #838: 0x20000000000000 + 0x1 * 0x3 = (0x20000000000003, carry 0x0)/(0x20000000000003, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1":"3":"20000000000003":"0":"20000000000003":"0" + +mbedtls_mpi_core_mla #839: 0x20000000000000 + 0x1 * 0xfe = (0x200000000000fe, carry 0x0)/(0x200000000000fe, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1":"fe":"200000000000fe":"0":"200000000000fe":"0" + +mbedtls_mpi_core_mla #840: 0x20000000000000 + 0x1 * 0xff = (0x200000000000ff, carry 0x0)/(0x200000000000ff, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1":"ff":"200000000000ff":"0":"200000000000ff":"0" + +mbedtls_mpi_core_mla #841: 0x20000000000000 + 0x1 * 0xffff = (0x2000000000ffff, carry 0x0)/(0x2000000000ffff, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1":"ffff":"2000000000ffff":"0":"2000000000ffff":"0" + +mbedtls_mpi_core_mla #842: 0x20000000000000 + 0x1 * 0x10000 = (0x20000000010000, carry 0x0)/(0x20000000010000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1":"10000":"20000000010000":"0":"20000000010000":"0" + +mbedtls_mpi_core_mla #843: 0x20000000000000 + 0x1 * 0xffffffff = (0x200000ffffffff, carry 0x0)/(0x200000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1":"ffffffff":"200000ffffffff":"0":"200000ffffffff":"0" + +mbedtls_mpi_core_mla #844: 0x20000000000000 + 0x1 * 0x100000000 = (0x20000100000000, carry 0x0)/(0x20000100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"1":"100000000":"20000100000000":"0":"20000100000000":"0" + +mbedtls_mpi_core_mla #845: 0x20000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f9f7f7f7f7f7f7f, carry 0x0)/(0x7f9f7f7f7f7f7f7f, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"1":"7f7f7f7f7f7f7f7f":"7f9f7f7f7f7f7f7f":"0":"7f9f7f7f7f7f7f7f":"0" + +mbedtls_mpi_core_mla #846: 0x20000000000000 + 0x1 * 0x8000000000000000 = (0x8020000000000000, carry 0x0)/(0x8020000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"1":"8000000000000000":"8020000000000000":"0":"8020000000000000":"0" + +mbedtls_mpi_core_mla #847: 0x20000000000000 + 0x1 * 0xfffffffffffffffe = (0x1ffffffffffffe, carry 0x1)/(0x1ffffffffffffe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"1":"fffffffffffffffe":"1ffffffffffffe":"1":"1ffffffffffffe":"1" + +mbedtls_mpi_core_mla #848: 0x20000000000000 + 0xfffe * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"fffe":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #849: 0x20000000000000 + 0xfffe * 0x3 = (0x2000000002fffa, carry 0x0)/(0x2000000002fffa, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"fffe":"3":"2000000002fffa":"0":"2000000002fffa":"0" + +mbedtls_mpi_core_mla #850: 0x20000000000000 + 0xfffe * 0xfe = (0x20000000fdfe04, carry 0x0)/(0x20000000fdfe04, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"fffe":"fe":"20000000fdfe04":"0":"20000000fdfe04":"0" + +mbedtls_mpi_core_mla #851: 0x20000000000000 + 0xfffe * 0xff = (0x20000000fefe02, carry 0x0)/(0x20000000fefe02, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"fffe":"ff":"20000000fefe02":"0":"20000000fefe02":"0" + +mbedtls_mpi_core_mla #852: 0x20000000000000 + 0xfffe * 0xffff = (0x200000fffd0002, carry 0x0)/(0x200000fffd0002, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"fffe":"ffff":"200000fffd0002":"0":"200000fffd0002":"0" + +mbedtls_mpi_core_mla #853: 0x20000000000000 + 0xfffe * 0x10000 = (0x200000fffe0000, carry 0x0)/(0x200000fffe0000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"fffe":"10000":"200000fffe0000":"0":"200000fffe0000":"0" + +mbedtls_mpi_core_mla #854: 0x20000000000000 + 0xfffe * 0xffffffff = (0x20fffdffff0002, carry 0x0)/(0x20fffdffff0002, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"fffe":"ffffffff":"20fffdffff0002":"0":"20fffdffff0002":"0" + +mbedtls_mpi_core_mla #855: 0x20000000000000 + 0xfffe * 0x100000000 = (0x20fffe00000000, carry 0x0)/(0x20fffe00000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"fffe":"100000000":"20fffe00000000":"0":"20fffe00000000":"0" + +mbedtls_mpi_core_mla #856: 0x20000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80a0808080800102, carry 0x7f7e)/(0x80a0808080800102, carry 0x7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"fffe":"7f7f7f7f7f7f7f7f":"80a0808080800102":"7f7e":"80a0808080800102":"7f7e" + +mbedtls_mpi_core_mla #857: 0x20000000000000 + 0xfffe * 0x8000000000000000 = (0x20000000000000, carry 0x7fff)/(0x20000000000000, carry 0x7fff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"fffe":"8000000000000000":"20000000000000":"7fff":"20000000000000":"7fff" + +mbedtls_mpi_core_mla #858: 0x20000000000000 + 0xfffe * 0xfffffffffffffffe = (0x1ffffffffe0004, carry 0xfffe)/(0x1ffffffffe0004, carry 0xfffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"fffe":"fffffffffffffffe":"1ffffffffe0004":"fffe":"1ffffffffe0004":"fffe" + +mbedtls_mpi_core_mla #859: 0x20000000000000 + 0xffffffff * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #860: 0x20000000000000 + 0xffffffff * 0x3 = (0x200002fffffffd, carry 0x0)/(0x200002fffffffd, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"3":"200002fffffffd":"0":"200002fffffffd":"0" + +mbedtls_mpi_core_mla #861: 0x20000000000000 + 0xffffffff * 0xfe = (0x2000fdffffff02, carry 0x0)/(0x2000fdffffff02, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"fe":"2000fdffffff02":"0":"2000fdffffff02":"0" + +mbedtls_mpi_core_mla #862: 0x20000000000000 + 0xffffffff * 0xff = (0x2000feffffff01, carry 0x0)/(0x2000feffffff01, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"ff":"2000feffffff01":"0":"2000feffffff01":"0" + +mbedtls_mpi_core_mla #863: 0x20000000000000 + 0xffffffff * 0xffff = (0x20fffeffff0001, carry 0x0)/(0x20fffeffff0001, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"ffff":"20fffeffff0001":"0":"20fffeffff0001":"0" + +mbedtls_mpi_core_mla #864: 0x20000000000000 + 0xffffffff * 0x10000 = (0x20ffffffff0000, carry 0x0)/(0x20ffffffff0000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"10000":"20ffffffff0000":"0":"20ffffffff0000":"0" + +mbedtls_mpi_core_mla #865: 0x20000000000000 + 0xffffffff * 0xffffffff = (0x1ffffe00000001, carry 0x1)/(0x1ffffe00000001, carry 0x1) +mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"ffffffff":"1ffffe00000001":"1":"1ffffe00000001":"1" + +mbedtls_mpi_core_mla #866: 0x20000000000000 + 0xffffffff * 0x100000000 = (0x1fffff00000000, carry 0x1)/(0x1fffff00000000, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"100000000":"1fffff00000000":"1":"1fffff00000000":"1" + +mbedtls_mpi_core_mla #867: 0x20000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x1fffff80808081, carry 0x7f7f7f7f)/(0x1fffff80808081, carry 0x7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"1fffff80808081":"7f7f7f7f":"1fffff80808081":"7f7f7f7f" + +mbedtls_mpi_core_mla #868: 0x20000000000000 + 0xffffffff * 0x8000000000000000 = (0x8020000000000000, carry 0x7fffffff)/(0x8020000000000000, carry 0x7fffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"8000000000000000":"8020000000000000":"7fffffff":"8020000000000000":"7fffffff" + +mbedtls_mpi_core_mla #869: 0x20000000000000 + 0xffffffff * 0xfffffffffffffffe = (0x1ffffe00000002, carry 0xffffffff)/(0x1ffffe00000002, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"fffffffffffffffe":"1ffffe00000002":"ffffffff":"1ffffe00000002":"ffffffff" + +mbedtls_mpi_core_mla #870: 0x20000000000000 + 0x100000000 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"100000000":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #871: 0x20000000000000 + 0x100000000 * 0x3 = (0x20000300000000, carry 0x0)/(0x20000300000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"100000000":"3":"20000300000000":"0":"20000300000000":"0" + +mbedtls_mpi_core_mla #872: 0x20000000000000 + 0x100000000 * 0xfe = (0x2000fe00000000, carry 0x0)/(0x2000fe00000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"100000000":"fe":"2000fe00000000":"0":"2000fe00000000":"0" + +mbedtls_mpi_core_mla #873: 0x20000000000000 + 0x100000000 * 0xff = (0x2000ff00000000, carry 0x0)/(0x2000ff00000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"100000000":"ff":"2000ff00000000":"0":"2000ff00000000":"0" + +mbedtls_mpi_core_mla #874: 0x20000000000000 + 0x100000000 * 0xffff = (0x20ffff00000000, carry 0x0)/(0x20ffff00000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"100000000":"ffff":"20ffff00000000":"0":"20ffff00000000":"0" + +mbedtls_mpi_core_mla #875: 0x20000000000000 + 0x100000000 * 0x10000 = (0x21000000000000, carry 0x0)/(0x21000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"100000000":"10000":"21000000000000":"0":"21000000000000":"0" + +mbedtls_mpi_core_mla #876: 0x20000000000000 + 0x100000000 * 0xffffffff = (0x1fffff00000000, carry 0x1)/(0x1fffff00000000, carry 0x1) +mbedtls_mpi_core_mla:"20000000000000":"100000000":"ffffffff":"1fffff00000000":"1":"1fffff00000000":"1" + +mbedtls_mpi_core_mla #877: 0x20000000000000 + 0x100000000 * 0x100000000 = (0x20000000000000, carry 0x1)/(0x20000000000000, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"100000000":"100000000":"20000000000000":"1":"20000000000000":"1" + +mbedtls_mpi_core_mla #878: 0x20000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f9f7f7f00000000, carry 0x7f7f7f7f)/(0x7f9f7f7f00000000, carry 0x7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"100000000":"7f7f7f7f7f7f7f7f":"7f9f7f7f00000000":"7f7f7f7f":"7f9f7f7f00000000":"7f7f7f7f" + +mbedtls_mpi_core_mla #879: 0x20000000000000 + 0x100000000 * 0x8000000000000000 = (0x20000000000000, carry 0x80000000)/(0x20000000000000, carry 0x80000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"100000000":"8000000000000000":"20000000000000":"80000000":"20000000000000":"80000000" + +mbedtls_mpi_core_mla #880: 0x20000000000000 + 0x100000000 * 0xfffffffffffffffe = (0x1ffffe00000000, carry 0x100000000)/(0x1ffffe00000000, carry 0x100000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"100000000":"fffffffffffffffe":"1ffffe00000000":"100000000":"1ffffe00000000":"100000000" + +mbedtls_mpi_core_mla #881: 0x20000000000000 + 0x20000000000000 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #882: 0x20000000000000 + 0x20000000000000 * 0x3 = (0x80000000000000, carry 0x0)/(0x80000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"3":"80000000000000":"0":"80000000000000":"0" + +mbedtls_mpi_core_mla #883: 0x20000000000000 + 0x20000000000000 * 0xfe = (0x1fe0000000000000, carry 0x0)/(0x1fe0000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"fe":"1fe0000000000000":"0":"1fe0000000000000":"0" + +mbedtls_mpi_core_mla #884: 0x20000000000000 + 0x20000000000000 * 0xff = (0x2000000000000000, carry 0x0)/(0x2000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"ff":"2000000000000000":"0":"2000000000000000":"0" + +mbedtls_mpi_core_mla #885: 0x20000000000000 + 0x20000000000000 * 0xffff = (0x0, carry 0x20)/(0x0, carry 0x20) +mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"ffff":"0":"20":"0":"20" + +mbedtls_mpi_core_mla #886: 0x20000000000000 + 0x20000000000000 * 0x10000 = (0x20000000000000, carry 0x20)/(0x20000000000000, carry 0x20) +mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"10000":"20000000000000":"20":"20000000000000":"20" + +mbedtls_mpi_core_mla #887: 0x20000000000000 + 0x20000000000000 * 0xffffffff = (0x0, carry 0x200000)/(0x0, carry 0x200000) +mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"ffffffff":"0":"200000":"0":"200000" + +mbedtls_mpi_core_mla #888: 0x20000000000000 + 0x20000000000000 * 0x100000000 = (0x20000000000000, carry 0x200000)/(0x20000000000000, carry 0x200000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"100000000":"20000000000000":"200000":"20000000000000":"200000" + +mbedtls_mpi_core_mla #889: 0x20000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xf000000000000000, carry 0xfefefefefefef)/(0xf000000000000000, carry 0xfefefefefefef) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"f000000000000000":"fefefefefefef":"f000000000000000":"fefefefefefef" + +mbedtls_mpi_core_mla #890: 0x20000000000000 + 0x20000000000000 * 0x8000000000000000 = (0x20000000000000, carry 0x10000000000000)/(0x20000000000000, carry 0x10000000000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"8000000000000000":"20000000000000":"10000000000000":"20000000000000":"10000000000000" + +mbedtls_mpi_core_mla #891: 0x20000000000000 + 0x20000000000000 * 0xfffffffffffffffe = (0xffe0000000000000, carry 0x1fffffffffffff)/(0xffe0000000000000, carry 0x1fffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"fffffffffffffffe":"ffe0000000000000":"1fffffffffffff":"ffe0000000000000":"1fffffffffffff" + +mbedtls_mpi_core_mla #892: 0x20000000000000 + 0xffffffffffffffff * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #893: 0x20000000000000 + 0xffffffffffffffff * 0x3 = (0x1ffffffffffffd, carry 0x3)/(0x1ffffffffffffd, carry 0x3) +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"3":"1ffffffffffffd":"3":"1ffffffffffffd":"3" + +mbedtls_mpi_core_mla #894: 0x20000000000000 + 0xffffffffffffffff * 0xfe = (0x1fffffffffff02, carry 0xfe)/(0x1fffffffffff02, carry 0xfe) +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"fe":"1fffffffffff02":"fe":"1fffffffffff02":"fe" + +mbedtls_mpi_core_mla #895: 0x20000000000000 + 0xffffffffffffffff * 0xff = (0x1fffffffffff01, carry 0xff)/(0x1fffffffffff01, carry 0xff) +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"ff":"1fffffffffff01":"ff":"1fffffffffff01":"ff" + +mbedtls_mpi_core_mla #896: 0x20000000000000 + 0xffffffffffffffff * 0xffff = (0x1fffffffff0001, carry 0xffff)/(0x1fffffffff0001, carry 0xffff) +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"ffff":"1fffffffff0001":"ffff":"1fffffffff0001":"ffff" + +mbedtls_mpi_core_mla #897: 0x20000000000000 + 0xffffffffffffffff * 0x10000 = (0x1fffffffff0000, carry 0x10000)/(0x1fffffffff0000, carry 0x10000) +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"10000":"1fffffffff0000":"10000":"1fffffffff0000":"10000" + +mbedtls_mpi_core_mla #898: 0x20000000000000 + 0xffffffffffffffff * 0xffffffff = (0x1fffff00000001, carry 0xffffffff)/(0x1fffff00000001, carry 0xffffffff) +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"ffffffff":"1fffff00000001":"ffffffff":"1fffff00000001":"ffffffff" + +mbedtls_mpi_core_mla #899: 0x20000000000000 + 0xffffffffffffffff * 0x100000000 = (0x1fffff00000000, carry 0x100000000)/(0x1fffff00000000, carry 0x100000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"100000000":"1fffff00000000":"100000000":"1fffff00000000":"100000000" + +mbedtls_mpi_core_mla #900: 0x20000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x80a0808080808081, carry 0x7f7f7f7f7f7f7f7e)/(0x80a0808080808081, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"80a0808080808081":"7f7f7f7f7f7f7f7e":"80a0808080808081":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #901: 0x20000000000000 + 0xffffffffffffffff * 0x8000000000000000 = (0x8020000000000000, carry 0x7fffffffffffffff)/(0x8020000000000000, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"8000000000000000":"8020000000000000":"7fffffffffffffff":"8020000000000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #902: 0x20000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x20000000000002, carry 0xfffffffffffffffd)/(0x20000000000002, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"fffffffffffffffe":"20000000000002":"fffffffffffffffd":"20000000000002":"fffffffffffffffd" + +mbedtls_mpi_core_mla #903: 0x20000000000000 + 0x10000000000000000 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #904: 0x20000000000000 + 0x10000000000000000 * 0x3 = (0x30020000000000000, carry 0x0)/(0x30020000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"3":"30020000000000000":"0":"30020000000000000":"0" + +mbedtls_mpi_core_mla #905: 0x20000000000000 + 0x10000000000000000 * 0xfe = (0xfe0020000000000000, carry 0x0)/(0xfe0020000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"fe":"fe0020000000000000":"0":"fe0020000000000000":"0" + +mbedtls_mpi_core_mla #906: 0x20000000000000 + 0x10000000000000000 * 0xff = (0xff0020000000000000, carry 0x0)/(0xff0020000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"ff":"ff0020000000000000":"0":"ff0020000000000000":"0" + +mbedtls_mpi_core_mla #907: 0x20000000000000 + 0x10000000000000000 * 0xffff = (0xffff0020000000000000, carry 0x0)/(0xffff0020000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"ffff":"ffff0020000000000000":"0":"ffff0020000000000000":"0" + +mbedtls_mpi_core_mla #908: 0x20000000000000 + 0x10000000000000000 * 0x10000 = (0x100000020000000000000, carry 0x0)/(0x100000020000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"10000":"100000020000000000000":"0":"100000020000000000000":"0" + +mbedtls_mpi_core_mla #909: 0x20000000000000 + 0x10000000000000000 * 0xffffffff = (0xffffffff0020000000000000, carry 0x0)/(0xffffffff0020000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"ffffffff":"ffffffff0020000000000000":"0":"ffffffff0020000000000000":"0" + +mbedtls_mpi_core_mla #910: 0x20000000000000 + 0x10000000000000000 * 0x100000000 = (0x20000000000000, carry 0x1)/(0x1000000000020000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"100000000":"20000000000000":"1":"1000000000020000000000000":"0" + +mbedtls_mpi_core_mla #911: 0x20000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0020000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0020000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0020000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0020000000000000":"0" + +mbedtls_mpi_core_mla #912: 0x20000000000000 + 0x10000000000000000 * 0x8000000000000000 = (0x20000000000000, carry 0x80000000)/(0x80000000000000000020000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"8000000000000000":"20000000000000":"80000000":"80000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #913: 0x20000000000000 + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe0020000000000000, carry 0xffffffff)/(0xfffffffffffffffe0020000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"fffffffffffffffe":"fffffffe0020000000000000":"ffffffff":"fffffffffffffffe0020000000000000":"0" + +mbedtls_mpi_core_mla #914: 0x20000000000000 + 0x1234567890abcdef0 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #915: 0x20000000000000 + 0x1234567890abcdef0 * 0x3 = (0x369f0369b20369cd0, carry 0x0)/(0x369f0369b20369cd0, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"3":"369f0369b20369cd0":"0":"369f0369b20369cd0":"0" + +mbedtls_mpi_core_mla #916: 0x20000000000000 + 0x1234567890abcdef0 * 0xfe = (0x120fefcb9f8a7653220, carry 0x0)/(0x120fefcb9f8a7653220, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"fe":"120fefcb9f8a7653220":"0":"120fefcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #917: 0x20000000000000 + 0x1234567890abcdef0 * 0xff = (0x12222422181b2221110, carry 0x0)/(0x12222422181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"ff":"12222422181b2221110":"0":"12222422181b2221110":"0" + +mbedtls_mpi_core_mla #918: 0x20000000000000 + 0x1234567890abcdef0 * 0xffff = (0x123444463a333d4332110, carry 0x0)/(0x123444463a333d4332110, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"ffff":"123444463a333d4332110":"0":"123444463a333d4332110":"0" + +mbedtls_mpi_core_mla #919: 0x20000000000000 + 0x1234567890abcdef0 * 0x10000 = (0x1234567a90abcdef00000, carry 0x0)/(0x1234567a90abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"10000":"1234567a90abcdef00000":"0":"1234567a90abcdef00000":"0" + +mbedtls_mpi_core_mla #920: 0x20000000000000 + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7977766f5432110, carry 0x1)/(0x123456787e7977766f5432110, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"ffffffff":"23456787e7977766f5432110":"1":"123456787e7977766f5432110":"0" + +mbedtls_mpi_core_mla #921: 0x20000000000000 + 0x1234567890abcdef0 * 0x100000000 = (0x234567890adcdef000000000, carry 0x1)/(0x1234567890adcdef000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"100000000":"234567890adcdef000000000":"1":"1234567890adcdef000000000":"0" + +mbedtls_mpi_core_mla #922: 0x20000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f69708abaf5ba910, carry 0x91107edb)/(0x91107edbd82bde76f69708abaf5ba910, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f69708abaf5ba910":"91107edb":"91107edbd82bde76f69708abaf5ba910":"0" + +mbedtls_mpi_core_mla #923: 0x20000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f780020000000000000, carry 0x91a2b3c4)/(0x91a2b3c4855e6f780020000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"8000000000000000":"855e6f780020000000000000":"91a2b3c4":"91a2b3c4855e6f780020000000000000":"0" + +mbedtls_mpi_core_mla #924: 0x20000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb99530edea864220, carry 0x123456789)/(0x234567890abcdeedb99530edea864220, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb99530edea864220":"123456789":"234567890abcdeedb99530edea864220":"1" + +mbedtls_mpi_core_mla #925: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #926: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffd1cfcfcfcfcfcfa, carry 0x2)/(0xfffffffffffffffffd1cfcfcfcfcfcfa, carry 0x2) +mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffd1cfcfcfcfcfcfa":"2":"fffffffffffffffffd1cfcfcfcfcfcfa":"2" + +mbedtls_mpi_core_mla #927: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0121010101010004, carry 0xfd)/(0xffffffffffffffff0121010101010004, carry 0xfd) +mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0121010101010004":"fd":"ffffffffffffffff0121010101010004":"fd" + +mbedtls_mpi_core_mla #928: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffff001fffffffffff02, carry 0xfe)/(0xffffffffffffffff001fffffffffff02, carry 0xfe) +mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff001fffffffffff02":"fe":"ffffffffffffffff001fffffffffff02":"fe" + +mbedtls_mpi_core_mla #929: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeff001fffffffff0102, carry 0xfffe)/(0xfffffffffffffeff001fffffffff0102, carry 0xfffe) +mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff001fffffffff0102":"fffe":"fffffffffffffeff001fffffffff0102":"fffe" + +mbedtls_mpi_core_mla #930: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefeff1efefefefe0000, carry 0xffff)/(0xfffffffffffffefeff1efefefefe0000, carry 0xffff) +mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefeff1efefefefe0000":"ffff":"fffffffffffffefeff1efefefefe0000":"ffff" + +mbedtls_mpi_core_mla #931: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeff001fffff01010102, carry 0xfffffffe)/(0xfffffffffefefeff001fffff01010102, carry 0xfffffffe) +mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff001fffff01010102":"fffffffe":"fffffffffefefeff001fffff01010102":"fffffffe" + +mbedtls_mpi_core_mla #932: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefeff1efefe00000000, carry 0xffffffff)/(0xfffffffffefefefeff1efefe00000000, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefeff1efefe00000000":"ffffffff":"fffffffffefefefeff1efefe00000000":"ffffffff" + +mbedtls_mpi_core_mla #933: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828524840383028202, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828524840383028202, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828524840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202828524840383028202":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #934: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0020000000000000, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f0020000000000000, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0020000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0020000000000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #935: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0222020202020204, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0222020202020204, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0222020202020204":"fffffffffffffffd":"fefefefefefefefe0222020202020204":"fffffffffffffffd" + +mbedtls_mpi_core_mla #936: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #937: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000000020000000000000, carry 0x0)/(0x300000000000000000020000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"3":"300000000000000000020000000000000":"0":"300000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #938: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000000020000000000000, carry 0x0)/(0xfe00000000000000000020000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"fe":"fe00000000000000000020000000000000":"0":"fe00000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #939: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000000020000000000000, carry 0x0)/(0xff00000000000000000020000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ff":"ff00000000000000000020000000000000":"0":"ff00000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #940: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000000020000000000000, carry 0x0)/(0xffff00000000000000000020000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000000020000000000000":"0":"ffff00000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #941: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000000020000000000000, carry 0x0)/(0x1000000000000000000000020000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"10000":"1000000000000000000000020000000000000":"0":"1000000000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #942: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000000020000000000000, carry 0x0)/(0xffffffff00000000000000000020000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000020000000000000":"0":"ffffffff00000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #943: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x100000000 = (0x20000000000000, carry 0x1)/(0x10000000000000000000000000020000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"100000000":"20000000000000":"1":"10000000000000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #944: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000000020000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000000020000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000020000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #945: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x20000000000000, carry 0x80000000)/(0x800000000000000000000000000000000020000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"8000000000000000":"20000000000000":"80000000":"800000000000000000000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #946: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000000020000000000000, carry 0xffffffff)/(0xfffffffffffffffe00000000000000000020000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000020000000000000":"ffffffff":"fffffffffffffffe00000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #947: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #948: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369f0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369f0369b20369cd0, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369f0369b20369cd0":"0":"369d0369b20369cd0369f0369b20369cd0":"0" + +mbedtls_mpi_core_mla #949: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fefcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fefcb9f8a7653220, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fefcb9f8a7653220":"0":"120fedcb9f8a76532320fefcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #950: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222422181b2221110, carry 0x0)/(0x12222222181b2221122222422181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222422181b2221110":"0":"12222222181b2221122222422181b2221110":"0" + +mbedtls_mpi_core_mla #951: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444463a333d4332110, carry 0x0)/(0x123444443a333d433334444463a333d4332110, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444463a333d4332110":"0":"123444443a333d433334444463a333d4332110":"0" + +mbedtls_mpi_core_mla #952: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567a90abcdef00000, carry 0x0)/(0x1234567890abcdef01234567a90abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567a90abcdef00000":"0":"1234567890abcdef01234567a90abcdef00000":"0" + +mbedtls_mpi_core_mla #953: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7977766f5432110, carry 0x12)/(0x123456787e7777767077777887e7977766f5432110, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7977766f5432110":"12":"123456787e7777767077777887e7977766f5432110":"0" + +mbedtls_mpi_core_mla #954: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890adcdef000000000, carry 0x12)/(0x1234567890abcdef01234567890adcdef000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890adcdef000000000":"12":"1234567890abcdef01234567890adcdef000000000":"0" + +mbedtls_mpi_core_mla #955: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f69708abaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f69708abaf5ba910, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f69708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f69708abaf5ba910":"9" + +mbedtls_mpi_core_mla #956: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f780020000000000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f780020000000000000, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780020000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"9" + +mbedtls_mpi_core_mla #957: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb99530edea864220, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb99530edea864220, carry 0x12) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb99530edea864220":"1234567890":"34567890abcdeedcba987667b32100edb99530edea864220":"12" + +mbedtls_mpi_core_mla #958: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #959: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x1ffffffffffffd, carry 0x3)/(0x1ffffffffffffd, carry 0x3) +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1ffffffffffffd":"3":"1ffffffffffffd":"3" + +mbedtls_mpi_core_mla #960: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x1fffffffffff02, carry 0xfe)/(0x1fffffffffff02, carry 0xfe) +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1fffffffffff02":"fe":"1fffffffffff02":"fe" + +mbedtls_mpi_core_mla #961: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x1fffffffffff01, carry 0xff)/(0x1fffffffffff01, carry 0xff) +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1fffffffffff01":"ff":"1fffffffffff01":"ff" + +mbedtls_mpi_core_mla #962: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x1fffffffff0001, carry 0xffff)/(0x1fffffffff0001, carry 0xffff) +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1fffffffff0001":"ffff":"1fffffffff0001":"ffff" + +mbedtls_mpi_core_mla #963: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x1fffffffff0000, carry 0x10000)/(0x1fffffffff0000, carry 0x10000) +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1fffffffff0000":"10000":"1fffffffff0000":"10000" + +mbedtls_mpi_core_mla #964: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1fffff00000001, carry 0xffffffff)/(0x1fffff00000001, carry 0xffffffff) +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1fffff00000001":"ffffffff":"1fffff00000001":"ffffffff" + +mbedtls_mpi_core_mla #965: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x1fffff00000000, carry 0x100000000)/(0x1fffff00000000, carry 0x100000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1fffff00000000":"100000000":"1fffff00000000":"100000000" + +mbedtls_mpi_core_mla #966: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #967: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #968: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002":"fffffffffffffffd" + +mbedtls_mpi_core_mla #969: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #970: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0":"0" + +mbedtls_mpi_core_mla #971: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #972: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222422181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222422181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222422181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222422181b2221110":"0" + +mbedtls_mpi_core_mla #973: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110":"0" + +mbedtls_mpi_core_mla #974: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000":"0" + +mbedtls_mpi_core_mla #975: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110":"0" + +mbedtls_mpi_core_mla #976: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000":"0" + +mbedtls_mpi_core_mla #977: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910, carry 0x911) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910":"911" + +mbedtls_mpi_core_mla #978: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000, carry 0x91a) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"91a" + +mbedtls_mpi_core_mla #979: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220, carry 0x1234) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220":"1234" + +mbedtls_mpi_core_mla #980: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #981: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381":"0" + +mbedtls_mpi_core_mla #982: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa":"0" + +mbedtls_mpi_core_mla #983: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5":"0" + +mbedtls_mpi_core_mla #984: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5":"0" + +mbedtls_mpi_core_mla #985: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000, carry 0x0) +mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000":"0" + +mbedtls_mpi_core_mla #986: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5, carry 0x4) +mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5":"4" + +mbedtls_mpi_core_mla #987: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000, carry 0x4) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000":"4" + +mbedtls_mpi_core_mla #988: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955, carry 0x26d473ca9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955":"26d473ca9" + +mbedtls_mpi_core_mla #989: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000, carry 0x26fb9683d) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000":"26fb9683d" + +mbedtls_mpi_core_mla #990: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa, carry 0x4df72d07b) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa":"4df72d07b" + +mbedtls_mpi_core_mla #991: 0xffffffffffffffff + 0x0 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #992: 0xffffffffffffffff + 0x0 * 0x3 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"3":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #993: 0xffffffffffffffff + 0x0 * 0xfe = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"fe":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #994: 0xffffffffffffffff + 0x0 * 0xff = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"ff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #995: 0xffffffffffffffff + 0x0 * 0xffff = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"ffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #996: 0xffffffffffffffff + 0x0 * 0x10000 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"10000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #997: 0xffffffffffffffff + 0x0 * 0xffffffff = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"ffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #998: 0xffffffffffffffff + 0x0 * 0x100000000 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"100000000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #999: 0xffffffffffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1000: 0xffffffffffffffff + 0x0 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"8000000000000000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1001: 0xffffffffffffffff + 0x0 * 0xfffffffffffffffe = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"fffffffffffffffe":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1002: 0xffffffffffffffff + 0x1 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1003: 0xffffffffffffffff + 0x1 * 0x3 = (0x2, carry 0x1)/(0x2, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"3":"2":"1":"2":"1" + +mbedtls_mpi_core_mla #1004: 0xffffffffffffffff + 0x1 * 0xfe = (0xfd, carry 0x1)/(0xfd, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"fe":"fd":"1":"fd":"1" + +mbedtls_mpi_core_mla #1005: 0xffffffffffffffff + 0x1 * 0xff = (0xfe, carry 0x1)/(0xfe, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"ff":"fe":"1":"fe":"1" + +mbedtls_mpi_core_mla #1006: 0xffffffffffffffff + 0x1 * 0xffff = (0xfffe, carry 0x1)/(0xfffe, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"ffff":"fffe":"1":"fffe":"1" + +mbedtls_mpi_core_mla #1007: 0xffffffffffffffff + 0x1 * 0x10000 = (0xffff, carry 0x1)/(0xffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"10000":"ffff":"1":"ffff":"1" + +mbedtls_mpi_core_mla #1008: 0xffffffffffffffff + 0x1 * 0xffffffff = (0xfffffffe, carry 0x1)/(0xfffffffe, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"ffffffff":"fffffffe":"1":"fffffffe":"1" + +mbedtls_mpi_core_mla #1009: 0xffffffffffffffff + 0x1 * 0x100000000 = (0xffffffff, carry 0x1)/(0xffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"100000000":"ffffffff":"1":"ffffffff":"1" + +mbedtls_mpi_core_mla #1010: 0xffffffffffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7e, carry 0x1)/(0x7f7f7f7f7f7f7f7e, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e":"1":"7f7f7f7f7f7f7f7e":"1" + +mbedtls_mpi_core_mla #1011: 0xffffffffffffffff + 0x1 * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x1)/(0x7fffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"8000000000000000":"7fffffffffffffff":"1":"7fffffffffffffff":"1" + +mbedtls_mpi_core_mla #1012: 0xffffffffffffffff + 0x1 * 0xfffffffffffffffe = (0xfffffffffffffffd, carry 0x1)/(0xfffffffffffffffd, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffd":"1":"fffffffffffffffd":"1" + +mbedtls_mpi_core_mla #1013: 0xffffffffffffffff + 0xfffe * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1014: 0xffffffffffffffff + 0xfffe * 0x3 = (0x2fff9, carry 0x1)/(0x2fff9, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"3":"2fff9":"1":"2fff9":"1" + +mbedtls_mpi_core_mla #1015: 0xffffffffffffffff + 0xfffe * 0xfe = (0xfdfe03, carry 0x1)/(0xfdfe03, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"fe":"fdfe03":"1":"fdfe03":"1" + +mbedtls_mpi_core_mla #1016: 0xffffffffffffffff + 0xfffe * 0xff = (0xfefe01, carry 0x1)/(0xfefe01, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"ff":"fefe01":"1":"fefe01":"1" + +mbedtls_mpi_core_mla #1017: 0xffffffffffffffff + 0xfffe * 0xffff = (0xfffd0001, carry 0x1)/(0xfffd0001, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"ffff":"fffd0001":"1":"fffd0001":"1" + +mbedtls_mpi_core_mla #1018: 0xffffffffffffffff + 0xfffe * 0x10000 = (0xfffdffff, carry 0x1)/(0xfffdffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"10000":"fffdffff":"1":"fffdffff":"1" + +mbedtls_mpi_core_mla #1019: 0xffffffffffffffff + 0xfffe * 0xffffffff = (0xfffdffff0001, carry 0x1)/(0xfffdffff0001, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"ffffffff":"fffdffff0001":"1":"fffdffff0001":"1" + +mbedtls_mpi_core_mla #1020: 0xffffffffffffffff + 0xfffe * 0x100000000 = (0xfffdffffffff, carry 0x1)/(0xfffdffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"100000000":"fffdffffffff":"1":"fffdffffffff":"1" + +mbedtls_mpi_core_mla #1021: 0xffffffffffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x8080808080800101, carry 0x7f7f)/(0x8080808080800101, carry 0x7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"7f7f7f7f7f7f7f7f":"8080808080800101":"7f7f":"8080808080800101":"7f7f" + +mbedtls_mpi_core_mla #1022: 0xffffffffffffffff + 0xfffe * 0x8000000000000000 = (0xffffffffffffffff, carry 0x7fff)/(0xffffffffffffffff, carry 0x7fff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"8000000000000000":"ffffffffffffffff":"7fff":"ffffffffffffffff":"7fff" + +mbedtls_mpi_core_mla #1023: 0xffffffffffffffff + 0xfffe * 0xfffffffffffffffe = (0xfffffffffffe0003, carry 0xfffe)/(0xfffffffffffe0003, carry 0xfffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"fffffffffffffffe":"fffffffffffe0003":"fffe":"fffffffffffe0003":"fffe" + +mbedtls_mpi_core_mla #1024: 0xffffffffffffffff + 0xffffffff * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1025: 0xffffffffffffffff + 0xffffffff * 0x3 = (0x2fffffffc, carry 0x1)/(0x2fffffffc, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"3":"2fffffffc":"1":"2fffffffc":"1" + +mbedtls_mpi_core_mla #1026: 0xffffffffffffffff + 0xffffffff * 0xfe = (0xfdffffff01, carry 0x1)/(0xfdffffff01, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"fe":"fdffffff01":"1":"fdffffff01":"1" + +mbedtls_mpi_core_mla #1027: 0xffffffffffffffff + 0xffffffff * 0xff = (0xfeffffff00, carry 0x1)/(0xfeffffff00, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"ff":"feffffff00":"1":"feffffff00":"1" + +mbedtls_mpi_core_mla #1028: 0xffffffffffffffff + 0xffffffff * 0xffff = (0xfffeffff0000, carry 0x1)/(0xfffeffff0000, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"ffff":"fffeffff0000":"1":"fffeffff0000":"1" + +mbedtls_mpi_core_mla #1029: 0xffffffffffffffff + 0xffffffff * 0x10000 = (0xfffffffeffff, carry 0x1)/(0xfffffffeffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"10000":"fffffffeffff":"1":"fffffffeffff":"1" + +mbedtls_mpi_core_mla #1030: 0xffffffffffffffff + 0xffffffff * 0xffffffff = (0xfffffffe00000000, carry 0x1)/(0xfffffffe00000000, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"ffffffff":"fffffffe00000000":"1":"fffffffe00000000":"1" + +mbedtls_mpi_core_mla #1031: 0xffffffffffffffff + 0xffffffff * 0x100000000 = (0xfffffffeffffffff, carry 0x1)/(0xfffffffeffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"100000000":"fffffffeffffffff":"1":"fffffffeffffffff":"1" + +mbedtls_mpi_core_mla #1032: 0xffffffffffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffff80808080, carry 0x7f7f7f7f)/(0xffffffff80808080, carry 0x7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"ffffffff80808080":"7f7f7f7f":"ffffffff80808080":"7f7f7f7f" + +mbedtls_mpi_core_mla #1033: 0xffffffffffffffff + 0xffffffff * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x80000000)/(0x7fffffffffffffff, carry 0x80000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"8000000000000000":"7fffffffffffffff":"80000000":"7fffffffffffffff":"80000000" + +mbedtls_mpi_core_mla #1034: 0xffffffffffffffff + 0xffffffff * 0xfffffffffffffffe = (0xfffffffe00000001, carry 0xffffffff)/(0xfffffffe00000001, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"fffffffffffffffe":"fffffffe00000001":"ffffffff":"fffffffe00000001":"ffffffff" + +mbedtls_mpi_core_mla #1035: 0xffffffffffffffff + 0x100000000 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1036: 0xffffffffffffffff + 0x100000000 * 0x3 = (0x2ffffffff, carry 0x1)/(0x2ffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"3":"2ffffffff":"1":"2ffffffff":"1" + +mbedtls_mpi_core_mla #1037: 0xffffffffffffffff + 0x100000000 * 0xfe = (0xfdffffffff, carry 0x1)/(0xfdffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"fe":"fdffffffff":"1":"fdffffffff":"1" + +mbedtls_mpi_core_mla #1038: 0xffffffffffffffff + 0x100000000 * 0xff = (0xfeffffffff, carry 0x1)/(0xfeffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"ff":"feffffffff":"1":"feffffffff":"1" + +mbedtls_mpi_core_mla #1039: 0xffffffffffffffff + 0x100000000 * 0xffff = (0xfffeffffffff, carry 0x1)/(0xfffeffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"ffff":"fffeffffffff":"1":"fffeffffffff":"1" + +mbedtls_mpi_core_mla #1040: 0xffffffffffffffff + 0x100000000 * 0x10000 = (0xffffffffffff, carry 0x1)/(0xffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"10000":"ffffffffffff":"1":"ffffffffffff":"1" + +mbedtls_mpi_core_mla #1041: 0xffffffffffffffff + 0x100000000 * 0xffffffff = (0xfffffffeffffffff, carry 0x1)/(0xfffffffeffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"ffffffff":"fffffffeffffffff":"1":"fffffffeffffffff":"1" + +mbedtls_mpi_core_mla #1042: 0xffffffffffffffff + 0x100000000 * 0x100000000 = (0xffffffffffffffff, carry 0x1)/(0xffffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"100000000":"ffffffffffffffff":"1":"ffffffffffffffff":"1" + +mbedtls_mpi_core_mla #1043: 0xffffffffffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7effffffff, carry 0x7f7f7f80)/(0x7f7f7f7effffffff, carry 0x7f7f7f80) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7effffffff":"7f7f7f80":"7f7f7f7effffffff":"7f7f7f80" + +mbedtls_mpi_core_mla #1044: 0xffffffffffffffff + 0x100000000 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x80000000)/(0xffffffffffffffff, carry 0x80000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"8000000000000000":"ffffffffffffffff":"80000000":"ffffffffffffffff":"80000000" + +mbedtls_mpi_core_mla #1045: 0xffffffffffffffff + 0x100000000 * 0xfffffffffffffffe = (0xfffffffdffffffff, carry 0x100000000)/(0xfffffffdffffffff, carry 0x100000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"fffffffffffffffe":"fffffffdffffffff":"100000000":"fffffffdffffffff":"100000000" + +mbedtls_mpi_core_mla #1046: 0xffffffffffffffff + 0x20000000000000 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1047: 0xffffffffffffffff + 0x20000000000000 * 0x3 = (0x5fffffffffffff, carry 0x1)/(0x5fffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"3":"5fffffffffffff":"1":"5fffffffffffff":"1" + +mbedtls_mpi_core_mla #1048: 0xffffffffffffffff + 0x20000000000000 * 0xfe = (0x1fbfffffffffffff, carry 0x1)/(0x1fbfffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"fe":"1fbfffffffffffff":"1":"1fbfffffffffffff":"1" + +mbedtls_mpi_core_mla #1049: 0xffffffffffffffff + 0x20000000000000 * 0xff = (0x1fdfffffffffffff, carry 0x1)/(0x1fdfffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"ff":"1fdfffffffffffff":"1":"1fdfffffffffffff":"1" + +mbedtls_mpi_core_mla #1050: 0xffffffffffffffff + 0x20000000000000 * 0xffff = (0xffdfffffffffffff, carry 0x20)/(0xffdfffffffffffff, carry 0x20) +mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"ffff":"ffdfffffffffffff":"20":"ffdfffffffffffff":"20" + +mbedtls_mpi_core_mla #1051: 0xffffffffffffffff + 0x20000000000000 * 0x10000 = (0xffffffffffffffff, carry 0x20)/(0xffffffffffffffff, carry 0x20) +mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"10000":"ffffffffffffffff":"20":"ffffffffffffffff":"20" + +mbedtls_mpi_core_mla #1052: 0xffffffffffffffff + 0x20000000000000 * 0xffffffff = (0xffdfffffffffffff, carry 0x200000)/(0xffdfffffffffffff, carry 0x200000) +mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"ffffffff":"ffdfffffffffffff":"200000":"ffdfffffffffffff":"200000" + +mbedtls_mpi_core_mla #1053: 0xffffffffffffffff + 0x20000000000000 * 0x100000000 = (0xffffffffffffffff, carry 0x200000)/(0xffffffffffffffff, carry 0x200000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"100000000":"ffffffffffffffff":"200000":"ffffffffffffffff":"200000" + +mbedtls_mpi_core_mla #1054: 0xffffffffffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefdfffffffffffff, carry 0xfefefefefeff0)/(0xefdfffffffffffff, carry 0xfefefefefeff0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"efdfffffffffffff":"fefefefefeff0":"efdfffffffffffff":"fefefefefeff0" + +mbedtls_mpi_core_mla #1055: 0xffffffffffffffff + 0x20000000000000 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x10000000000000)/(0xffffffffffffffff, carry 0x10000000000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"8000000000000000":"ffffffffffffffff":"10000000000000":"ffffffffffffffff":"10000000000000" + +mbedtls_mpi_core_mla #1056: 0xffffffffffffffff + 0x20000000000000 * 0xfffffffffffffffe = (0xffbfffffffffffff, carry 0x20000000000000)/(0xffbfffffffffffff, carry 0x20000000000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"fffffffffffffffe":"ffbfffffffffffff":"20000000000000":"ffbfffffffffffff":"20000000000000" + +mbedtls_mpi_core_mla #1057: 0xffffffffffffffff + 0xffffffffffffffff * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1058: 0xffffffffffffffff + 0xffffffffffffffff * 0x3 = (0xfffffffffffffffc, carry 0x3)/(0xfffffffffffffffc, carry 0x3) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"3":"fffffffffffffffc":"3":"fffffffffffffffc":"3" + +mbedtls_mpi_core_mla #1059: 0xffffffffffffffff + 0xffffffffffffffff * 0xfe = (0xffffffffffffff01, carry 0xfe)/(0xffffffffffffff01, carry 0xfe) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"fe":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" + +mbedtls_mpi_core_mla #1060: 0xffffffffffffffff + 0xffffffffffffffff * 0xff = (0xffffffffffffff00, carry 0xff)/(0xffffffffffffff00, carry 0xff) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ff":"ffffffffffffff00":"ff":"ffffffffffffff00":"ff" + +mbedtls_mpi_core_mla #1061: 0xffffffffffffffff + 0xffffffffffffffff * 0xffff = (0xffffffffffff0000, carry 0xffff)/(0xffffffffffff0000, carry 0xffff) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ffff":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" + +mbedtls_mpi_core_mla #1062: 0xffffffffffffffff + 0xffffffffffffffff * 0x10000 = (0xfffffffffffeffff, carry 0x10000)/(0xfffffffffffeffff, carry 0x10000) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"10000":"fffffffffffeffff":"10000":"fffffffffffeffff":"10000" + +mbedtls_mpi_core_mla #1063: 0xffffffffffffffff + 0xffffffffffffffff * 0xffffffff = (0xffffffff00000000, carry 0xffffffff)/(0xffffffff00000000, carry 0xffffffff) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" + +mbedtls_mpi_core_mla #1064: 0xffffffffffffffff + 0xffffffffffffffff * 0x100000000 = (0xfffffffeffffffff, carry 0x100000000)/(0xfffffffeffffffff, carry 0x100000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"100000000":"fffffffeffffffff":"100000000":"fffffffeffffffff":"100000000" + +mbedtls_mpi_core_mla #1065: 0xffffffffffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808080, carry 0x7f7f7f7f7f7f7f7f)/(0x8080808080808080, carry 0x7f7f7f7f7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #1066: 0xffffffffffffffff + 0xffffffffffffffff * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x8000000000000000)/(0x7fffffffffffffff, carry 0x8000000000000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000" + +mbedtls_mpi_core_mla #1067: 0xffffffffffffffff + 0xffffffffffffffff * 0xfffffffffffffffe = (0x1, carry 0xfffffffffffffffe)/(0x1, carry 0xfffffffffffffffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":"1":"fffffffffffffffe":"1":"fffffffffffffffe" + +mbedtls_mpi_core_mla #1068: 0xffffffffffffffff + 0x10000000000000000 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1069: 0xffffffffffffffff + 0x10000000000000000 * 0x3 = (0x3ffffffffffffffff, carry 0x0)/(0x3ffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"3":"3ffffffffffffffff":"0":"3ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1070: 0xffffffffffffffff + 0x10000000000000000 * 0xfe = (0xfeffffffffffffffff, carry 0x0)/(0xfeffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"fe":"feffffffffffffffff":"0":"feffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1071: 0xffffffffffffffff + 0x10000000000000000 * 0xff = (0xffffffffffffffffff, carry 0x0)/(0xffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ff":"ffffffffffffffffff":"0":"ffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1072: 0xffffffffffffffff + 0x10000000000000000 * 0xffff = (0xffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ffff":"ffffffffffffffffffff":"0":"ffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1073: 0xffffffffffffffff + 0x10000000000000000 * 0x10000 = (0x10000ffffffffffffffff, carry 0x0)/(0x10000ffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"10000":"10000ffffffffffffffff":"0":"10000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1074: 0xffffffffffffffff + 0x10000000000000000 * 0xffffffff = (0xffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ffffffff":"ffffffffffffffffffffffff":"0":"ffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1075: 0xffffffffffffffff + 0x10000000000000000 * 0x100000000 = (0xffffffffffffffff, carry 0x1)/(0x100000000ffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"100000000":"ffffffffffffffff":"1":"100000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1076: 0xffffffffffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fffffffffffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7fffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffffffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7fffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1077: 0xffffffffffffffff + 0x10000000000000000 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x80000000)/(0x8000000000000000ffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"8000000000000000":"ffffffffffffffff":"80000000":"8000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1078: 0xffffffffffffffff + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffeffffffffffffffff, carry 0xffffffff)/(0xfffffffffffffffeffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"fffffffffffffffe":"fffffffeffffffffffffffff":"ffffffff":"fffffffffffffffeffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1079: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1080: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x3 = (0x469d0369b20369ccf, carry 0x0)/(0x469d0369b20369ccf, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"3":"469d0369b20369ccf":"0":"469d0369b20369ccf":"0" + +mbedtls_mpi_core_mla #1081: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xfe = (0x121fedcb9f8a765321f, carry 0x0)/(0x121fedcb9f8a765321f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"fe":"121fedcb9f8a765321f":"0":"121fedcb9f8a765321f":"0" + +mbedtls_mpi_core_mla #1082: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xff = (0x12322222181b222110f, carry 0x0)/(0x12322222181b222110f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ff":"12322222181b222110f":"0":"12322222181b222110f":"0" + +mbedtls_mpi_core_mla #1083: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xffff = (0x123454443a333d433210f, carry 0x0)/(0x123454443a333d433210f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ffff":"123454443a333d433210f":"0":"123454443a333d433210f":"0" + +mbedtls_mpi_core_mla #1084: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x10000 = (0x1234667890abcdeefffff, carry 0x0)/(0x1234667890abcdeefffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"10000":"1234667890abcdeefffff":"0":"1234667890abcdeefffff":"0" + +mbedtls_mpi_core_mla #1085: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xffffffff = (0x23456788e7777766f543210f, carry 0x1)/(0x123456788e7777766f543210f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ffffffff":"23456788e7777766f543210f":"1":"123456788e7777766f543210f":"0" + +mbedtls_mpi_core_mla #1086: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x100000000 = (0x2345678a0abcdeefffffffff, carry 0x1)/(0x12345678a0abcdeefffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"100000000":"2345678a0abcdeefffffffff":"1":"12345678a0abcdeefffffffff":"0" + +mbedtls_mpi_core_mla #1087: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde77f67708abaf5ba90f, carry 0x91107edb)/(0x91107edbd82bde77f67708abaf5ba90f, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde77f67708abaf5ba90f":"91107edb":"91107edbd82bde77f67708abaf5ba90f":"0" + +mbedtls_mpi_core_mla #1088: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f78ffffffffffffffff, carry 0x91a2b3c4)/(0x91a2b3c4855e6f78ffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"8000000000000000":"855e6f78ffffffffffffffff":"91a2b3c4":"91a2b3c4855e6f78ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1089: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeeb97530edea86421f, carry 0x123456789)/(0x234567890abcdeeeb97530edea86421f, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"fffffffffffffffe":"abcdeeeb97530edea86421f":"123456789":"234567890abcdeeeb97530edea86421f":"1" + +mbedtls_mpi_core_mla #1090: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1091: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfcfcfcfcfcfcfcf9, carry 0x3)/(0xfcfcfcfcfcfcfcf9, carry 0x3) +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"3":"fcfcfcfcfcfcfcf9":"3":"fcfcfcfcfcfcfcf9":"3" + +mbedtls_mpi_core_mla #1092: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x101010101010003, carry 0xfe)/(0x101010101010003, carry 0xfe) +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fe":"101010101010003":"fe":"101010101010003":"fe" + +mbedtls_mpi_core_mla #1093: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffffffffffffffffff01, carry 0xfe)/(0xffffffffffffffffffffffffffffff01, carry 0xfe) +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffff01":"fe" + +mbedtls_mpi_core_mla #1094: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeffffffffffffff0101, carry 0xfffe)/(0xfffffffffffffeffffffffffffff0101, carry 0xfffe) +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeffffffffffffff0101":"fffe":"fffffffffffffeffffffffffffff0101":"fffe" + +mbedtls_mpi_core_mla #1095: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefffefefefefefdffff, carry 0xffff)/(0xfffffffffffffefffefefefefefdffff, carry 0xffff) +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefffefefefefefdffff":"ffff":"fffffffffffffefffefefefefefdffff":"ffff" + +mbedtls_mpi_core_mla #1096: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeffffffffff01010101, carry 0xfffffffe)/(0xfffffffffefefeffffffffff01010101, carry 0xfffffffe) +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeffffffffff01010101":"fffffffe":"fffffffffefefeffffffffff01010101":"fffffffe" + +mbedtls_mpi_core_mla #1097: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefffefefefdffffffff, carry 0xffffffff)/(0xfffffffffefefefffefefefdffffffff, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefffefefefdffffffff":"ffffffff":"fffffffffefefefffefefefdffffffff":"ffffffff" + +mbedtls_mpi_core_mla #1098: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202838504840383028201, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202838504840383028201, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202838504840383028201":"7f7f7f7f7f7f7f7e":"ff800081018202838504840383028201":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #1099: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7fffffffffffffffff, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7fffffffffffffffff, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7fffffffffffffffff":"7fffffffffffffff":"ff7f7f7f7f7f7f7fffffffffffffffff":"7fffffffffffffff" + +mbedtls_mpi_core_mla #1100: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefeff0202020202020203, carry 0xfffffffffffffffd)/(0xfefefefefefefeff0202020202020203, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff0202020202020203":"fffffffffffffffd":"fefefefefefefeff0202020202020203":"fffffffffffffffd" + +mbedtls_mpi_core_mla #1101: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1102: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x3 = (0x30000000000000000ffffffffffffffff, carry 0x0)/(0x30000000000000000ffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"3":"30000000000000000ffffffffffffffff":"0":"30000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1103: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xfe = (0xfe0000000000000000ffffffffffffffff, carry 0x0)/(0xfe0000000000000000ffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"fe":"fe0000000000000000ffffffffffffffff":"0":"fe0000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1104: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xff = (0xff0000000000000000ffffffffffffffff, carry 0x0)/(0xff0000000000000000ffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ff":"ff0000000000000000ffffffffffffffff":"0":"ff0000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1105: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xffff = (0xffff0000000000000000ffffffffffffffff, carry 0x0)/(0xffff0000000000000000ffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ffff":"ffff0000000000000000ffffffffffffffff":"0":"ffff0000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1106: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x10000 = (0x100000000000000000000ffffffffffffffff, carry 0x0)/(0x100000000000000000000ffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"10000":"100000000000000000000ffffffffffffffff":"0":"100000000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1107: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff0000000000000000ffffffffffffffff, carry 0x0)/(0xffffffff0000000000000000ffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000000ffffffffffffffff":"0":"ffffffff0000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1108: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x100000000 = (0xffffffffffffffff, carry 0x1)/(0x1000000000000000000000000ffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"100000000":"ffffffffffffffff":"1":"1000000000000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1109: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000000ffffffffffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000000ffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000ffffffffffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1110: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x80000000)/(0x80000000000000000000000000000000ffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"8000000000000000":"ffffffffffffffff":"80000000":"80000000000000000000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1111: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000000ffffffffffffffff, carry 0xffffffff)/(0xfffffffffffffffe0000000000000000ffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000000ffffffffffffffff":"ffffffff":"fffffffffffffffe0000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1112: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1113: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0469d0369b20369ccf, carry 0x0)/(0x369d0369b20369cd0469d0369b20369ccf, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0469d0369b20369ccf":"0":"369d0369b20369cd0469d0369b20369ccf":"0" + +mbedtls_mpi_core_mla #1114: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532321fedcb9f8a765321f, carry 0x0)/(0x120fedcb9f8a76532321fedcb9f8a765321f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532321fedcb9f8a765321f":"0":"120fedcb9f8a76532321fedcb9f8a765321f":"0" + +mbedtls_mpi_core_mla #1115: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122322222181b222110f, carry 0x0)/(0x12222222181b2221122322222181b222110f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122322222181b222110f":"0":"12222222181b2221122322222181b222110f":"0" + +mbedtls_mpi_core_mla #1116: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334454443a333d433210f, carry 0x0)/(0x123444443a333d433334454443a333d433210f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334454443a333d433210f":"0":"123444443a333d433334454443a333d433210f":"0" + +mbedtls_mpi_core_mla #1117: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234667890abcdeefffff, carry 0x0)/(0x1234567890abcdef01234667890abcdeefffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234667890abcdeefffff":"0":"1234567890abcdef01234667890abcdeefffff":"0" + +mbedtls_mpi_core_mla #1118: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777888e7777766f543210f, carry 0x12)/(0x123456787e7777767077777888e7777766f543210f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777888e7777766f543210f":"12":"123456787e7777767077777888e7777766f543210f":"0" + +mbedtls_mpi_core_mla #1119: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef012345678a0abcdeefffffffff, carry 0x12)/(0x1234567890abcdef012345678a0abcdeefffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a0abcdeefffffffff":"12":"1234567890abcdef012345678a0abcdeefffffffff":"0" + +mbedtls_mpi_core_mla #1120: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f77f67708abaf5ba90f, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f77f67708abaf5ba90f, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f77f67708abaf5ba90f":"91107edbd":"1107edbd82bde76ff8810996cde66f77f67708abaf5ba90f":"9" + +mbedtls_mpi_core_mla #1121: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f78ffffffffffffffff, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f78ffffffffffffffff":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"9" + +mbedtls_mpi_core_mla #1122: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100eeb97530edea86421f, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100eeb97530edea86421f, carry 0x12) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eeb97530edea86421f":"1234567890":"34567890abcdeedcba987667b32100eeb97530edea86421f":"12" + +mbedtls_mpi_core_mla #1123: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1124: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffc, carry 0x3)/(0xfffffffffffffffc, carry 0x3) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffc":"3":"fffffffffffffffc":"3" + +mbedtls_mpi_core_mla #1125: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffff01, carry 0xfe)/(0xffffffffffffff01, carry 0xfe) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" + +mbedtls_mpi_core_mla #1126: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffff00, carry 0xff)/(0xffffffffffffff00, carry 0xff) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffff00":"ff":"ffffffffffffff00":"ff" + +mbedtls_mpi_core_mla #1127: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffff0000, carry 0xffff)/(0xffffffffffff0000, carry 0xffff) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" + +mbedtls_mpi_core_mla #1128: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffffffffffeffff, carry 0x10000)/(0xfffffffffffeffff, carry 0x10000) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffeffff":"10000":"fffffffffffeffff":"10000" + +mbedtls_mpi_core_mla #1129: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffff00000000, carry 0xffffffff)/(0xffffffff00000000, carry 0xffffffff) +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" + +mbedtls_mpi_core_mla #1130: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xfffffffeffffffff, carry 0x100000000)/(0xfffffffeffffffff, carry 0x100000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffeffffffff":"100000000":"fffffffeffffffff":"100000000" + +mbedtls_mpi_core_mla #1131: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808080, carry 0x7f7f7f7f7f7f7f7f)/(0x8080808080808080, carry 0x7f7f7f7f7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #1132: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x8000000000000000)/(0x7fffffffffffffff, carry 0x8000000000000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000" + +mbedtls_mpi_core_mla #1133: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x1, carry 0xfffffffffffffffe)/(0x1, carry 0xfffffffffffffffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1":"fffffffffffffffe":"1":"fffffffffffffffe" + +mbedtls_mpi_core_mla #1134: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1135: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf":"0" + +mbedtls_mpi_core_mla #1136: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f":"0" + +mbedtls_mpi_core_mla #1137: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122322222181b222110f, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122322222181b222110f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122322222181b222110f":"0":"12222222181b2221122222222181b2221122222222181b2221122322222181b222110f":"0" + +mbedtls_mpi_core_mla #1138: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f":"0":"123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f":"0" + +mbedtls_mpi_core_mla #1139: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff":"0" + +mbedtls_mpi_core_mla #1140: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f":"1234":"123456787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f":"0" + +mbedtls_mpi_core_mla #1141: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff":"0" + +mbedtls_mpi_core_mla #1142: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f, carry 0x911) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f":"911" + +mbedtls_mpi_core_mla #1143: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff, carry 0x91a) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"91a" + +mbedtls_mpi_core_mla #1144: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f, carry 0x1234) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f":"1234" + +mbedtls_mpi_core_mla #1145: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1146: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380":"0" + +mbedtls_mpi_core_mla #1147: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9":"0" + +mbedtls_mpi_core_mla #1148: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4":"0" + +mbedtls_mpi_core_mla #1149: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4":"0" + +mbedtls_mpi_core_mla #1150: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff":"0" + +mbedtls_mpi_core_mla #1151: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4, carry 0x4) +mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4":"4" + +mbedtls_mpi_core_mla #1152: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff, carry 0x4) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff":"4" + +mbedtls_mpi_core_mla #1153: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954, carry 0x26d473ca9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954":"26d473ca9" + +mbedtls_mpi_core_mla #1154: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff, carry 0x26fb9683d) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff":"26fb9683d" + +mbedtls_mpi_core_mla #1155: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9, carry 0x4df72d07b) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9":"4df72d07b" + +mbedtls_mpi_core_mla #1156: 0x10000000000000000 + 0x0 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"0":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1157: 0x10000000000000000 + 0x0 * 0x3 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"0":"3":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1158: 0x10000000000000000 + 0x0 * 0xfe = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"0":"fe":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1159: 0x10000000000000000 + 0x0 * 0xff = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"0":"ff":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1160: 0x10000000000000000 + 0x0 * 0xffff = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"0":"ffff":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1161: 0x10000000000000000 + 0x0 * 0x10000 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"0":"10000":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1162: 0x10000000000000000 + 0x0 * 0xffffffff = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"0":"ffffffff":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1163: 0x10000000000000000 + 0x0 * 0x100000000 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"0":"100000000":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1164: 0x10000000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"0":"7f7f7f7f7f7f7f7f":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1165: 0x10000000000000000 + 0x0 * 0x8000000000000000 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"0":"8000000000000000":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1166: 0x10000000000000000 + 0x0 * 0xfffffffffffffffe = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"0":"fffffffffffffffe":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1167: 0x10000000000000000 + 0x1 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1168: 0x10000000000000000 + 0x1 * 0x3 = (0x10000000000000003, carry 0x0)/(0x10000000000000003, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1":"3":"10000000000000003":"0":"10000000000000003":"0" + +mbedtls_mpi_core_mla #1169: 0x10000000000000000 + 0x1 * 0xfe = (0x100000000000000fe, carry 0x0)/(0x100000000000000fe, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1":"fe":"100000000000000fe":"0":"100000000000000fe":"0" + +mbedtls_mpi_core_mla #1170: 0x10000000000000000 + 0x1 * 0xff = (0x100000000000000ff, carry 0x0)/(0x100000000000000ff, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1":"ff":"100000000000000ff":"0":"100000000000000ff":"0" + +mbedtls_mpi_core_mla #1171: 0x10000000000000000 + 0x1 * 0xffff = (0x1000000000000ffff, carry 0x0)/(0x1000000000000ffff, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1":"ffff":"1000000000000ffff":"0":"1000000000000ffff":"0" + +mbedtls_mpi_core_mla #1172: 0x10000000000000000 + 0x1 * 0x10000 = (0x10000000000010000, carry 0x0)/(0x10000000000010000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1":"10000":"10000000000010000":"0":"10000000000010000":"0" + +mbedtls_mpi_core_mla #1173: 0x10000000000000000 + 0x1 * 0xffffffff = (0x100000000ffffffff, carry 0x0)/(0x100000000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1":"ffffffff":"100000000ffffffff":"0":"100000000ffffffff":"0" + +mbedtls_mpi_core_mla #1174: 0x10000000000000000 + 0x1 * 0x100000000 = (0x10000000100000000, carry 0x0)/(0x10000000100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"1":"100000000":"10000000100000000":"0":"10000000100000000":"0" + +mbedtls_mpi_core_mla #1175: 0x10000000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x17f7f7f7f7f7f7f7f, carry 0x0)/(0x17f7f7f7f7f7f7f7f, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"1":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7f":"0":"17f7f7f7f7f7f7f7f":"0" + +mbedtls_mpi_core_mla #1176: 0x10000000000000000 + 0x1 * 0x8000000000000000 = (0x18000000000000000, carry 0x0)/(0x18000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"1":"8000000000000000":"18000000000000000":"0":"18000000000000000":"0" + +mbedtls_mpi_core_mla #1177: 0x10000000000000000 + 0x1 * 0xfffffffffffffffe = (0x1fffffffffffffffe, carry 0x0)/(0x1fffffffffffffffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"1":"fffffffffffffffe":"1fffffffffffffffe":"0":"1fffffffffffffffe":"0" + +mbedtls_mpi_core_mla #1178: 0x10000000000000000 + 0xfffe * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"fffe":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1179: 0x10000000000000000 + 0xfffe * 0x3 = (0x1000000000002fffa, carry 0x0)/(0x1000000000002fffa, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"fffe":"3":"1000000000002fffa":"0":"1000000000002fffa":"0" + +mbedtls_mpi_core_mla #1180: 0x10000000000000000 + 0xfffe * 0xfe = (0x10000000000fdfe04, carry 0x0)/(0x10000000000fdfe04, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"fffe":"fe":"10000000000fdfe04":"0":"10000000000fdfe04":"0" + +mbedtls_mpi_core_mla #1181: 0x10000000000000000 + 0xfffe * 0xff = (0x10000000000fefe02, carry 0x0)/(0x10000000000fefe02, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"fffe":"ff":"10000000000fefe02":"0":"10000000000fefe02":"0" + +mbedtls_mpi_core_mla #1182: 0x10000000000000000 + 0xfffe * 0xffff = (0x100000000fffd0002, carry 0x0)/(0x100000000fffd0002, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"fffe":"ffff":"100000000fffd0002":"0":"100000000fffd0002":"0" + +mbedtls_mpi_core_mla #1183: 0x10000000000000000 + 0xfffe * 0x10000 = (0x100000000fffe0000, carry 0x0)/(0x100000000fffe0000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"fffe":"10000":"100000000fffe0000":"0":"100000000fffe0000":"0" + +mbedtls_mpi_core_mla #1184: 0x10000000000000000 + 0xfffe * 0xffffffff = (0x10000fffdffff0002, carry 0x0)/(0x10000fffdffff0002, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"fffe":"ffffffff":"10000fffdffff0002":"0":"10000fffdffff0002":"0" + +mbedtls_mpi_core_mla #1185: 0x10000000000000000 + 0xfffe * 0x100000000 = (0x10000fffe00000000, carry 0x0)/(0x10000fffe00000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"fffe":"100000000":"10000fffe00000000":"0":"10000fffe00000000":"0" + +mbedtls_mpi_core_mla #1186: 0x10000000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x7f7f8080808080800102, carry 0x0)/(0x7f7f8080808080800102, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"fffe":"7f7f7f7f7f7f7f7f":"7f7f8080808080800102":"0":"7f7f8080808080800102":"0" + +mbedtls_mpi_core_mla #1187: 0x10000000000000000 + 0xfffe * 0x8000000000000000 = (0x80000000000000000000, carry 0x0)/(0x80000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"fffe":"8000000000000000":"80000000000000000000":"0":"80000000000000000000":"0" + +mbedtls_mpi_core_mla #1188: 0x10000000000000000 + 0xfffe * 0xfffffffffffffffe = (0xfffefffffffffffe0004, carry 0x0)/(0xfffefffffffffffe0004, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"fffe":"fffffffffffffffe":"fffefffffffffffe0004":"0":"fffefffffffffffe0004":"0" + +mbedtls_mpi_core_mla #1189: 0x10000000000000000 + 0xffffffff * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1190: 0x10000000000000000 + 0xffffffff * 0x3 = (0x100000002fffffffd, carry 0x0)/(0x100000002fffffffd, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"3":"100000002fffffffd":"0":"100000002fffffffd":"0" + +mbedtls_mpi_core_mla #1191: 0x10000000000000000 + 0xffffffff * 0xfe = (0x1000000fdffffff02, carry 0x0)/(0x1000000fdffffff02, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"fe":"1000000fdffffff02":"0":"1000000fdffffff02":"0" + +mbedtls_mpi_core_mla #1192: 0x10000000000000000 + 0xffffffff * 0xff = (0x1000000feffffff01, carry 0x0)/(0x1000000feffffff01, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"ff":"1000000feffffff01":"0":"1000000feffffff01":"0" + +mbedtls_mpi_core_mla #1193: 0x10000000000000000 + 0xffffffff * 0xffff = (0x10000fffeffff0001, carry 0x0)/(0x10000fffeffff0001, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"ffff":"10000fffeffff0001":"0":"10000fffeffff0001":"0" + +mbedtls_mpi_core_mla #1194: 0x10000000000000000 + 0xffffffff * 0x10000 = (0x10000ffffffff0000, carry 0x0)/(0x10000ffffffff0000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"10000":"10000ffffffff0000":"0":"10000ffffffff0000":"0" + +mbedtls_mpi_core_mla #1195: 0x10000000000000000 + 0xffffffff * 0xffffffff = (0x1fffffffe00000001, carry 0x0)/(0x1fffffffe00000001, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"ffffffff":"1fffffffe00000001":"0":"1fffffffe00000001":"0" + +mbedtls_mpi_core_mla #1196: 0x10000000000000000 + 0xffffffff * 0x100000000 = (0x1ffffffff00000000, carry 0x0)/(0x1ffffffff00000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"100000000":"1ffffffff00000000":"0":"1ffffffff00000000":"0" + +mbedtls_mpi_core_mla #1197: 0x10000000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fffffffff80808081, carry 0x0)/(0x7f7f7f7fffffffff80808081, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffff80808081":"0":"7f7f7f7fffffffff80808081":"0" + +mbedtls_mpi_core_mla #1198: 0x10000000000000000 + 0xffffffff * 0x8000000000000000 = (0x800000008000000000000000, carry 0x0)/(0x800000008000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"8000000000000000":"800000008000000000000000":"0":"800000008000000000000000":"0" + +mbedtls_mpi_core_mla #1199: 0x10000000000000000 + 0xffffffff * 0xfffffffffffffffe = (0xfffffffffffffffe00000002, carry 0x0)/(0xfffffffffffffffe00000002, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"fffffffffffffffe":"fffffffffffffffe00000002":"0":"fffffffffffffffe00000002":"0" + +mbedtls_mpi_core_mla #1200: 0x10000000000000000 + 0x100000000 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"100000000":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1201: 0x10000000000000000 + 0x100000000 * 0x3 = (0x10000000300000000, carry 0x0)/(0x10000000300000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"100000000":"3":"10000000300000000":"0":"10000000300000000":"0" + +mbedtls_mpi_core_mla #1202: 0x10000000000000000 + 0x100000000 * 0xfe = (0x1000000fe00000000, carry 0x0)/(0x1000000fe00000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"100000000":"fe":"1000000fe00000000":"0":"1000000fe00000000":"0" + +mbedtls_mpi_core_mla #1203: 0x10000000000000000 + 0x100000000 * 0xff = (0x1000000ff00000000, carry 0x0)/(0x1000000ff00000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"100000000":"ff":"1000000ff00000000":"0":"1000000ff00000000":"0" + +mbedtls_mpi_core_mla #1204: 0x10000000000000000 + 0x100000000 * 0xffff = (0x10000ffff00000000, carry 0x0)/(0x10000ffff00000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"100000000":"ffff":"10000ffff00000000":"0":"10000ffff00000000":"0" + +mbedtls_mpi_core_mla #1205: 0x10000000000000000 + 0x100000000 * 0x10000 = (0x10001000000000000, carry 0x0)/(0x10001000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"100000000":"10000":"10001000000000000":"0":"10001000000000000":"0" + +mbedtls_mpi_core_mla #1206: 0x10000000000000000 + 0x100000000 * 0xffffffff = (0x1ffffffff00000000, carry 0x0)/(0x1ffffffff00000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"100000000":"ffffffff":"1ffffffff00000000":"0":"1ffffffff00000000":"0" + +mbedtls_mpi_core_mla #1207: 0x10000000000000000 + 0x100000000 * 0x100000000 = (0x20000000000000000, carry 0x0)/(0x20000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"100000000":"100000000":"20000000000000000":"0":"20000000000000000":"0" + +mbedtls_mpi_core_mla #1208: 0x10000000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f807f7f7f7f00000000, carry 0x0)/(0x7f7f7f807f7f7f7f00000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f807f7f7f7f00000000":"0":"7f7f7f807f7f7f7f00000000":"0" + +mbedtls_mpi_core_mla #1209: 0x10000000000000000 + 0x100000000 * 0x8000000000000000 = (0x800000010000000000000000, carry 0x0)/(0x800000010000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"100000000":"8000000000000000":"800000010000000000000000":"0":"800000010000000000000000":"0" + +mbedtls_mpi_core_mla #1210: 0x10000000000000000 + 0x100000000 * 0xfffffffffffffffe = (0xfffffffe00000000, carry 0x1)/(0x100000000fffffffe00000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"100000000":"fffffffffffffffe":"fffffffe00000000":"1":"100000000fffffffe00000000":"0" + +mbedtls_mpi_core_mla #1211: 0x10000000000000000 + 0x20000000000000 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1212: 0x10000000000000000 + 0x20000000000000 * 0x3 = (0x10060000000000000, carry 0x0)/(0x10060000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"3":"10060000000000000":"0":"10060000000000000":"0" + +mbedtls_mpi_core_mla #1213: 0x10000000000000000 + 0x20000000000000 * 0xfe = (0x11fc0000000000000, carry 0x0)/(0x11fc0000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"fe":"11fc0000000000000":"0":"11fc0000000000000":"0" + +mbedtls_mpi_core_mla #1214: 0x10000000000000000 + 0x20000000000000 * 0xff = (0x11fe0000000000000, carry 0x0)/(0x11fe0000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"ff":"11fe0000000000000":"0":"11fe0000000000000":"0" + +mbedtls_mpi_core_mla #1215: 0x10000000000000000 + 0x20000000000000 * 0xffff = (0x20ffe0000000000000, carry 0x0)/(0x20ffe0000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"ffff":"20ffe0000000000000":"0":"20ffe0000000000000":"0" + +mbedtls_mpi_core_mla #1216: 0x10000000000000000 + 0x20000000000000 * 0x10000 = (0x210000000000000000, carry 0x0)/(0x210000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"10000":"210000000000000000":"0":"210000000000000000":"0" + +mbedtls_mpi_core_mla #1217: 0x10000000000000000 + 0x20000000000000 * 0xffffffff = (0x200000ffe0000000000000, carry 0x0)/(0x200000ffe0000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"ffffffff":"200000ffe0000000000000":"0":"200000ffe0000000000000":"0" + +mbedtls_mpi_core_mla #1218: 0x10000000000000000 + 0x20000000000000 * 0x100000000 = (0x2000010000000000000000, carry 0x0)/(0x2000010000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"100000000":"2000010000000000000000":"0":"2000010000000000000000":"0" + +mbedtls_mpi_core_mla #1219: 0x10000000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefefeff0efe0000000000000, carry 0xfefef)/(0xfefefefefeff0efe0000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"efefeff0efe0000000000000":"fefef":"fefefefefeff0efe0000000000000":"0" + +mbedtls_mpi_core_mla #1220: 0x10000000000000000 + 0x20000000000000 * 0x8000000000000000 = (0x10000000000000000, carry 0x100000)/(0x100000000000010000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"8000000000000000":"10000000000000000":"100000":"100000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1221: 0x10000000000000000 + 0x20000000000000 * 0xfffffffffffffffe = (0xffc0000000000000, carry 0x200000)/(0x20000000000000ffc0000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"fffffffffffffffe":"ffc0000000000000":"200000":"20000000000000ffc0000000000000":"0" + +mbedtls_mpi_core_mla #1222: 0x10000000000000000 + 0xffffffffffffffff * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1223: 0x10000000000000000 + 0xffffffffffffffff * 0x3 = (0x3fffffffffffffffd, carry 0x0)/(0x3fffffffffffffffd, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"3":"3fffffffffffffffd":"0":"3fffffffffffffffd":"0" + +mbedtls_mpi_core_mla #1224: 0x10000000000000000 + 0xffffffffffffffff * 0xfe = (0xfeffffffffffffff02, carry 0x0)/(0xfeffffffffffffff02, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"fe":"feffffffffffffff02":"0":"feffffffffffffff02":"0" + +mbedtls_mpi_core_mla #1225: 0x10000000000000000 + 0xffffffffffffffff * 0xff = (0xffffffffffffffff01, carry 0x0)/(0xffffffffffffffff01, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ff":"ffffffffffffffff01":"0":"ffffffffffffffff01":"0" + +mbedtls_mpi_core_mla #1226: 0x10000000000000000 + 0xffffffffffffffff * 0xffff = (0xffffffffffffffff0001, carry 0x0)/(0xffffffffffffffff0001, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ffff":"ffffffffffffffff0001":"0":"ffffffffffffffff0001":"0" + +mbedtls_mpi_core_mla #1227: 0x10000000000000000 + 0xffffffffffffffff * 0x10000 = (0x10000ffffffffffff0000, carry 0x0)/(0x10000ffffffffffff0000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"10000":"10000ffffffffffff0000":"0":"10000ffffffffffff0000":"0" + +mbedtls_mpi_core_mla #1228: 0x10000000000000000 + 0xffffffffffffffff * 0xffffffff = (0xffffffffffffffff00000001, carry 0x0)/(0xffffffffffffffff00000001, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ffffffff":"ffffffffffffffff00000001":"0":"ffffffffffffffff00000001":"0" + +mbedtls_mpi_core_mla #1229: 0x10000000000000000 + 0xffffffffffffffff * 0x100000000 = (0xffffffff00000000, carry 0x1)/(0x100000000ffffffff00000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"100000000":"ffffffff00000000":"1":"100000000ffffffff00000000":"0" + +mbedtls_mpi_core_mla #1230: 0x10000000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f8080808080808081, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f8080808080808081, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f8080808080808081":"7f7f7f7f":"7f7f7f7f7f7f7f7f8080808080808081":"0" + +mbedtls_mpi_core_mla #1231: 0x10000000000000000 + 0xffffffffffffffff * 0x8000000000000000 = (0x8000000000000000, carry 0x80000000)/(0x80000000000000008000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"8000000000000000":"8000000000000000":"80000000":"80000000000000008000000000000000":"0" + +mbedtls_mpi_core_mla #1232: 0x10000000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe = (0xfffffffe0000000000000002, carry 0xffffffff)/(0xfffffffffffffffe0000000000000002, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"fffffffffffffffe":"fffffffe0000000000000002":"ffffffff":"fffffffffffffffe0000000000000002":"0" + +mbedtls_mpi_core_mla #1233: 0x10000000000000000 + 0x10000000000000000 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1234: 0x10000000000000000 + 0x10000000000000000 * 0x3 = (0x40000000000000000, carry 0x0)/(0x40000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"3":"40000000000000000":"0":"40000000000000000":"0" + +mbedtls_mpi_core_mla #1235: 0x10000000000000000 + 0x10000000000000000 * 0xfe = (0xff0000000000000000, carry 0x0)/(0xff0000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"fe":"ff0000000000000000":"0":"ff0000000000000000":"0" + +mbedtls_mpi_core_mla #1236: 0x10000000000000000 + 0x10000000000000000 * 0xff = (0x1000000000000000000, carry 0x0)/(0x1000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"ff":"1000000000000000000":"0":"1000000000000000000":"0" + +mbedtls_mpi_core_mla #1237: 0x10000000000000000 + 0x10000000000000000 * 0xffff = (0x100000000000000000000, carry 0x0)/(0x100000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"ffff":"100000000000000000000":"0":"100000000000000000000":"0" + +mbedtls_mpi_core_mla #1238: 0x10000000000000000 + 0x10000000000000000 * 0x10000 = (0x100010000000000000000, carry 0x0)/(0x100010000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"10000":"100010000000000000000":"0":"100010000000000000000":"0" + +mbedtls_mpi_core_mla #1239: 0x10000000000000000 + 0x10000000000000000 * 0xffffffff = (0x0, carry 0x1)/(0x1000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"ffffffff":"0":"1":"1000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1240: 0x10000000000000000 + 0x10000000000000000 * 0x100000000 = (0x10000000000000000, carry 0x1)/(0x1000000010000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"100000000":"10000000000000000":"1":"1000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1241: 0x10000000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f800000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f800000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f800000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f800000000000000000":"0" + +mbedtls_mpi_core_mla #1242: 0x10000000000000000 + 0x10000000000000000 * 0x8000000000000000 = (0x10000000000000000, carry 0x80000000)/(0x80000000000000010000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"8000000000000000":"10000000000000000":"80000000":"80000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1243: 0x10000000000000000 + 0x10000000000000000 * 0xfffffffffffffffe = (0xffffffff0000000000000000, carry 0xffffffff)/(0xffffffffffffffff0000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"fffffffffffffffe":"ffffffff0000000000000000":"ffffffff":"ffffffffffffffff0000000000000000":"0" + +mbedtls_mpi_core_mla #1244: 0x10000000000000000 + 0x1234567890abcdef0 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1245: 0x10000000000000000 + 0x1234567890abcdef0 * 0x3 = (0x469d0369b20369cd0, carry 0x0)/(0x469d0369b20369cd0, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"3":"469d0369b20369cd0":"0":"469d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #1246: 0x10000000000000000 + 0x1234567890abcdef0 * 0xfe = (0x121fedcb9f8a7653220, carry 0x0)/(0x121fedcb9f8a7653220, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"fe":"121fedcb9f8a7653220":"0":"121fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #1247: 0x10000000000000000 + 0x1234567890abcdef0 * 0xff = (0x12322222181b2221110, carry 0x0)/(0x12322222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ff":"12322222181b2221110":"0":"12322222181b2221110":"0" + +mbedtls_mpi_core_mla #1248: 0x10000000000000000 + 0x1234567890abcdef0 * 0xffff = (0x123454443a333d4332110, carry 0x0)/(0x123454443a333d4332110, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ffff":"123454443a333d4332110":"0":"123454443a333d4332110":"0" + +mbedtls_mpi_core_mla #1249: 0x10000000000000000 + 0x1234567890abcdef0 * 0x10000 = (0x1234667890abcdef00000, carry 0x0)/(0x1234667890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"10000":"1234667890abcdef00000":"0":"1234667890abcdef00000":"0" + +mbedtls_mpi_core_mla #1250: 0x10000000000000000 + 0x1234567890abcdef0 * 0xffffffff = (0x23456788e7777766f5432110, carry 0x1)/(0x123456788e7777766f5432110, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ffffffff":"23456788e7777766f5432110":"1":"123456788e7777766f5432110":"0" + +mbedtls_mpi_core_mla #1251: 0x10000000000000000 + 0x1234567890abcdef0 * 0x100000000 = (0x2345678a0abcdef000000000, carry 0x1)/(0x12345678a0abcdef000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"100000000":"2345678a0abcdef000000000":"1":"12345678a0abcdef000000000":"0" + +mbedtls_mpi_core_mla #1252: 0x10000000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde77f67708abaf5ba910, carry 0x91107edb)/(0x91107edbd82bde77f67708abaf5ba910, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde77f67708abaf5ba910":"91107edb":"91107edbd82bde77f67708abaf5ba910":"0" + +mbedtls_mpi_core_mla #1253: 0x10000000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f790000000000000000, carry 0x91a2b3c4)/(0x91a2b3c4855e6f790000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"8000000000000000":"855e6f790000000000000000":"91a2b3c4":"91a2b3c4855e6f790000000000000000":"0" + +mbedtls_mpi_core_mla #1254: 0x10000000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeeb97530edea864220, carry 0x123456789)/(0x234567890abcdeeeb97530edea864220, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeeeb97530edea864220":"123456789":"234567890abcdeeeb97530edea864220":"1" + +mbedtls_mpi_core_mla #1255: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1256: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfcfcfcfcfcfcfcfa, carry 0x3)/(0xfcfcfcfcfcfcfcfa, carry 0x3) +mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"3":"fcfcfcfcfcfcfcfa":"3":"fcfcfcfcfcfcfcfa":"3" + +mbedtls_mpi_core_mla #1257: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x101010101010004, carry 0xfe)/(0x101010101010004, carry 0xfe) +mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fe":"101010101010004":"fe":"101010101010004":"fe" + +mbedtls_mpi_core_mla #1258: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffffffffffffffffff02, carry 0xfe)/(0xffffffffffffffffffffffffffffff02, carry 0xfe) +mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffff02":"fe" + +mbedtls_mpi_core_mla #1259: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeffffffffffffff0102, carry 0xfffe)/(0xfffffffffffffeffffffffffffff0102, carry 0xfffe) +mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeffffffffffffff0102":"fffe":"fffffffffffffeffffffffffffff0102":"fffe" + +mbedtls_mpi_core_mla #1260: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefffefefefefefe0000, carry 0xffff)/(0xfffffffffffffefffefefefefefe0000, carry 0xffff) +mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefffefefefefefe0000":"ffff":"fffffffffffffefffefefefefefe0000":"ffff" + +mbedtls_mpi_core_mla #1261: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeffffffffff01010102, carry 0xfffffffe)/(0xfffffffffefefeffffffffff01010102, carry 0xfffffffe) +mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeffffffffff01010102":"fffffffe":"fffffffffefefeffffffffff01010102":"fffffffe" + +mbedtls_mpi_core_mla #1262: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefffefefefe00000000, carry 0xffffffff)/(0xfffffffffefefefffefefefe00000000, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefffefefefe00000000":"ffffffff":"fffffffffefefefffefefefe00000000":"ffffffff" + +mbedtls_mpi_core_mla #1263: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202838504840383028202, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202838504840383028202, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202838504840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202838504840383028202":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #1264: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f800000000000000000, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f800000000000000000, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f800000000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f800000000000000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #1265: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefeff0202020202020204, carry 0xfffffffffffffffd)/(0xfefefefefefefeff0202020202020204, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff0202020202020204":"fffffffffffffffd":"fefefefefefefeff0202020202020204":"fffffffffffffffd" + +mbedtls_mpi_core_mla #1266: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1267: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000010000000000000000, carry 0x0)/(0x300000000000000010000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"3":"300000000000000010000000000000000":"0":"300000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1268: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000010000000000000000, carry 0x0)/(0xfe00000000000000010000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"fe":"fe00000000000000010000000000000000":"0":"fe00000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1269: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000010000000000000000, carry 0x0)/(0xff00000000000000010000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ff":"ff00000000000000010000000000000000":"0":"ff00000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1270: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000010000000000000000, carry 0x0)/(0xffff00000000000000010000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000010000000000000000":"0":"ffff00000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1271: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000010000000000000000, carry 0x0)/(0x1000000000000000000010000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"10000":"1000000000000000000010000000000000000":"0":"1000000000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1272: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000010000000000000000, carry 0x0)/(0xffffffff00000000000000010000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000010000000000000000":"0":"ffffffff00000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1273: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x100000000 = (0x10000000000000000, carry 0x1)/(0x10000000000000000000000010000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"100000000":"10000000000000000":"1":"10000000000000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1274: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000010000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000010000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000010000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1275: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x10000000000000000, carry 0x80000000)/(0x800000000000000000000000000000010000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"8000000000000000":"10000000000000000":"80000000":"800000000000000000000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1276: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000010000000000000000, carry 0xffffffff)/(0xfffffffffffffffe00000000000000010000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000010000000000000000":"ffffffff":"fffffffffffffffe00000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1277: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1278: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0469d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0469d0369b20369cd0, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0469d0369b20369cd0":"0":"369d0369b20369cd0469d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #1279: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532321fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532321fedcb9f8a7653220, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532321fedcb9f8a7653220":"0":"120fedcb9f8a76532321fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #1280: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122322222181b2221110, carry 0x0)/(0x12222222181b2221122322222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122322222181b2221110":"0":"12222222181b2221122322222181b2221110":"0" + +mbedtls_mpi_core_mla #1281: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334454443a333d4332110, carry 0x0)/(0x123444443a333d433334454443a333d4332110, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334454443a333d4332110":"0":"123444443a333d433334454443a333d4332110":"0" + +mbedtls_mpi_core_mla #1282: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234667890abcdef00000, carry 0x0)/(0x1234567890abcdef01234667890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234667890abcdef00000":"0":"1234567890abcdef01234667890abcdef00000":"0" + +mbedtls_mpi_core_mla #1283: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777888e7777766f5432110, carry 0x12)/(0x123456787e7777767077777888e7777766f5432110, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777888e7777766f5432110":"12":"123456787e7777767077777888e7777766f5432110":"0" + +mbedtls_mpi_core_mla #1284: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef012345678a0abcdef000000000, carry 0x12)/(0x1234567890abcdef012345678a0abcdef000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a0abcdef000000000":"12":"1234567890abcdef012345678a0abcdef000000000":"0" + +mbedtls_mpi_core_mla #1285: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f77f67708abaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f77f67708abaf5ba910, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f77f67708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f77f67708abaf5ba910":"9" + +mbedtls_mpi_core_mla #1286: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f790000000000000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f790000000000000000, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f790000000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"9" + +mbedtls_mpi_core_mla #1287: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100eeb97530edea864220, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100eeb97530edea864220, carry 0x12) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eeb97530edea864220":"1234567890":"34567890abcdeedcba987667b32100eeb97530edea864220":"12" + +mbedtls_mpi_core_mla #1288: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1289: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffd, carry 0x3)/(0xfffffffffffffffd, carry 0x3) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffd":"3":"fffffffffffffffd":"3" + +mbedtls_mpi_core_mla #1290: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffff02, carry 0xfe)/(0xffffffffffffff02, carry 0xfe) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffff02":"fe":"ffffffffffffff02":"fe" + +mbedtls_mpi_core_mla #1291: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffff01, carry 0xff)/(0xffffffffffffff01, carry 0xff) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffff01":"ff":"ffffffffffffff01":"ff" + +mbedtls_mpi_core_mla #1292: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffff0001, carry 0xffff)/(0xffffffffffff0001, carry 0xffff) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffff0001":"ffff":"ffffffffffff0001":"ffff" + +mbedtls_mpi_core_mla #1293: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffffffffffff0000, carry 0x10000)/(0xffffffffffff0000, carry 0x10000) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffff0000":"10000":"ffffffffffff0000":"10000" + +mbedtls_mpi_core_mla #1294: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffff00000001, carry 0xffffffff)/(0xffffffff00000001, carry 0xffffffff) +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff00000001":"ffffffff":"ffffffff00000001":"ffffffff" + +mbedtls_mpi_core_mla #1295: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffff00000000, carry 0x100000000)/(0xffffffff00000000, carry 0x100000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffff00000000":"100000000":"ffffffff00000000":"100000000" + +mbedtls_mpi_core_mla #1296: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808081, carry 0x7f7f7f7f7f7f7f7f)/(0x8080808080808081, carry 0x7f7f7f7f7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #1297: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x8000000000000000, carry 0x8000000000000000)/(0x8000000000000000, carry 0x8000000000000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"8000000000000000":"8000000000000000":"8000000000000000":"8000000000000000" + +mbedtls_mpi_core_mla #1298: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x2, carry 0xfffffffffffffffe)/(0x2, carry 0xfffffffffffffffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"2":"fffffffffffffffe":"2":"fffffffffffffffe" + +mbedtls_mpi_core_mla #1299: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1300: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #1301: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #1302: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122322222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122322222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122322222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122322222181b2221110":"0" + +mbedtls_mpi_core_mla #1303: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110":"0" + +mbedtls_mpi_core_mla #1304: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000":"0" + +mbedtls_mpi_core_mla #1305: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110":"0" + +mbedtls_mpi_core_mla #1306: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000":"0" + +mbedtls_mpi_core_mla #1307: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910, carry 0x911) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910":"911" + +mbedtls_mpi_core_mla #1308: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000, carry 0x91a) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"91a" + +mbedtls_mpi_core_mla #1309: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220, carry 0x1234) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220":"1234" + +mbedtls_mpi_core_mla #1310: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1311: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381":"0" + +mbedtls_mpi_core_mla #1312: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa":"0" + +mbedtls_mpi_core_mla #1313: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5":"0" + +mbedtls_mpi_core_mla #1314: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5":"0" + +mbedtls_mpi_core_mla #1315: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000, carry 0x0) +mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000":"0" + +mbedtls_mpi_core_mla #1316: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5, carry 0x4) +mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5":"4" + +mbedtls_mpi_core_mla #1317: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000, carry 0x4) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000":"4" + +mbedtls_mpi_core_mla #1318: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955, carry 0x26d473ca9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955":"26d473ca9" + +mbedtls_mpi_core_mla #1319: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000, carry 0x26fb9683d) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000":"26fb9683d" + +mbedtls_mpi_core_mla #1320: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa, carry 0x4df72d07b) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa":"4df72d07b" + +mbedtls_mpi_core_mla #1321: 0x1234567890abcdef0 + 0x0 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1322: 0x1234567890abcdef0 + 0x0 * 0x3 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"3":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1323: 0x1234567890abcdef0 + 0x0 * 0xfe = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"fe":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1324: 0x1234567890abcdef0 + 0x0 * 0xff = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"ff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1325: 0x1234567890abcdef0 + 0x0 * 0xffff = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"ffff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1326: 0x1234567890abcdef0 + 0x0 * 0x10000 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"10000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1327: 0x1234567890abcdef0 + 0x0 * 0xffffffff = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"ffffffff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1328: 0x1234567890abcdef0 + 0x0 * 0x100000000 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"100000000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1329: 0x1234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1330: 0x1234567890abcdef0 + 0x0 * 0x8000000000000000 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"8000000000000000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1331: 0x1234567890abcdef0 + 0x0 * 0xfffffffffffffffe = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1332: 0x1234567890abcdef0 + 0x1 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1333: 0x1234567890abcdef0 + 0x1 * 0x3 = (0x1234567890abcdef3, carry 0x0)/(0x1234567890abcdef3, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"3":"1234567890abcdef3":"0":"1234567890abcdef3":"0" + +mbedtls_mpi_core_mla #1334: 0x1234567890abcdef0 + 0x1 * 0xfe = (0x1234567890abcdfee, carry 0x0)/(0x1234567890abcdfee, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"fe":"1234567890abcdfee":"0":"1234567890abcdfee":"0" + +mbedtls_mpi_core_mla #1335: 0x1234567890abcdef0 + 0x1 * 0xff = (0x1234567890abcdfef, carry 0x0)/(0x1234567890abcdfef, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"ff":"1234567890abcdfef":"0":"1234567890abcdfef":"0" + +mbedtls_mpi_core_mla #1336: 0x1234567890abcdef0 + 0x1 * 0xffff = (0x1234567890abddeef, carry 0x0)/(0x1234567890abddeef, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"ffff":"1234567890abddeef":"0":"1234567890abddeef":"0" + +mbedtls_mpi_core_mla #1337: 0x1234567890abcdef0 + 0x1 * 0x10000 = (0x1234567890abddef0, carry 0x0)/(0x1234567890abddef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"10000":"1234567890abddef0":"0":"1234567890abddef0":"0" + +mbedtls_mpi_core_mla #1338: 0x1234567890abcdef0 + 0x1 * 0xffffffff = (0x12345678a0abcdeef, carry 0x0)/(0x12345678a0abcdeef, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"ffffffff":"12345678a0abcdeef":"0":"12345678a0abcdeef":"0" + +mbedtls_mpi_core_mla #1339: 0x1234567890abcdef0 + 0x1 * 0x100000000 = (0x12345678a0abcdef0, carry 0x0)/(0x12345678a0abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"100000000":"12345678a0abcdef0":"0":"12345678a0abcdef0":"0" + +mbedtls_mpi_core_mla #1340: 0x1234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x1a2c4e7088a3c5e6f, carry 0x0)/(0x1a2c4e7088a3c5e6f, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1a2c4e7088a3c5e6f":"0":"1a2c4e7088a3c5e6f":"0" + +mbedtls_mpi_core_mla #1341: 0x1234567890abcdef0 + 0x1 * 0x8000000000000000 = (0x1a34567890abcdef0, carry 0x0)/(0x1a34567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"8000000000000000":"1a34567890abcdef0":"0":"1a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #1342: 0x1234567890abcdef0 + 0x1 * 0xfffffffffffffffe = (0x2234567890abcdeee, carry 0x0)/(0x2234567890abcdeee, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"fffffffffffffffe":"2234567890abcdeee":"0":"2234567890abcdeee":"0" + +mbedtls_mpi_core_mla #1343: 0x1234567890abcdef0 + 0xfffe * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1344: 0x1234567890abcdef0 + 0xfffe * 0x3 = (0x1234567890abfdeea, carry 0x0)/(0x1234567890abfdeea, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"3":"1234567890abfdeea":"0":"1234567890abfdeea":"0" + +mbedtls_mpi_core_mla #1345: 0x1234567890abcdef0 + 0xfffe * 0xfe = (0x1234567890bbadcf4, carry 0x0)/(0x1234567890bbadcf4, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"fe":"1234567890bbadcf4":"0":"1234567890bbadcf4":"0" + +mbedtls_mpi_core_mla #1346: 0x1234567890abcdef0 + 0xfffe * 0xff = (0x1234567890bbbdcf2, carry 0x0)/(0x1234567890bbbdcf2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"ff":"1234567890bbbdcf2":"0":"1234567890bbbdcf2":"0" + +mbedtls_mpi_core_mla #1347: 0x1234567890abcdef0 + 0xfffe * 0xffff = (0x12345678a0ab9def2, carry 0x0)/(0x12345678a0ab9def2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"ffff":"12345678a0ab9def2":"0":"12345678a0ab9def2":"0" + +mbedtls_mpi_core_mla #1348: 0x1234567890abcdef0 + 0xfffe * 0x10000 = (0x12345678a0abadef0, carry 0x0)/(0x12345678a0abadef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"10000":"12345678a0abadef0":"0":"12345678a0abadef0":"0" + +mbedtls_mpi_core_mla #1349: 0x1234567890abcdef0 + 0xfffe * 0xffffffff = (0x1234667870abbdef2, carry 0x0)/(0x1234667870abbdef2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"ffffffff":"1234667870abbdef2":"0":"1234667870abbdef2":"0" + +mbedtls_mpi_core_mla #1350: 0x1234567890abcdef0 + 0xfffe * 0x100000000 = (0x1234667870abcdef0, carry 0x0)/(0x1234667870abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"100000000":"1234667870abcdef0":"0":"1234667870abcdef0":"0" + +mbedtls_mpi_core_mla #1351: 0x1234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x7f7fa3c5e8098b3cdff2, carry 0x0)/(0x7f7fa3c5e8098b3cdff2, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"7f7fa3c5e8098b3cdff2":"0":"7f7fa3c5e8098b3cdff2":"0" + +mbedtls_mpi_core_mla #1352: 0x1234567890abcdef0 + 0xfffe * 0x8000000000000000 = (0x8000234567890abcdef0, carry 0x0)/(0x8000234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"8000000000000000":"8000234567890abcdef0":"0":"8000234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1353: 0x1234567890abcdef0 + 0xfffe * 0xfffffffffffffffe = (0xffff234567890abadef4, carry 0x0)/(0xffff234567890abadef4, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"fffffffffffffffe":"ffff234567890abadef4":"0":"ffff234567890abadef4":"0" + +mbedtls_mpi_core_mla #1354: 0x1234567890abcdef0 + 0xffffffff * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1355: 0x1234567890abcdef0 + 0xffffffff * 0x3 = (0x12345678c0abcdeed, carry 0x0)/(0x12345678c0abcdeed, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"3":"12345678c0abcdeed":"0":"12345678c0abcdeed":"0" + +mbedtls_mpi_core_mla #1356: 0x1234567890abcdef0 + 0xffffffff * 0xfe = (0x1234568870abcddf2, carry 0x0)/(0x1234568870abcddf2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"fe":"1234568870abcddf2":"0":"1234568870abcddf2":"0" + +mbedtls_mpi_core_mla #1357: 0x1234567890abcdef0 + 0xffffffff * 0xff = (0x1234568880abcddf1, carry 0x0)/(0x1234568880abcddf1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"ff":"1234568880abcddf1":"0":"1234568880abcddf1":"0" + +mbedtls_mpi_core_mla #1358: 0x1234567890abcdef0 + 0xffffffff * 0xffff = (0x1234667880abbdef1, carry 0x0)/(0x1234667880abbdef1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"ffff":"1234667880abbdef1":"0":"1234667880abbdef1":"0" + +mbedtls_mpi_core_mla #1359: 0x1234567890abcdef0 + 0xffffffff * 0x10000 = (0x1234667890abbdef0, carry 0x0)/(0x1234667890abbdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"10000":"1234667890abbdef0":"0":"1234667890abbdef0":"0" + +mbedtls_mpi_core_mla #1360: 0x1234567890abcdef0 + 0xffffffff * 0xffffffff = (0x2234567870abcdef1, carry 0x0)/(0x2234567870abcdef1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"ffffffff":"2234567870abcdef1":"0":"2234567870abcdef1":"0" + +mbedtls_mpi_core_mla #1361: 0x1234567890abcdef0 + 0xffffffff * 0x100000000 = (0x2234567880abcdef0, carry 0x0)/(0x2234567880abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"100000000":"2234567880abcdef0":"0":"2234567880abcdef0":"0" + +mbedtls_mpi_core_mla #1362: 0x1234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f80234567888b3d5f71, carry 0x0)/(0x7f7f7f80234567888b3d5f71, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f80234567888b3d5f71":"0":"7f7f7f80234567888b3d5f71":"0" + +mbedtls_mpi_core_mla #1363: 0x1234567890abcdef0 + 0xffffffff * 0x8000000000000000 = (0x80000000a34567890abcdef0, carry 0x0)/(0x80000000a34567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"8000000000000000":"80000000a34567890abcdef0":"0":"80000000a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #1364: 0x1234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe = (0x234567870abcdef2, carry 0x1)/(0x100000000234567870abcdef2, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"fffffffffffffffe":"234567870abcdef2":"1":"100000000234567870abcdef2":"0" + +mbedtls_mpi_core_mla #1365: 0x1234567890abcdef0 + 0x100000000 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1366: 0x1234567890abcdef0 + 0x100000000 * 0x3 = (0x12345678c0abcdef0, carry 0x0)/(0x12345678c0abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"3":"12345678c0abcdef0":"0":"12345678c0abcdef0":"0" + +mbedtls_mpi_core_mla #1367: 0x1234567890abcdef0 + 0x100000000 * 0xfe = (0x1234568870abcdef0, carry 0x0)/(0x1234568870abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"fe":"1234568870abcdef0":"0":"1234568870abcdef0":"0" + +mbedtls_mpi_core_mla #1368: 0x1234567890abcdef0 + 0x100000000 * 0xff = (0x1234568880abcdef0, carry 0x0)/(0x1234568880abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"ff":"1234568880abcdef0":"0":"1234568880abcdef0":"0" + +mbedtls_mpi_core_mla #1369: 0x1234567890abcdef0 + 0x100000000 * 0xffff = (0x1234667880abcdef0, carry 0x0)/(0x1234667880abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"ffff":"1234667880abcdef0":"0":"1234667880abcdef0":"0" + +mbedtls_mpi_core_mla #1370: 0x1234567890abcdef0 + 0x100000000 * 0x10000 = (0x1234667890abcdef0, carry 0x0)/(0x1234667890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"10000":"1234667890abcdef0":"0":"1234667890abcdef0":"0" + +mbedtls_mpi_core_mla #1371: 0x1234567890abcdef0 + 0x100000000 * 0xffffffff = (0x2234567880abcdef0, carry 0x0)/(0x2234567880abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"ffffffff":"2234567880abcdef0":"0":"2234567880abcdef0":"0" + +mbedtls_mpi_core_mla #1372: 0x1234567890abcdef0 + 0x100000000 * 0x100000000 = (0x2234567890abcdef0, carry 0x0)/(0x2234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"100000000":"2234567890abcdef0":"0":"2234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1373: 0x1234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f80a2c4e7080abcdef0, carry 0x0)/(0x7f7f7f80a2c4e7080abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f80a2c4e7080abcdef0":"0":"7f7f7f80a2c4e7080abcdef0":"0" + +mbedtls_mpi_core_mla #1374: 0x1234567890abcdef0 + 0x100000000 * 0x8000000000000000 = (0x80000001234567890abcdef0, carry 0x0)/(0x80000001234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"8000000000000000":"80000001234567890abcdef0":"0":"80000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1375: 0x1234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe = (0x1234567870abcdef0, carry 0x1)/(0x100000001234567870abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"fffffffffffffffe":"1234567870abcdef0":"1":"100000001234567870abcdef0":"0" + +mbedtls_mpi_core_mla #1376: 0x1234567890abcdef0 + 0x20000000000000 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1377: 0x1234567890abcdef0 + 0x20000000000000 * 0x3 = (0x123a567890abcdef0, carry 0x0)/(0x123a567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"3":"123a567890abcdef0":"0":"123a567890abcdef0":"0" + +mbedtls_mpi_core_mla #1378: 0x1234567890abcdef0 + 0x20000000000000 * 0xfe = (0x1430567890abcdef0, carry 0x0)/(0x1430567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"fe":"1430567890abcdef0":"0":"1430567890abcdef0":"0" + +mbedtls_mpi_core_mla #1379: 0x1234567890abcdef0 + 0x20000000000000 * 0xff = (0x1432567890abcdef0, carry 0x0)/(0x1432567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"ff":"1432567890abcdef0":"0":"1432567890abcdef0":"0" + +mbedtls_mpi_core_mla #1380: 0x1234567890abcdef0 + 0x20000000000000 * 0xffff = (0x21232567890abcdef0, carry 0x0)/(0x21232567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"ffff":"21232567890abcdef0":"0":"21232567890abcdef0":"0" + +mbedtls_mpi_core_mla #1381: 0x1234567890abcdef0 + 0x20000000000000 * 0x10000 = (0x21234567890abcdef0, carry 0x0)/(0x21234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"10000":"21234567890abcdef0":"0":"21234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1382: 0x1234567890abcdef0 + 0x20000000000000 * 0xffffffff = (0x200001232567890abcdef0, carry 0x0)/(0x200001232567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"ffffffff":"200001232567890abcdef0":"0":"200001232567890abcdef0":"0" + +mbedtls_mpi_core_mla #1383: 0x1234567890abcdef0 + 0x20000000000000 * 0x100000000 = (0x200001234567890abcdef0, carry 0x0)/(0x200001234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"100000000":"200001234567890abcdef0":"0":"200001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1384: 0x1234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefefeff1132567890abcdef0, carry 0xfefef)/(0xfefefefefeff1132567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"efefeff1132567890abcdef0":"fefef":"fefefefefeff1132567890abcdef0":"0" + +mbedtls_mpi_core_mla #1385: 0x1234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 = (0x1234567890abcdef0, carry 0x100000)/(0x10000000000001234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"8000000000000000":"1234567890abcdef0":"100000":"10000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1386: 0x1234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe = (0x1230567890abcdef0, carry 0x200000)/(0x20000000000001230567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"fffffffffffffffe":"1230567890abcdef0":"200000":"20000000000001230567890abcdef0":"0" + +mbedtls_mpi_core_mla #1387: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1388: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x3 = (0x4234567890abcdeed, carry 0x0)/(0x4234567890abcdeed, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"3":"4234567890abcdeed":"0":"4234567890abcdeed":"0" + +mbedtls_mpi_core_mla #1389: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xfe = (0xff234567890abcddf2, carry 0x0)/(0xff234567890abcddf2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"fe":"ff234567890abcddf2":"0":"ff234567890abcddf2":"0" + +mbedtls_mpi_core_mla #1390: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xff = (0x100234567890abcddf1, carry 0x0)/(0x100234567890abcddf1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ff":"100234567890abcddf1":"0":"100234567890abcddf1":"0" + +mbedtls_mpi_core_mla #1391: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xffff = (0x10000234567890abbdef1, carry 0x0)/(0x10000234567890abbdef1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ffff":"10000234567890abbdef1":"0":"10000234567890abbdef1":"0" + +mbedtls_mpi_core_mla #1392: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x10000 = (0x10001234567890abbdef0, carry 0x0)/(0x10001234567890abbdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"10000":"10001234567890abbdef0":"0":"10001234567890abbdef0":"0" + +mbedtls_mpi_core_mla #1393: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xffffffff = (0x234567880abcdef1, carry 0x1)/(0x100000000234567880abcdef1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ffffffff":"234567880abcdef1":"1":"100000000234567880abcdef1":"0" + +mbedtls_mpi_core_mla #1394: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x100000000 = (0x1234567880abcdef0, carry 0x1)/(0x100000001234567880abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"100000000":"1234567880abcdef0":"1":"100000001234567880abcdef0":"0" + +mbedtls_mpi_core_mla #1395: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fa3c5e8098b3d5f71, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7fa3c5e8098b3d5f71, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7fa3c5e8098b3d5f71":"7f7f7f7f":"7f7f7f7f7f7f7f7fa3c5e8098b3d5f71":"0" + +mbedtls_mpi_core_mla #1396: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 = (0xa34567890abcdef0, carry 0x80000000)/(0x8000000000000000a34567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"8000000000000000":"a34567890abcdef0":"80000000":"8000000000000000a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #1397: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe = (0xfffffffe234567890abcdef2, carry 0xffffffff)/(0xfffffffffffffffe234567890abcdef2, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"fffffffe234567890abcdef2":"ffffffff":"fffffffffffffffe234567890abcdef2":"0" + +mbedtls_mpi_core_mla #1398: 0x1234567890abcdef0 + 0x10000000000000000 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1399: 0x1234567890abcdef0 + 0x10000000000000000 * 0x3 = (0x4234567890abcdef0, carry 0x0)/(0x4234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"3":"4234567890abcdef0":"0":"4234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1400: 0x1234567890abcdef0 + 0x10000000000000000 * 0xfe = (0xff234567890abcdef0, carry 0x0)/(0xff234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"fe":"ff234567890abcdef0":"0":"ff234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1401: 0x1234567890abcdef0 + 0x10000000000000000 * 0xff = (0x100234567890abcdef0, carry 0x0)/(0x100234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ff":"100234567890abcdef0":"0":"100234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1402: 0x1234567890abcdef0 + 0x10000000000000000 * 0xffff = (0x10000234567890abcdef0, carry 0x0)/(0x10000234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ffff":"10000234567890abcdef0":"0":"10000234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1403: 0x1234567890abcdef0 + 0x10000000000000000 * 0x10000 = (0x10001234567890abcdef0, carry 0x0)/(0x10001234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"10000":"10001234567890abcdef0":"0":"10001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1404: 0x1234567890abcdef0 + 0x10000000000000000 * 0xffffffff = (0x234567890abcdef0, carry 0x1)/(0x100000000234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ffffffff":"234567890abcdef0":"1":"100000000234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1405: 0x1234567890abcdef0 + 0x10000000000000000 * 0x100000000 = (0x1234567890abcdef0, carry 0x1)/(0x100000001234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"100000000":"1234567890abcdef0":"1":"100000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1406: 0x1234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f80234567890abcdef0, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f80234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f80234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f80234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1407: 0x1234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 = (0x1234567890abcdef0, carry 0x80000000)/(0x8000000000000001234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"8000000000000000":"1234567890abcdef0":"80000000":"8000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1408: 0x1234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe = (0xffffffff234567890abcdef0, carry 0xffffffff)/(0xffffffffffffffff234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"fffffffffffffffe":"ffffffff234567890abcdef0":"ffffffff":"ffffffffffffffff234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1409: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1410: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x3 = (0x48d159e242af37bc0, carry 0x0)/(0x48d159e242af37bc0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"3":"48d159e242af37bc0":"0":"48d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #1411: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xfe = (0x12222222181b2221110, carry 0x0)/(0x12222222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"fe":"12222222181b2221110":"0":"12222222181b2221110":"0" + +mbedtls_mpi_core_mla #1412: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xff = (0x1234567890abcdef000, carry 0x0)/(0x1234567890abcdef000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdef000":"0":"1234567890abcdef000":"0" + +mbedtls_mpi_core_mla #1413: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xffff = (0x1234567890abcdef00000, carry 0x0)/(0x1234567890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcdef00000":"0":"1234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1414: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 = (0x123468ace7245e9acdef0, carry 0x0)/(0x123468ace7245e9acdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"10000":"123468ace7245e9acdef0":"0":"123468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #1415: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff = (0x234567890abcdef000000000, carry 0x1)/(0x1234567890abcdef000000000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ffffffff":"234567890abcdef000000000":"1":"1234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1416: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 = (0x2345678a2e0246790abcdef0, carry 0x1)/(0x12345678a2e0246790abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"100000000":"2345678a2e0246790abcdef0":"1":"12345678a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #1417: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde7819bc7034ba188800, carry 0x91107edb)/(0x91107edbd82bde7819bc7034ba188800, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde7819bc7034ba188800":"91107edb":"91107edbd82bde7819bc7034ba188800":"0" + +mbedtls_mpi_core_mla #1418: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f79234567890abcdef0, carry 0x91a2b3c4)/(0x91a2b3c4855e6f79234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"8000000000000000":"855e6f79234567890abcdef0":"91a2b3c4":"91a2b3c4855e6f79234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1419: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeedcba9876f5432110, carry 0x123456789)/(0x234567890abcdeeedcba9876f5432110, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"abcdeeedcba9876f5432110":"123456789":"234567890abcdeeedcba9876f5432110":"1" + +mbedtls_mpi_core_mla #1420: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1421: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x12042648607b9dbea, carry 0x3)/(0x12042648607b9dbea, carry 0x3) +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"12042648607b9dbea":"3":"12042648607b9dbea":"3" + +mbedtls_mpi_core_mla #1422: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x2446688a0bbddef4, carry 0xfe)/(0x2446688a0bbddef4, carry 0xfe) +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"2446688a0bbddef4":"fe":"2446688a0bbddef4":"fe" + +mbedtls_mpi_core_mla #1423: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0x234567890abcddf2, carry 0xff)/(0x234567890abcddf2, carry 0xff) +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"234567890abcddf2":"ff":"234567890abcddf2":"ff" + +mbedtls_mpi_core_mla #1424: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xffffffffffffff00234567890abbdff2, carry 0xfffe)/(0xffffffffffffff00234567890abbdff2, carry 0xfffe) +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"ffffffffffffff00234567890abbdff2":"fffe":"ffffffffffffff00234567890abbdff2":"fffe" + +mbedtls_mpi_core_mla #1425: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xffffffffffffff002244668809badef0, carry 0xffff)/(0xffffffffffffff002244668809badef0, carry 0xffff) +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"ffffffffffffff002244668809badef0":"ffff":"ffffffffffffff002244668809badef0":"ffff" + +mbedtls_mpi_core_mla #1426: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefeff00234567880bbddff2, carry 0xfffffffe)/(0xfffffffffefeff00234567880bbddff2, carry 0xfffffffe) +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefeff00234567880bbddff2":"fffffffe":"fffffffffefeff00234567880bbddff2":"fffffffe" + +mbedtls_mpi_core_mla #1427: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefeff00224466870abcdef0, carry 0xffffffff)/(0xfffffffffefeff00224466870abcdef0, carry 0xffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefeff00224466870abcdef0":"ffffffff":"fffffffffefeff00224466870abcdef0":"ffffffff" + +mbedtls_mpi_core_mla #1428: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff80008101820283a849eb8c8dbf60f2, carry 0x7f7f7f7f7f7f7f7e)/(0xff80008101820283a849eb8c8dbf60f2, carry 0x7f7f7f7f7f7f7f7e) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff80008101820283a849eb8c8dbf60f2":"7f7f7f7f7f7f7f7e":"ff80008101820283a849eb8c8dbf60f2":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #1429: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f80234567890abcdef0, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f80234567890abcdef0, carry 0x7fffffffffffffff) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f80234567890abcdef0":"7fffffffffffffff":"ff7f7f7f7f7f7f80234567890abcdef0":"7fffffffffffffff" + +mbedtls_mpi_core_mla #1430: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefeff2547698b0cbee0f4, carry 0xfffffffffffffffd)/(0xfefefefefefefeff2547698b0cbee0f4, carry 0xfffffffffffffffd) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff2547698b0cbee0f4":"fffffffffffffffd":"fefefefefefefeff2547698b0cbee0f4":"fffffffffffffffd" + +mbedtls_mpi_core_mla #1431: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1432: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 = (0x30000000000000001234567890abcdef0, carry 0x0)/(0x30000000000000001234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"3":"30000000000000001234567890abcdef0":"0":"30000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1433: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe = (0xfe0000000000000001234567890abcdef0, carry 0x0)/(0xfe0000000000000001234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"fe":"fe0000000000000001234567890abcdef0":"0":"fe0000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1434: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff = (0xff0000000000000001234567890abcdef0, carry 0x0)/(0xff0000000000000001234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ff":"ff0000000000000001234567890abcdef0":"0":"ff0000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1435: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff = (0xffff0000000000000001234567890abcdef0, carry 0x0)/(0xffff0000000000000001234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ffff":"ffff0000000000000001234567890abcdef0":"0":"ffff0000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1436: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 = (0x100000000000000000001234567890abcdef0, carry 0x0)/(0x100000000000000000001234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"10000":"100000000000000000001234567890abcdef0":"0":"100000000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1437: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff0000000000000001234567890abcdef0, carry 0x0)/(0xffffffff0000000000000001234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000001234567890abcdef0":"0":"ffffffff0000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1438: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 = (0x1234567890abcdef0, carry 0x1)/(0x1000000000000000000000001234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef0":"1":"1000000000000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1439: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000001234567890abcdef0, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000001234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000001234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1440: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x1234567890abcdef0, carry 0x80000000)/(0x80000000000000000000000000000001234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef0":"80000000":"80000000000000000000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1441: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000001234567890abcdef0, carry 0xffffffff)/(0xfffffffffffffffe0000000000000001234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000001234567890abcdef0":"ffffffff":"fffffffffffffffe0000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1442: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1443: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd048d159e242af37bc0, carry 0x0)/(0x369d0369b20369cd048d159e242af37bc0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd048d159e242af37bc0":"0":"369d0369b20369cd048d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #1444: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a7653232222222181b2221110, carry 0x0)/(0x120fedcb9f8a7653232222222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a7653232222222181b2221110":"0":"120fedcb9f8a7653232222222181b2221110":"0" + +mbedtls_mpi_core_mla #1445: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b222112234567890abcdef000, carry 0x0)/(0x12222222181b222112234567890abcdef000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b222112234567890abcdef000":"0":"12222222181b222112234567890abcdef000":"0" + +mbedtls_mpi_core_mla #1446: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d4333344567890abcdef00000, carry 0x0)/(0x123444443a333d4333344567890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d4333344567890abcdef00000":"0":"123444443a333d4333344567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1447: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef0123468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef0123468ace7245e9acdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef0123468ace7245e9acdef0":"0":"1234567890abcdef0123468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #1448: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e77777670777778890abcdef000000000, carry 0x12)/(0x123456787e77777670777778890abcdef000000000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e77777670777778890abcdef000000000":"12":"123456787e77777670777778890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1449: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef012345678a2e0246790abcdef0, carry 0x12)/(0x1234567890abcdef012345678a2e0246790abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a2e0246790abcdef0":"12":"1234567890abcdef012345678a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #1450: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f7819bc7034ba188800, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f7819bc7034ba188800, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f7819bc7034ba188800":"91107edbd":"1107edbd82bde76ff8810996cde66f7819bc7034ba188800":"9" + +mbedtls_mpi_core_mla #1451: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f79234567890abcdef0, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f79234567890abcdef0":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"9" + +mbedtls_mpi_core_mla #1452: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100eedcba9876f5432110, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100eedcba9876f5432110, carry 0x12) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eedcba9876f5432110":"1234567890":"34567890abcdeedcba987667b32100eedcba9876f5432110":"12" + +mbedtls_mpi_core_mla #1453: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1454: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x1234567890abcdeed, carry 0x3)/(0x1234567890abcdeed, carry 0x3) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1234567890abcdeed":"3":"1234567890abcdeed":"3" + +mbedtls_mpi_core_mla #1455: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x1234567890abcddf2, carry 0xfe)/(0x1234567890abcddf2, carry 0xfe) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1234567890abcddf2":"fe":"1234567890abcddf2":"fe" + +mbedtls_mpi_core_mla #1456: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x1234567890abcddf1, carry 0xff)/(0x1234567890abcddf1, carry 0xff) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1234567890abcddf1":"ff":"1234567890abcddf1":"ff" + +mbedtls_mpi_core_mla #1457: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x1234567890abbdef1, carry 0xffff)/(0x1234567890abbdef1, carry 0xffff) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1234567890abbdef1":"ffff":"1234567890abbdef1":"ffff" + +mbedtls_mpi_core_mla #1458: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x1234567890abbdef0, carry 0x10000)/(0x1234567890abbdef0, carry 0x10000) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1234567890abbdef0":"10000":"1234567890abbdef0":"10000" + +mbedtls_mpi_core_mla #1459: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1234567880abcdef1, carry 0xffffffff)/(0x1234567880abcdef1, carry 0xffffffff) +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1234567880abcdef1":"ffffffff":"1234567880abcdef1":"ffffffff" + +mbedtls_mpi_core_mla #1460: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x1234567880abcdef0, carry 0x100000000)/(0x1234567880abcdef0, carry 0x100000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567880abcdef0":"100000000":"1234567880abcdef0":"100000000" + +mbedtls_mpi_core_mla #1461: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xa3c5e8098b3d5f71, carry 0x7f7f7f7f7f7f7f7f)/(0xa3c5e8098b3d5f71, carry 0x7f7f7f7f7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f":"a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #1462: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xa34567890abcdef0, carry 0x8000000000000000)/(0xa34567890abcdef0, carry 0x8000000000000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"a34567890abcdef0":"8000000000000000":"a34567890abcdef0":"8000000000000000" + +mbedtls_mpi_core_mla #1463: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x234567890abcdef2, carry 0xfffffffffffffffe)/(0x234567890abcdef2, carry 0xfffffffffffffffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"234567890abcdef2":"fffffffffffffffe":"234567890abcdef2":"fffffffffffffffe" + +mbedtls_mpi_core_mla #1464: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1465: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #1466: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110":"0" + +mbedtls_mpi_core_mla #1467: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b222112234567890abcdef000, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b222112234567890abcdef000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b222112234567890abcdef000":"0":"12222222181b2221122222222181b2221122222222181b222112234567890abcdef000":"0" + +mbedtls_mpi_core_mla #1468: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000":"0":"123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1469: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #1470: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e77777670777778890abcdef000000000, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e77777670777778890abcdef000000000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e77777670777778890abcdef000000000":"1234":"123456787e7777767077777887e7777767077777887e77777670777778890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1471: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #1472: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800, carry 0x911) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800":"911" + +mbedtls_mpi_core_mla #1473: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0, carry 0x91a) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"91a" + +mbedtls_mpi_core_mla #1474: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110, carry 0x1234) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110":"1234" + +mbedtls_mpi_core_mla #1475: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1476: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271":"0" + +mbedtls_mpi_core_mla #1477: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a":"0" + +mbedtls_mpi_core_mla #1478: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5":"0" + +mbedtls_mpi_core_mla #1479: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5":"0" + +mbedtls_mpi_core_mla #1480: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0":"0" + +mbedtls_mpi_core_mla #1481: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5, carry 0x4) +mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5":"4" + +mbedtls_mpi_core_mla #1482: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0, carry 0x4) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0":"4" + +mbedtls_mpi_core_mla #1483: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845, carry 0x26d473ca9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845":"26d473ca9" + +mbedtls_mpi_core_mla #1484: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0, carry 0x26fb9683d) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0":"26fb9683d" + +mbedtls_mpi_core_mla #1485: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a, carry 0x4df72d07b) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a":"4df72d07b" + +mbedtls_mpi_core_mla #1486: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1487: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x3 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"3":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1488: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xfe = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"fe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1489: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xff = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1490: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xffff = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ffff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1491: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x10000 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"10000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1492: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xffffffff = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ffffffff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1493: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x100000000 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"100000000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1494: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"7f7f7f7f7f7f7f7f":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1495: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x8000000000000000 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"8000000000000000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1496: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xfffffffffffffffe = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1497: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1498: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x3 = (0xfffffffffffffffffefefefefefeff01, carry 0x0)/(0xfffffffffffffffffefefefefefeff01, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"3":"fffffffffffffffffefefefefefeff01":"0":"fffffffffffffffffefefefefefeff01":"0" + +mbedtls_mpi_core_mla #1499: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xfe = (0xfffffffffffffffffefefefefefefffc, carry 0x0)/(0xfffffffffffffffffefefefefefefffc, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"fe":"fffffffffffffffffefefefefefefffc":"0":"fffffffffffffffffefefefefefefffc":"0" + +mbedtls_mpi_core_mla #1500: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xff = (0xfffffffffffffffffefefefefefefffd, carry 0x0)/(0xfffffffffffffffffefefefefefefffd, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ff":"fffffffffffffffffefefefefefefffd":"0":"fffffffffffffffffefefefefefefffd":"0" + +mbedtls_mpi_core_mla #1501: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xffff = (0xfffffffffffffffffefefefefefffefd, carry 0x0)/(0xfffffffffffffffffefefefefefffefd, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ffff":"fffffffffffffffffefefefefefffefd":"0":"fffffffffffffffffefefefefefffefd":"0" + +mbedtls_mpi_core_mla #1502: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x10000 = (0xfffffffffffffffffefefefefefffefe, carry 0x0)/(0xfffffffffffffffffefefefefefffefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"10000":"fffffffffffffffffefefefefefffefe":"0":"fffffffffffffffffefefefefefffefe":"0" + +mbedtls_mpi_core_mla #1503: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xffffffff = (0xfffffffffffffffffefefefffefefefd, carry 0x0)/(0xfffffffffffffffffefefefffefefefd, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ffffffff":"fffffffffffffffffefefefffefefefd":"0":"fffffffffffffffffefefefffefefefd":"0" + +mbedtls_mpi_core_mla #1504: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x100000000 = (0xfffffffffffffffffefefefffefefefe, carry 0x0)/(0xfffffffffffffffffefefefffefefefe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"100000000":"fffffffffffffffffefefefffefefefe":"0":"fffffffffffffffffefefefffefefefe":"0" + +mbedtls_mpi_core_mla #1505: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7e7e7e7e7e7e7e7d, carry 0x1)/(0x7e7e7e7e7e7e7e7d, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"7f7f7f7f7f7f7f7f":"7e7e7e7e7e7e7e7d":"1":"7e7e7e7e7e7e7e7d":"1" + +mbedtls_mpi_core_mla #1506: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x8000000000000000 = (0x7efefefefefefefe, carry 0x1)/(0x7efefefefefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"8000000000000000":"7efefefefefefefe":"1":"7efefefefefefefe":"1" + +mbedtls_mpi_core_mla #1507: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xfffffffffffffffe = (0xfefefefefefefefc, carry 0x1)/(0xfefefefefefefefc, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"fffffffffffffffe":"fefefefefefefefc":"1":"fefefefefefefefc":"1" + +mbedtls_mpi_core_mla #1508: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1509: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x3 = (0xfffffffffffffffffefefefeff01fef8, carry 0x0)/(0xfffffffffffffffffefefefeff01fef8, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"3":"fffffffffffffffffefefefeff01fef8":"0":"fffffffffffffffffefefefeff01fef8":"0" + +mbedtls_mpi_core_mla #1510: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xfe = (0xfffffffffffffffffefefefefffcfd02, carry 0x0)/(0xfffffffffffffffffefefefefffcfd02, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"fe":"fffffffffffffffffefefefefffcfd02":"0":"fffffffffffffffffefefefefffcfd02":"0" + +mbedtls_mpi_core_mla #1511: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xff = (0xfffffffffffffffffefefefefffdfd00, carry 0x0)/(0xfffffffffffffffffefefefefffdfd00, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ff":"fffffffffffffffffefefefefffdfd00":"0":"fffffffffffffffffefefefefffdfd00":"0" + +mbedtls_mpi_core_mla #1512: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xffff = (0xfffffffffffffffffefefefffefbff00, carry 0x0)/(0xfffffffffffffffffefefefffefbff00, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ffff":"fffffffffffffffffefefefffefbff00":"0":"fffffffffffffffffefefefffefbff00":"0" + +mbedtls_mpi_core_mla #1513: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x10000 = (0xfffffffffffffffffefefefffefcfefe, carry 0x0)/(0xfffffffffffffffffefefefffefcfefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"10000":"fffffffffffffffffefefefffefcfefe":"0":"fffffffffffffffffefefefffefcfefe":"0" + +mbedtls_mpi_core_mla #1514: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xffffffff = (0xfffffffffffffffffefffefcfefdff00, carry 0x0)/(0xfffffffffffffffffefffefcfefdff00, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ffffffff":"fffffffffffffffffefffefcfefdff00":"0":"fffffffffffffffffefffefcfefdff00":"0" + +mbedtls_mpi_core_mla #1515: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x100000000 = (0xfffffffffffffffffefffefcfefefefe, carry 0x0)/(0xfffffffffffffffffefffefcfefefefe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"100000000":"fffffffffffffffffefffefcfefefefe":"0":"fffffffffffffffffefffefcfefefefe":"0" + +mbedtls_mpi_core_mla #1516: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x7f7e7f7f7f7f7f7f0000, carry 0x1)/(0x7f7e7f7f7f7f7f7f0000, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"7f7f7f7f7f7f7f7f":"7f7e7f7f7f7f7f7f0000":"1":"7f7e7f7f7f7f7f7f0000":"1" + +mbedtls_mpi_core_mla #1517: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x8000000000000000 = (0x7ffefefefefefefefefe, carry 0x1)/(0x7ffefefefefefefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"8000000000000000":"7ffefefefefefefefefe":"1":"7ffefefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1518: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xfffffffffffffffe = (0xfffdfefefefefefcff02, carry 0x1)/(0xfffdfefefefefefcff02, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"fffffffffffffffe":"fffdfefefefefefcff02":"1":"fffdfefefefefefcff02":"1" + +mbedtls_mpi_core_mla #1519: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1520: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x3 = (0xfffffffffffffffffefeff01fefefefb, carry 0x0)/(0xfffffffffffffffffefeff01fefefefb, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"3":"fffffffffffffffffefeff01fefefefb":"0":"fffffffffffffffffefeff01fefefefb":"0" + +mbedtls_mpi_core_mla #1521: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xfe = (0xfffffffffffffffffefefffcfefefe00, carry 0x0)/(0xfffffffffffffffffefefffcfefefe00, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"fe":"fffffffffffffffffefefffcfefefe00":"0":"fffffffffffffffffefefffcfefefe00":"0" + +mbedtls_mpi_core_mla #1522: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xff = (0xfffffffffffffffffefefffdfefefdff, carry 0x0)/(0xfffffffffffffffffefefffdfefefdff, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ff":"fffffffffffffffffefefffdfefefdff":"0":"fffffffffffffffffefefffdfefefdff":"0" + +mbedtls_mpi_core_mla #1523: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xffff = (0xfffffffffffffffffefffefdfefdfeff, carry 0x0)/(0xfffffffffffffffffefffefdfefdfeff, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ffff":"fffffffffffffffffefffefdfefdfeff":"0":"fffffffffffffffffefffefdfefdfeff":"0" + +mbedtls_mpi_core_mla #1524: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x10000 = (0xfffffffffffffffffefffefefefdfefe, carry 0x0)/(0xfffffffffffffffffefffefefefdfefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"10000":"fffffffffffffffffefffefefefdfefe":"0":"fffffffffffffffffefffefefefdfefe":"0" + +mbedtls_mpi_core_mla #1525: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xffffffff = (0xfefefefcfefefeff, carry 0x1)/(0xfefefefcfefefeff, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ffffffff":"fefefefcfefefeff":"1":"fefefefcfefefeff":"1" + +mbedtls_mpi_core_mla #1526: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x100000000 = (0xfefefefdfefefefe, carry 0x1)/(0xfefefefdfefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"100000000":"fefefefdfefefefe":"1":"fefefefdfefefefe":"1" + +mbedtls_mpi_core_mla #1527: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7efefefefe7f7f7f7f, carry 0x1)/(0x7f7f7f7efefefefe7f7f7f7f, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7efefefefe7f7f7f7f":"1":"7f7f7f7efefefefe7f7f7f7f":"1" + +mbedtls_mpi_core_mla #1528: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x8000000000000000 = (0x7fffffff7efefefefefefefe, carry 0x1)/(0x7fffffff7efefefefefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"8000000000000000":"7fffffff7efefefefefefefe":"1":"7fffffff7efefefefefefefe":"1" + +mbedtls_mpi_core_mla #1529: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xfffffffffffffffe = (0xfffffffefefefefcfefeff00, carry 0x1)/(0xfffffffefefefefcfefeff00, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffe":"fffffffefefefefcfefeff00":"1":"fffffffefefefefcfefeff00":"1" + +mbedtls_mpi_core_mla #1530: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1531: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x3 = (0xfffffffffffffffffefeff01fefefefe, carry 0x0)/(0xfffffffffffffffffefeff01fefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"3":"fffffffffffffffffefeff01fefefefe":"0":"fffffffffffffffffefeff01fefefefe":"0" + +mbedtls_mpi_core_mla #1532: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xfe = (0xfffffffffffffffffefefffcfefefefe, carry 0x0)/(0xfffffffffffffffffefefffcfefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"fe":"fffffffffffffffffefefffcfefefefe":"0":"fffffffffffffffffefefffcfefefefe":"0" + +mbedtls_mpi_core_mla #1533: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xff = (0xfffffffffffffffffefefffdfefefefe, carry 0x0)/(0xfffffffffffffffffefefffdfefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ff":"fffffffffffffffffefefffdfefefefe":"0":"fffffffffffffffffefefffdfefefefe":"0" + +mbedtls_mpi_core_mla #1534: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xffff = (0xfffffffffffffffffefffefdfefefefe, carry 0x0)/(0xfffffffffffffffffefffefdfefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ffff":"fffffffffffffffffefffefdfefefefe":"0":"fffffffffffffffffefffefdfefefefe":"0" + +mbedtls_mpi_core_mla #1535: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x10000 = (0xfffffffffffffffffefffefefefefefe, carry 0x0)/(0xfffffffffffffffffefffefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"10000":"fffffffffffffffffefffefefefefefe":"0":"fffffffffffffffffefffefefefefefe":"0" + +mbedtls_mpi_core_mla #1536: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xffffffff = (0xfefefefdfefefefe, carry 0x1)/(0xfefefefdfefefefe, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ffffffff":"fefefefdfefefefe":"1":"fefefefdfefefefe":"1" + +mbedtls_mpi_core_mla #1537: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x100000000 = (0xfefefefefefefefe, carry 0x1)/(0xfefefefefefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"100000000":"fefefefefefefefe":"1":"fefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1538: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7e7e7e7dfefefefe, carry 0x1)/(0x7f7f7f7f7e7e7e7dfefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7e7e7e7dfefefefe":"1":"7f7f7f7f7e7e7e7dfefefefe":"1" + +mbedtls_mpi_core_mla #1539: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x8000000000000000 = (0x7ffffffffefefefefefefefe, carry 0x1)/(0x7ffffffffefefefefefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"8000000000000000":"7ffffffffefefefefefefefe":"1":"7ffffffffefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1540: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xfffffffffffffffe = (0xfffffffffefefefcfefefefe, carry 0x1)/(0xfffffffffefefefcfefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffe":"fffffffffefefefcfefefefe":"1":"fffffffffefefefcfefefefe":"1" + +mbedtls_mpi_core_mla #1541: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1542: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x3 = (0xffffffffffffffffff5efefefefefefe, carry 0x0)/(0xffffffffffffffffff5efefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"3":"ffffffffffffffffff5efefefefefefe":"0":"ffffffffffffffffff5efefefefefefe":"0" + +mbedtls_mpi_core_mla #1543: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xfe = (0x1ebefefefefefefe, carry 0x1)/(0x1ebefefefefefefe, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"fe":"1ebefefefefefefe":"1":"1ebefefefefefefe":"1" + +mbedtls_mpi_core_mla #1544: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xff = (0x1edefefefefefefe, carry 0x1)/(0x1edefefefefefefe, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ff":"1edefefefefefefe":"1":"1edefefefefefefe":"1" + +mbedtls_mpi_core_mla #1545: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xffff = (0x1ffedefefefefefefe, carry 0x1)/(0x1ffedefefefefefefe, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ffff":"1ffedefefefefefefe":"1":"1ffedefefefefefefe":"1" + +mbedtls_mpi_core_mla #1546: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x10000 = (0x1ffefefefefefefefe, carry 0x1)/(0x1ffefefefefefefefe, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"10000":"1ffefefefefefefefe":"1":"1ffefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1547: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xffffffff = (0x1ffffffedefefefefefefe, carry 0x1)/(0x1ffffffedefefefefefefe, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ffffffff":"1ffffffedefefefefefefe":"1":"1ffffffedefefefefefefe":"1" + +mbedtls_mpi_core_mla #1548: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x100000000 = (0x1ffffffefefefefefefefe, carry 0x1)/(0x1ffffffefefefefefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"100000000":"1ffffffefefefefefefefe":"1":"1ffffffefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1549: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xfefefefefefefeedefefefefefefe, carry 0x1)/(0xfefefefefefefeedefefefefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"7f7f7f7f7f7f7f7f":"fefefefefefefeedefefefefefefe":"1":"fefefefefefefeedefefefefefefe":"1" + +mbedtls_mpi_core_mla #1550: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x8000000000000000 = (0xffffffffffffffefefefefefefefe, carry 0x1)/(0xffffffffffffffefefefefefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"8000000000000000":"ffffffffffffffefefefefefefefe":"1":"ffffffffffffffefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1551: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xfffffffffffffffe = (0x1ffffffffffffffebefefefefefefe, carry 0x1)/(0x1ffffffffffffffebefefefefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"fffffffffffffffe":"1ffffffffffffffebefefefefefefe":"1":"1ffffffffffffffebefefefefefefe":"1" + +mbedtls_mpi_core_mla #1552: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1553: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x3 = (0x2fefefefefefefefb, carry 0x1)/(0x2fefefefefefefefb, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"3":"2fefefefefefefefb":"1":"2fefefefefefefefb":"1" + +mbedtls_mpi_core_mla #1554: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xfe = (0xfdfefefefefefefe00, carry 0x1)/(0xfdfefefefefefefe00, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fe":"fdfefefefefefefe00":"1":"fdfefefefefefefe00":"1" + +mbedtls_mpi_core_mla #1555: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xff = (0xfefefefefefefefdff, carry 0x1)/(0xfefefefefefefefdff, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ff":"fefefefefefefefdff":"1":"fefefefefefefefdff":"1" + +mbedtls_mpi_core_mla #1556: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xffff = (0xfffefefefefefefdfeff, carry 0x1)/(0xfffefefefefefefdfeff, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ffff":"fffefefefefefefdfeff":"1":"fffefefefefefefdfeff":"1" + +mbedtls_mpi_core_mla #1557: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x10000 = (0xfffffefefefefefdfefe, carry 0x1)/(0xfffffefefefefefdfefe, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"10000":"fffffefefefefefdfefe":"1":"fffffefefefefefdfefe":"1" + +mbedtls_mpi_core_mla #1558: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xffffffff = (0xfffffffefefefefdfefefeff, carry 0x1)/(0xfffffffefefefefdfefefeff, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ffffffff":"fffffffefefefefdfefefeff":"1":"fffffffefefefefdfefefeff":"1" + +mbedtls_mpi_core_mla #1559: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x100000000 = (0xfffffffffefefefdfefefefe, carry 0x1)/(0xfffffffffefefefdfefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"100000000":"fffffffffefefefdfefefefe":"1":"fffffffffefefefdfefefefe":"1" + +mbedtls_mpi_core_mla #1560: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f, carry 0x1)/(0x7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f":"1":"7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f":"1" + +mbedtls_mpi_core_mla #1561: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x8000000000000000 = (0x7fffffffffffffff7efefefefefefefe, carry 0x1)/(0x7fffffffffffffff7efefefefefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff7efefefefefefefe":"1":"7fffffffffffffff7efefefefefefefe":"1" + +mbedtls_mpi_core_mla #1562: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xfffffffffffffffe = (0xfffffffffffffffcfefefefefefeff00, carry 0x1)/(0xfffffffffffffffcfefefefefefeff00, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fffffffffffffffe":"fffffffffffffffcfefefefefefeff00":"1":"fffffffffffffffcfefefefefefeff00":"1" + +mbedtls_mpi_core_mla #1563: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1564: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x3 = (0x2fefefefefefefefe, carry 0x1)/(0x2fefefefefefefefe, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"3":"2fefefefefefefefe":"1":"2fefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1565: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xfe = (0xfdfefefefefefefefe, carry 0x1)/(0xfdfefefefefefefefe, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fe":"fdfefefefefefefefe":"1":"fdfefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1566: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xff = (0xfefefefefefefefefe, carry 0x1)/(0xfefefefefefefefefe, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ff":"fefefefefefefefefe":"1":"fefefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1567: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xffff = (0xfffefefefefefefefefe, carry 0x1)/(0xfffefefefefefefefefe, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ffff":"fffefefefefefefefefe":"1":"fffefefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1568: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x10000 = (0xfffffefefefefefefefe, carry 0x1)/(0xfffffefefefefefefefe, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"10000":"fffffefefefefefefefe":"1":"fffffefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1569: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xffffffff = (0xfffffffefefefefefefefefe, carry 0x1)/(0xfffffffefefefefefefefefe, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ffffffff":"fffffffefefefefefefefefe":"1":"fffffffefefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1570: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x100000000 = (0xfffffffffefefefefefefefe, carry 0x1)/(0xfffffffffefefefefefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"100000000":"fffffffffefefefefefefefe":"1":"fffffffffefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1571: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7efefefefefefefefe, carry 0x1)/(0x7f7f7f7f7f7f7f7efefefefefefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7efefefefefefefefe":"1":"7f7f7f7f7f7f7f7efefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1572: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x8000000000000000 = (0x7ffffffffffffffffefefefefefefefe, carry 0x1)/(0x7ffffffffffffffffefefefefefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"8000000000000000":"7ffffffffffffffffefefefefefefefe":"1":"7ffffffffffffffffefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1573: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffffffffffdfefefefefefefefe, carry 0x1)/(0xfffffffffffffffdfefefefefefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fffffffffffffffe":"fffffffffffffffdfefefefefefefefe":"1":"fffffffffffffffdfefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1574: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1575: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x3 = (0x368cf359a1f359bce, carry 0x1)/(0x368cf359a1f359bce, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"3":"368cf359a1f359bce":"1":"368cf359a1f359bce":"1" + +mbedtls_mpi_core_mla #1576: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xfe = (0x120fddbb8f7a664311e, carry 0x1)/(0x120fddbb8f7a664311e, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fe":"120fddbb8f7a664311e":"1":"120fddbb8f7a664311e":"1" + +mbedtls_mpi_core_mla #1577: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xff = (0x12221212080b121100e, carry 0x1)/(0x12221212080b121100e, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ff":"12221212080b121100e":"1":"12221212080b121100e":"1" + +mbedtls_mpi_core_mla #1578: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xffff = (0x123444342a232d332200e, carry 0x1)/(0x123444342a232d332200e, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ffff":"123444342a232d332200e":"1":"123444342a232d332200e":"1" + +mbedtls_mpi_core_mla #1579: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x10000 = (0x12345668809bbddeefefe, carry 0x1)/(0x12345668809bbddeefefe, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"10000":"12345668809bbddeefefe":"1":"12345668809bbddeefefe":"1" + +mbedtls_mpi_core_mla #1580: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xffffffff = (0x123456787e6767665f442200e, carry 0x1)/(0x123456787e6767665f442200e, carry 0x1) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ffffffff":"123456787e6767665f442200e":"1":"123456787e6767665f442200e":"1" + +mbedtls_mpi_core_mla #1581: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x100000000 = (0x12345678909bbddeefefefefe, carry 0x1)/(0x12345678909bbddeefefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"100000000":"12345678909bbddeefefefefe":"1":"12345678909bbddeefefefefe":"1" + +mbedtls_mpi_core_mla #1582: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x91107edbd82bde76f57607aaae5aa80e, carry 0x1)/(0x91107edbd82bde76f57607aaae5aa80e, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76f57607aaae5aa80e":"1":"91107edbd82bde76f57607aaae5aa80e":"1" + +mbedtls_mpi_core_mla #1583: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x8000000000000000 = (0x91a2b3c4855e6f77fefefefefefefefe, carry 0x1)/(0x91a2b3c4855e6f77fefefefefefefefe, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"8000000000000000":"91a2b3c4855e6f77fefefefefefefefe":"1":"91a2b3c4855e6f77fefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1584: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x234567890abcdeedb8742fece985411e, carry 0x2)/(0x234567890abcdeedb8742fece985411e, carry 0x2) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fffffffffffffffe":"234567890abcdeedb8742fece985411e":"2":"234567890abcdeedb8742fece985411e":"2" + +mbedtls_mpi_core_mla #1585: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1586: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffbfbfbfbfbfbfbf8, carry 0x3)/(0xfffffffffffffffffbfbfbfbfbfbfbf8, carry 0x3) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffbfbfbfbfbfbfbf8":"3":"fffffffffffffffffbfbfbfbfbfbfbf8":"3" + +mbedtls_mpi_core_mla #1587: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xfffffffffffffffeffffffffffffff02, carry 0xfe)/(0xfffffffffffffffeffffffffffffff02, carry 0xfe) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fe":"fffffffffffffffeffffffffffffff02":"fe":"fffffffffffffffeffffffffffffff02":"fe" + +mbedtls_mpi_core_mla #1588: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfffffffffffffffefefefefefefefe00, carry 0xff)/(0xfffffffffffffffefefefefefefefe00, carry 0xff) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffefefefefefefefe00":"ff":"fffffffffffffffefefefefefefefe00":"ff" + +mbedtls_mpi_core_mla #1589: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffefefefefefefefe0000, carry 0xffff)/(0xfffffffffffffefefefefefefefe0000, carry 0xffff) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefefefefefefefe0000":"ffff":"fffffffffffffefefefefefefefe0000":"ffff" + +mbedtls_mpi_core_mla #1590: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefdfdfdfdfdfcfefe, carry 0x10000)/(0xfffffffffffffefefdfdfdfdfdfcfefe, carry 0x10000) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefdfdfdfdfdfcfefe":"10000":"fffffffffffffefefdfdfdfdfdfcfefe":"10000" + +mbedtls_mpi_core_mla #1591: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefefefefefefe00000000, carry 0xffffffff)/(0xfffffffffefefefefefefefe00000000, carry 0xffffffff) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff" + +mbedtls_mpi_core_mla #1592: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefdfdfdfcfefefefe, carry 0x100000000)/(0xfffffffffefefefefdfdfdfcfefefefe, carry 0x100000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefdfdfdfcfefefefe":"100000000":"fffffffffefefefefdfdfdfcfefefefe":"100000000" + +mbedtls_mpi_core_mla #1593: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828403830282018100, carry 0x7f7f7f7f7f7f7f7f)/(0xff800081018202828403830282018100, carry 0x7f7f7f7f7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828403830282018100":"7f7f7f7f7f7f7f7f":"ff800081018202828403830282018100":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #1594: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7efefefefefefefefe, carry 0x8000000000000000)/(0xff7f7f7f7f7f7f7efefefefefefefefe, carry 0x8000000000000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7efefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7efefefefefefefefe":"8000000000000000" + +mbedtls_mpi_core_mla #1595: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0101010101010102, carry 0xfffffffffffffffe)/(0xfefefefefefefefe0101010101010102, carry 0xfffffffffffffffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0101010101010102":"fffffffffffffffe":"fefefefefefefefe0101010101010102":"fffffffffffffffe" + +mbedtls_mpi_core_mla #1596: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1597: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x3 = (0x3fffffffffffffffffefefefefefefefe, carry 0x0)/(0x3fffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"3":"3fffffffffffffffffefefefefefefefe":"0":"3fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1598: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xfe = (0xfefffffffffffffffffefefefefefefefe, carry 0x0)/(0xfefffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fe":"fefffffffffffffffffefefefefefefefe":"0":"fefffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1599: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xff = (0xfffffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ff":"fffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1600: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xffff = (0xfffffffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ffff":"fffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1601: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x10000 = (0x10000fffffffffffffffffefefefefefefefe, carry 0x0)/(0x10000fffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"10000":"10000fffffffffffffffffefefefefefefefe":"0":"10000fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1602: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xffffffff = (0xfffffffffffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ffffffff":"fffffffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1603: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x100000000 = (0xfffffffffffffffffefefefefefefefe, carry 0x1)/(0x100000000fffffffffffffffffefefefefefefefe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"100000000":"fffffffffffffffffefefefefefefefe":"1":"100000000fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1604: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7ffffffffffffffffffefefefefefefefe, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7ffffffffffffffffffefefefefefefefe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7ffffffffffffffffffefefefefefefefe":"7f7f7f7f":"7f7f7f7f7f7f7f7ffffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1605: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0xfffffffffffffffffefefefefefefefe, carry 0x80000000)/(0x8000000000000000fffffffffffffffffefefefefefefefe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"8000000000000000":"fffffffffffffffffefefefefefefefe":"80000000":"8000000000000000fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1606: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffefffffffffffffffffefefefefefefefe, carry 0xffffffff)/(0xfffffffffffffffefffffffffffffffffefefefefefefefe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffefffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffefffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1607: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1608: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x379d0369b20369cd0368cf359a1f359bce, carry 0x0)/(0x379d0369b20369cd0368cf359a1f359bce, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"3":"379d0369b20369cd0368cf359a1f359bce":"0":"379d0369b20369cd0368cf359a1f359bce":"0" + +mbedtls_mpi_core_mla #1609: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x1210edcb9f8a76532320fddbb8f7a664311e, carry 0x0)/(0x1210edcb9f8a76532320fddbb8f7a664311e, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"fe":"1210edcb9f8a76532320fddbb8f7a664311e":"0":"1210edcb9f8a76532320fddbb8f7a664311e":"0" + +mbedtls_mpi_core_mla #1610: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12232222181b2221122221212080b121100e, carry 0x0)/(0x12232222181b2221122221212080b121100e, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ff":"12232222181b2221122221212080b121100e":"0":"12232222181b2221122221212080b121100e":"0" + +mbedtls_mpi_core_mla #1611: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123445443a333d433334444342a232d332200e, carry 0x0)/(0x123445443a333d433334444342a232d332200e, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffff":"123445443a333d433334444342a232d332200e":"0":"123445443a333d433334444342a232d332200e":"0" + +mbedtls_mpi_core_mla #1612: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234577890abcdef012345668809bbddeefefe, carry 0x0)/(0x1234577890abcdef012345668809bbddeefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"10000":"1234577890abcdef012345668809bbddeefefe":"0":"1234577890abcdef012345668809bbddeefefe":"0" + +mbedtls_mpi_core_mla #1613: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787f7777767077777887e6767665f442200e, carry 0x12)/(0x123456787f7777767077777887e6767665f442200e, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787f7777767077777887e6767665f442200e":"12":"123456787f7777767077777887e6767665f442200e":"0" + +mbedtls_mpi_core_mla #1614: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567891abcdef012345678909bbddeefefefefe, carry 0x12)/(0x1234567891abcdef012345678909bbddeefefefefe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"100000000":"34567891abcdef012345678909bbddeefefefefe":"12":"1234567891abcdef012345678909bbddeefefefefe":"0" + +mbedtls_mpi_core_mla #1615: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde770f8810996cde66f76f57607aaae5aa80e, carry 0x91107edbd)/(0x1107edbd82bde770f8810996cde66f76f57607aaae5aa80e, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde770f8810996cde66f76f57607aaae5aa80e":"91107edbd":"1107edbd82bde770f8810996cde66f76f57607aaae5aa80e":"9" + +mbedtls_mpi_core_mla #1616: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78191a2b3c4855e6f77fefefefefefefefe, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78191a2b3c4855e6f77fefefefefefefefe":"91a2b3c48":"1a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"9" + +mbedtls_mpi_core_mla #1617: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeddba987667b32100edb8742fece985411e, carry 0x1234567890)/(0x34567890abcdeeddba987667b32100edb8742fece985411e, carry 0x12) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeddba987667b32100edb8742fece985411e":"1234567890":"34567890abcdeeddba987667b32100edb8742fece985411e":"12" + +mbedtls_mpi_core_mla #1618: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1619: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffefefefefefefefb, carry 0x3)/(0xfffffffffffffffffefefefefefefefb, carry 0x3) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffefefefefefefefb":"3":"fffffffffffffffffefefefefefefefb":"3" + +mbedtls_mpi_core_mla #1620: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xfffffffffffffffffefefefefefefe00, carry 0xfe)/(0xfffffffffffffffffefefefefefefe00, carry 0xfe) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"fffffffffffffffffefefefefefefe00":"fe":"fffffffffffffffffefefefefefefe00":"fe" + +mbedtls_mpi_core_mla #1621: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xfffffffffffffffffefefefefefefdff, carry 0xff)/(0xfffffffffffffffffefefefefefefdff, carry 0xff) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"fffffffffffffffffefefefefefefdff":"ff":"fffffffffffffffffefefefefefefdff":"ff" + +mbedtls_mpi_core_mla #1622: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xfffffffffffffffffefefefefefdfeff, carry 0xffff)/(0xfffffffffffffffffefefefefefdfeff, carry 0xffff) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"fffffffffffffffffefefefefefdfeff":"ffff":"fffffffffffffffffefefefefefdfeff":"ffff" + +mbedtls_mpi_core_mla #1623: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffffffffffffffffefefefefefdfefe, carry 0x10000)/(0xfffffffffffffffffefefefefefdfefe, carry 0x10000) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffefefefefefdfefe":"10000":"fffffffffffffffffefefefefefdfefe":"10000" + +mbedtls_mpi_core_mla #1624: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xfffffffffffffffffefefefdfefefeff, carry 0xffffffff)/(0xfffffffffffffffffefefefdfefefeff, carry 0xffffffff) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fffffffffffffffffefefefdfefefeff":"ffffffff":"fffffffffffffffffefefefdfefefeff":"ffffffff" + +mbedtls_mpi_core_mla #1625: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xfffffffffffffffffefefefdfefefefe, carry 0x100000000)/(0xfffffffffffffffffefefefdfefefefe, carry 0x100000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffefefefdfefefefe":"100000000":"fffffffffffffffffefefefdfefefefe":"100000000" + +mbedtls_mpi_core_mla #1626: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffff7f7f7f7f7f7f7f7f, carry 0x7f7f7f7f7f7f7f7f)/(0xffffffffffffffff7f7f7f7f7f7f7f7f, carry 0x7f7f7f7f7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffff7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7f":"ffffffffffffffff7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #1627: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffff7efefefefefefefe, carry 0x8000000000000000)/(0xffffffffffffffff7efefefefefefefe, carry 0x8000000000000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"8000000000000000" + +mbedtls_mpi_core_mla #1628: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xfffffffffffffffefefefefefefeff00, carry 0xfffffffffffffffe)/(0xfffffffffffffffefefefefefefeff00, carry 0xfffffffffffffffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffe" + +mbedtls_mpi_core_mla #1629: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1630: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce":"0":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce":"0" + +mbedtls_mpi_core_mla #1631: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e":"0":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e":"0" + +mbedtls_mpi_core_mla #1632: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122232222181b2221122221212080b121100e, carry 0x0)/(0x12222222181b2221122222222181b2221122232222181b2221122221212080b121100e, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122232222181b2221122221212080b121100e":"0":"12222222181b2221122222222181b2221122232222181b2221122221212080b121100e":"0" + +mbedtls_mpi_core_mla #1633: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e, carry 0x0)/(0x123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e":"0":"123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e":"0" + +mbedtls_mpi_core_mla #1634: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe":"0":"1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe":"0" + +mbedtls_mpi_core_mla #1635: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e":"1234":"123456787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e":"0" + +mbedtls_mpi_core_mla #1636: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe":"1234":"1234567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe":"0" + +mbedtls_mpi_core_mla #1637: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e, carry 0x911) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e":"911" + +mbedtls_mpi_core_mla #1638: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe, carry 0x91a) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"91a" + +mbedtls_mpi_core_mla #1639: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e, carry 0x1234) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e":"1234" + +mbedtls_mpi_core_mla #1640: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1641: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f":"0" + +mbedtls_mpi_core_mla #1642: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8":"0" + +mbedtls_mpi_core_mla #1643: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3":"0" + +mbedtls_mpi_core_mla #1644: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3":"0" + +mbedtls_mpi_core_mla #1645: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe, carry 0x0) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe":"0" + +mbedtls_mpi_core_mla #1646: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3, carry 0x4) +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3":"4" + +mbedtls_mpi_core_mla #1647: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe, carry 0x4) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe":"4" + +mbedtls_mpi_core_mla #1648: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853, carry 0x26d473ca9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853":"26d473ca9" + +mbedtls_mpi_core_mla #1649: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe, carry 0x26fb9683d) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe":"26fb9683d" + +mbedtls_mpi_core_mla #1650: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8, carry 0x4df72d07b) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8":"4df72d07b" + +mbedtls_mpi_core_mla #1651: 0x100000000000000000000000000000000 + 0x0 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1652: 0x100000000000000000000000000000000 + 0x0 * 0x3 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"3":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1653: 0x100000000000000000000000000000000 + 0x0 * 0xfe = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"fe":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1654: 0x100000000000000000000000000000000 + 0x0 * 0xff = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"ff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1655: 0x100000000000000000000000000000000 + 0x0 * 0xffff = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"ffff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1656: 0x100000000000000000000000000000000 + 0x0 * 0x10000 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"10000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1657: 0x100000000000000000000000000000000 + 0x0 * 0xffffffff = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"ffffffff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1658: 0x100000000000000000000000000000000 + 0x0 * 0x100000000 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"100000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1659: 0x100000000000000000000000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"7f7f7f7f7f7f7f7f":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1660: 0x100000000000000000000000000000000 + 0x0 * 0x8000000000000000 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"8000000000000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1661: 0x100000000000000000000000000000000 + 0x0 * 0xfffffffffffffffe = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"fffffffffffffffe":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1662: 0x100000000000000000000000000000000 + 0x1 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1663: 0x100000000000000000000000000000000 + 0x1 * 0x3 = (0x100000000000000000000000000000003, carry 0x0)/(0x100000000000000000000000000000003, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"3":"100000000000000000000000000000003":"0":"100000000000000000000000000000003":"0" + +mbedtls_mpi_core_mla #1664: 0x100000000000000000000000000000000 + 0x1 * 0xfe = (0x1000000000000000000000000000000fe, carry 0x0)/(0x1000000000000000000000000000000fe, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"fe":"1000000000000000000000000000000fe":"0":"1000000000000000000000000000000fe":"0" + +mbedtls_mpi_core_mla #1665: 0x100000000000000000000000000000000 + 0x1 * 0xff = (0x1000000000000000000000000000000ff, carry 0x0)/(0x1000000000000000000000000000000ff, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"ff":"1000000000000000000000000000000ff":"0":"1000000000000000000000000000000ff":"0" + +mbedtls_mpi_core_mla #1666: 0x100000000000000000000000000000000 + 0x1 * 0xffff = (0x10000000000000000000000000000ffff, carry 0x0)/(0x10000000000000000000000000000ffff, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"ffff":"10000000000000000000000000000ffff":"0":"10000000000000000000000000000ffff":"0" + +mbedtls_mpi_core_mla #1667: 0x100000000000000000000000000000000 + 0x1 * 0x10000 = (0x100000000000000000000000000010000, carry 0x0)/(0x100000000000000000000000000010000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"10000":"100000000000000000000000000010000":"0":"100000000000000000000000000010000":"0" + +mbedtls_mpi_core_mla #1668: 0x100000000000000000000000000000000 + 0x1 * 0xffffffff = (0x1000000000000000000000000ffffffff, carry 0x0)/(0x1000000000000000000000000ffffffff, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"ffffffff":"1000000000000000000000000ffffffff":"0":"1000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #1669: 0x100000000000000000000000000000000 + 0x1 * 0x100000000 = (0x100000000000000000000000100000000, carry 0x0)/(0x100000000000000000000000100000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"100000000":"100000000000000000000000100000000":"0":"100000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #1670: 0x100000000000000000000000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x100000000000000007f7f7f7f7f7f7f7f, carry 0x0)/(0x100000000000000007f7f7f7f7f7f7f7f, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"7f7f7f7f7f7f7f7f":"100000000000000007f7f7f7f7f7f7f7f":"0":"100000000000000007f7f7f7f7f7f7f7f":"0" + +mbedtls_mpi_core_mla #1671: 0x100000000000000000000000000000000 + 0x1 * 0x8000000000000000 = (0x100000000000000008000000000000000, carry 0x0)/(0x100000000000000008000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"8000000000000000":"100000000000000008000000000000000":"0":"100000000000000008000000000000000":"0" + +mbedtls_mpi_core_mla #1672: 0x100000000000000000000000000000000 + 0x1 * 0xfffffffffffffffe = (0x10000000000000000fffffffffffffffe, carry 0x0)/(0x10000000000000000fffffffffffffffe, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"fffffffffffffffe":"10000000000000000fffffffffffffffe":"0":"10000000000000000fffffffffffffffe":"0" + +mbedtls_mpi_core_mla #1673: 0x100000000000000000000000000000000 + 0xfffe * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1674: 0x100000000000000000000000000000000 + 0xfffe * 0x3 = (0x10000000000000000000000000002fffa, carry 0x0)/(0x10000000000000000000000000002fffa, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"3":"10000000000000000000000000002fffa":"0":"10000000000000000000000000002fffa":"0" + +mbedtls_mpi_core_mla #1675: 0x100000000000000000000000000000000 + 0xfffe * 0xfe = (0x100000000000000000000000000fdfe04, carry 0x0)/(0x100000000000000000000000000fdfe04, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"fe":"100000000000000000000000000fdfe04":"0":"100000000000000000000000000fdfe04":"0" + +mbedtls_mpi_core_mla #1676: 0x100000000000000000000000000000000 + 0xfffe * 0xff = (0x100000000000000000000000000fefe02, carry 0x0)/(0x100000000000000000000000000fefe02, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"ff":"100000000000000000000000000fefe02":"0":"100000000000000000000000000fefe02":"0" + +mbedtls_mpi_core_mla #1677: 0x100000000000000000000000000000000 + 0xfffe * 0xffff = (0x1000000000000000000000000fffd0002, carry 0x0)/(0x1000000000000000000000000fffd0002, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"ffff":"1000000000000000000000000fffd0002":"0":"1000000000000000000000000fffd0002":"0" + +mbedtls_mpi_core_mla #1678: 0x100000000000000000000000000000000 + 0xfffe * 0x10000 = (0x1000000000000000000000000fffe0000, carry 0x0)/(0x1000000000000000000000000fffe0000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"10000":"1000000000000000000000000fffe0000":"0":"1000000000000000000000000fffe0000":"0" + +mbedtls_mpi_core_mla #1679: 0x100000000000000000000000000000000 + 0xfffe * 0xffffffff = (0x100000000000000000000fffdffff0002, carry 0x0)/(0x100000000000000000000fffdffff0002, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"ffffffff":"100000000000000000000fffdffff0002":"0":"100000000000000000000fffdffff0002":"0" + +mbedtls_mpi_core_mla #1680: 0x100000000000000000000000000000000 + 0xfffe * 0x100000000 = (0x100000000000000000000fffe00000000, carry 0x0)/(0x100000000000000000000fffe00000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"100000000":"100000000000000000000fffe00000000":"0":"100000000000000000000fffe00000000":"0" + +mbedtls_mpi_core_mla #1681: 0x100000000000000000000000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x10000000000007f7e8080808080800102, carry 0x0)/(0x10000000000007f7e8080808080800102, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"7f7f7f7f7f7f7f7f":"10000000000007f7e8080808080800102":"0":"10000000000007f7e8080808080800102":"0" + +mbedtls_mpi_core_mla #1682: 0x100000000000000000000000000000000 + 0xfffe * 0x8000000000000000 = (0x10000000000007fff0000000000000000, carry 0x0)/(0x10000000000007fff0000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"8000000000000000":"10000000000007fff0000000000000000":"0":"10000000000007fff0000000000000000":"0" + +mbedtls_mpi_core_mla #1683: 0x100000000000000000000000000000000 + 0xfffe * 0xfffffffffffffffe = (0x1000000000000fffdfffffffffffe0004, carry 0x0)/(0x1000000000000fffdfffffffffffe0004, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"fffffffffffffffe":"1000000000000fffdfffffffffffe0004":"0":"1000000000000fffdfffffffffffe0004":"0" + +mbedtls_mpi_core_mla #1684: 0x100000000000000000000000000000000 + 0xffffffff * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1685: 0x100000000000000000000000000000000 + 0xffffffff * 0x3 = (0x1000000000000000000000002fffffffd, carry 0x0)/(0x1000000000000000000000002fffffffd, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"3":"1000000000000000000000002fffffffd":"0":"1000000000000000000000002fffffffd":"0" + +mbedtls_mpi_core_mla #1686: 0x100000000000000000000000000000000 + 0xffffffff * 0xfe = (0x10000000000000000000000fdffffff02, carry 0x0)/(0x10000000000000000000000fdffffff02, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"fe":"10000000000000000000000fdffffff02":"0":"10000000000000000000000fdffffff02":"0" + +mbedtls_mpi_core_mla #1687: 0x100000000000000000000000000000000 + 0xffffffff * 0xff = (0x10000000000000000000000feffffff01, carry 0x0)/(0x10000000000000000000000feffffff01, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ff":"10000000000000000000000feffffff01":"0":"10000000000000000000000feffffff01":"0" + +mbedtls_mpi_core_mla #1688: 0x100000000000000000000000000000000 + 0xffffffff * 0xffff = (0x100000000000000000000fffeffff0001, carry 0x0)/(0x100000000000000000000fffeffff0001, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ffff":"100000000000000000000fffeffff0001":"0":"100000000000000000000fffeffff0001":"0" + +mbedtls_mpi_core_mla #1689: 0x100000000000000000000000000000000 + 0xffffffff * 0x10000 = (0x100000000000000000000ffffffff0000, carry 0x0)/(0x100000000000000000000ffffffff0000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"10000":"100000000000000000000ffffffff0000":"0":"100000000000000000000ffffffff0000":"0" + +mbedtls_mpi_core_mla #1690: 0x100000000000000000000000000000000 + 0xffffffff * 0xffffffff = (0x10000000000000000fffffffe00000001, carry 0x0)/(0x10000000000000000fffffffe00000001, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ffffffff":"10000000000000000fffffffe00000001":"0":"10000000000000000fffffffe00000001":"0" + +mbedtls_mpi_core_mla #1691: 0x100000000000000000000000000000000 + 0xffffffff * 0x100000000 = (0x10000000000000000ffffffff00000000, carry 0x0)/(0x10000000000000000ffffffff00000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"100000000":"10000000000000000ffffffff00000000":"0":"10000000000000000ffffffff00000000":"0" + +mbedtls_mpi_core_mla #1692: 0x100000000000000000000000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x1000000007f7f7f7effffffff80808081, carry 0x0)/(0x1000000007f7f7f7effffffff80808081, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"1000000007f7f7f7effffffff80808081":"0":"1000000007f7f7f7effffffff80808081":"0" + +mbedtls_mpi_core_mla #1693: 0x100000000000000000000000000000000 + 0xffffffff * 0x8000000000000000 = (0x1000000007fffffff8000000000000000, carry 0x0)/(0x1000000007fffffff8000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"8000000000000000":"1000000007fffffff8000000000000000":"0":"1000000007fffffff8000000000000000":"0" + +mbedtls_mpi_core_mla #1694: 0x100000000000000000000000000000000 + 0xffffffff * 0xfffffffffffffffe = (0x100000000fffffffefffffffe00000002, carry 0x0)/(0x100000000fffffffefffffffe00000002, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"fffffffffffffffe":"100000000fffffffefffffffe00000002":"0":"100000000fffffffefffffffe00000002":"0" + +mbedtls_mpi_core_mla #1695: 0x100000000000000000000000000000000 + 0x100000000 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1696: 0x100000000000000000000000000000000 + 0x100000000 * 0x3 = (0x100000000000000000000000300000000, carry 0x0)/(0x100000000000000000000000300000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"3":"100000000000000000000000300000000":"0":"100000000000000000000000300000000":"0" + +mbedtls_mpi_core_mla #1697: 0x100000000000000000000000000000000 + 0x100000000 * 0xfe = (0x10000000000000000000000fe00000000, carry 0x0)/(0x10000000000000000000000fe00000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"fe":"10000000000000000000000fe00000000":"0":"10000000000000000000000fe00000000":"0" + +mbedtls_mpi_core_mla #1698: 0x100000000000000000000000000000000 + 0x100000000 * 0xff = (0x10000000000000000000000ff00000000, carry 0x0)/(0x10000000000000000000000ff00000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"ff":"10000000000000000000000ff00000000":"0":"10000000000000000000000ff00000000":"0" + +mbedtls_mpi_core_mla #1699: 0x100000000000000000000000000000000 + 0x100000000 * 0xffff = (0x100000000000000000000ffff00000000, carry 0x0)/(0x100000000000000000000ffff00000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"ffff":"100000000000000000000ffff00000000":"0":"100000000000000000000ffff00000000":"0" + +mbedtls_mpi_core_mla #1700: 0x100000000000000000000000000000000 + 0x100000000 * 0x10000 = (0x100000000000000000001000000000000, carry 0x0)/(0x100000000000000000001000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"10000":"100000000000000000001000000000000":"0":"100000000000000000001000000000000":"0" + +mbedtls_mpi_core_mla #1701: 0x100000000000000000000000000000000 + 0x100000000 * 0xffffffff = (0x10000000000000000ffffffff00000000, carry 0x0)/(0x10000000000000000ffffffff00000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"ffffffff":"10000000000000000ffffffff00000000":"0":"10000000000000000ffffffff00000000":"0" + +mbedtls_mpi_core_mla #1702: 0x100000000000000000000000000000000 + 0x100000000 * 0x100000000 = (0x100000000000000010000000000000000, carry 0x0)/(0x100000000000000010000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"100000000":"100000000000000010000000000000000":"0":"100000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1703: 0x100000000000000000000000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x1000000007f7f7f7f7f7f7f7f00000000, carry 0x0)/(0x1000000007f7f7f7f7f7f7f7f00000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"7f7f7f7f7f7f7f7f":"1000000007f7f7f7f7f7f7f7f00000000":"0":"1000000007f7f7f7f7f7f7f7f00000000":"0" + +mbedtls_mpi_core_mla #1704: 0x100000000000000000000000000000000 + 0x100000000 * 0x8000000000000000 = (0x100000000800000000000000000000000, carry 0x0)/(0x100000000800000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"8000000000000000":"100000000800000000000000000000000":"0":"100000000800000000000000000000000":"0" + +mbedtls_mpi_core_mla #1705: 0x100000000000000000000000000000000 + 0x100000000 * 0xfffffffffffffffe = (0x100000000fffffffffffffffe00000000, carry 0x0)/(0x100000000fffffffffffffffe00000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"fffffffffffffffe":"100000000fffffffffffffffe00000000":"0":"100000000fffffffffffffffe00000000":"0" + +mbedtls_mpi_core_mla #1706: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1707: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x3 = (0x100000000000000000060000000000000, carry 0x0)/(0x100000000000000000060000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"3":"100000000000000000060000000000000":"0":"100000000000000000060000000000000":"0" + +mbedtls_mpi_core_mla #1708: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xfe = (0x100000000000000001fc0000000000000, carry 0x0)/(0x100000000000000001fc0000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"fe":"100000000000000001fc0000000000000":"0":"100000000000000001fc0000000000000":"0" + +mbedtls_mpi_core_mla #1709: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xff = (0x100000000000000001fe0000000000000, carry 0x0)/(0x100000000000000001fe0000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ff":"100000000000000001fe0000000000000":"0":"100000000000000001fe0000000000000":"0" + +mbedtls_mpi_core_mla #1710: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xffff = (0x1000000000000001fffe0000000000000, carry 0x0)/(0x1000000000000001fffe0000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ffff":"1000000000000001fffe0000000000000":"0":"1000000000000001fffe0000000000000":"0" + +mbedtls_mpi_core_mla #1711: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x10000 = (0x100000000000000200000000000000000, carry 0x0)/(0x100000000000000200000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"10000":"100000000000000200000000000000000":"0":"100000000000000200000000000000000":"0" + +mbedtls_mpi_core_mla #1712: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xffffffff = (0x100000000001fffffffe0000000000000, carry 0x0)/(0x100000000001fffffffe0000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ffffffff":"100000000001fffffffe0000000000000":"0":"100000000001fffffffe0000000000000":"0" + +mbedtls_mpi_core_mla #1713: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x100000000 = (0x100000000002000000000000000000000, carry 0x0)/(0x100000000002000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"100000000":"100000000002000000000000000000000":"0":"100000000002000000000000000000000":"0" + +mbedtls_mpi_core_mla #1714: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0x1000fefefefefefefefe0000000000000, carry 0x0)/(0x1000fefefefefefefefe0000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"1000fefefefefefefefe0000000000000":"0":"1000fefefefefefefefe0000000000000":"0" + +mbedtls_mpi_core_mla #1715: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x8000000000000000 = (0x100100000000000000000000000000000, carry 0x0)/(0x100100000000000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"8000000000000000":"100100000000000000000000000000000":"0":"100100000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1716: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xfffffffffffffffe = (0x1001fffffffffffffffc0000000000000, carry 0x0)/(0x1001fffffffffffffffc0000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"fffffffffffffffe":"1001fffffffffffffffc0000000000000":"0":"1001fffffffffffffffc0000000000000":"0" + +mbedtls_mpi_core_mla #1717: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1718: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x3 = (0x10000000000000002fffffffffffffffd, carry 0x0)/(0x10000000000000002fffffffffffffffd, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"3":"10000000000000002fffffffffffffffd":"0":"10000000000000002fffffffffffffffd":"0" + +mbedtls_mpi_core_mla #1719: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xfe = (0x100000000000000fdffffffffffffff02, carry 0x0)/(0x100000000000000fdffffffffffffff02, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"fe":"100000000000000fdffffffffffffff02":"0":"100000000000000fdffffffffffffff02":"0" + +mbedtls_mpi_core_mla #1720: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xff = (0x100000000000000feffffffffffffff01, carry 0x0)/(0x100000000000000feffffffffffffff01, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ff":"100000000000000feffffffffffffff01":"0":"100000000000000feffffffffffffff01":"0" + +mbedtls_mpi_core_mla #1721: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xffff = (0x1000000000000fffeffffffffffff0001, carry 0x0)/(0x1000000000000fffeffffffffffff0001, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ffff":"1000000000000fffeffffffffffff0001":"0":"1000000000000fffeffffffffffff0001":"0" + +mbedtls_mpi_core_mla #1722: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x10000 = (0x1000000000000ffffffffffffffff0000, carry 0x0)/(0x1000000000000ffffffffffffffff0000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"10000":"1000000000000ffffffffffffffff0000":"0":"1000000000000ffffffffffffffff0000":"0" + +mbedtls_mpi_core_mla #1723: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xffffffff = (0x100000000fffffffeffffffff00000001, carry 0x0)/(0x100000000fffffffeffffffff00000001, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ffffffff":"100000000fffffffeffffffff00000001":"0":"100000000fffffffeffffffff00000001":"0" + +mbedtls_mpi_core_mla #1724: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x100000000 = (0x100000000ffffffffffffffff00000000, carry 0x0)/(0x100000000ffffffffffffffff00000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"100000000":"100000000ffffffffffffffff00000000":"0":"100000000ffffffffffffffff00000000":"0" + +mbedtls_mpi_core_mla #1725: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x17f7f7f7f7f7f7f7e8080808080808081, carry 0x0)/(0x17f7f7f7f7f7f7f7e8080808080808081, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7e8080808080808081":"0":"17f7f7f7f7f7f7f7e8080808080808081":"0" + +mbedtls_mpi_core_mla #1726: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x8000000000000000 = (0x17fffffffffffffff8000000000000000, carry 0x0)/(0x17fffffffffffffff8000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"8000000000000000":"17fffffffffffffff8000000000000000":"0":"17fffffffffffffff8000000000000000":"0" + +mbedtls_mpi_core_mla #1727: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x1fffffffffffffffd0000000000000002, carry 0x0)/(0x1fffffffffffffffd0000000000000002, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"fffffffffffffffe":"1fffffffffffffffd0000000000000002":"0":"1fffffffffffffffd0000000000000002":"0" + +mbedtls_mpi_core_mla #1728: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1729: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x3 = (0x100000000000000030000000000000000, carry 0x0)/(0x100000000000000030000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"3":"100000000000000030000000000000000":"0":"100000000000000030000000000000000":"0" + +mbedtls_mpi_core_mla #1730: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xfe = (0x100000000000000fe0000000000000000, carry 0x0)/(0x100000000000000fe0000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"fe":"100000000000000fe0000000000000000":"0":"100000000000000fe0000000000000000":"0" + +mbedtls_mpi_core_mla #1731: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xff = (0x100000000000000ff0000000000000000, carry 0x0)/(0x100000000000000ff0000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ff":"100000000000000ff0000000000000000":"0":"100000000000000ff0000000000000000":"0" + +mbedtls_mpi_core_mla #1732: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xffff = (0x1000000000000ffff0000000000000000, carry 0x0)/(0x1000000000000ffff0000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ffff":"1000000000000ffff0000000000000000":"0":"1000000000000ffff0000000000000000":"0" + +mbedtls_mpi_core_mla #1733: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x10000 = (0x100000000000100000000000000000000, carry 0x0)/(0x100000000000100000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"10000":"100000000000100000000000000000000":"0":"100000000000100000000000000000000":"0" + +mbedtls_mpi_core_mla #1734: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xffffffff = (0x100000000ffffffff0000000000000000, carry 0x0)/(0x100000000ffffffff0000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ffffffff":"100000000ffffffff0000000000000000":"0":"100000000ffffffff0000000000000000":"0" + +mbedtls_mpi_core_mla #1735: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x100000000 = (0x100000001000000000000000000000000, carry 0x0)/(0x100000001000000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"100000000":"100000001000000000000000000000000":"0":"100000001000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1736: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x17f7f7f7f7f7f7f7f0000000000000000, carry 0x0)/(0x17f7f7f7f7f7f7f7f0000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7f0000000000000000":"0":"17f7f7f7f7f7f7f7f0000000000000000":"0" + +mbedtls_mpi_core_mla #1737: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x8000000000000000 = (0x180000000000000000000000000000000, carry 0x0)/(0x180000000000000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"8000000000000000":"180000000000000000000000000000000":"0":"180000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1738: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xfffffffffffffffe = (0x1fffffffffffffffe0000000000000000, carry 0x0)/(0x1fffffffffffffffe0000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"fffffffffffffffe":"1fffffffffffffffe0000000000000000":"0":"1fffffffffffffffe0000000000000000":"0" + +mbedtls_mpi_core_mla #1739: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1740: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x3 = (0x1000000000000000369d0369b20369cd0, carry 0x0)/(0x1000000000000000369d0369b20369cd0, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"3":"1000000000000000369d0369b20369cd0":"0":"1000000000000000369d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #1741: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xfe = (0x10000000000000120fedcb9f8a7653220, carry 0x0)/(0x10000000000000120fedcb9f8a7653220, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"fe":"10000000000000120fedcb9f8a7653220":"0":"10000000000000120fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #1742: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xff = (0x1000000000000012222222181b2221110, carry 0x0)/(0x1000000000000012222222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ff":"1000000000000012222222181b2221110":"0":"1000000000000012222222181b2221110":"0" + +mbedtls_mpi_core_mla #1743: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xffff = (0x100000000000123444443a333d4332110, carry 0x0)/(0x100000000000123444443a333d4332110, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ffff":"100000000000123444443a333d4332110":"0":"100000000000123444443a333d4332110":"0" + +mbedtls_mpi_core_mla #1744: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x10000 = (0x1000000000001234567890abcdef00000, carry 0x0)/(0x1000000000001234567890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"10000":"1000000000001234567890abcdef00000":"0":"1000000000001234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1745: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xffffffff = (0x10000000123456787e7777766f5432110, carry 0x0)/(0x10000000123456787e7777766f5432110, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ffffffff":"10000000123456787e7777766f5432110":"0":"10000000123456787e7777766f5432110":"0" + +mbedtls_mpi_core_mla #1746: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x100000000 = (0x100000001234567890abcdef000000000, carry 0x0)/(0x100000001234567890abcdef000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"100000000":"100000001234567890abcdef000000000":"0":"100000001234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1747: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x191107edbd82bde76f67708abaf5ba910, carry 0x0)/(0x191107edbd82bde76f67708abaf5ba910, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"191107edbd82bde76f67708abaf5ba910":"0":"191107edbd82bde76f67708abaf5ba910":"0" + +mbedtls_mpi_core_mla #1748: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x191a2b3c4855e6f780000000000000000, carry 0x0)/(0x191a2b3c4855e6f780000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"8000000000000000":"191a2b3c4855e6f780000000000000000":"0":"191a2b3c4855e6f780000000000000000":"0" + +mbedtls_mpi_core_mla #1749: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x2234567890abcdeedb97530edea864220, carry 0x0)/(0x2234567890abcdeedb97530edea864220, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"fffffffffffffffe":"2234567890abcdeedb97530edea864220":"0":"2234567890abcdeedb97530edea864220":"0" + +mbedtls_mpi_core_mla #1750: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1751: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x3fffffffffffffffffcfcfcfcfcfcfcfa, carry 0x0)/(0x3fffffffffffffffffcfcfcfcfcfcfcfa, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"3":"3fffffffffffffffffcfcfcfcfcfcfcfa":"0":"3fffffffffffffffffcfcfcfcfcfcfcfa":"0" + +mbedtls_mpi_core_mla #1752: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xfeffffffffffffffff0101010101010004, carry 0x0)/(0xfeffffffffffffffff0101010101010004, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"fe":"feffffffffffffffff0101010101010004":"0":"feffffffffffffffff0101010101010004":"0" + +mbedtls_mpi_core_mla #1753: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfffffffffffffffffeffffffffffffff02, carry 0x0)/(0xfffffffffffffffffeffffffffffffff02, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffffeffffffffffffff02":"0":"fffffffffffffffffeffffffffffffff02":"0" + +mbedtls_mpi_core_mla #1754: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffffffefeffffffffffff0102, carry 0x0)/(0xfffffffffffffffffefeffffffffffff0102, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffffffefeffffffffffff0102":"0":"fffffffffffffffffefeffffffffffff0102":"0" + +mbedtls_mpi_core_mla #1755: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0x10000fffffffffffffefefefefefefefe0000, carry 0x0)/(0x10000fffffffffffffefefefefefefefe0000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"10000":"10000fffffffffffffefefefefefefefe0000":"0":"10000fffffffffffffefefefefefefefe0000":"0" + +mbedtls_mpi_core_mla #1756: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffffffffffefefefeffffffff01010102, carry 0x0)/(0xfffffffffffffffffefefefeffffffff01010102, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffffefefefeffffffff01010102":"0":"fffffffffffffffffefefefeffffffff01010102":"0" + +mbedtls_mpi_core_mla #1757: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefe00000000, carry 0x1)/(0x100000000fffffffffefefefefefefefe00000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000000":"1":"100000000fffffffffefefefefefefefe00000000":"0" + +mbedtls_mpi_core_mla #1758: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fff800081018202828504840383028202, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7fff800081018202828504840383028202, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f7fff800081018202828504840383028202":"7f7f7f7f":"7f7f7f7f7f7f7f7fff800081018202828504840383028202":"0" + +mbedtls_mpi_core_mla #1759: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0000000000000000, carry 0x80000000)/(0x8000000000000000ff7f7f7f7f7f7f7f0000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000000":"80000000":"8000000000000000ff7f7f7f7f7f7f7f0000000000000000":"0" + +mbedtls_mpi_core_mla #1760: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfffffffefefefefefefefefe0202020202020204, carry 0xffffffff)/(0xfffffffffffffffefefefefefefefefe0202020202020204, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffefefefefefefefefe0202020202020204":"ffffffff":"fffffffffffffffefefefefefefefefe0202020202020204":"0" + +mbedtls_mpi_core_mla #1761: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1762: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x3 = (0x400000000000000000000000000000000, carry 0x0)/(0x400000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"3":"400000000000000000000000000000000":"0":"400000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1763: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xfe = (0xff00000000000000000000000000000000, carry 0x0)/(0xff00000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"fe":"ff00000000000000000000000000000000":"0":"ff00000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1764: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xff = (0x10000000000000000000000000000000000, carry 0x0)/(0x10000000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ff":"10000000000000000000000000000000000":"0":"10000000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1765: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xffff = (0x1000000000000000000000000000000000000, carry 0x0)/(0x1000000000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ffff":"1000000000000000000000000000000000000":"0":"1000000000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1766: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000100000000000000000000000000000000, carry 0x0)/(0x1000100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"10000":"1000100000000000000000000000000000000":"0":"1000100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1767: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xffffffff = (0x0, carry 0x1)/(0x10000000000000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ffffffff":"0":"1":"10000000000000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1768: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x100000000 = (0x100000000000000000000000000000000, carry 0x1)/(0x10000000100000000000000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"100000000":"100000000000000000000000000000000":"1":"10000000100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1769: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f8000000000000000000000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f8000000000000000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f8000000000000000000000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f8000000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1770: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x100000000000000000000000000000000, carry 0x80000000)/(0x800000000000000100000000000000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"8000000000000000":"100000000000000000000000000000000":"80000000":"800000000000000100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1771: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xffffffff00000000000000000000000000000000, carry 0xffffffff)/(0xffffffffffffffff00000000000000000000000000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"ffffffff00000000000000000000000000000000":"ffffffff":"ffffffffffffffff00000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1772: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1773: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x379d0369b20369cd0369d0369b20369cd0, carry 0x0)/(0x379d0369b20369cd0369d0369b20369cd0, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"3":"379d0369b20369cd0369d0369b20369cd0":"0":"379d0369b20369cd0369d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #1774: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x1210edcb9f8a76532320fedcb9f8a7653220, carry 0x0)/(0x1210edcb9f8a76532320fedcb9f8a7653220, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"fe":"1210edcb9f8a76532320fedcb9f8a7653220":"0":"1210edcb9f8a76532320fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #1775: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12232222181b2221122222222181b2221110, carry 0x0)/(0x12232222181b2221122222222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12232222181b2221122222222181b2221110":"0":"12232222181b2221122222222181b2221110":"0" + +mbedtls_mpi_core_mla #1776: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123445443a333d433334444443a333d4332110, carry 0x0)/(0x123445443a333d433334444443a333d4332110, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123445443a333d433334444443a333d4332110":"0":"123445443a333d433334444443a333d4332110":"0" + +mbedtls_mpi_core_mla #1777: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234577890abcdef01234567890abcdef00000, carry 0x0)/(0x1234577890abcdef01234567890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234577890abcdef01234567890abcdef00000":"0":"1234577890abcdef01234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1778: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787f7777767077777887e7777766f5432110, carry 0x12)/(0x123456787f7777767077777887e7777766f5432110, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787f7777767077777887e7777766f5432110":"12":"123456787f7777767077777887e7777766f5432110":"0" + +mbedtls_mpi_core_mla #1779: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567891abcdef01234567890abcdef000000000, carry 0x12)/(0x1234567891abcdef01234567890abcdef000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567891abcdef01234567890abcdef000000000":"12":"1234567891abcdef01234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1780: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde770f8810996cde66f76f67708abaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde770f8810996cde66f76f67708abaf5ba910, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde770f8810996cde66f76f67708abaf5ba910":"91107edbd":"1107edbd82bde770f8810996cde66f76f67708abaf5ba910":"9" + +mbedtls_mpi_core_mla #1781: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78191a2b3c4855e6f780000000000000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78191a2b3c4855e6f780000000000000000, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78191a2b3c4855e6f780000000000000000":"91a2b3c48":"1a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"9" + +mbedtls_mpi_core_mla #1782: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeddba987667b32100edb97530edea864220, carry 0x1234567890)/(0x34567890abcdeeddba987667b32100edb97530edea864220, carry 0x12) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeddba987667b32100edb97530edea864220":"1234567890":"34567890abcdeeddba987667b32100edb97530edea864220":"12" + +mbedtls_mpi_core_mla #1783: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1784: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffffffffffffffffd, carry 0x3)/(0xfffffffffffffffffffffffffffffffd, carry 0x3) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffd":"3":"fffffffffffffffffffffffffffffffd":"3" + +mbedtls_mpi_core_mla #1785: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffffffffffffffffffff02, carry 0xfe)/(0xffffffffffffffffffffffffffffff02, carry 0xfe) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffff02":"fe" + +mbedtls_mpi_core_mla #1786: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffffffffffffffffffff01, carry 0xff)/(0xffffffffffffffffffffffffffffff01, carry 0xff) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffff01":"ff":"ffffffffffffffffffffffffffffff01":"ff" + +mbedtls_mpi_core_mla #1787: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffff0001, carry 0xffff)/(0xffffffffffffffffffffffffffff0001, carry 0xffff) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffff0001":"ffff":"ffffffffffffffffffffffffffff0001":"ffff" + +mbedtls_mpi_core_mla #1788: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffffffffffffffffffffffffffff0000, carry 0x10000)/(0xffffffffffffffffffffffffffff0000, carry 0x10000) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffff0000":"10000":"ffffffffffffffffffffffffffff0000":"10000" + +mbedtls_mpi_core_mla #1789: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffff00000001, carry 0xffffffff)/(0xffffffffffffffffffffffff00000001, carry 0xffffffff) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffff" + +mbedtls_mpi_core_mla #1790: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffff00000000, carry 0x100000000)/(0xffffffffffffffffffffffff00000000, carry 0x100000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffff00000000":"100000000":"ffffffffffffffffffffffff00000000":"100000000" + +mbedtls_mpi_core_mla #1791: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffff8080808080808081, carry 0x7f7f7f7f7f7f7f7f)/(0xffffffffffffffff8080808080808081, carry 0x7f7f7f7f7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7f":"ffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #1792: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffff8000000000000000, carry 0x8000000000000000)/(0xffffffffffffffff8000000000000000, carry 0x8000000000000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff8000000000000000":"8000000000000000":"ffffffffffffffff8000000000000000":"8000000000000000" + +mbedtls_mpi_core_mla #1793: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffff0000000000000002, carry 0xfffffffffffffffe)/(0xffffffffffffffff0000000000000002, carry 0xfffffffffffffffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"fffffffffffffffe" + +mbedtls_mpi_core_mla #1794: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1795: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #1796: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #1797: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122232222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122232222181b2221122222222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122232222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122232222181b2221122222222181b2221110":"0" + +mbedtls_mpi_core_mla #1798: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110":"0" + +mbedtls_mpi_core_mla #1799: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1800: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110":"0" + +mbedtls_mpi_core_mla #1801: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1802: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910, carry 0x911) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910":"911" + +mbedtls_mpi_core_mla #1803: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000, carry 0x91a) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"91a" + +mbedtls_mpi_core_mla #1804: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220, carry 0x1234) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220":"1234" + +mbedtls_mpi_core_mla #1805: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1806: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381":"0" + +mbedtls_mpi_core_mla #1807: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa":"0" + +mbedtls_mpi_core_mla #1808: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5":"0" + +mbedtls_mpi_core_mla #1809: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5":"0" + +mbedtls_mpi_core_mla #1810: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000, carry 0x0) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000":"0" + +mbedtls_mpi_core_mla #1811: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5, carry 0x4) +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5":"4" + +mbedtls_mpi_core_mla #1812: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000, carry 0x4) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000":"4" + +mbedtls_mpi_core_mla #1813: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955, carry 0x26d473ca9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955":"26d473ca9" + +mbedtls_mpi_core_mla #1814: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000, carry 0x26fb9683d) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000":"26fb9683d" + +mbedtls_mpi_core_mla #1815: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa, carry 0x4df72d07b) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b" + +mbedtls_mpi_core_mla #1816: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1817: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x3 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"3":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1818: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xfe = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"fe":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1819: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xff = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1820: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xffff = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ffff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1821: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x10000 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"10000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1822: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xffffffff = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ffffffff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1823: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x100000000 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"100000000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1824: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1825: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"8000000000000000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1826: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1827: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1828: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x3 = (0x1234567890abcdef01234567890abcdef3, carry 0x0)/(0x1234567890abcdef01234567890abcdef3, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"3":"1234567890abcdef01234567890abcdef3":"0":"1234567890abcdef01234567890abcdef3":"0" + +mbedtls_mpi_core_mla #1829: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xfe = (0x1234567890abcdef01234567890abcdfee, carry 0x0)/(0x1234567890abcdef01234567890abcdfee, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"fe":"1234567890abcdef01234567890abcdfee":"0":"1234567890abcdef01234567890abcdfee":"0" + +mbedtls_mpi_core_mla #1830: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xff = (0x1234567890abcdef01234567890abcdfef, carry 0x0)/(0x1234567890abcdef01234567890abcdfef, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ff":"1234567890abcdef01234567890abcdfef":"0":"1234567890abcdef01234567890abcdfef":"0" + +mbedtls_mpi_core_mla #1831: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xffff = (0x1234567890abcdef01234567890abddeef, carry 0x0)/(0x1234567890abcdef01234567890abddeef, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ffff":"1234567890abcdef01234567890abddeef":"0":"1234567890abcdef01234567890abddeef":"0" + +mbedtls_mpi_core_mla #1832: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x10000 = (0x1234567890abcdef01234567890abddef0, carry 0x0)/(0x1234567890abcdef01234567890abddef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"10000":"1234567890abcdef01234567890abddef0":"0":"1234567890abcdef01234567890abddef0":"0" + +mbedtls_mpi_core_mla #1833: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xffffffff = (0x1234567890abcdef012345678a0abcdeef, carry 0x0)/(0x1234567890abcdef012345678a0abcdeef, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ffffffff":"1234567890abcdef012345678a0abcdeef":"0":"1234567890abcdef012345678a0abcdeef":"0" + +mbedtls_mpi_core_mla #1834: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x100000000 = (0x1234567890abcdef012345678a0abcdef0, carry 0x0)/(0x1234567890abcdef012345678a0abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"100000000":"1234567890abcdef012345678a0abcdef0":"0":"1234567890abcdef012345678a0abcdef0":"0" + +mbedtls_mpi_core_mla #1835: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01a2c4e7088a3c5e6f, carry 0x0)/(0x1234567890abcdef01a2c4e7088a3c5e6f, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1234567890abcdef01a2c4e7088a3c5e6f":"0":"1234567890abcdef01a2c4e7088a3c5e6f":"0" + +mbedtls_mpi_core_mla #1836: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x8000000000000000 = (0x1234567890abcdef01a34567890abcdef0, carry 0x0)/(0x1234567890abcdef01a34567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"8000000000000000":"1234567890abcdef01a34567890abcdef0":"0":"1234567890abcdef01a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #1837: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xfffffffffffffffe = (0x1234567890abcdef02234567890abcdeee, carry 0x0)/(0x1234567890abcdef02234567890abcdeee, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"fffffffffffffffe":"1234567890abcdef02234567890abcdeee":"0":"1234567890abcdef02234567890abcdeee":"0" + +mbedtls_mpi_core_mla #1838: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1839: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x3 = (0x1234567890abcdef01234567890abfdeea, carry 0x0)/(0x1234567890abcdef01234567890abfdeea, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"3":"1234567890abcdef01234567890abfdeea":"0":"1234567890abcdef01234567890abfdeea":"0" + +mbedtls_mpi_core_mla #1840: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xfe = (0x1234567890abcdef01234567890bbadcf4, carry 0x0)/(0x1234567890abcdef01234567890bbadcf4, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"fe":"1234567890abcdef01234567890bbadcf4":"0":"1234567890abcdef01234567890bbadcf4":"0" + +mbedtls_mpi_core_mla #1841: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xff = (0x1234567890abcdef01234567890bbbdcf2, carry 0x0)/(0x1234567890abcdef01234567890bbbdcf2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ff":"1234567890abcdef01234567890bbbdcf2":"0":"1234567890abcdef01234567890bbbdcf2":"0" + +mbedtls_mpi_core_mla #1842: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xffff = (0x1234567890abcdef012345678a0ab9def2, carry 0x0)/(0x1234567890abcdef012345678a0ab9def2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ffff":"1234567890abcdef012345678a0ab9def2":"0":"1234567890abcdef012345678a0ab9def2":"0" + +mbedtls_mpi_core_mla #1843: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x10000 = (0x1234567890abcdef012345678a0abadef0, carry 0x0)/(0x1234567890abcdef012345678a0abadef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"10000":"1234567890abcdef012345678a0abadef0":"0":"1234567890abcdef012345678a0abadef0":"0" + +mbedtls_mpi_core_mla #1844: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xffffffff = (0x1234567890abcdef01234667870abbdef2, carry 0x0)/(0x1234567890abcdef01234667870abbdef2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ffffffff":"1234567890abcdef01234667870abbdef2":"0":"1234567890abcdef01234667870abbdef2":"0" + +mbedtls_mpi_core_mla #1845: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x100000000 = (0x1234567890abcdef01234667870abcdef0, carry 0x0)/(0x1234567890abcdef01234667870abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"100000000":"1234567890abcdef01234667870abcdef0":"0":"1234567890abcdef01234667870abcdef0":"0" + +mbedtls_mpi_core_mla #1846: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x1234567890abce6e7fa3c5e8098b3cdff2, carry 0x0)/(0x1234567890abce6e7fa3c5e8098b3cdff2, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"1234567890abce6e7fa3c5e8098b3cdff2":"0":"1234567890abce6e7fa3c5e8098b3cdff2":"0" + +mbedtls_mpi_core_mla #1847: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x8000000000000000 = (0x1234567890abce6f00234567890abcdef0, carry 0x0)/(0x1234567890abce6f00234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"8000000000000000":"1234567890abce6f00234567890abcdef0":"0":"1234567890abce6f00234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1848: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xfffffffffffffffe = (0x1234567890abceeeff234567890abadef4, carry 0x0)/(0x1234567890abceeeff234567890abadef4, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"fffffffffffffffe":"1234567890abceeeff234567890abadef4":"0":"1234567890abceeeff234567890abadef4":"0" + +mbedtls_mpi_core_mla #1849: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1850: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x3 = (0x1234567890abcdef012345678c0abcdeed, carry 0x0)/(0x1234567890abcdef012345678c0abcdeed, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"3":"1234567890abcdef012345678c0abcdeed":"0":"1234567890abcdef012345678c0abcdeed":"0" + +mbedtls_mpi_core_mla #1851: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfe = (0x1234567890abcdef01234568870abcddf2, carry 0x0)/(0x1234567890abcdef01234568870abcddf2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"fe":"1234567890abcdef01234568870abcddf2":"0":"1234567890abcdef01234568870abcddf2":"0" + +mbedtls_mpi_core_mla #1852: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xff = (0x1234567890abcdef01234568880abcddf1, carry 0x0)/(0x1234567890abcdef01234568880abcddf1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ff":"1234567890abcdef01234568880abcddf1":"0":"1234567890abcdef01234568880abcddf1":"0" + +mbedtls_mpi_core_mla #1853: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffff = (0x1234567890abcdef01234667880abbdef1, carry 0x0)/(0x1234567890abcdef01234667880abbdef1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ffff":"1234567890abcdef01234667880abbdef1":"0":"1234567890abcdef01234667880abbdef1":"0" + +mbedtls_mpi_core_mla #1854: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x10000 = (0x1234567890abcdef01234667890abbdef0, carry 0x0)/(0x1234567890abcdef01234667890abbdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"10000":"1234567890abcdef01234667890abbdef0":"0":"1234567890abcdef01234667890abbdef0":"0" + +mbedtls_mpi_core_mla #1855: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffffffff = (0x1234567890abcdef02234567870abcdef1, carry 0x0)/(0x1234567890abcdef02234567870abcdef1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ffffffff":"1234567890abcdef02234567870abcdef1":"0":"1234567890abcdef02234567870abcdef1":"0" + +mbedtls_mpi_core_mla #1856: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x100000000 = (0x1234567890abcdef02234567880abcdef0, carry 0x0)/(0x1234567890abcdef02234567880abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"100000000":"1234567890abcdef02234567880abcdef0":"0":"1234567890abcdef02234567880abcdef0":"0" + +mbedtls_mpi_core_mla #1857: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x12345678912b4d6e80234567888b3d5f71, carry 0x0)/(0x12345678912b4d6e80234567888b3d5f71, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"12345678912b4d6e80234567888b3d5f71":"0":"12345678912b4d6e80234567888b3d5f71":"0" + +mbedtls_mpi_core_mla #1858: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x8000000000000000 = (0x12345678912bcdef00a34567890abcdef0, carry 0x0)/(0x12345678912bcdef00a34567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"8000000000000000":"12345678912bcdef00a34567890abcdef0":"0":"12345678912bcdef00a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #1859: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe = (0x1234567891abcdef00234567870abcdef2, carry 0x0)/(0x1234567891abcdef00234567870abcdef2, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"fffffffffffffffe":"1234567891abcdef00234567870abcdef2":"0":"1234567891abcdef00234567870abcdef2":"0" + +mbedtls_mpi_core_mla #1860: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1861: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x3 = (0x1234567890abcdef012345678c0abcdef0, carry 0x0)/(0x1234567890abcdef012345678c0abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"3":"1234567890abcdef012345678c0abcdef0":"0":"1234567890abcdef012345678c0abcdef0":"0" + +mbedtls_mpi_core_mla #1862: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfe = (0x1234567890abcdef01234568870abcdef0, carry 0x0)/(0x1234567890abcdef01234568870abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"fe":"1234567890abcdef01234568870abcdef0":"0":"1234567890abcdef01234568870abcdef0":"0" + +mbedtls_mpi_core_mla #1863: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xff = (0x1234567890abcdef01234568880abcdef0, carry 0x0)/(0x1234567890abcdef01234568880abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ff":"1234567890abcdef01234568880abcdef0":"0":"1234567890abcdef01234568880abcdef0":"0" + +mbedtls_mpi_core_mla #1864: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffff = (0x1234567890abcdef01234667880abcdef0, carry 0x0)/(0x1234567890abcdef01234667880abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ffff":"1234567890abcdef01234667880abcdef0":"0":"1234567890abcdef01234667880abcdef0":"0" + +mbedtls_mpi_core_mla #1865: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x10000 = (0x1234567890abcdef01234667890abcdef0, carry 0x0)/(0x1234567890abcdef01234667890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"10000":"1234567890abcdef01234667890abcdef0":"0":"1234567890abcdef01234667890abcdef0":"0" + +mbedtls_mpi_core_mla #1866: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffffffff = (0x1234567890abcdef02234567880abcdef0, carry 0x0)/(0x1234567890abcdef02234567880abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ffffffff":"1234567890abcdef02234567880abcdef0":"0":"1234567890abcdef02234567880abcdef0":"0" + +mbedtls_mpi_core_mla #1867: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x100000000 = (0x1234567890abcdef02234567890abcdef0, carry 0x0)/(0x1234567890abcdef02234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"100000000":"1234567890abcdef02234567890abcdef0":"0":"1234567890abcdef02234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1868: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x12345678912b4d6e80a2c4e7080abcdef0, carry 0x0)/(0x12345678912b4d6e80a2c4e7080abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"12345678912b4d6e80a2c4e7080abcdef0":"0":"12345678912b4d6e80a2c4e7080abcdef0":"0" + +mbedtls_mpi_core_mla #1869: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x8000000000000000 = (0x12345678912bcdef01234567890abcdef0, carry 0x0)/(0x12345678912bcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"8000000000000000":"12345678912bcdef01234567890abcdef0":"0":"12345678912bcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1870: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe = (0x1234567891abcdef01234567870abcdef0, carry 0x0)/(0x1234567891abcdef01234567870abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"fffffffffffffffe":"1234567891abcdef01234567870abcdef0":"0":"1234567891abcdef01234567870abcdef0":"0" + +mbedtls_mpi_core_mla #1871: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1872: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x3 = (0x1234567890abcdef0123a567890abcdef0, carry 0x0)/(0x1234567890abcdef0123a567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"3":"1234567890abcdef0123a567890abcdef0":"0":"1234567890abcdef0123a567890abcdef0":"0" + +mbedtls_mpi_core_mla #1873: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfe = (0x1234567890abcdef01430567890abcdef0, carry 0x0)/(0x1234567890abcdef01430567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"fe":"1234567890abcdef01430567890abcdef0":"0":"1234567890abcdef01430567890abcdef0":"0" + +mbedtls_mpi_core_mla #1874: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xff = (0x1234567890abcdef01432567890abcdef0, carry 0x0)/(0x1234567890abcdef01432567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ff":"1234567890abcdef01432567890abcdef0":"0":"1234567890abcdef01432567890abcdef0":"0" + +mbedtls_mpi_core_mla #1875: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffff = (0x1234567890abcdef21232567890abcdef0, carry 0x0)/(0x1234567890abcdef21232567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ffff":"1234567890abcdef21232567890abcdef0":"0":"1234567890abcdef21232567890abcdef0":"0" + +mbedtls_mpi_core_mla #1876: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x10000 = (0x1234567890abcdef21234567890abcdef0, carry 0x0)/(0x1234567890abcdef21234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"10000":"1234567890abcdef21234567890abcdef0":"0":"1234567890abcdef21234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1877: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffffffff = (0x1234567890abedef01232567890abcdef0, carry 0x0)/(0x1234567890abedef01232567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ffffffff":"1234567890abedef01232567890abcdef0":"0":"1234567890abedef01232567890abcdef0":"0" + +mbedtls_mpi_core_mla #1878: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x100000000 = (0x1234567890abedef01234567890abcdef0, carry 0x0)/(0x1234567890abedef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"100000000":"1234567890abedef01234567890abcdef0":"0":"1234567890abedef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1879: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0x12346668809bbddef1132567890abcdef0, carry 0x0)/(0x12346668809bbddef1132567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"12346668809bbddef1132567890abcdef0":"0":"12346668809bbddef1132567890abcdef0":"0" + +mbedtls_mpi_core_mla #1880: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 = (0x1234667890abcdef01234567890abcdef0, carry 0x0)/(0x1234667890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"8000000000000000":"1234667890abcdef01234567890abcdef0":"0":"1234667890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1881: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe = (0x1234767890abcdef01230567890abcdef0, carry 0x0)/(0x1234767890abcdef01230567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"fffffffffffffffe":"1234767890abcdef01230567890abcdef0":"0":"1234767890abcdef01230567890abcdef0":"0" + +mbedtls_mpi_core_mla #1882: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1883: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x3 = (0x1234567890abcdef04234567890abcdeed, carry 0x0)/(0x1234567890abcdef04234567890abcdeed, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"3":"1234567890abcdef04234567890abcdeed":"0":"1234567890abcdef04234567890abcdeed":"0" + +mbedtls_mpi_core_mla #1884: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfe = (0x1234567890abcdefff234567890abcddf2, carry 0x0)/(0x1234567890abcdefff234567890abcddf2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fe":"1234567890abcdefff234567890abcddf2":"0":"1234567890abcdefff234567890abcddf2":"0" + +mbedtls_mpi_core_mla #1885: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xff = (0x1234567890abcdf000234567890abcddf1, carry 0x0)/(0x1234567890abcdf000234567890abcddf1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ff":"1234567890abcdf000234567890abcddf1":"0":"1234567890abcdf000234567890abcddf1":"0" + +mbedtls_mpi_core_mla #1886: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffff = (0x1234567890abceef00234567890abbdef1, carry 0x0)/(0x1234567890abceef00234567890abbdef1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffff":"1234567890abceef00234567890abbdef1":"0":"1234567890abceef00234567890abbdef1":"0" + +mbedtls_mpi_core_mla #1887: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x10000 = (0x1234567890abceef01234567890abbdef0, carry 0x0)/(0x1234567890abceef01234567890abbdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"10000":"1234567890abceef01234567890abbdef0":"0":"1234567890abceef01234567890abbdef0":"0" + +mbedtls_mpi_core_mla #1888: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffffffff = (0x1234567891abcdef00234567880abcdef1, carry 0x0)/(0x1234567891abcdef00234567880abcdef1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffffffff":"1234567891abcdef00234567880abcdef1":"0":"1234567891abcdef00234567880abcdef1":"0" + +mbedtls_mpi_core_mla #1889: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x100000000 = (0x1234567891abcdef01234567880abcdef0, carry 0x0)/(0x1234567891abcdef01234567880abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"100000000":"1234567891abcdef01234567880abcdef0":"0":"1234567891abcdef01234567880abcdef0":"0" + +mbedtls_mpi_core_mla #1890: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x12b3d5f8102b4d6e7fa3c5e8098b3d5f71, carry 0x0)/(0x12b3d5f8102b4d6e7fa3c5e8098b3d5f71, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"12b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0":"12b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0" + +mbedtls_mpi_core_mla #1891: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 = (0x12b4567890abcdef00a34567890abcdef0, carry 0x0)/(0x12b4567890abcdef00a34567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"8000000000000000":"12b4567890abcdef00a34567890abcdef0":"0":"12b4567890abcdef00a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #1892: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x1334567890abcdeefe234567890abcdef2, carry 0x0)/(0x1334567890abcdeefe234567890abcdef2, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"1334567890abcdeefe234567890abcdef2":"0":"1334567890abcdeefe234567890abcdef2":"0" + +mbedtls_mpi_core_mla #1893: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1894: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x3 = (0x1234567890abcdef04234567890abcdef0, carry 0x0)/(0x1234567890abcdef04234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"3":"1234567890abcdef04234567890abcdef0":"0":"1234567890abcdef04234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1895: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfe = (0x1234567890abcdefff234567890abcdef0, carry 0x0)/(0x1234567890abcdefff234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"fe":"1234567890abcdefff234567890abcdef0":"0":"1234567890abcdefff234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1896: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xff = (0x1234567890abcdf000234567890abcdef0, carry 0x0)/(0x1234567890abcdf000234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ff":"1234567890abcdf000234567890abcdef0":"0":"1234567890abcdf000234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1897: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffff = (0x1234567890abceef00234567890abcdef0, carry 0x0)/(0x1234567890abceef00234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ffff":"1234567890abceef00234567890abcdef0":"0":"1234567890abceef00234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1898: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x10000 = (0x1234567890abceef01234567890abcdef0, carry 0x0)/(0x1234567890abceef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"10000":"1234567890abceef01234567890abcdef0":"0":"1234567890abceef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1899: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffffffff = (0x1234567891abcdef00234567890abcdef0, carry 0x0)/(0x1234567891abcdef00234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ffffffff":"1234567891abcdef00234567890abcdef0":"0":"1234567891abcdef00234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1900: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x100000000 = (0x1234567891abcdef01234567890abcdef0, carry 0x0)/(0x1234567891abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"100000000":"1234567891abcdef01234567890abcdef0":"0":"1234567891abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1901: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x12b3d5f8102b4d6e80234567890abcdef0, carry 0x0)/(0x12b3d5f8102b4d6e80234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"12b3d5f8102b4d6e80234567890abcdef0":"0":"12b3d5f8102b4d6e80234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1902: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 = (0x12b4567890abcdef01234567890abcdef0, carry 0x0)/(0x12b4567890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"8000000000000000":"12b4567890abcdef01234567890abcdef0":"0":"12b4567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1903: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe = (0x1334567890abcdeeff234567890abcdef0, carry 0x0)/(0x1334567890abcdeeff234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"fffffffffffffffe":"1334567890abcdeeff234567890abcdef0":"0":"1334567890abcdeeff234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1904: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1905: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x3 = (0x1234567890abcdef048d159e242af37bc0, carry 0x0)/(0x1234567890abcdef048d159e242af37bc0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"3":"1234567890abcdef048d159e242af37bc0":"0":"1234567890abcdef048d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #1906: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfe = (0x1234567890abcdf02222222181b2221110, carry 0x0)/(0x1234567890abcdf02222222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fe":"1234567890abcdf02222222181b2221110":"0":"1234567890abcdf02222222181b2221110":"0" + +mbedtls_mpi_core_mla #1907: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xff = (0x1234567890abcdf0234567890abcdef000, carry 0x0)/(0x1234567890abcdf0234567890abcdef000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdf0234567890abcdef000":"0":"1234567890abcdf0234567890abcdef000":"0" + +mbedtls_mpi_core_mla #1908: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffff = (0x1234567890abcf124567890abcdef00000, carry 0x0)/(0x1234567890abcf124567890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcf124567890abcdef00000":"0":"1234567890abcf124567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1909: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcf12468ace7245e9acdef0, carry 0x0)/(0x1234567890abcf12468ace7245e9acdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"10000":"1234567890abcf12468ace7245e9acdef0":"0":"1234567890abcf12468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #1910: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff = (0x1234567891cf1356890abcdef000000000, carry 0x0)/(0x1234567891cf1356890abcdef000000000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffffffff":"1234567891cf1356890abcdef000000000":"0":"1234567891cf1356890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1911: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 = (0x1234567891cf13568a2e0246790abcdef0, carry 0x0)/(0x1234567891cf13568a2e0246790abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"100000000":"1234567891cf13568a2e0246790abcdef0":"0":"1234567891cf13568a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #1912: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x12c566f76c83f9cd7819bc7034ba188800, carry 0x0)/(0x12c566f76c83f9cd7819bc7034ba188800, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"12c566f76c83f9cd7819bc7034ba188800":"0":"12c566f76c83f9cd7819bc7034ba188800":"0" + +mbedtls_mpi_core_mla #1913: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x12c5f92c55312c5e79234567890abcdef0, carry 0x0)/(0x12c5f92c55312c5e79234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"8000000000000000":"12c5f92c55312c5e79234567890abcdef0":"0":"12c5f92c55312c5e79234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1914: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x13579be019b68acdeedcba9876f5432110, carry 0x0)/(0x13579be019b68acdeedcba9876f5432110, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"13579be019b68acdeedcba9876f5432110":"0":"13579be019b68acdeedcba9876f5432110":"0" + +mbedtls_mpi_core_mla #1915: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1916: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x1534567890abcdef012042648607b9dbea, carry 0x0)/(0x1534567890abcdef012042648607b9dbea, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"1534567890abcdef012042648607b9dbea":"0":"1534567890abcdef012042648607b9dbea":"0" + +mbedtls_mpi_core_mla #1917: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x11034567890abcdef002446688a0bbddef4, carry 0x0)/(0x11034567890abcdef002446688a0bbddef4, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"11034567890abcdef002446688a0bbddef4":"0":"11034567890abcdef002446688a0bbddef4":"0" + +mbedtls_mpi_core_mla #1918: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0x11134567890abcdef00234567890abcddf2, carry 0x0)/(0x11134567890abcdef00234567890abcddf2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"11134567890abcdef00234567890abcddf2":"0":"11134567890abcdef00234567890abcddf2":"0" + +mbedtls_mpi_core_mla #1919: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0x1001134567890abcdee00234567890abbdff2, carry 0x0)/(0x1001134567890abcdee00234567890abbdff2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"1001134567890abcdee00234567890abbdff2":"0":"1001134567890abcdee00234567890abbdff2":"0" + +mbedtls_mpi_core_mla #1920: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0x1001234567890abcdee002244668809badef0, carry 0x0)/(0x1001234567890abcdee002244668809badef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"1001234567890abcdee002244668809badef0":"0":"1001234567890abcdee002244668809badef0":"0" + +mbedtls_mpi_core_mla #1921: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0x1134567890aaccee00234567880bbddff2, carry 0x1)/(0x10000001134567890aaccee00234567880bbddff2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"1134567890aaccee00234567880bbddff2":"1":"10000001134567890aaccee00234567880bbddff2":"0" + +mbedtls_mpi_core_mla #1922: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0x1234567890aaccee00224466870abcdef0, carry 0x1)/(0x10000001234567890aaccee00224466870abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"1234567890aaccee00224466870abcdef0":"1":"10000001234567890aaccee00224466870abcdef0":"0" + +mbedtls_mpi_core_mla #1923: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2":"7f7f7f7f":"7f7f7f7f7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2":"0" + +mbedtls_mpi_core_mla #1924: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0x1233d5f8102b4d6e80234567890abcdef0, carry 0x80000000)/(0x800000000000001233d5f8102b4d6e80234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"1233d5f8102b4d6e80234567890abcdef0":"80000000":"800000000000001233d5f8102b4d6e80234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1925: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0x103355778faaccedff2547698b0cbee0f4, carry 0x100000000)/(0x103355778faaccedff2547698b0cbee0f4, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"103355778faaccedff2547698b0cbee0f4":"100000000":"103355778faaccedff2547698b0cbee0f4":"1" + +mbedtls_mpi_core_mla #1926: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1927: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 = (0x1534567890abcdef01234567890abcdef0, carry 0x0)/(0x1534567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"3":"1534567890abcdef01234567890abcdef0":"0":"1534567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1928: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe = (0x11034567890abcdef01234567890abcdef0, carry 0x0)/(0x11034567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fe":"11034567890abcdef01234567890abcdef0":"0":"11034567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1929: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff = (0x11134567890abcdef01234567890abcdef0, carry 0x0)/(0x11134567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ff":"11134567890abcdef01234567890abcdef0":"0":"11134567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1930: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff = (0x1001134567890abcdef01234567890abcdef0, carry 0x0)/(0x1001134567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffff":"1001134567890abcdef01234567890abcdef0":"0":"1001134567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1931: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 = (0x1001234567890abcdef01234567890abcdef0, carry 0x0)/(0x1001234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"10000":"1001234567890abcdef01234567890abcdef0":"0":"1001234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1932: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff = (0x1134567890abcdef01234567890abcdef0, carry 0x1)/(0x10000001134567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"1134567890abcdef01234567890abcdef0":"1":"10000001134567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1933: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 = (0x1234567890abcdef01234567890abcdef0, carry 0x1)/(0x10000001234567890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef01234567890abcdef0":"1":"10000001234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1934: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f9134567890abcdef01234567890abcdef0, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f9134567890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f9134567890abcdef01234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f9134567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1935: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef0, carry 0x80000000)/(0x800000000000001234567890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef0":"80000000":"800000000000001234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1936: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0x1034567890abcdef01234567890abcdef0, carry 0x100000000)/(0x1034567890abcdef01234567890abcdef0, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"1034567890abcdef01234567890abcdef0":"100000000":"1034567890abcdef01234567890abcdef0":"1" + +mbedtls_mpi_core_mla #1937: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1938: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x48d159e242af37bc048d159e242af37bc0, carry 0x0)/(0x48d159e242af37bc048d159e242af37bc0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"48d159e242af37bc048d159e242af37bc0":"0":"48d159e242af37bc048d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #1939: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x12222222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"12222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221110":"0" + +mbedtls_mpi_core_mla #1940: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x1234567890abcdef01234567890abcdef000, carry 0x0)/(0x1234567890abcdef01234567890abcdef000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdef000":"0" + +mbedtls_mpi_core_mla #1941: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x1234567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1942: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x123468ace7245e9acf12468ace7245e9acdef0, carry 0x0)/(0x123468ace7245e9acf12468ace7245e9acdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"123468ace7245e9acf12468ace7245e9acdef0":"0":"123468ace7245e9acf12468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #1943: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x34567890abcdef01234567890abcdef000000000, carry 0x12)/(0x1234567890abcdef01234567890abcdef000000000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"34567890abcdef01234567890abcdef000000000":"12":"1234567890abcdef01234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1944: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x345678a2e0246791cf13568a2e0246790abcdef0, carry 0x12)/(0x12345678a2e0246791cf13568a2e0246790abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"345678a2e0246791cf13568a2e0246790abcdef0":"12":"12345678a2e0246791cf13568a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #1945: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde7822cd7822779b45e7819bc7034ba188800, carry 0x91107edbd)/(0x1107edbd82bde7822cd7822779b45e7819bc7034ba188800, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde7822cd7822779b45e7819bc7034ba188800":"91107edbd":"1107edbd82bde7822cd7822779b45e7819bc7034ba188800":"9" + +mbedtls_mpi_core_mla #1946: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f792c5f92c55312c5e79234567890abcdef0, carry 0x91a2b3c48)/(0x1a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0, carry 0x9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f792c5f92c55312c5e79234567890abcdef0":"91a2b3c48":"1a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"9" + +mbedtls_mpi_core_mla #1947: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234567890)/(0x34567890abcdeeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x12) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeeeeeeeeef85eeeefeedcba9876f5432110":"1234567890":"34567890abcdeeeeeeeeeef85eeeefeedcba9876f5432110":"12" + +mbedtls_mpi_core_mla #1948: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1949: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x1234567890abcdef01234567890abcdeed, carry 0x3)/(0x1234567890abcdef01234567890abcdeed, carry 0x3) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1234567890abcdef01234567890abcdeed":"3":"1234567890abcdef01234567890abcdeed":"3" + +mbedtls_mpi_core_mla #1950: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x1234567890abcdef01234567890abcddf2, carry 0xfe)/(0x1234567890abcdef01234567890abcddf2, carry 0xfe) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1234567890abcdef01234567890abcddf2":"fe":"1234567890abcdef01234567890abcddf2":"fe" + +mbedtls_mpi_core_mla #1951: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x1234567890abcdef01234567890abcddf1, carry 0xff)/(0x1234567890abcdef01234567890abcddf1, carry 0xff) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1234567890abcdef01234567890abcddf1":"ff":"1234567890abcdef01234567890abcddf1":"ff" + +mbedtls_mpi_core_mla #1952: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x1234567890abcdef01234567890abbdef1, carry 0xffff)/(0x1234567890abcdef01234567890abbdef1, carry 0xffff) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1234567890abcdef01234567890abbdef1":"ffff":"1234567890abcdef01234567890abbdef1":"ffff" + +mbedtls_mpi_core_mla #1953: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x1234567890abcdef01234567890abbdef0, carry 0x10000)/(0x1234567890abcdef01234567890abbdef0, carry 0x10000) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1234567890abcdef01234567890abbdef0":"10000":"1234567890abcdef01234567890abbdef0":"10000" + +mbedtls_mpi_core_mla #1954: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1234567890abcdef01234567880abcdef1, carry 0xffffffff)/(0x1234567890abcdef01234567880abcdef1, carry 0xffffffff) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1234567890abcdef01234567880abcdef1":"ffffffff":"1234567890abcdef01234567880abcdef1":"ffffffff" + +mbedtls_mpi_core_mla #1955: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x1234567890abcdef01234567880abcdef0, carry 0x100000000)/(0x1234567890abcdef01234567880abcdef0, carry 0x100000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567890abcdef01234567880abcdef0":"100000000":"1234567890abcdef01234567880abcdef0":"100000000" + +mbedtls_mpi_core_mla #1956: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef00a3c5e8098b3d5f71, carry 0x7f7f7f7f7f7f7f7f)/(0x1234567890abcdef00a3c5e8098b3d5f71, carry 0x7f7f7f7f7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f":"1234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #1957: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x1234567890abcdef00a34567890abcdef0, carry 0x8000000000000000)/(0x1234567890abcdef00a34567890abcdef0, carry 0x8000000000000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"8000000000000000" + +mbedtls_mpi_core_mla #1958: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x1234567890abcdef00234567890abcdef2, carry 0xfffffffffffffffe)/(0x1234567890abcdef00234567890abcdef2, carry 0xfffffffffffffffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"fffffffffffffffe" + +mbedtls_mpi_core_mla #1959: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1960: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0":"0":"369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #1961: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110":"0":"120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110":"0" + +mbedtls_mpi_core_mla #1962: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000, carry 0x0)/(0x12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000":"0":"12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000":"0" + +mbedtls_mpi_core_mla #1963: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000, carry 0x0)/(0x123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000":"0":"123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1964: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #1965: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000, carry 0x1234)/(0x123456787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000":"1234":"123456787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1966: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0, carry 0x1234)/(0x1234567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0":"1234":"1234567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #1967: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800, carry 0x911) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800":"911" + +mbedtls_mpi_core_mla #1968: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0, carry 0x91a) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"91a" + +mbedtls_mpi_core_mla #1969: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110":"1234" + +mbedtls_mpi_core_mla #1970: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1971: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271":"0" + +mbedtls_mpi_core_mla #1972: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a":"0" + +mbedtls_mpi_core_mla #1973: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5":"0" + +mbedtls_mpi_core_mla #1974: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5":"0" + +mbedtls_mpi_core_mla #1975: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0":"0" + +mbedtls_mpi_core_mla #1976: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5, carry 0x4) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5":"4" + +mbedtls_mpi_core_mla #1977: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0, carry 0x4) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0":"4" + +mbedtls_mpi_core_mla #1978: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845, carry 0x26d473ca9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845":"26d473ca9" + +mbedtls_mpi_core_mla #1979: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0, carry 0x26fb9683d) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0":"26fb9683d" + +mbedtls_mpi_core_mla #1980: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a, carry 0x4df72d07b) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a":"4df72d07b" + +mbedtls_mpi_core_mla #1981: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1982: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x3 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"3":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1983: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xfe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1984: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1985: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1986: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x10000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1987: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1988: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1989: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1990: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1991: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1992: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1993: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x3 = (0x2, carry 0x1)/(0x2, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"3":"2":"1":"2":"1" + +mbedtls_mpi_core_mla #1994: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xfe = (0xfd, carry 0x1)/(0xfd, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fe":"fd":"1":"fd":"1" + +mbedtls_mpi_core_mla #1995: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xff = (0xfe, carry 0x1)/(0xfe, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ff":"fe":"1":"fe":"1" + +mbedtls_mpi_core_mla #1996: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xffff = (0xfffe, carry 0x1)/(0xfffe, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ffff":"fffe":"1":"fffe":"1" + +mbedtls_mpi_core_mla #1997: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x10000 = (0xffff, carry 0x1)/(0xffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"10000":"ffff":"1":"ffff":"1" + +mbedtls_mpi_core_mla #1998: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xffffffff = (0xfffffffe, carry 0x1)/(0xfffffffe, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ffffffff":"fffffffe":"1":"fffffffe":"1" + +mbedtls_mpi_core_mla #1999: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x100000000 = (0xffffffff, carry 0x1)/(0xffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"100000000":"ffffffff":"1":"ffffffff":"1" + +mbedtls_mpi_core_mla #2000: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7e, carry 0x1)/(0x7f7f7f7f7f7f7f7e, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e":"1":"7f7f7f7f7f7f7f7e":"1" + +mbedtls_mpi_core_mla #2001: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x1)/(0x7fffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"8000000000000000":"7fffffffffffffff":"1":"7fffffffffffffff":"1" + +mbedtls_mpi_core_mla #2002: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xfffffffffffffffe = (0xfffffffffffffffd, carry 0x1)/(0xfffffffffffffffd, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffd":"1":"fffffffffffffffd":"1" + +mbedtls_mpi_core_mla #2003: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2004: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x3 = (0x2fff9, carry 0x1)/(0x2fff9, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"3":"2fff9":"1":"2fff9":"1" + +mbedtls_mpi_core_mla #2005: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xfe = (0xfdfe03, carry 0x1)/(0xfdfe03, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"fe":"fdfe03":"1":"fdfe03":"1" + +mbedtls_mpi_core_mla #2006: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xff = (0xfefe01, carry 0x1)/(0xfefe01, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ff":"fefe01":"1":"fefe01":"1" + +mbedtls_mpi_core_mla #2007: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xffff = (0xfffd0001, carry 0x1)/(0xfffd0001, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffff":"fffd0001":"1":"fffd0001":"1" + +mbedtls_mpi_core_mla #2008: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x10000 = (0xfffdffff, carry 0x1)/(0xfffdffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"10000":"fffdffff":"1":"fffdffff":"1" + +mbedtls_mpi_core_mla #2009: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xffffffff = (0xfffdffff0001, carry 0x1)/(0xfffdffff0001, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffff":"fffdffff0001":"1":"fffdffff0001":"1" + +mbedtls_mpi_core_mla #2010: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x100000000 = (0xfffdffffffff, carry 0x1)/(0xfffdffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"100000000":"fffdffffffff":"1":"fffdffffffff":"1" + +mbedtls_mpi_core_mla #2011: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x7f7e8080808080800101, carry 0x1)/(0x7f7e8080808080800101, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"7f7f7f7f7f7f7f7f":"7f7e8080808080800101":"1":"7f7e8080808080800101":"1" + +mbedtls_mpi_core_mla #2012: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x8000000000000000 = (0x7ffeffffffffffffffff, carry 0x1)/(0x7ffeffffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"8000000000000000":"7ffeffffffffffffffff":"1":"7ffeffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2013: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xfffffffffffffffe = (0xfffdfffffffffffe0003, carry 0x1)/(0xfffdfffffffffffe0003, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"fffffffffffffffe":"fffdfffffffffffe0003":"1":"fffdfffffffffffe0003":"1" + +mbedtls_mpi_core_mla #2014: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2015: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x3 = (0x2fffffffc, carry 0x1)/(0x2fffffffc, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"3":"2fffffffc":"1":"2fffffffc":"1" + +mbedtls_mpi_core_mla #2016: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xfe = (0xfdffffff01, carry 0x1)/(0xfdffffff01, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fe":"fdffffff01":"1":"fdffffff01":"1" + +mbedtls_mpi_core_mla #2017: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xff = (0xfeffffff00, carry 0x1)/(0xfeffffff00, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ff":"feffffff00":"1":"feffffff00":"1" + +mbedtls_mpi_core_mla #2018: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xffff = (0xfffeffff0000, carry 0x1)/(0xfffeffff0000, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffff":"fffeffff0000":"1":"fffeffff0000":"1" + +mbedtls_mpi_core_mla #2019: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x10000 = (0xfffffffeffff, carry 0x1)/(0xfffffffeffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"10000":"fffffffeffff":"1":"fffffffeffff":"1" + +mbedtls_mpi_core_mla #2020: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xffffffff = (0xfffffffe00000000, carry 0x1)/(0xfffffffe00000000, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff":"fffffffe00000000":"1":"fffffffe00000000":"1" + +mbedtls_mpi_core_mla #2021: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x100000000 = (0xfffffffeffffffff, carry 0x1)/(0xfffffffeffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"100000000":"fffffffeffffffff":"1":"fffffffeffffffff":"1" + +mbedtls_mpi_core_mla #2022: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7effffffff80808080, carry 0x1)/(0x7f7f7f7effffffff80808080, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7effffffff80808080":"1":"7f7f7f7effffffff80808080":"1" + +mbedtls_mpi_core_mla #2023: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x8000000000000000 = (0x7fffffff7fffffffffffffff, carry 0x1)/(0x7fffffff7fffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"8000000000000000":"7fffffff7fffffffffffffff":"1":"7fffffff7fffffffffffffff":"1" + +mbedtls_mpi_core_mla #2024: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xfffffffffffffffe = (0xfffffffefffffffe00000001, carry 0x1)/(0xfffffffefffffffe00000001, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fffffffffffffffe":"fffffffefffffffe00000001":"1":"fffffffefffffffe00000001":"1" + +mbedtls_mpi_core_mla #2025: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2026: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x3 = (0x2ffffffff, carry 0x1)/(0x2ffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"3":"2ffffffff":"1":"2ffffffff":"1" + +mbedtls_mpi_core_mla #2027: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xfe = (0xfdffffffff, carry 0x1)/(0xfdffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fe":"fdffffffff":"1":"fdffffffff":"1" + +mbedtls_mpi_core_mla #2028: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xff = (0xfeffffffff, carry 0x1)/(0xfeffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ff":"feffffffff":"1":"feffffffff":"1" + +mbedtls_mpi_core_mla #2029: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xffff = (0xfffeffffffff, carry 0x1)/(0xfffeffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffff":"fffeffffffff":"1":"fffeffffffff":"1" + +mbedtls_mpi_core_mla #2030: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x10000 = (0xffffffffffff, carry 0x1)/(0xffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"10000":"ffffffffffff":"1":"ffffffffffff":"1" + +mbedtls_mpi_core_mla #2031: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xffffffff = (0xfffffffeffffffff, carry 0x1)/(0xfffffffeffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffff":"fffffffeffffffff":"1":"fffffffeffffffff":"1" + +mbedtls_mpi_core_mla #2032: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x100000000 = (0xffffffffffffffff, carry 0x1)/(0xffffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"100000000":"ffffffffffffffff":"1":"ffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2033: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7effffffff, carry 0x1)/(0x7f7f7f7f7f7f7f7effffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffff":"1":"7f7f7f7f7f7f7f7effffffff":"1" + +mbedtls_mpi_core_mla #2034: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x8000000000000000 = (0x7fffffffffffffffffffffff, carry 0x1)/(0x7fffffffffffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"8000000000000000":"7fffffffffffffffffffffff":"1":"7fffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2035: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xfffffffffffffffe = (0xfffffffffffffffdffffffff, carry 0x1)/(0xfffffffffffffffdffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffe":"fffffffffffffffdffffffff":"1":"fffffffffffffffdffffffff":"1" + +mbedtls_mpi_core_mla #2036: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2037: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x3 = (0x5fffffffffffff, carry 0x1)/(0x5fffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"3":"5fffffffffffff":"1":"5fffffffffffff":"1" + +mbedtls_mpi_core_mla #2038: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xfe = (0x1fbfffffffffffff, carry 0x1)/(0x1fbfffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"fe":"1fbfffffffffffff":"1":"1fbfffffffffffff":"1" + +mbedtls_mpi_core_mla #2039: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xff = (0x1fdfffffffffffff, carry 0x1)/(0x1fdfffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ff":"1fdfffffffffffff":"1":"1fdfffffffffffff":"1" + +mbedtls_mpi_core_mla #2040: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xffff = (0x1fffdfffffffffffff, carry 0x1)/(0x1fffdfffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ffff":"1fffdfffffffffffff":"1":"1fffdfffffffffffff":"1" + +mbedtls_mpi_core_mla #2041: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x10000 = (0x1fffffffffffffffff, carry 0x1)/(0x1fffffffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"10000":"1fffffffffffffffff":"1":"1fffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2042: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xffffffff = (0x1fffffffdfffffffffffff, carry 0x1)/(0x1fffffffdfffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ffffffff":"1fffffffdfffffffffffff":"1":"1fffffffdfffffffffffff":"1" + +mbedtls_mpi_core_mla #2043: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x100000000 = (0x1fffffffffffffffffffff, carry 0x1)/(0x1fffffffffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"100000000":"1fffffffffffffffffffff":"1":"1fffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2044: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xfefefefefefefefdfffffffffffff, carry 0x1)/(0xfefefefefefefefdfffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"fefefefefefefefdfffffffffffff":"1":"fefefefefefefefdfffffffffffff":"1" + +mbedtls_mpi_core_mla #2045: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x8000000000000000 = (0xfffffffffffffffffffffffffffff, carry 0x1)/(0xfffffffffffffffffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"8000000000000000":"fffffffffffffffffffffffffffff":"1":"fffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2046: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xfffffffffffffffe = (0x1fffffffffffffffbfffffffffffff, carry 0x1)/(0x1fffffffffffffffbfffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"fffffffffffffffe":"1fffffffffffffffbfffffffffffff":"1":"1fffffffffffffffbfffffffffffff":"1" + +mbedtls_mpi_core_mla #2047: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2048: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x3 = (0x2fffffffffffffffc, carry 0x1)/(0x2fffffffffffffffc, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"3":"2fffffffffffffffc":"1":"2fffffffffffffffc":"1" + +mbedtls_mpi_core_mla #2049: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xfe = (0xfdffffffffffffff01, carry 0x1)/(0xfdffffffffffffff01, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"fe":"fdffffffffffffff01":"1":"fdffffffffffffff01":"1" + +mbedtls_mpi_core_mla #2050: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xff = (0xfeffffffffffffff00, carry 0x1)/(0xfeffffffffffffff00, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ff":"feffffffffffffff00":"1":"feffffffffffffff00":"1" + +mbedtls_mpi_core_mla #2051: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xffff = (0xfffeffffffffffff0000, carry 0x1)/(0xfffeffffffffffff0000, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffff":"fffeffffffffffff0000":"1":"fffeffffffffffff0000":"1" + +mbedtls_mpi_core_mla #2052: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x10000 = (0xfffffffffffffffeffff, carry 0x1)/(0xfffffffffffffffeffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"10000":"fffffffffffffffeffff":"1":"fffffffffffffffeffff":"1" + +mbedtls_mpi_core_mla #2053: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xffffffff = (0xfffffffeffffffff00000000, carry 0x1)/(0xfffffffeffffffff00000000, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffff":"fffffffeffffffff00000000":"1":"fffffffeffffffff00000000":"1" + +mbedtls_mpi_core_mla #2054: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x100000000 = (0xfffffffffffffffeffffffff, carry 0x1)/(0xfffffffffffffffeffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"100000000":"fffffffffffffffeffffffff":"1":"fffffffffffffffeffffffff":"1" + +mbedtls_mpi_core_mla #2055: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7e8080808080808080, carry 0x1)/(0x7f7f7f7f7f7f7f7e8080808080808080, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e8080808080808080":"1":"7f7f7f7f7f7f7f7e8080808080808080":"1" + +mbedtls_mpi_core_mla #2056: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x8000000000000000 = (0x7fffffffffffffff7fffffffffffffff, carry 0x1)/(0x7fffffffffffffff7fffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff7fffffffffffffff":"1":"7fffffffffffffff7fffffffffffffff":"1" + +mbedtls_mpi_core_mla #2057: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xfffffffffffffffe = (0xfffffffffffffffd0000000000000001, carry 0x1)/(0xfffffffffffffffd0000000000000001, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":"fffffffffffffffd0000000000000001":"1":"fffffffffffffffd0000000000000001":"1" + +mbedtls_mpi_core_mla #2058: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2059: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x3 = (0x2ffffffffffffffff, carry 0x1)/(0x2ffffffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"3":"2ffffffffffffffff":"1":"2ffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2060: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xfe = (0xfdffffffffffffffff, carry 0x1)/(0xfdffffffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fe":"fdffffffffffffffff":"1":"fdffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2061: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xff = (0xfeffffffffffffffff, carry 0x1)/(0xfeffffffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ff":"feffffffffffffffff":"1":"feffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2062: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xffff = (0xfffeffffffffffffffff, carry 0x1)/(0xfffeffffffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ffff":"fffeffffffffffffffff":"1":"fffeffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2063: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x10000 = (0xffffffffffffffffffff, carry 0x1)/(0xffffffffffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"10000":"ffffffffffffffffffff":"1":"ffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2064: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xffffffff = (0xfffffffeffffffffffffffff, carry 0x1)/(0xfffffffeffffffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ffffffff":"fffffffeffffffffffffffff":"1":"fffffffeffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2065: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x100000000 = (0xffffffffffffffffffffffff, carry 0x1)/(0xffffffffffffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"100000000":"ffffffffffffffffffffffff":"1":"ffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2066: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7effffffffffffffff, carry 0x1)/(0x7f7f7f7f7f7f7f7effffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffffffffffff":"1":"7f7f7f7f7f7f7f7effffffffffffffff":"1" + +mbedtls_mpi_core_mla #2067: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x8000000000000000 = (0x7fffffffffffffffffffffffffffffff, carry 0x1)/(0x7fffffffffffffffffffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"8000000000000000":"7fffffffffffffffffffffffffffffff":"1":"7fffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2068: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffffffffffdffffffffffffffff, carry 0x1)/(0xfffffffffffffffdffffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fffffffffffffffe":"fffffffffffffffdffffffffffffffff":"1":"fffffffffffffffdffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2069: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2070: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x3 = (0x369d0369b20369ccf, carry 0x1)/(0x369d0369b20369ccf, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"3":"369d0369b20369ccf":"1":"369d0369b20369ccf":"1" + +mbedtls_mpi_core_mla #2071: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f8a765321f, carry 0x1)/(0x120fedcb9f8a765321f, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fe":"120fedcb9f8a765321f":"1":"120fedcb9f8a765321f":"1" + +mbedtls_mpi_core_mla #2072: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xff = (0x12222222181b222110f, carry 0x1)/(0x12222222181b222110f, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ff":"12222222181b222110f":"1":"12222222181b222110f":"1" + +mbedtls_mpi_core_mla #2073: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xffff = (0x123444443a333d433210f, carry 0x1)/(0x123444443a333d433210f, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ffff":"123444443a333d433210f":"1":"123444443a333d433210f":"1" + +mbedtls_mpi_core_mla #2074: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdeefffff, carry 0x1)/(0x1234567890abcdeefffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"10000":"1234567890abcdeefffff":"1":"1234567890abcdeefffff":"1" + +mbedtls_mpi_core_mla #2075: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xffffffff = (0x123456787e7777766f543210f, carry 0x1)/(0x123456787e7777766f543210f, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ffffffff":"123456787e7777766f543210f":"1":"123456787e7777766f543210f":"1" + +mbedtls_mpi_core_mla #2076: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x100000000 = (0x1234567890abcdeefffffffff, carry 0x1)/(0x1234567890abcdeefffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"100000000":"1234567890abcdeefffffffff":"1":"1234567890abcdeefffffffff":"1" + +mbedtls_mpi_core_mla #2077: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x91107edbd82bde76f67708abaf5ba90f, carry 0x1)/(0x91107edbd82bde76f67708abaf5ba90f, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76f67708abaf5ba90f":"1":"91107edbd82bde76f67708abaf5ba90f":"1" + +mbedtls_mpi_core_mla #2078: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x8000000000000000 = (0x91a2b3c4855e6f77ffffffffffffffff, carry 0x1)/(0x91a2b3c4855e6f77ffffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"8000000000000000":"91a2b3c4855e6f77ffffffffffffffff":"1":"91a2b3c4855e6f77ffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2079: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x1234567890abcdeedb97530edea86421f, carry 0x1)/(0x1234567890abcdeedb97530edea86421f, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fffffffffffffffe":"1234567890abcdeedb97530edea86421f":"1":"1234567890abcdeedb97530edea86421f":"1" + +mbedtls_mpi_core_mla #2080: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2081: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x2fffffffffffffffffcfcfcfcfcfcfcf9, carry 0x1)/(0x2fffffffffffffffffcfcfcfcfcfcfcf9, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"3":"2fffffffffffffffffcfcfcfcfcfcfcf9":"1":"2fffffffffffffffffcfcfcfcfcfcfcf9":"1" + +mbedtls_mpi_core_mla #2082: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xfdffffffffffffffff0101010101010003, carry 0x1)/(0xfdffffffffffffffff0101010101010003, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fe":"fdffffffffffffffff0101010101010003":"1":"fdffffffffffffffff0101010101010003":"1" + +mbedtls_mpi_core_mla #2083: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfefffffffffffffffeffffffffffffff01, carry 0x1)/(0xfefffffffffffffffeffffffffffffff01, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ff":"fefffffffffffffffeffffffffffffff01":"1":"fefffffffffffffffeffffffffffffff01":"1" + +mbedtls_mpi_core_mla #2084: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffefffffffffffffefeffffffffffff0101, carry 0x1)/(0xfffefffffffffffffefeffffffffffff0101, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffefffffffffffffefeffffffffffff0101":"1":"fffefffffffffffffefeffffffffffff0101":"1" + +mbedtls_mpi_core_mla #2085: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffffffefefefefefefefdffff, carry 0x1)/(0xfffffffffffffffffefefefefefefefdffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffffffefefefefefefefdffff":"1":"fffffffffffffffffefefefefefefefdffff":"1" + +mbedtls_mpi_core_mla #2086: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffefffffffffefefefeffffffff01010101, carry 0x1)/(0xfffffffefffffffffefefefeffffffff01010101, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffefffffffffefefefeffffffff01010101":"1":"fffffffefffffffffefefefeffffffff01010101":"1" + +mbedtls_mpi_core_mla #2087: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffffffffffefefefefefefefdffffffff, carry 0x1)/(0xfffffffffffffffffefefefefefefefdffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffffefefefefefefefdffffffff":"1":"fffffffffffffffffefefefefefefefdffffffff":"1" + +mbedtls_mpi_core_mla #2088: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7eff800081018202828504840383028201, carry 0x1)/(0x7f7f7f7f7f7f7f7eff800081018202828504840383028201, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7eff800081018202828504840383028201":"1":"7f7f7f7f7f7f7f7eff800081018202828504840383028201":"1" + +mbedtls_mpi_core_mla #2089: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0x7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff, carry 0x1)/(0x7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff":"1":"7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff":"1" + +mbedtls_mpi_core_mla #2090: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfffffffffffffffdfefefefefefefefe0202020202020203, carry 0x1)/(0xfffffffffffffffdfefefefefefefefe0202020202020203, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffffffffffdfefefefefefefefe0202020202020203":"1":"fffffffffffffffdfefefefefefefefe0202020202020203":"1" + +mbedtls_mpi_core_mla #2091: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2092: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x3 = (0x2ffffffffffffffffffffffffffffffff, carry 0x1)/(0x2ffffffffffffffffffffffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"3":"2ffffffffffffffffffffffffffffffff":"1":"2ffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2093: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xfe = (0xfdffffffffffffffffffffffffffffffff, carry 0x1)/(0xfdffffffffffffffffffffffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fe":"fdffffffffffffffffffffffffffffffff":"1":"fdffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2094: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xff = (0xfeffffffffffffffffffffffffffffffff, carry 0x1)/(0xfeffffffffffffffffffffffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ff":"feffffffffffffffffffffffffffffffff":"1":"feffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2095: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xffff = (0xfffeffffffffffffffffffffffffffffffff, carry 0x1)/(0xfffeffffffffffffffffffffffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffff":"fffeffffffffffffffffffffffffffffffff":"1":"fffeffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2096: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x10000 = (0xffffffffffffffffffffffffffffffffffff, carry 0x1)/(0xffffffffffffffffffffffffffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"10000":"ffffffffffffffffffffffffffffffffffff":"1":"ffffffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2097: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xffffffff = (0xfffffffeffffffffffffffffffffffffffffffff, carry 0x1)/(0xfffffffeffffffffffffffffffffffffffffffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffffffff":"fffffffeffffffffffffffffffffffffffffffff":"1":"fffffffeffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2098: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffff, carry 0x1)/(0xffffffffffffffffffffffffffffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"100000000":"ffffffffffffffffffffffffffffffffffffffff":"1":"ffffffffffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2099: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff, carry 0x1)/(0x7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff":"1":"7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2100: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x7fffffffffffffffffffffffffffffffffffffffffffffff, carry 0x1)/(0x7fffffffffffffffffffffffffffffffffffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"8000000000000000":"7fffffffffffffffffffffffffffffffffffffffffffffff":"1":"7fffffffffffffffffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2101: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffffffffffdffffffffffffffffffffffffffffffff, carry 0x1)/(0xfffffffffffffffdffffffffffffffffffffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffffffffffdffffffffffffffffffffffffffffffff":"1":"fffffffffffffffdffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2102: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2103: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369ccf, carry 0x1)/(0x369d0369b20369cd0369d0369b20369ccf, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369ccf":"1":"369d0369b20369cd0369d0369b20369ccf":"1" + +mbedtls_mpi_core_mla #2104: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a765321f, carry 0x1)/(0x120fedcb9f8a76532320fedcb9f8a765321f, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765321f":"1":"120fedcb9f8a76532320fedcb9f8a765321f":"1" + +mbedtls_mpi_core_mla #2105: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b222110f, carry 0x1)/(0x12222222181b2221122222222181b222110f, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b222110f":"1":"12222222181b2221122222222181b222110f":"1" + +mbedtls_mpi_core_mla #2106: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433210f, carry 0x1)/(0x123444443a333d433334444443a333d433210f, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433210f":"1":"123444443a333d433334444443a333d433210f":"1" + +mbedtls_mpi_core_mla #2107: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdeefffff, carry 0x1)/(0x1234567890abcdef01234567890abcdeefffff, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdeefffff":"1":"1234567890abcdef01234567890abcdeefffff":"1" + +mbedtls_mpi_core_mla #2108: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x123456787e7777767077777887e7777766f543210f, carry 0x1)/(0x123456787e7777767077777887e7777766f543210f, carry 0x1) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"123456787e7777767077777887e7777766f543210f":"1":"123456787e7777767077777887e7777766f543210f":"1" + +mbedtls_mpi_core_mla #2109: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x1234567890abcdef01234567890abcdeefffffffff, carry 0x1)/(0x1234567890abcdef01234567890abcdeefffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdeefffffffff":"1":"1234567890abcdef01234567890abcdeefffffffff":"1" + +mbedtls_mpi_core_mla #2110: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f, carry 0x1)/(0x91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f":"1":"91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f":"1" + +mbedtls_mpi_core_mla #2111: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff, carry 0x1)/(0x91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"1":"91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2112: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0x1234567890abcdeedcba987667b32100edb97530edea86421f, carry 0x1)/(0x1234567890abcdeedcba987667b32100edb97530edea86421f, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdeedcba987667b32100edb97530edea86421f":"1":"1234567890abcdeedcba987667b32100edb97530edea86421f":"1" + +mbedtls_mpi_core_mla #2113: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2114: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 0x3)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 0x3) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"3" + +mbedtls_mpi_core_mla #2115: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0xfe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0xfe) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe" + +mbedtls_mpi_core_mla #2116: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0xff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0xff) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ff" + +mbedtls_mpi_core_mla #2117: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0xffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0xffff) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff" + +mbedtls_mpi_core_mla #2118: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff, carry 0x10000)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff, carry 0x10000) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"10000" + +mbedtls_mpi_core_mla #2119: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0xffffffff) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff" + +mbedtls_mpi_core_mla #2120: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff, carry 0x100000000)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff, carry 0x100000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"100000000" + +mbedtls_mpi_core_mla #2121: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080, carry 0x7f7f7f7f7f7f7f7f)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080, carry 0x7f7f7f7f7f7f7f7f) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #2122: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff, carry 0x8000000000000000)/(0xffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff, carry 0x8000000000000000) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"8000000000000000" + +mbedtls_mpi_core_mla #2123: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001, carry 0xfffffffffffffffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001, carry 0xfffffffffffffffe) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"fffffffffffffffe" + +mbedtls_mpi_core_mla #2124: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2125: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf, carry 0x0)/(0x369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf":"0":"369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf":"0" + +mbedtls_mpi_core_mla #2126: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f, carry 0x0)/(0x120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f":"0":"120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f":"0" + +mbedtls_mpi_core_mla #2127: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222322181b2221122222222181b2221122222222181b2221122222222181b222110f, carry 0x0)/(0x12222322181b2221122222222181b2221122222222181b2221122222222181b222110f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222322181b2221122222222181b2221122222222181b2221122222222181b222110f":"0":"12222322181b2221122222222181b2221122222222181b2221122222222181b222110f":"0" + +mbedtls_mpi_core_mla #2128: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f, carry 0x0)/(0x123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f":"0":"123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f":"0" + +mbedtls_mpi_core_mla #2129: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff, carry 0x0)/(0x1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff":"0":"1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff":"0" + +mbedtls_mpi_core_mla #2130: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f, carry 0x1234)/(0x123456787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f":"1234":"123456787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f":"0" + +mbedtls_mpi_core_mla #2131: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff, carry 0x1234)/(0x1234567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff":"1234":"1234567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff":"0" + +mbedtls_mpi_core_mla #2132: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f, carry 0x91107edbd82)/(0x7edbd82bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f, carry 0x911) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f":"91107edbd82":"7edbd82bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f":"911" + +mbedtls_mpi_core_mla #2133: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff, carry 0x91a2b3c4855)/(0x2b3c4855e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff, carry 0x91a) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"91a2b3c4855":"2b3c4855e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"91a" + +mbedtls_mpi_core_mla #2134: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f, carry 0x1234567890ab)/(0x567890abcdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f, carry 0x1234) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f":"1234567890ab":"567890abcdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f":"1234" + +mbedtls_mpi_core_mla #2135: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2136: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380":"0" + +mbedtls_mpi_core_mla #2137: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9":"0" + +mbedtls_mpi_core_mla #2138: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4":"0" + +mbedtls_mpi_core_mla #2139: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4":"0" + +mbedtls_mpi_core_mla #2140: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff, carry 0x0) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff":"0" + +mbedtls_mpi_core_mla #2141: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4, carry 0x4) +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4":"4" + +mbedtls_mpi_core_mla #2142: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff, carry 0x4) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff":"4" + +mbedtls_mpi_core_mla #2143: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954, carry 0x26d473ca9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954":"26d473ca9" + +mbedtls_mpi_core_mla #2144: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff, carry 0x26fb9683d) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff":"26fb9683d" + +mbedtls_mpi_core_mla #2145: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9, carry 0x4df72d07b) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9":"4df72d07b" + +mbedtls_mpi_core_mla #2146: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2147: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2148: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2149: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2150: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2151: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2152: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2153: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2154: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2155: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2156: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2157: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2158: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":"0" + +mbedtls_mpi_core_mla #2159: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":"0" + +mbedtls_mpi_core_mla #2160: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":"0" + +mbedtls_mpi_core_mla #2161: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":"0" + +mbedtls_mpi_core_mla #2162: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":"0" + +mbedtls_mpi_core_mla #2163: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":"0" + +mbedtls_mpi_core_mla #2164: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":"0" + +mbedtls_mpi_core_mla #2165: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f":"0" + +mbedtls_mpi_core_mla #2166: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #2167: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":"0" + +mbedtls_mpi_core_mla #2168: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2169: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea":"0" + +mbedtls_mpi_core_mla #2170: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4":"0" + +mbedtls_mpi_core_mla #2171: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2":"0" + +mbedtls_mpi_core_mla #2172: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2":"0" + +mbedtls_mpi_core_mla #2173: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0":"0" + +mbedtls_mpi_core_mla #2174: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2":"0" + +mbedtls_mpi_core_mla #2175: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0":"0" + +mbedtls_mpi_core_mla #2176: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2":"0":"1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2":"0" + +mbedtls_mpi_core_mla #2177: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2178: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4":"0":"1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4":"0" + +mbedtls_mpi_core_mla #2179: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2180: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"3":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed":"0" + +mbedtls_mpi_core_mla #2181: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2":"0" + +mbedtls_mpi_core_mla #2182: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1":"0" + +mbedtls_mpi_core_mla #2183: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1":"0" + +mbedtls_mpi_core_mla #2184: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0":"0" + +mbedtls_mpi_core_mla #2185: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1":"0" + +mbedtls_mpi_core_mla #2186: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0" + +mbedtls_mpi_core_mla #2187: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71, carry 0x0)/(0x1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71":"0":"1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71":"0" + +mbedtls_mpi_core_mla #2188: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #2189: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2":"0" + +mbedtls_mpi_core_mla #2190: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2191: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0":"0" + +mbedtls_mpi_core_mla #2192: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0":"0" + +mbedtls_mpi_core_mla #2193: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0":"0" + +mbedtls_mpi_core_mla #2194: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0":"0" + +mbedtls_mpi_core_mla #2195: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0":"0" + +mbedtls_mpi_core_mla #2196: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0" + +mbedtls_mpi_core_mla #2197: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2198: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0":"0" + +mbedtls_mpi_core_mla #2199: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"8000000000000000":"1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2200: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0":"0" + +mbedtls_mpi_core_mla #2201: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2202: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0":"0" + +mbedtls_mpi_core_mla #2203: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0":"0" + +mbedtls_mpi_core_mla #2204: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0":"0" + +mbedtls_mpi_core_mla #2205: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0":"0" + +mbedtls_mpi_core_mla #2206: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2207: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0":"0" + +mbedtls_mpi_core_mla #2208: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"100000000":"1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2209: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0":"0":"1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0":"0" + +mbedtls_mpi_core_mla #2210: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2211: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0":"0" + +mbedtls_mpi_core_mla #2212: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2213: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"3":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed":"0":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed":"0" + +mbedtls_mpi_core_mla #2214: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fe":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2":"0" + +mbedtls_mpi_core_mla #2215: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1":"0":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1":"0" + +mbedtls_mpi_core_mla #2216: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffff":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1":"0":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1":"0" + +mbedtls_mpi_core_mla #2217: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"10000":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0":"0" + +mbedtls_mpi_core_mla #2218: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffffffff":"1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1":"0" + +mbedtls_mpi_core_mla #2219: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0":"0" + +mbedtls_mpi_core_mla #2220: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71, carry 0x0)/(0x1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0" + +mbedtls_mpi_core_mla #2221: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #2222: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2":"0":"1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2":"0" + +mbedtls_mpi_core_mla #2223: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2224: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2225: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2226: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2227: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2228: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"10000":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2229: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2230: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"100000000":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2231: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2232: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2233: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2234: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2235: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #2236: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110":"0":"1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110":"0" + +mbedtls_mpi_core_mla #2237: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000":"0":"1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000":"0" + +mbedtls_mpi_core_mla #2238: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000":"0" + +mbedtls_mpi_core_mla #2239: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #2240: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffffffff":"1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000":"0":"1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000":"0" + +mbedtls_mpi_core_mla #2241: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #2242: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800, carry 0x0)/(0x1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800":"0":"1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800":"0" + +mbedtls_mpi_core_mla #2243: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"8000000000000000":"1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2244: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110, carry 0x0)/(0x1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110":"0":"1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110":"0" + +mbedtls_mpi_core_mla #2245: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2246: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea, carry 0x0)/(0x1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea":"0":"1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea":"0" + +mbedtls_mpi_core_mla #2247: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4, carry 0x0)/(0x1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4":"0":"1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4":"0" + +mbedtls_mpi_core_mla #2248: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0x1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2, carry 0x0)/(0x1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2":"0":"1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2":"0" + +mbedtls_mpi_core_mla #2249: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0x1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2, carry 0x0)/(0x1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2":"0":"1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2":"0" + +mbedtls_mpi_core_mla #2250: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0x1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0, carry 0x0)/(0x1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0":"0":"1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0":"0" + +mbedtls_mpi_core_mla #2251: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0x1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2, carry 0x0)/(0x1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2":"0":"1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2":"0" + +mbedtls_mpi_core_mla #2252: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0x1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0, carry 0x0)/(0x1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0":"0":"1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0":"0" + +mbedtls_mpi_core_mla #2253: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2, carry 0x0)/(0x1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2":"0":"1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2":"0" + +mbedtls_mpi_core_mla #2254: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0x1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0, carry 0x0)/(0x1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0":"0":"1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2255: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0x1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4, carry 0x0)/(0x1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4":"0":"1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4":"0" + +mbedtls_mpi_core_mla #2256: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2257: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 = (0x1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"3":"1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2258: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe = (0x1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fe":"1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2259: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff = (0x1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ff":"1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2260: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff = (0x1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffff":"1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2261: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 = (0x1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"10000":"1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2262: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff = (0x1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2263: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 = (0x1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2264: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0":"0":"1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2265: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2266: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0x1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0":"0":"1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2267: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2268: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0, carry 0x0)/(0x1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0":"0":"1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #2269: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110, carry 0x0)/(0x1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110":"0":"1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110":"0" + +mbedtls_mpi_core_mla #2270: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000, carry 0x0)/(0x1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000":"0" + +mbedtls_mpi_core_mla #2271: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #2272: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #2273: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000, carry 0x0)/(0x1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000":"0":"1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #2274: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0, carry 0x0)/(0x1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0":"0":"1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #2275: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800, carry 0x0)/(0x1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800":"0":"1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800":"0" + +mbedtls_mpi_core_mla #2276: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0, carry 0x0)/(0x1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"0":"1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2277: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0x1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x0)/(0x1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110":"0":"1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110":"0" + +mbedtls_mpi_core_mla #2278: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2279: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed, carry 0x0)/(0x1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"0":"1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"0" + +mbedtls_mpi_core_mla #2280: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2, carry 0x0)/(0x1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"0":"1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"0" + +mbedtls_mpi_core_mla #2281: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1, carry 0x0)/(0x1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"0":"1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"0" + +mbedtls_mpi_core_mla #2282: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1, carry 0x0)/(0x11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"0":"11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"0" + +mbedtls_mpi_core_mla #2283: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0, carry 0x0)/(0x11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"0":"11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"0" + +mbedtls_mpi_core_mla #2284: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1, carry 0x1)/(0x100001233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"1":"100001233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"0" + +mbedtls_mpi_core_mla #2285: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0, carry 0x1)/(0x100001234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"1":"100001234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"0" + +mbedtls_mpi_core_mla #2286: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f":"7f7f7f7f7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71":"0" + +mbedtls_mpi_core_mla #2287: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0, carry 0x80000000)/(0x8000000000001234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"80000000":"8000000000001234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #2288: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2, carry 0x100000000)/(0x1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2, carry 0x1) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"100000000":"1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"1" + +mbedtls_mpi_core_mla #2289: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2290: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0, carry 0x0)/(0x48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0":"0":"48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #2291: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221110, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0" + +mbedtls_mpi_core_mla #2292: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000":"0" + +mbedtls_mpi_core_mla #2293: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #2294: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0, carry 0x0)/(0x123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0":"0":"123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #2295: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #2296: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x5678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0, carry 0x1234)/(0x12345678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"5678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0":"1234":"12345678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #2297: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800, carry 0x91107edbd82)/(0x7edbd82bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800, carry 0x911) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800":"91107edbd82":"7edbd82bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800":"911" + +mbedtls_mpi_core_mla #2298: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0, carry 0x91a2b3c4855)/(0x2b3c4855e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0, carry 0x91a) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"91a" + +mbedtls_mpi_core_mla #2299: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234567890ab)/(0x567890abcdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110":"1234567890ab":"567890abcdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110":"1234" + +mbedtls_mpi_core_mla #2300: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2301: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271":"0" + +mbedtls_mpi_core_mla #2302: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a":"0" + +mbedtls_mpi_core_mla #2303: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5":"0" + +mbedtls_mpi_core_mla #2304: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5":"0" + +mbedtls_mpi_core_mla #2305: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0, carry 0x0) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0":"0" + +mbedtls_mpi_core_mla #2306: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5, carry 0x4) +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5":"4" + +mbedtls_mpi_core_mla #2307: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0, carry 0x4) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0":"4" + +mbedtls_mpi_core_mla #2308: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845, carry 0x26d473ca9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845":"26d473ca9" + +mbedtls_mpi_core_mla #2309: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0, carry 0x26fb9683d) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0":"26fb9683d" + +mbedtls_mpi_core_mla #2310: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a, carry 0x4df72d07b) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a":"4df72d07b" + +mbedtls_mpi_core_mla #2311: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2312: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2313: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2314: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2315: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2316: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2317: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2318: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2319: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2320: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2321: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2322: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2323: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":"0" + +mbedtls_mpi_core_mla #2324: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":"0" + +mbedtls_mpi_core_mla #2325: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":"0" + +mbedtls_mpi_core_mla #2326: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":"0" + +mbedtls_mpi_core_mla #2327: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":"0" + +mbedtls_mpi_core_mla #2328: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":"0" + +mbedtls_mpi_core_mla #2329: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":"0" + +mbedtls_mpi_core_mla #2330: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa":"0" + +mbedtls_mpi_core_mla #2331: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2332: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":"0" + +mbedtls_mpi_core_mla #2333: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2334: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125":"0" + +mbedtls_mpi_core_mla #2335: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f":"0" + +mbedtls_mpi_core_mla #2336: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d":"0" + +mbedtls_mpi_core_mla #2337: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d":"0" + +mbedtls_mpi_core_mla #2338: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b":"0" + +mbedtls_mpi_core_mla #2339: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d":"0" + +mbedtls_mpi_core_mla #2340: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b":"0" + +mbedtls_mpi_core_mla #2341: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d":"0" + +mbedtls_mpi_core_mla #2342: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2343: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f":"0" + +mbedtls_mpi_core_mla #2344: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2345: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128":"0" + +mbedtls_mpi_core_mla #2346: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d":"0" + +mbedtls_mpi_core_mla #2347: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c":"0" + +mbedtls_mpi_core_mla #2348: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c":"0" + +mbedtls_mpi_core_mla #2349: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b":"0" + +mbedtls_mpi_core_mla #2350: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c":"0" + +mbedtls_mpi_core_mla #2351: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0" + +mbedtls_mpi_core_mla #2352: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac":"0" + +mbedtls_mpi_core_mla #2353: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2354: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d":"0" + +mbedtls_mpi_core_mla #2355: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2356: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b":"0" + +mbedtls_mpi_core_mla #2357: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b":"0" + +mbedtls_mpi_core_mla #2358: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b":"0" + +mbedtls_mpi_core_mla #2359: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b":"0" + +mbedtls_mpi_core_mla #2360: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b":"0" + +mbedtls_mpi_core_mla #2361: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0" + +mbedtls_mpi_core_mla #2362: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2363: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b":"0" + +mbedtls_mpi_core_mla #2364: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2365: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b":"0" + +mbedtls_mpi_core_mla #2366: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2367: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b":"0" + +mbedtls_mpi_core_mla #2368: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b":"0" + +mbedtls_mpi_core_mla #2369: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b":"0" + +mbedtls_mpi_core_mla #2370: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b":"0" + +mbedtls_mpi_core_mla #2371: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2372: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b":"0" + +mbedtls_mpi_core_mla #2373: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2374: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b":"0" + +mbedtls_mpi_core_mla #2375: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2376: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b":"0" + +mbedtls_mpi_core_mla #2377: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2378: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128":"0" + +mbedtls_mpi_core_mla #2379: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d":"0" + +mbedtls_mpi_core_mla #2380: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c":"0" + +mbedtls_mpi_core_mla #2381: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c":"0" + +mbedtls_mpi_core_mla #2382: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b":"0" + +mbedtls_mpi_core_mla #2383: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c":"0" + +mbedtls_mpi_core_mla #2384: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b":"0" + +mbedtls_mpi_core_mla #2385: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac":"0" + +mbedtls_mpi_core_mla #2386: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2387: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d":"0" + +mbedtls_mpi_core_mla #2388: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2389: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2390: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2391: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2392: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2393: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2394: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2395: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2396: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2397: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2398: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2399: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2400: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb":"0" + +mbedtls_mpi_core_mla #2401: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b":"0" + +mbedtls_mpi_core_mla #2402: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b":"0" + +mbedtls_mpi_core_mla #2403: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b":"0" + +mbedtls_mpi_core_mla #2404: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b":"0" + +mbedtls_mpi_core_mla #2405: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b":"0" + +mbedtls_mpi_core_mla #2406: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b":"0" + +mbedtls_mpi_core_mla #2407: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b":"0" + +mbedtls_mpi_core_mla #2408: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2409: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b":"0" + +mbedtls_mpi_core_mla #2410: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2411: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25":"0" + +mbedtls_mpi_core_mla #2412: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f":"0" + +mbedtls_mpi_core_mla #2413: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d":"0" + +mbedtls_mpi_core_mla #2414: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d":"0" + +mbedtls_mpi_core_mla #2415: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b":"0" + +mbedtls_mpi_core_mla #2416: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d":"0" + +mbedtls_mpi_core_mla #2417: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b":"0" + +mbedtls_mpi_core_mla #2418: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d":"0" + +mbedtls_mpi_core_mla #2419: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2420: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f":"0" + +mbedtls_mpi_core_mla #2421: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2422: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2423: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2424: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2425: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2426: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2427: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2428: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2429: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2430: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2431: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2432: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2433: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb":"0" + +mbedtls_mpi_core_mla #2434: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b":"0" + +mbedtls_mpi_core_mla #2435: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b":"0" + +mbedtls_mpi_core_mla #2436: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b":"0" + +mbedtls_mpi_core_mla #2437: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0" + +mbedtls_mpi_core_mla #2438: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b":"0" + +mbedtls_mpi_core_mla #2439: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0" + +mbedtls_mpi_core_mla #2440: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b":"0" + +mbedtls_mpi_core_mla #2441: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2442: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b":"0" + +mbedtls_mpi_core_mla #2443: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2444: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"0" + +mbedtls_mpi_core_mla #2445: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"0" + +mbedtls_mpi_core_mla #2446: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"0" + +mbedtls_mpi_core_mla #2447: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"0" + +mbedtls_mpi_core_mla #2448: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"0" + +mbedtls_mpi_core_mla #2449: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"0" + +mbedtls_mpi_core_mla #2450: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"0" + +mbedtls_mpi_core_mla #2451: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac":"0" + +mbedtls_mpi_core_mla #2452: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2453: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"0" + +mbedtls_mpi_core_mla #2454: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2455: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb":"0" + +mbedtls_mpi_core_mla #2456: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b":"0" + +mbedtls_mpi_core_mla #2457: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b":"0" + +mbedtls_mpi_core_mla #2458: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b":"0" + +mbedtls_mpi_core_mla #2459: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0" + +mbedtls_mpi_core_mla #2460: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b":"0" + +mbedtls_mpi_core_mla #2461: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0" + +mbedtls_mpi_core_mla #2462: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b":"0" + +mbedtls_mpi_core_mla #2463: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2464: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b, carry 0x0) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b":"0" + +mbedtls_mpi_core_mla #2465: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2466: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0x137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac, carry 0x0)/(0x137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac":"0":"137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac":"0" + +mbedtls_mpi_core_mla #2467: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0" + +mbedtls_mpi_core_mla #2468: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00":"0" + +mbedtls_mpi_core_mla #2469: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0" + +mbedtls_mpi_core_mla #2470: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b, carry 0x0)/(0x4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b, carry 0x0) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b":"0":"4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b":"0" + +mbedtls_mpi_core_mla #2471: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000, carry 0x4) +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4" + +mbedtls_mpi_core_mla #2472: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b, carry 0x4)/(0xdf72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b, carry 0x4) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b":"4":"df72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b":"4" + +mbedtls_mpi_core_mla #2473: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80, carry 0x26d473ca9)/(0xd441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80, carry 0x26d473ca9) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80":"26d473ca9":"d441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80":"26d473ca9" + +mbedtls_mpi_core_mla #2474: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b, carry 0x26fb9683d)/(0xa5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b, carry 0x26fb9683d) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b":"26fb9683d":"a5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b":"26fb9683d" + +mbedtls_mpi_core_mla #2475: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5, carry 0x4df72d07b)/(0x4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5, carry 0x4df72d07b) +depends_on:MBEDTLS_HAVE_INT64 +mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5":"4df72d07b":"4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5":"4df72d07b" + MPI Selftest depends_on:MBEDTLS_SELF_TEST mpi_selftest: diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index cfd8e0466b..20cc34465e 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1903,6 +1903,94 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mbedtls_mpi_core_mla( char * input_d, char * input_s, char * input_b, + char * input_X4, char * input_cy4, + char * input_X8, char * input_cy8 ) +{ + /* We are testing d += s * b; d, s are MPIs, b is a scalar. + * + * However, we encode b as an MPI in the .data file for ease of handling. + * + * We also have the different results for sizeof(mbedtls_mpi_uint) == 4 or 8. + */ + mbedtls_mpi d, s, b, X4, X8, cy4, cy8; + mbedtls_mpi_uint *da = NULL; + mbedtls_mpi_uint *Xa = NULL; + + mbedtls_mpi_init( &d ); + mbedtls_mpi_init( &s ); + mbedtls_mpi_init( &b ); + mbedtls_mpi_init( &X4 ); + mbedtls_mpi_init( &X8 ); + mbedtls_mpi_init( &cy4 ); + mbedtls_mpi_init( &cy8 ); + + TEST_EQUAL( mbedtls_test_read_mpi( &d, input_d ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &s, input_s ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &b, input_b ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &X4, input_X4 ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &cy4, input_cy4 ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &X8, input_X8 ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &cy8, input_cy8 ), 0 ); + + /* The MPI encoding of scalar b must be only 1 limb */ + TEST_EQUAL( b.n, 1 ); + + /* We only need to work with X4 or X8, and cy4 or cy8, depending on sizeof(mbedtls_mpi_uint) */ + mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; + mbedtls_mpi *cy = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &cy4 : &cy8; + + /* The carry should only have one limb */ + TEST_EQUAL( cy->n, 1 ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( d.s, 1 ); + TEST_EQUAL( s.s, 1 ); + TEST_EQUAL( b.s, 1 ); + TEST_EQUAL( X->s, 1 ); + TEST_EQUAL( cy->s, 1 ); + + /* Get the (max) number of limbs we will need */ + size_t limbs = ( d.n < s.n ) ? s.n : d.n; + + /* The result shouldn't have more limbs than the longest input */ + TEST_ASSERT( X->n <= limbs ); + + /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ + da = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); + Xa = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); + + TEST_ASSERT( da != NULL ); + TEST_ASSERT( Xa != NULL ); + + /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as + * processed by mbedtls_mpi_core_add_if()) are little endian, we can just + * copy what we have as long as MSBs are 0 (which they are from calloc()) + */ + memcpy( da, d.p, d.n * sizeof(mbedtls_mpi_uint) ); + memcpy( Xa, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + + /* 1a) d += s * b => we should get the correct carry */ + TEST_EQUAL( mbedtls_mpi_core_mla( da, limbs, s.p, s.n, *b.p ), *cy->p ); + + /* 1b) d += s * b => we should get the correct result */ + TEST_EQUAL( memcmp( da, Xa, limbs * sizeof(mbedtls_mpi_uint) ), 0 ); + +exit: + mbedtls_free( da ); + mbedtls_free( Xa ); + + mbedtls_mpi_free( &cy4 ); + mbedtls_mpi_free( &cy8 ); + mbedtls_mpi_free( &X4 ); + mbedtls_mpi_free( &X8 ); + mbedtls_mpi_free( &b ); + mbedtls_mpi_free( &s ); + mbedtls_mpi_free( &d ); +} +/* END_CASE */ + /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ void mpi_selftest( ) { From 79b70f63947b0eb6ec09cfca6d130ce5ea9b5648 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 17 Aug 2022 06:17:00 +0100 Subject: [PATCH 0031/1028] Make a public version of mpi_montg_init() in bignum_new.c and add unit tests The unit tests were created by capturing runs of the existing function during execution of existing unit tests. Signed-off-by: Tom Cosgrove --- library/bignum.c | 11 +------ library/bignum_core.h | 13 +++++++- library/bignum_new.c | 15 ++++++++++ tests/suites/test_suite_mpi.data | 45 ++++++++++++++++++++++++++++ tests/suites/test_suite_mpi.function | 35 ++++++++++++++++++++++ 5 files changed, 108 insertions(+), 11 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 931d34df44..98bea731e5 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1550,16 +1550,7 @@ int mbedtls_mpi_mod_int( mbedtls_mpi_uint *r, const mbedtls_mpi *A, mbedtls_mpi_ */ static void mpi_montg_init( mbedtls_mpi_uint *mm, const mbedtls_mpi *N ) { - mbedtls_mpi_uint x, m0 = N->p[0]; - unsigned int i; - - x = m0; - x += ( ( m0 + 2 ) & 4 ) << 1; - - for( i = biL; i >= 8; i /= 2 ) - x *= ( 2 - ( m0 * x ) ); - - *mm = ~x + 1; + *mm = mbedtls_mpi_montg_init( N->p[0] ); } /** Montgomery multiplication: A = A * B * R^-1 mod N (HAC 14.36) diff --git a/library/bignum_core.h b/library/bignum_core.h index 77364670a0..02ac55d1b3 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -171,7 +171,7 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, * This must be odd and have exactly \p n limbs. * \param[in] n The number of limbs in \p X, \p A, \p N. * \param mm The Montgomery constant for \p N: -N^-1 mod 2^ciL. - * This can be calculated by `mpi_montg_init()`. + * This can be calculated by `mbedtls_mpi_montg_init()`. * \param[in,out] T Temporary storage of size at least 2*n+1 limbs. * Its initial content is unused and * its final content is indeterminate. @@ -182,6 +182,17 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *N, size_t n, mbedtls_mpi_uint mm, mbedtls_mpi_uint *T ); +/** + * \brief Calculate initialisation value for fast Montgomery modular + * multiplication + * + * \param m0 The least-significant mbedtls_mpi_uint from the modulus, which + * must be odd + * + * \return The initialisation value for fast Montgomery modular multiplication + */ +mbedtls_mpi_uint mbedtls_mpi_montg_init( mbedtls_mpi_uint m0 ); + /** * \brief Perform a known-size multiply accumulate operation: d += b * s * diff --git a/library/bignum_new.c b/library/bignum_new.c index 024348ad4a..d275fe81f7 100644 --- a/library/bignum_new.c +++ b/library/bignum_new.c @@ -56,6 +56,21 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, (void) mbedtls_mpi_core_add_if( X, N, n, ( carry < borrow ) ); } +/* + * Fast Montgomery initialization (thanks to Tom St Denis). + */ +mbedtls_mpi_uint mbedtls_mpi_montg_init( mbedtls_mpi_uint m0 ) +{ + mbedtls_mpi_uint x = m0; + + x += ( ( m0 + 2 ) & 4 ) << 1; + + for( unsigned int i = biL; i >= 8; i /= 2 ) + x *= ( 2 - ( m0 * x ) ); + + return( ~x + 1 ); +} + mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len, const mbedtls_mpi_uint *s, size_t s_len, mbedtls_mpi_uint b ) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index de7862e282..a7a074f63a 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -15263,6 +15263,51 @@ mbedtls_mpi_core_mla #2475: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf0 depends_on:MBEDTLS_HAVE_INT64 mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5":"4df72d07b":"4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5":"4df72d07b" +mbedtls_mpi_montg_init #1 +mbedtls_mpi_montg_init:"000000000000001d":"cb08d3dcb08d3dcb" + +mbedtls_mpi_montg_init #2 +mbedtls_mpi_montg_init:"0000000000000009":"71c71c71c71c71c7" + +mbedtls_mpi_montg_init #3 +mbedtls_mpi_montg_init:"000000000001869f":"34d76bc8e5e3eaa1" + +mbedtls_mpi_montg_init #4 +mbedtls_mpi_montg_init:"00000000000080000000000000000001":"ffffffffffffffff" + +mbedtls_mpi_montg_init #5 +mbedtls_mpi_montg_init:"0000000000a1ffffffffffffffffffff":"0000000000000001" + +mbedtls_mpi_montg_init #6 +mbedtls_mpi_montg_init:"00000000000257ffffffffffffffffff":"0000000000000001" + +mbedtls_mpi_montg_init #7 +mbedtls_mpi_montg_init:"b91ba63180c726fbd57786f27f1ede97a3b40c59a7fcfb5898f076e9af57028d":"32edc7e1ac2e6fbb" + +mbedtls_mpi_montg_init #8 +mbedtls_mpi_montg_init:"b3a119602ee213cde28581ecd892e0f592a338655dce4ca88054b3d124d0e561":"e41cfb909805815f" + +mbedtls_mpi_montg_init #9 +mbedtls_mpi_montg_init:"0284139ea19c139ebe09a8111926aaa39a2c2be12ed487a809d3cb5bc55854725b4cdcb5734c58f90b2f60d99cc1950cdbc8d651793e93c9c6f0ead752500a32c56c62082912b66132b2a6aa42ada923e1ad22ceb7ba0123":"c02e2164b293c975" + +mbedtls_mpi_montg_init #10 +mbedtls_mpi_montg_init:"00000000000000011a9351d2d32ccd568e75bf8b4ebbb2a36be691b55832edac662ff79803df8af525fba453068be16ac3920bcc1b468f8f7fe786e0fa4ecbabcad31e5e3b05def802eb8600deaf11ef452487db878df20a80606e4bb6a163b83895d034cc8b53dbcd005be42ffdd2ce99bed06089a0b79d":"ffec8978c055794b" + +mbedtls_mpi_montg_init #11 +mbedtls_mpi_montg_init:"eeaf0ab9adb38dd69c33f80afa8fc5e86072618775ff3c0b9ea2314c9c256576d674df7496ea81d3383b4813d692c6e0e0d5d8e250b98be48e495c1d6089dad15dc7d7b46154d6b6ce8ef4ad69b15d4982559b297bcf1885c529f566660e57ec68edbc3c05726cc02fd4cbf4976eaa9afd5138fe8376435b9fc61d2fc0eb06e3":"7b07a0b0379b9135" + +mbedtls_mpi_montg_init #12 +mbedtls_mpi_montg_init:"00000007a364ab3de755f924642bd5273524234f78395da1ed9098f39af4fe248288b0cb7f1c27214588969479d7dc9f0d327b5544dd4c095aa1fa271df421fe9ee460855cc8423d223e2c85dc793f6babdca7fc804ea1f408f867db053bfd98c45085ea5d805c78d2863bacdfcaf4c6147ebb74a9056045074785714c0b84ed":"8f54b233c070871b" + +mbedtls_mpi_montg_init #13 +mbedtls_mpi_montg_init:"e2df85c83ee8463b3af26805791cc0b1ba1af89564e887a63d5ba18ea72fb593b664cf8ace78241ea3109b7644510e02324a5c1e9a85daada3c383759d7678ce8d8886b51a3237dc84b543de4f843c77fc77ba08ef90e7e96ba622478f6b96daa3e9b8511f36279fb0120ef93bad2090e7878346fe4ae29ad61be48b6835e8407d0849422e05c7a4d1e02322f2675056d73d4c5a1ab376bfaccfd61ff7d64b715c9525a7ed8dcda1144f8722c30d12ba3d95221d897edc825a1598a645e2c457":"b777a905d9239899" + +mbedtls_mpi_montg_init #14 +mbedtls_mpi_montg_init:"baea2d65939296fc2536f18f2a4042a741f33088ecd5000e76c67a466e7a1e696f8ee9a15497168b3a2b597799dc9475909ebbc64b96f233430c6aa3e4a86e9352b0230081502da09ef41dc0a164a1c6a31bd1338e359a28c78ef50c89f06a46b46a27d7245bba7468334625687201d62ef084de4c5190dfe70c14a318204492de6edd138e14e9337fda739dcadd0212302db7770de28d8c5c79b6a6b5f927e656e157cd7e41204ec39731fe3608ecd4b885a194647fe7f02b74639cc76cdf03":"827ef0810f71fc55" + +mbedtls_mpi_montg_init #15 +mbedtls_mpi_montg_init:"bf741f75e28a44e271cf43e68dbadd23c72d2f2e1fc78a6d6aaaadf2ccbf26c9a232aff5b3f3f29323b114f3018144ed9438943e07820e222137d3bb229b61671e61f75f6021a26436df9e669929fa392df021f105d2fce0717468a522018721ccde541b9a7b558128419f457ef33a5753f00c20c2d709727eef6278c55b278b10abe1d13e538514128b5dcb7bfd015e0fdcb081555071813974135d5ab5000630a94f5b0f4021a504ab4f3df2403e6140b9939f8bbe714635f5cff10744be03":"aab901da57bba355" + MPI Selftest depends_on:MBEDTLS_SELF_TEST mpi_selftest: diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 20cc34465e..26d1553bae 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1991,6 +1991,41 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mbedtls_mpi_montg_init( char * input_N, char * input_mm ) +{ + mbedtls_mpi N, mm; + + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &mm ); + + TEST_EQUAL( mbedtls_test_read_mpi( &N, input_N ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &mm, input_mm ), 0 ); + + /* The MPI encoding of mm should be 1 limb (sizeof(mbedtls_mpi_uint) == 8) or + * 2 limbs (sizeof(mbedtls_mpi_uint) == 4). + * + * The data file contains the expected result for sizeof(mbedtls_mpi_uint) == 8; + * for sizeof(mbedtls_mpi_uint) == 4 it's just the LSW of this. + */ + TEST_ASSERT( mm.n == 1 || mm.n == 2); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( N.s, 1 ); + TEST_EQUAL( mm.s, 1 ); + + /* mbedtls_mpi_montg_init() only returns a result, no error possible */ + mbedtls_mpi_uint result = mbedtls_mpi_montg_init( N.p[0] ); + + /* Check we got the correct result */ + TEST_EQUAL( result, mm.p[0] ); + +exit: + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &mm ); +} +/* END_CASE */ + /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ void mpi_selftest( ) { From f334d9622b4c327c56ff081c39fd4b5cb3a92753 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 17 Aug 2022 06:29:32 +0100 Subject: [PATCH 0032/1028] Add unit tests for bignum_new.c:mbedtls_mpi_core_montmul() These tests are also used to test the existing mpi_montmul() function (which too is renamed with mbedtls_ prefix). Some of these are replays of captured invocations during unit test runs. Others are generated. They use a mixture of primes and odd numbers for N, with four randomly-generated cases for each N. The lines in the .data file were generated by the following script ``` #!/usr/bin/env perl # # mpi-test-core-montmul.pl - generate MPI tests in Perl for mbedtls_mpi_core_montmul() # use strict; use warnings; use Math::BigInt; use sort 'stable'; generate_tests(); sub generate_tests { generate_mbedtls_mpi_core_montmul(); } # XXX mbedtls_mpi_grow() and mbedtls_mpi_shrink() work in little-endian manner # \brief Montgomery multiplication: X = A * B * R^-1 mod N (HAC 14.36) # # \param[out] X The destination MPI, as a big endian array of length \p n. # On successful completion, X contains the result of # the multiplication A * B * R^-1 mod N where # R = (2^ciL)^n. # \param[in] A Big endian presentation of first operand. # Must have exactly \p n limbs. # \param[in] B Big endian presentation of second operand. # \param[in] B_len The number of limbs in \p B. # \param[in] N Big endian presentation of the modulus. # This must be odd and have exactly \p n limbs. # \param[in] n The number of limbs in \p X, \p A, \p N. # \param mm The Montgomery constant for \p N: -N^-1 mod 2^ciL. # This can be calculated by `mbedtls_mpi_montg_init()`. # \param[in,out] T Temporary storage of size at least 2*n+1 limbs. # Its initial content is unused and # its final content is indeterminate. # # void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, # const mbedtls_mpi_uint *A, # const mbedtls_mpi_uint *B, size_t B_len, # const mbedtls_mpi_uint *N, size_t n, # mbedtls_mpi_uint mm, mbedtls_mpi_uint *T ); sub generate_mbedtls_mpi_core_montmul { my $sub_name = (caller(0))[3]; # e.g. main::generate_mbedtls_mpi_sub_mpi my ($ignore, $test_name) = split("main::generate_", $sub_name); my @cases = (); my @replay = ( # [ limbsAN_4, limbsB_4, limbsAN_8, limbsB_8, hexA, hexB, hexN, hexExpected ] [ 2, 1, 1, 1, "19", "1", "1D", "18" ], [ 2, 1, 1, 1, "7", "1", "9", "1" ], [ 2, 1, 1, 1, "4", "1", "9", "7" ], #montmul: #A.n = 3 #A.p = FFFE000000008004 # 0000000000007FFC # 0000000000000000 #B.n = 1 #B.p = 0000000000000001 #N.n = 3 #N.p = 0000000000000001 # 0000000000008000 # 0000000000000000 #mm = FFFFFFFFFFFFFFFF #res.n = 3 #res.p = EFFF9FFF3FFF8001 # 0000000000007FFF # 0000000000000000 #[ "MBEDTLS_HAVE_INT32", 3, 1, 3, "7FFCFFFE000000008004", "1", "80000000000000000001", "2000C001800100000000" ], #[ "MBEDTLS_HAVE_INT64", 3, 1, 3, "7FFCFFFE000000008004", "1", "80000000000000000001", "7FFFEFFF9FFF3FFF8001" ], [ 12, 1, 6, 1, "3C246D0E059A93A266288A7718419EC741661B474C58C032C5EDAF92709402B07CC8C7CE0B781C641A1EA8DB2F4343", "1", "66A198186C18C10B2F5ED9B522752A9830B69916E535C8F047518A889A43A594B6BED27A168D31D4A52F88925AA8F5", "36E139AEA55215609D2816998ED020BBBD96C37890F65171D948E9BC7CBAA4D9325D24D6A3C12710F10A09FA08AB87" ], #A.n = 5 #A.p = 340E918CE03C6211 # 9888165CB75BFA1F # FCCE74B999E470CA # 1E442976B0E63D64 # 0000000000000000 #B.n = 1 #B.p = 0000000000000001 #N.n = 4 #N.p = 8054B3D124D0E561 # 92A338655DCE4CA8 # E28581ECD892E0F5 # B3A119602EE213CD #mm = E41CFB909805815F #res.n = 5 #res.p = 0E65383B59F8CA5B # B103B17A2EEF84E6 # F23BC08FD0801C55 # 38EB7749F4A5DA80 # 0000000000000000 [ 8, 1, 4, 1, "1E442976B0E63D64FCCE74B999E470CA9888165CB75BFA1F340E918CE03C6211", "1", "B3A119602EE213CDE28581ECD892E0F592A338655DCE4CA88054B3D124D0E561", "38EB7749F4A5DA80F23BC08FD0801C55B103B17A2EEF84E60E65383B59F8CA5B" ], #A.n = 12 #A.p = 542306BCA7A2366E # D2780B2B4968F8D8 # CBDFC696104353E4 # 7776839B0AC9DB23 # B7E125BE407E7415 # D711917FD7537E13 # 82392870D6D08F87 # D83ED5FA38560FFB # 9994B0FED1D2A8D3 # 63C65413F57249F5 # 007CF5AC97304E0B # 0000000000000000 #B.n = 1 #B.p = 0000000000000001 #N.n = 11 #N.p = E1AD22CEB7BA0123 # 32B2A6AA42ADA923 # C56C62082912B661 # C6F0EAD752500A32 # DBC8D651793E93C9 # 0B2F60D99CC1950C # 5B4CDCB5734C58F9 # 09D3CB5BC5585472 # 9A2C2BE12ED487A8 # BE09A8111926AAA3 # 0284139EA19C139E #mm = C02E2164B293C975 #res.n = 12 #res.p = F6B14471839D8D31 # FF843ED3B17C44D7 # 1C3D52C7CB9E0BA6 # 82F3590C866BF9F8 # 49C371DB2A4FB164 # 964ECA2527A031ED # FAACEC6982E0E5BE # 1F70C4CB2426AEE1 # 2C92B02886267AB4 # 0630B14113BEAD74 # 01E4426A3D6C425F # 0000000000000000 [ 22, 1, 11, 1, "7CF5AC97304E0B63C65413F57249F59994B0FED1D2A8D3D83ED5FA38560FFB82392870D6D08F87D711917FD7537E13B7E125BE407E74157776839B0AC9DB23CBDFC696104353E4D2780B2B4968F8D8542306BCA7A2366E", "1", "284139EA19C139EBE09A8111926AAA39A2C2BE12ED487A809D3CB5BC55854725B4CDCB5734C58F90B2F60D99CC1950CDBC8D651793E93C9C6F0EAD752500A32C56C62082912B66132B2A6AA42ADA923E1AD22CEB7BA0123", "1E4426A3D6C425F0630B14113BEAD742C92B02886267AB41F70C4CB2426AEE1FAACEC6982E0E5BE964ECA2527A031ED49C371DB2A4FB16482F3590C866BF9F81C3D52C7CB9E0BA6FF843ED3B17C44D7F6B14471839D8D31" ], ); for my $c (@replay) { # For all of these, la4 = 2 * la8, so $xh4 == $xh8 (so we just have $xh) my ($la4, $lb4, $la8, $lb8, $ah, $bh, $nh, $xh) = @$c; # limbs(A), limbs(B), limbs(N), (A, B, N, expected) hex my $a = Math::BigInt->from_hex($ah); my $b = Math::BigInt->from_hex($bh); my $n = Math::BigInt->from_hex($nh); my $desc = "$test_name #NUMBER (replay)"; # mbedtls_mpi_core_montmul:mpiSize:limbs(A,N):limbs(B)::::: # (just repeat $xh, as la4 = 2 * la8, so $xh4 == $xh8) my $case = output($test_name, $la4, $lb4, $la8, $lb8, str($ah), str($bh), str($nh), str($xh), str($xh)); push(@cases, [$case, $desc]); } # see mpi-modmul-gen.pl for the source of these test cases my @generate = ( # [ hexN, hexA, hexB, info ] [ "3", "2", "2", "" ], [ "3", "1", "2", "" ], [ "3", "2", "1", "" ], [ "7", "6", "5", "" ], [ "7", "3", "4", "" ], [ "7", "1", "6", "" ], [ "7", "5", "6", "" ], [ "B", "3", "4", "" ], [ "B", "7", "4", "" ], [ "B", "9", "7", "" ], [ "B", "2", "a", "" ], [ "29", "25", "16", "(0x29 is prime)" ], [ "29", "8", "28", "" ], [ "29", "18", "21", "" ], [ "29", "15", "f", "" ], [ "FF", "e2", "ea", "" ], [ "FF", "43", "72", "" ], [ "FF", "d8", "70", "" ], [ "FF", "3c", "7c", "" ], [ "101", "99", "b9", "(0x101 is prime)" ], [ "101", "65", "b2", "" ], [ "101", "81", "32", "" ], [ "101", "51", "dd", "" ], [ "38B", "d5", "143", "(0x38B is prime)" ], [ "38B", "3d", "387", "" ], [ "38B", "160", "2e5", "" ], [ "38B", "10f", "137", "" ], [ "8003", "7dac", "25a", "(0x8003 is prime)" ], [ "8003", "6f1c", "3286", "" ], [ "8003", "59ed", "2f3f", "" ], [ "8003", "6893", "736d", "" ], [ "10001", "d199", "2832", "(0x10001 is prime)" ], [ "10001", "c3b2", "3e5b", "" ], [ "10001", "abe4", "214e", "" ], [ "10001", "4360", "a05d", "" ], [ "7F7F7", "3f5a1", "165b2", "" ], [ "7F7F7", "3bd29", "37863", "" ], [ "7F7F7", "60c47", "64819", "" ], [ "7F7F7", "16584", "12c49", "" ], [ "800009", "1ff03f", "610347", "(0x800009 is prime)" ], [ "800009", "340fd5", "19812e", "" ], [ "800009", "3fe2e8", "4d0dc7", "" ], [ "800009", "40356", "e6392", "" ], [ "100002B", "dd8a1d", "266c0e", "(0x100002B is prime)" ], [ "100002B", "3fa1cb", "847fd6", "" ], [ "100002B", "5f439d", "5c3196", "" ], [ "100002B", "18d645", "f72dc6", "" ], [ "37EEE9D", "20051ad", "37def6e", "(0x37EEE9D is prime)" ], [ "37EEE9D", "2ec140b", "3580dbf", "" ], [ "37EEE9D", "1d91b46", "190d4fc", "" ], [ "37EEE9D", "34e488d", "1224d24", "" ], [ "8000000B", "2a4fe2cb", "263466a9", "(0x8000000B is prime)" ], [ "8000000B", "5643fe94", "29a1aefa", "" ], [ "8000000B", "29633513", "7b007ac4", "" ], [ "8000000B", "2439cef5", "5c9d5a47", "" ], [ "8CD626B9", "4de3cfaa", "50dea178", "(0x8CD626B9 is prime)" ], [ "8CD626B9", "b8b8563", "10dbbbac", "" ], [ "8CD626B9", "4e8a6151", "5574ec19", "" ], [ "8CD626B9", "69224878", "309cfc23", "" ], [ "10000000F", "fb6f7fb6", "afb05423", "(0x10000000F is prime)" ], [ "10000000F", "8391a243", "26034dcd", "" ], [ "10000000F", "d26b98c", "14b2d6aa", "" ], [ "10000000F", "6b9f1371", "a21daf1d", "" ], [ "174876E7E9", "9f49435ad", "c8264ade8", "0x174876E7E9 is prime (dec) 99999999977" ], [ "174876E7E9", "c402da434", "1fb427acf", "" ], [ "174876E7E9", "f6ebc2bb1", "1096d39f2a", "" ], [ "174876E7E9", "153b7f7b6b", "878fda8ff", "" ], [ "8000000017", "2c1adbb8d6", "4384d2d3c6", "(0x8000000017 is prime)" ], [ "8000000017", "2e4f9cf5fb", "794f3443d9", "" ], [ "8000000017", "149e495582", "3802b8f7b7", "" ], [ "8000000017", "7b9d49df82", "69c68a442a", "" ], [ "864CB9076D", "683a134600", "6dd80ea9f6", "(0x864CB9076D is prime)" ], [ "864CB9076D", "13a870ff0d", "59b099694a", "" ], [ "864CB9076D", "37d06b0e63", "4d2147e46f", "" ], [ "864CB9076D", "661714f8f4", "22e55df507", "" ], [ "F7F7F7F7F7", "2f0a96363", "52693307b4", "" ], [ "F7F7F7F7F7", "3c85078e64", "f2275ecb6d", "" ], [ "F7F7F7F7F7", "352dae68d1", "707775b4c6", "" ], [ "F7F7F7F7F7", "37ae0f3e0b", "912113040f", "" ], [ "1000000000F", "6dada15e31", "f58ed9eff7", "(0x1000000000F is prime)" ], [ "1000000000F", "69627a7c89", "cfb5ebd13d", "" ], [ "1000000000F", "a5e1ad239b", "afc030c731", "" ], [ "1000000000F", "f1cc45f4c5", "c64ad607c8", "" ], [ "800000000005", "2ebad87d2e31", "4c72d90bca78", "(0x800000000005 is prime)" ], [ "800000000005", "a30b3cc50d", "29ac4fe59490", "" ], [ "800000000005", "33674e9647b4", "5ec7ee7e72d3", "" ], [ "800000000005", "3d956f474f61", "74070040257d", "" ], [ "800795D9BA47", "48348e3717d6", "43fcb4399571", "(0x800795D9BA47 is prime)" ], [ "800795D9BA47", "5234c03cc99b", "2f3cccb87803", "" ], [ "800795D9BA47", "3ed13db194ab", "44b8f4ba7030", "" ], [ "800795D9BA47", "1c11e843bfdb", "95bd1b47b08", "" ], [ "1000000000015", "a81d11cb81fd", "1e5753a3f33d", "(0x1000000000015 is prime)" ], [ "1000000000015", "688c4db99232", "36fc0cf7ed", "" ], [ "1000000000015", "f0720cc07e07", "fc76140ed903", "" ], [ "1000000000015", "2ec61f8d17d1", "d270c85e36d2", "" ], [ "100000000000051", "6a24cd3ab63820", "ed4aad55e5e348", "(0x100000000000051 is prime)" ], [ "100000000000051", "e680c160d3b248", "31e0d8840ed510", "" ], [ "100000000000051", "a80637e9aebc38", "bb81decc4e1738", "" ], [ "100000000000051", "9afa5a59e9d630", "be9e65a6d42938", "" ], [ "ABCDEF0123456789", "ab5e104eeb71c000", "2cffbd639e9fea00", "" ], [ "ABCDEF0123456789", "197b867547f68a00", "44b796cf94654800", "" ], [ "ABCDEF0123456789", "329f9483a04f2c00", "9892f76961d0f000", "" ], [ "ABCDEF0123456789", "4a2e12dfb4545000", "1aa3e89a69794500", "" ], [ "25A55A46E5DA99C71C7", "8b9acdf013d140f000", "12e4ceaefabdf2b2f00", "0x25A55A46E5DA99C71C7 is the 3rd repunit prime (dec) 11111111111111111111111" ], [ "25A55A46E5DA99C71C7", "1b8d960ea277e3f5500", "14418aa980e37dd000", "" ], [ "25A55A46E5DA99C71C7", "7314524977e8075980", "8172fa45618ccd0d80", "" ], [ "25A55A46E5DA99C71C7", "ca14f031769be63580", "147a2f3cf2964ca9400", "" ], [ "314DC643FB763F2B8C0E2DE00879", "18532ba119d5cd0cf39735c0000", "25f9838e31634844924733000000", "0x314DC643FB763F2B8C0E2DE00879 is (dec)99999999977^3" ], [ "314DC643FB763F2B8C0E2DE00879", "a56e2d2517519e3970e70c40000", "ec27428d4bb380458588fa80000", "" ], [ "314DC643FB763F2B8C0E2DE00879", "1cb5e8257710e8653fff33a00000", "15fdd42fe440fd3a1d121380000", "" ], [ "314DC643FB763F2B8C0E2DE00879", "e50d07a65fc6f93e538ce040000", "1f4b059ca609f3ce597f61240000", "" ], [ "47BF19662275FA2F6845C74942ED1D852E521", "1ea3ade786a095d978d387f30df9f20000000", "127c448575f04af5a367a7be06c7da0000000", "0x47BF19662275FA2F6845C74942ED1D852E521 is (dec) 99999999977^4" ], [ "47BF19662275FA2F6845C74942ED1D852E521", "16e15b0ca82764e72e38357b1f10a20000000", "43e2355d8514bbe22b0838fdc3983a0000000", "" ], [ "47BF19662275FA2F6845C74942ED1D852E521", "be39332529d93f25c3d116c004c620000000", "5cccec42370a0a2c89c6772da801a0000000", "" ], [ "47BF19662275FA2F6845C74942ED1D852E521", "ecaa468d90de0eeda474d39b3e1fc0000000", "1e714554018de6dc0fe576bfd3b5660000000", "" ], [ "97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931", "32298816711c5dce46f9ba06e775c4bedfc770e6700000000000000", "8ee751fd5fb24f0b4a653cb3a0c8b7d9e724574d168000000000000", "0x97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931 is (dec) 99999999977^6" ], [ "97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931", "29213b9df3cfd15f4b428645b67b677c29d1378d810000000000000", "6cbb732c65e10a28872394dfdd1936d5171c3c3aac0000000000000", "" ], [ "97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931", "6f18db06ad4abc52c0c50643dd13098abccd4a232f0000000000000", "7e6bf41f2a86098ad51f98dfc10490ba3e8081bc830000000000000", "" ], [ "97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931", "62d3286cd706ad9d73caff63f1722775d7e8c731208000000000000", "530f7ba02ae2b04c2fe3e3d27ec095925631a6c2528000000000000", "" ], [ "DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499", "a6c6503e3c031fdbf6009a89ed60582b7233c5a85de28b16000000000000000", "75c8ed18270b583f16d442a467d32bf95c5e491e9b8523798000000000000000", "0xDD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499 is (dec) 99999999977^7" ], [ "DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499", "bf84d1f85cf6b51e04d2c8f4ffd03532d852053cf99b387d4000000000000000", "397ba5a743c349f4f28bc583ecd5f06e0a25f9c6d98f09134000000000000000", "" ], [ "DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499", "6db11c3a4152ed1a2aa6fa34b0903ec82ea1b88908dcb482000000000000000", "ac8ac576a74ad6ca48f201bf89f77350ce86e821358d85920000000000000000", "" ], [ "DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499", "3001d96d7fe8b733f33687646fc3017e3ac417eb32e0ec708000000000000000", "925ddbdac4174e8321a48a32f79640e8cf7ec6f46ea235a80000000000000000", "" ], [ "141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41", "1029048755f2e60dd98c8de6d9989226b6bb4f0db8e46bd1939de560000000000000000000", "51bb7270b2e25cec0301a03e8275213bb6c2f6e6ec93d4d46d36ca0000000000000000000", "0x141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41 is 99999999977^8" ], [ "141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41", "1c5337ff982b3ad6611257dbff5bbd7a9920ba2d4f5838a0cc681ce000000000000000000", "520c5d049ca4702031ba728591b665c4d4ccd3b2b86864d4c160fd2000000000000000000", "" ], [ "141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41", "57074dfa00e42f6555bae624b7f0209f218adf57f73ed34ab0ff90c000000000000000000", "41eb14b6c07bfd3d1fe4f4a610c17cc44fcfcda695db040e011065000000000000000000", "" ], [ "141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41", "d8ed7feed2fe855e6997ad6397f776158573d425031bf085a615784000000000000000000", "6f121dcd18c578ab5e229881006007bb6d319b179f11015fe958b9c000000000000000000", "" ], [ "2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451", "2a462b156180ea5fe550d3758c764e06fae54e626b5f503265a09df76edbdfbfa1e6000000000000000000000000", "1136f41d1879fd4fb9e49e0943a46b6704d77c068ee237c3121f9071cfd3e6a00315800000000000000000000000", "0x2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451 is (dec) 99999999977^10" ], [ "2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451", "c1ac3800dfb3c6954dea391d206200cf3c47f795bf4a5603b4cb88ae7e574de4740800000000000000000000000", "c0d16eda0549ede42fa0deb4635f7b7ce061fadea02ee4d85cba4c4f7096034193c800000000000000000000000", "" ], [ "2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451", "19e45bb7633094d272588ad2e43bcb3ee341991c6731b6fa9d47c4018d7ce7bba5ee800000000000000000000000", "1e4f83166ae59f6b9cc8fd3e7677ed8bfc01bb99c98bd3eb084246b64c1e18c3365b800000000000000000000000", "" ], [ "2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451", "1aa93395fad5f9b7f20b8f9028a054c0bb7c11bb8520e6a95e5a34f06cb70bcdd01a800000000000000000000000", "54b45afa5d4310192f8d224634242dd7dcfb342318df3d9bd37b4c614788ba13b8b000000000000000000000000", "" ], [ "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051", "544f2628a28cfb5ce0a1b7180ee66b49716f1d9476c466c57f0c4b2308991784306d48f78686115ee19e25400000000000000000000000000000000", "677eb31ef8d66c120fa872a60cd47f6e10cbfdf94f90501bd7883cba03d185be0a0148d1625745e9c4c827300000000000000000000000000000000", "0x8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051 is prime, (dec) 10^143 + 3^4" ], [ "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051", "76bb3470985174915e9993522aec989666908f9e8cf5cb9f037bf4aee33d8865cb6464174795d07e30015b80000000000000000000000000000000", "6aaaf60d5784dcef612d133613b179a317532ecca0eed40b8ad0c01e6d4a6d8c79a52af190abd51739009a900000000000000000000000000000000", "" ], [ "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051", "6cfdd6e60912e441d2d1fc88f421b533f0103a5322ccd3f4db84861643ad63fd63d1d8cfbc1d498162786ba00000000000000000000000000000000", "1177246ec5e93814816465e7f8f248b350d954439d35b2b5d75d917218e7fd5fb4c2f6d0667f9467fdcf33400000000000000000000000000000000", "" ], [ "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051", "7a09a0b0f8bbf8057116fb0277a9bdf3a91b5eaa8830d448081510d8973888be5a9f0ad04facb69aa3715f00000000000000000000000000000000", "764dec6c05a1c0d87b649efa5fd94c91ea28bffb4725d4ab4b33f1a3e8e3b314d799020e244a835a145ec9800000000000000000000000000000000", "" ], ); my %described = (); for my $g (@generate) { my ($nh, $ah, $bh, $info) = @$g; my $a = Math::BigInt->from_hex($ah); my $b = Math::BigInt->from_hex($bh); my $n = Math::BigInt->from_hex($nh); my $ln4 = mpi4s($n); my $la4 = mpi4s($a); my $lb4 = mpi4s($b); my $ln8 = mpi8s($n); my $la8 = mpi8s($a); my $lb8 = mpi8s($b); my $r4 = bound_mpi4($n->copy()); my $i4 = $r4->copy()->bmodinv($n); my $x4 = $a * $b * $i4; $x4->bmod($n); my $xh4 = Math::BigInt->new($x4)->to_hex(); my $r8 = bound_mpi8($n->copy()); my $i8 = $r8->copy()->bmodinv($n); my $x8 = $a * $b * $i8; $x8->bmod($n); my $xh8 = Math::BigInt->new($x8)->to_hex(); die("") if $la4 > $ln4 || $la8 > $ln8; my $desc = "$test_name #NUMBER (gen)"; if ($ln4 > 1) { if (!$described{"2-MPI4"}) { $desc .= " (start of 2-MPI 4-byte bignums)"; $described{"2-MPI4"} = 1; } } if ($ln8 > 1) { if (!$described{"2-MPI8"}) { $desc .= " (start of 2-MPI 8-byte bignums)"; $described{"2-MPI8"} = 1; } } if (length($info) && !$described{$info}) { $desc .= " " . $info; $described{$info} = 1; } my $case = output($test_name, $ln4, $lb4, $ln8, $lb8, str($ah), str($bh), str($nh), str($xh4), str($xh8)); #push(@cases, [$case, $desc, "MBEDTLS_HAVE_INT64"]); -- now doing it differently push(@cases, [$case, $desc]); } output_cases("", @cases); } sub output_cases { my ($explain, @cases) = @_; my $count = 1; for my $c (@cases) { my ($case, $desc, $dep) = @$c; $desc =~ s/NUMBER/$count/; $count++; if (defined($explain) && $desc =~ /EXPLAIN/) { $desc =~ s/EXPLAIN/$explain/; $explain = ""; } my $depends = ""; $depends = "depends_on:$dep\n" if defined($dep) && length($dep); print <new(1); # blsft modifies caller return $one->blsft(bits_mpi4($_[0])); } sub bound_mpi8 { my $one = Math::BigInt->new(1); # blsft modifies caller return $one->blsft(bits_mpi8($_[0])); } # How many bits (a multiple of 32) needed to store the specified number # when using 4-byte MPIs sub bits_mpi4 { return 32 * mpi4s($_[0]); } # How many bits (a multiple of 64) needed to store the specified number # when using 8-byte MPIs sub bits_mpi8 { return 64 * mpi8s($_[0]); } # How many 4-byte MPIs needed to store the specified number sub mpi4s { my ($n) = @_; my $h = $n->to_hex(); return int((length($h) + 7) / 8); } # How many 8-byte MPIs needed to store the specified number sub mpi8s { my ($n) = @_; my $h = $n->to_hex(); return int((length($h) + 15) / 16); } sub output { #run_test(@_); return join(":", @_); } sub str { return '"' . $_[0] . '"'; } ``` The data for the generated test cases (@generate) for mpi-test-core-montmul.pl was created by ``` #!/usr/bin/env perl # # mpi-modmul-gen.pl - randomly generate test cases for mpi-test-core-montmul.pl # use strict; use warnings; use Math::BigInt; use sort 'stable'; my %seen = (); my @primes = ( "3", "7", "B", "29", "101", "38B", "8003", "10001", "800009", "100002B", "37EEE9D", "8000000B", "8CD626B9", # From here they require > 1 4-byte MPI "10000000F", "174876E7E9", "8000000017", "864CB9076D", "1000000000F", "800000000005", "800795D9BA47", "1000000000015", "100000000000051", # From here they require > 1 8-byte MPI "25A55A46E5DA99C71C7", # this is 11111111111111111111111 decimal # 10^143 + 3^4: (which is prime) # 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081 "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051", ); my %prime = map { $_ => 1 } @primes; my @moduli = ( [ "3", "" ], [ "7", "" ], [ "B", "" ], [ "29", "" ], [ "FF", "" ], [ "101", "" ], [ "38B", "" ], [ "8003", "" ], [ "10001", "" ], [ "7F7F7", "" ], [ "800009", "" ], [ "100002B", "" ], [ "37EEE9D", "" ], [ "8000000B", "" ], [ "8CD626B9", "" ], [ "10000000F", "" ], [ "174876E7E9", "0x174876E7E9 is prime (dec) 99999999977" ], [ "8000000017", "" ], [ "864CB9076D", "" ], [ "F7F7F7F7F7", "" ], [ "1000000000F", "" ], [ "800000000005", "" ], [ "800795D9BA47", "" ], [ "1000000000015", "" ], [ "100000000000051", "" ], [ "ABCDEF0123456789", "" ], [ "25A55A46E5DA99C71C7", "0x25A55A46E5DA99C71C7 is the 3rd repunit prime (dec) 11111111111111111111111" ], [ "314DC643FB763F2B8C0E2DE00879", "0x314DC643FB763F2B8C0E2DE00879 is (dec)99999999977^3" ], [ "47BF19662275FA2F6845C74942ED1D852E521", "0x47BF19662275FA2F6845C74942ED1D852E521 is (dec) 99999999977^4" ], [ "97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931", "0x97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931 is (dec) 99999999977^6" ], [ "DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499", "0xDD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499 is (dec) 99999999977^7" ], [ "141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41", "0x141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41 is 99999999977^8" ], [ "2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451", "0x2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451 is (dec) 99999999977^10" ], [ "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051", "0x8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051 is prime, (dec) 10^143 + 3^4" ], # 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081 ); #99999999977^2: #ibase=16 ; obase=10 ; 174876E7E9*174876E7E9 #99999999977^3: #ibase=16 ; obase=10 ; 174876E7E9*174876E7E9*174876E7E9 #99999999977^2: 21E19E0C58BACE25211 #99999999977^3: 314DC643FB763F2B8C0E2DE00879 #99999999977^4: 47BF19662275FA2F6845C74942ED1D852E521 #99999999977^5: 6867A5A664437D20ED7941408583AADA2193CE95695209 #99999999977^6: 97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931 #99999999977^7: DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499 #99999999977^8: 141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41 #99999999977^9: 1D42AEA1837AA78C6339224E9B39A483E4AAAF12CE7752E1EA1681082CBC8AB056A36B6299557D7A029 #99999999977^10: 2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451 my %mentioned = (); for my $mod (@moduli) { my ($nh, $info) = @$mod; my $n = Math::BigInt->from_hex($nh); my $xxx = $n->to_hex(); die("$xxx != $nh") unless lc($xxx) eq lc($nh); my $cases = ($n < 5) ? 3 : 4; for (my $case = 0; $case < $cases; $case++) { my ($a, $b); for ($a = 0; $a == 0; ) { $a = int(rand($n)); } for ($b = 0; $b == 0; ) { $b = int(rand($n)); } my $cstr = "$a|$b|$n"; if (exists($seen{$cstr})) { # don't repeat ourselves $case--; next; } $seen{$cstr} = 1; my $ah = Math::BigInt->new($a)->to_hex(); my $bh = Math::BigInt->new($b)->to_hex(); my $desc = ""; if (length($info)) { $desc = $info if !$mentioned{$info}; $mentioned{$info} = 1; } elsif (length($nh) > 1 && $prime{$nh} && !$mentioned{$nh}) { $desc = "(0x$nh is prime)"; $mentioned{$nh} = 1; } print < --- library/bignum.c | 53 ++-- library/bignum_core.h | 28 ++ tests/suites/test_suite_mpi.data | 423 +++++++++++++++++++++++++++ tests/suites/test_suite_mpi.function | 80 +++++ 4 files changed, 548 insertions(+), 36 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 98bea731e5..44b2c87c23 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1553,30 +1553,10 @@ static void mpi_montg_init( mbedtls_mpi_uint *mm, const mbedtls_mpi *N ) *mm = mbedtls_mpi_montg_init( N->p[0] ); } -/** Montgomery multiplication: A = A * B * R^-1 mod N (HAC 14.36) - * - * \param[in,out] A One of the numbers to multiply. - * It must have at least as many limbs as N - * (A->n >= N->n), and any limbs beyond n are ignored. - * On successful completion, A contains the result of - * the multiplication A * B * R^-1 mod N where - * R = (2^ciL)^n. - * \param[in] B One of the numbers to multiply. - * It must be nonzero and must not have more limbs than N - * (B->n <= N->n). - * \param[in] N The modulo. N must be odd. - * \param mm The value calculated by `mpi_montg_init(&mm, N)`. - * This is -N^-1 mod 2^ciL. - * \param[in,out] T A bignum for temporary storage. - * It must be at least twice the limb size of N plus 1 - * (T->n >= 2 * N->n + 1). - * Its initial content is unused and - * its final content is indeterminate. - * Note that unlike the usual convention in the library - * for `const mbedtls_mpi*`, the content of T can change. - */ -static void mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B, const mbedtls_mpi *N, mbedtls_mpi_uint mm, - const mbedtls_mpi *T ) +/* This would be static, but is tested */ +void mbedtls_mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B, + const mbedtls_mpi *N, mbedtls_mpi_uint mm, + const mbedtls_mpi *T ) { size_t n, m; mbedtls_mpi_uint *d; @@ -1630,7 +1610,8 @@ static void mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B, const mbedtls_mpi /* * Montgomery reduction: A = A * R^-1 mod N * - * See mpi_montmul() regarding constraints and guarantees on the parameters. + * See the doc for mbedtls_mpi_montmul() regarding constraints and guarantees on + * the parameters. */ static void mpi_montred( mbedtls_mpi *A, const mbedtls_mpi *N, mbedtls_mpi_uint mm, const mbedtls_mpi *T ) @@ -1641,7 +1622,7 @@ static void mpi_montred( mbedtls_mpi *A, const mbedtls_mpi *N, U.n = U.s = (int) z; U.p = &z; - mpi_montmul( A, &U, N, mm, T ); + mbedtls_mpi_montmul( A, &U, N, mm, T ); } /** @@ -1723,7 +1704,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, #endif j = N->n + 1; - /* All W[i] and X must have at least N->n limbs for the mpi_montmul() + /* All W[i] and X must have at least N->n limbs for the mbedtls_mpi_montmul() * and mpi_montred() calls later. Here we ensure that W[1] and X are * large enough, and later we'll grow other W[i] to the same length. * They must not be shrunk midway through this function! @@ -1766,7 +1747,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &W[1], A, N ) ); /* This should be a no-op because W[1] is already that large before * mbedtls_mpi_mod_mpi(), but it's necessary to avoid an overflow - * in mpi_montmul() below, so let's make sure. */ + * in mbedtls_mpi_montmul() below, so let's make sure. */ MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[1], N->n + 1 ) ); } else @@ -1774,7 +1755,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, /* Note that this is safe because W[1] always has at least N->n limbs * (it grew above and was preserved by mbedtls_mpi_copy()). */ - mpi_montmul( &W[1], &RR, N, mm, &T ); + mbedtls_mpi_montmul( &W[1], &RR, N, mm, &T ); /* * X = R^2 * R^-1 mod N = R mod N @@ -1793,7 +1774,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[j], &W[1] ) ); for( i = 0; i < wsize - 1; i++ ) - mpi_montmul( &W[j], &W[j], N, mm, &T ); + mbedtls_mpi_montmul( &W[j], &W[j], N, mm, &T ); /* * W[i] = W[i - 1] * W[1] @@ -1803,7 +1784,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[i], N->n + 1 ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[i], &W[i - 1] ) ); - mpi_montmul( &W[i], &W[1], N, mm, &T ); + mbedtls_mpi_montmul( &W[i], &W[1], N, mm, &T ); } } @@ -1840,7 +1821,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, /* * out of window, square X */ - mpi_montmul( X, X, N, mm, &T ); + mbedtls_mpi_montmul( X, X, N, mm, &T ); continue; } @@ -1858,13 +1839,13 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, * X = X^wsize R^-1 mod N */ for( i = 0; i < wsize; i++ ) - mpi_montmul( X, X, N, mm, &T ); + mbedtls_mpi_montmul( X, X, N, mm, &T ); /* * X = X * W[wbits] R^-1 mod N */ MBEDTLS_MPI_CHK( mpi_select( &WW, W, (size_t) 1 << wsize, wbits ) ); - mpi_montmul( X, &WW, N, mm, &T ); + mbedtls_mpi_montmul( X, &WW, N, mm, &T ); state--; nbits = 0; @@ -1877,12 +1858,12 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, */ for( i = 0; i < nbits; i++ ) { - mpi_montmul( X, X, N, mm, &T ); + mbedtls_mpi_montmul( X, X, N, mm, &T ); wbits <<= 1; if( ( wbits & ( one << wsize ) ) != 0 ) - mpi_montmul( X, &W[1], N, mm, &T ); + mbedtls_mpi_montmul( X, &W[1], N, mm, &T ); } /* diff --git a/library/bignum_core.h b/library/bignum_core.h index 02ac55d1b3..ca45480b9a 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -263,4 +263,32 @@ mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *d, size_t n, unsigned cond ); +/** Montgomery multiplication: A = A * B * R^-1 mod N (HAC 14.36) + * + * This would be static, but is tested. + * + * \param[in,out] A One of the numbers to multiply. + * It must have at least as many limbs as N + * (A->n >= N->n), and any limbs beyond n are ignored. + * On successful completion, A contains the result of + * the multiplication A * B * R^-1 mod N where + * R = (2^ciL)^n. + * \param[in] B One of the numbers to multiply. + * It must be nonzero and must not have more limbs than N + * (B->n <= N->n). + * \param[in] N The modulo. N must be odd. + * \param mm The value calculated by `mpi_montg_init(&mm, N)`. + * This is -N^-1 mod 2^ciL. + * \param[in,out] T A bignum for temporary storage. + * It must be at least twice the limb size of N plus 1 + * (T->n >= 2 * N->n + 1). + * Its initial content is unused and + * its final content is indeterminate. + * Note that unlike the usual convention in the library + * for `const mbedtls_mpi*`, the content of T can change. + */ +void mbedtls_mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B, + const mbedtls_mpi *N, mbedtls_mpi_uint mm, + const mbedtls_mpi *T ); + #endif /* MBEDTLS_BIGNUM_CORE_H */ diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index a7a074f63a..9ee37312ee 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -15308,6 +15308,429 @@ mbedtls_mpi_montg_init:"baea2d65939296fc2536f18f2a4042a741f33088ecd5000e76c67a46 mbedtls_mpi_montg_init #15 mbedtls_mpi_montg_init:"bf741f75e28a44e271cf43e68dbadd23c72d2f2e1fc78a6d6aaaadf2ccbf26c9a232aff5b3f3f29323b114f3018144ed9438943e07820e222137d3bb229b61671e61f75f6021a26436df9e669929fa392df021f105d2fce0717468a522018721ccde541b9a7b558128419f457ef33a5753f00c20c2d709727eef6278c55b278b10abe1d13e538514128b5dcb7bfd015e0fdcb081555071813974135d5ab5000630a94f5b0f4021a504ab4f3df2403e6140b9939f8bbe714635f5cff10744be03":"aab901da57bba355" +mbedtls_mpi_core_montmul #1 (replay) +mbedtls_mpi_core_montmul:2:1:1:1:"19":"1":"1D":"18":"18" + +mbedtls_mpi_core_montmul #2 (replay) +mbedtls_mpi_core_montmul:2:1:1:1:"7":"1":"9":"1":"1" + +mbedtls_mpi_core_montmul #3 (replay) +mbedtls_mpi_core_montmul:2:1:1:1:"4":"1":"9":"7":"7" + +mbedtls_mpi_core_montmul #4 (replay) +mbedtls_mpi_core_montmul:12:1:6:1:"3C246D0E059A93A266288A7718419EC741661B474C58C032C5EDAF92709402B07CC8C7CE0B781C641A1EA8DB2F4343":"1":"66A198186C18C10B2F5ED9B522752A9830B69916E535C8F047518A889A43A594B6BED27A168D31D4A52F88925AA8F5":"36E139AEA55215609D2816998ED020BBBD96C37890F65171D948E9BC7CBAA4D9325D24D6A3C12710F10A09FA08AB87":"36E139AEA55215609D2816998ED020BBBD96C37890F65171D948E9BC7CBAA4D9325D24D6A3C12710F10A09FA08AB87" + +mbedtls_mpi_core_montmul #5 (replay) +mbedtls_mpi_core_montmul:8:1:4:1:"1E442976B0E63D64FCCE74B999E470CA9888165CB75BFA1F340E918CE03C6211":"1":"B3A119602EE213CDE28581ECD892E0F592A338655DCE4CA88054B3D124D0E561":"38EB7749F4A5DA80F23BC08FD0801C55B103B17A2EEF84E60E65383B59F8CA5B":"38EB7749F4A5DA80F23BC08FD0801C55B103B17A2EEF84E60E65383B59F8CA5B" + +mbedtls_mpi_core_montmul #6 (replay) +mbedtls_mpi_core_montmul:22:1:11:1:"7CF5AC97304E0B63C65413F57249F59994B0FED1D2A8D3D83ED5FA38560FFB82392870D6D08F87D711917FD7537E13B7E125BE407E74157776839B0AC9DB23CBDFC696104353E4D2780B2B4968F8D8542306BCA7A2366E":"1":"284139EA19C139EBE09A8111926AAA39A2C2BE12ED487A809D3CB5BC55854725B4CDCB5734C58F90B2F60D99CC1950CDBC8D651793E93C9C6F0EAD752500A32C56C62082912B66132B2A6AA42ADA923E1AD22CEB7BA0123":"1E4426A3D6C425F0630B14113BEAD742C92B02886267AB41F70C4CB2426AEE1FAACEC6982E0E5BE964ECA2527A031ED49C371DB2A4FB16482F3590C866BF9F81C3D52C7CB9E0BA6FF843ED3B17C44D7F6B14471839D8D31":"1E4426A3D6C425F0630B14113BEAD742C92B02886267AB41F70C4CB2426AEE1FAACEC6982E0E5BE964ECA2527A031ED49C371DB2A4FB16482F3590C866BF9F81C3D52C7CB9E0BA6FF843ED3B17C44D7F6B14471839D8D31" + +mbedtls_mpi_core_montmul #7 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"2":"2":"3":"1":"1" + +mbedtls_mpi_core_montmul #8 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"1":"2":"3":"2":"2" + +mbedtls_mpi_core_montmul #9 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"2":"1":"3":"2":"2" + +mbedtls_mpi_core_montmul #10 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"6":"5":"7":"4":"1" + +mbedtls_mpi_core_montmul #11 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"3":"4":"7":"3":"6" + +mbedtls_mpi_core_montmul #12 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"1":"6":"7":"5":"3" + +mbedtls_mpi_core_montmul #13 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"5":"6":"7":"4":"1" + +mbedtls_mpi_core_montmul #14 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"3":"4":"B":"3":"9" + +mbedtls_mpi_core_montmul #15 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"7":"4":"B":"7":"a" + +mbedtls_mpi_core_montmul #16 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"9":"7":"B":"2":"6" + +mbedtls_mpi_core_montmul #17 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"2":"a":"B":"5":"4" + +mbedtls_mpi_core_montmul #18 (gen) (0x29 is prime) +mbedtls_mpi_core_montmul:1:1:1:1:"25":"16":"29":"16":"f" + +mbedtls_mpi_core_montmul #19 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"8":"28":"29":"2":"14" + +mbedtls_mpi_core_montmul #20 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"18":"21":"29":"7":"1d" + +mbedtls_mpi_core_montmul #21 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"15":"f":"29":"22":"c" + +mbedtls_mpi_core_montmul #22 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"e2":"ea":"FF":"63":"63" + +mbedtls_mpi_core_montmul #23 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"43":"72":"FF":"f3":"f3" + +mbedtls_mpi_core_montmul #24 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"d8":"70":"FF":"de":"de" + +mbedtls_mpi_core_montmul #25 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"3c":"7c":"FF":"2d":"2d" + +mbedtls_mpi_core_montmul #26 (gen) (0x101 is prime) +mbedtls_mpi_core_montmul:1:1:1:1:"99":"b9":"101":"23":"23" + +mbedtls_mpi_core_montmul #27 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"65":"b2":"101":"f5":"f5" + +mbedtls_mpi_core_montmul #28 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"81":"32":"101":"19":"19" + +mbedtls_mpi_core_montmul #29 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"51":"dd":"101":"a8":"a8" + +mbedtls_mpi_core_montmul #30 (gen) (0x38B is prime) +mbedtls_mpi_core_montmul:1:1:1:1:"d5":"143":"38B":"313":"14f" + +mbedtls_mpi_core_montmul #31 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"3d":"387":"38B":"212":"19a" + +mbedtls_mpi_core_montmul #32 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"160":"2e5":"38B":"a5":"14d" + +mbedtls_mpi_core_montmul #33 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"10f":"137":"38B":"10f":"19f" + +mbedtls_mpi_core_montmul #34 (gen) (0x8003 is prime) +mbedtls_mpi_core_montmul:1:1:1:1:"7dac":"25a":"8003":"5fff":"29c8" + +mbedtls_mpi_core_montmul #35 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"6f1c":"3286":"8003":"245e":"79e9" + +mbedtls_mpi_core_montmul #36 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"59ed":"2f3f":"8003":"7008":"5874" + +mbedtls_mpi_core_montmul #37 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"6893":"736d":"8003":"3178":"f99" + +mbedtls_mpi_core_montmul #38 (gen) (0x10001 is prime) +mbedtls_mpi_core_montmul:1:1:1:1:"d199":"2832":"10001":"b6fa":"b6fa" + +mbedtls_mpi_core_montmul #39 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"c3b2":"3e5b":"10001":"7c9c":"7c9c" + +mbedtls_mpi_core_montmul #40 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"abe4":"214e":"10001":"ad1c":"ad1c" + +mbedtls_mpi_core_montmul #41 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"4360":"a05d":"10001":"4fac":"4fac" + +mbedtls_mpi_core_montmul #42 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"3f5a1":"165b2":"7F7F7":"63052":"71254" + +mbedtls_mpi_core_montmul #43 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"3bd29":"37863":"7F7F7":"34ff8":"40755" + +mbedtls_mpi_core_montmul #44 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"60c47":"64819":"7F7F7":"34967":"3a83e" + +mbedtls_mpi_core_montmul #45 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"16584":"12c49":"7F7F7":"283b9":"14991" + +mbedtls_mpi_core_montmul #46 (gen) (0x800009 is prime) +mbedtls_mpi_core_montmul:1:1:1:1:"1ff03f":"610347":"800009":"1cef09":"4e3e6a" + +mbedtls_mpi_core_montmul #47 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"340fd5":"19812e":"800009":"5c1fc2":"64ecb0" + +mbedtls_mpi_core_montmul #48 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"3fe2e8":"4d0dc7":"800009":"2c4c9f":"5112e5" + +mbedtls_mpi_core_montmul #49 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"40356":"e6392":"800009":"1dc356":"5661ed" + +mbedtls_mpi_core_montmul #50 (gen) (0x100002B is prime) +mbedtls_mpi_core_montmul:1:1:1:1:"dd8a1d":"266c0e":"100002B":"e6cfeb":"66b342" + +mbedtls_mpi_core_montmul #51 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"3fa1cb":"847fd6":"100002B":"5679d":"ea359c" + +mbedtls_mpi_core_montmul #52 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"5f439d":"5c3196":"100002B":"72985e":"89865b" + +mbedtls_mpi_core_montmul #53 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"18d645":"f72dc6":"100002B":"11807c":"442f44" + +mbedtls_mpi_core_montmul #54 (gen) (0x37EEE9D is prime) +mbedtls_mpi_core_montmul:1:1:1:1:"20051ad":"37def6e":"37EEE9D":"126b1f8":"639bef" + +mbedtls_mpi_core_montmul #55 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"2ec140b":"3580dbf":"37EEE9D":"182364a":"265b419" + +mbedtls_mpi_core_montmul #56 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"1d91b46":"190d4fc":"37EEE9D":"f501a4":"2c06311" + +mbedtls_mpi_core_montmul #57 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"34e488d":"1224d24":"37EEE9D":"3097def":"1c134c4" + +mbedtls_mpi_core_montmul #58 (gen) (0x8000000B is prime) +mbedtls_mpi_core_montmul:1:1:1:1:"2a4fe2cb":"263466a9":"8000000B":"2f7b2c6b":"551d4f77" + +mbedtls_mpi_core_montmul #59 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"5643fe94":"29a1aefa":"8000000B":"7f473a3d":"86615" + +mbedtls_mpi_core_montmul #60 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"29633513":"7b007ac4":"8000000B":"589a07cd":"d6d5cbe" + +mbedtls_mpi_core_montmul #61 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"2439cef5":"5c9d5a47":"8000000B":"77b1ca47":"691ad3ef" + +mbedtls_mpi_core_montmul #62 (gen) (0x8CD626B9 is prime) +mbedtls_mpi_core_montmul:1:1:1:1:"4de3cfaa":"50dea178":"8CD626B9":"5d6c70fe":"1017c1af" + +mbedtls_mpi_core_montmul #63 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"b8b8563":"10dbbbac":"8CD626B9":"1ebb1ae4":"3abf8696" + +mbedtls_mpi_core_montmul #64 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"4e8a6151":"5574ec19":"8CD626B9":"88c056da":"5ff76076" + +mbedtls_mpi_core_montmul #65 (gen) +mbedtls_mpi_core_montmul:1:1:1:1:"69224878":"309cfc23":"8CD626B9":"14f5037d":"2ab92db7" + +mbedtls_mpi_core_montmul #66 (gen) (start of 2-MPI 4-byte bignums) (0x10000000F is prime) +mbedtls_mpi_core_montmul:2:1:1:1:"fb6f7fb6":"afb05423":"10000000F":"1b61c4f8":"1b61c4f8" + +mbedtls_mpi_core_montmul #67 (gen) +mbedtls_mpi_core_montmul:2:1:1:1:"8391a243":"26034dcd":"10000000F":"c5d18a1f":"c5d18a1f" + +mbedtls_mpi_core_montmul #68 (gen) +mbedtls_mpi_core_montmul:2:1:1:1:"d26b98c":"14b2d6aa":"10000000F":"4e7fad06":"4e7fad06" + +mbedtls_mpi_core_montmul #69 (gen) +mbedtls_mpi_core_montmul:2:1:1:1:"6b9f1371":"a21daf1d":"10000000F":"c6b6f98b":"c6b6f98b" + +mbedtls_mpi_core_montmul #70 (gen) 0x174876E7E9 is prime (dec) 99999999977 +mbedtls_mpi_core_montmul:2:2:1:1:"9f49435ad":"c8264ade8":"174876E7E9":"6f386b4ce":"6f386b4ce" + +mbedtls_mpi_core_montmul #71 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"c402da434":"1fb427acf":"174876E7E9":"271c9b457":"271c9b457" + +mbedtls_mpi_core_montmul #72 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"f6ebc2bb1":"1096d39f2a":"174876E7E9":"78a3ebdad":"78a3ebdad" + +mbedtls_mpi_core_montmul #73 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"153b7f7b6b":"878fda8ff":"174876E7E9":"81843925c":"81843925c" + +mbedtls_mpi_core_montmul #74 (gen) (0x8000000017 is prime) +mbedtls_mpi_core_montmul:2:2:1:1:"2c1adbb8d6":"4384d2d3c6":"8000000017":"7ee47165db":"7ee47165db" + +mbedtls_mpi_core_montmul #75 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"2e4f9cf5fb":"794f3443d9":"8000000017":"79446995ec":"79446995ec" + +mbedtls_mpi_core_montmul #76 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"149e495582":"3802b8f7b7":"8000000017":"1e4ef00e22":"1e4ef00e22" + +mbedtls_mpi_core_montmul #77 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"7b9d49df82":"69c68a442a":"8000000017":"74dee0f58a":"74dee0f58a" + +mbedtls_mpi_core_montmul #78 (gen) (0x864CB9076D is prime) +mbedtls_mpi_core_montmul:2:2:1:1:"683a134600":"6dd80ea9f6":"864CB9076D":"5c3f421e55":"5c3f421e55" + +mbedtls_mpi_core_montmul #79 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"13a870ff0d":"59b099694a":"864CB9076D":"615b45edcf":"615b45edcf" + +mbedtls_mpi_core_montmul #80 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"37d06b0e63":"4d2147e46f":"864CB9076D":"6e47e78c45":"6e47e78c45" + +mbedtls_mpi_core_montmul #81 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"661714f8f4":"22e55df507":"864CB9076D":"63f7b7766d":"63f7b7766d" + +mbedtls_mpi_core_montmul #82 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"2f0a96363":"52693307b4":"F7F7F7F7F7":"99e7b7a2f6":"99e7b7a2f6" + +mbedtls_mpi_core_montmul #83 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"3c85078e64":"f2275ecb6d":"F7F7F7F7F7":"5b30b7ecd8":"5b30b7ecd8" + +mbedtls_mpi_core_montmul #84 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"352dae68d1":"707775b4c6":"F7F7F7F7F7":"922215581":"922215581" + +mbedtls_mpi_core_montmul #85 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"37ae0f3e0b":"912113040f":"F7F7F7F7F7":"9724ae9827":"9724ae9827" + +mbedtls_mpi_core_montmul #86 (gen) (0x1000000000F is prime) +mbedtls_mpi_core_montmul:2:2:1:1:"6dada15e31":"f58ed9eff7":"1000000000F":"a11a0b6bd4":"a11a0b6bd4" + +mbedtls_mpi_core_montmul #87 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"69627a7c89":"cfb5ebd13d":"1000000000F":"bdd403e1e8":"bdd403e1e8" + +mbedtls_mpi_core_montmul #88 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"a5e1ad239b":"afc030c731":"1000000000F":"d9159b287c":"d9159b287c" + +mbedtls_mpi_core_montmul #89 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"f1cc45f4c5":"c64ad607c8":"1000000000F":"fdaa868e":"fdaa868e" + +mbedtls_mpi_core_montmul #90 (gen) (0x800000000005 is prime) +mbedtls_mpi_core_montmul:2:2:1:1:"2ebad87d2e31":"4c72d90bca78":"800000000005":"102277c75b46":"102277c75b46" + +mbedtls_mpi_core_montmul #91 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"a30b3cc50d":"29ac4fe59490":"800000000005":"7a0bb5e477ca":"7a0bb5e477ca" + +mbedtls_mpi_core_montmul #92 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"33674e9647b4":"5ec7ee7e72d3":"800000000005":"431f6a298b9f":"431f6a298b9f" + +mbedtls_mpi_core_montmul #93 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"3d956f474f61":"74070040257d":"800000000005":"1bf1cc423f85":"1bf1cc423f85" + +mbedtls_mpi_core_montmul #94 (gen) (0x800795D9BA47 is prime) +mbedtls_mpi_core_montmul:2:2:1:1:"48348e3717d6":"43fcb4399571":"800795D9BA47":"be7aa205fdd":"be7aa205fdd" + +mbedtls_mpi_core_montmul #95 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"5234c03cc99b":"2f3cccb87803":"800795D9BA47":"38c915c43e15":"38c915c43e15" + +mbedtls_mpi_core_montmul #96 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"3ed13db194ab":"44b8f4ba7030":"800795D9BA47":"37052e8c2720":"37052e8c2720" + +mbedtls_mpi_core_montmul #97 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"1c11e843bfdb":"95bd1b47b08":"800795D9BA47":"57783cead5bc":"57783cead5bc" + +mbedtls_mpi_core_montmul #98 (gen) (0x1000000000015 is prime) +mbedtls_mpi_core_montmul:2:2:1:1:"a81d11cb81fd":"1e5753a3f33d":"1000000000015":"1524843bbe60":"1524843bbe60" + +mbedtls_mpi_core_montmul #99 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"688c4db99232":"36fc0cf7ed":"1000000000015":"d987f015f9c8":"d987f015f9c8" + +mbedtls_mpi_core_montmul #100 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"f0720cc07e07":"fc76140ed903":"1000000000015":"c0a15846d9ab":"c0a15846d9ab" + +mbedtls_mpi_core_montmul #101 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"2ec61f8d17d1":"d270c85e36d2":"1000000000015":"b25b655a6234":"b25b655a6234" + +mbedtls_mpi_core_montmul #102 (gen) (0x100000000000051 is prime) +mbedtls_mpi_core_montmul:2:2:1:1:"6a24cd3ab63820":"ed4aad55e5e348":"100000000000051":"f4fb80f56821d9":"f4fb80f56821d9" + +mbedtls_mpi_core_montmul #103 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"e680c160d3b248":"31e0d8840ed510":"100000000000051":"aa5e1c3bb30ab8":"aa5e1c3bb30ab8" + +mbedtls_mpi_core_montmul #104 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"a80637e9aebc38":"bb81decc4e1738":"100000000000051":"14a17c662fb3fd":"14a17c662fb3fd" + +mbedtls_mpi_core_montmul #105 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"9afa5a59e9d630":"be9e65a6d42938":"100000000000051":"1fa880b76c7bbf":"1fa880b76c7bbf" + +mbedtls_mpi_core_montmul #106 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"ab5e104eeb71c000":"2cffbd639e9fea00":"ABCDEF0123456789":"a7bd05d2ad72bbac":"a7bd05d2ad72bbac" + +mbedtls_mpi_core_montmul #107 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"197b867547f68a00":"44b796cf94654800":"ABCDEF0123456789":"94683e1ac1068cfc":"94683e1ac1068cfc" + +mbedtls_mpi_core_montmul #108 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"329f9483a04f2c00":"9892f76961d0f000":"ABCDEF0123456789":"12ca7ba6189f5080":"12ca7ba6189f5080" + +mbedtls_mpi_core_montmul #109 (gen) +mbedtls_mpi_core_montmul:2:2:1:1:"4a2e12dfb4545000":"1aa3e89a69794500":"ABCDEF0123456789":"591fced0c97f7916":"591fced0c97f7916" + +mbedtls_mpi_core_montmul #110 (gen) (start of 2-MPI 8-byte bignums) 0x25A55A46E5DA99C71C7 is the 3rd repunit prime (dec) 11111111111111111111111 +mbedtls_mpi_core_montmul:3:3:2:2:"8b9acdf013d140f000":"12e4ceaefabdf2b2f00":"25A55A46E5DA99C71C7":"145e13d825f558e1528":"5965c1bea1c065c1f9" + +mbedtls_mpi_core_montmul #111 (gen) +mbedtls_mpi_core_montmul:3:3:2:2:"1b8d960ea277e3f5500":"14418aa980e37dd000":"25A55A46E5DA99C71C7":"3296eca7d29742119d":"e62a0288b09791369c" + +mbedtls_mpi_core_montmul #112 (gen) +mbedtls_mpi_core_montmul:3:3:2:2:"7314524977e8075980":"8172fa45618ccd0d80":"25A55A46E5DA99C71C7":"16ce65e208c75d6959b":"20f256de8b8761f07a1" + +mbedtls_mpi_core_montmul #113 (gen) +mbedtls_mpi_core_montmul:3:3:2:2:"ca14f031769be63580":"147a2f3cf2964ca9400":"25A55A46E5DA99C71C7":"1b33a89ac4a750a245d":"209a484f1216347030" + +mbedtls_mpi_core_montmul #114 (gen) 0x314DC643FB763F2B8C0E2DE00879 is (dec)99999999977^3 +mbedtls_mpi_core_montmul:4:4:2:2:"18532ba119d5cd0cf39735c0000":"25f9838e31634844924733000000":"314DC643FB763F2B8C0E2DE00879":"e7b248b17e952a3b5bf96467c9e":"e7b248b17e952a3b5bf96467c9e" + +mbedtls_mpi_core_montmul #115 (gen) +mbedtls_mpi_core_montmul:4:4:2:2:"a56e2d2517519e3970e70c40000":"ec27428d4bb380458588fa80000":"314DC643FB763F2B8C0E2DE00879":"26c158897a56747970ce53723ab0":"26c158897a56747970ce53723ab0" + +mbedtls_mpi_core_montmul #116 (gen) +mbedtls_mpi_core_montmul:4:4:2:2:"1cb5e8257710e8653fff33a00000":"15fdd42fe440fd3a1d121380000":"314DC643FB763F2B8C0E2DE00879":"2bbf68c08200acd799df33fb6cf3":"2bbf68c08200acd799df33fb6cf3" + +mbedtls_mpi_core_montmul #117 (gen) +mbedtls_mpi_core_montmul:4:4:2:2:"e50d07a65fc6f93e538ce040000":"1f4b059ca609f3ce597f61240000":"314DC643FB763F2B8C0E2DE00879":"27ce5f2c1819fe02f4335558de21":"27ce5f2c1819fe02f4335558de21" + +mbedtls_mpi_core_montmul #118 (gen) 0x47BF19662275FA2F6845C74942ED1D852E521 is (dec) 99999999977^4 +mbedtls_mpi_core_montmul:5:5:3:3:"1ea3ade786a095d978d387f30df9f20000000":"127c448575f04af5a367a7be06c7da0000000":"47BF19662275FA2F6845C74942ED1D852E521":"42c40f627a678ddf5ba6f27baedae85022b83":"24ee52f9383c9213f6641ca1a1293f6c90c28" + +mbedtls_mpi_core_montmul #119 (gen) +mbedtls_mpi_core_montmul:5:5:3:3:"16e15b0ca82764e72e38357b1f10a20000000":"43e2355d8514bbe22b0838fdc3983a0000000":"47BF19662275FA2F6845C74942ED1D852E521":"2cfd2125bb4d48f9d38a1d1dc9e546463eb62":"c96be8fa4c2a1981847403e0c45da464ea83" + +mbedtls_mpi_core_montmul #120 (gen) +mbedtls_mpi_core_montmul:5:5:3:3:"be39332529d93f25c3d116c004c620000000":"5cccec42370a0a2c89c6772da801a0000000":"47BF19662275FA2F6845C74942ED1D852E521":"29081a3513837bdb55dfdab9de4d31dfe4bc4":"1b543f0226cdc674fc60c0822d275954530cf" + +mbedtls_mpi_core_montmul #121 (gen) +mbedtls_mpi_core_montmul:5:5:3:3:"ecaa468d90de0eeda474d39b3e1fc0000000":"1e714554018de6dc0fe576bfd3b5660000000":"47BF19662275FA2F6845C74942ED1D852E521":"18eb78f9fe89aaf4f32968af4d64627be81fe":"439b0325171f87ba20ddf220d61bc0f1e5865" + +mbedtls_mpi_core_montmul #122 (gen) 0x97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931 is (dec) 99999999977^6 +mbedtls_mpi_core_montmul:7:7:4:4:"32298816711c5dce46f9ba06e775c4bedfc770e6700000000000000":"8ee751fd5fb24f0b4a653cb3a0c8b7d9e724574d168000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"d20edd4f6c266489796ac74b96dde9bdffcb5131de686f9cac736c":"496a11382c5396c40b8e146b31fd98b8bc53648f93d04ff21b31725" + +mbedtls_mpi_core_montmul #123 (gen) +mbedtls_mpi_core_montmul:7:7:4:4:"29213b9df3cfd15f4b428645b67b677c29d1378d810000000000000":"6cbb732c65e10a28872394dfdd1936d5171c3c3aac0000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"29b3e797ff5104e01323f855aaccdbe9740facd77c04abda1c52bd5":"602b40d7c1feff4cfa2d4061046e4178c38e51172a5ca4326ebbb80" + +mbedtls_mpi_core_montmul #124 (gen) +mbedtls_mpi_core_montmul:7:7:4:4:"6f18db06ad4abc52c0c50643dd13098abccd4a232f0000000000000":"7e6bf41f2a86098ad51f98dfc10490ba3e8081bc830000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"74c0a781f976ae0781fa4c408f3aca6290ed7c926ea4972d8cbd00e":"1134ccaea14ab4de865b0abce56638d4ca1e948d963389003cdcf5a" + +mbedtls_mpi_core_montmul #125 (gen) +mbedtls_mpi_core_montmul:7:7:4:4:"62d3286cd706ad9d73caff63f1722775d7e8c731208000000000000":"530f7ba02ae2b04c2fe3e3d27ec095925631a6c2528000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"40e7f208928702cdfd45a1e085668af52f634d7ca0db34dfb161fc5":"8510d78927c62b26f1965ce5f2d6b5978566b608bfdd02dfb450d43" + +mbedtls_mpi_core_montmul #126 (gen) 0xDD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499 is (dec) 99999999977^7 +mbedtls_mpi_core_montmul:8:8:4:4:"a6c6503e3c031fdbf6009a89ed60582b7233c5a85de28b16000000000000000":"75c8ed18270b583f16d442a467d32bf95c5e491e9b8523798000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"73cdf58f541b4a4b200d163b82d60488207147401ce5e9e87e4c8743734fc115":"73cdf58f541b4a4b200d163b82d60488207147401ce5e9e87e4c8743734fc115" + +mbedtls_mpi_core_montmul #127 (gen) +mbedtls_mpi_core_montmul:8:8:4:4:"bf84d1f85cf6b51e04d2c8f4ffd03532d852053cf99b387d4000000000000000":"397ba5a743c349f4f28bc583ecd5f06e0a25f9c6d98f09134000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"7aee85838cad05594c16c0f8dc37dcedbfc5cabd535243d1f6e9a72597421b16":"7aee85838cad05594c16c0f8dc37dcedbfc5cabd535243d1f6e9a72597421b16" + +mbedtls_mpi_core_montmul #128 (gen) +mbedtls_mpi_core_montmul:8:8:4:4:"6db11c3a4152ed1a2aa6fa34b0903ec82ea1b88908dcb482000000000000000":"ac8ac576a74ad6ca48f201bf89f77350ce86e821358d85920000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"543bb63086c17abcfb027fac0e173b0661225ce534fc035f4c571168704f3562":"543bb63086c17abcfb027fac0e173b0661225ce534fc035f4c571168704f3562" + +mbedtls_mpi_core_montmul #129 (gen) +mbedtls_mpi_core_montmul:8:8:4:4:"3001d96d7fe8b733f33687646fc3017e3ac417eb32e0ec708000000000000000":"925ddbdac4174e8321a48a32f79640e8cf7ec6f46ea235a80000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"9af46358ac6898dd3a4668f58748be748a93c45dae8309756a85c25f3370ea1e":"9af46358ac6898dd3a4668f58748be748a93c45dae8309756a85c25f3370ea1e" + +mbedtls_mpi_core_montmul #130 (gen) 0x141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41 is 99999999977^8 +mbedtls_mpi_core_montmul:10:10:5:5:"1029048755f2e60dd98c8de6d9989226b6bb4f0db8e46bd1939de560000000000000000000":"51bb7270b2e25cec0301a03e8275213bb6c2f6e6ec93d4d46d36ca0000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"bc135600e66e2f35482f257a39153e5a2313bb34fdf678a7768ef68baf4eb4af7950db678":"bc135600e66e2f35482f257a39153e5a2313bb34fdf678a7768ef68baf4eb4af7950db678" + +mbedtls_mpi_core_montmul #131 (gen) +mbedtls_mpi_core_montmul:10:10:5:5:"1c5337ff982b3ad6611257dbff5bbd7a9920ba2d4f5838a0cc681ce000000000000000000":"520c5d049ca4702031ba728591b665c4d4ccd3b2b86864d4c160fd2000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"a4041530bd752163a32ad6e21605d43621783491c739cc5b8426ed5c013c8f1874f4c33cf":"a4041530bd752163a32ad6e21605d43621783491c739cc5b8426ed5c013c8f1874f4c33cf" + +mbedtls_mpi_core_montmul #132 (gen) +mbedtls_mpi_core_montmul:10:9:5:5:"57074dfa00e42f6555bae624b7f0209f218adf57f73ed34ab0ff90c000000000000000000":"41eb14b6c07bfd3d1fe4f4a610c17cc44fcfcda695db040e011065000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"50035f4ad135181424da54e119e7b6c2d8563e4237d5c636457489fdcad2c98974f4d6986":"50035f4ad135181424da54e119e7b6c2d8563e4237d5c636457489fdcad2c98974f4d6986" + +mbedtls_mpi_core_montmul #133 (gen) +mbedtls_mpi_core_montmul:10:10:5:5:"d8ed7feed2fe855e6997ad6397f776158573d425031bf085a615784000000000000000000":"6f121dcd18c578ab5e229881006007bb6d319b179f11015fe958b9c000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"ec6c4ef84cdba8b8fb0e23834f954b74f695da3a7036afd2b8bda4cf1969a22a2703f4810":"ec6c4ef84cdba8b8fb0e23834f954b74f695da3a7036afd2b8bda4cf1969a22a2703f4810" + +mbedtls_mpi_core_montmul #134 (gen) 0x2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451 is (dec) 99999999977^10 +mbedtls_mpi_core_montmul:12:12:6:6:"2a462b156180ea5fe550d3758c764e06fae54e626b5f503265a09df76edbdfbfa1e6000000000000000000000000":"1136f41d1879fd4fb9e49e0943a46b6704d77c068ee237c3121f9071cfd3e6a00315800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"204e2ee5416bf5cdc9d983d92ec60d5df79e331272efa041f3cdb2a172361806ba048bd578108d717dd29c38dc1e":"204e2ee5416bf5cdc9d983d92ec60d5df79e331272efa041f3cdb2a172361806ba048bd578108d717dd29c38dc1e" + +mbedtls_mpi_core_montmul #135 (gen) +mbedtls_mpi_core_montmul:12:12:6:6:"c1ac3800dfb3c6954dea391d206200cf3c47f795bf4a5603b4cb88ae7e574de4740800000000000000000000000":"c0d16eda0549ede42fa0deb4635f7b7ce061fadea02ee4d85cba4c4f7096034193c800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"e61059c9d6aff1b0c8d1fae7c880b9491a7e8e7715283f9d27b17423c282ada6016362d610f7a2509c859b4e2c3":"e61059c9d6aff1b0c8d1fae7c880b9491a7e8e7715283f9d27b17423c282ada6016362d610f7a2509c859b4e2c3" + +mbedtls_mpi_core_montmul #136 (gen) +mbedtls_mpi_core_montmul:12:12:6:6:"19e45bb7633094d272588ad2e43bcb3ee341991c6731b6fa9d47c4018d7ce7bba5ee800000000000000000000000":"1e4f83166ae59f6b9cc8fd3e7677ed8bfc01bb99c98bd3eb084246b64c1e18c3365b800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"14dfcf79e82a33b504f887088c66d85abb43e4eb93ae643e6413a655c48fa6643fc9032c5e7dbfbb6291d707abc8":"14dfcf79e82a33b504f887088c66d85abb43e4eb93ae643e6413a655c48fa6643fc9032c5e7dbfbb6291d707abc8" + +mbedtls_mpi_core_montmul #137 (gen) +mbedtls_mpi_core_montmul:12:12:6:6:"1aa93395fad5f9b7f20b8f9028a054c0bb7c11bb8520e6a95e5a34f06cb70bcdd01a800000000000000000000000":"54b45afa5d4310192f8d224634242dd7dcfb342318df3d9bd37b4c614788ba13b8b000000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"1c56a73d8698564b51a42613a20c07f7fda723cbada776bebdb075b349a19b588345e9930dcf12178400d7fb32e6":"1c56a73d8698564b51a42613a20c07f7fda723cbada776bebdb075b349a19b588345e9930dcf12178400d7fb32e6" + +mbedtls_mpi_core_montmul #138 (gen) 0x8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051 is prime, (dec) 10^143 + 3^4 +mbedtls_mpi_core_montmul:15:15:8:8:"544f2628a28cfb5ce0a1b7180ee66b49716f1d9476c466c57f0c4b2308991784306d48f78686115ee19e25400000000000000000000000000000000":"677eb31ef8d66c120fa872a60cd47f6e10cbfdf94f90501bd7883cba03d185be0a0148d1625745e9c4c827300000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"1c17879ba8ffaf6e01f145b954e6f2d1da9b5e91b0cd41324228e0da4e2d8c8b7de9be8533452f0420d1c21e2b91ce6a47be8a154b70ab8e3afa0e2":"45d5439e49004056f25a7af76fa1fa0b2f41c6ac4da7d960f3c8619eabafe0f9637e4d0551442a732d4bc3832e01c21e2b91ce6a47be8a154b70ae4" + +mbedtls_mpi_core_montmul #139 (gen) +mbedtls_mpi_core_montmul:15:15:8:8:"76bb3470985174915e9993522aec989666908f9e8cf5cb9f037bf4aee33d8865cb6464174795d07e30015b80000000000000000000000000000000":"6aaaf60d5784dcef612d133613b179a317532ecca0eed40b8ad0c01e6d4a6d8c79a52af190abd51739009a900000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"10676de6ef5976bb3d0e91e01ad3de619c1c4d60644c38d061da315f0d11f81a961a8fe63625bb4ccd9f963765a89f46e88c73fc02d8f16af74bef5":"2f7c4c22707c864397f9905b3f7f6a558cd793e56bda9a594600a895b62581d391c9f98b91e9ef02b94c9befa097963765a89f46e88c73fc02d8f34" + +mbedtls_mpi_core_montmul #140 (gen) +mbedtls_mpi_core_montmul:15:15:8:8:"6cfdd6e60912e441d2d1fc88f421b533f0103a5322ccd3f4db84861643ad63fd63d1d8cfbc1d498162786ba00000000000000000000000000000000":"1177246ec5e93814816465e7f8f248b350d954439d35b2b5d75d917218e7fd5fb4c2f6d0667f9467fdcf33400000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"485cca6586b0540eceb3ef8644bd400f3c32a9e38dfe4f4513945895808d648cfa45a3a2e9691b6111ddef29103fa8981dd8a3bbc52c9b768034ac5":"43603ad0efccbc0db5981c2cc75573d32dc0c0d94a8a2f6a67bb003e769f421626e68bdf1ff7d809a8b9ebddc055ef29103fa8981dd8a3bbc52c9e1" + +mbedtls_mpi_core_montmul #141 (gen) +mbedtls_mpi_core_montmul:15:15:8:8:"7a09a0b0f8bbf8057116fb0277a9bdf3a91b5eaa8830d448081510d8973888be5a9f0ad04facb69aa3715f00000000000000000000000000000000":"764dec6c05a1c0d87b649efa5fd94c91ea28bffb4725d4ab4b33f1a3e8e3b314d799020e244a835a145ec9800000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"36a534b574adac80dfea3dabdf0a8c95f47511ff202eab325e5a6edfb7e3ab28ddc15b2f6023240939ba5b7339f7ada7225376a817263464cfba89d":"7a9f42a7ed20ab041b748b5594d63e5aa5c890cd88826a4120bec4c43a90bfb8c7f78ad9cd91756a5f0f5a9154725b7339f7ada7225376a81726392" + MPI Selftest depends_on:MBEDTLS_SELF_TEST mpi_selftest: diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 26d1553bae..d9109eced6 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -2026,6 +2026,86 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mbedtls_mpi_core_montmul( int limbs_AN4, int limbs_B4, + int limbs_AN8, int limbs_B8, + char * input_A, + char * input_B, + char * input_N, + char * input_X4, + char * input_X8 ) +{ + mbedtls_mpi A, B, N, X4, X8, T, CA; + + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &B ); + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &X4 ); /* expected result, sizeof(mbedtls_mpi_uint) == 4 */ + mbedtls_mpi_init( &X8 ); /* expected result, sizeof(mbedtls_mpi_uint) == 8 */ + mbedtls_mpi_init( &T ); + mbedtls_mpi_init( &CA ); /* copy of A */ + + TEST_EQUAL( mbedtls_test_read_mpi( &A, input_A ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &B, input_B ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &N, input_N ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &X4, input_X4 ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &X8, input_X8 ), 0 ); + + mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; + + int limbs_AN = ( sizeof(mbedtls_mpi_uint) == 4 ) ? limbs_AN4 : limbs_AN8; + int limbs_B = ( sizeof(mbedtls_mpi_uint) == 4 ) ? limbs_B4 : limbs_B8; + + TEST_ASSERT( (size_t)limbs_AN >= A.n && (size_t)limbs_AN >= X->n ); + TEST_ASSERT( (size_t)limbs_B >= B.n ); + TEST_ASSERT( limbs_B <= limbs_AN ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( A.s, 1 ); + TEST_EQUAL( B.s, 1 ); + TEST_EQUAL( N.s, 1 ); + TEST_EQUAL( X->s, 1 ); + + TEST_EQUAL( mbedtls_mpi_grow( &A, limbs_AN ), 0 ); + TEST_EQUAL( mbedtls_mpi_grow( &N, limbs_AN ), 0 ); + TEST_EQUAL( mbedtls_mpi_grow( X, limbs_AN ), 0 ); + TEST_EQUAL( mbedtls_mpi_grow( &B, limbs_B ), 0 ); + + TEST_EQUAL( mbedtls_mpi_grow( &T, limbs_AN * 2 + 1 ), 0 ); + + /* Calculate the Montgomery constant (this is unit tested separately) */ + mbedtls_mpi_uint mm = mbedtls_mpi_montg_init( N.p[0] ); + + TEST_EQUAL( mbedtls_mpi_copy( &CA, &A ), 0 ); /* take a copy */ + TEST_EQUAL( mbedtls_mpi_grow( &CA, limbs_AN ), 0 ); /* ensure it's got the right number of limbs */ + + mbedtls_mpi_montmul( &A, &B, &N, mm, &T ); + TEST_EQUAL( A.s, 1 ); /* ensure still positive */ + + /* Could use mbedtls_mpi_cmp_mpi(), but this gives finer detail if not the same */ + TEST_EQUAL( A.n, X->n ); + TEST_EQUAL( memcmp( A.p, X->p, A.n * sizeof(mbedtls_mpi_uint) ), 0 ); + + /* First overwrite A so we ensure mbedtls_mpi_core_montmul() does something */ + memset( A.p, 0xAA, A.n * sizeof(mbedtls_mpi_uint) ); + + /* Now test the new function: use the copy CA we took earlier of A as the + * LHS, and use A as the destination + */ + mbedtls_mpi_core_montmul( A.p, CA.p, B.p, B.n, N.p, N.n, mm, T.p ); + TEST_EQUAL( memcmp( A.p, X->p, A.n * sizeof(mbedtls_mpi_uint) ), 0 ); + +exit: + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &B ); + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &X4 ); + mbedtls_mpi_free( &X8 ); + mbedtls_mpi_free( &T ); + mbedtls_mpi_free( &CA ); +} +/* END_CASE */ + /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ void mpi_selftest( ) { From 938428453086333bdd4ba9a693271e277e65e9ef Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 5 Aug 2022 16:59:43 +0100 Subject: [PATCH 0033/1028] Use mbedtls_mpi_core_montmul() in mpi_montmul() Signed-off-by: Tom Cosgrove --- library/bignum.c | 102 ++++++++++----------------- library/bignum_core.h | 28 -------- tests/suites/test_suite_mpi.function | 26 ++----- 3 files changed, 44 insertions(+), 112 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 44b2c87c23..48bc77cfcc 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1553,65 +1553,39 @@ static void mpi_montg_init( mbedtls_mpi_uint *mm, const mbedtls_mpi *N ) *mm = mbedtls_mpi_montg_init( N->p[0] ); } -/* This would be static, but is tested */ -void mbedtls_mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B, - const mbedtls_mpi *N, mbedtls_mpi_uint mm, - const mbedtls_mpi *T ) +/** Montgomery multiplication: A = A * B * R^-1 mod N (HAC 14.36) + * + * \param[in,out] A One of the numbers to multiply. + * It must have at least as many limbs as N + * (A->n >= N->n), and any limbs beyond n are ignored. + * On successful completion, A contains the result of + * the multiplication A * B * R^-1 mod N where + * R = (2^ciL)^n. + * \param[in] B One of the numbers to multiply. + * It must be nonzero and must not have more limbs than N + * (B->n <= N->n). + * \param[in] N The modulo. N must be odd. + * \param mm The value calculated by `mpi_montg_init(&mm, N)`. + * This is -N^-1 mod 2^ciL. + * \param[in,out] T A bignum for temporary storage. + * It must be at least twice the limb size of N plus 1 + * (T->n >= 2 * N->n + 1). + * Its initial content is unused and + * its final content is indeterminate. + * Note that unlike the usual convention in the library + * for `const mbedtls_mpi*`, the content of T can change. + */ +static void mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B, + const mbedtls_mpi *N, mbedtls_mpi_uint mm, + const mbedtls_mpi *T ) { - size_t n, m; - mbedtls_mpi_uint *d; - - memset( T->p, 0, T->n * ciL ); - - d = T->p; - n = N->n; - m = ( B->n < n ) ? B->n : n; - - for( size_t i = 0; i < n; i++ ) - { - mbedtls_mpi_uint u0, u1; - - /* - * T = (T + u0*B + u1*N) / 2^biL - */ - u0 = A->p[i]; - u1 = ( d[0] + u0 * B->p[0] ) * mm; - - (void) mbedtls_mpi_core_mla( d, n + 2, - B->p, m, - u0 ); - (void) mbedtls_mpi_core_mla( d, n + 2, - N->p, n, - u1 ); - d++; - } - - /* At this point, d is either the desired result or the desired result - * plus N. We now potentially subtract N, avoiding leaking whether the - * subtraction is performed through side channels. */ - - /* Copy the n least significant limbs of d to A, so that - * A = d if d < N (recall that N has n limbs). */ - memcpy( A->p, d, n * ciL ); - /* If d >= N then we want to set A to d - N. To prevent timing attacks, - * do the calculation without using conditional tests. */ - /* Set d to d0 + (2^biL)^n - N where d0 is the current value of d. */ - d[n] += 1; - d[n] -= mbedtls_mpi_core_sub( d, d, N->p, n ); - /* If d0 < N then d < (2^biL)^n - * so d[n] == 0 and we want to keep A as it is. - * If d0 >= N then d >= (2^biL)^n, and d <= (2^biL)^n + N < 2 * (2^biL)^n - * so d[n] == 1 and we want to set A to the result of the subtraction - * which is d - (2^biL)^n, i.e. the n least significant limbs of d. - * This exactly corresponds to a conditional assignment. */ - mbedtls_ct_mpi_uint_cond_assign( n, A->p, d, (unsigned char) d[n] ); + mbedtls_mpi_core_montmul( A->p, A->p, B->p, B->n, N->p, N->n, mm, T->p ); } /* * Montgomery reduction: A = A * R^-1 mod N * - * See the doc for mbedtls_mpi_montmul() regarding constraints and guarantees on - * the parameters. + * See mpi_montmul() regarding constraints and guarantees on the parameters. */ static void mpi_montred( mbedtls_mpi *A, const mbedtls_mpi *N, mbedtls_mpi_uint mm, const mbedtls_mpi *T ) @@ -1622,7 +1596,7 @@ static void mpi_montred( mbedtls_mpi *A, const mbedtls_mpi *N, U.n = U.s = (int) z; U.p = &z; - mbedtls_mpi_montmul( A, &U, N, mm, T ); + mpi_montmul( A, &U, N, mm, T ); } /** @@ -1704,7 +1678,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, #endif j = N->n + 1; - /* All W[i] and X must have at least N->n limbs for the mbedtls_mpi_montmul() + /* All W[i] and X must have at least N->n limbs for the mpi_montmul() * and mpi_montred() calls later. Here we ensure that W[1] and X are * large enough, and later we'll grow other W[i] to the same length. * They must not be shrunk midway through this function! @@ -1747,7 +1721,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &W[1], A, N ) ); /* This should be a no-op because W[1] is already that large before * mbedtls_mpi_mod_mpi(), but it's necessary to avoid an overflow - * in mbedtls_mpi_montmul() below, so let's make sure. */ + * in mpi_montmul() below, so let's make sure. */ MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[1], N->n + 1 ) ); } else @@ -1755,7 +1729,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, /* Note that this is safe because W[1] always has at least N->n limbs * (it grew above and was preserved by mbedtls_mpi_copy()). */ - mbedtls_mpi_montmul( &W[1], &RR, N, mm, &T ); + mpi_montmul( &W[1], &RR, N, mm, &T ); /* * X = R^2 * R^-1 mod N = R mod N @@ -1774,7 +1748,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[j], &W[1] ) ); for( i = 0; i < wsize - 1; i++ ) - mbedtls_mpi_montmul( &W[j], &W[j], N, mm, &T ); + mpi_montmul( &W[j], &W[j], N, mm, &T ); /* * W[i] = W[i - 1] * W[1] @@ -1784,7 +1758,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[i], N->n + 1 ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[i], &W[i - 1] ) ); - mbedtls_mpi_montmul( &W[i], &W[1], N, mm, &T ); + mpi_montmul( &W[i], &W[1], N, mm, &T ); } } @@ -1821,7 +1795,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, /* * out of window, square X */ - mbedtls_mpi_montmul( X, X, N, mm, &T ); + mpi_montmul( X, X, N, mm, &T ); continue; } @@ -1839,13 +1813,13 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, * X = X^wsize R^-1 mod N */ for( i = 0; i < wsize; i++ ) - mbedtls_mpi_montmul( X, X, N, mm, &T ); + mpi_montmul( X, X, N, mm, &T ); /* * X = X * W[wbits] R^-1 mod N */ MBEDTLS_MPI_CHK( mpi_select( &WW, W, (size_t) 1 << wsize, wbits ) ); - mbedtls_mpi_montmul( X, &WW, N, mm, &T ); + mpi_montmul( X, &WW, N, mm, &T ); state--; nbits = 0; @@ -1858,12 +1832,12 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, */ for( i = 0; i < nbits; i++ ) { - mbedtls_mpi_montmul( X, X, N, mm, &T ); + mpi_montmul( X, X, N, mm, &T ); wbits <<= 1; if( ( wbits & ( one << wsize ) ) != 0 ) - mbedtls_mpi_montmul( X, &W[1], N, mm, &T ); + mpi_montmul( X, &W[1], N, mm, &T ); } /* diff --git a/library/bignum_core.h b/library/bignum_core.h index ca45480b9a..02ac55d1b3 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -263,32 +263,4 @@ mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *d, size_t n, unsigned cond ); -/** Montgomery multiplication: A = A * B * R^-1 mod N (HAC 14.36) - * - * This would be static, but is tested. - * - * \param[in,out] A One of the numbers to multiply. - * It must have at least as many limbs as N - * (A->n >= N->n), and any limbs beyond n are ignored. - * On successful completion, A contains the result of - * the multiplication A * B * R^-1 mod N where - * R = (2^ciL)^n. - * \param[in] B One of the numbers to multiply. - * It must be nonzero and must not have more limbs than N - * (B->n <= N->n). - * \param[in] N The modulo. N must be odd. - * \param mm The value calculated by `mpi_montg_init(&mm, N)`. - * This is -N^-1 mod 2^ciL. - * \param[in,out] T A bignum for temporary storage. - * It must be at least twice the limb size of N plus 1 - * (T->n >= 2 * N->n + 1). - * Its initial content is unused and - * its final content is indeterminate. - * Note that unlike the usual convention in the library - * for `const mbedtls_mpi*`, the content of T can change. - */ -void mbedtls_mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B, - const mbedtls_mpi *N, mbedtls_mpi_uint mm, - const mbedtls_mpi *T ); - #endif /* MBEDTLS_BIGNUM_CORE_H */ diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index d9109eced6..bf1212a1a8 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -2035,7 +2035,7 @@ void mbedtls_mpi_core_montmul( int limbs_AN4, int limbs_B4, char * input_X4, char * input_X8 ) { - mbedtls_mpi A, B, N, X4, X8, T, CA; + mbedtls_mpi A, B, N, X4, X8, T, R; mbedtls_mpi_init( &A ); mbedtls_mpi_init( &B ); @@ -2043,7 +2043,7 @@ void mbedtls_mpi_core_montmul( int limbs_AN4, int limbs_B4, mbedtls_mpi_init( &X4 ); /* expected result, sizeof(mbedtls_mpi_uint) == 4 */ mbedtls_mpi_init( &X8 ); /* expected result, sizeof(mbedtls_mpi_uint) == 8 */ mbedtls_mpi_init( &T ); - mbedtls_mpi_init( &CA ); /* copy of A */ + mbedtls_mpi_init( &R ); /* for the result */ TEST_EQUAL( mbedtls_test_read_mpi( &A, input_A ), 0 ); TEST_EQUAL( mbedtls_test_read_mpi( &B, input_B ), 0 ); @@ -2076,24 +2076,10 @@ void mbedtls_mpi_core_montmul( int limbs_AN4, int limbs_B4, /* Calculate the Montgomery constant (this is unit tested separately) */ mbedtls_mpi_uint mm = mbedtls_mpi_montg_init( N.p[0] ); - TEST_EQUAL( mbedtls_mpi_copy( &CA, &A ), 0 ); /* take a copy */ - TEST_EQUAL( mbedtls_mpi_grow( &CA, limbs_AN ), 0 ); /* ensure it's got the right number of limbs */ + TEST_EQUAL( mbedtls_mpi_grow( &R, limbs_AN ), 0 ); /* ensure it's got the right number of limbs */ - mbedtls_mpi_montmul( &A, &B, &N, mm, &T ); - TEST_EQUAL( A.s, 1 ); /* ensure still positive */ - - /* Could use mbedtls_mpi_cmp_mpi(), but this gives finer detail if not the same */ - TEST_EQUAL( A.n, X->n ); - TEST_EQUAL( memcmp( A.p, X->p, A.n * sizeof(mbedtls_mpi_uint) ), 0 ); - - /* First overwrite A so we ensure mbedtls_mpi_core_montmul() does something */ - memset( A.p, 0xAA, A.n * sizeof(mbedtls_mpi_uint) ); - - /* Now test the new function: use the copy CA we took earlier of A as the - * LHS, and use A as the destination - */ - mbedtls_mpi_core_montmul( A.p, CA.p, B.p, B.n, N.p, N.n, mm, T.p ); - TEST_EQUAL( memcmp( A.p, X->p, A.n * sizeof(mbedtls_mpi_uint) ), 0 ); + mbedtls_mpi_core_montmul( R.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); + TEST_EQUAL( memcmp( R.p, X->p, N.n * sizeof(mbedtls_mpi_uint) ), 0 ); exit: mbedtls_mpi_free( &A ); @@ -2102,7 +2088,7 @@ exit: mbedtls_mpi_free( &X4 ); mbedtls_mpi_free( &X8 ); mbedtls_mpi_free( &T ); - mbedtls_mpi_free( &CA ); + mbedtls_mpi_free( &R ); } /* END_CASE */ From 40d229487dce6e2a1b3029fb099d74c1703ab050 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 17 Aug 2022 06:42:44 +0100 Subject: [PATCH 0034/1028] Tidy up doc comments on existing function mpi_montmul() Signed-off-by: Tom Cosgrove --- library/bignum.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bignum.c b/library/bignum.c index 48bc77cfcc..f60ac16c8b 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1564,7 +1564,7 @@ static void mpi_montg_init( mbedtls_mpi_uint *mm, const mbedtls_mpi *N ) * \param[in] B One of the numbers to multiply. * It must be nonzero and must not have more limbs than N * (B->n <= N->n). - * \param[in] N The modulo. N must be odd. + * \param[in] N The modulus. \p N must be odd. * \param mm The value calculated by `mpi_montg_init(&mm, N)`. * This is -N^-1 mod 2^ciL. * \param[in,out] T A bignum for temporary storage. From 4641ec6c52b8df9ba4d000b168762f900d7d7c59 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 17 Aug 2022 06:56:08 +0100 Subject: [PATCH 0035/1028] Fix style following review comments Signed-off-by: Tom Cosgrove --- library/bignum_new.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/library/bignum_new.c b/library/bignum_new.c index d275fe81f7..7b2d3c02fb 100644 --- a/library/bignum_new.c +++ b/library/bignum_new.c @@ -36,7 +36,7 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, mbedtls_mpi_uint mm, mbedtls_mpi_uint *T ) { - memset( T, 0, (2*n+1)*ciL ); + memset( T, 0, ( 2 * n + 1 ) * ciL ); for( size_t i = 0; i < n; i++, T++ ) { @@ -109,12 +109,14 @@ mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *d, const mbedtls_mpi_uint *r, size_t n ) { - mbedtls_mpi_uint c = 0, t, z; + mbedtls_mpi_uint c = 0; for( size_t i = 0; i < n; i++ ) { - z = ( l[i] < c ); t = l[i] - c; - c = ( t < r[i] ) + z; d[i] = t - r[i]; + mbedtls_mpi_uint z = ( l[i] < c ); + mbedtls_mpi_uint t = l[i] - c; + c = ( t < r[i] ) + z; + d[i] = t - r[i]; } return( c ); From f88b47ea2730f17384690f6f223cc2fe17b311a2 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 17 Aug 2022 08:42:58 +0100 Subject: [PATCH 0036/1028] Remove 'const' qualifier from temporary for mpi_montmul() Signed-off-by: Tom Cosgrove --- library/bignum.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index f60ac16c8b..cfaaf5f20f 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1572,12 +1572,10 @@ static void mpi_montg_init( mbedtls_mpi_uint *mm, const mbedtls_mpi *N ) * (T->n >= 2 * N->n + 1). * Its initial content is unused and * its final content is indeterminate. - * Note that unlike the usual convention in the library - * for `const mbedtls_mpi*`, the content of T can change. */ static void mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B, const mbedtls_mpi *N, mbedtls_mpi_uint mm, - const mbedtls_mpi *T ) + mbedtls_mpi *T ) { mbedtls_mpi_core_montmul( A->p, A->p, B->p, B->n, N->p, N->n, mm, T->p ); } @@ -1588,7 +1586,7 @@ static void mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B, * See mpi_montmul() regarding constraints and guarantees on the parameters. */ static void mpi_montred( mbedtls_mpi *A, const mbedtls_mpi *N, - mbedtls_mpi_uint mm, const mbedtls_mpi *T ) + mbedtls_mpi_uint mm, mbedtls_mpi *T ) { mbedtls_mpi_uint z = 1; mbedtls_mpi U; From 2523791d002eddba7ca9d881f89cacdfef63f29a Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 19 Aug 2022 08:43:56 +0100 Subject: [PATCH 0037/1028] Better constant-time properties for mbedtls_mpi_core_montmul() Signed-off-by: Tom Cosgrove --- library/bignum_new.c | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/library/bignum_new.c b/library/bignum_new.c index 7b2d3c02fb..8d6e17bcda 100644 --- a/library/bignum_new.c +++ b/library/bignum_new.c @@ -24,6 +24,7 @@ #include "mbedtls/bignum.h" #include "bignum_core.h" #include "bn_mul.h" +#include "constant_time_internal.h" #include @@ -49,11 +50,34 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, (void) mbedtls_mpi_core_mla( T, n + 2, N, n, u1 ); } - mbedtls_mpi_uint carry, borrow; + /* It's possible that the result in T is > N, and so we might need to subtract N */ - carry = T[n]; - borrow = mbedtls_mpi_core_sub( X, T, N, n ); - (void) mbedtls_mpi_core_add_if( X, N, n, ( carry < borrow ) ); + mbedtls_mpi_uint carry = T[n]; + mbedtls_mpi_uint borrow = mbedtls_mpi_core_sub( X, T, N, n ); + + /* + * Both carry and borrow can only be 0 or 1. + * + * If carry = 1, the result in T must be > N by definition, and the subtraction + * using only n limbs will create borrow, but that will have the correct + * final result. + * + * i.e. (carry, borrow) of (1, 1) => return X + * + * If carry = 0, then we want to use the result of the subtraction iff + * borrow = 0. + * + * i.e. (carry, borrow) of (0, 0) => return X + * (0, 1) => return T + * + * We've confirmed that the unit tests exercise this function with all 3 of + * the valid (carry, borrow) combinations (listed above), and that we don't + * see (carry, borrow) = (1, 0). + * + * So the correct return value is already in X if (carry ^ borrow) = 0, + * but is in (the lower n limbs of) T if (carry ^ borrow) = 1. + */ + mbedtls_ct_mpi_uint_cond_assign( n, X, T, (unsigned char) ( carry ^ borrow ) ); } /* From 958fd3dc0cdfdff117f557837cf9f35e0840adc7 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 24 Aug 2022 11:08:51 +0100 Subject: [PATCH 0038/1028] Remove bignum_new.c, moving contents to bignum_core.c Signed-off-by: Tom Cosgrove --- include/mbedtls/mbedtls_config.h | 1 - library/CMakeLists.txt | 1 - library/Makefile | 1 - library/bignum_core.c | 137 +++++++++++++++++++++++++ library/bignum_new.c | 166 ------------------------------- 5 files changed, 137 insertions(+), 169 deletions(-) delete mode 100644 library/bignum_new.c diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index cfa5e46e80..ad0e5992a3 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2016,7 +2016,6 @@ * library/bignum_core.c * library/bignum_mod.c * library/bignum_mod_raw.c - * library/bignum_new.c * Caller: library/dhm.c * library/ecp.c * library/ecdsa.c diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index 7e28df0df7..378cfb4570 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -21,7 +21,6 @@ set(src_crypto bignum_core.c bignum_mod.c bignum_mod_raw.c - bignum_new.c camellia.c ccm.c chacha20.c diff --git a/library/Makefile b/library/Makefile index 041b5afbd1..85cea6b08d 100644 --- a/library/Makefile +++ b/library/Makefile @@ -86,7 +86,6 @@ OBJS_CRYPTO= \ bignum_core.o \ bignum_mod.o \ bignum_mod_raw.o \ - bignum_new.o \ camellia.o \ ccm.o \ chacha20.o \ diff --git a/library/bignum_core.c b/library/bignum_core.c index 8e89766a72..bc1bca18f7 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -37,6 +37,8 @@ #endif #include "bignum_core.h" +#include "bn_mul.h" +#include "constant_time_internal.h" size_t mbedtls_mpi_core_clz( mbedtls_mpi_uint a ) { @@ -291,4 +293,139 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *X, return( 0 ); } +void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t B_len, + const mbedtls_mpi_uint *N, + size_t n, + mbedtls_mpi_uint mm, + mbedtls_mpi_uint *T ) +{ + memset( T, 0, ( 2 * n + 1 ) * ciL ); + + for( size_t i = 0; i < n; i++, T++ ) + { + mbedtls_mpi_uint u0, u1; + /* T = (T + u0*B + u1*N) / 2^biL */ + u0 = A[i]; + u1 = ( T[0] + u0 * B[0] ) * mm; + + (void) mbedtls_mpi_core_mla( T, n + 2, B, B_len, u0 ); + (void) mbedtls_mpi_core_mla( T, n + 2, N, n, u1 ); + } + + /* It's possible that the result in T is > N, and so we might need to subtract N */ + + mbedtls_mpi_uint carry = T[n]; + mbedtls_mpi_uint borrow = mbedtls_mpi_core_sub( X, T, N, n ); + + /* + * Both carry and borrow can only be 0 or 1. + * + * If carry = 1, the result in T must be > N by definition, and the subtraction + * using only n limbs will create borrow, but that will have the correct + * final result. + * + * i.e. (carry, borrow) of (1, 1) => return X + * + * If carry = 0, then we want to use the result of the subtraction iff + * borrow = 0. + * + * i.e. (carry, borrow) of (0, 0) => return X + * (0, 1) => return T + * + * We've confirmed that the unit tests exercise this function with all 3 of + * the valid (carry, borrow) combinations (listed above), and that we don't + * see (carry, borrow) = (1, 0). + * + * So the correct return value is already in X if (carry ^ borrow) = 0, + * but is in (the lower n limbs of) T if (carry ^ borrow) = 1. + */ + mbedtls_ct_mpi_uint_cond_assign( n, X, T, (unsigned char) ( carry ^ borrow ) ); +} + +/* + * Fast Montgomery initialization (thanks to Tom St Denis). + */ +mbedtls_mpi_uint mbedtls_mpi_montg_init( mbedtls_mpi_uint m0 ) +{ + mbedtls_mpi_uint x = m0; + + x += ( ( m0 + 2 ) & 4 ) << 1; + + for( unsigned int i = biL; i >= 8; i /= 2 ) + x *= ( 2 - ( m0 * x ) ); + + return( ~x + 1 ); +} + +mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len, + const mbedtls_mpi_uint *s, size_t s_len, + mbedtls_mpi_uint b ) +{ + mbedtls_mpi_uint c = 0; /* carry */ + if( d_len < s_len ) + s_len = d_len; + size_t excess_len = d_len - s_len; + size_t steps_x8 = s_len / 8; + size_t steps_x1 = s_len & 7; + + while( steps_x8-- ) + { + MULADDC_X8_INIT + MULADDC_X8_CORE + MULADDC_X8_STOP + } + + while( steps_x1-- ) + { + MULADDC_X1_INIT + MULADDC_X1_CORE + MULADDC_X1_STOP + } + + while( excess_len-- ) + { + *d += c; c = ( *d < c ); d++; + } + + return( c ); +} + +mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *d, + const mbedtls_mpi_uint *l, + const mbedtls_mpi_uint *r, + size_t n ) +{ + mbedtls_mpi_uint c = 0; + + for( size_t i = 0; i < n; i++ ) + { + mbedtls_mpi_uint z = ( l[i] < c ); + mbedtls_mpi_uint t = l[i] - c; + c = ( t < r[i] ) + z; + d[i] = t - r[i]; + } + + return( c ); +} + +mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *d, + const mbedtls_mpi_uint *r, + size_t n, + unsigned cond ) +{ + mbedtls_mpi_uint c = 0, t; + for( size_t i = 0; i < n; i++ ) + { + mbedtls_mpi_uint add = cond * r[i]; + t = c; + t += d[i]; c = ( t < d[i] ); + t += add; c += ( t < add ); + d[i] = t; + } + return( c ); +} + #endif /* MBEDTLS_BIGNUM_C */ diff --git a/library/bignum_new.c b/library/bignum_new.c deleted file mode 100644 index 8d6e17bcda..0000000000 --- a/library/bignum_new.c +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Multi-precision integer library - * - * Copyright The Mbed TLS Contributors - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "common.h" - -#if defined(MBEDTLS_BIGNUM_C) - -#include "mbedtls/bignum.h" -#include "bignum_core.h" -#include "bn_mul.h" -#include "constant_time_internal.h" - -#include - -void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - size_t B_len, - const mbedtls_mpi_uint *N, - size_t n, - mbedtls_mpi_uint mm, - mbedtls_mpi_uint *T ) -{ - memset( T, 0, ( 2 * n + 1 ) * ciL ); - - for( size_t i = 0; i < n; i++, T++ ) - { - mbedtls_mpi_uint u0, u1; - /* T = (T + u0*B + u1*N) / 2^biL */ - u0 = A[i]; - u1 = ( T[0] + u0 * B[0] ) * mm; - - (void) mbedtls_mpi_core_mla( T, n + 2, B, B_len, u0 ); - (void) mbedtls_mpi_core_mla( T, n + 2, N, n, u1 ); - } - - /* It's possible that the result in T is > N, and so we might need to subtract N */ - - mbedtls_mpi_uint carry = T[n]; - mbedtls_mpi_uint borrow = mbedtls_mpi_core_sub( X, T, N, n ); - - /* - * Both carry and borrow can only be 0 or 1. - * - * If carry = 1, the result in T must be > N by definition, and the subtraction - * using only n limbs will create borrow, but that will have the correct - * final result. - * - * i.e. (carry, borrow) of (1, 1) => return X - * - * If carry = 0, then we want to use the result of the subtraction iff - * borrow = 0. - * - * i.e. (carry, borrow) of (0, 0) => return X - * (0, 1) => return T - * - * We've confirmed that the unit tests exercise this function with all 3 of - * the valid (carry, borrow) combinations (listed above), and that we don't - * see (carry, borrow) = (1, 0). - * - * So the correct return value is already in X if (carry ^ borrow) = 0, - * but is in (the lower n limbs of) T if (carry ^ borrow) = 1. - */ - mbedtls_ct_mpi_uint_cond_assign( n, X, T, (unsigned char) ( carry ^ borrow ) ); -} - -/* - * Fast Montgomery initialization (thanks to Tom St Denis). - */ -mbedtls_mpi_uint mbedtls_mpi_montg_init( mbedtls_mpi_uint m0 ) -{ - mbedtls_mpi_uint x = m0; - - x += ( ( m0 + 2 ) & 4 ) << 1; - - for( unsigned int i = biL; i >= 8; i /= 2 ) - x *= ( 2 - ( m0 * x ) ); - - return( ~x + 1 ); -} - -mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len, - const mbedtls_mpi_uint *s, size_t s_len, - mbedtls_mpi_uint b ) -{ - mbedtls_mpi_uint c = 0; /* carry */ - if( d_len < s_len ) - s_len = d_len; - size_t excess_len = d_len - s_len; - size_t steps_x8 = s_len / 8; - size_t steps_x1 = s_len & 7; - - while( steps_x8-- ) - { - MULADDC_X8_INIT - MULADDC_X8_CORE - MULADDC_X8_STOP - } - - while( steps_x1-- ) - { - MULADDC_X1_INIT - MULADDC_X1_CORE - MULADDC_X1_STOP - } - - while( excess_len-- ) - { - *d += c; c = ( *d < c ); d++; - } - - return( c ); -} - -mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *d, - const mbedtls_mpi_uint *l, - const mbedtls_mpi_uint *r, - size_t n ) -{ - mbedtls_mpi_uint c = 0; - - for( size_t i = 0; i < n; i++ ) - { - mbedtls_mpi_uint z = ( l[i] < c ); - mbedtls_mpi_uint t = l[i] - c; - c = ( t < r[i] ) + z; - d[i] = t - r[i]; - } - - return( c ); -} - -mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *d, - const mbedtls_mpi_uint *r, - size_t n, - unsigned cond ) -{ - mbedtls_mpi_uint c = 0, t; - for( size_t i = 0; i < n; i++ ) - { - mbedtls_mpi_uint add = cond * r[i]; - t = c; - t += d[i]; c = ( t < d[i] ); - t += add; c += ( t < add ); - d[i] = t; - } - return( c ); -} - -#endif /* MBEDTLS_BIGNUM_C */ From f0ffb1585a7638fa70cf4afbaae57bb71dc5923d Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 24 Aug 2022 11:17:15 +0100 Subject: [PATCH 0039/1028] Have mbedtls_mpi_montg_init() take the modulus, rather than just its least significant limb Signed-off-by: Tom Cosgrove --- library/bignum.c | 2 +- library/bignum_core.c | 8 ++++---- library/bignum_core.h | 8 ++++---- tests/suites/test_suite_mpi.function | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index cfaaf5f20f..d5e799e053 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1550,7 +1550,7 @@ int mbedtls_mpi_mod_int( mbedtls_mpi_uint *r, const mbedtls_mpi *A, mbedtls_mpi_ */ static void mpi_montg_init( mbedtls_mpi_uint *mm, const mbedtls_mpi *N ) { - *mm = mbedtls_mpi_montg_init( N->p[0] ); + *mm = mbedtls_mpi_montg_init( N->p ); } /** Montgomery multiplication: A = A * B * R^-1 mod N (HAC 14.36) diff --git a/library/bignum_core.c b/library/bignum_core.c index bc1bca18f7..ac92853611 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -348,14 +348,14 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, /* * Fast Montgomery initialization (thanks to Tom St Denis). */ -mbedtls_mpi_uint mbedtls_mpi_montg_init( mbedtls_mpi_uint m0 ) +mbedtls_mpi_uint mbedtls_mpi_montg_init( const mbedtls_mpi_uint *N ) { - mbedtls_mpi_uint x = m0; + mbedtls_mpi_uint x = N[0]; - x += ( ( m0 + 2 ) & 4 ) << 1; + x += ( ( N[0] + 2 ) & 4 ) << 1; for( unsigned int i = biL; i >= 8; i /= 2 ) - x *= ( 2 - ( m0 * x ) ); + x *= ( 2 - ( N[0] * x ) ); return( ~x + 1 ); } diff --git a/library/bignum_core.h b/library/bignum_core.h index 02ac55d1b3..85e25a82c9 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -186,12 +186,12 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, * \brief Calculate initialisation value for fast Montgomery modular * multiplication * - * \param m0 The least-significant mbedtls_mpi_uint from the modulus, which - * must be odd + * \param[in] N Little-endian presentation of the modulus. This must have + * at least one limb. * - * \return The initialisation value for fast Montgomery modular multiplication + * \return The initialisation value for fast Montgomery modular multiplication */ -mbedtls_mpi_uint mbedtls_mpi_montg_init( mbedtls_mpi_uint m0 ); +mbedtls_mpi_uint mbedtls_mpi_montg_init( const mbedtls_mpi_uint *N ); /** * \brief Perform a known-size multiply accumulate operation: d += b * s diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index bf1212a1a8..dcc869f806 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -2015,7 +2015,7 @@ void mbedtls_mpi_montg_init( char * input_N, char * input_mm ) TEST_EQUAL( mm.s, 1 ); /* mbedtls_mpi_montg_init() only returns a result, no error possible */ - mbedtls_mpi_uint result = mbedtls_mpi_montg_init( N.p[0] ); + mbedtls_mpi_uint result = mbedtls_mpi_montg_init( N.p ); /* Check we got the correct result */ TEST_EQUAL( result, mm.p[0] ); @@ -2074,7 +2074,7 @@ void mbedtls_mpi_core_montmul( int limbs_AN4, int limbs_B4, TEST_EQUAL( mbedtls_mpi_grow( &T, limbs_AN * 2 + 1 ), 0 ); /* Calculate the Montgomery constant (this is unit tested separately) */ - mbedtls_mpi_uint mm = mbedtls_mpi_montg_init( N.p[0] ); + mbedtls_mpi_uint mm = mbedtls_mpi_montg_init( N.p ); TEST_EQUAL( mbedtls_mpi_grow( &R, limbs_AN ), 0 ); /* ensure it's got the right number of limbs */ From 72594633a1bdc73339dff5b46a5955848367557c Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 24 Aug 2022 11:51:58 +0100 Subject: [PATCH 0040/1028] Apply the function parameter naming convention Signed-off-by: Tom Cosgrove --- library/bignum_core.c | 54 +++++++++--------- library/bignum_core.h | 126 ++++++++++++++++++++++-------------------- 2 files changed, 92 insertions(+), 88 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index ac92853611..4e5012b79b 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -296,35 +296,35 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *X, void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, const mbedtls_mpi_uint *B, - size_t B_len, + size_t B_limbs, const mbedtls_mpi_uint *N, - size_t n, + size_t AN_limbs, mbedtls_mpi_uint mm, mbedtls_mpi_uint *T ) { - memset( T, 0, ( 2 * n + 1 ) * ciL ); + memset( T, 0, ( 2 * AN_limbs + 1 ) * ciL ); - for( size_t i = 0; i < n; i++, T++ ) + for( size_t i = 0; i < AN_limbs; i++, T++ ) { mbedtls_mpi_uint u0, u1; /* T = (T + u0*B + u1*N) / 2^biL */ u0 = A[i]; u1 = ( T[0] + u0 * B[0] ) * mm; - (void) mbedtls_mpi_core_mla( T, n + 2, B, B_len, u0 ); - (void) mbedtls_mpi_core_mla( T, n + 2, N, n, u1 ); + (void) mbedtls_mpi_core_mla( T, AN_limbs + 2, B, B_limbs, u0 ); + (void) mbedtls_mpi_core_mla( T, AN_limbs + 2, N, AN_limbs, u1 ); } /* It's possible that the result in T is > N, and so we might need to subtract N */ - mbedtls_mpi_uint carry = T[n]; - mbedtls_mpi_uint borrow = mbedtls_mpi_core_sub( X, T, N, n ); + mbedtls_mpi_uint carry = T[AN_limbs]; + mbedtls_mpi_uint borrow = mbedtls_mpi_core_sub( X, T, N, AN_limbs ); /* * Both carry and borrow can only be 0 or 1. * * If carry = 1, the result in T must be > N by definition, and the subtraction - * using only n limbs will create borrow, but that will have the correct + * using only AN_limbs limbs will create borrow, but that will have the correct * final result. * * i.e. (carry, borrow) of (1, 1) => return X @@ -340,9 +340,9 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, * see (carry, borrow) = (1, 0). * * So the correct return value is already in X if (carry ^ borrow) = 0, - * but is in (the lower n limbs of) T if (carry ^ borrow) = 1. + * but is in (the lower AN_limbs limbs of) T if (carry ^ borrow) = 1. */ - mbedtls_ct_mpi_uint_cond_assign( n, X, T, (unsigned char) ( carry ^ borrow ) ); + mbedtls_ct_mpi_uint_cond_assign( AN_limbs, X, T, (unsigned char) ( carry ^ borrow ) ); } /* @@ -393,37 +393,37 @@ mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len, return( c ); } -mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *d, - const mbedtls_mpi_uint *l, - const mbedtls_mpi_uint *r, - size_t n ) +mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t limbs ) { mbedtls_mpi_uint c = 0; - for( size_t i = 0; i < n; i++ ) + for( size_t i = 0; i < limbs; i++ ) { - mbedtls_mpi_uint z = ( l[i] < c ); - mbedtls_mpi_uint t = l[i] - c; - c = ( t < r[i] ) + z; - d[i] = t - r[i]; + mbedtls_mpi_uint z = ( A[i] < c ); + mbedtls_mpi_uint t = A[i] - c; + c = ( t < B[i] ) + z; + X[i] = t - B[i]; } return( c ); } -mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *d, - const mbedtls_mpi_uint *r, - size_t n, +mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t limbs, unsigned cond ) { mbedtls_mpi_uint c = 0, t; - for( size_t i = 0; i < n; i++ ) + for( size_t i = 0; i < limbs; i++ ) { - mbedtls_mpi_uint add = cond * r[i]; + mbedtls_mpi_uint add = cond * B[i]; t = c; - t += d[i]; c = ( t < d[i] ); + t += A[i]; c = ( t < A[i] ); t += add; c += ( t < add ); - d[i] = t; + A[i] = t; } return( c ); } diff --git a/library/bignum_core.h b/library/bignum_core.h index 85e25a82c9..7fd6fed911 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -158,28 +158,28 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, /** * \brief Montgomery multiplication: X = A * B * R^-1 mod N (HAC 14.36) * - * \param[out] X The destination MPI, as a little-endian array of - * length \p n. - * On successful completion, X contains the result of - * the multiplication A * B * R^-1 mod N where - * R = (2^ciL)^n. - * \param[in] A Little-endian presentation of first operand. - * Must have exactly \p n limbs. - * \param[in] B Little-endian presentation of second operand. - * \param[in] B_len The number of limbs in \p B. - * \param[in] N Little-endian presentation of the modulus. - * This must be odd and have exactly \p n limbs. - * \param[in] n The number of limbs in \p X, \p A, \p N. - * \param mm The Montgomery constant for \p N: -N^-1 mod 2^ciL. - * This can be calculated by `mbedtls_mpi_montg_init()`. - * \param[in,out] T Temporary storage of size at least 2*n+1 limbs. - * Its initial content is unused and - * its final content is indeterminate. + * \param[out] X The destination MPI, as a little-endian array of + * length \p AN_limbs. + * On successful completion, X contains the result of + * the multiplication A * B * R^-1 mod N where + * R = (2^ciL)^AN_limbs. + * \param[in] A Little-endian presentation of first operand. + * Must have exactly \p AN_limbs limbs. + * \param[in] B Little-endian presentation of second operand. + * \param[in] B_limbs The number of limbs in \p B. + * \param[in] N Little-endian presentation of the modulus. + * This must be odd and have exactly \p AN_limbs limbs. + * \param[in] AN_limbs The number of limbs in \p X, \p A, \p N. + * \param mm The Montgomery constant for \p N: -N^-1 mod 2^ciL. + * This can be calculated by `mbedtls_mpi_montg_init()`. + * \param[in,out] T Temporary storage of size at least 2*AN_limbs+1 limbs. + * Its initial content is unused and + * its final content is indeterminate. */ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, size_t B_len, - const mbedtls_mpi_uint *N, size_t n, + const mbedtls_mpi_uint *B, size_t B_limbs, + const mbedtls_mpi_uint *N, size_t AN_limbs, mbedtls_mpi_uint mm, mbedtls_mpi_uint *T ); /** @@ -194,46 +194,46 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, mbedtls_mpi_uint mbedtls_mpi_montg_init( const mbedtls_mpi_uint *N ); /** - * \brief Perform a known-size multiply accumulate operation: d += b * s + * \brief Perform a known-size multiply accumulate operation: A += c * B * - * \param[in,out] d The pointer to the (little-endian) array - * representing the bignum to accumulate onto. - * \param d_len The number of limbs of \p d. This must be - * at least \p s_len. - * \param[in] s The pointer to the (little-endian) array - * representing the bignum to multiply with. - * This may be the same as \p d. Otherwise, - * it must be disjoint from \p d. - * \param s_len The number of limbs of \p s. - * \param b A scalar to multiply with. + * \param[in,out] A The pointer to the (little-endian) array + * representing the bignum to accumulate onto. + * \param A_limbs The number of limbs of \p A. This must be + * at least \p B_limbs. + * \param[in] B The pointer to the (little-endian) array + * representing the bignum to multiply with. + * This may be the same as \p A. Otherwise, + * it must be disjoint from \p A. + * \param B_limbs The number of limbs of \p B. + * \param c A scalar to multiply with. * - * \return c The carry at the end of the operation. + * \return The carry at the end of the operation. */ -mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len, - const mbedtls_mpi_uint *s, size_t s_len, - mbedtls_mpi_uint b ); +mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *A, size_t A_limbs, + const mbedtls_mpi_uint *B, size_t B_limbs, + mbedtls_mpi_uint c ); /** * \brief Subtract two known-size large unsigned integers, returning the borrow. * - * Calculate l - r where l and r have the same size. - * This function operates modulo (2^ciL)^n and returns the carry - * (1 if there was a wraparound, i.e. if `l < r`, and 0 otherwise). + * Calculate A - B where A and B have the same size. + * This function operates modulo (2^ciL)^limbs and returns the carry + * (1 if there was a wraparound, i.e. if `A < B`, and 0 otherwise). * - * d may be aliased to l or r. + * X may be aliased to A or B. * - * \param[out] d The result of the subtraction. - * \param[in] l Little-endian presentation of left operand. - * \param[in] r Little-endian presentation of right operand. - * \param n Number of limbs of \p d, \p l and \p r. + * \param[out] X The result of the subtraction. + * \param[in] A Little-endian presentation of left operand. + * \param[in] B Little-endian presentation of right operand. + * \param limbs Number of limbs of \p X, \p A and \p B. * - * \return 1 if `l < r`. - * 0 if `l >= r`. + * \return 1 if `A < B`. + * 0 if `A >= B`. */ -mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *d, - const mbedtls_mpi_uint *l, - const mbedtls_mpi_uint *r, - size_t n ); +mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t limbs ); /** * \brief Constant-time conditional addition of two known-size large unsigned @@ -243,24 +243,28 @@ mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *d, * * ``` * if( cond ) - * d += r; + * A += B; * return carry; * ``` * - * \param[in,out] d The pointer to the (little-endian) array - * representing the bignum to accumulate onto. - * \param[in] r The pointer to the (little-endian) array - * representing the bignum to conditionally add - * to \p d. This must be disjoint from \p d. - * \param n Number of limbs of \p d and \p r. - * \param cond Condition bit dictating whether addition should - * happen or not. This must be \c 0 or \c 1. + * \param[in,out] A The pointer to the (little-endian) array + * representing the bignum to accumulate onto. + * \param[in] B The pointer to the (little-endian) array + * representing the bignum to conditionally add + * to \p A. This must be disjoint from \p A. + * \param limbs Number of limbs of \p A and \p B. + * \param cond Condition bit dictating whether addition should + * happen or not. This must be \c 0 or \c 1. * - * \return 1 if `d + cond*r >= (2^{ciL})^n`, 0 otherwise. + * \warning If \p assign is neither 0 nor 1, the result of this function + * is unspecified, and the resulting value in \p A might be + * neither its original value nor \p A + \p B. + * + * \return 1 if `A + cond * B >= (2^{ciL})^limbs`, 0 otherwise. */ -mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *d, - const mbedtls_mpi_uint *r, - size_t n, +mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t limbs, unsigned cond ); #endif /* MBEDTLS_BIGNUM_CORE_H */ From 383461c92fe776cd8e45290fd4a492b2dcf11b48 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 23 Aug 2022 11:29:05 +0100 Subject: [PATCH 0041/1028] Separate CMake targets for bignum and PSA Signed-off-by: Werner Lewis --- tests/CMakeLists.txt | 65 ++++++++++++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 18 deletions(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index dcc5de0ffb..776d9557d3 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -26,7 +26,7 @@ execute_process( WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/.. OUTPUT_VARIABLE - bignum_generated_data_files) + base_bignum_generated_data_files) execute_process( COMMAND @@ -37,32 +37,44 @@ execute_process( WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/.. OUTPUT_VARIABLE - psa_generated_data_files) + base_psa_generated_data_files) # Derive generated file paths in the build directory -set(base_generated_data_files ${bignum_generated_data_files} ${psa_generated_data_files}) -set(generated_data_files "") -foreach(file ${base_generated_data_files}) - list(APPEND generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/${file}) +set(base_generated_data_files ${base_bignum_generated_data_files} ${base_psa_generated_data_files}) +set(bignum_generated_data_files "") +set(psa_generated_data_files "") +foreach(file ${base_bignum_generated_data_files}) + list(APPEND bignum_generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/${file}) +endforeach() +foreach(file ${base_psa_generated_data_files}) + list(APPEND psa_generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/${file}) endforeach() if(GEN_FILES) add_custom_command( OUTPUT - ${generated_data_files} + ${bignum_generated_data_files} + WORKING_DIRECTORY + ${CMAKE_CURRENT_SOURCE_DIR}/.. + COMMAND + ${MBEDTLS_PYTHON_EXECUTABLE} + ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_bignum_tests.py + --directory ${CMAKE_CURRENT_BINARY_DIR}/suites + DEPENDS + ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_bignum_tests.py + ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_case.py + ) + add_custom_command( + OUTPUT + ${psa_generated_data_files} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/.. COMMAND ${MBEDTLS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_psa_tests.py --directory ${CMAKE_CURRENT_BINARY_DIR}/suites - COMMAND - ${MBEDTLS_PYTHON_EXECUTABLE} - ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_bignum_tests.py - --directory ${CMAKE_CURRENT_BINARY_DIR}/suites DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_psa_tests.py - ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_bignum_tests.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/crypto_knowledge.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/macro_collector.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/psa_storage.py @@ -82,7 +94,8 @@ endif() # they can cause race conditions in parallel builds. # With this line, only 4 sub-makefiles include the above command, that reduces # the risk of a race. -add_custom_target(test_suite_generated_data DEPENDS ${generated_data_files}) +add_custom_target(test_suite_bignum_generated_data DEPENDS ${bignum_generated_data_files}) +add_custom_target(test_suite_psa_generated_data DEPENDS ${psa_generated_data_files}) # Test suites caught by SKIP_TEST_SUITES are built but not executed. # "foo" as a skip pattern skips "test_suite_foo" and "test_suite_foo.bar" # but not "test_suite_foobar". @@ -99,23 +112,39 @@ function(add_test_suite suite_name) # Get the test names of the tests with generated .data files # from the generated_data_files list in parent scope. - set(generated_data_names "") - foreach(generated_data_file ${generated_data_files}) + set(bignum_generated_data_names "") + set(psa_generated_data_names "") + foreach(generated_data_file ${bignum_generated_data_files}) # Get the plain filename get_filename_component(generated_data_name ${generated_data_file} NAME) # Remove the ".data" extension get_name_without_last_ext(generated_data_name ${generated_data_name}) # Remove leading "test_suite_" string(SUBSTRING ${generated_data_name} 11 -1 generated_data_name) - list(APPEND generated_data_names ${generated_data_name}) + list(APPEND bignum_generated_data_names ${generated_data_name}) + endforeach() + foreach(generated_data_file ${psa_generated_data_files}) + # Get the plain filename + get_filename_component(generated_data_name ${generated_data_file} NAME) + # Remove the ".data" extension + get_name_without_last_ext(generated_data_name ${generated_data_name}) + # Remove leading "test_suite_" + string(SUBSTRING ${generated_data_name} 11 -1 generated_data_name) + list(APPEND psa_generated_data_names ${generated_data_name}) endforeach() - if(";${generated_data_names};" MATCHES ";${data_name};") + if(";${bignum_generated_data_names};" MATCHES ";${data_name};") set(data_file ${CMAKE_CURRENT_BINARY_DIR}/suites/test_suite_${data_name}.data) + set(dependency test_suite_bignum_generated_data) + elseif(";${psa_generated_data_names};" MATCHES ";${data_name};") + set(data_file + ${CMAKE_CURRENT_BINARY_DIR}/suites/test_suite_${data_name}.data) + set(dependency test_suite_psa_generated_data) else() set(data_file ${CMAKE_CURRENT_SOURCE_DIR}/suites/test_suite_${data_name}.data) + set(dependency test_suite_bignum_generated_data test_suite_psa_generated_data) endif() add_custom_command( @@ -146,7 +175,7 @@ function(add_test_suite suite_name) ) add_executable(test_suite_${data_name} test_suite_${data_name}.c $) - add_dependencies(test_suite_${data_name} test_suite_generated_data) + add_dependencies(test_suite_${data_name} ${dependency}) target_link_libraries(test_suite_${data_name} ${libs}) # Include test-specific header files from ./include and private header # files (used by some invasive tests) from ../library. Public header From fbb75e3fc5cf5ae2f3580ac29be41001b29eefa4 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 24 Aug 2022 11:30:03 +0100 Subject: [PATCH 0042/1028] Separate common test generation classes/functions Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 149 +++++++++++++++++++++++++ tests/scripts/generate_bignum_tests.py | 129 ++------------------- tests/scripts/generate_psa_tests.py | 81 ++------------ 3 files changed, 167 insertions(+), 192 deletions(-) create mode 100644 scripts/mbedtls_dev/test_generation.py diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py new file mode 100644 index 0000000000..2414f3a4b5 --- /dev/null +++ b/scripts/mbedtls_dev/test_generation.py @@ -0,0 +1,149 @@ +#!/usr/bin/env python3 +"""Common test generation classes and main function. + +These are used both by generate_psa_tests.py and generate_bignum_tests.py. +""" + +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse +import os +import posixpath +import re +from typing import Callable, Dict, Iterable, List, Type, TypeVar + +from mbedtls_dev import build_tree +from mbedtls_dev import test_case + +T = TypeVar('T') #pylint: disable=invalid-name + + +class BaseTarget: + """Base target for test case generation. + + Attributes: + count: Counter for test class. + desc: Short description of test case. + func: Function which the class generates tests for. + gen_file: File to write generated tests to. + title: Description of the test function/purpose. + """ + count = 0 + desc = "" + func = "" + gen_file = "" + title = "" + + def __init__(self) -> None: + type(self).count += 1 + + @property + def args(self) -> List[str]: + """Create list of arguments for test case.""" + return [] + + @property + def description(self) -> str: + """Create a numbered test description.""" + return "{} #{} {}".format(self.title, self.count, self.desc) + + def create_test_case(self) -> test_case.TestCase: + """Generate test case from the current object.""" + tc = test_case.TestCase() + tc.set_description(self.description) + tc.set_function(self.func) + tc.set_arguments(self.args) + + return tc + + @classmethod + def generate_tests(cls): + """Generate test cases for the target subclasses.""" + for subclass in sorted(cls.__subclasses__(), key=lambda c: c.__name__): + yield from subclass.generate_tests() + + +class TestGenerator: + """Generate test data.""" + def __init__(self, options) -> None: + self.test_suite_directory = self.get_option(options, 'directory', + 'tests/suites') + + @staticmethod + def get_option(options, name: str, default: T) -> T: + value = getattr(options, name, None) + return default if value is None else value + + def filename_for(self, basename: str) -> str: + """The location of the data file with the specified base name.""" + return posixpath.join(self.test_suite_directory, basename + '.data') + + def write_test_data_file(self, basename: str, + test_cases: Iterable[test_case.TestCase]) -> None: + """Write the test cases to a .data file. + + The output file is ``basename + '.data'`` in the test suite directory. + """ + filename = self.filename_for(basename) + test_case.write_data_file(filename, test_cases) + + # Note that targets whose names contain 'test_format' have their content + # validated by `abi_check.py`. + TARGETS = {} # type: Dict[str, Callable[..., test_case.TestCase]] + + def generate_target(self, name: str, *target_args) -> None: + """Generate cases and write to data file for a target. + + For target callables which require arguments, override this function + and pass these arguments using super() (see PSATestGenerator). + """ + test_cases = self.TARGETS[name](*target_args) + self.write_test_data_file(name, test_cases) + +def main(args, generator_class: Type[TestGenerator] = TestGenerator): + """Command line entry point.""" + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--list', action='store_true', + help='List available targets and exit') + parser.add_argument('--list-for-cmake', action='store_true', + help='Print \';\'-separated list of available targets and exit') + parser.add_argument('--directory', metavar='DIR', + help='Output directory (default: tests/suites)') + parser.add_argument('targets', nargs='*', metavar='TARGET', + help='Target file to generate (default: all; "-": none)') + options = parser.parse_args(args) + build_tree.chdir_to_root() + generator = generator_class(options) + if options.list: + for name in sorted(generator.TARGETS): + print(generator.filename_for(name)) + return + # List in a cmake list format (i.e. ';'-separated) + if options.list_for_cmake: + print(';'.join(generator.filename_for(name) + for name in sorted(generator.TARGETS)), end='') + return + if options.targets: + # Allow "-" as a special case so you can run + # ``generate_xxx_tests.py - $targets`` and it works uniformly whether + # ``$targets`` is empty or not. + options.targets = [os.path.basename(re.sub(r'\.data\Z', r'', target)) + for target in options.targets + if target != '-'] + else: + options.targets = sorted(generator.TARGETS) + for target in options.targets: + generator.generate_target(target) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 61f642b37b..f885167cfa 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -20,17 +20,13 @@ generate only the specified files. # See the License for the specific language governing permissions and # limitations under the License. -import argparse import itertools -import os -import posixpath -import re import sys -from typing import Iterable, Iterator, List, Optional, Tuple, TypeVar +from typing import Callable, Dict, Iterator, List, Optional, Tuple, TypeVar import scripts_path # pylint: disable=unused-import -from mbedtls_dev import build_tree from mbedtls_dev import test_case +from mbedtls_dev import test_generation T = TypeVar('T') #pylint: disable=invalid-name @@ -41,52 +37,7 @@ def quote_str(val): return "\"{}\"".format(val) -class BaseTarget: - """Base target for test case generation. - - Attributes: - count: Counter for test class. - desc: Short description of test case. - func: Function which the class generates tests for. - gen_file: File to write generated tests to. - title: Description of the test function/purpose. - """ - count = 0 - desc = "" - func = "" - gen_file = "" - title = "" - - def __init__(self) -> None: - type(self).count += 1 - - @property - def args(self) -> List[str]: - """Create list of arguments for test case.""" - return [] - - @property - def description(self) -> str: - """Create a numbered test description.""" - return "{} #{} {}".format(self.title, self.count, self.desc) - - def create_test_case(self) -> test_case.TestCase: - """Generate test case from the current object.""" - tc = test_case.TestCase() - tc.set_description(self.description) - tc.set_function(self.func) - tc.set_arguments(self.args) - - return tc - - @classmethod - def generate_tests(cls): - """Generate test cases for the target subclasses.""" - for subclass in sorted(cls.__subclasses__(), key=lambda c: c.__name__): - yield from subclass.generate_tests() - - -class BignumTarget(BaseTarget): +class BignumTarget(test_generation.BaseTarget): """Target for bignum (mpi) test case generation.""" gen_file = 'test_suite_mpi.generated' @@ -224,76 +175,12 @@ class BignumAdd(BignumOperation): return quote_str(hex(self.int_l + self.int_r).replace("0x", "", 1)) -class TestGenerator: - """Generate test data.""" - - def __init__(self, options) -> None: - self.test_suite_directory = self.get_option(options, 'directory', - 'tests/suites') - - @staticmethod - def get_option(options, name: str, default: T) -> T: - value = getattr(options, name, None) - return default if value is None else value - - def filename_for(self, basename: str) -> str: - """The location of the data file with the specified base name.""" - return posixpath.join(self.test_suite_directory, basename + '.data') - - def write_test_data_file(self, basename: str, - test_cases: Iterable[test_case.TestCase]) -> None: - """Write the test cases to a .data file. - - The output file is ``basename + '.data'`` in the test suite directory. - """ - filename = self.filename_for(basename) - test_case.write_data_file(filename, test_cases) - - # Note that targets whose names contain 'test_format' have their content - # validated by `abi_check.py`. +class BignumTestGenerator(test_generation.TestGenerator): + """Test generator subclass including bignum targets.""" TARGETS = { subclass.gen_file: subclass.generate_tests for subclass in - BaseTarget.__subclasses__() - } - - def generate_target(self, name: str) -> None: - test_cases = self.TARGETS[name]() - self.write_test_data_file(name, test_cases) - -def main(args): - """Command line entry point.""" - parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument('--list', action='store_true', - help='List available targets and exit') - parser.add_argument('--list-for-cmake', action='store_true', - help='Print \';\'-separated list of available targets and exit') - parser.add_argument('--directory', metavar='DIR', - help='Output directory (default: tests/suites)') - parser.add_argument('targets', nargs='*', metavar='TARGET', - help='Target file to generate (default: all; "-": none)') - options = parser.parse_args(args) - build_tree.chdir_to_root() - generator = TestGenerator(options) - if options.list: - for name in sorted(generator.TARGETS): - print(generator.filename_for(name)) - return - # List in a cmake list format (i.e. ';'-separated) - if options.list_for_cmake: - print(';'.join(generator.filename_for(name) - for name in sorted(generator.TARGETS)), end='') - return - if options.targets: - # Allow "-" as a special case so you can run - # ``generate_bignum_tests.py - $targets`` and it works uniformly whether - # ``$targets`` is empty or not. - options.targets = [os.path.basename(re.sub(r'\.data\Z', r'', target)) - for target in options.targets - if target != '-'] - else: - options.targets = sorted(generator.TARGETS) - for target in options.targets: - generator.generate_target(target) + test_generation.BaseTarget.__subclasses__() + } # type: Dict[str, Callable[[], test_case.TestCase]] if __name__ == '__main__': - main(sys.argv[1:]) + test_generation.main(sys.argv[1:], BignumTestGenerator) diff --git a/tests/scripts/generate_psa_tests.py b/tests/scripts/generate_psa_tests.py index 3d23edda68..9f32655aed 100755 --- a/tests/scripts/generate_psa_tests.py +++ b/tests/scripts/generate_psa_tests.py @@ -20,22 +20,17 @@ generate only the specified files. # See the License for the specific language governing permissions and # limitations under the License. -import argparse import enum -import os -import posixpath import re import sys -from typing import Callable, Dict, FrozenSet, Iterable, Iterator, List, Optional, TypeVar +from typing import Callable, Dict, FrozenSet, Iterable, Iterator, List, Optional import scripts_path # pylint: disable=unused-import -from mbedtls_dev import build_tree from mbedtls_dev import crypto_knowledge from mbedtls_dev import macro_collector from mbedtls_dev import psa_storage from mbedtls_dev import test_case - -T = TypeVar('T') #pylint: disable=invalid-name +from mbedtls_dev import test_generation def psa_want_symbol(name: str) -> str: @@ -897,32 +892,8 @@ class StorageFormatV0(StorageFormat): yield from super().generate_all_keys() yield from self.all_keys_for_implicit_usage() -class TestGenerator: - """Generate test data.""" - - def __init__(self, options) -> None: - self.test_suite_directory = self.get_option(options, 'directory', - 'tests/suites') - self.info = Information() - - @staticmethod - def get_option(options, name: str, default: T) -> T: - value = getattr(options, name, None) - return default if value is None else value - - def filename_for(self, basename: str) -> str: - """The location of the data file with the specified base name.""" - return posixpath.join(self.test_suite_directory, basename + '.data') - - def write_test_data_file(self, basename: str, - test_cases: Iterable[test_case.TestCase]) -> None: - """Write the test cases to a .data file. - - The output file is ``basename + '.data'`` in the test suite directory. - """ - filename = self.filename_for(basename) - test_case.write_data_file(filename, test_cases) - +class PSATestGenerator(test_generation.TestGenerator): + """Test generator subclass including PSA targets and info.""" # Note that targets whose names contain 'test_format' have their content # validated by `abi_check.py`. TARGETS = { @@ -938,44 +909,12 @@ class TestGenerator: lambda info: StorageFormatV0(info).all_test_cases(), } #type: Dict[str, Callable[[Information], Iterable[test_case.TestCase]]] - def generate_target(self, name: str) -> None: - test_cases = self.TARGETS[name](self.info) - self.write_test_data_file(name, test_cases) + def __init__(self, options): + super().__init__(options) + self.info = Information() -def main(args): - """Command line entry point.""" - parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument('--list', action='store_true', - help='List available targets and exit') - parser.add_argument('--list-for-cmake', action='store_true', - help='Print \';\'-separated list of available targets and exit') - parser.add_argument('--directory', metavar='DIR', - help='Output directory (default: tests/suites)') - parser.add_argument('targets', nargs='*', metavar='TARGET', - help='Target file to generate (default: all; "-": none)') - options = parser.parse_args(args) - build_tree.chdir_to_root() - generator = TestGenerator(options) - if options.list: - for name in sorted(generator.TARGETS): - print(generator.filename_for(name)) - return - # List in a cmake list format (i.e. ';'-separated) - if options.list_for_cmake: - print(';'.join(generator.filename_for(name) - for name in sorted(generator.TARGETS)), end='') - return - if options.targets: - # Allow "-" as a special case so you can run - # ``generate_psa_tests.py - $targets`` and it works uniformly whether - # ``$targets`` is empty or not. - options.targets = [os.path.basename(re.sub(r'\.data\Z', r'', target)) - for target in options.targets - if target != '-'] - else: - options.targets = sorted(generator.TARGETS) - for target in options.targets: - generator.generate_target(target) + def generate_target(self, name: str, *target_args) -> None: + super().generate_target(name, self.info) if __name__ == '__main__': - main(sys.argv[1:]) + test_generation.main(sys.argv[1:], PSATestGenerator) From 55e638ca57492204a27601b5b30f9af7a075a9d8 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 23 Aug 2022 14:21:53 +0100 Subject: [PATCH 0043/1028] Remove abbreviations and clarify attributes Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 34 +++++++-------- tests/scripts/generate_bignum_tests.py | 59 ++++++++++++-------------- 2 files changed, 44 insertions(+), 49 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index 2414f3a4b5..bb70b9c72e 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -35,37 +35,37 @@ class BaseTarget: """Base target for test case generation. Attributes: - count: Counter for test class. - desc: Short description of test case. - func: Function which the class generates tests for. - gen_file: File to write generated tests to. - title: Description of the test function/purpose. + count: Counter for test cases from this class. + case_description: Short description of the test case. This may be + automatically generated using the class, or manually set. + target_basename: Basename of file to write generated tests to. This + should be specified in a child class of BaseTarget. + test_function: Test function which the class generates cases for. + test_name: A common name or description of the test function. This can + be the function's name, or a short summary of its purpose. """ count = 0 - desc = "" - func = "" - gen_file = "" - title = "" + case_description = "" + target_basename = "" + test_function = "" + test_name = "" def __init__(self) -> None: type(self).count += 1 - @property - def args(self) -> List[str]: - """Create list of arguments for test case.""" + def arguments(self) -> List[str]: return [] - @property def description(self) -> str: """Create a numbered test description.""" - return "{} #{} {}".format(self.title, self.count, self.desc) + return "{} #{} {}".format(self.test_name, self.count, self.case_description) def create_test_case(self) -> test_case.TestCase: """Generate test case from the current object.""" tc = test_case.TestCase() - tc.set_description(self.description) - tc.set_function(self.func) - tc.set_arguments(self.args) + tc.set_description(self.description()) + tc.set_function(self.test_function) + tc.set_arguments(self.arguments()) return tc diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index f885167cfa..fbccb8a9f5 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -39,20 +39,20 @@ def quote_str(val): class BignumTarget(test_generation.BaseTarget): """Target for bignum (mpi) test case generation.""" - gen_file = 'test_suite_mpi.generated' + target_basename = 'test_suite_mpi.generated' class BignumOperation(BignumTarget): """Common features for test cases covering bignum operations. Attributes: - symb: Symbol used for operation in description. - input_vals: List of values used to generate test case args. - input_cases: List of tuples containing test case inputs. This + symbol: Symbol used for operation in description. + input_values: List of values to use as test case inputs. + input_cases: List of tuples containing pairs of test case inputs. This can be used to implement specific pairs of inputs. """ - symb = "" - input_vals = [ + symbol = "" + input_values = [ "", "0", "7b", "-7b", "0000000000000000123", "-0000000000000000123", "1230000000000000000", "-1230000000000000000" @@ -67,26 +67,23 @@ class BignumOperation(BignumTarget): self.int_l = hex_to_int(val_l) self.int_r = hex_to_int(val_r) - @property - def args(self): - return [quote_str(self.arg_l), quote_str(self.arg_r), self.result] + def arguments(self): + return [quote_str(self.arg_l), quote_str(self.arg_r), self.result()] - @property def description(self): - desc = self.desc if self.desc else "{} {} {}".format( - self.val_desc(self.arg_l), - self.symb, - self.val_desc(self.arg_r) - ) - return "{} #{} {}".format(self.title, self.count, desc) + if not self.case_description: + self.case_description = "{} {} {}".format( + self.value_description(self.arg_l), + self.symbol, + self.value_description(self.arg_r) + ) + return super().description() - @property def result(self) -> Optional[str]: return None @staticmethod - def val_desc(val) -> str: - """Generate description of the argument val.""" + def value_description(val) -> str: if val == "": return "0 (null)" if val == "0": @@ -107,13 +104,13 @@ class BignumOperation(BignumTarget): def get_value_pairs(cls) -> Iterator[Tuple[str, ...]]: """Generate value pairs.""" for pair in list( - itertools.combinations(cls.input_vals, 2) + itertools.combinations(cls.input_values, 2) ) + cls.input_cases: yield pair @classmethod def generate_tests(cls) -> Iterator[test_case.TestCase]: - if cls.func: + if cls.test_function: # Generate tests for the current class for l_value, r_value in cls.get_value_pairs(): cur_op = cls(l_value, r_value) @@ -125,8 +122,8 @@ class BignumOperation(BignumTarget): class BignumCmp(BignumOperation): """Target for bignum comparison test cases.""" count = 0 - func = "mbedtls_mpi_cmp_mpi" - title = "MPI compare" + test_function = "mbedtls_mpi_cmp_mpi" + test_name = "MPI compare" input_cases = [ ("-2", "-3"), ("-2", "-2"), @@ -137,9 +134,8 @@ class BignumCmp(BignumOperation): def __init__(self, val_l, val_r): super().__init__(val_l, val_r) self._result = (self.int_l > self.int_r) - (self.int_l < self.int_r) - self.symb = ["<", "==", ">"][self._result + 1] + self.symbol = ["<", "==", ">"][self._result + 1] - @property def result(self): return str(self._result) @@ -147,8 +143,8 @@ class BignumCmp(BignumOperation): class BignumCmpAbs(BignumCmp): """Target for abs comparison variant.""" count = 0 - func = "mbedtls_mpi_cmp_abs" - title = "MPI compare (abs)" + test_function = "mbedtls_mpi_cmp_abs" + test_name = "MPI compare (abs)" def __init__(self, val_l, val_r): super().__init__(val_l.strip("-"), val_r.strip("-")) @@ -157,8 +153,8 @@ class BignumCmpAbs(BignumCmp): class BignumAdd(BignumOperation): """Target for bignum addition test cases.""" count = 0 - func = "mbedtls_mpi_add_mpi" - title = "MPI add" + test_function = "mbedtls_mpi_add_mpi" + test_name = "MPI add" input_cases = list(itertools.combinations( [ "1c67967269c6", "9cde3", @@ -168,9 +164,8 @@ class BignumAdd(BignumOperation): def __init__(self, val_l, val_r): super().__init__(val_l, val_r) - self.symb = "+" + self.symbol = "+" - @property def result(self): return quote_str(hex(self.int_l + self.int_r).replace("0x", "", 1)) @@ -178,7 +173,7 @@ class BignumAdd(BignumOperation): class BignumTestGenerator(test_generation.TestGenerator): """Test generator subclass including bignum targets.""" TARGETS = { - subclass.gen_file: subclass.generate_tests for subclass in + subclass.target_basename: subclass.generate_tests for subclass in test_generation.BaseTarget.__subclasses__() } # type: Dict[str, Callable[[], test_case.TestCase]] From 92c876aaa9258928123469593b36097c9834b937 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 23 Aug 2022 16:07:19 +0100 Subject: [PATCH 0044/1028] Remove unneeded list concatenation Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index fbccb8a9f5..757a80a443 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -103,10 +103,8 @@ class BignumOperation(BignumTarget): @classmethod def get_value_pairs(cls) -> Iterator[Tuple[str, ...]]: """Generate value pairs.""" - for pair in list( - itertools.combinations(cls.input_values, 2) - ) + cls.input_cases: - yield pair + yield from itertools.combinations(cls.input_values, 2) + yield from cls.input_cases @classmethod def generate_tests(cls) -> Iterator[test_case.TestCase]: From 6c70d745d17f7b67a4e8d010e770e3414bdaa55a Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 24 Aug 2022 16:37:44 +0100 Subject: [PATCH 0045/1028] Convert bools to int before arithmetic Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 757a80a443..471fd77245 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -131,7 +131,7 @@ class BignumCmp(BignumOperation): def __init__(self, val_l, val_r): super().__init__(val_l, val_r) - self._result = (self.int_l > self.int_r) - (self.int_l < self.int_r) + self._result = int(self.int_l > self.int_r) - int(self.int_l < self.int_r) self.symbol = ["<", "==", ">"][self._result + 1] def result(self): From 169034ae63541649631b0ac851a93bf234b9250e Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 23 Aug 2022 16:07:37 +0100 Subject: [PATCH 0046/1028] Add details to docstrings Clarification is added to docstrings, mostly in abstract classes. Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 38 +++++++++++++-- tests/scripts/generate_bignum_tests.py | 65 +++++++++++++++++++++++--- 2 files changed, 93 insertions(+), 10 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index bb70b9c72e..712c7996bf 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -23,6 +23,8 @@ import argparse import os import posixpath import re + +from abc import abstractmethod from typing import Callable, Dict, Iterable, List, Type, TypeVar from mbedtls_dev import build_tree @@ -53,15 +55,34 @@ class BaseTarget: def __init__(self) -> None: type(self).count += 1 + @abstractmethod def arguments(self) -> List[str]: - return [] + """Get the list of arguments for the test case. + + Override this method to provide the list of arguments required for + generating the test_function. + + Returns: + List of arguments required for the test function. + """ + pass def description(self) -> str: - """Create a numbered test description.""" + """Create a test description. + + Creates a description of the test case, including a name for the test + function, and describing the specific test case. This should inform a + reader of the purpose of the case. The case description may be + generated in the class, or provided manually as needed. + + Returns: + Description for the test case. + """ return "{} #{} {}".format(self.test_name, self.count, self.case_description) + def create_test_case(self) -> test_case.TestCase: - """Generate test case from the current object.""" + """Generate TestCase from the current object.""" tc = test_case.TestCase() tc.set_description(self.description()) tc.set_function(self.test_function) @@ -71,7 +92,16 @@ class BaseTarget: @classmethod def generate_tests(cls): - """Generate test cases for the target subclasses.""" + """Generate test cases for the target subclasses. + + Classes will iterate over its subclasses, calling this method in each. + In abstract classes, no further changes are needed, as there is no + function to generate tests for. + In classes which do implement a test function, this should be overrided + and a means to use `create_test_case()` should be added. In most cases + the subclasses can still be iterated over, as either the class will + have none, or it may continue. + """ for subclass in sorted(cls.__subclasses__(), key=lambda c: c.__name__): yield from subclass.generate_tests() diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 471fd77245..7a8ebd1d8a 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -3,6 +3,31 @@ With no arguments, generate all test data. With non-option arguments, generate only the specified files. + +Class structure: + +Target classes are directly derived from test_generation.BaseTarget, +representing a target file. These indicate where test cases will be written +to in classes derived from the Target. Multiple Target classes must not +represent the same target_basename. + +Each subclass derived from a Target can either be: + - A concrete class, representing a test function, which generates test cases. + - An abstract class containing shared methods and attributes, not associated + with a test function. An example is BignumOperation, which provides common + features used in binary bignum operations. + + +Adding test generation for a function: + +A subclass representing the test function should be added, deriving from a +Target class or a descendant. This subclass must set/implement the following: + - test_function: the function name from the associated .function file. + - arguments(): generation of the arguments required for the test_function. + - generate_function_test(): generation of the test cases for the function. + +Additional details and other attributes/methods are given in the documentation +of BaseTarget in test_generation.py. """ # Copyright The Mbed TLS Contributors @@ -22,6 +47,8 @@ generate only the specified files. import itertools import sys + +from abc import abstractmethod from typing import Callable, Dict, Iterator, List, Optional, Tuple, TypeVar import scripts_path # pylint: disable=unused-import @@ -43,11 +70,16 @@ class BignumTarget(test_generation.BaseTarget): class BignumOperation(BignumTarget): - """Common features for test cases covering bignum operations. + """Common features for test cases covering binary bignum operations. + + This adds functionality common in binary operation tests. This includes + generation of case descriptions, using descriptions of values and symbols + to represent the operation or result. Attributes: - symbol: Symbol used for operation in description. - input_values: List of values to use as test case inputs. + symbol: Symbol used for the operation in case description. + input_values: List of values to use as test case inputs. These are + combined to produce pairs of values. input_cases: List of tuples containing pairs of test case inputs. This can be used to implement specific pairs of inputs. """ @@ -71,6 +103,12 @@ class BignumOperation(BignumTarget): return [quote_str(self.arg_l), quote_str(self.arg_r), self.result()] def description(self): + """Generate a description for the test case. + + If not set, case_description uses the form A `symbol` B, where symbol + is used to represent the operation. Descriptions of each value are + generated to provide some context to the test case. + """ if not self.case_description: self.case_description = "{} {} {}".format( self.value_description(self.arg_l), @@ -79,11 +117,22 @@ class BignumOperation(BignumTarget): ) return super().description() + @abstractmethod def result(self) -> Optional[str]: - return None + """Get the result of the operation. + + This may be calculated during initialization and stored as `_result`, + or calculated when the method is called. + """ + pass @staticmethod def value_description(val) -> str: + """Generate a description of the argument val. + + This produces a simple description of the value, which are used in test + case naming, to avoid most generated cases only being numbered. + """ if val == "": return "0 (null)" if val == "0": @@ -102,7 +151,11 @@ class BignumOperation(BignumTarget): @classmethod def get_value_pairs(cls) -> Iterator[Tuple[str, ...]]: - """Generate value pairs.""" + """Generator for pairs of inputs. + + Combinations are first generated from all input values, and then + specific cases provided. + """ yield from itertools.combinations(cls.input_values, 2) yield from cls.input_cases @@ -139,7 +192,7 @@ class BignumCmp(BignumOperation): class BignumCmpAbs(BignumCmp): - """Target for abs comparison variant.""" + """Target for bignum comparison, absolute variant.""" count = 0 test_function = "mbedtls_mpi_cmp_abs" test_name = "MPI compare (abs)" From 699e126942fef15142dfc6a95604360566e19dd2 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 24 Aug 2022 12:18:25 +0100 Subject: [PATCH 0047/1028] Use ABCMeta for abstract classes Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 15 +++++++-------- tests/scripts/generate_bignum_tests.py | 10 +++++----- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index 712c7996bf..b825df07b7 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -24,7 +24,7 @@ import os import posixpath import re -from abc import abstractmethod +from abc import ABCMeta, abstractmethod from typing import Callable, Dict, Iterable, List, Type, TypeVar from mbedtls_dev import build_tree @@ -33,7 +33,7 @@ from mbedtls_dev import test_case T = TypeVar('T') #pylint: disable=invalid-name -class BaseTarget: +class BaseTarget(metaclass=ABCMeta): """Base target for test case generation. Attributes: @@ -94,13 +94,12 @@ class BaseTarget: def generate_tests(cls): """Generate test cases for the target subclasses. - Classes will iterate over its subclasses, calling this method in each. - In abstract classes, no further changes are needed, as there is no + During generation, each class will iterate over any subclasses, calling + this method in each. + In abstract classes, no tests will be generated, as there is no function to generate tests for. - In classes which do implement a test function, this should be overrided - and a means to use `create_test_case()` should be added. In most cases - the subclasses can still be iterated over, as either the class will - have none, or it may continue. + In classes which do implement a test function, this should be overridden + and a means to use `create_test_case()` should be added. """ for subclass in sorted(cls.__subclasses__(), key=lambda c: c.__name__): yield from subclass.generate_tests() diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 7a8ebd1d8a..3f556ce291 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -48,7 +48,7 @@ of BaseTarget in test_generation.py. import itertools import sys -from abc import abstractmethod +from abc import ABCMeta, abstractmethod from typing import Callable, Dict, Iterator, List, Optional, Tuple, TypeVar import scripts_path # pylint: disable=unused-import @@ -64,12 +64,12 @@ def quote_str(val): return "\"{}\"".format(val) -class BignumTarget(test_generation.BaseTarget): +class BignumTarget(test_generation.BaseTarget, metaclass=ABCMeta): """Target for bignum (mpi) test case generation.""" target_basename = 'test_suite_mpi.generated' -class BignumOperation(BignumTarget): +class BignumOperation(BignumTarget, metaclass=ABCMeta): """Common features for test cases covering binary bignum operations. This adds functionality common in binary operation tests. This includes @@ -118,7 +118,7 @@ class BignumOperation(BignumTarget): return super().description() @abstractmethod - def result(self) -> Optional[str]: + def result(self) -> str: """Get the result of the operation. This may be calculated during initialization and stored as `_result`, @@ -131,7 +131,7 @@ class BignumOperation(BignumTarget): """Generate a description of the argument val. This produces a simple description of the value, which are used in test - case naming, to avoid most generated cases only being numbered. + case naming, to add context to the test cases. """ if val == "": return "0 (null)" From b2c06f4acfa55c10fd59a0612a08d68469291041 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 24 Aug 2022 17:45:58 +0100 Subject: [PATCH 0048/1028] Remove stale comment, and fix whitespace issue Signed-off-by: Tom Cosgrove --- library/bignum.c | 3 --- tests/suites/test_suite_mpi.function | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index d5e799e053..3fa6a3b736 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1545,9 +1545,6 @@ int mbedtls_mpi_mod_int( mbedtls_mpi_uint *r, const mbedtls_mpi *A, mbedtls_mpi_ return( 0 ); } -/* - * Fast Montgomery initialization (thanks to Tom St Denis) - */ static void mpi_montg_init( mbedtls_mpi_uint *mm, const mbedtls_mpi *N ) { *mm = mbedtls_mpi_montg_init( N->p ); diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index dcc869f806..40c302bdaa 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -2008,7 +2008,7 @@ void mbedtls_mpi_montg_init( char * input_N, char * input_mm ) * The data file contains the expected result for sizeof(mbedtls_mpi_uint) == 8; * for sizeof(mbedtls_mpi_uint) == 4 it's just the LSW of this. */ - TEST_ASSERT( mm.n == 1 || mm.n == 2); + TEST_ASSERT( mm.n == 1 || mm.n == 2 ); /* All of the inputs are +ve (or zero) */ TEST_EQUAL( N.s, 1 ); From 2b527a394dd851905bb73a6ccfd810fbbd7c6d77 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 24 Aug 2022 12:42:00 +0100 Subject: [PATCH 0049/1028] Split generate_tests to reduce code complexity Previous implementation mixed the test case generation and the recursive generation calls together. A separate method is added to generate test cases for the current class' test function. This reduces the need to override generate_tests(). Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 33 +++++++++++++++++++------- tests/scripts/generate_bignum_tests.py | 12 ++++------ 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index b825df07b7..aeb551d05b 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -25,7 +25,7 @@ import posixpath import re from abc import ABCMeta, abstractmethod -from typing import Callable, Dict, Iterable, List, Type, TypeVar +from typing import Callable, Dict, Iterable, Iterator, List, Type, TypeVar from mbedtls_dev import build_tree from mbedtls_dev import test_case @@ -91,16 +91,31 @@ class BaseTarget(metaclass=ABCMeta): return tc @classmethod - def generate_tests(cls): - """Generate test cases for the target subclasses. + @abstractmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + """Generate test cases for the test function. - During generation, each class will iterate over any subclasses, calling - this method in each. - In abstract classes, no tests will be generated, as there is no - function to generate tests for. - In classes which do implement a test function, this should be overridden - and a means to use `create_test_case()` should be added. + This will be called in classes where `test_function` is set. + Implementations should yield TestCase objects, by creating instances + of the class with appropriate input data, and then calling + `create_test_case()` on each. """ + pass + + @classmethod + def generate_tests(cls) -> Iterator[test_case.TestCase]: + """Generate test cases for the class and its subclasses. + + In classes with `test_function` set, `generate_function_tests()` is + used to generate test cases first. + In all classes, this method will iterate over its subclasses, and + yield from `generate_tests()` in each. + + Calling this method on a class X will yield test cases from all classes + derived from X. + """ + if cls.test_function: + yield from cls.generate_function_tests() for subclass in sorted(cls.__subclasses__(), key=lambda c: c.__name__): yield from subclass.generate_tests() diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 3f556ce291..1f64485289 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -160,14 +160,10 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): yield from cls.input_cases @classmethod - def generate_tests(cls) -> Iterator[test_case.TestCase]: - if cls.test_function: - # Generate tests for the current class - for l_value, r_value in cls.get_value_pairs(): - cur_op = cls(l_value, r_value) - yield cur_op.create_test_case() - # Once current class completed, check descendants - yield from super().generate_tests() + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + for l_value, r_value in cls.get_value_pairs(): + cur_op = cls(l_value, r_value) + yield cur_op.create_test_case() class BignumCmp(BignumOperation): From cfd4768df2e510127235848d4a8cdc5010811bef Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 24 Aug 2022 17:04:07 +0100 Subject: [PATCH 0050/1028] Use __new__() for case counting Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 5 +++-- tests/scripts/generate_bignum_tests.py | 2 -- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index aeb551d05b..f1e085d4e3 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -52,8 +52,9 @@ class BaseTarget(metaclass=ABCMeta): test_function = "" test_name = "" - def __init__(self) -> None: - type(self).count += 1 + def __new__(cls, *args, **kwargs): + cls.count += 1 + return super().__new__(cls) @abstractmethod def arguments(self) -> List[str]: diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 1f64485289..9551e21867 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -92,8 +92,6 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): input_cases = [] # type: List[Tuple[str, ...]] def __init__(self, val_l: str, val_r: str) -> None: - super().__init__() - self.arg_l = val_l self.arg_r = val_r self.int_l = hex_to_int(val_l) From d03d2a3a917e25569443bbd49189374fff76ea71 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 24 Aug 2022 17:20:29 +0100 Subject: [PATCH 0051/1028] Remove trailing whitespace in description Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index f1e085d4e3..23d9c7e558 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -79,7 +79,9 @@ class BaseTarget(metaclass=ABCMeta): Returns: Description for the test case. """ - return "{} #{} {}".format(self.test_name, self.count, self.case_description) + return "{} #{} {}".format( + self.test_name, self.count, self.case_description + ).strip() def create_test_case(self) -> test_case.TestCase: From 6300b4f7e077bebb843de9ec75231739d4364ee2 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 24 Aug 2022 17:46:22 +0100 Subject: [PATCH 0052/1028] Add missing typing Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 9551e21867..016e037712 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -49,7 +49,7 @@ import itertools import sys from abc import ABCMeta, abstractmethod -from typing import Callable, Dict, Iterator, List, Optional, Tuple, TypeVar +from typing import Callable, Dict, Iterator, List, Tuple, TypeVar import scripts_path # pylint: disable=unused-import from mbedtls_dev import test_case @@ -57,10 +57,10 @@ from mbedtls_dev import test_generation T = TypeVar('T') #pylint: disable=invalid-name -def hex_to_int(val): +def hex_to_int(val: str) -> int: return int(val, 16) if val else 0 -def quote_str(val): +def quote_str(val) -> str: return "\"{}\"".format(val) @@ -89,7 +89,7 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): "0000000000000000123", "-0000000000000000123", "1230000000000000000", "-1230000000000000000" ] # type: List[str] - input_cases = [] # type: List[Tuple[str, ...]] + input_cases = [] # type: List[Tuple[str, str]] def __init__(self, val_l: str, val_r: str) -> None: self.arg_l = val_l @@ -97,10 +97,10 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): self.int_l = hex_to_int(val_l) self.int_r = hex_to_int(val_r) - def arguments(self): + def arguments(self) -> List[str]: return [quote_str(self.arg_l), quote_str(self.arg_r), self.result()] - def description(self): + def description(self) -> str: """Generate a description for the test case. If not set, case_description uses the form A `symbol` B, where symbol @@ -148,7 +148,7 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): return tmp @classmethod - def get_value_pairs(cls) -> Iterator[Tuple[str, ...]]: + def get_value_pairs(cls) -> Iterator[Tuple[str, str]]: """Generator for pairs of inputs. Combinations are first generated from all input values, and then @@ -176,12 +176,12 @@ class BignumCmp(BignumOperation): ("2b5", "2b6") ] - def __init__(self, val_l, val_r): + def __init__(self, val_l, val_r) -> None: super().__init__(val_l, val_r) self._result = int(self.int_l > self.int_r) - int(self.int_l < self.int_r) self.symbol = ["<", "==", ">"][self._result + 1] - def result(self): + def result(self) -> str: return str(self._result) @@ -191,7 +191,7 @@ class BignumCmpAbs(BignumCmp): test_function = "mbedtls_mpi_cmp_abs" test_name = "MPI compare (abs)" - def __init__(self, val_l, val_r): + def __init__(self, val_l, val_r) -> None: super().__init__(val_l.strip("-"), val_r.strip("-")) @@ -207,11 +207,11 @@ class BignumAdd(BignumOperation): ], 2 )) - def __init__(self, val_l, val_r): + def __init__(self, val_l, val_r) -> None: super().__init__(val_l, val_r) self.symbol = "+" - def result(self): + def result(self) -> str: return quote_str(hex(self.int_l + self.int_r).replace("0x", "", 1)) From 9990b30568b4c7ee405bf2fe4d9dc4f1d685b2cd Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 24 Aug 2022 18:03:30 +0100 Subject: [PATCH 0053/1028] Use typing casts for fixed-width tuples Enforces fixed-width tuple types where mypy does not recognize. Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 016e037712..a2a9d0674c 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -49,7 +49,7 @@ import itertools import sys from abc import ABCMeta, abstractmethod -from typing import Callable, Dict, Iterator, List, Tuple, TypeVar +from typing import Callable, Dict, Iterator, List, Tuple, TypeVar, cast import scripts_path # pylint: disable=unused-import from mbedtls_dev import test_case @@ -89,7 +89,7 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): "0000000000000000123", "-0000000000000000123", "1230000000000000000", "-1230000000000000000" ] # type: List[str] - input_cases = [] # type: List[Tuple[str, str]] + input_cases = cast(List[Tuple[str, str]], []) # type: List[Tuple[str, str]] def __init__(self, val_l: str, val_r: str) -> None: self.arg_l = val_l @@ -154,7 +154,10 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): Combinations are first generated from all input values, and then specific cases provided. """ - yield from itertools.combinations(cls.input_values, 2) + yield from cast( + Iterator[Tuple[str, str]], + itertools.combinations(cls.input_values, 2) + ) yield from cls.input_cases @classmethod @@ -200,12 +203,15 @@ class BignumAdd(BignumOperation): count = 0 test_function = "mbedtls_mpi_add_mpi" test_name = "MPI add" - input_cases = list(itertools.combinations( + input_cases = cast( + List[Tuple[str, str]], + list(itertools.combinations( [ "1c67967269c6", "9cde3", "-1c67967269c6", "-9cde3", ], 2 - )) + )) + ) def __init__(self, val_l, val_r) -> None: super().__init__(val_l, val_r) From a195ce73f5a17ccf61ad9de8473bf1bb30751c31 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 24 Aug 2022 18:09:10 +0100 Subject: [PATCH 0054/1028] Disable pylint unused arg in __new__ Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index 23d9c7e558..652b9a1f82 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -53,6 +53,7 @@ class BaseTarget(metaclass=ABCMeta): test_name = "" def __new__(cls, *args, **kwargs): + # pylint: disable=unused-argument cls.count += 1 return super().__new__(cls) From 6d654c6491eb44cd0e221e2ce3aa72a6173bf9ff Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Thu, 25 Aug 2022 09:56:51 +0100 Subject: [PATCH 0055/1028] Raise NotImplementedError in abstract methods Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 4 ++-- tests/scripts/generate_bignum_tests.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index 652b9a1f82..a90547349e 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -67,7 +67,7 @@ class BaseTarget(metaclass=ABCMeta): Returns: List of arguments required for the test function. """ - pass + raise NotImplementedError def description(self) -> str: """Create a test description. @@ -104,7 +104,7 @@ class BaseTarget(metaclass=ABCMeta): of the class with appropriate input data, and then calling `create_test_case()` on each. """ - pass + raise NotImplementedError @classmethod def generate_tests(cls) -> Iterator[test_case.TestCase]: diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index a2a9d0674c..aa7e131a1d 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -122,7 +122,7 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): This may be calculated during initialization and stored as `_result`, or calculated when the method is called. """ - pass + raise NotImplementedError @staticmethod def value_description(val) -> str: From e3ad22ecf256a6d32bb4e417da01b611ffb9ed94 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Thu, 25 Aug 2022 10:02:06 +0100 Subject: [PATCH 0056/1028] Fix TARGET types and code style Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 3 +-- tests/scripts/generate_bignum_tests.py | 12 ++++++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index a90547349e..11c085f6b8 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python3 """Common test generation classes and main function. These are used both by generate_psa_tests.py and generate_bignum_tests.py. @@ -150,7 +149,7 @@ class TestGenerator: # Note that targets whose names contain 'test_format' have their content # validated by `abi_check.py`. - TARGETS = {} # type: Dict[str, Callable[..., test_case.TestCase]] + TARGETS = {} # type: Dict[str, Callable[..., Iterable[test_case.TestCase]]] def generate_target(self, name: str, *target_args) -> None: """Generate cases and write to data file for a target. diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index aa7e131a1d..c57f197a21 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -49,7 +49,7 @@ import itertools import sys from abc import ABCMeta, abstractmethod -from typing import Callable, Dict, Iterator, List, Tuple, TypeVar, cast +from typing import Callable, Dict, Iterable, Iterator, List, Tuple, TypeVar, cast import scripts_path # pylint: disable=unused-import from mbedtls_dev import test_case @@ -206,10 +206,10 @@ class BignumAdd(BignumOperation): input_cases = cast( List[Tuple[str, str]], list(itertools.combinations( - [ - "1c67967269c6", "9cde3", - "-1c67967269c6", "-9cde3", - ], 2 + [ + "1c67967269c6", "9cde3", + "-1c67967269c6", "-9cde3", + ], 2 )) ) @@ -226,7 +226,7 @@ class BignumTestGenerator(test_generation.TestGenerator): TARGETS = { subclass.target_basename: subclass.generate_tests for subclass in test_generation.BaseTarget.__subclasses__() - } # type: Dict[str, Callable[[], test_case.TestCase]] + } # type: Dict[str, Callable[[], Iterable[test_case.TestCase]]] if __name__ == '__main__': test_generation.main(sys.argv[1:], BignumTestGenerator) From ecbb12429245ee5fa1dd224f6df4f000fe41e8a9 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 25 Aug 2022 10:13:44 +0100 Subject: [PATCH 0057/1028] Fix incorrect parameter name in mbedtls_mpi_core_add_if() doc comment Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 7fd6fed911..e443d2cc5f 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -256,7 +256,7 @@ mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *X, * \param cond Condition bit dictating whether addition should * happen or not. This must be \c 0 or \c 1. * - * \warning If \p assign is neither 0 nor 1, the result of this function + * \warning If \p cond is neither 0 nor 1, the result of this function * is unspecified, and the resulting value in \p A might be * neither its original value nor \p A + \p B. * From c4afef7f46c796070aa4766b954bf16be122648c Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Thu, 25 Aug 2022 10:29:19 +0100 Subject: [PATCH 0058/1028] Use spec values as-is for test data Spec values are now always used for test data, and conversion to internal representation is done in the test function. Signed-off-by: Werner Lewis --- tests/suites/test_suite_ecp.data | 4 ++-- tests/suites/test_suite_ecp.function | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_ecp.data b/tests/suites/test_suite_ecp.data index c190fbe8c4..10137ba162 100644 --- a/tests/suites/test_suite_ecp.data +++ b/tests/suites/test_suite_ecp.data @@ -355,11 +355,11 @@ mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_BP512R1:512:MBEDTLS_ECP_TYPE_SHORT_WEI Check ECP group metadata #12 curve25519 (RFC 7748) depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED -mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_CURVE25519:256:MBEDTLS_ECP_TYPE_MONTGOMERY:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"1db42":"":"9":"":"1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed":29 +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_CURVE25519:256:MBEDTLS_ECP_TYPE_MONTGOMERY:"7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed":"76d06":"":"9":"":"1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed":29 Check ECP group metadata #13 curve448 (RFC 7748) depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED -mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_CURVE448:448:MBEDTLS_ECP_TYPE_MONTGOMERY:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"98aa":"":"5":"":"3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3":30 +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_CURVE448:448:MBEDTLS_ECP_TYPE_MONTGOMERY:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"262a6":"":"5":"":"3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3":30 ECP tls read group #1 (record too short) mbedtls_ecp_tls_read_group:"0313":MBEDTLS_ERR_ECP_BAD_INPUT_DATA:0:0 diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function index 025f3f83a0..586c26c001 100644 --- a/tests/suites/test_suite_ecp.function +++ b/tests/suites/test_suite_ecp.function @@ -825,6 +825,13 @@ void mbedtls_ecp_group_metadata( int id, int bit_size, int crv_type, TEST_EQUAL( mbedtls_test_read_mpi( &exp_B, B ), 0 ); TEST_EQUAL( mbedtls_test_read_mpi( &exp_G_y, G_y ), 0 ); + // Convert exp_A to internal representation (A+2)/4 + if( crv_type == MBEDTLS_ECP_TYPE_MONTGOMERY ) + { + TEST_EQUAL( mbedtls_mpi_add_int( &exp_A, &exp_A, 2 ), 0 ); + TEST_EQUAL( mbedtls_mpi_div_int( &exp_A, NULL, &exp_A, 4 ), 0 ); + } + // Load group TEST_EQUAL( mbedtls_ecp_group_load( &grp, id ), 0 ); From a16b617fe9844ccabde8ee80e1245b292a418f39 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Thu, 25 Aug 2022 11:17:35 +0100 Subject: [PATCH 0059/1028] Disable abstract check in pylint Version of pylint used in CI does not recognize abstract subclasses of BaseTarget, so disable warning in these abstract classes. Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index c57f197a21..2443f659b3 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -65,6 +65,7 @@ def quote_str(val) -> str: class BignumTarget(test_generation.BaseTarget, metaclass=ABCMeta): + #pylint: disable=abstract-method """Target for bignum (mpi) test case generation.""" target_basename = 'test_suite_mpi.generated' From f156c43702bec949c80a56a993a0d5009e39ab17 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Thu, 25 Aug 2022 11:30:17 +0100 Subject: [PATCH 0060/1028] Use argparser default for directory Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index 11c085f6b8..4803c24b62 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -126,13 +126,7 @@ class BaseTarget(metaclass=ABCMeta): class TestGenerator: """Generate test data.""" def __init__(self, options) -> None: - self.test_suite_directory = self.get_option(options, 'directory', - 'tests/suites') - - @staticmethod - def get_option(options, name: str, default: T) -> T: - value = getattr(options, name, None) - return default if value is None else value + self.test_suite_directory = getattr(options, 'directory') def filename_for(self, basename: str) -> str: """The location of the data file with the specified base name.""" @@ -167,7 +161,7 @@ def main(args, generator_class: Type[TestGenerator] = TestGenerator): help='List available targets and exit') parser.add_argument('--list-for-cmake', action='store_true', help='Print \';\'-separated list of available targets and exit') - parser.add_argument('--directory', metavar='DIR', + parser.add_argument('--directory', default="tests/suites", metavar='DIR', help='Output directory (default: tests/suites)') parser.add_argument('targets', nargs='*', metavar='TARGET', help='Target file to generate (default: all; "-": none)') From 6ef5436f3cf5c2efb926448f6eb52ddb301bff6e Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Thu, 25 Aug 2022 12:29:46 +0100 Subject: [PATCH 0061/1028] Clarify documentation Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 26 ++++++++------- tests/scripts/generate_bignum_tests.py | 44 +++++++++++++++----------- 2 files changed, 40 insertions(+), 30 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index 4803c24b62..9e004a69fe 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -35,6 +35,8 @@ T = TypeVar('T') #pylint: disable=invalid-name class BaseTarget(metaclass=ABCMeta): """Base target for test case generation. + This should be derived from for file Targets. + Attributes: count: Counter for test cases from this class. case_description: Short description of the test case. This may be @@ -43,7 +45,8 @@ class BaseTarget(metaclass=ABCMeta): should be specified in a child class of BaseTarget. test_function: Test function which the class generates cases for. test_name: A common name or description of the test function. This can - be the function's name, or a short summary of its purpose. + be `test_function`, a clearer equivalent, or a short summary of the + test function's purpose. """ count = 0 case_description = "" @@ -61,7 +64,7 @@ class BaseTarget(metaclass=ABCMeta): """Get the list of arguments for the test case. Override this method to provide the list of arguments required for - generating the test_function. + the `test_function`. Returns: List of arguments required for the test function. @@ -69,12 +72,12 @@ class BaseTarget(metaclass=ABCMeta): raise NotImplementedError def description(self) -> str: - """Create a test description. + """Create a test case description. Creates a description of the test case, including a name for the test - function, and describing the specific test case. This should inform a - reader of the purpose of the case. The case description may be - generated in the class, or provided manually as needed. + function, a case number, and a description the specific test case. + This should inform a reader what is being tested, and provide context + for the test case. Returns: Description for the test case. @@ -85,7 +88,7 @@ class BaseTarget(metaclass=ABCMeta): def create_test_case(self) -> test_case.TestCase: - """Generate TestCase from the current object.""" + """Generate TestCase from the instance.""" tc = test_case.TestCase() tc.set_description(self.description()) tc.set_function(self.test_function) @@ -96,7 +99,7 @@ class BaseTarget(metaclass=ABCMeta): @classmethod @abstractmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: - """Generate test cases for the test function. + """Generate test cases for the class test function. This will be called in classes where `test_function` is set. Implementations should yield TestCase objects, by creating instances @@ -111,11 +114,10 @@ class BaseTarget(metaclass=ABCMeta): In classes with `test_function` set, `generate_function_tests()` is used to generate test cases first. - In all classes, this method will iterate over its subclasses, and - yield from `generate_tests()` in each. - Calling this method on a class X will yield test cases from all classes - derived from X. + In all classes, this method will iterate over its subclasses, and + yield from `generate_tests()` in each. Calling this method on a class X + will yield test cases from all classes derived from X. """ if cls.test_function: yield from cls.generate_function_tests() diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 2443f659b3..4486d49584 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -6,25 +6,33 @@ generate only the specified files. Class structure: -Target classes are directly derived from test_generation.BaseTarget, -representing a target file. These indicate where test cases will be written -to in classes derived from the Target. Multiple Target classes must not -represent the same target_basename. +Child classes of test_generation.BaseTarget (file Targets) represent a target +file. These indicate where test cases will be written to, for all subclasses of +this Target. Multiple Target classes should not reuse a `target_basename`. -Each subclass derived from a Target can either be: +Each subclass derived from a file Target can either be: - A concrete class, representing a test function, which generates test cases. - An abstract class containing shared methods and attributes, not associated - with a test function. An example is BignumOperation, which provides common - features used in binary bignum operations. + with a test function. An example is BignumOperation, which provides + common features used for bignum binary operations. + +Both concrete and abstract subclasses can be derived from, to implement +additional test cases (see BignumCmp and BignumCmpAbs for examples of deriving +from abstract and concrete classes). -Adding test generation for a function: +Adding test case generation for a function: A subclass representing the test function should be added, deriving from a -Target class or a descendant. This subclass must set/implement the following: +file Target. This test class must set/implement the following: - test_function: the function name from the associated .function file. - - arguments(): generation of the arguments required for the test_function. - - generate_function_test(): generation of the test cases for the function. + - test_name: a descriptive name or brief summary to refer to the test + function. + - arguments(): a method to generate the list of arguments required for the + test_function. + - generate_function_test(): a method to generate TestCases for the function. + This should create instances of the class with required input data, and + call `.create_test_case()` to yield the TestCase. Additional details and other attributes/methods are given in the documentation of BaseTarget in test_generation.py. @@ -71,7 +79,7 @@ class BignumTarget(test_generation.BaseTarget, metaclass=ABCMeta): class BignumOperation(BignumTarget, metaclass=ABCMeta): - """Common features for test cases covering binary bignum operations. + """Common features for bignum binary operations. This adds functionality common in binary operation tests. This includes generation of case descriptions, using descriptions of values and symbols @@ -130,7 +138,7 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): """Generate a description of the argument val. This produces a simple description of the value, which are used in test - case naming, to add context to the test cases. + case naming, to add context. """ if val == "": return "0 (null)" @@ -150,7 +158,7 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): @classmethod def get_value_pairs(cls) -> Iterator[Tuple[str, str]]: - """Generator for pairs of inputs. + """Generator to yield pairs of inputs. Combinations are first generated from all input values, and then specific cases provided. @@ -169,7 +177,7 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): class BignumCmp(BignumOperation): - """Target for bignum comparison test cases.""" + """Test cases for bignum value comparison.""" count = 0 test_function = "mbedtls_mpi_cmp_mpi" test_name = "MPI compare" @@ -190,7 +198,7 @@ class BignumCmp(BignumOperation): class BignumCmpAbs(BignumCmp): - """Target for bignum comparison, absolute variant.""" + """Test cases for absolute bignum value comparison.""" count = 0 test_function = "mbedtls_mpi_cmp_abs" test_name = "MPI compare (abs)" @@ -200,7 +208,7 @@ class BignumCmpAbs(BignumCmp): class BignumAdd(BignumOperation): - """Target for bignum addition test cases.""" + """Test cases for bignum value addition.""" count = 0 test_function = "mbedtls_mpi_add_mpi" test_name = "MPI add" @@ -223,7 +231,7 @@ class BignumAdd(BignumOperation): class BignumTestGenerator(test_generation.TestGenerator): - """Test generator subclass including bignum targets.""" + """Test generator subclass setting bignum targets.""" TARGETS = { subclass.target_basename: subclass.generate_tests for subclass in test_generation.BaseTarget.__subclasses__() From 9df9faac5cb0c223e30360da41f72e32497c7886 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Thu, 25 Aug 2022 12:49:41 +0100 Subject: [PATCH 0062/1028] Use argparser default for targets Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index 9e004a69fe..b22d58f99d 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -166,6 +166,7 @@ def main(args, generator_class: Type[TestGenerator] = TestGenerator): parser.add_argument('--directory', default="tests/suites", metavar='DIR', help='Output directory (default: tests/suites)') parser.add_argument('targets', nargs='*', metavar='TARGET', + default=sorted(generator_class.TARGETS), help='Target file to generate (default: all; "-": none)') options = parser.parse_args(args) build_tree.chdir_to_root() @@ -179,14 +180,11 @@ def main(args, generator_class: Type[TestGenerator] = TestGenerator): print(';'.join(generator.filename_for(name) for name in sorted(generator.TARGETS)), end='') return - if options.targets: - # Allow "-" as a special case so you can run - # ``generate_xxx_tests.py - $targets`` and it works uniformly whether - # ``$targets`` is empty or not. - options.targets = [os.path.basename(re.sub(r'\.data\Z', r'', target)) - for target in options.targets - if target != '-'] - else: - options.targets = sorted(generator.TARGETS) + # Allow "-" as a special case so you can run + # ``generate_xxx_tests.py - $targets`` and it works uniformly whether + # ``$targets`` is empty or not. + options.targets = [os.path.basename(re.sub(r'\.data\Z', r'', target)) + for target in options.targets + if target != '-'] for target in options.targets: generator.generate_target(target) From 76f45625e660a166b29c4f5d513c2e76dac3e00b Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Thu, 25 Aug 2022 13:21:45 +0100 Subject: [PATCH 0063/1028] Fix trailing whitespace Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index b22d58f99d..2981a7470c 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -166,7 +166,7 @@ def main(args, generator_class: Type[TestGenerator] = TestGenerator): parser.add_argument('--directory', default="tests/suites", metavar='DIR', help='Output directory (default: tests/suites)') parser.add_argument('targets', nargs='*', metavar='TARGET', - default=sorted(generator_class.TARGETS), + default=sorted(generator_class.TARGETS), help='Target file to generate (default: all; "-": none)') options = parser.parse_args(args) build_tree.chdir_to_root() From 3366ebcb66fc5e3a142cfc88d750ea3d03245518 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Thu, 25 Aug 2022 16:18:22 +0100 Subject: [PATCH 0064/1028] Add test_generation.py dependency in builds Signed-off-by: Werner Lewis --- tests/CMakeLists.txt | 2 ++ tests/Makefile | 2 ++ 2 files changed, 4 insertions(+) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 776d9557d3..57cf9770ff 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -63,6 +63,7 @@ if(GEN_FILES) DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_bignum_tests.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_case.py + ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_generation.py ) add_custom_command( OUTPUT @@ -79,6 +80,7 @@ if(GEN_FILES) ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/macro_collector.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/psa_storage.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_case.py + ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_generation.py ${CMAKE_CURRENT_SOURCE_DIR}/../include/psa/crypto_config.h ${CMAKE_CURRENT_SOURCE_DIR}/../include/psa/crypto_values.h ${CMAKE_CURRENT_SOURCE_DIR}/../include/psa/crypto_extra.h diff --git a/tests/Makefile b/tests/Makefile index e9acca3fe5..8777ae92fe 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -93,6 +93,7 @@ generated_files: $(GENERATED_FILES) $(GENERATED_BIGNUM_DATA_FILES): generated_bignum_test_data generated_bignum_test_data: scripts/generate_bignum_tests.py generated_bignum_test_data: ../scripts/mbedtls_dev/test_case.py +generated_bignum_test_data: ../scripts/mbedtls_dev/test_generation.py generated_bignum_test_data: echo " Gen $(GENERATED_BIGNUM_DATA_FILES)" $(PYTHON) scripts/generate_bignum_tests.py @@ -103,6 +104,7 @@ generated_psa_test_data: ../scripts/mbedtls_dev/crypto_knowledge.py generated_psa_test_data: ../scripts/mbedtls_dev/macro_collector.py generated_psa_test_data: ../scripts/mbedtls_dev/psa_storage.py generated_psa_test_data: ../scripts/mbedtls_dev/test_case.py +generated_psa_test_data: ../scripts/mbedtls_dev/test_generation.py ## The generated file only depends on the options that are present in ## crypto_config.h, not on which options are set. To avoid regenerating this ## file all the time when switching between configurations, don't declare From d932de8857a5e9861448858776cde1ae419e57f5 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 25 Aug 2022 16:43:43 +0100 Subject: [PATCH 0065/1028] Remove incorrect constant-time claim from doc for mbedtls_mpi_core_add_if() Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index e443d2cc5f..cf7caee942 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -236,8 +236,8 @@ mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *X, size_t limbs ); /** - * \brief Constant-time conditional addition of two known-size large unsigned - * integers, returning the carry. + * \brief Conditional addition of two known-size large unsigned integers, + * returning the carry. * * Functionally equivalent to * From 81f24443b7888180c75554c6fa1b29c8f942ccca Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Thu, 25 Aug 2022 16:27:05 +0100 Subject: [PATCH 0066/1028] Modify wording in docstrings Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 5 +++-- tests/scripts/generate_bignum_tests.py | 13 +++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index 2981a7470c..e833008b59 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -35,7 +35,8 @@ T = TypeVar('T') #pylint: disable=invalid-name class BaseTarget(metaclass=ABCMeta): """Base target for test case generation. - This should be derived from for file Targets. + Derive directly from this class when adding new file Targets, setting + `target_basename`. Attributes: count: Counter for test cases from this class. @@ -113,7 +114,7 @@ class BaseTarget(metaclass=ABCMeta): """Generate test cases for the class and its subclasses. In classes with `test_function` set, `generate_function_tests()` is - used to generate test cases first. + called to generate test cases first. In all classes, this method will iterate over its subclasses, and yield from `generate_tests()` in each. Calling this method on a class X diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 4486d49584..8a8425e1ca 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -24,7 +24,8 @@ from abstract and concrete classes). Adding test case generation for a function: A subclass representing the test function should be added, deriving from a -file Target. This test class must set/implement the following: +file Target such as BignumTarget. This test class must set/implement the +following: - test_function: the function name from the associated .function file. - test_name: a descriptive name or brief summary to refer to the test function. @@ -128,8 +129,8 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): def result(self) -> str: """Get the result of the operation. - This may be calculated during initialization and stored as `_result`, - or calculated when the method is called. + This could be calculated during initialization and stored as `_result` + and then returned, or calculated when the method is called. """ raise NotImplementedError @@ -137,8 +138,8 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): def value_description(val) -> str: """Generate a description of the argument val. - This produces a simple description of the value, which are used in test - case naming, to add context. + This produces a simple description of the value, which is used in test + case naming to add context. """ if val == "": return "0 (null)" @@ -231,7 +232,7 @@ class BignumAdd(BignumOperation): class BignumTestGenerator(test_generation.TestGenerator): - """Test generator subclass setting bignum targets.""" + """Test generator subclass, for bignum file Targets.""" TARGETS = { subclass.target_basename: subclass.generate_tests for subclass in test_generation.BaseTarget.__subclasses__() From 8e5bdfbbcf86e1867b5af22f5f7d23461fa54022 Mon Sep 17 00:00:00 2001 From: Nicholas Wilson Date: Wed, 9 Sep 2015 19:03:34 +0100 Subject: [PATCH 0067/1028] Improve programs/cert_write with a way to set extended key usages Signed-off-by: Dave Rodgman --- include/mbedtls/x509_crt.h | 13 ++++++++ library/x509write_crt.c | 34 +++++++++++++++++++++ programs/x509/cert_write.c | 62 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+) diff --git a/include/mbedtls/x509_crt.h b/include/mbedtls/x509_crt.h index 1ddc997c6a..0a5d1f5278 100644 --- a/include/mbedtls/x509_crt.h +++ b/include/mbedtls/x509_crt.h @@ -1144,6 +1144,19 @@ int mbedtls_x509write_crt_set_authority_key_identifier( mbedtls_x509write_cert * int mbedtls_x509write_crt_set_key_usage( mbedtls_x509write_cert *ctx, unsigned int key_usage ); +/** + * \brief Set the Extended Key Usage Extension + * (e.g. MBEDTLS_OID_SERVER_AUTH) + * + * \param ctx CRT context to use + * \param exts extended key usage extensions to set, a sequence of + * MBEDTLS_ASN1_OID objects + * + * \return 0 if successful, or MBEDTLS_ERR_X509_ALLOC_FAILED + */ +int mbedtls_x509write_crt_set_ext_key_usage( mbedtls_x509write_cert *ctx, + const mbedtls_asn1_sequence *exts ); + /** * \brief Set the Netscape Cert Type flags * (e.g. MBEDTLS_X509_NS_CERT_TYPE_SSL_CLIENT | MBEDTLS_X509_NS_CERT_TYPE_EMAIL) diff --git a/library/x509write_crt.c b/library/x509write_crt.c index 986e1fe128..c48c32b237 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -296,6 +296,40 @@ int mbedtls_x509write_crt_set_key_usage( mbedtls_x509write_cert *ctx, return( 0 ); } +int mbedtls_x509write_crt_set_ext_key_usage( mbedtls_x509write_cert *ctx, + const mbedtls_asn1_sequence *exts ) +{ + unsigned char buf[256]; + unsigned char *c = buf + sizeof(buf); + int ret; + size_t len = 0; + + if( exts == NULL ) + return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + + while( exts != NULL ) + { + if( exts->buf.tag != MBEDTLS_ASN1_OID ) + return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( &c, buf, exts->buf.p, exts->buf.len ) ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, exts->buf.len ) ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, MBEDTLS_ASN1_OID ) ); + exts = exts->next; + } + + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); + + ret = mbedtls_x509write_crt_set_extension( ctx, + MBEDTLS_OID_EXTENDED_KEY_USAGE, + MBEDTLS_OID_SIZE( MBEDTLS_OID_EXTENDED_KEY_USAGE ), + 1, c, len ); + if( ret != 0 ) + return( ret ); + + return( 0 ); +} + int mbedtls_x509write_crt_set_ns_cert_type( mbedtls_x509write_cert *ctx, unsigned char ns_cert_type ) { diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 793982d5a8..da0a624a06 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -1,3 +1,4 @@ + /* * Certificate generation and signing * @@ -47,6 +48,7 @@ int main( void ) #include "mbedtls/x509_crt.h" #include "mbedtls/x509_csr.h" +#include "mbedtls/oid.h" #include "mbedtls/entropy.h" #include "mbedtls/ctr_drbg.h" #include "mbedtls/md.h" @@ -56,6 +58,9 @@ int main( void ) #include #include +#define SET_OID(x, oid) \ + do { x.len = MBEDTLS_OID_SIZE(oid); x.p = (unsigned char*)oid; } while( 0 ) + #if defined(MBEDTLS_X509_CSR_PARSE_C) #define USAGE_CSR \ " request_file=%%s default: (empty)\n" \ @@ -81,6 +86,7 @@ int main( void ) #define DFL_IS_CA 0 #define DFL_MAX_PATHLEN -1 #define DFL_KEY_USAGE 0 +#define DFL_EXT_KEY_USAGE 0 #define DFL_NS_CERT_TYPE 0 #define DFL_VERSION 3 #define DFL_AUTH_IDENT 1 @@ -138,6 +144,14 @@ int main( void ) " key_cert_sign\n" \ " crl_sign\n" \ " (Considered for v3 only)\n"\ + " ext_key_usage=%%s default: (empty)\n" \ + " Comma-separated-list of values:\n" \ + " serverAuth\n" \ + " clientAuth\n" \ + " codeSigning\n" \ + " emailProtection\n" \ + " timeStamping\n" \ + " OCSPSigning\n" \ " ns_cert_type=%%s default: (empty)\n" \ " Comma-separated-list of values:\n" \ " ssl_client\n" \ @@ -176,6 +190,7 @@ struct options int version; /* CRT version */ mbedtls_md_type_t md; /* Hash used for signing */ unsigned char key_usage; /* key usage flags */ + mbedtls_asn1_sequence *ext_key_usage; /* extended key usages */ unsigned char ns_cert_type; /* NS cert type */ } opt; @@ -227,6 +242,7 @@ int main( int argc, char *argv[] ) #endif mbedtls_x509write_cert crt; mbedtls_mpi serial; + mbedtls_asn1_sequence *ext_key_usage; mbedtls_entropy_context entropy; mbedtls_ctr_drbg_context ctr_drbg; const char *pers = "crt example app"; @@ -269,6 +285,7 @@ int main( int argc, char *argv[] ) opt.is_ca = DFL_IS_CA; opt.max_pathlen = DFL_MAX_PATHLEN; opt.key_usage = DFL_KEY_USAGE; + opt.ext_key_usage = DFL_EXT_KEY_USAGE; opt.ns_cert_type = DFL_NS_CERT_TYPE; opt.version = DFL_VERSION - 1; opt.md = DFL_DIGEST; @@ -426,6 +443,35 @@ int main( int argc, char *argv[] ) q = r; } } + else if( strcmp( p, "ext_key_usage" ) == 0 ) + { + while( q != NULL ) + { + if( ( r = strchr( q, ',' ) ) != NULL ) + *r++ = '\0'; + + ext_key_usage = mbedtls_calloc( 1, sizeof(mbedtls_asn1_sequence) ); + ext_key_usage->next = opt.ext_key_usage; + ext_key_usage->buf.tag = MBEDTLS_ASN1_OID; + if( strcmp( q, "serverAuth" ) == 0 ) + SET_OID( ext_key_usage->buf, MBEDTLS_OID_SERVER_AUTH ); + else if( strcmp( q, "clientAuth" ) == 0 ) + SET_OID( ext_key_usage->buf, MBEDTLS_OID_CLIENT_AUTH ); + else if( strcmp( q, "codeSigning" ) == 0 ) + SET_OID( ext_key_usage->buf, MBEDTLS_OID_CODE_SIGNING ); + else if( strcmp( q, "emailProtection" ) == 0 ) + SET_OID( ext_key_usage->buf, MBEDTLS_OID_EMAIL_PROTECTION ); + else if( strcmp( q, "timeStamping" ) == 0 ) + SET_OID( ext_key_usage->buf, MBEDTLS_OID_TIME_STAMPING ); + else if( strcmp( q, "OCSPSigning" ) == 0 ) + SET_OID( ext_key_usage->buf, MBEDTLS_OID_OCSP_SIGNING ); + else + goto usage; + opt.ext_key_usage = ext_key_usage; + + q = r; + } + } else if( strcmp( p, "ns_cert_type" ) == 0 ) { while( q != NULL ) @@ -744,6 +790,22 @@ int main( int argc, char *argv[] ) mbedtls_printf( " ok\n" ); } + if( opt.ext_key_usage ) + { + mbedtls_printf( " . Adding the Extended Key Usage extension ..." ); + fflush( stdout ); + + ret = mbedtls_x509write_crt_set_ext_key_usage( &crt, opt.ext_key_usage ); + if( ret != 0 ) + { + mbedtls_strerror( ret, buf, 1024 ); + mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_ext_key_usage returned -0x%02x - %s\n\n", -ret, buf ); + goto exit; + } + + mbedtls_printf( " ok\n" ); + } + if( opt.version == MBEDTLS_X509_CRT_VERSION_3 && opt.ns_cert_type != 0 ) { From 99a96b1c2228ff21d9cd4503cfe23a877e6d01d9 Mon Sep 17 00:00:00 2001 From: Nicholas Wilson Date: Thu, 10 Sep 2015 18:28:01 +0100 Subject: [PATCH 0068/1028] Improve programs/cert_write with a way to set the signature digest This is useful for generating SHA-1 and MD5 certificates for test purposes. I guess RSA-PSS could be added too, but I don't need that now. Signed-off-by: Dave Rodgman --- programs/x509/cert_write.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index da0a624a06..e0d88b207d 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -85,6 +85,7 @@ int main( void ) #define DFL_SELFSIGN 0 #define DFL_IS_CA 0 #define DFL_MAX_PATHLEN -1 +#define DFL_SIG_ALG MBEDTLS_MD_SHA256 #define DFL_KEY_USAGE 0 #define DFL_EXT_KEY_USAGE 0 #define DFL_NS_CERT_TYPE 0 @@ -134,6 +135,7 @@ int main( void ) " basic_constraints=%%d default: 1\n" \ " Possible values: 0, 1\n" \ " (Considered for v3 only)\n"\ + " sig_alg=%%s default: SHA-256\n" \ " key_usage=%%s default: (empty)\n" \ " Comma-separated-list of values:\n" \ " digital_signature\n" \ @@ -189,6 +191,7 @@ struct options int basic_constraints; /* add basic constraints ext to CRT */ int version; /* CRT version */ mbedtls_md_type_t md; /* Hash used for signing */ + mbedtls_md_type_t sig_alg; /* MD to use generating signature */ unsigned char key_usage; /* key usage flags */ mbedtls_asn1_sequence *ext_key_usage; /* extended key usages */ unsigned char ns_cert_type; /* NS cert type */ @@ -284,6 +287,7 @@ int main( int argc, char *argv[] ) opt.selfsign = DFL_SELFSIGN; opt.is_ca = DFL_IS_CA; opt.max_pathlen = DFL_MAX_PATHLEN; + opt.sig_alg = DFL_SIG_ALG; opt.key_usage = DFL_KEY_USAGE; opt.ext_key_usage = DFL_EXT_KEY_USAGE; opt.ns_cert_type = DFL_NS_CERT_TYPE; @@ -413,6 +417,17 @@ int main( int argc, char *argv[] ) goto usage; } } + else if( strcmp( p, "sig_alg") == 0 ) + { + if( strcmp( q, "SHA-1" ) == 0 ) + opt.sig_alg = MBEDTLS_MD_SHA1; + else if( strcmp( q, "SHA-256" ) == 0 ) + opt.sig_alg = MBEDTLS_MD_SHA256; + else if( strcmp( q, "MD5" ) == 0 ) + opt.sig_alg = MBEDTLS_MD_MD5; + else + goto usage; + } else if( strcmp( p, "key_usage" ) == 0 ) { while( q != NULL ) @@ -732,6 +747,8 @@ int main( int argc, char *argv[] ) mbedtls_printf( " ok\n" ); } + mbedtls_x509write_crt_set_md_alg( &crt, opt.sig_alg ); + #if defined(MBEDTLS_SHA1_C) if( opt.version == MBEDTLS_X509_CRT_VERSION_3 && opt.subject_identifier != 0 ) From ca841d32db0bbd433bca1d41c922fdcff7472d00 Mon Sep 17 00:00:00 2001 From: Nicholas Wilson Date: Fri, 13 Nov 2015 14:22:36 +0000 Subject: [PATCH 0069/1028] Add test for mbedtls_x509write_crt_set_ext_key_usage, and fix reversed order Signed-off-by: Dave Rodgman --- library/x509write_crt.c | 14 +++--- tests/data_files/server1.key_ext_usage.crt | 20 +++++++++ tests/data_files/server1.key_ext_usages.crt | 21 +++++++++ tests/suites/test_suite_x509write.data | 50 ++++++++++++--------- tests/suites/test_suite_x509write.function | 19 ++++++++ 5 files changed, 98 insertions(+), 26 deletions(-) create mode 100644 tests/data_files/server1.key_ext_usage.crt create mode 100644 tests/data_files/server1.key_ext_usages.crt diff --git a/library/x509write_crt.c b/library/x509write_crt.c index c48c32b237..d0aaa9f1b5 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -303,18 +303,22 @@ int mbedtls_x509write_crt_set_ext_key_usage( mbedtls_x509write_cert *ctx, unsigned char *c = buf + sizeof(buf); int ret; size_t len = 0; + const mbedtls_asn1_sequence *last_ext = 0, *ext; + /* We need at least one extension: SEQUENCE SIZE (1..MAX) OF KeyPurposeId */ if( exts == NULL ) return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); - while( exts != NULL ) + /* Iterate over exts backwards, so we write them out in the requested order */ + while( last_ext != exts ) { - if( exts->buf.tag != MBEDTLS_ASN1_OID ) + for( ext = exts; ext->next != last_ext; ext = ext->next ) {} + if( ext->buf.tag != MBEDTLS_ASN1_OID ) return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( &c, buf, exts->buf.p, exts->buf.len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, exts->buf.len ) ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( &c, buf, ext->buf.p, ext->buf.len ) ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, ext->buf.len ) ); MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, MBEDTLS_ASN1_OID ) ); - exts = exts->next; + last_ext = ext; } MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); diff --git a/tests/data_files/server1.key_ext_usage.crt b/tests/data_files/server1.key_ext_usage.crt new file mode 100644 index 0000000000..4e7f21482b --- /dev/null +++ b/tests/data_files/server1.key_ext_usage.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDVzCCAj+gAwIBAgIBATANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJOTDER +MA8GA1UEChMIUG9sYXJTU0wxGTAXBgNVBAMTEFBvbGFyU1NMIFRlc3QgQ0EwHhcN +MTEwMjEyMTQ0NDA2WhcNMjEwMjEyMTQ0NDA2WjA8MQswCQYDVQQGEwJOTDERMA8G +A1UEChMIUG9sYXJTU0wxGjAYBgNVBAMTEVBvbGFyU1NMIFNlcnZlciAxMIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqQIfPUBq1VVTi/027oJlLhVhXom/ +uOhFkNvuiBZS0/FDUEeWEllkh2v9K+BG+XO+3c+S4ZFb7Wagb4kpeUWA0INq1UFD +d185fAkER4KwVzlw7aPsFRkeqDMIR8EFQqn9TMO0390GH00QUUBncxMPQPhtgSVf +CrFTxjB+FTms+Vruf5KepgVb5xOXhbUjktnUJAbVCSWJdQfdphqPPwkZvq1lLGTr +lZvc/kFeF6babFtpzAK6FCwWJJxK3M3Q91Jnc/EtoCP9fvQxyi1wyokLBNsupk9w +bp7OvViJ4lNZnm5akmXiiD8MlBmj3eXonZUT7Snbq3AS3FrKaxerUoJUsQIDAQAB +o2UwYzAJBgNVHRMEAjAAMB0GA1UdDgQWBBQfdNY/KcF0dEU7BRIsPai9Q1kCpjAf +BgNVHSMEGDAWgBS0WuSls97SUva51aaVD+s+vMf9/zAWBgNVHSUBAf8EDDAKBggr +BgEFBQcDATANBgkqhkiG9w0BAQUFAAOCAQEAloyGLaLVS/Ce+q08AkCcqn+/ymu3 +l25lMU99gW7MPccDuNoy83ZveJ654/ZEcswR0sc3T/BPShf0Hx8Ze3p0VvLjcRK8 +HME4GCRONnkuXhi784jkoxCU4N6NczcnDF8YOXdrCuosyS48dSrCpj/ouPxhFg2O +tjDkoZZqA0G0oWXn0d7nzSELLXatsUh52vsrlpu2UhnmCHjv8OOZYPa0agUUFmzm +gJ3Of7uK1w+WwBUyQbkQJvPpIT2MwMs8SBZZOZH/jluSn+4GfULAuRDbWaTj8VsN +g7WVjskm5kRQaGwi7ez4ajAJUzHQExUwt62ciFSETn6EYtw4f2EsyIgNXA== +-----END CERTIFICATE----- diff --git a/tests/data_files/server1.key_ext_usages.crt b/tests/data_files/server1.key_ext_usages.crt new file mode 100644 index 0000000000..491364349f --- /dev/null +++ b/tests/data_files/server1.key_ext_usages.crt @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDYTCCAkmgAwIBAgIBATANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJOTDER +MA8GA1UEChMIUG9sYXJTU0wxGTAXBgNVBAMTEFBvbGFyU1NMIFRlc3QgQ0EwHhcN +MTEwMjEyMTQ0NDA2WhcNMjEwMjEyMTQ0NDA2WjA8MQswCQYDVQQGEwJOTDERMA8G +A1UEChMIUG9sYXJTU0wxGjAYBgNVBAMTEVBvbGFyU1NMIFNlcnZlciAxMIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqQIfPUBq1VVTi/027oJlLhVhXom/ +uOhFkNvuiBZS0/FDUEeWEllkh2v9K+BG+XO+3c+S4ZFb7Wagb4kpeUWA0INq1UFD +d185fAkER4KwVzlw7aPsFRkeqDMIR8EFQqn9TMO0390GH00QUUBncxMPQPhtgSVf +CrFTxjB+FTms+Vruf5KepgVb5xOXhbUjktnUJAbVCSWJdQfdphqPPwkZvq1lLGTr +lZvc/kFeF6babFtpzAK6FCwWJJxK3M3Q91Jnc/EtoCP9fvQxyi1wyokLBNsupk9w +bp7OvViJ4lNZnm5akmXiiD8MlBmj3eXonZUT7Snbq3AS3FrKaxerUoJUsQIDAQAB +o28wbTAJBgNVHRMEAjAAMB0GA1UdDgQWBBQfdNY/KcF0dEU7BRIsPai9Q1kCpjAf +BgNVHSMEGDAWgBS0WuSls97SUva51aaVD+s+vMf9/zAgBgNVHSUBAf8EFjAUBggr +BgEFBQcDAwYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAAy0NlGQTgb9VSq9 +cAcetc1dQlnkMLGg9iBYSvwZ3n1AAd484zmfj062mavixlEKyiGfh8qYZDLLi4Ne +oXVuaBiz7X0XRhnj4Lsm+s4dO8rTzktvmbXE3J1ahW16hqZEj+mjbckyr5GfZZOq +aoX2DqxPwO0Glg5X879vWZQ7iUUrI38cMX869xLgBJRl1zC1KyWeeXG3QduT1LZY +sJI/OxpkA/vDP6rFDD3YjgUmQ9vpil2YD9gyb6eMVuTbChZh/7T9T4/zgkc1KIFt +LLpXRUQQDGI/7TTwoT26M7xryoj0S2RlxW/VJz5KrBRaQYyaMDmE7scePqIaFNc+ +siqNj9s= +-----END CERTIFICATE----- diff --git a/tests/suites/test_suite_x509write.data b/tests/suites/test_suite_x509write.data index 1844e5cf68..8411557d58 100644 --- a/tests/suites/test_suite_x509write.data +++ b/tests/suites/test_suite_x509write.data @@ -56,87 +56,95 @@ x509_csr_check_opaque:"data_files/server5.key":MBEDTLS_MD_SHA256:MBEDTLS_X509_KU Certificate write check Server1 SHA1 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:-1:"data_files/server1.crt":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.crt":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, not before 1970 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"19700210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:-1:"":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"19700210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, not after 2050 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20500210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:-1:"":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20500210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, not before 1970, not after 2050 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"19700210144406":"20500210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:-1:"":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"19700210144406":"20500210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, not before 2050, not after 2059 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20500210144406":"20590210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:-1:"":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20500210144406":"20590210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, key_usage depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:0:0:1:-1:"data_files/server1.key_usage.crt":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:"NULL":0:0:1:-1:"data_files/server1.key_usage.crt":0:0:"data_files/test-ca.crt" + +Certificate write check Server1 SHA1, one ext_key_usage +depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20110212144406":"20210212144406":MBEDTLS_MD_SHA1:0:0:"serverAuth":0:0:1:-1:"data_files/server1.key_ext_usage.crt":0:0:"data_files/test-ca.crt" + +Certificate write check Server1 SHA1, two ext_key_usages +depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20110212144406":"20210212144406":MBEDTLS_MD_SHA1:0:0:"codeSigning,timeStamping":0:0:1:-1:"data_files/server1.key_ext_usages.crt":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, ns_cert_type depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:1:-1:"data_files/server1.cert_type.crt":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:1:-1:"data_files/server1.cert_type.crt":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, version 1 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, CA depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:-1:"data_files/server1.ca.crt":0:1:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.ca.crt":0:1:"data_files/test-ca.crt" Certificate write check Server1 SHA1, RSA_ALT depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:0:-1:"data_files/server1.noauthid.crt":1:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:0:-1:"data_files/server1.noauthid.crt":1:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, RSA_ALT, key_usage depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:0:0:0:-1:"data_files/server1.key_usage_noauthid.crt":1:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:"NULL":0:0:0:-1:"data_files/server1.key_usage_noauthid.crt":1:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, RSA_ALT, ns_cert_type depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:0:-1:"data_files/server1.cert_type_noauthid.crt":1:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:0:-1:"data_files/server1.cert_type_noauthid.crt":1:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, RSA_ALT, version 1 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:0:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":1:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:0:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":1:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, RSA_ALT, CA depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:0:-1:"data_files/server1.ca_noauthid.crt":1:1:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:0:-1:"data_files/server1.ca_noauthid.crt":1:1:"data_files/test-ca.crt" Certificate write check Server1 SHA1, Opaque depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:-1:"data_files/server1.crt":2:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.crt":2:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, Opaque, key_usage depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:0:0:1:-1:"data_files/server1.key_usage.crt":2:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:"NULL":0:0:1:-1:"data_files/server1.key_usage.crt":2:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, Opaque, ns_cert_type depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:1:-1:"data_files/server1.cert_type.crt":2:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:1:-1:"data_files/server1.cert_type.crt":2:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, Opaque, version 1 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":2:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":2:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, Opaque, CA depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:-1:"data_files/server1.ca.crt":2:1:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.ca.crt":2:1:"data_files/test-ca.crt" Certificate write check Server5 ECDSA depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECDSA_C:MBEDTLS_ECDSA_DETERMINISTIC:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_DP_SECP256R1_ENABLED -x509_crt_check:"data_files/server5.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca2.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=Polarssl Test EC CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA256:0:0:0:0:1:-1:"data_files/server5.crt":0:0:"data_files/test-ca2.crt" +x509_crt_check:"data_files/server5.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca2.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=Polarssl Test EC CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA256:0:0:"NULL":0:0:1:-1:"data_files/server5.crt":0:0:"data_files/test-ca2.crt" Certificate write check Server5 ECDSA, Opaque depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECDSA_C:MBEDTLS_ECDSA_DETERMINISTIC:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server5.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca2.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=Polarssl Test EC CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA256:0:0:0:0:1:-1:"":2:0:"data_files/test-ca2.crt" +x509_crt_check:"data_files/server5.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca2.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=Polarssl Test EC CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA256:0:0:"NULL":0:0:1:-1:"":2:0:"data_files/test-ca2.crt" X509 String to Names #1 mbedtls_x509_string_to_names:"C=NL,O=Offspark\, Inc., OU=PolarSSL":"C=NL, O=Offspark\, Inc., OU=PolarSSL":0 diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index 9cb3dd4eb2..324223252b 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -238,6 +238,7 @@ void x509_crt_check( char *subject_key_file, char *subject_pwd, char *issuer_pwd, char *issuer_name, char *serial_str, char *not_before, char *not_after, int md_type, int key_usage, int set_key_usage, + char *ext_key_usage, int cert_type, int set_cert_type, int auth_ident, int ver, char *cert_check_file, int pk_wrap, int is_ca, char *cert_verify_file ) @@ -346,6 +347,24 @@ void x509_crt_check( char *subject_key_file, char *subject_pwd, TEST_ASSERT( mbedtls_x509write_crt_set_key_usage( &crt, key_usage ) == 0 ); if( set_cert_type != 0 ) TEST_ASSERT( mbedtls_x509write_crt_set_ns_cert_type( &crt, cert_type ) == 0 ); + if( strcmp( ext_key_usage, "NULL" ) != 0 ) + { + mbedtls_asn1_sequence exts[2] = { }; +#define SET_OID(x, oid) \ + do { x.len = MBEDTLS_OID_SIZE(oid); x.p = (unsigned char*)oid; \ + x.tag = MBEDTLS_ASN1_OID; } while( 0 ) + if( strcmp( ext_key_usage, "serverAuth" ) == 0 ) + { + SET_OID( exts[0].buf, MBEDTLS_OID_SERVER_AUTH ); + } + else if( strcmp( ext_key_usage, "codeSigning,timeStamping" ) == 0 ) + { + SET_OID( exts[0].buf, MBEDTLS_OID_CODE_SIGNING ); + exts[0].next = &exts[1]; + SET_OID( exts[1].buf, MBEDTLS_OID_TIME_STAMPING ); + } + TEST_ASSERT( mbedtls_x509write_crt_set_ext_key_usage( &crt, exts ) == 0 ); + } } ret = mbedtls_x509write_crt_pem( &crt, buf, sizeof( buf ), From abdb0df91d841d9a2ea759a7ebb23fdfc4f491f0 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 22 Jul 2022 15:45:30 +0100 Subject: [PATCH 0070/1028] Fix test fails due to changes in cert generation Test certs were originally generated with an old version of Mbed TLS that used printableString where we now use utf8string (e.g., in the organizationName). Otherwise the certs are identical. Signed-off-by: Dave Rodgman --- tests/data_files/server1.key_ext_usage.crt | 16 ++++++++-------- tests/data_files/server1.key_ext_usages.crt | 18 +++++++++--------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/tests/data_files/server1.key_ext_usage.crt b/tests/data_files/server1.key_ext_usage.crt index 4e7f21482b..bbe2c356f6 100644 --- a/tests/data_files/server1.key_ext_usage.crt +++ b/tests/data_files/server1.key_ext_usage.crt @@ -1,8 +1,8 @@ -----BEGIN CERTIFICATE----- MIIDVzCCAj+gAwIBAgIBATANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJOTDER -MA8GA1UEChMIUG9sYXJTU0wxGTAXBgNVBAMTEFBvbGFyU1NMIFRlc3QgQ0EwHhcN +MA8GA1UECgwIUG9sYXJTU0wxGTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0EwHhcN MTEwMjEyMTQ0NDA2WhcNMjEwMjEyMTQ0NDA2WjA8MQswCQYDVQQGEwJOTDERMA8G -A1UEChMIUG9sYXJTU0wxGjAYBgNVBAMTEVBvbGFyU1NMIFNlcnZlciAxMIIBIjAN +A1UECgwIUG9sYXJTU0wxGjAYBgNVBAMMEVBvbGFyU1NMIFNlcnZlciAxMIIBIjAN BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqQIfPUBq1VVTi/027oJlLhVhXom/ uOhFkNvuiBZS0/FDUEeWEllkh2v9K+BG+XO+3c+S4ZFb7Wagb4kpeUWA0INq1UFD d185fAkER4KwVzlw7aPsFRkeqDMIR8EFQqn9TMO0390GH00QUUBncxMPQPhtgSVf @@ -11,10 +11,10 @@ lZvc/kFeF6babFtpzAK6FCwWJJxK3M3Q91Jnc/EtoCP9fvQxyi1wyokLBNsupk9w bp7OvViJ4lNZnm5akmXiiD8MlBmj3eXonZUT7Snbq3AS3FrKaxerUoJUsQIDAQAB o2UwYzAJBgNVHRMEAjAAMB0GA1UdDgQWBBQfdNY/KcF0dEU7BRIsPai9Q1kCpjAf BgNVHSMEGDAWgBS0WuSls97SUva51aaVD+s+vMf9/zAWBgNVHSUBAf8EDDAKBggr -BgEFBQcDATANBgkqhkiG9w0BAQUFAAOCAQEAloyGLaLVS/Ce+q08AkCcqn+/ymu3 -l25lMU99gW7MPccDuNoy83ZveJ654/ZEcswR0sc3T/BPShf0Hx8Ze3p0VvLjcRK8 -HME4GCRONnkuXhi784jkoxCU4N6NczcnDF8YOXdrCuosyS48dSrCpj/ouPxhFg2O -tjDkoZZqA0G0oWXn0d7nzSELLXatsUh52vsrlpu2UhnmCHjv8OOZYPa0agUUFmzm -gJ3Of7uK1w+WwBUyQbkQJvPpIT2MwMs8SBZZOZH/jluSn+4GfULAuRDbWaTj8VsN -g7WVjskm5kRQaGwi7ez4ajAJUzHQExUwt62ciFSETn6EYtw4f2EsyIgNXA== +BgEFBQcDATANBgkqhkiG9w0BAQUFAAOCAQEAegtCN4EObE69RjW1hKUEQ/InrIsf +poKIgJCh3sck+FYKjcsMhRPBztnZaqjvkLnmCcq0Yv7uUDThHsNuu+NbeVr4flZL +gUoSSdHXYrJ8qDYez6oGoxttoZ33sqD3LQfzWZhDoTyjGUHTiWaA6KidCsWzkhKY +aNXF7O8dHO7k06I2UWt7SKbBm1dPj8OM4285kkQ7KCpG27ABtHePkp9aG66O/ktD +GbZs0AaYpeVnB9v1vSp6xInDCWydDFbmEE0mzAQr285UU07QEpnU1W/2qZHfLxnQ +GiDpR5pxoKXkskj2VuHPZPqbIkv9v2+bjeyXHDRSL7Rj087xhD5uXKb9fw== -----END CERTIFICATE----- diff --git a/tests/data_files/server1.key_ext_usages.crt b/tests/data_files/server1.key_ext_usages.crt index 491364349f..0c3d963eb2 100644 --- a/tests/data_files/server1.key_ext_usages.crt +++ b/tests/data_files/server1.key_ext_usages.crt @@ -1,8 +1,8 @@ -----BEGIN CERTIFICATE----- MIIDYTCCAkmgAwIBAgIBATANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJOTDER -MA8GA1UEChMIUG9sYXJTU0wxGTAXBgNVBAMTEFBvbGFyU1NMIFRlc3QgQ0EwHhcN +MA8GA1UECgwIUG9sYXJTU0wxGTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0EwHhcN MTEwMjEyMTQ0NDA2WhcNMjEwMjEyMTQ0NDA2WjA8MQswCQYDVQQGEwJOTDERMA8G -A1UEChMIUG9sYXJTU0wxGjAYBgNVBAMTEVBvbGFyU1NMIFNlcnZlciAxMIIBIjAN +A1UECgwIUG9sYXJTU0wxGjAYBgNVBAMMEVBvbGFyU1NMIFNlcnZlciAxMIIBIjAN BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqQIfPUBq1VVTi/027oJlLhVhXom/ uOhFkNvuiBZS0/FDUEeWEllkh2v9K+BG+XO+3c+S4ZFb7Wagb4kpeUWA0INq1UFD d185fAkER4KwVzlw7aPsFRkeqDMIR8EFQqn9TMO0390GH00QUUBncxMPQPhtgSVf @@ -11,11 +11,11 @@ lZvc/kFeF6babFtpzAK6FCwWJJxK3M3Q91Jnc/EtoCP9fvQxyi1wyokLBNsupk9w bp7OvViJ4lNZnm5akmXiiD8MlBmj3eXonZUT7Snbq3AS3FrKaxerUoJUsQIDAQAB o28wbTAJBgNVHRMEAjAAMB0GA1UdDgQWBBQfdNY/KcF0dEU7BRIsPai9Q1kCpjAf BgNVHSMEGDAWgBS0WuSls97SUva51aaVD+s+vMf9/zAgBgNVHSUBAf8EFjAUBggr -BgEFBQcDAwYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAAy0NlGQTgb9VSq9 -cAcetc1dQlnkMLGg9iBYSvwZ3n1AAd484zmfj062mavixlEKyiGfh8qYZDLLi4Ne -oXVuaBiz7X0XRhnj4Lsm+s4dO8rTzktvmbXE3J1ahW16hqZEj+mjbckyr5GfZZOq -aoX2DqxPwO0Glg5X879vWZQ7iUUrI38cMX869xLgBJRl1zC1KyWeeXG3QduT1LZY -sJI/OxpkA/vDP6rFDD3YjgUmQ9vpil2YD9gyb6eMVuTbChZh/7T9T4/zgkc1KIFt -LLpXRUQQDGI/7TTwoT26M7xryoj0S2RlxW/VJz5KrBRaQYyaMDmE7scePqIaFNc+ -siqNj9s= +BgEFBQcDAwYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBADIT9M10vT5yzMSR +GaaImXjyTRIBK683Vxnq5jqAJ75KzNUC52aiCOfd9/hAMkq3Pj+r6tIsH+jsl5PL +E4iv8GVDlbjA57icTD30XbolL4YPUvZYclxVopfRhTiDa5KJ1lYkUwWAE/Glj66Q +WO7Hihl+GYXap2e7dBZ7hGHdv6J1gRfA1OW6iB23Wl4xb0Y1CGc16yJZwuFbtbwM +w8z8a0XNd2UQTYesYlIvVpVcx2atgkbZwehPWGNCLGngz60fultj7JdLuUHi+r0z +DtjbSPsHDZDAer6ZxjaA4hkcnppacFttC+deD8bQ8+2JjHF6Gb/MBnaYIbOZOBgC +8CPIBjk= -----END CERTIFICATE----- From ec9f6b4de1e50289588b9794c5e0cad89dc4d471 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 27 Jul 2022 14:34:58 +0100 Subject: [PATCH 0071/1028] Fix minor compile errors Signed-off-by: Dave Rodgman --- programs/x509/cert_write.c | 2 +- tests/suites/test_suite_x509write.function | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index e0d88b207d..bffc4ab863 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -816,7 +816,7 @@ int main( int argc, char *argv[] ) if( ret != 0 ) { mbedtls_strerror( ret, buf, 1024 ); - mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_ext_key_usage returned -0x%02x - %s\n\n", -ret, buf ); + mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_ext_key_usage returned -0x%02x - %s\n\n", (unsigned int) -ret, buf ); goto exit; } diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index 324223252b..5781fe0d8f 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -349,7 +349,8 @@ void x509_crt_check( char *subject_key_file, char *subject_pwd, TEST_ASSERT( mbedtls_x509write_crt_set_ns_cert_type( &crt, cert_type ) == 0 ); if( strcmp( ext_key_usage, "NULL" ) != 0 ) { - mbedtls_asn1_sequence exts[2] = { }; + mbedtls_asn1_sequence exts[2]; + memset(exts, 0, sizeof(exts)); #define SET_OID(x, oid) \ do { x.len = MBEDTLS_OID_SIZE(oid); x.p = (unsigned char*)oid; \ x.tag = MBEDTLS_ASN1_OID; } while( 0 ) From 5f3f0d06e6734e78390a4e58a1c5af139a13c6e1 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 11 Aug 2022 14:38:26 +0100 Subject: [PATCH 0072/1028] Address minor review comments Signed-off-by: Dave Rodgman --- library/x509write_crt.c | 11 +++++------ programs/x509/cert_write.c | 3 +-- tests/suites/test_suite_x509write.function | 21 +++++++++++++-------- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/library/x509write_crt.c b/library/x509write_crt.c index d0aaa9f1b5..21e36b5987 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -303,7 +303,10 @@ int mbedtls_x509write_crt_set_ext_key_usage( mbedtls_x509write_cert *ctx, unsigned char *c = buf + sizeof(buf); int ret; size_t len = 0; - const mbedtls_asn1_sequence *last_ext = 0, *ext; + const mbedtls_asn1_sequence *last_ext = NULL; + mbedtls_asn1_sequence *ext; + + memset( buf, 0, sizeof(buf) ); /* We need at least one extension: SEQUENCE SIZE (1..MAX) OF KeyPurposeId */ if( exts == NULL ) @@ -324,14 +327,10 @@ int mbedtls_x509write_crt_set_ext_key_usage( mbedtls_x509write_cert *ctx, MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); - ret = mbedtls_x509write_crt_set_extension( ctx, + return mbedtls_x509write_crt_set_extension( ctx, MBEDTLS_OID_EXTENDED_KEY_USAGE, MBEDTLS_OID_SIZE( MBEDTLS_OID_EXTENDED_KEY_USAGE ), 1, c, len ); - if( ret != 0 ) - return( ret ); - - return( 0 ); } int mbedtls_x509write_crt_set_ns_cert_type( mbedtls_x509write_cert *ctx, diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index bffc4ab863..dbdc4eebf1 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -1,4 +1,3 @@ - /* * Certificate generation and signing * @@ -832,7 +831,7 @@ int main( int argc, char *argv[] ) ret = mbedtls_x509write_crt_set_ns_cert_type( &crt, opt.ns_cert_type ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_ns_cert_type " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index 5781fe0d8f..2e59658649 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -350,19 +350,24 @@ void x509_crt_check( char *subject_key_file, char *subject_pwd, if( strcmp( ext_key_usage, "NULL" ) != 0 ) { mbedtls_asn1_sequence exts[2]; - memset(exts, 0, sizeof(exts)); -#define SET_OID(x, oid) \ - do { x.len = MBEDTLS_OID_SIZE(oid); x.p = (unsigned char*)oid; \ - x.tag = MBEDTLS_ASN1_OID; } while( 0 ) + memset( exts, 0, sizeof(exts) ); + +#define SET_OID(x, oid) \ + do { \ + x.len = MBEDTLS_OID_SIZE(oid); \ + x.p = (unsigned char*)oid; \ + x.tag = MBEDTLS_ASN1_OID; \ + } while( 0 ) + if( strcmp( ext_key_usage, "serverAuth" ) == 0 ) { - SET_OID( exts[0].buf, MBEDTLS_OID_SERVER_AUTH ); + SET_OID( exts[0].buf, MBEDTLS_OID_SERVER_AUTH ); } else if( strcmp( ext_key_usage, "codeSigning,timeStamping" ) == 0 ) { - SET_OID( exts[0].buf, MBEDTLS_OID_CODE_SIGNING ); - exts[0].next = &exts[1]; - SET_OID( exts[1].buf, MBEDTLS_OID_TIME_STAMPING ); + SET_OID( exts[0].buf, MBEDTLS_OID_CODE_SIGNING ); + exts[0].next = &exts[1]; + SET_OID( exts[1].buf, MBEDTLS_OID_TIME_STAMPING ); } TEST_ASSERT( mbedtls_x509write_crt_set_ext_key_usage( &crt, exts ) == 0 ); } From e2b772d1b6849345852308bbfa9c017f0f2f32c0 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 11 Aug 2022 16:04:13 +0100 Subject: [PATCH 0073/1028] Fix whitespace, missing const Signed-off-by: Dave Rodgman --- library/x509write_crt.c | 2 +- tests/suites/test_suite_x509write.function | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/library/x509write_crt.c b/library/x509write_crt.c index 21e36b5987..b5f7af5cf6 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -304,7 +304,7 @@ int mbedtls_x509write_crt_set_ext_key_usage( mbedtls_x509write_cert *ctx, int ret; size_t len = 0; const mbedtls_asn1_sequence *last_ext = NULL; - mbedtls_asn1_sequence *ext; + const mbedtls_asn1_sequence *ext; memset( buf, 0, sizeof(buf) ); diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index 2e59658649..8e246ec411 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -357,7 +357,8 @@ void x509_crt_check( char *subject_key_file, char *subject_pwd, x.len = MBEDTLS_OID_SIZE(oid); \ x.p = (unsigned char*)oid; \ x.tag = MBEDTLS_ASN1_OID; \ - } while( 0 ) + } \ + while( 0 ) if( strcmp( ext_key_usage, "serverAuth" ) == 0 ) { From 2ee7bbd10a123db3b45f6e524756e1a77ce62af3 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 11 Aug 2022 16:23:17 +0100 Subject: [PATCH 0074/1028] Replace some constant values with sizeof Signed-off-by: Dave Rodgman --- programs/x509/cert_write.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index dbdc4eebf1..0f0703f4b2 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -262,7 +262,7 @@ int main( int argc, char *argv[] ) mbedtls_x509_csr_init( &csr ); #endif mbedtls_x509_crt_init( &issuer_crt ); - memset( buf, 0, 1024 ); + memset( buf, 0, sizeof(buf) ); if( argc == 0 ) { @@ -532,7 +532,7 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d - %s\n", ret, buf ); goto exit; @@ -547,7 +547,7 @@ int main( int argc, char *argv[] ) if( ( ret = mbedtls_mpi_read_string( &serial, 10, opt.serial ) ) != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_mpi_read_string " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -567,7 +567,7 @@ int main( int argc, char *argv[] ) if( ( ret = mbedtls_x509_crt_parse_file( &issuer_crt, opt.issuer_crt ) ) != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse_file " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -577,7 +577,7 @@ int main( int argc, char *argv[] ) &issuer_crt.subject ); if( ret < 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509_dn_gets " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -601,7 +601,7 @@ int main( int argc, char *argv[] ) if( ( ret = mbedtls_x509_csr_parse_file( &csr, opt.request_file ) ) != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509_csr_parse_file " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -611,7 +611,7 @@ int main( int argc, char *argv[] ) &csr.subject ); if( ret < 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509_dn_gets " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -636,7 +636,7 @@ int main( int argc, char *argv[] ) opt.subject_pwd, mbedtls_ctr_drbg_random, &ctr_drbg ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -652,7 +652,7 @@ int main( int argc, char *argv[] ) opt.issuer_pwd, mbedtls_ctr_drbg_random, &ctr_drbg ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile " "returned -x%02x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -687,7 +687,7 @@ int main( int argc, char *argv[] ) */ if( ( ret = mbedtls_x509write_crt_set_subject_name( &crt, opt.subject_name ) ) != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_subject_name " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -695,7 +695,7 @@ int main( int argc, char *argv[] ) if( ( ret = mbedtls_x509write_crt_set_issuer_name( &crt, opt.issuer_name ) ) != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_issuer_name " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -710,7 +710,7 @@ int main( int argc, char *argv[] ) ret = mbedtls_x509write_crt_set_serial( &crt, &serial ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_serial " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -719,7 +719,7 @@ int main( int argc, char *argv[] ) ret = mbedtls_x509write_crt_set_validity( &crt, opt.not_before, opt.not_after ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_validity " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -737,7 +737,7 @@ int main( int argc, char *argv[] ) opt.max_pathlen ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! x509write_crt_set_basic_contraints " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -758,7 +758,7 @@ int main( int argc, char *argv[] ) ret = mbedtls_x509write_crt_set_subject_key_identifier( &crt ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_subject" "_key_identifier returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); @@ -777,7 +777,7 @@ int main( int argc, char *argv[] ) ret = mbedtls_x509write_crt_set_authority_key_identifier( &crt ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_authority_" "key_identifier returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); @@ -797,7 +797,7 @@ int main( int argc, char *argv[] ) ret = mbedtls_x509write_crt_set_key_usage( &crt, opt.key_usage ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_key_usage " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -814,7 +814,7 @@ int main( int argc, char *argv[] ) ret = mbedtls_x509write_crt_set_ext_key_usage( &crt, opt.ext_key_usage ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_ext_key_usage returned -0x%02x - %s\n\n", (unsigned int) -ret, buf ); goto exit; } @@ -849,7 +849,7 @@ int main( int argc, char *argv[] ) if( ( ret = write_certificate( &crt, opt.output_file, mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! write_certificate -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; From 18b02d35d625967d6a3ce8cc034289cc75d6b04a Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 15 Aug 2022 11:01:54 +0100 Subject: [PATCH 0075/1028] Remove redundant sig_alg argument Signed-off-by: Dave Rodgman --- programs/x509/cert_write.c | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 0f0703f4b2..d1c716b8a4 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -134,7 +134,6 @@ int main( void ) " basic_constraints=%%d default: 1\n" \ " Possible values: 0, 1\n" \ " (Considered for v3 only)\n"\ - " sig_alg=%%s default: SHA-256\n" \ " key_usage=%%s default: (empty)\n" \ " Comma-separated-list of values:\n" \ " digital_signature\n" \ @@ -190,7 +189,6 @@ struct options int basic_constraints; /* add basic constraints ext to CRT */ int version; /* CRT version */ mbedtls_md_type_t md; /* Hash used for signing */ - mbedtls_md_type_t sig_alg; /* MD to use generating signature */ unsigned char key_usage; /* key usage flags */ mbedtls_asn1_sequence *ext_key_usage; /* extended key usages */ unsigned char ns_cert_type; /* NS cert type */ @@ -286,7 +284,6 @@ int main( int argc, char *argv[] ) opt.selfsign = DFL_SELFSIGN; opt.is_ca = DFL_IS_CA; opt.max_pathlen = DFL_MAX_PATHLEN; - opt.sig_alg = DFL_SIG_ALG; opt.key_usage = DFL_KEY_USAGE; opt.ext_key_usage = DFL_EXT_KEY_USAGE; opt.ns_cert_type = DFL_NS_CERT_TYPE; @@ -416,17 +413,6 @@ int main( int argc, char *argv[] ) goto usage; } } - else if( strcmp( p, "sig_alg") == 0 ) - { - if( strcmp( q, "SHA-1" ) == 0 ) - opt.sig_alg = MBEDTLS_MD_SHA1; - else if( strcmp( q, "SHA-256" ) == 0 ) - opt.sig_alg = MBEDTLS_MD_SHA256; - else if( strcmp( q, "MD5" ) == 0 ) - opt.sig_alg = MBEDTLS_MD_MD5; - else - goto usage; - } else if( strcmp( p, "key_usage" ) == 0 ) { while( q != NULL ) @@ -746,8 +732,6 @@ int main( int argc, char *argv[] ) mbedtls_printf( " ok\n" ); } - mbedtls_x509write_crt_set_md_alg( &crt, opt.sig_alg ); - #if defined(MBEDTLS_SHA1_C) if( opt.version == MBEDTLS_X509_CRT_VERSION_3 && opt.subject_identifier != 0 ) From 64937856e07a7fc611bfd48ce30e8abd0e727406 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 15 Aug 2022 14:12:25 +0100 Subject: [PATCH 0076/1028] Correct order of extended key usage attributes Signed-off-by: Dave Rodgman --- programs/x509/cert_write.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index d1c716b8a4..2f51e19c87 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -445,13 +445,14 @@ int main( int argc, char *argv[] ) } else if( strcmp( p, "ext_key_usage" ) == 0 ) { + mbedtls_asn1_sequence **tail = &opt.ext_key_usage; + while( q != NULL ) { if( ( r = strchr( q, ',' ) ) != NULL ) *r++ = '\0'; ext_key_usage = mbedtls_calloc( 1, sizeof(mbedtls_asn1_sequence) ); - ext_key_usage->next = opt.ext_key_usage; ext_key_usage->buf.tag = MBEDTLS_ASN1_OID; if( strcmp( q, "serverAuth" ) == 0 ) SET_OID( ext_key_usage->buf, MBEDTLS_OID_SERVER_AUTH ); @@ -467,7 +468,9 @@ int main( int argc, char *argv[] ) SET_OID( ext_key_usage->buf, MBEDTLS_OID_OCSP_SIGNING ); else goto usage; - opt.ext_key_usage = ext_key_usage; + + *tail = ext_key_usage; + tail = &ext_key_usage->next; q = r; } From c5e0a8a890fbf5db7451759b64b4729b113adf11 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 15 Aug 2022 14:24:22 +0100 Subject: [PATCH 0077/1028] Add missing error message Signed-off-by: Dave Rodgman --- programs/x509/cert_write.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 2f51e19c87..0118abd208 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -467,7 +467,10 @@ int main( int argc, char *argv[] ) else if( strcmp( q, "OCSPSigning" ) == 0 ) SET_OID( ext_key_usage->buf, MBEDTLS_OID_OCSP_SIGNING ); else + { + mbedtls_printf( "Invalid argument for option %s\n", p ); goto usage; + } *tail = ext_key_usage; tail = &ext_key_usage->next; From b496486cdc5b107b14ceaa0459e4d61a291e446c Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 30 Aug 2022 11:57:22 +0100 Subject: [PATCH 0078/1028] Reorder functions in bignum_core.[ch] Signed-off-by: Tom Cosgrove --- library/bignum_core.c | 166 +++++++++++++++++++++--------------------- library/bignum_core.h | 160 ++++++++++++++++++++-------------------- 2 files changed, 163 insertions(+), 163 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 4e5012b79b..35510e6823 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -293,6 +293,89 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *X, return( 0 ); } +mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t limbs, + unsigned cond ) +{ + mbedtls_mpi_uint c = 0, t; + for( size_t i = 0; i < limbs; i++ ) + { + mbedtls_mpi_uint add = cond * B[i]; + t = c; + t += A[i]; c = ( t < A[i] ); + t += add; c += ( t < add ); + A[i] = t; + } + return( c ); +} + +mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t limbs ) +{ + mbedtls_mpi_uint c = 0; + + for( size_t i = 0; i < limbs; i++ ) + { + mbedtls_mpi_uint z = ( A[i] < c ); + mbedtls_mpi_uint t = A[i] - c; + c = ( t < B[i] ) + z; + X[i] = t - B[i]; + } + + return( c ); +} + +mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len, + const mbedtls_mpi_uint *s, size_t s_len, + mbedtls_mpi_uint b ) +{ + mbedtls_mpi_uint c = 0; /* carry */ + if( d_len < s_len ) + s_len = d_len; + size_t excess_len = d_len - s_len; + size_t steps_x8 = s_len / 8; + size_t steps_x1 = s_len & 7; + + while( steps_x8-- ) + { + MULADDC_X8_INIT + MULADDC_X8_CORE + MULADDC_X8_STOP + } + + while( steps_x1-- ) + { + MULADDC_X1_INIT + MULADDC_X1_CORE + MULADDC_X1_STOP + } + + while( excess_len-- ) + { + *d += c; c = ( *d < c ); d++; + } + + return( c ); +} + +/* + * Fast Montgomery initialization (thanks to Tom St Denis). + */ +mbedtls_mpi_uint mbedtls_mpi_montg_init( const mbedtls_mpi_uint *N ) +{ + mbedtls_mpi_uint x = N[0]; + + x += ( ( N[0] + 2 ) & 4 ) << 1; + + for( unsigned int i = biL; i >= 8; i /= 2 ) + x *= ( 2 - ( N[0] * x ) ); + + return( ~x + 1 ); +} + void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, const mbedtls_mpi_uint *B, @@ -345,87 +428,4 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, mbedtls_ct_mpi_uint_cond_assign( AN_limbs, X, T, (unsigned char) ( carry ^ borrow ) ); } -/* - * Fast Montgomery initialization (thanks to Tom St Denis). - */ -mbedtls_mpi_uint mbedtls_mpi_montg_init( const mbedtls_mpi_uint *N ) -{ - mbedtls_mpi_uint x = N[0]; - - x += ( ( N[0] + 2 ) & 4 ) << 1; - - for( unsigned int i = biL; i >= 8; i /= 2 ) - x *= ( 2 - ( N[0] * x ) ); - - return( ~x + 1 ); -} - -mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len, - const mbedtls_mpi_uint *s, size_t s_len, - mbedtls_mpi_uint b ) -{ - mbedtls_mpi_uint c = 0; /* carry */ - if( d_len < s_len ) - s_len = d_len; - size_t excess_len = d_len - s_len; - size_t steps_x8 = s_len / 8; - size_t steps_x1 = s_len & 7; - - while( steps_x8-- ) - { - MULADDC_X8_INIT - MULADDC_X8_CORE - MULADDC_X8_STOP - } - - while( steps_x1-- ) - { - MULADDC_X1_INIT - MULADDC_X1_CORE - MULADDC_X1_STOP - } - - while( excess_len-- ) - { - *d += c; c = ( *d < c ); d++; - } - - return( c ); -} - -mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - size_t limbs ) -{ - mbedtls_mpi_uint c = 0; - - for( size_t i = 0; i < limbs; i++ ) - { - mbedtls_mpi_uint z = ( A[i] < c ); - mbedtls_mpi_uint t = A[i] - c; - c = ( t < B[i] ) + z; - X[i] = t - B[i]; - } - - return( c ); -} - -mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - size_t limbs, - unsigned cond ) -{ - mbedtls_mpi_uint c = 0, t; - for( size_t i = 0; i < limbs; i++ ) - { - mbedtls_mpi_uint add = cond * B[i]; - t = c; - t += A[i]; c = ( t < A[i] ); - t += add; c += ( t < add ); - A[i] = t; - } - return( c ); -} - #endif /* MBEDTLS_BIGNUM_C */ diff --git a/library/bignum_core.h b/library/bignum_core.h index cf7caee942..279dca2741 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -155,86 +155,6 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, #define GET_BYTE( X, i ) \ ( ( (X)[(i) / ciL] >> ( ( (i) % ciL ) * 8 ) ) & 0xff ) -/** - * \brief Montgomery multiplication: X = A * B * R^-1 mod N (HAC 14.36) - * - * \param[out] X The destination MPI, as a little-endian array of - * length \p AN_limbs. - * On successful completion, X contains the result of - * the multiplication A * B * R^-1 mod N where - * R = (2^ciL)^AN_limbs. - * \param[in] A Little-endian presentation of first operand. - * Must have exactly \p AN_limbs limbs. - * \param[in] B Little-endian presentation of second operand. - * \param[in] B_limbs The number of limbs in \p B. - * \param[in] N Little-endian presentation of the modulus. - * This must be odd and have exactly \p AN_limbs limbs. - * \param[in] AN_limbs The number of limbs in \p X, \p A, \p N. - * \param mm The Montgomery constant for \p N: -N^-1 mod 2^ciL. - * This can be calculated by `mbedtls_mpi_montg_init()`. - * \param[in,out] T Temporary storage of size at least 2*AN_limbs+1 limbs. - * Its initial content is unused and - * its final content is indeterminate. - */ -void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, size_t B_limbs, - const mbedtls_mpi_uint *N, size_t AN_limbs, - mbedtls_mpi_uint mm, mbedtls_mpi_uint *T ); - -/** - * \brief Calculate initialisation value for fast Montgomery modular - * multiplication - * - * \param[in] N Little-endian presentation of the modulus. This must have - * at least one limb. - * - * \return The initialisation value for fast Montgomery modular multiplication - */ -mbedtls_mpi_uint mbedtls_mpi_montg_init( const mbedtls_mpi_uint *N ); - -/** - * \brief Perform a known-size multiply accumulate operation: A += c * B - * - * \param[in,out] A The pointer to the (little-endian) array - * representing the bignum to accumulate onto. - * \param A_limbs The number of limbs of \p A. This must be - * at least \p B_limbs. - * \param[in] B The pointer to the (little-endian) array - * representing the bignum to multiply with. - * This may be the same as \p A. Otherwise, - * it must be disjoint from \p A. - * \param B_limbs The number of limbs of \p B. - * \param c A scalar to multiply with. - * - * \return The carry at the end of the operation. - */ -mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *A, size_t A_limbs, - const mbedtls_mpi_uint *B, size_t B_limbs, - mbedtls_mpi_uint c ); - -/** - * \brief Subtract two known-size large unsigned integers, returning the borrow. - * - * Calculate A - B where A and B have the same size. - * This function operates modulo (2^ciL)^limbs and returns the carry - * (1 if there was a wraparound, i.e. if `A < B`, and 0 otherwise). - * - * X may be aliased to A or B. - * - * \param[out] X The result of the subtraction. - * \param[in] A Little-endian presentation of left operand. - * \param[in] B Little-endian presentation of right operand. - * \param limbs Number of limbs of \p X, \p A and \p B. - * - * \return 1 if `A < B`. - * 0 if `A >= B`. - */ -mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - size_t limbs ); - /** * \brief Conditional addition of two known-size large unsigned integers, * returning the carry. @@ -267,4 +187,84 @@ mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *A, size_t limbs, unsigned cond ); +/** + * \brief Subtract two known-size large unsigned integers, returning the borrow. + * + * Calculate A - B where A and B have the same size. + * This function operates modulo (2^ciL)^limbs and returns the carry + * (1 if there was a wraparound, i.e. if `A < B`, and 0 otherwise). + * + * X may be aliased to A or B. + * + * \param[out] X The result of the subtraction. + * \param[in] A Little-endian presentation of left operand. + * \param[in] B Little-endian presentation of right operand. + * \param limbs Number of limbs of \p X, \p A and \p B. + * + * \return 1 if `A < B`. + * 0 if `A >= B`. + */ +mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t limbs ); + +/** + * \brief Perform a known-size multiply accumulate operation: A += c * B + * + * \param[in,out] A The pointer to the (little-endian) array + * representing the bignum to accumulate onto. + * \param A_limbs The number of limbs of \p A. This must be + * at least \p B_limbs. + * \param[in] B The pointer to the (little-endian) array + * representing the bignum to multiply with. + * This may be the same as \p A. Otherwise, + * it must be disjoint from \p A. + * \param B_limbs The number of limbs of \p B. + * \param c A scalar to multiply with. + * + * \return The carry at the end of the operation. + */ +mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *A, size_t A_limbs, + const mbedtls_mpi_uint *B, size_t B_limbs, + mbedtls_mpi_uint c ); + +/** + * \brief Calculate initialisation value for fast Montgomery modular + * multiplication + * + * \param[in] N Little-endian presentation of the modulus. This must have + * at least one limb. + * + * \return The initialisation value for fast Montgomery modular multiplication + */ +mbedtls_mpi_uint mbedtls_mpi_montg_init( const mbedtls_mpi_uint *N ); + +/** + * \brief Montgomery multiplication: X = A * B * R^-1 mod N (HAC 14.36) + * + * \param[out] X The destination MPI, as a little-endian array of + * length \p AN_limbs. + * On successful completion, X contains the result of + * the multiplication A * B * R^-1 mod N where + * R = (2^ciL)^AN_limbs. + * \param[in] A Little-endian presentation of first operand. + * Must have exactly \p AN_limbs limbs. + * \param[in] B Little-endian presentation of second operand. + * \param[in] B_limbs The number of limbs in \p B. + * \param[in] N Little-endian presentation of the modulus. + * This must be odd and have exactly \p AN_limbs limbs. + * \param[in] AN_limbs The number of limbs in \p X, \p A, \p N. + * \param mm The Montgomery constant for \p N: -N^-1 mod 2^ciL. + * This can be calculated by `mbedtls_mpi_montg_init()`. + * \param[in,out] T Temporary storage of size at least 2*AN_limbs+1 limbs. + * Its initial content is unused and + * its final content is indeterminate. + */ +void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, size_t B_limbs, + const mbedtls_mpi_uint *N, size_t AN_limbs, + mbedtls_mpi_uint mm, mbedtls_mpi_uint *T ); + #endif /* MBEDTLS_BIGNUM_CORE_H */ From 5dd97e60d504bf71f31f1083350a41357b125cbb Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 30 Aug 2022 14:31:49 +0100 Subject: [PATCH 0079/1028] Update comments following code review Signed-off-by: Tom Cosgrove --- library/bignum.c | 1 + library/bignum_core.c | 9 ++++++--- library/bignum_core.h | 15 +++++++++------ 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 3fa6a3b736..de6195251e 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1569,6 +1569,7 @@ static void mpi_montg_init( mbedtls_mpi_uint *mm, const mbedtls_mpi *N ) * (T->n >= 2 * N->n + 1). * Its initial content is unused and * its final content is indeterminate. + * It does not get reallocated. */ static void mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B, const mbedtls_mpi *N, mbedtls_mpi_uint mm, diff --git a/library/bignum_core.c b/library/bignum_core.c index 35510e6823..ed0068fba2 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -333,6 +333,11 @@ mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len, mbedtls_mpi_uint b ) { mbedtls_mpi_uint c = 0; /* carry */ + /* + * It is a documented precondition of this function that d_len >= s_len. + * If that's not the case, we swap these round: this turns what would be + * a buffer overflow into an incorrect result. + */ if( d_len < s_len ) s_len = d_len; size_t excess_len = d_len - s_len; @@ -418,9 +423,7 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, * i.e. (carry, borrow) of (0, 0) => return X * (0, 1) => return T * - * We've confirmed that the unit tests exercise this function with all 3 of - * the valid (carry, borrow) combinations (listed above), and that we don't - * see (carry, borrow) = (1, 0). + * (carry, borrow) = (1, 0) can't happen. * * So the correct return value is already in X if (carry ^ borrow) = 0, * but is in (the lower AN_limbs limbs of) T if (carry ^ borrow) = 1. diff --git a/library/bignum_core.h b/library/bignum_core.h index 279dca2741..36758e5393 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -190,11 +190,12 @@ mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *A, /** * \brief Subtract two known-size large unsigned integers, returning the borrow. * - * Calculate A - B where A and B have the same size. - * This function operates modulo (2^ciL)^limbs and returns the carry + * Calculate `A - B` where \p A and \p B have the same size. + * This function operates modulo `(2^ciL)^limbs` and returns the carry * (1 if there was a wraparound, i.e. if `A < B`, and 0 otherwise). * - * X may be aliased to A or B. + * \p X may be aliased to \p A or \p B, or even both, but may not overlap + * either otherwise. * * \param[out] X The result of the subtraction. * \param[in] A Little-endian presentation of left operand. @@ -249,12 +250,14 @@ mbedtls_mpi_uint mbedtls_mpi_montg_init( const mbedtls_mpi_uint *N ); * the multiplication A * B * R^-1 mod N where * R = (2^ciL)^AN_limbs. * \param[in] A Little-endian presentation of first operand. - * Must have exactly \p AN_limbs limbs. + * Must have the same number of limbs as \p N. * \param[in] B Little-endian presentation of second operand. * \param[in] B_limbs The number of limbs in \p B. + * Must be <= \p AN_limbs. * \param[in] N Little-endian presentation of the modulus. - * This must be odd and have exactly \p AN_limbs limbs. - * \param[in] AN_limbs The number of limbs in \p X, \p A, \p N. + * This must be odd, and have exactly the same number + * of limbs as \p A. + * \param[in] AN_limbs The number of limbs in \p X, \p A and \p N. * \param mm The Montgomery constant for \p N: -N^-1 mod 2^ciL. * This can be calculated by `mbedtls_mpi_montg_init()`. * \param[in,out] T Temporary storage of size at least 2*AN_limbs+1 limbs. From f0c8a8cf44373a31ce3eef39effc578628ffaca0 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 30 Aug 2022 15:15:02 +0100 Subject: [PATCH 0080/1028] One statement per line Signed-off-by: Tom Cosgrove --- library/bignum_core.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index ed0068fba2..2e183896a4 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -155,7 +155,7 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, mbedtls_mpi_uint tmp; /* Note that if cur_limb_left == cur_limb_right, * this code effectively swaps the bytes only once. */ - tmp = mpi_bigendian_to_host( *cur_limb_left ); + tmp = mpi_bigendian_to_host( *cur_limb_left ); *cur_limb_left = mpi_bigendian_to_host( *cur_limb_right ); *cur_limb_right = tmp; } @@ -298,15 +298,18 @@ mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *A, size_t limbs, unsigned cond ) { - mbedtls_mpi_uint c = 0, t; + mbedtls_mpi_uint c = 0; + for( size_t i = 0; i < limbs; i++ ) { mbedtls_mpi_uint add = cond * B[i]; - t = c; - t += A[i]; c = ( t < A[i] ); - t += add; c += ( t < add ); + mbedtls_mpi_uint t = c + A[i]; + c = ( t < A[i] ); + t += add; + c += ( t < add ); A[i] = t; } + return( c ); } @@ -360,7 +363,9 @@ mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len, while( excess_len-- ) { - *d += c; c = ( *d < c ); d++; + *d += c; + c = ( *d < c ); + d++; } return( c ); From dd06efbb8d1475832c3992381b21b60fc9d7ddb6 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 30 Aug 2022 21:02:00 +0200 Subject: [PATCH 0081/1028] Don't try restoring a file if no backup is available This caused `all.sh --force` to fail on a clean build tree. Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 03561390ed..fbea5577fb 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -314,7 +314,9 @@ cleanup() # Restore files that may have been clobbered by the job for x in $files_to_back_up; do - cp -p "$x$backup_suffix" "$x" + if [[ -e "$x$backup_suffix" ]]; then + cp -p "$x$backup_suffix" "$x" + fi done } From 076f7257e9574161ead4f78f56e68b1e291d70eb Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 30 Aug 2022 21:02:44 +0200 Subject: [PATCH 0082/1028] Don't remove programs/fuzz/Makefile Other programs/*/Makefile are only created by CMake, but programs/fuzz has its own Makefile in the repository. Fixes #6247. Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index fbea5577fb..d977994787 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -120,6 +120,9 @@ # Treat uninitialised variables as errors. set -e -o pipefail -u +# Enable ksh/bash extended file matching patterns +shopt -s extglob + pre_check_environment () { if [ -d library -a -d include -a -d tests ]; then :; else echo "Must be run from mbed TLS root" >&2 @@ -295,7 +298,7 @@ cleanup() -iname CMakeCache.txt -o \ -path './cmake/*.cmake' \) -exec rm -f {} \+ # Recover files overwritten by in-tree CMake builds - rm -f include/Makefile include/mbedtls/Makefile programs/*/Makefile + rm -f include/Makefile include/mbedtls/Makefile programs/!(fuzz)/Makefile # Remove any artifacts from the component_test_cmake_as_subdirectory test. rm -rf programs/test/cmake_subproject/build From 35269d93da0bb5ae4d872bce0503761dc2842781 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 25 May 2022 11:26:31 +0200 Subject: [PATCH 0083/1028] Fill psa_pake_operation and INPUT/OUTPUT min/max sizes for PSA PAKE builtin implementation Signed-off-by: Neil Armstrong --- include/psa/crypto_extra.h | 47 ++++++++++++++++++++++++++++++++------ 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/include/psa/crypto_extra.h b/include/psa/crypto_extra.h index 6de464d9db..eaadf817c0 100644 --- a/include/psa/crypto_extra.h +++ b/include/psa/crypto_extra.h @@ -1760,7 +1760,13 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); * recognized, or the parameters are incompatible, * return 0. */ -#define PSA_PAKE_OUTPUT_SIZE(alg, primitive, output_step) 0 +#define PSA_PAKE_OUTPUT_SIZE(alg, primitive, output_step) \ + ( alg == PSA_ALG_JPAKE && \ + primitive == PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, \ + PSA_ECC_FAMILY_SECP_R1, 256) ? \ + ( output_step == PSA_PAKE_STEP_KEY_SHARE ? 69 : \ + ( output_step == PSA_PAKE_STEP_ZK_PUBLIC ? 66 : 33 ) ) : 0 ) + /** A sufficient input buffer size for psa_pake_input(). * @@ -1781,7 +1787,12 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); * the input type or PAKE algorithm is not recognized, or * the parameters are incompatible, return 0. */ -#define PSA_PAKE_INPUT_SIZE(alg, primitive, input_step) 0 +#define PSA_PAKE_INPUT_SIZE(alg, primitive, input_step) \ + ( alg == PSA_ALG_JPAKE && \ + primitive == PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, \ + PSA_ECC_FAMILY_SECP_R1, 256) ? \ + ( input_step == PSA_PAKE_STEP_KEY_SHARE ? 69 : \ + ( input_step == PSA_PAKE_STEP_ZK_PUBLIC ? 66 : 33 ) ) : 0 ) /** Output buffer size for psa_pake_output() for any of the supported PAKE * algorithm and primitive suites and output step. @@ -1790,7 +1801,7 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); * * See also #PSA_PAKE_OUTPUT_SIZE(\p alg, \p primitive, \p step). */ -#define PSA_PAKE_OUTPUT_MAX_SIZE 0 +#define PSA_PAKE_OUTPUT_MAX_SIZE 69 /** Input buffer size for psa_pake_input() for any of the supported PAKE * algorithm and primitive suites and input step. @@ -1799,7 +1810,7 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); * * See also #PSA_PAKE_INPUT_SIZE(\p alg, \p primitive, \p step). */ -#define PSA_PAKE_INPUT_MAX_SIZE 0 +#define PSA_PAKE_INPUT_MAX_SIZE 69 /** Returns a suitable initializer for a PAKE cipher suite object of type * psa_pake_cipher_suite_t. @@ -1809,7 +1820,11 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); /** Returns a suitable initializer for a PAKE operation object of type * psa_pake_operation_t. */ -#define PSA_PAKE_OPERATION_INIT {PSA_ALG_NONE, {0}} +#if defined(MBEDTLS_PSA_BUILTIN_PAKE) +#define PSA_PAKE_OPERATION_INIT {PSA_ALG_NONE, 0, 0, 0, 0, MBEDTLS_SVC_KEY_ID_INIT, 0, NULL, 0, 0, { .dummy = 0 } } +#else +#define PSA_PAKE_OPERATION_INIT {PSA_ALG_NONE, 0, 0, {0}} +#endif struct psa_pake_cipher_suite_s { @@ -1879,14 +1894,32 @@ static inline void psa_pake_cs_set_hash( psa_pake_cipher_suite_t *cipher_suite, cipher_suite->hash = hash; } +#if defined(MBEDTLS_PSA_BUILTIN_PAKE) +#include +#endif + struct psa_pake_operation_s { - psa_algorithm_t alg; + psa_algorithm_t MBEDTLS_PRIVATE(alg); + unsigned int MBEDTLS_PRIVATE(state); + unsigned int MBEDTLS_PRIVATE(sequence); +#if defined(MBEDTLS_PSA_BUILTIN_PAKE) + unsigned int MBEDTLS_PRIVATE(input_step); + unsigned int MBEDTLS_PRIVATE(output_step); + mbedtls_svc_key_id_t MBEDTLS_PRIVATE(password); + psa_pake_role_t MBEDTLS_PRIVATE(role); + uint8_t *MBEDTLS_PRIVATE(buffer); + size_t MBEDTLS_PRIVATE(buffer_length); + size_t MBEDTLS_PRIVATE(buffer_offset); +#endif union { +#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) + mbedtls_ecjpake_context ecjpake; +#endif /* Make the union non-empty even with no supported algorithms. */ uint8_t dummy; - } ctx; + } MBEDTLS_PRIVATE(ctx); }; static inline struct psa_pake_cipher_suite_s psa_pake_cipher_suite_init( void ) From 4b5710f8a0a41afd0031cf59e1239a6b58b5acc2 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 25 May 2022 11:30:27 +0200 Subject: [PATCH 0084/1028] Allow KEY_TYPE_PASSWORD/KEY_TYPE_PASSWORD_HASH to be imported Signed-off-by: Neil Armstrong --- library/psa_crypto.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index b0116ddfb4..4a0bd83316 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -445,6 +445,8 @@ psa_status_t psa_validate_unstructured_key_bit_size( psa_key_type_t type, case PSA_KEY_TYPE_RAW_DATA: case PSA_KEY_TYPE_HMAC: case PSA_KEY_TYPE_DERIVE: + case PSA_KEY_TYPE_PASSWORD: + case PSA_KEY_TYPE_PASSWORD_HASH: break; #if defined(PSA_WANT_KEY_TYPE_AES) case PSA_KEY_TYPE_AES: From a4cc7d6d6ba18dbfe66829dd944d2d9237a92148 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 25 May 2022 11:30:48 +0200 Subject: [PATCH 0085/1028] Add PSA PAKE buildin implementation Signed-off-by: Neil Armstrong --- library/CMakeLists.txt | 1 + library/Makefile | 1 + library/psa_crypto_pake.c | 720 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 722 insertions(+) create mode 100644 library/psa_crypto_pake.c diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index 378cfb4570..951381475e 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -70,6 +70,7 @@ set(src_crypto psa_crypto_ecp.c psa_crypto_hash.c psa_crypto_mac.c + psa_crypto_pake.c psa_crypto_rsa.c psa_crypto_se.c psa_crypto_slot_management.c diff --git a/library/Makefile b/library/Makefile index 85cea6b08d..9c3af3b9b5 100644 --- a/library/Makefile +++ b/library/Makefile @@ -135,6 +135,7 @@ OBJS_CRYPTO= \ psa_crypto_ecp.o \ psa_crypto_hash.o \ psa_crypto_mac.o \ + psa_crypto_pake.o \ psa_crypto_rsa.o \ psa_crypto_se.o \ psa_crypto_slot_management.o \ diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c new file mode 100644 index 0000000000..9f91a5ee16 --- /dev/null +++ b/library/psa_crypto_pake.c @@ -0,0 +1,720 @@ +/* + * PSA PAKE layer on top of Mbed TLS software crypto + */ +/* + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "common.h" + +#if defined(MBEDTLS_PSA_CRYPTO_C) + +#include +#include "psa_crypto_core.h" +#include "psa_crypto_slot_management.h" + +#include +#include + +#include +#include +#include + +#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) +#define PSA_PAKE_BUFFER_SIZE ( ( 69 + 66 + 33 ) * 2 ) +#endif + +/* + * State sequence: + * + * psa_pake_setup() + * | + * |-- In any order: + * | | psa_pake_set_password_key() + * | | psa_pake_set_user() + * | | psa_pake_set_peer() + * | | psa_pake_set_role + * | + * |--- In any order: (First round input before or after first round output) + * | | + * | |------ In Order + * | | | psa_pake_output(PSA_PAKE_STEP_KEY_SHARE) + * | | | psa_pake_output(PSA_PAKE_STEP_ZK_PUBLIC) + * | | | psa_pake_output(PSA_PAKE_STEP_ZK_PROOF) + * | | | psa_pake_output(PSA_PAKE_STEP_KEY_SHARE) + * | | | psa_pake_output(PSA_PAKE_STEP_ZK_PUBLIC) + * | | | psa_pake_output(PSA_PAKE_STEP_ZK_PROOF) + * | | + * | |------ In Order: + * | | psa_pake_input(PSA_PAKE_STEP_KEY_SHARE) + * | | psa_pake_input(PSA_PAKE_STEP_ZK_PUBLIC) + * | | psa_pake_input(PSA_PAKE_STEP_ZK_PROOF) + * | | psa_pake_input(PSA_PAKE_STEP_KEY_SHARE) + * | | psa_pake_input(PSA_PAKE_STEP_ZK_PUBLIC) + * | | psa_pake_input(PSA_PAKE_STEP_ZK_PROOF) + * | + * |--- In any order: (Second round input before or after second round output) + * | | + * | |------ In Order + * | | | psa_pake_output(PSA_PAKE_STEP_KEY_SHARE) + * | | | psa_pake_output(PSA_PAKE_STEP_ZK_PUBLIC) + * | | | psa_pake_output(PSA_PAKE_STEP_ZK_PROOF) + * | | + * | |------ In Order: + * | | psa_pake_input(PSA_PAKE_STEP_KEY_SHARE) + * | | psa_pake_input(PSA_PAKE_STEP_ZK_PUBLIC) + * | | psa_pake_input(PSA_PAKE_STEP_ZK_PROOF) + * | + * psa_pake_get_implicit_key() + * psa_pake_abort() + */ + +enum psa_pake_step +{ + PSA_PAKE_STEP_INVALID = 0, + PSA_PAKE_STEP_X1_X2 = 1, + PSA_PAKE_STEP_X2S = 2, + PSA_PAKE_STEP_DERIVE = 3, +}; + +enum psa_pake_state +{ + PSA_PAKE_STATE_INVALID = 0, + PSA_PAKE_STATE_SETUP = 1, + PSA_PAKE_STATE_READY = 2, + PSA_PAKE_OUTPUT_X1_X2 = 3, + PSA_PAKE_OUTPUT_X2S = 4, + PSA_PAKE_INPUT_X1_X2 = 5, + PSA_PAKE_INPUT_X4S = 6, +}; + +enum psa_pake_sequence +{ + PSA_PAKE_SEQ_INVALID = 0, + PSA_PAKE_X1_STEP_KEY_SHARE = 1, /* also X2S & X4S KEY_SHARE */ + PSA_PAKE_X1_STEP_ZK_PUBLIC = 2, /* also X2S & X4S ZK_PUBLIC */ + PSA_PAKE_X1_STEP_ZK_PROOF = 3, /* also X2S & X4S ZK_PROOF */ + PSA_PAKE_X2_STEP_KEY_SHARE = 4, + PSA_PAKE_X2_STEP_ZK_PUBLIC = 5, + PSA_PAKE_X2_STEP_ZK_PROOF = 6, + PSA_PAKE_SEQ_END = 7, +}; + +#if defined(MBEDTLS_PSA_BUILTIN_PAKE) +psa_status_t psa_pake_setup( psa_pake_operation_t *operation, + const psa_pake_cipher_suite_t *cipher_suite) +{ + /* A context must be freshly initialized before it can be set up. */ + if( operation->alg != 0 || operation->state != PSA_PAKE_STATE_INVALID ) + { + return( PSA_ERROR_BAD_STATE ); + } + + if( cipher_suite == NULL || + PSA_ALG_IS_PAKE(cipher_suite->algorithm ) == 0 || + ( cipher_suite->type != PSA_PAKE_PRIMITIVE_TYPE_ECC && + cipher_suite->type != PSA_PAKE_PRIMITIVE_TYPE_DH ) || + PSA_ALG_IS_HASH( cipher_suite->hash ) == 0 ) + { + return( PSA_ERROR_INVALID_ARGUMENT ); + } + +#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) + if( cipher_suite->algorithm != PSA_ALG_JPAKE || + cipher_suite->type != PSA_PAKE_PRIMITIVE_TYPE_ECC || + cipher_suite->family != PSA_ECC_FAMILY_SECP_R1 || + cipher_suite->bits != 256 || + cipher_suite->hash != PSA_ALG_SHA_256 ) + { + return( PSA_ERROR_NOT_SUPPORTED ); + } + + operation->alg = cipher_suite->algorithm; + + mbedtls_ecjpake_init( &operation->ctx.ecjpake ); + + operation->state = PSA_PAKE_STATE_SETUP; + operation->sequence = PSA_PAKE_SEQ_INVALID; + operation->input_step = PSA_PAKE_STEP_X1_X2; + operation->output_step = PSA_PAKE_STEP_X1_X2; + + operation->buffer = NULL; + operation->buffer_length = 0; + operation->buffer_offset = 0; + + return( PSA_SUCCESS ); +#else + return( PSA_ERROR_NOT_SUPPORTED ); +#endif +} + +psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, + mbedtls_svc_key_id_t password ) +{ + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_attributes_t attributes = psa_key_attributes_init(); + psa_key_type_t type; + psa_key_usage_t usage; + + if( operation->alg == 0 || + operation->state != PSA_PAKE_STATE_SETUP ) + { + return( PSA_ERROR_BAD_STATE ); + } + + status = psa_get_key_attributes( password, &attributes ); + if( status != PSA_SUCCESS ) + return status; + + type = psa_get_key_type( &attributes ); + usage = psa_get_key_usage_flags( &attributes ); + + psa_reset_key_attributes( &attributes ); + + if( type != PSA_KEY_TYPE_PASSWORD && + type != PSA_KEY_TYPE_PASSWORD_HASH ) + { + return PSA_ERROR_INVALID_ARGUMENT; + } + + if( usage == 0 || + ( usage & PSA_KEY_USAGE_DERIVE ) == 0 ) + { + return PSA_ERROR_NOT_PERMITTED; + } + + operation->password = password; + + return( PSA_SUCCESS ); +} + +psa_status_t psa_pake_set_user( psa_pake_operation_t *operation, + const uint8_t *user_id, + size_t user_id_len ) +{ + if( operation->alg == 0 || + operation->state != PSA_PAKE_STATE_SETUP ) + { + return( PSA_ERROR_BAD_STATE ); + } + + if( user_id_len == 0 || user_id == NULL ) + return PSA_ERROR_INVALID_ARGUMENT; + + return( PSA_ERROR_NOT_SUPPORTED ); +} + +psa_status_t psa_pake_set_peer( psa_pake_operation_t *operation, + const uint8_t *peer_id, + size_t peer_id_len ) +{ + if( operation->alg == 0 || + operation->state != PSA_PAKE_STATE_SETUP ) + { + return( PSA_ERROR_BAD_STATE ); + } + + if( peer_id_len == 0 || peer_id == NULL ) + return PSA_ERROR_INVALID_ARGUMENT; + + return( PSA_ERROR_NOT_SUPPORTED ); +} + +psa_status_t psa_pake_set_role( psa_pake_operation_t *operation, + psa_pake_role_t role ) +{ + if( operation->alg == 0 || + operation->state != PSA_PAKE_STATE_SETUP ) + { + return( PSA_ERROR_BAD_STATE ); + } + + if( role != PSA_PAKE_ROLE_NONE && + role != PSA_PAKE_ROLE_FIRST && + role != PSA_PAKE_ROLE_SECOND && + role != PSA_PAKE_ROLE_CLIENT && + role != PSA_PAKE_ROLE_SERVER ) + { + return PSA_ERROR_INVALID_ARGUMENT; + } + +#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) + if( operation->alg == PSA_ALG_JPAKE ) + { + if( role != PSA_PAKE_ROLE_CLIENT && + role != PSA_PAKE_ROLE_SERVER ) + return PSA_ERROR_NOT_SUPPORTED; + + operation->role = role; + + return( PSA_SUCCESS ); + } + else +#endif + return( PSA_ERROR_NOT_SUPPORTED ); +} + +#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) +static psa_status_t psa_pake_ecjpake_setup( psa_pake_operation_t *operation ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + mbedtls_ecjpake_role role; + psa_key_slot_t *slot = NULL; + + if( operation->role == PSA_PAKE_ROLE_CLIENT ) + role = MBEDTLS_ECJPAKE_CLIENT; + else if( operation->role == PSA_PAKE_ROLE_SERVER ) + role = MBEDTLS_ECJPAKE_SERVER; + else + return( PSA_ERROR_BAD_STATE ); + + if( psa_is_valid_key_id( operation->password, 1 ) == 0 ) + return( PSA_ERROR_BAD_STATE ); + + status = psa_get_and_lock_key_slot( operation->password, &slot ); + if( status != PSA_SUCCESS ) + return( status ); + + + ret = mbedtls_ecjpake_setup( &operation->ctx.ecjpake, + role, + MBEDTLS_MD_SHA256, + MBEDTLS_ECP_DP_SECP256R1, + slot->key.data, slot->key.bytes ); + + psa_unlock_key_slot( slot ); + slot = NULL; + + if( ret != 0 ) + return( mbedtls_to_psa_error( ret ) ); + + operation->buffer = mbedtls_calloc( 1, 512 ); + if( operation->buffer == NULL ) + return( PSA_ERROR_INSUFFICIENT_MEMORY ); + + operation->state = PSA_PAKE_STATE_READY; + + return( PSA_SUCCESS ); +} +#endif + +psa_status_t psa_pake_output( psa_pake_operation_t *operation, + psa_pake_step_t step, + uint8_t *output, + size_t output_size, + size_t *output_length ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + size_t length; + + if( operation->alg == 0 || + operation->state == PSA_PAKE_STATE_INVALID ) + return( PSA_ERROR_BAD_STATE ); + + if( step != PSA_PAKE_STEP_KEY_SHARE && + step != PSA_PAKE_STEP_ZK_PUBLIC && + step != PSA_PAKE_STEP_ZK_PROOF ) + return( PSA_ERROR_INVALID_ARGUMENT ); + +#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) + if( operation->state == PSA_PAKE_STATE_SETUP ) { + status = psa_pake_ecjpake_setup( operation ); + if( status != PSA_SUCCESS ) + { + psa_pake_abort( operation ); + return( status ); + } + } + + if( operation->state >= PSA_PAKE_STATE_READY && + ( mbedtls_ecjpake_check( &operation->ctx.ecjpake ) != 0 || + operation->buffer == NULL ) ) + { + return( PSA_ERROR_BAD_STATE ); + } + + if( operation->state != PSA_PAKE_STATE_READY && + operation->state != PSA_PAKE_OUTPUT_X1_X2 && + operation->state != PSA_PAKE_OUTPUT_X2S ) + { + return( PSA_ERROR_BAD_STATE ); + } + + if( operation->state == PSA_PAKE_STATE_READY ) + { + if( step != PSA_PAKE_STEP_KEY_SHARE ) + return( PSA_ERROR_BAD_STATE ); + + switch( operation->output_step ) + { + case PSA_PAKE_STEP_X1_X2: + operation->state = PSA_PAKE_OUTPUT_X1_X2; + break; + case PSA_PAKE_STEP_X2S: + operation->state = PSA_PAKE_OUTPUT_X2S; + break; + default: + return( PSA_ERROR_BAD_STATE ); + } + + operation->sequence = PSA_PAKE_X1_STEP_KEY_SHARE; + } + + /* Check if step matches current sequence */ + switch( operation->sequence ) + { + case PSA_PAKE_X1_STEP_KEY_SHARE: + case PSA_PAKE_X2_STEP_KEY_SHARE: + if( step != PSA_PAKE_STEP_KEY_SHARE ) + return( PSA_ERROR_BAD_STATE ); + break; + + case PSA_PAKE_X1_STEP_ZK_PUBLIC: + case PSA_PAKE_X2_STEP_ZK_PUBLIC: + if( step != PSA_PAKE_STEP_ZK_PUBLIC ) + return( PSA_ERROR_BAD_STATE ); + break; + + case PSA_PAKE_X1_STEP_ZK_PROOF: + case PSA_PAKE_X2_STEP_ZK_PROOF: + if( step != PSA_PAKE_STEP_ZK_PROOF ) + return( PSA_ERROR_BAD_STATE ); + break; + + default: + return( PSA_ERROR_BAD_STATE ); + } + + /* Initialize & write round on KEY_SHARE sequences */ + if( operation->state == PSA_PAKE_OUTPUT_X1_X2 && + operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE ) + { + ret = mbedtls_ecjpake_write_round_one( &operation->ctx.ecjpake, + operation->buffer, + PSA_PAKE_BUFFER_SIZE, + &operation->buffer_length, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE ); + if( ret != 0 ) + { + psa_pake_abort( operation ); + return( mbedtls_to_psa_error( ret ) ); + } + + operation->buffer_offset = 0; + } + else if( operation->state == PSA_PAKE_OUTPUT_X2S && + operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE ) + { + ret = mbedtls_ecjpake_write_round_two( &operation->ctx.ecjpake, + operation->buffer, + PSA_PAKE_BUFFER_SIZE, + &operation->buffer_length, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE ); + if( ret != 0 ) + { + psa_pake_abort( operation ); + return( mbedtls_to_psa_error( ret ) ); + } + + operation->buffer_offset = 0; + } + + /* Load output sequence length */ + if( operation->state == PSA_PAKE_OUTPUT_X2S && + operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE ) + { + if( operation->role == PSA_PAKE_ROLE_SERVER ) + /* Length is stored after 3bytes curve */ + length = 3 + operation->buffer[3] + 1; + else + /* Length is stored at the first byte */ + length = operation->buffer[0] + 1; + } + else + { + /* Length is stored at the first byte */ + length = operation->buffer[operation->buffer_offset] + 1; + } + + if( length > operation->buffer_length ) + return( PSA_ERROR_DATA_CORRUPT ); + + if( output_size < length ) + { + psa_pake_abort( operation ); + return( PSA_ERROR_BUFFER_TOO_SMALL ); + } + + memcpy( output, + operation->buffer + operation->buffer_offset, + length ); + *output_length = length; + + operation->buffer_offset += length; + + /* Reset buffer after ZK_PROOF sequence */ + if( ( operation->state == PSA_PAKE_OUTPUT_X1_X2 && + operation->sequence == PSA_PAKE_X2_STEP_ZK_PROOF ) || + ( operation->state == PSA_PAKE_OUTPUT_X2S && + operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF ) ) + { + mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + operation->buffer_length = 0; + operation->buffer_offset = 0; + + operation->state = PSA_PAKE_STATE_READY; + operation->output_step++; + operation->sequence = 0; + } + else + { + operation->sequence++; + } + + return( PSA_SUCCESS ); +#else + return( PSA_ERROR_NOT_SUPPORTED ); +#endif +} + +psa_status_t psa_pake_input( psa_pake_operation_t *operation, + psa_pake_step_t step, + const uint8_t *input, + size_t input_length ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + size_t buffer_remain; + + if( operation->alg == 0 || + operation->state == PSA_PAKE_STATE_INVALID ) + return( PSA_ERROR_BAD_STATE ); + + if( step != PSA_PAKE_STEP_KEY_SHARE && + step != PSA_PAKE_STEP_ZK_PUBLIC && + step != PSA_PAKE_STEP_ZK_PROOF ) + return( PSA_ERROR_INVALID_ARGUMENT ); + +#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) + if( operation->state == PSA_PAKE_STATE_SETUP ) { + status = psa_pake_ecjpake_setup( operation ); + if( status != PSA_SUCCESS ) + { + psa_pake_abort( operation ); + return( status ); + } + } + + if( operation->state >= PSA_PAKE_STATE_READY && + ( mbedtls_ecjpake_check( &operation->ctx.ecjpake ) != 0 || + operation->buffer == NULL ) ) + { + return( PSA_ERROR_BAD_STATE ); + } + + if( operation->state != PSA_PAKE_STATE_READY && + operation->state != PSA_PAKE_INPUT_X1_X2 && + operation->state != PSA_PAKE_INPUT_X4S ) + { + return( PSA_ERROR_BAD_STATE ); + } + + if( operation->state == PSA_PAKE_STATE_READY ) + { + if( step != PSA_PAKE_STEP_KEY_SHARE ) + return( PSA_ERROR_BAD_STATE ); + + switch( operation->input_step ) + { + case PSA_PAKE_STEP_X1_X2: + operation->state = PSA_PAKE_INPUT_X1_X2; + break; + case PSA_PAKE_STEP_X2S: + operation->state = PSA_PAKE_INPUT_X4S; + break; + default: + return( PSA_ERROR_BAD_STATE ); + } + + operation->sequence = PSA_PAKE_X1_STEP_KEY_SHARE; + } + + buffer_remain = PSA_PAKE_BUFFER_SIZE - operation->buffer_length; + + if( input_length == 0 || + input_length > buffer_remain ) + { + psa_pake_abort( operation ); + return( PSA_ERROR_INSUFFICIENT_MEMORY ); + } + + /* Check if step matches current sequence */ + switch( operation->sequence ) + { + case PSA_PAKE_X1_STEP_KEY_SHARE: + case PSA_PAKE_X2_STEP_KEY_SHARE: + if( step != PSA_PAKE_STEP_KEY_SHARE ) + return( PSA_ERROR_BAD_STATE ); + break; + + case PSA_PAKE_X1_STEP_ZK_PUBLIC: + case PSA_PAKE_X2_STEP_ZK_PUBLIC: + if( step != PSA_PAKE_STEP_ZK_PUBLIC ) + return( PSA_ERROR_BAD_STATE ); + break; + + case PSA_PAKE_X1_STEP_ZK_PROOF: + case PSA_PAKE_X2_STEP_ZK_PROOF: + if( step != PSA_PAKE_STEP_ZK_PROOF ) + return( PSA_ERROR_BAD_STATE ); + break; + + default: + return( PSA_ERROR_BAD_STATE ); + } + + /* Copy input to local buffer */ + memcpy( operation->buffer + operation->buffer_length, + input, input_length ); + operation->buffer_length += input_length; + + /* Load buffer at each last round ZK_PROOF */ + if( operation->state == PSA_PAKE_INPUT_X1_X2 && + operation->sequence == PSA_PAKE_X2_STEP_ZK_PROOF ) + { + ret = mbedtls_ecjpake_read_round_one( &operation->ctx.ecjpake, + operation->buffer, + operation->buffer_length ); + + mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + operation->buffer_length = 0; + + if( ret != 0 ) + { + psa_pake_abort( operation ); + return( mbedtls_to_psa_error( ret ) ); + } + } + else if( operation->state == PSA_PAKE_INPUT_X4S && + operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF ) + { + ret = mbedtls_ecjpake_read_round_two( &operation->ctx.ecjpake, + operation->buffer, + operation->buffer_length ); + + mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + operation->buffer_length = 0; + + if( ret != 0 ) + { + psa_pake_abort( operation ); + return( mbedtls_to_psa_error( ret ) ); + } + } + + if( ( operation->state == PSA_PAKE_INPUT_X1_X2 && + operation->sequence == PSA_PAKE_X2_STEP_ZK_PROOF ) || + ( operation->state == PSA_PAKE_INPUT_X4S && + operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF ) ) + { + operation->state = PSA_PAKE_STATE_READY; + operation->input_step++; + operation->sequence = 0; + } + else + { + operation->sequence++; + } + + return( PSA_SUCCESS ); +#else + return( PSA_ERROR_NOT_SUPPORTED ); +#endif +} + +psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, + psa_key_derivation_operation_t *output) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + + if( operation->alg == 0 || + operation->state != PSA_PAKE_STATE_READY || + ( operation->input_step != PSA_PAKE_STEP_DERIVE && + operation->output_step != PSA_PAKE_STEP_DERIVE ) ) + return( PSA_ERROR_BAD_STATE ); + +#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) + ret = mbedtls_ecjpake_derive_secret( &operation->ctx.ecjpake, + operation->buffer, + PSA_PAKE_BUFFER_SIZE, + &operation->buffer_length, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE ); + if( ret != 0) + { + psa_pake_abort( operation ); + return( mbedtls_to_psa_error( ret ) ); + } + + status = psa_key_derivation_input_bytes( output, + PSA_KEY_DERIVATION_INPUT_SECRET, + operation->buffer, + operation->buffer_length ); + + mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + + psa_pake_abort( operation ); + + return( status ); +#else + return( PSA_ERROR_NOT_SUPPORTED ); +#endif +} + +psa_status_t psa_pake_abort(psa_pake_operation_t * operation) +{ + if( operation->alg == 0 ) + { + return( PSA_SUCCESS ); + } + + operation->alg = 0; + operation->state = 0; + operation->sequence = 0; + +#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) + operation->input_step = 0; + operation->output_step = 0; + operation->password = MBEDTLS_SVC_KEY_ID_INIT; + operation->role = 0; + mbedtls_free( operation->buffer ); + operation->buffer = NULL; + operation->buffer_length = 0; + operation->buffer_offset = 0; + mbedtls_ecjpake_free( &operation->ctx.ecjpake ); +#endif + + return( PSA_SUCCESS ); +} + +#endif /* MBEDTLS_PSA_BUILTIN_PAKE */ + +#endif /* MBEDTLS_PSA_CRYPTO_C */ From 637d0a0290cab9308cc67db00aa9a7344070a911 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 25 May 2022 11:28:22 +0200 Subject: [PATCH 0086/1028] Enable buildin PSA PAKE implementation when ECJPAKE_C is selected Signed-off-by: Neil Armstrong --- include/mbedtls/config_psa.h | 16 ++++++++++++++++ include/psa/crypto_config.h | 1 + 2 files changed, 17 insertions(+) diff --git a/include/mbedtls/config_psa.h b/include/mbedtls/config_psa.h index fbfcdc3d2d..80b11951f0 100644 --- a/include/mbedtls/config_psa.h +++ b/include/mbedtls/config_psa.h @@ -146,6 +146,16 @@ extern "C" { #define MBEDTLS_MD5_C #endif +#if defined(PSA_WANT_ALG_ECJPAKE) +#define MBEDTLS_PSA_BUILTIN_PAKE 1 +#define MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE 1 +#define MBEDTLS_ECP_DP_SECP192R1_ENABLED +#define MBEDTLS_BIGNUM_C +#define MBEDTLS_ECP_C +#define MBEDTLS_MD_C +#define MBEDTLS_ECJPAKE_C +#endif /* PSA_WANT_ALG_ECJPAKE */ + #if defined(PSA_WANT_ALG_RIPEMD160) && !defined(MBEDTLS_PSA_ACCEL_ALG_RIPEMD160) #define MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160 1 #define MBEDTLS_RIPEMD160_C @@ -635,6 +645,12 @@ extern "C" { #define PSA_WANT_ALG_MD5 1 #endif +#if defined(MBEDTLS_ECJPAKE_C) +#define MBEDTLS_PSA_BUILTIN_PAKE 1 +#define MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE 1 +#define PSA_WANT_ALG_ECJPAKE 1 +#endif + #if defined(MBEDTLS_RIPEMD160_C) #define MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160 1 #define PSA_WANT_ALG_RIPEMD160 1 diff --git a/include/psa/crypto_config.h b/include/psa/crypto_config.h index 991be96ef4..58fb3b1190 100644 --- a/include/psa/crypto_config.h +++ b/include/psa/crypto_config.h @@ -65,6 +65,7 @@ #define PSA_WANT_ALG_ECB_NO_PADDING 1 #define PSA_WANT_ALG_ECDH 1 #define PSA_WANT_ALG_ECDSA 1 +#define PSA_WANT_ALG_ECJPAKE 1 #define PSA_WANT_ALG_GCM 1 #define PSA_WANT_ALG_HKDF 1 #define PSA_WANT_ALG_HKDF_EXTRACT 1 From d597bc705fd42db86baa8addd35d1d08c2f5200a Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 25 May 2022 11:28:39 +0200 Subject: [PATCH 0087/1028] Add PSA PAKE tests Signed-off-by: Neil Armstrong --- tests/suites/test_suite_psa_crypto.data | 48 +++ tests/suites/test_suite_psa_crypto.function | 324 ++++++++++++++++++++ 2 files changed, 372 insertions(+) diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index 1182c00693..298a5af0ff 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -6445,3 +6445,51 @@ persistent_key_load_key_from_storage:"":PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY PSA derive persistent key: HKDF SHA-256, exportable persistent_key_load_key_from_storage:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":PSA_KEY_TYPE_RAW_DATA:1024:PSA_KEY_USAGE_EXPORT:0:DERIVE_KEY + +PSA PAKE: invalid alg +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_SHA_256:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"abcd":PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: invalid primitive type +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_DH, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"abcd":PSA_ERROR_NOT_SUPPORTED + +PSA PAKE: invalid primitive family +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_K1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"abcd":PSA_ERROR_NOT_SUPPORTED + +PSA PAKE: invalid primitive bits +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 128):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"abcd":PSA_ERROR_NOT_SUPPORTED + +PSA PAKE: ecjpake setup server +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"abcd":0 + +PSA PAKE: ecjpake setup server empty password +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"":PSA_ERROR_BAD_STATE + +PSA PAKE: ecjpake setup server invalid step +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_ZK_PROOF:"abcd":PSA_ERROR_BAD_STATE + +PSA PAKE: ecjpake setup client +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:PSA_PAKE_STEP_KEY_SHARE:"abcd":0 + +PSA PAKE: ecjpake setup client empty password +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:PSA_PAKE_STEP_KEY_SHARE:"":PSA_ERROR_BAD_STATE + +PSA PAKE: ecjpake setup client invalid step +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:PSA_PAKE_STEP_ZK_PROOF:"abcd":PSA_ERROR_BAD_STATE + +PSA PAKE: ecjpake setup invalid role NONE +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_NONE:PSA_PAKE_STEP_KEY_SHARE:"abcd":PSA_ERROR_NOT_SUPPORTED + +PSA PAKE: ecjpake rounds +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef" diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 7d368cf162..9b7bb20ec3 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -8091,3 +8091,327 @@ exit: PSA_DONE(); } /* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_ECJPAKE_C */ +void ecjpake_setup( int alg_arg, int primitive_arg, int hash_arg, int role_arg, + int output_step_arg, data_t *pw_data, + int expected_status_arg ) +{ + psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); + psa_pake_operation_t operation = psa_pake_operation_init(); + psa_algorithm_t alg = alg_arg; + psa_algorithm_t hash_alg = hash_arg; + psa_pake_role_t role = role_arg; + psa_pake_step_t step = output_step_arg; + mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + psa_status_t expected_status = expected_status_arg; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + unsigned char *output_buffer = NULL; + size_t output_len = 0; + + PSA_INIT( ); + + ASSERT_ALLOC( output_buffer, + PSA_PAKE_OUTPUT_SIZE(alg, primitive_arg, step) ); + + if( pw_data->len > 0 ) + { + psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); + psa_set_key_algorithm( &attributes, alg ); + psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); + PSA_ASSERT( psa_import_key( &attributes, pw_data->x, pw_data->len, + &key ) ); + } + + psa_pake_cs_set_algorithm( &cipher_suite, alg ); + psa_pake_cs_set_primitive( &cipher_suite, primitive_arg ); + psa_pake_cs_set_hash( &cipher_suite, hash_alg ); + + status = psa_pake_setup( &operation, &cipher_suite ); + if( status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + goto exit; + } + else + PSA_ASSERT( status ); + + status = psa_pake_set_role( &operation, role ); + if( status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + goto exit; + } + else + PSA_ASSERT( status ); + + if( pw_data->len > 0 ) + { + status = psa_pake_set_password_key( &operation, key ); + if( status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + goto exit; + } + else + PSA_ASSERT( status ); + } + + /* First round Output */ + status = psa_pake_output( &operation, step, output_buffer, + 512, &output_len ); + if( status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + goto exit; + } + else + PSA_ASSERT( status ); + + TEST_ASSERT( output_len > 0 ); + +exit: + PSA_ASSERT( psa_destroy_key( key ) ); + PSA_ASSERT( psa_pake_abort( &operation ) ); + mbedtls_free( output_buffer ); + PSA_DONE( ); +} +/* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_ECJPAKE_C */ +void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, + int derive_alg_arg, data_t *pw_data ) +{ + psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); + psa_pake_operation_t server = psa_pake_operation_init(); + psa_pake_operation_t client = psa_pake_operation_init(); + psa_algorithm_t alg = alg_arg; + psa_algorithm_t hash_alg = hash_arg; + psa_algorithm_t derive_alg = derive_alg_arg; + mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + psa_key_derivation_operation_t server_derive = + PSA_KEY_DERIVATION_OPERATION_INIT; + psa_key_derivation_operation_t client_derive = + PSA_KEY_DERIVATION_OPERATION_INIT; + unsigned char *buffer0 = NULL, *buffer1 = NULL; + size_t buffer_length = ( + PSA_PAKE_OUTPUT_SIZE(alg, primitive_arg, PSA_PAKE_STEP_KEY_SHARE) + + PSA_PAKE_OUTPUT_SIZE(alg, primitive_arg, PSA_PAKE_STEP_ZK_PUBLIC) + + PSA_PAKE_OUTPUT_SIZE(alg, primitive_arg, PSA_PAKE_STEP_ZK_PROOF)) * 2; + size_t buffer0_off = 0; + size_t buffer1_off = 0; + size_t s_g1_len, s_g2_len, s_a_len; + size_t s_g1_off, s_g2_off, s_a_off; + size_t s_x1_pk_len, s_x2_pk_len, s_x2s_pk_len; + size_t s_x1_pk_off, s_x2_pk_off, s_x2s_pk_off; + size_t s_x1_pr_len, s_x2_pr_len, s_x2s_pr_len; + size_t s_x1_pr_off, s_x2_pr_off, s_x2s_pr_off; + size_t c_g1_len, c_g2_len, c_a_len; + size_t c_g1_off, c_g2_off, c_a_off; + size_t c_x1_pk_len, c_x2_pk_len, c_x2s_pk_len; + size_t c_x1_pk_off, c_x2_pk_off, c_x2s_pk_off; + size_t c_x1_pr_len, c_x2_pr_len, c_x2s_pr_len; + size_t c_x1_pr_off, c_x2_pr_off, c_x2s_pr_off; + + PSA_INIT( ); + + ASSERT_ALLOC( buffer0, buffer_length ); + ASSERT_ALLOC( buffer1, buffer_length ); + + psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); + psa_set_key_algorithm( &attributes, alg ); + psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); + PSA_ASSERT( psa_import_key( &attributes, pw_data->x, pw_data->len, + &key ) ); + + psa_pake_cs_set_algorithm( &cipher_suite, alg ); + psa_pake_cs_set_primitive( &cipher_suite, primitive_arg ); + psa_pake_cs_set_hash( &cipher_suite, hash_alg ); + + PSA_ASSERT( psa_pake_setup( &server, &cipher_suite ) ); + PSA_ASSERT( psa_pake_setup( &client, &cipher_suite ) ); + + PSA_ASSERT( psa_pake_set_role( &server, PSA_PAKE_ROLE_SERVER ) ); + PSA_ASSERT( psa_pake_set_role( &client, PSA_PAKE_ROLE_CLIENT ) ); + + PSA_ASSERT( psa_pake_set_password_key( &server, key ) ); + PSA_ASSERT( psa_pake_set_password_key( &client, key ) ); + + /* Server first round Output */ + PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_g1_len ) ); + s_g1_off = buffer0_off; + buffer0_off += s_g1_len; + PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x1_pk_len ) ); + s_x1_pk_off = buffer0_off; + buffer0_off += s_x1_pk_len; + PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x1_pr_len ) ); + s_x1_pr_off = buffer0_off; + buffer0_off += s_x1_pr_len; + PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_g2_len ) ); + s_g2_off = buffer0_off; + buffer0_off += s_g2_len; + PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2_pk_len ) ); + s_x2_pk_off = buffer0_off; + buffer0_off += s_x2_pk_len; + PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2_pr_len ) ); + s_x2_pr_off = buffer0_off; + buffer0_off += s_x2_pr_len; + + /* Client first round Output */ + PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_g1_len ) ); + c_g1_off = buffer1_off; + buffer1_off += c_g1_len; + PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x1_pk_len ) ); + c_x1_pk_off = buffer1_off; + buffer1_off += c_x1_pk_len; + PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x1_pr_len ) ); + c_x1_pr_off = buffer1_off; + buffer1_off += c_x1_pr_len; + PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_g2_len ) ); + c_g2_off = buffer1_off; + buffer1_off += c_g2_len; + PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2_pk_len ) ); + c_x2_pk_off = buffer1_off; + buffer1_off += c_x2_pk_len; + PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2_pr_len ) ); + c_x2_pr_off = buffer1_off; + buffer1_off += c_x2_pr_len; + + /* Client first round Input */ + PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g1_off, s_g1_len ) ); + PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x1_pk_off, s_x1_pk_len ) ); + PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x1_pr_off, s_x1_pr_len ) ); + PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g2_off, s_g2_len ) ); + PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2_pk_off, s_x2_pk_len ) ); + PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2_pr_off, s_x2_pr_len ) ); + + /* Server first round Input */ + PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_g1_off, c_g1_len ) ); + PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x1_pk_off, c_x1_pk_len ) ); + PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x1_pr_off, c_x1_pr_len ) ); + PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_g2_off, c_g2_len ) ); + PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x2_pk_off, c_x2_pk_len ) ); + PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x2_pr_off, c_x2_pr_len ) ); + + /* Server second round Output */ + buffer0_off = 0; + + PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_a_len ) ); + s_a_off = buffer0_off; + buffer0_off += s_a_len; + PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2s_pk_len ) ); + s_x2s_pk_off = buffer0_off; + buffer0_off += s_x2s_pk_len; + PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2s_pr_len ) ); + s_x2s_pr_off = buffer0_off; + buffer0_off += s_x2s_pr_len; + + /* Client second round Output */ + buffer1_off = 0; + + PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_a_len ) ); + c_a_off = buffer1_off; + buffer1_off += c_a_len; + PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2s_pk_len ) ); + c_x2s_pk_off = buffer1_off; + buffer1_off += c_x2s_pk_len; + PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2s_pr_len ) ); + c_x2s_pr_off = buffer1_off; + buffer1_off += c_x2s_pr_len; + + /* Client second round Input */ + PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_a_off, s_a_len ) ); + PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2s_pk_off, s_x2s_pk_len ) ); + PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2s_pr_off, s_x2s_pr_len ) ); + + /* Server second round Input */ + PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_a_off, c_a_len ) ); + PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x2s_pk_off, c_x2s_pk_len ) ); + PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x2s_pr_off, c_x2s_pr_len ) ); + + + /* Get shared key */ + PSA_ASSERT( psa_key_derivation_setup( &server_derive, derive_alg ) ); + PSA_ASSERT( psa_key_derivation_setup( &client_derive, derive_alg ) ); + + if( PSA_ALG_IS_TLS12_PRF( derive_alg ) || + PSA_ALG_IS_TLS12_PSK_TO_MS( derive_alg ) ) + { + PSA_ASSERT( psa_key_derivation_input_bytes( &server_derive, + PSA_KEY_DERIVATION_INPUT_SEED, + (const uint8_t*) "", 0) ); + PSA_ASSERT( psa_key_derivation_input_bytes( &client_derive, + PSA_KEY_DERIVATION_INPUT_SEED, + (const uint8_t*) "", 0) ); + } + + PSA_ASSERT( psa_pake_get_implicit_key( &server, &server_derive ) ); + PSA_ASSERT( psa_pake_get_implicit_key( &client, &client_derive ) ); + +exit: + psa_key_derivation_abort( &server_derive ); + psa_key_derivation_abort( &client_derive ); + psa_destroy_key( key ); + psa_pake_abort( &server ); + psa_pake_abort( &client ); + mbedtls_free( buffer0 ); + mbedtls_free( buffer1 ); + PSA_DONE( ); +} +/* END_CASE */ From c29f8477e2db90372aaea400340d10ccb8d9183c Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 8 Jun 2022 13:34:49 +0200 Subject: [PATCH 0088/1028] Fix comments in psa_crypto_pake.c Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 9f91a5ee16..594def2ba6 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -46,7 +46,7 @@ * | | psa_pake_set_password_key() * | | psa_pake_set_user() * | | psa_pake_set_peer() - * | | psa_pake_set_role + * | | psa_pake_set_role() * | * |--- In any order: (First round input before or after first round output) * | | @@ -449,7 +449,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, } else { - /* Length is stored at the first byte */ + /* Length is stored at the first byte of the next chunk */ length = operation->buffer[operation->buffer_offset] + 1; } From 5282393091588d6d12c955f83278577d7254d969 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 8 Jun 2022 13:36:12 +0200 Subject: [PATCH 0089/1028] Remove useless braces in psa_crypto_pake.c Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 594def2ba6..7f730e58db 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -119,9 +119,7 @@ psa_status_t psa_pake_setup( psa_pake_operation_t *operation, { /* A context must be freshly initialized before it can be set up. */ if( operation->alg != 0 || operation->state != PSA_PAKE_STATE_INVALID ) - { return( PSA_ERROR_BAD_STATE ); - } if( cipher_suite == NULL || PSA_ALG_IS_PAKE(cipher_suite->algorithm ) == 0 || @@ -448,10 +446,8 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, length = operation->buffer[0] + 1; } else - { /* Length is stored at the first byte of the next chunk */ length = operation->buffer[operation->buffer_offset] + 1; - } if( length > operation->buffer_length ) return( PSA_ERROR_DATA_CORRUPT ); @@ -484,9 +480,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, operation->sequence = 0; } else - { operation->sequence++; - } return( PSA_SUCCESS ); #else @@ -639,9 +633,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, operation->sequence = 0; } else - { operation->sequence++; - } return( PSA_SUCCESS ); #else From 6b1f99f5f17da4ae9783991928f8f7e611c678e3 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 8 Jun 2022 13:37:37 +0200 Subject: [PATCH 0090/1028] Use proper buffer size macro for allocation in psa_pake_ecjpake_setup() Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 7f730e58db..05d5854059 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -300,7 +300,7 @@ static psa_status_t psa_pake_ecjpake_setup( psa_pake_operation_t *operation ) if( ret != 0 ) return( mbedtls_to_psa_error( ret ) ); - operation->buffer = mbedtls_calloc( 1, 512 ); + operation->buffer = mbedtls_calloc( 1, PSA_PAKE_BUFFER_SIZE ); if( operation->buffer == NULL ) return( PSA_ERROR_INSUFFICIENT_MEMORY ); From 7aaa34a1ba49aae25b5371dde1656e7759c751d9 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 8 Jun 2022 14:05:02 +0200 Subject: [PATCH 0091/1028] Fix formatting of PSA_PAKE_OUTPUT_SIZE & PSA_PAKE_INPUT_SIZE macros Signed-off-by: Neil Armstrong --- include/psa/crypto_extra.h | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/include/psa/crypto_extra.h b/include/psa/crypto_extra.h index eaadf817c0..16a0c42593 100644 --- a/include/psa/crypto_extra.h +++ b/include/psa/crypto_extra.h @@ -1760,13 +1760,16 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); * recognized, or the parameters are incompatible, * return 0. */ -#define PSA_PAKE_OUTPUT_SIZE(alg, primitive, output_step) \ - ( alg == PSA_ALG_JPAKE && \ - primitive == PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, \ - PSA_ECC_FAMILY_SECP_R1, 256) ? \ - ( output_step == PSA_PAKE_STEP_KEY_SHARE ? 69 : \ - ( output_step == PSA_PAKE_STEP_ZK_PUBLIC ? 66 : 33 ) ) : 0 ) - +#define PSA_PAKE_OUTPUT_SIZE(alg, primitive, output_step) \ + ( alg == PSA_ALG_JPAKE && \ + primitive == PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, \ + PSA_ECC_FAMILY_SECP_R1, 256) ? \ + ( \ + output_step == PSA_PAKE_STEP_KEY_SHARE ? 69 : \ + output_step == PSA_PAKE_STEP_ZK_PUBLIC ? 66 : \ + 33 \ + ) : \ + 0 ) /** A sufficient input buffer size for psa_pake_input(). * @@ -1787,12 +1790,16 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); * the input type or PAKE algorithm is not recognized, or * the parameters are incompatible, return 0. */ -#define PSA_PAKE_INPUT_SIZE(alg, primitive, input_step) \ - ( alg == PSA_ALG_JPAKE && \ - primitive == PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, \ - PSA_ECC_FAMILY_SECP_R1, 256) ? \ - ( input_step == PSA_PAKE_STEP_KEY_SHARE ? 69 : \ - ( input_step == PSA_PAKE_STEP_ZK_PUBLIC ? 66 : 33 ) ) : 0 ) +#define PSA_PAKE_INPUT_SIZE(alg, primitive, input_step) \ + ( alg == PSA_ALG_JPAKE && \ + primitive == PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, \ + PSA_ECC_FAMILY_SECP_R1, 256) ? \ + ( \ + input_step == PSA_PAKE_STEP_KEY_SHARE ? 69 : \ + input_step == PSA_PAKE_STEP_ZK_PUBLIC ? 66 : \ + 33 \ + ) : \ + 0 ) /** Output buffer size for psa_pake_output() for any of the supported PAKE * algorithm and primitive suites and output step. From 63212ddf2f7f71e623e8767bfd10b69f015dd9f6 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 8 Jun 2022 14:06:22 +0200 Subject: [PATCH 0092/1028] Fix formatting of PSA_PAKE_OPERATION_INIT macro Signed-off-by: Neil Armstrong --- include/psa/crypto_extra.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/psa/crypto_extra.h b/include/psa/crypto_extra.h index 16a0c42593..9ced06674a 100644 --- a/include/psa/crypto_extra.h +++ b/include/psa/crypto_extra.h @@ -1828,7 +1828,9 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); * psa_pake_operation_t. */ #if defined(MBEDTLS_PSA_BUILTIN_PAKE) -#define PSA_PAKE_OPERATION_INIT {PSA_ALG_NONE, 0, 0, 0, 0, MBEDTLS_SVC_KEY_ID_INIT, 0, NULL, 0, 0, { .dummy = 0 } } +#define PSA_PAKE_OPERATION_INIT {PSA_ALG_NONE, 0, 0, 0, 0, \ + MBEDTLS_SVC_KEY_ID_INIT, 0, NULL, 0, 0, \ + {.dummy = 0}} #else #define PSA_PAKE_OPERATION_INIT {PSA_ALG_NONE, 0, 0, {0}} #endif From 7616ad28e3b7482525490e52d4380c777ef5437b Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 8 Jun 2022 14:07:58 +0200 Subject: [PATCH 0093/1028] Fix guard of ecjpake.h include in crypto_extra.h Signed-off-by: Neil Armstrong --- include/psa/crypto_extra.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/psa/crypto_extra.h b/include/psa/crypto_extra.h index 9ced06674a..32bb358c24 100644 --- a/include/psa/crypto_extra.h +++ b/include/psa/crypto_extra.h @@ -1903,7 +1903,7 @@ static inline void psa_pake_cs_set_hash( psa_pake_cipher_suite_t *cipher_suite, cipher_suite->hash = hash; } -#if defined(MBEDTLS_PSA_BUILTIN_PAKE) +#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) #include #endif From df598abbd3908d4ec7b1fec2a1b0c2aff290ca1c Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 8 Jun 2022 17:17:08 +0200 Subject: [PATCH 0094/1028] Fix key usage test in psa_pake_set_password_key() Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 05d5854059..7288cacf64 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -188,11 +188,8 @@ psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, return PSA_ERROR_INVALID_ARGUMENT; } - if( usage == 0 || - ( usage & PSA_KEY_USAGE_DERIVE ) == 0 ) - { + if( ( usage & PSA_KEY_USAGE_DERIVE ) == 0 ) return PSA_ERROR_NOT_PERMITTED; - } operation->password = password; From 4efd7a463d2bf479900a6c0cc6ef29e3d50aac6e Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 8 Jun 2022 17:18:31 +0200 Subject: [PATCH 0095/1028] Check for PSA_ALG_ECJPAKE alg for the ECJPAKE builtin implementation Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 618 +++++++++++++++++++------------------- 1 file changed, 316 insertions(+), 302 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 7288cacf64..b8a08a1a07 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -131,32 +131,34 @@ psa_status_t psa_pake_setup( psa_pake_operation_t *operation, } #if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) - if( cipher_suite->algorithm != PSA_ALG_JPAKE || - cipher_suite->type != PSA_PAKE_PRIMITIVE_TYPE_ECC || - cipher_suite->family != PSA_ECC_FAMILY_SECP_R1 || - cipher_suite->bits != 256 || - cipher_suite->hash != PSA_ALG_SHA_256 ) + if( cipher_suite->algorithm == PSA_ALG_JPAKE ) { - return( PSA_ERROR_NOT_SUPPORTED ); + if( cipher_suite->type != PSA_PAKE_PRIMITIVE_TYPE_ECC || + cipher_suite->family != PSA_ECC_FAMILY_SECP_R1 || + cipher_suite->bits != 256 || + cipher_suite->hash != PSA_ALG_SHA_256 ) + { + return( PSA_ERROR_NOT_SUPPORTED ); + } + + operation->alg = cipher_suite->algorithm; + + mbedtls_ecjpake_init( &operation->ctx.ecjpake ); + + operation->state = PSA_PAKE_STATE_SETUP; + operation->sequence = PSA_PAKE_SEQ_INVALID; + operation->input_step = PSA_PAKE_STEP_X1_X2; + operation->output_step = PSA_PAKE_STEP_X1_X2; + + operation->buffer = NULL; + operation->buffer_length = 0; + operation->buffer_offset = 0; + + return( PSA_SUCCESS ); } - - operation->alg = cipher_suite->algorithm; - - mbedtls_ecjpake_init( &operation->ctx.ecjpake ); - - operation->state = PSA_PAKE_STATE_SETUP; - operation->sequence = PSA_PAKE_SEQ_INVALID; - operation->input_step = PSA_PAKE_STEP_X1_X2; - operation->output_step = PSA_PAKE_STEP_X1_X2; - - operation->buffer = NULL; - operation->buffer_length = 0; - operation->buffer_offset = 0; - - return( PSA_SUCCESS ); -#else - return( PSA_ERROR_NOT_SUPPORTED ); + else #endif + return( PSA_ERROR_NOT_SUPPORTED ); } psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, @@ -327,162 +329,165 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, return( PSA_ERROR_INVALID_ARGUMENT ); #if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) - if( operation->state == PSA_PAKE_STATE_SETUP ) { - status = psa_pake_ecjpake_setup( operation ); - if( status != PSA_SUCCESS ) - { - psa_pake_abort( operation ); - return( status ); + if( operation->alg == PSA_ALG_JPAKE ) + { + if( operation->state == PSA_PAKE_STATE_SETUP ) { + status = psa_pake_ecjpake_setup( operation ); + if( status != PSA_SUCCESS ) + { + psa_pake_abort( operation ); + return( status ); + } } - } - if( operation->state >= PSA_PAKE_STATE_READY && - ( mbedtls_ecjpake_check( &operation->ctx.ecjpake ) != 0 || - operation->buffer == NULL ) ) - { - return( PSA_ERROR_BAD_STATE ); - } - - if( operation->state != PSA_PAKE_STATE_READY && - operation->state != PSA_PAKE_OUTPUT_X1_X2 && - operation->state != PSA_PAKE_OUTPUT_X2S ) - { - return( PSA_ERROR_BAD_STATE ); - } - - if( operation->state == PSA_PAKE_STATE_READY ) - { - if( step != PSA_PAKE_STEP_KEY_SHARE ) - return( PSA_ERROR_BAD_STATE ); - - switch( operation->output_step ) + if( operation->state >= PSA_PAKE_STATE_READY && + ( mbedtls_ecjpake_check( &operation->ctx.ecjpake ) != 0 || + operation->buffer == NULL ) ) { - case PSA_PAKE_STEP_X1_X2: - operation->state = PSA_PAKE_OUTPUT_X1_X2; + return( PSA_ERROR_BAD_STATE ); + } + + if( operation->state != PSA_PAKE_STATE_READY && + operation->state != PSA_PAKE_OUTPUT_X1_X2 && + operation->state != PSA_PAKE_OUTPUT_X2S ) + { + return( PSA_ERROR_BAD_STATE ); + } + + if( operation->state == PSA_PAKE_STATE_READY ) + { + if( step != PSA_PAKE_STEP_KEY_SHARE ) + return( PSA_ERROR_BAD_STATE ); + + switch( operation->output_step ) + { + case PSA_PAKE_STEP_X1_X2: + operation->state = PSA_PAKE_OUTPUT_X1_X2; + break; + case PSA_PAKE_STEP_X2S: + operation->state = PSA_PAKE_OUTPUT_X2S; + break; + default: + return( PSA_ERROR_BAD_STATE ); + } + + operation->sequence = PSA_PAKE_X1_STEP_KEY_SHARE; + } + + /* Check if step matches current sequence */ + switch( operation->sequence ) + { + case PSA_PAKE_X1_STEP_KEY_SHARE: + case PSA_PAKE_X2_STEP_KEY_SHARE: + if( step != PSA_PAKE_STEP_KEY_SHARE ) + return( PSA_ERROR_BAD_STATE ); break; - case PSA_PAKE_STEP_X2S: - operation->state = PSA_PAKE_OUTPUT_X2S; + + case PSA_PAKE_X1_STEP_ZK_PUBLIC: + case PSA_PAKE_X2_STEP_ZK_PUBLIC: + if( step != PSA_PAKE_STEP_ZK_PUBLIC ) + return( PSA_ERROR_BAD_STATE ); break; + + case PSA_PAKE_X1_STEP_ZK_PROOF: + case PSA_PAKE_X2_STEP_ZK_PROOF: + if( step != PSA_PAKE_STEP_ZK_PROOF ) + return( PSA_ERROR_BAD_STATE ); + break; + default: return( PSA_ERROR_BAD_STATE ); } - operation->sequence = PSA_PAKE_X1_STEP_KEY_SHARE; - } - - /* Check if step matches current sequence */ - switch( operation->sequence ) - { - case PSA_PAKE_X1_STEP_KEY_SHARE: - case PSA_PAKE_X2_STEP_KEY_SHARE: - if( step != PSA_PAKE_STEP_KEY_SHARE ) - return( PSA_ERROR_BAD_STATE ); - break; - - case PSA_PAKE_X1_STEP_ZK_PUBLIC: - case PSA_PAKE_X2_STEP_ZK_PUBLIC: - if( step != PSA_PAKE_STEP_ZK_PUBLIC ) - return( PSA_ERROR_BAD_STATE ); - break; - - case PSA_PAKE_X1_STEP_ZK_PROOF: - case PSA_PAKE_X2_STEP_ZK_PROOF: - if( step != PSA_PAKE_STEP_ZK_PROOF ) - return( PSA_ERROR_BAD_STATE ); - break; - - default: - return( PSA_ERROR_BAD_STATE ); - } - - /* Initialize & write round on KEY_SHARE sequences */ - if( operation->state == PSA_PAKE_OUTPUT_X1_X2 && - operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE ) - { - ret = mbedtls_ecjpake_write_round_one( &operation->ctx.ecjpake, - operation->buffer, - PSA_PAKE_BUFFER_SIZE, - &operation->buffer_length, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE ); - if( ret != 0 ) + /* Initialize & write round on KEY_SHARE sequences */ + if( operation->state == PSA_PAKE_OUTPUT_X1_X2 && + operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE ) { - psa_pake_abort( operation ); - return( mbedtls_to_psa_error( ret ) ); + ret = mbedtls_ecjpake_write_round_one( &operation->ctx.ecjpake, + operation->buffer, + PSA_PAKE_BUFFER_SIZE, + &operation->buffer_length, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE ); + if( ret != 0 ) + { + psa_pake_abort( operation ); + return( mbedtls_to_psa_error( ret ) ); + } + + operation->buffer_offset = 0; + } + else if( operation->state == PSA_PAKE_OUTPUT_X2S && + operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE ) + { + ret = mbedtls_ecjpake_write_round_two( &operation->ctx.ecjpake, + operation->buffer, + PSA_PAKE_BUFFER_SIZE, + &operation->buffer_length, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE ); + if( ret != 0 ) + { + psa_pake_abort( operation ); + return( mbedtls_to_psa_error( ret ) ); + } + + operation->buffer_offset = 0; } - operation->buffer_offset = 0; - } - else if( operation->state == PSA_PAKE_OUTPUT_X2S && - operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE ) - { - ret = mbedtls_ecjpake_write_round_two( &operation->ctx.ecjpake, - operation->buffer, - PSA_PAKE_BUFFER_SIZE, - &operation->buffer_length, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE ); - if( ret != 0 ) + /* Load output sequence length */ + if( operation->state == PSA_PAKE_OUTPUT_X2S && + operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE ) { - psa_pake_abort( operation ); - return( mbedtls_to_psa_error( ret ) ); + if( operation->role == PSA_PAKE_ROLE_SERVER ) + /* Length is stored after 3bytes curve */ + length = 3 + operation->buffer[3] + 1; + else + /* Length is stored at the first byte */ + length = operation->buffer[0] + 1; } - - operation->buffer_offset = 0; - } - - /* Load output sequence length */ - if( operation->state == PSA_PAKE_OUTPUT_X2S && - operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE ) - { - if( operation->role == PSA_PAKE_ROLE_SERVER ) - /* Length is stored after 3bytes curve */ - length = 3 + operation->buffer[3] + 1; else - /* Length is stored at the first byte */ - length = operation->buffer[0] + 1; + /* Length is stored at the first byte of the next chunk */ + length = operation->buffer[operation->buffer_offset] + 1; + + if( length > operation->buffer_length ) + return( PSA_ERROR_DATA_CORRUPT ); + + if( output_size < length ) + { + psa_pake_abort( operation ); + return( PSA_ERROR_BUFFER_TOO_SMALL ); + } + + memcpy( output, + operation->buffer + operation->buffer_offset, + length ); + *output_length = length; + + operation->buffer_offset += length; + + /* Reset buffer after ZK_PROOF sequence */ + if( ( operation->state == PSA_PAKE_OUTPUT_X1_X2 && + operation->sequence == PSA_PAKE_X2_STEP_ZK_PROOF ) || + ( operation->state == PSA_PAKE_OUTPUT_X2S && + operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF ) ) + { + mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + operation->buffer_length = 0; + operation->buffer_offset = 0; + + operation->state = PSA_PAKE_STATE_READY; + operation->output_step++; + operation->sequence = 0; + } + else + operation->sequence++; + + return( PSA_SUCCESS ); } else - /* Length is stored at the first byte of the next chunk */ - length = operation->buffer[operation->buffer_offset] + 1; - - if( length > operation->buffer_length ) - return( PSA_ERROR_DATA_CORRUPT ); - - if( output_size < length ) - { - psa_pake_abort( operation ); - return( PSA_ERROR_BUFFER_TOO_SMALL ); - } - - memcpy( output, - operation->buffer + operation->buffer_offset, - length ); - *output_length = length; - - operation->buffer_offset += length; - - /* Reset buffer after ZK_PROOF sequence */ - if( ( operation->state == PSA_PAKE_OUTPUT_X1_X2 && - operation->sequence == PSA_PAKE_X2_STEP_ZK_PROOF ) || - ( operation->state == PSA_PAKE_OUTPUT_X2S && - operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF ) ) - { - mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); - operation->buffer_length = 0; - operation->buffer_offset = 0; - - operation->state = PSA_PAKE_STATE_READY; - operation->output_step++; - operation->sequence = 0; - } - else - operation->sequence++; - - return( PSA_SUCCESS ); -#else - return( PSA_ERROR_NOT_SUPPORTED ); #endif + return( PSA_ERROR_NOT_SUPPORTED ); } psa_status_t psa_pake_input( psa_pake_operation_t *operation, @@ -504,138 +509,141 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, return( PSA_ERROR_INVALID_ARGUMENT ); #if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) - if( operation->state == PSA_PAKE_STATE_SETUP ) { - status = psa_pake_ecjpake_setup( operation ); - if( status != PSA_SUCCESS ) + if( operation->alg == PSA_ALG_JPAKE ) + { + if( operation->state == PSA_PAKE_STATE_SETUP ) { + status = psa_pake_ecjpake_setup( operation ); + if( status != PSA_SUCCESS ) + { + psa_pake_abort( operation ); + return( status ); + } + } + + if( operation->state >= PSA_PAKE_STATE_READY && + ( mbedtls_ecjpake_check( &operation->ctx.ecjpake ) != 0 || + operation->buffer == NULL ) ) + { + return( PSA_ERROR_BAD_STATE ); + } + + if( operation->state != PSA_PAKE_STATE_READY && + operation->state != PSA_PAKE_INPUT_X1_X2 && + operation->state != PSA_PAKE_INPUT_X4S ) + { + return( PSA_ERROR_BAD_STATE ); + } + + if( operation->state == PSA_PAKE_STATE_READY ) + { + if( step != PSA_PAKE_STEP_KEY_SHARE ) + return( PSA_ERROR_BAD_STATE ); + + switch( operation->input_step ) + { + case PSA_PAKE_STEP_X1_X2: + operation->state = PSA_PAKE_INPUT_X1_X2; + break; + case PSA_PAKE_STEP_X2S: + operation->state = PSA_PAKE_INPUT_X4S; + break; + default: + return( PSA_ERROR_BAD_STATE ); + } + + operation->sequence = PSA_PAKE_X1_STEP_KEY_SHARE; + } + + buffer_remain = PSA_PAKE_BUFFER_SIZE - operation->buffer_length; + + if( input_length == 0 || + input_length > buffer_remain ) { psa_pake_abort( operation ); - return( status ); + return( PSA_ERROR_INSUFFICIENT_MEMORY ); } - } - if( operation->state >= PSA_PAKE_STATE_READY && - ( mbedtls_ecjpake_check( &operation->ctx.ecjpake ) != 0 || - operation->buffer == NULL ) ) - { - return( PSA_ERROR_BAD_STATE ); - } - - if( operation->state != PSA_PAKE_STATE_READY && - operation->state != PSA_PAKE_INPUT_X1_X2 && - operation->state != PSA_PAKE_INPUT_X4S ) - { - return( PSA_ERROR_BAD_STATE ); - } - - if( operation->state == PSA_PAKE_STATE_READY ) - { - if( step != PSA_PAKE_STEP_KEY_SHARE ) - return( PSA_ERROR_BAD_STATE ); - - switch( operation->input_step ) + /* Check if step matches current sequence */ + switch( operation->sequence ) { - case PSA_PAKE_STEP_X1_X2: - operation->state = PSA_PAKE_INPUT_X1_X2; + case PSA_PAKE_X1_STEP_KEY_SHARE: + case PSA_PAKE_X2_STEP_KEY_SHARE: + if( step != PSA_PAKE_STEP_KEY_SHARE ) + return( PSA_ERROR_BAD_STATE ); break; - case PSA_PAKE_STEP_X2S: - operation->state = PSA_PAKE_INPUT_X4S; + + case PSA_PAKE_X1_STEP_ZK_PUBLIC: + case PSA_PAKE_X2_STEP_ZK_PUBLIC: + if( step != PSA_PAKE_STEP_ZK_PUBLIC ) + return( PSA_ERROR_BAD_STATE ); break; + + case PSA_PAKE_X1_STEP_ZK_PROOF: + case PSA_PAKE_X2_STEP_ZK_PROOF: + if( step != PSA_PAKE_STEP_ZK_PROOF ) + return( PSA_ERROR_BAD_STATE ); + break; + default: return( PSA_ERROR_BAD_STATE ); } - operation->sequence = PSA_PAKE_X1_STEP_KEY_SHARE; - } + /* Copy input to local buffer */ + memcpy( operation->buffer + operation->buffer_length, + input, input_length ); + operation->buffer_length += input_length; - buffer_remain = PSA_PAKE_BUFFER_SIZE - operation->buffer_length; - - if( input_length == 0 || - input_length > buffer_remain ) - { - psa_pake_abort( operation ); - return( PSA_ERROR_INSUFFICIENT_MEMORY ); - } - - /* Check if step matches current sequence */ - switch( operation->sequence ) - { - case PSA_PAKE_X1_STEP_KEY_SHARE: - case PSA_PAKE_X2_STEP_KEY_SHARE: - if( step != PSA_PAKE_STEP_KEY_SHARE ) - return( PSA_ERROR_BAD_STATE ); - break; - - case PSA_PAKE_X1_STEP_ZK_PUBLIC: - case PSA_PAKE_X2_STEP_ZK_PUBLIC: - if( step != PSA_PAKE_STEP_ZK_PUBLIC ) - return( PSA_ERROR_BAD_STATE ); - break; - - case PSA_PAKE_X1_STEP_ZK_PROOF: - case PSA_PAKE_X2_STEP_ZK_PROOF: - if( step != PSA_PAKE_STEP_ZK_PROOF ) - return( PSA_ERROR_BAD_STATE ); - break; - - default: - return( PSA_ERROR_BAD_STATE ); - } - - /* Copy input to local buffer */ - memcpy( operation->buffer + operation->buffer_length, - input, input_length ); - operation->buffer_length += input_length; - - /* Load buffer at each last round ZK_PROOF */ - if( operation->state == PSA_PAKE_INPUT_X1_X2 && - operation->sequence == PSA_PAKE_X2_STEP_ZK_PROOF ) - { - ret = mbedtls_ecjpake_read_round_one( &operation->ctx.ecjpake, - operation->buffer, - operation->buffer_length ); - - mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); - operation->buffer_length = 0; - - if( ret != 0 ) + /* Load buffer at each last round ZK_PROOF */ + if( operation->state == PSA_PAKE_INPUT_X1_X2 && + operation->sequence == PSA_PAKE_X2_STEP_ZK_PROOF ) { - psa_pake_abort( operation ); - return( mbedtls_to_psa_error( ret ) ); + ret = mbedtls_ecjpake_read_round_one( &operation->ctx.ecjpake, + operation->buffer, + operation->buffer_length ); + + mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + operation->buffer_length = 0; + + if( ret != 0 ) + { + psa_pake_abort( operation ); + return( mbedtls_to_psa_error( ret ) ); + } } - } - else if( operation->state == PSA_PAKE_INPUT_X4S && - operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF ) - { - ret = mbedtls_ecjpake_read_round_two( &operation->ctx.ecjpake, - operation->buffer, - operation->buffer_length ); - - mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); - operation->buffer_length = 0; - - if( ret != 0 ) + else if( operation->state == PSA_PAKE_INPUT_X4S && + operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF ) { - psa_pake_abort( operation ); - return( mbedtls_to_psa_error( ret ) ); - } - } + ret = mbedtls_ecjpake_read_round_two( &operation->ctx.ecjpake, + operation->buffer, + operation->buffer_length ); - if( ( operation->state == PSA_PAKE_INPUT_X1_X2 && - operation->sequence == PSA_PAKE_X2_STEP_ZK_PROOF ) || - ( operation->state == PSA_PAKE_INPUT_X4S && - operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF ) ) - { - operation->state = PSA_PAKE_STATE_READY; - operation->input_step++; - operation->sequence = 0; + mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + operation->buffer_length = 0; + + if( ret != 0 ) + { + psa_pake_abort( operation ); + return( mbedtls_to_psa_error( ret ) ); + } + } + + if( ( operation->state == PSA_PAKE_INPUT_X1_X2 && + operation->sequence == PSA_PAKE_X2_STEP_ZK_PROOF ) || + ( operation->state == PSA_PAKE_INPUT_X4S && + operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF ) ) + { + operation->state = PSA_PAKE_STATE_READY; + operation->input_step++; + operation->sequence = 0; + } + else + operation->sequence++; + + return( PSA_SUCCESS ); } else - operation->sequence++; - - return( PSA_SUCCESS ); -#else - return( PSA_ERROR_NOT_SUPPORTED ); #endif + return( PSA_ERROR_NOT_SUPPORTED ); } psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, @@ -651,31 +659,34 @@ psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, return( PSA_ERROR_BAD_STATE ); #if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) - ret = mbedtls_ecjpake_derive_secret( &operation->ctx.ecjpake, - operation->buffer, - PSA_PAKE_BUFFER_SIZE, - &operation->buffer_length, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE ); - if( ret != 0) + if( operation->alg == PSA_ALG_JPAKE ) { - psa_pake_abort( operation ); - return( mbedtls_to_psa_error( ret ) ); - } - - status = psa_key_derivation_input_bytes( output, - PSA_KEY_DERIVATION_INPUT_SECRET, + ret = mbedtls_ecjpake_derive_secret( &operation->ctx.ecjpake, operation->buffer, - operation->buffer_length ); + PSA_PAKE_BUFFER_SIZE, + &operation->buffer_length, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE ); + if( ret != 0) + { + psa_pake_abort( operation ); + return( mbedtls_to_psa_error( ret ) ); + } - mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + status = psa_key_derivation_input_bytes( output, + PSA_KEY_DERIVATION_INPUT_SECRET, + operation->buffer, + operation->buffer_length ); - psa_pake_abort( operation ); + mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); - return( status ); -#else - return( PSA_ERROR_NOT_SUPPORTED ); + psa_pake_abort( operation ); + + return( status ); + } + else #endif + return( PSA_ERROR_NOT_SUPPORTED ); } psa_status_t psa_pake_abort(psa_pake_operation_t * operation) @@ -690,15 +701,18 @@ psa_status_t psa_pake_abort(psa_pake_operation_t * operation) operation->sequence = 0; #if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) - operation->input_step = 0; - operation->output_step = 0; - operation->password = MBEDTLS_SVC_KEY_ID_INIT; - operation->role = 0; - mbedtls_free( operation->buffer ); - operation->buffer = NULL; - operation->buffer_length = 0; - operation->buffer_offset = 0; - mbedtls_ecjpake_free( &operation->ctx.ecjpake ); + if( operation->alg == PSA_ALG_JPAKE ) + { + operation->input_step = 0; + operation->output_step = 0; + operation->password = MBEDTLS_SVC_KEY_ID_INIT; + operation->role = 0; + mbedtls_free( operation->buffer ); + operation->buffer = NULL; + operation->buffer_length = 0; + operation->buffer_offset = 0; + mbedtls_ecjpake_free( &operation->ctx.ecjpake ); + } #endif return( PSA_SUCCESS ); From ebd9a03743a204d537dcca0e4b93e2f337d9a2b8 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 8 Jun 2022 17:24:56 +0200 Subject: [PATCH 0096/1028] Cleanup PSA pake test dependency Signed-off-by: Neil Armstrong --- tests/suites/test_suite_psa_crypto.data | 24 ++++++++++----------- tests/suites/test_suite_psa_crypto.function | 4 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index 298a5af0ff..799ec04d37 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -6447,49 +6447,49 @@ PSA derive persistent key: HKDF SHA-256, exportable persistent_key_load_key_from_storage:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":PSA_KEY_TYPE_RAW_DATA:1024:PSA_KEY_USAGE_EXPORT:0:DERIVE_KEY PSA PAKE: invalid alg -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_setup:PSA_ALG_SHA_256:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"abcd":PSA_ERROR_INVALID_ARGUMENT PSA PAKE: invalid primitive type -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_DH, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"abcd":PSA_ERROR_NOT_SUPPORTED PSA PAKE: invalid primitive family -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_K1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"abcd":PSA_ERROR_NOT_SUPPORTED PSA PAKE: invalid primitive bits -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 128):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"abcd":PSA_ERROR_NOT_SUPPORTED PSA PAKE: ecjpake setup server -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"abcd":0 PSA PAKE: ecjpake setup server empty password -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"":PSA_ERROR_BAD_STATE PSA PAKE: ecjpake setup server invalid step -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_ZK_PROOF:"abcd":PSA_ERROR_BAD_STATE PSA PAKE: ecjpake setup client -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:PSA_PAKE_STEP_KEY_SHARE:"abcd":0 PSA PAKE: ecjpake setup client empty password -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:PSA_PAKE_STEP_KEY_SHARE:"":PSA_ERROR_BAD_STATE PSA PAKE: ecjpake setup client invalid step -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:PSA_PAKE_STEP_ZK_PROOF:"abcd":PSA_ERROR_BAD_STATE PSA PAKE: ecjpake setup invalid role NONE -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_NONE:PSA_PAKE_STEP_KEY_SHARE:"abcd":PSA_ERROR_NOT_SUPPORTED PSA PAKE: ecjpake rounds -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef" diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 9b7bb20ec3..31aa98d9d1 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -8092,7 +8092,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_ECJPAKE_C */ +/* BEGIN_CASE depends_on:PSA_WANT_ALG_ECJPAKE */ void ecjpake_setup( int alg_arg, int primitive_arg, int hash_arg, int role_arg, int output_step_arg, data_t *pw_data, int expected_status_arg ) @@ -8179,7 +8179,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_ECJPAKE_C */ +/* BEGIN_CASE depends_on:PSA_WANT_ALG_ECJPAKE */ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, int derive_alg_arg, data_t *pw_data ) { From 707d9574f80d840e3b7c47524485b22ac5167718 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 8 Jun 2022 17:31:49 +0200 Subject: [PATCH 0097/1028] Add checks for psa_pake_set_user/psa_pake_set_peer in test_suite_psa_crypto Signed-off-by: Neil Armstrong --- tests/suites/test_suite_psa_crypto.function | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 31aa98d9d1..caa5987405 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -8158,6 +8158,18 @@ void ecjpake_setup( int alg_arg, int primitive_arg, int hash_arg, int role_arg, PSA_ASSERT( status ); } + TEST_EQUAL( psa_pake_set_user( &operation, NULL, 0 ), + PSA_ERROR_INVALID_ARGUMENT ); + TEST_EQUAL( psa_pake_set_peer( &operation, NULL, 0 ), + PSA_ERROR_INVALID_ARGUMENT ); + + const uint8_t unsupported_id[] = "abcd"; + + TEST_EQUAL( psa_pake_set_user( &operation, unsupported_id, 4 ), + PSA_ERROR_NOT_SUPPORTED ); + TEST_EQUAL( psa_pake_set_peer( &operation, unsupported_id, 4 ), + PSA_ERROR_NOT_SUPPORTED ); + /* First round Output */ status = psa_pake_output( &operation, step, output_buffer, 512, &output_len ); From 645cccd6a836d5dcb0f523da3b4e6550260e44c8 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 8 Jun 2022 17:36:23 +0200 Subject: [PATCH 0098/1028] Add checks for BAD_STATE before calling psa_pake_setup() in ecjpake_setup() test Signed-off-by: Neil Armstrong --- tests/suites/test_suite_psa_crypto.function | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index caa5987405..e7746a45d6 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -8128,6 +8128,23 @@ void ecjpake_setup( int alg_arg, int primitive_arg, int hash_arg, int role_arg, psa_pake_cs_set_primitive( &cipher_suite, primitive_arg ); psa_pake_cs_set_hash( &cipher_suite, hash_alg ); + PSA_ASSERT( psa_pake_abort( &operation ) ); + + TEST_EQUAL( psa_pake_set_user( &operation, NULL, 0 ), + PSA_ERROR_BAD_STATE ); + TEST_EQUAL( psa_pake_set_peer( &operation, NULL, 0 ), + PSA_ERROR_BAD_STATE ); + TEST_EQUAL( psa_pake_set_password_key( &operation, key ), + PSA_ERROR_BAD_STATE ); + TEST_EQUAL( psa_pake_set_role( &operation, role ), + PSA_ERROR_BAD_STATE ); + TEST_EQUAL( psa_pake_output( &operation, step, NULL, 0, NULL ), + PSA_ERROR_BAD_STATE ); + TEST_EQUAL( psa_pake_input( &operation, step, NULL, 0), + PSA_ERROR_BAD_STATE ); + + PSA_ASSERT( psa_pake_abort( &operation ) ); + status = psa_pake_setup( &operation, &cipher_suite ); if( status != PSA_SUCCESS ) { From 0d001ef3da8461d8cf529371843287bd54bc9740 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 8 Jun 2022 17:42:52 +0200 Subject: [PATCH 0099/1028] Check more parameters of psa_pake_output/psa_pake_input Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index b8a08a1a07..7f147b7cca 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -328,6 +328,9 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, step != PSA_PAKE_STEP_ZK_PROOF ) return( PSA_ERROR_INVALID_ARGUMENT ); + if( output == NULL || output_size == 0 || output_length == NULL ) + return( PSA_ERROR_INVALID_ARGUMENT ); + #if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) if( operation->alg == PSA_ALG_JPAKE ) { @@ -508,6 +511,9 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, step != PSA_PAKE_STEP_ZK_PROOF ) return( PSA_ERROR_INVALID_ARGUMENT ); + if( input == NULL || input_length == 0 ) + return( PSA_ERROR_INVALID_ARGUMENT ); + #if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) if( operation->alg == PSA_ALG_JPAKE ) { From 98506ab6771fffb4fb98036ae79e2dd702b26e14 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 8 Jun 2022 17:43:20 +0200 Subject: [PATCH 0100/1028] Add checks for INVALID_ARGUMENT for psa_pake_output/psa_pake_input in ecjpake_setup() test Signed-off-by: Neil Armstrong --- tests/suites/test_suite_psa_crypto.function | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index e7746a45d6..bb21b98ba7 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -8198,6 +8198,9 @@ void ecjpake_setup( int alg_arg, int primitive_arg, int hash_arg, int role_arg, else PSA_ASSERT( status ); + TEST_EQUAL( psa_pake_output( &operation, step, NULL, 0, NULL), + PSA_ERROR_INVALID_ARGUMENT ); + TEST_ASSERT( output_len > 0 ); exit: From 50de0ae0c4403037dfc4f0ecbef904d514205b3b Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 8 Jun 2022 17:46:24 +0200 Subject: [PATCH 0101/1028] Add check calling psa_pake_setup() on an already initialized operation in ecjpake_setup() test Signed-off-by: Neil Armstrong --- tests/suites/test_suite_psa_crypto.function | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index bb21b98ba7..66572670ad 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -8154,6 +8154,9 @@ void ecjpake_setup( int alg_arg, int primitive_arg, int hash_arg, int role_arg, else PSA_ASSERT( status ); + TEST_EQUAL( psa_pake_setup( &operation, &cipher_suite ), + PSA_ERROR_BAD_STATE ); + status = psa_pake_set_role( &operation, role ); if( status != PSA_SUCCESS ) { From 9c8b492052335899f6d1b86d61d5b558d79dabc6 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 8 Jun 2022 17:59:07 +0200 Subject: [PATCH 0102/1028] Add advanced psa_pake_input/psa_pake_output test in ecjpake_setup() test Signed-off-by: Neil Armstrong --- tests/suites/test_suite_psa_crypto.data | 34 ++++----- tests/suites/test_suite_psa_crypto.function | 81 +++++++++++++++++---- 2 files changed, 83 insertions(+), 32 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index 799ec04d37..34c416326f 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -6448,47 +6448,47 @@ persistent_key_load_key_from_storage:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b PSA PAKE: invalid alg depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_SHA_256:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"abcd":PSA_ERROR_INVALID_ARGUMENT +ecjpake_setup:PSA_ALG_SHA_256:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_INVALID_ARGUMENT PSA PAKE: invalid primitive type depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_DH, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"abcd":PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_DH, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_NOT_SUPPORTED PSA PAKE: invalid primitive family depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_K1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"abcd":PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_K1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_NOT_SUPPORTED PSA PAKE: invalid primitive bits depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 128):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"abcd":PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 128):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_NOT_SUPPORTED -PSA PAKE: ecjpake setup server +PSA PAKE: ecjpake setup server output step first depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"abcd":0 +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":0 + +PSA PAKE: ecjpake setup server input step first +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":0 PSA PAKE: ecjpake setup server empty password depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_KEY_SHARE:"":PSA_ERROR_BAD_STATE +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"":PSA_ERROR_BAD_STATE -PSA PAKE: ecjpake setup server invalid step +PSA PAKE: ecjpake setup client output step first depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:PSA_PAKE_STEP_ZK_PROOF:"abcd":PSA_ERROR_BAD_STATE +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":0 -PSA PAKE: ecjpake setup client +PSA PAKE: ecjpake setup client input step first depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:PSA_PAKE_STEP_KEY_SHARE:"abcd":0 +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:1:"abcd":0 PSA PAKE: ecjpake setup client empty password depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:PSA_PAKE_STEP_KEY_SHARE:"":PSA_ERROR_BAD_STATE - -PSA PAKE: ecjpake setup client invalid step -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:PSA_PAKE_STEP_ZK_PROOF:"abcd":PSA_ERROR_BAD_STATE +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"":PSA_ERROR_BAD_STATE PSA PAKE: ecjpake setup invalid role NONE depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_NONE:PSA_PAKE_STEP_KEY_SHARE:"abcd":PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_NONE:0:"abcd":PSA_ERROR_NOT_SUPPORTED PSA PAKE: ecjpake rounds depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 66572670ad..e091ad405a 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -8094,7 +8094,7 @@ exit: /* BEGIN_CASE depends_on:PSA_WANT_ALG_ECJPAKE */ void ecjpake_setup( int alg_arg, int primitive_arg, int hash_arg, int role_arg, - int output_step_arg, data_t *pw_data, + int input_first, data_t *pw_data, int expected_status_arg ) { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); @@ -8102,7 +8102,6 @@ void ecjpake_setup( int alg_arg, int primitive_arg, int hash_arg, int role_arg, psa_algorithm_t alg = alg_arg; psa_algorithm_t hash_alg = hash_arg; psa_pake_role_t role = role_arg; - psa_pake_step_t step = output_step_arg; mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_status_t expected_status = expected_status_arg; @@ -8113,7 +8112,8 @@ void ecjpake_setup( int alg_arg, int primitive_arg, int hash_arg, int role_arg, PSA_INIT( ); ASSERT_ALLOC( output_buffer, - PSA_PAKE_OUTPUT_SIZE(alg, primitive_arg, step) ); + PSA_PAKE_OUTPUT_SIZE(alg, primitive_arg, + PSA_PAKE_STEP_KEY_SHARE) ); if( pw_data->len > 0 ) { @@ -8138,9 +8138,10 @@ void ecjpake_setup( int alg_arg, int primitive_arg, int hash_arg, int role_arg, PSA_ERROR_BAD_STATE ); TEST_EQUAL( psa_pake_set_role( &operation, role ), PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_pake_output( &operation, step, NULL, 0, NULL ), + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, + NULL, 0, NULL ), PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_pake_input( &operation, step, NULL, 0), + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, NULL, 0), PSA_ERROR_BAD_STATE ); PSA_ASSERT( psa_pake_abort( &operation ) ); @@ -8190,21 +8191,71 @@ void ecjpake_setup( int alg_arg, int primitive_arg, int hash_arg, int role_arg, TEST_EQUAL( psa_pake_set_peer( &operation, unsupported_id, 4 ), PSA_ERROR_NOT_SUPPORTED ); - /* First round Output */ - status = psa_pake_output( &operation, step, output_buffer, - 512, &output_len ); - if( status != PSA_SUCCESS ) + /* First round */ + if( input_first ) { - TEST_EQUAL( status, expected_status ); - goto exit; + /* Invalid parameters */ + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, + NULL, 0 ), + PSA_ERROR_INVALID_ARGUMENT ); + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, + output_buffer, 66 ), + PSA_ERROR_INVALID_ARGUMENT ); + /* Invalid first step */ + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, + output_buffer, 66 ), + PSA_ERROR_BAD_STATE ); + + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, + output_buffer, 66 ), + expected_status); + + if( expected_status == PSA_SUCCESS ) + { + /* Buffer too large */ + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, 512 ), + PSA_ERROR_INSUFFICIENT_MEMORY ); + + /* The operation should be aborted at this point */ + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, 66 ), + PSA_ERROR_BAD_STATE ); + } } else - PSA_ASSERT( status ); + { + /* Invalid parameters */ + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, + NULL, 0, NULL ), + PSA_ERROR_INVALID_ARGUMENT ); + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, + output_buffer, 512, &output_len ), + PSA_ERROR_INVALID_ARGUMENT ); + /* Invalid first step */ + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, + output_buffer, 512, &output_len ), + PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_pake_output( &operation, step, NULL, 0, NULL), - PSA_ERROR_INVALID_ARGUMENT ); + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, + output_buffer, 512, &output_len ), + expected_status ); - TEST_ASSERT( output_len > 0 ); + if( expected_status == PSA_SUCCESS ) + { + TEST_ASSERT( output_len > 0 ); + + /* Buffer too small */ + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, 5, &output_len ), + PSA_ERROR_BUFFER_TOO_SMALL ); + + /* The operation should be aborted at this point */ + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, 512, &output_len ), + PSA_ERROR_BAD_STATE ); + } + } exit: PSA_ASSERT( psa_destroy_key( key ) ); From a24278a74a574154e4534c6597a45790bef67471 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 8 Jun 2022 18:10:26 +0200 Subject: [PATCH 0103/1028] Add invalid hash ecjpake_setup() test case Signed-off-by: Neil Armstrong --- tests/suites/test_suite_psa_crypto.data | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index 34c416326f..e571e517d8 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -6462,6 +6462,10 @@ PSA PAKE: invalid primitive bits depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 128):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_NOT_SUPPORTED +PSA PAKE: invalid hash +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_1:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_NOT_SUPPORTED + PSA PAKE: ecjpake setup server output step first depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":0 From fbc4b4aa8e86fc3f2c584a1ad5157ccb90bb5d9f Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Fri, 10 Jun 2022 08:54:53 +0200 Subject: [PATCH 0104/1028] Fix psa_pake_abort() order to correctly free memory when alg is PSA_ALG_JPAKE Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 7f147b7cca..48995dd0d1 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -702,10 +702,6 @@ psa_status_t psa_pake_abort(psa_pake_operation_t * operation) return( PSA_SUCCESS ); } - operation->alg = 0; - operation->state = 0; - operation->sequence = 0; - #if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) if( operation->alg == PSA_ALG_JPAKE ) { @@ -721,6 +717,10 @@ psa_status_t psa_pake_abort(psa_pake_operation_t * operation) } #endif + operation->alg = 0; + operation->state = 0; + operation->sequence = 0; + return( PSA_SUCCESS ); } From a557cb8c8bfeb6a327e6e15b5e812a4ab42b4333 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Fri, 10 Jun 2022 08:58:32 +0200 Subject: [PATCH 0105/1028] Fixing XXX_ALG_ECJPAKE to XXX_ALG_JPAKE to match specification Signed-off-by: Neil Armstrong --- include/mbedtls/config_psa.h | 10 +++++----- include/psa/crypto_config.h | 2 +- include/psa/crypto_extra.h | 4 ++-- library/psa_crypto_pake.c | 16 ++++++++-------- tests/suites/test_suite_psa_crypto.function | 4 ++-- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/include/mbedtls/config_psa.h b/include/mbedtls/config_psa.h index 80b11951f0..7518e187f6 100644 --- a/include/mbedtls/config_psa.h +++ b/include/mbedtls/config_psa.h @@ -146,15 +146,15 @@ extern "C" { #define MBEDTLS_MD5_C #endif -#if defined(PSA_WANT_ALG_ECJPAKE) +#if defined(PSA_WANT_ALG_JPAKE) #define MBEDTLS_PSA_BUILTIN_PAKE 1 -#define MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE 1 +#define MBEDTLS_PSA_BUILTIN_ALG_JPAKE 1 #define MBEDTLS_ECP_DP_SECP192R1_ENABLED #define MBEDTLS_BIGNUM_C #define MBEDTLS_ECP_C #define MBEDTLS_MD_C #define MBEDTLS_ECJPAKE_C -#endif /* PSA_WANT_ALG_ECJPAKE */ +#endif /* PSA_WANT_ALG_JPAKE */ #if defined(PSA_WANT_ALG_RIPEMD160) && !defined(MBEDTLS_PSA_ACCEL_ALG_RIPEMD160) #define MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160 1 @@ -647,8 +647,8 @@ extern "C" { #if defined(MBEDTLS_ECJPAKE_C) #define MBEDTLS_PSA_BUILTIN_PAKE 1 -#define MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE 1 -#define PSA_WANT_ALG_ECJPAKE 1 +#define MBEDTLS_PSA_BUILTIN_ALG_JPAKE 1 +#define PSA_WANT_ALG_JPAKE 1 #endif #if defined(MBEDTLS_RIPEMD160_C) diff --git a/include/psa/crypto_config.h b/include/psa/crypto_config.h index 58fb3b1190..9011a5596a 100644 --- a/include/psa/crypto_config.h +++ b/include/psa/crypto_config.h @@ -65,7 +65,7 @@ #define PSA_WANT_ALG_ECB_NO_PADDING 1 #define PSA_WANT_ALG_ECDH 1 #define PSA_WANT_ALG_ECDSA 1 -#define PSA_WANT_ALG_ECJPAKE 1 +#define PSA_WANT_ALG_JPAKE 1 #define PSA_WANT_ALG_GCM 1 #define PSA_WANT_ALG_HKDF 1 #define PSA_WANT_ALG_HKDF_EXTRACT 1 diff --git a/include/psa/crypto_extra.h b/include/psa/crypto_extra.h index 32bb358c24..e625f0d982 100644 --- a/include/psa/crypto_extra.h +++ b/include/psa/crypto_extra.h @@ -1903,7 +1903,7 @@ static inline void psa_pake_cs_set_hash( psa_pake_cipher_suite_t *cipher_suite, cipher_suite->hash = hash; } -#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) +#if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) #include #endif @@ -1923,7 +1923,7 @@ struct psa_pake_operation_s #endif union { -#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) +#if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) mbedtls_ecjpake_context ecjpake; #endif /* Make the union non-empty even with no supported algorithms. */ diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 48995dd0d1..1aa8a72d89 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -33,7 +33,7 @@ #include #include -#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) +#if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) #define PSA_PAKE_BUFFER_SIZE ( ( 69 + 66 + 33 ) * 2 ) #endif @@ -130,7 +130,7 @@ psa_status_t psa_pake_setup( psa_pake_operation_t *operation, return( PSA_ERROR_INVALID_ARGUMENT ); } -#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) +#if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) if( cipher_suite->algorithm == PSA_ALG_JPAKE ) { if( cipher_suite->type != PSA_PAKE_PRIMITIVE_TYPE_ECC || @@ -248,7 +248,7 @@ psa_status_t psa_pake_set_role( psa_pake_operation_t *operation, return PSA_ERROR_INVALID_ARGUMENT; } -#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) +#if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) if( operation->alg == PSA_ALG_JPAKE ) { if( role != PSA_PAKE_ROLE_CLIENT && @@ -264,7 +264,7 @@ psa_status_t psa_pake_set_role( psa_pake_operation_t *operation, return( PSA_ERROR_NOT_SUPPORTED ); } -#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) +#if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) static psa_status_t psa_pake_ecjpake_setup( psa_pake_operation_t *operation ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -331,7 +331,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, if( output == NULL || output_size == 0 || output_length == NULL ) return( PSA_ERROR_INVALID_ARGUMENT ); -#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) +#if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) if( operation->alg == PSA_ALG_JPAKE ) { if( operation->state == PSA_PAKE_STATE_SETUP ) { @@ -514,7 +514,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, if( input == NULL || input_length == 0 ) return( PSA_ERROR_INVALID_ARGUMENT ); -#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) +#if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) if( operation->alg == PSA_ALG_JPAKE ) { if( operation->state == PSA_PAKE_STATE_SETUP ) { @@ -664,7 +664,7 @@ psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, operation->output_step != PSA_PAKE_STEP_DERIVE ) ) return( PSA_ERROR_BAD_STATE ); -#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) +#if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) if( operation->alg == PSA_ALG_JPAKE ) { ret = mbedtls_ecjpake_derive_secret( &operation->ctx.ecjpake, @@ -702,7 +702,7 @@ psa_status_t psa_pake_abort(psa_pake_operation_t * operation) return( PSA_SUCCESS ); } -#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECJPAKE) +#if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) if( operation->alg == PSA_ALG_JPAKE ) { operation->input_step = 0; diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index e091ad405a..727784f4ab 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -8092,7 +8092,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:PSA_WANT_ALG_ECJPAKE */ +/* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ void ecjpake_setup( int alg_arg, int primitive_arg, int hash_arg, int role_arg, int input_first, data_t *pw_data, int expected_status_arg ) @@ -8265,7 +8265,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:PSA_WANT_ALG_ECJPAKE */ +/* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, int derive_alg_arg, data_t *pw_data ) { From 5fb07c6a968e6302f05208c161b1246c223ee651 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Fri, 10 Jun 2022 09:00:00 +0200 Subject: [PATCH 0106/1028] No need to check for state in psa_pake_setup() Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 1aa8a72d89..e7037ce2dc 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -118,7 +118,7 @@ psa_status_t psa_pake_setup( psa_pake_operation_t *operation, const psa_pake_cipher_suite_t *cipher_suite) { /* A context must be freshly initialized before it can be set up. */ - if( operation->alg != 0 || operation->state != PSA_PAKE_STATE_INVALID ) + if( operation->alg != 0 ) return( PSA_ERROR_BAD_STATE ); if( cipher_suite == NULL || From e92311176a3961661de7b2a92c2f25ba340b5690 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Fri, 10 Jun 2022 09:03:41 +0200 Subject: [PATCH 0107/1028] Add missing parentheses on return statements Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index e7037ce2dc..f7fb384dd7 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -177,7 +177,7 @@ psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, status = psa_get_key_attributes( password, &attributes ); if( status != PSA_SUCCESS ) - return status; + return( status ); type = psa_get_key_type( &attributes ); usage = psa_get_key_usage_flags( &attributes ); @@ -187,11 +187,11 @@ psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, if( type != PSA_KEY_TYPE_PASSWORD && type != PSA_KEY_TYPE_PASSWORD_HASH ) { - return PSA_ERROR_INVALID_ARGUMENT; + return( PSA_ERROR_INVALID_ARGUMENT ); } if( ( usage & PSA_KEY_USAGE_DERIVE ) == 0 ) - return PSA_ERROR_NOT_PERMITTED; + return( PSA_ERROR_NOT_PERMITTED ); operation->password = password; @@ -209,7 +209,7 @@ psa_status_t psa_pake_set_user( psa_pake_operation_t *operation, } if( user_id_len == 0 || user_id == NULL ) - return PSA_ERROR_INVALID_ARGUMENT; + return( PSA_ERROR_INVALID_ARGUMENT ); return( PSA_ERROR_NOT_SUPPORTED ); } @@ -225,7 +225,7 @@ psa_status_t psa_pake_set_peer( psa_pake_operation_t *operation, } if( peer_id_len == 0 || peer_id == NULL ) - return PSA_ERROR_INVALID_ARGUMENT; + return( PSA_ERROR_INVALID_ARGUMENT ); return( PSA_ERROR_NOT_SUPPORTED ); } @@ -245,7 +245,7 @@ psa_status_t psa_pake_set_role( psa_pake_operation_t *operation, role != PSA_PAKE_ROLE_CLIENT && role != PSA_PAKE_ROLE_SERVER ) { - return PSA_ERROR_INVALID_ARGUMENT; + return( PSA_ERROR_INVALID_ARGUMENT ); } #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) @@ -253,7 +253,7 @@ psa_status_t psa_pake_set_role( psa_pake_operation_t *operation, { if( role != PSA_PAKE_ROLE_CLIENT && role != PSA_PAKE_ROLE_SERVER ) - return PSA_ERROR_NOT_SUPPORTED; + return( PSA_ERROR_NOT_SUPPORTED ); operation->role = role; From bb28c5679698d6e80003d78065ee005b2d9d72ba Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Fri, 10 Jun 2022 09:29:06 +0200 Subject: [PATCH 0108/1028] Add changelog entry for new PSA PAKE feature Signed-off-by: Neil Armstrong --- ChangeLog.d/psa_crypto_pake.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 ChangeLog.d/psa_crypto_pake.txt diff --git a/ChangeLog.d/psa_crypto_pake.txt b/ChangeLog.d/psa_crypto_pake.txt new file mode 100644 index 0000000000..27e3b5c34f --- /dev/null +++ b/ChangeLog.d/psa_crypto_pake.txt @@ -0,0 +1,2 @@ +Features + * Expose the EC J-PAKE functionality through the PSA PAKE Crypto API. From 19bb9913c20d9ecb125805cccb3b77141355f1cb Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Mon, 13 Jun 2022 18:43:32 +0200 Subject: [PATCH 0109/1028] Update changelog entry for new PSA PAKE feature Signed-off-by: Neil Armstrong --- ChangeLog.d/psa_crypto_pake.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ChangeLog.d/psa_crypto_pake.txt b/ChangeLog.d/psa_crypto_pake.txt index 27e3b5c34f..e0ae046387 100644 --- a/ChangeLog.d/psa_crypto_pake.txt +++ b/ChangeLog.d/psa_crypto_pake.txt @@ -1,2 +1,4 @@ Features - * Expose the EC J-PAKE functionality through the PSA PAKE Crypto API. + * Expose the EC J-PAKE functionality through the Draft PSA PAKE Crypto API. + Only the ECC primitive with secp256r1 curve and SHA-256 hash algorithm + are supported in this implementation. From ed40782628e818f21e6e13d4b0cddfd8ed72a22b Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 15 Jun 2022 11:21:33 +0200 Subject: [PATCH 0110/1028] Fix SECP256R1 enable when PSA_WANT_ALG_JPAKE is defined Signed-off-by: Neil Armstrong --- include/mbedtls/config_psa.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/mbedtls/config_psa.h b/include/mbedtls/config_psa.h index 7518e187f6..96083d8102 100644 --- a/include/mbedtls/config_psa.h +++ b/include/mbedtls/config_psa.h @@ -149,7 +149,7 @@ extern "C" { #if defined(PSA_WANT_ALG_JPAKE) #define MBEDTLS_PSA_BUILTIN_PAKE 1 #define MBEDTLS_PSA_BUILTIN_ALG_JPAKE 1 -#define MBEDTLS_ECP_DP_SECP192R1_ENABLED +#define MBEDTLS_ECP_DP_SECP256R1_ENABLED #define MBEDTLS_BIGNUM_C #define MBEDTLS_ECP_C #define MBEDTLS_MD_C From 1e855601ca2372070ad41b861a0586bc00d8cf8a Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 15 Jun 2022 11:32:11 +0200 Subject: [PATCH 0111/1028] Fix psa_pake_get_implicit_key() state & add corresponding tests in ecjpake_rounds() Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 4 +- tests/suites/test_suite_psa_crypto.function | 54 +++++++++++++++------ 2 files changed, 40 insertions(+), 18 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index f7fb384dd7..8ceacd952f 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -660,8 +660,8 @@ psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, if( operation->alg == 0 || operation->state != PSA_PAKE_STATE_READY || - ( operation->input_step != PSA_PAKE_STEP_DERIVE && - operation->output_step != PSA_PAKE_STEP_DERIVE ) ) + operation->input_step != PSA_PAKE_STEP_DERIVE || + operation->output_step != PSA_PAKE_STEP_DERIVE ) return( PSA_ERROR_BAD_STATE ); #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 727784f4ab..6d4f2a8a01 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -8316,6 +8316,21 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, psa_pake_cs_set_primitive( &cipher_suite, primitive_arg ); psa_pake_cs_set_hash( &cipher_suite, hash_alg ); + /* Get shared key */ + PSA_ASSERT( psa_key_derivation_setup( &server_derive, derive_alg ) ); + PSA_ASSERT( psa_key_derivation_setup( &client_derive, derive_alg ) ); + + if( PSA_ALG_IS_TLS12_PRF( derive_alg ) || + PSA_ALG_IS_TLS12_PSK_TO_MS( derive_alg ) ) + { + PSA_ASSERT( psa_key_derivation_input_bytes( &server_derive, + PSA_KEY_DERIVATION_INPUT_SEED, + (const uint8_t*) "", 0) ); + PSA_ASSERT( psa_key_derivation_input_bytes( &client_derive, + PSA_KEY_DERIVATION_INPUT_SEED, + (const uint8_t*) "", 0) ); + } + PSA_ASSERT( psa_pake_setup( &server, &cipher_suite ) ); PSA_ASSERT( psa_pake_setup( &client, &cipher_suite ) ); @@ -8325,6 +8340,11 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, PSA_ASSERT( psa_pake_set_password_key( &server, key ) ); PSA_ASSERT( psa_pake_set_password_key( &client, key ) ); + TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), + PSA_ERROR_BAD_STATE ); + TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), + PSA_ERROR_BAD_STATE ); + /* Server first round Output */ PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_KEY_SHARE, buffer0 + buffer0_off, @@ -8389,6 +8409,11 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, c_x2_pr_off = buffer1_off; buffer1_off += c_x2_pr_len; + TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), + PSA_ERROR_BAD_STATE ); + TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), + PSA_ERROR_BAD_STATE ); + /* Client first round Input */ PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_KEY_SHARE, buffer0 + s_g1_off, s_g1_len ) ); @@ -8417,6 +8442,11 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_ZK_PROOF, buffer1 + c_x2_pr_off, c_x2_pr_len ) ); + TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), + PSA_ERROR_BAD_STATE ); + TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), + PSA_ERROR_BAD_STATE ); + /* Server second round Output */ buffer0_off = 0; @@ -8455,6 +8485,11 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, c_x2s_pr_off = buffer1_off; buffer1_off += c_x2s_pr_len; + TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), + PSA_ERROR_BAD_STATE ); + TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), + PSA_ERROR_BAD_STATE ); + /* Client second round Input */ PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_KEY_SHARE, buffer0 + s_a_off, s_a_len ) ); @@ -8463,6 +8498,9 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_ZK_PROOF, buffer0 + s_x2s_pr_off, s_x2s_pr_len ) ); + TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), + PSA_ERROR_BAD_STATE ); + /* Server second round Input */ PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_KEY_SHARE, buffer1 + c_a_off, c_a_len ) ); @@ -8471,22 +8509,6 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_ZK_PROOF, buffer1 + c_x2s_pr_off, c_x2s_pr_len ) ); - - /* Get shared key */ - PSA_ASSERT( psa_key_derivation_setup( &server_derive, derive_alg ) ); - PSA_ASSERT( psa_key_derivation_setup( &client_derive, derive_alg ) ); - - if( PSA_ALG_IS_TLS12_PRF( derive_alg ) || - PSA_ALG_IS_TLS12_PSK_TO_MS( derive_alg ) ) - { - PSA_ASSERT( psa_key_derivation_input_bytes( &server_derive, - PSA_KEY_DERIVATION_INPUT_SEED, - (const uint8_t*) "", 0) ); - PSA_ASSERT( psa_key_derivation_input_bytes( &client_derive, - PSA_KEY_DERIVATION_INPUT_SEED, - (const uint8_t*) "", 0) ); - } - PSA_ASSERT( psa_pake_get_implicit_key( &server, &server_derive ) ); PSA_ASSERT( psa_pake_get_implicit_key( &client, &client_derive ) ); From db05cbfb862a4a213a49272c3952f2a1c5c088b5 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 15 Jun 2022 15:25:45 +0200 Subject: [PATCH 0112/1028] Introduce and use mbedtls_ecjpake_to_psa_error() to translate various ECP/MPI errors to expected PSA errors Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 8ceacd952f..556acd99b7 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -113,6 +113,29 @@ enum psa_pake_sequence PSA_PAKE_SEQ_END = 7, }; +#if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) +static psa_status_t mbedtls_ecjpake_to_psa_error( int ret ) +{ + switch( ret ) + { + case MBEDTLS_ERR_MPI_BAD_INPUT_DATA: + case MBEDTLS_ERR_ECP_BAD_INPUT_DATA: + case MBEDTLS_ERR_ECP_INVALID_KEY: + case MBEDTLS_ERR_ECP_VERIFY_FAILED: + return( PSA_ERROR_DATA_INVALID ); + case MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL: + case MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL: + return( PSA_ERROR_BUFFER_TOO_SMALL ); + case MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE: + return( PSA_ERROR_NOT_SUPPORTED ); + case MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED: + return( PSA_ERROR_CORRUPTION_DETECTED ); + default: + return( PSA_ERROR_GENERIC_ERROR ); + } +} +#endif + #if defined(MBEDTLS_PSA_BUILTIN_PAKE) psa_status_t psa_pake_setup( psa_pake_operation_t *operation, const psa_pake_cipher_suite_t *cipher_suite) @@ -297,7 +320,7 @@ static psa_status_t psa_pake_ecjpake_setup( psa_pake_operation_t *operation ) slot = NULL; if( ret != 0 ) - return( mbedtls_to_psa_error( ret ) ); + return( mbedtls_ecjpake_to_psa_error( ret ) ); operation->buffer = mbedtls_calloc( 1, PSA_PAKE_BUFFER_SIZE ); if( operation->buffer == NULL ) @@ -415,7 +438,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, if( ret != 0 ) { psa_pake_abort( operation ); - return( mbedtls_to_psa_error( ret ) ); + return( mbedtls_ecjpake_to_psa_error( ret ) ); } operation->buffer_offset = 0; @@ -432,7 +455,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, if( ret != 0 ) { psa_pake_abort( operation ); - return( mbedtls_to_psa_error( ret ) ); + return( mbedtls_ecjpake_to_psa_error( ret ) ); } operation->buffer_offset = 0; @@ -613,7 +636,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, if( ret != 0 ) { psa_pake_abort( operation ); - return( mbedtls_to_psa_error( ret ) ); + return( mbedtls_ecjpake_to_psa_error( ret ) ); } } else if( operation->state == PSA_PAKE_INPUT_X4S && @@ -629,7 +652,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, if( ret != 0 ) { psa_pake_abort( operation ); - return( mbedtls_to_psa_error( ret ) ); + return( mbedtls_ecjpake_to_psa_error( ret ) ); } } @@ -676,7 +699,7 @@ psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, if( ret != 0) { psa_pake_abort( operation ); - return( mbedtls_to_psa_error( ret ) ); + return( mbedtls_ecjpake_to_psa_error( ret ) ); } status = psa_key_derivation_input_bytes( output, From f983caf6c43d64bb6b0753b797138a666d59e6d3 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 15 Jun 2022 15:27:48 +0200 Subject: [PATCH 0113/1028] Move JPAKE rounds into a common function, add reordering and error injection Signed-off-by: Neil Armstrong --- tests/suites/test_suite_psa_crypto.data | 6 +- tests/suites/test_suite_psa_crypto.function | 480 ++++++++++++-------- 2 files changed, 303 insertions(+), 183 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index e571e517d8..fef475abc4 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -6496,4 +6496,8 @@ ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ PSA PAKE: ecjpake rounds depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef" +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0 + +PSA PAKE: ecjpake rounds, client input first +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":1 diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 6d4f2a8a01..cf7ea7d382 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -705,6 +705,296 @@ exit: return( test_ok ); } +static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, + psa_pake_operation_t *server, + psa_pake_operation_t *client, + int client_input_first, + int round, int inject_error ) +{ + unsigned char *buffer0 = NULL, *buffer1 = NULL; + size_t buffer_length = ( + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_KEY_SHARE) + + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_ZK_PUBLIC) + + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_ZK_PROOF)) * 2; + size_t buffer0_off = 0; + size_t buffer1_off = 0; + size_t s_g1_len, s_g2_len, s_a_len; + size_t s_g1_off, s_g2_off, s_a_off; + size_t s_x1_pk_len, s_x2_pk_len, s_x2s_pk_len; + size_t s_x1_pk_off, s_x2_pk_off, s_x2s_pk_off; + size_t s_x1_pr_len, s_x2_pr_len, s_x2s_pr_len; + size_t s_x1_pr_off, s_x2_pr_off, s_x2s_pr_off; + size_t c_g1_len, c_g2_len, c_a_len; + size_t c_g1_off, c_g2_off, c_a_off; + size_t c_x1_pk_len, c_x2_pk_len, c_x2s_pk_len; + size_t c_x1_pk_off, c_x2_pk_off, c_x2s_pk_off; + size_t c_x1_pr_len, c_x2_pr_len, c_x2s_pr_len; + size_t c_x1_pr_off, c_x2_pr_off, c_x2s_pr_off; + psa_status_t expected_status = PSA_SUCCESS; + int ret; + + ASSERT_ALLOC( buffer0, buffer_length ); + ASSERT_ALLOC( buffer1, buffer_length ); + + switch( round ) + { + case 1: + /* Server first round Output */ + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_g1_len ) ); + s_g1_off = buffer0_off; + buffer0_off += s_g1_len; + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x1_pk_len ) ); + s_x1_pk_off = buffer0_off; + buffer0_off += s_x1_pk_len; + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x1_pr_len ) ); + s_x1_pr_off = buffer0_off; + buffer0_off += s_x1_pr_len; + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_g2_len ) ); + s_g2_off = buffer0_off; + buffer0_off += s_g2_len; + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2_pk_len ) ); + s_x2_pk_off = buffer0_off; + buffer0_off += s_x2_pk_len; + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2_pr_len ) ); + s_x2_pr_off = buffer0_off; + buffer0_off += s_x2_pr_len; + + if( inject_error == 1 ) + { + buffer0[s_x1_pk_off + 12] >>= 4; + buffer0[s_x2_pk_off + 7] <<= 4; + expected_status = PSA_ERROR_DATA_INVALID; + } + + if( client_input_first == 1 ) + { + /* Client first round Input */ + PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g1_off, s_g1_len ) ); + PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x1_pk_off, + s_x1_pk_len ) ); + PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x1_pr_off, + s_x1_pr_len ) ); + PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g2_off, + s_g2_len ) ); + PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2_pk_off, + s_x2_pk_len ) ); + TEST_EQUAL( psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2_pr_off, + s_x2_pr_len ), + expected_status ); + + if( inject_error == 1 ) + { + ret = 1; + goto exit; + } + } + + /* Client first round Output */ + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_g1_len ) ); + c_g1_off = buffer1_off; + buffer1_off += c_g1_len; + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x1_pk_len ) ); + c_x1_pk_off = buffer1_off; + buffer1_off += c_x1_pk_len; + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x1_pr_len ) ); + c_x1_pr_off = buffer1_off; + buffer1_off += c_x1_pr_len; + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_g2_len ) ); + c_g2_off = buffer1_off; + buffer1_off += c_g2_len; + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2_pk_len ) ); + c_x2_pk_off = buffer1_off; + buffer1_off += c_x2_pk_len; + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2_pr_len ) ); + c_x2_pr_off = buffer1_off; + buffer1_off += c_x2_pr_len; + + if( client_input_first == 0 ) + { + /* Client first round Input */ + PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g1_off, s_g1_len ) ); + PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x1_pk_off, + s_x1_pk_len ) ); + PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x1_pr_off, + s_x1_pr_len ) ); + PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g2_off, + s_g2_len ) ); + PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2_pk_off, + s_x2_pk_len ) ); + TEST_EQUAL( psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2_pr_off, + s_x2_pr_len ), + expected_status ); + + if( inject_error == 1 ) + break; + } + + if( inject_error == 2 ) + { + buffer1[c_x1_pk_off + 12] >>= 4; + buffer1[c_x2_pk_off + 7] <<= 4; + expected_status = PSA_ERROR_DATA_INVALID; + } + + /* Server first round Input */ + PSA_ASSERT( psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_g1_off, c_g1_len ) ); + PSA_ASSERT( psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x1_pk_off, c_x1_pk_len ) ); + PSA_ASSERT( psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x1_pr_off, c_x1_pr_len ) ); + PSA_ASSERT( psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_g2_off, c_g2_len ) ); + PSA_ASSERT( psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x2_pk_off, c_x2_pk_len ) ); + TEST_EQUAL( psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x2_pr_off, c_x2_pr_len ), + expected_status ); + + break; + + case 2: + /* Server second round Output */ + buffer0_off = 0; + + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_a_len ) ); + s_a_off = buffer0_off; + buffer0_off += s_a_len; + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2s_pk_len ) ); + s_x2s_pk_off = buffer0_off; + buffer0_off += s_x2s_pk_len; + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2s_pr_len ) ); + s_x2s_pr_off = buffer0_off; + buffer0_off += s_x2s_pr_len; + + if( inject_error == 3 ) + { + buffer0[s_x2s_pk_off + 12] >>= 4; + expected_status = PSA_ERROR_DATA_INVALID; + } + + if( client_input_first == 1 ) + { + /* Client second round Input */ + PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_a_off, s_a_len ) ); + PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2s_pk_off, + s_x2s_pk_len ) ); + TEST_EQUAL( psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2s_pr_off, + s_x2s_pr_len ), + expected_status ); + + if( inject_error == 3 ) + break; + } + + /* Client second round Output */ + buffer1_off = 0; + + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_a_len ) ); + c_a_off = buffer1_off; + buffer1_off += c_a_len; + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2s_pk_len ) ); + c_x2s_pk_off = buffer1_off; + buffer1_off += c_x2s_pk_len; + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2s_pr_len ) ); + c_x2s_pr_off = buffer1_off; + buffer1_off += c_x2s_pr_len; + + if( client_input_first == 0 ) + { + /* Client second round Input */ + PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_a_off, s_a_len ) ); + PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2s_pk_off, + s_x2s_pk_len ) ); + TEST_EQUAL( psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2s_pr_off, + s_x2s_pr_len ), + expected_status ); + + if( inject_error == 3 ) + break; + } + + if( inject_error == 4 ) + { + buffer1[c_x2s_pk_off + 12] >>= 4; + expected_status = PSA_ERROR_DATA_INVALID; + } + + /* Server second round Input */ + PSA_ASSERT( psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_a_off, c_a_len ) ); + PSA_ASSERT( psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x2s_pk_off, c_x2s_pk_len ) ); + TEST_EQUAL( psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x2s_pr_off, c_x2s_pr_len ), + expected_status ); + + break; + + } + + ret = 1; + +exit: + mbedtls_free( buffer0 ); + mbedtls_free( buffer1 ); + return( ret ); +} + /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -8267,7 +8557,8 @@ exit: /* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, - int derive_alg_arg, data_t *pw_data ) + int derive_alg_arg, data_t *pw_data, + int client_input_first ) { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t server = psa_pake_operation_init(); @@ -8281,31 +8572,9 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, PSA_KEY_DERIVATION_OPERATION_INIT; psa_key_derivation_operation_t client_derive = PSA_KEY_DERIVATION_OPERATION_INIT; - unsigned char *buffer0 = NULL, *buffer1 = NULL; - size_t buffer_length = ( - PSA_PAKE_OUTPUT_SIZE(alg, primitive_arg, PSA_PAKE_STEP_KEY_SHARE) + - PSA_PAKE_OUTPUT_SIZE(alg, primitive_arg, PSA_PAKE_STEP_ZK_PUBLIC) + - PSA_PAKE_OUTPUT_SIZE(alg, primitive_arg, PSA_PAKE_STEP_ZK_PROOF)) * 2; - size_t buffer0_off = 0; - size_t buffer1_off = 0; - size_t s_g1_len, s_g2_len, s_a_len; - size_t s_g1_off, s_g2_off, s_a_off; - size_t s_x1_pk_len, s_x2_pk_len, s_x2s_pk_len; - size_t s_x1_pk_off, s_x2_pk_off, s_x2s_pk_off; - size_t s_x1_pr_len, s_x2_pr_len, s_x2s_pr_len; - size_t s_x1_pr_off, s_x2_pr_off, s_x2s_pr_off; - size_t c_g1_len, c_g2_len, c_a_len; - size_t c_g1_off, c_g2_off, c_a_off; - size_t c_x1_pk_len, c_x2_pk_len, c_x2s_pk_len; - size_t c_x1_pk_off, c_x2_pk_off, c_x2s_pk_off; - size_t c_x1_pr_len, c_x2_pr_len, c_x2s_pr_len; - size_t c_x1_pr_off, c_x2_pr_off, c_x2s_pr_off; PSA_INIT( ); - ASSERT_ALLOC( buffer0, buffer_length ); - ASSERT_ALLOC( buffer1, buffer_length ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); psa_set_key_algorithm( &attributes, alg ); psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); @@ -8345,169 +8614,18 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), PSA_ERROR_BAD_STATE ); - /* Server first round Output */ - PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_g1_len ) ); - s_g1_off = buffer0_off; - buffer0_off += s_g1_len; - PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x1_pk_len ) ); - s_x1_pk_off = buffer0_off; - buffer0_off += s_x1_pk_len; - PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x1_pr_len ) ); - s_x1_pr_off = buffer0_off; - buffer0_off += s_x1_pr_len; - PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_g2_len ) ); - s_g2_off = buffer0_off; - buffer0_off += s_g2_len; - PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x2_pk_len ) ); - s_x2_pk_off = buffer0_off; - buffer0_off += s_x2_pk_len; - PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x2_pr_len ) ); - s_x2_pr_off = buffer0_off; - buffer0_off += s_x2_pr_len; - - /* Client first round Output */ - PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_g1_len ) ); - c_g1_off = buffer1_off; - buffer1_off += c_g1_len; - PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x1_pk_len ) ); - c_x1_pk_off = buffer1_off; - buffer1_off += c_x1_pk_len; - PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x1_pr_len ) ); - c_x1_pr_off = buffer1_off; - buffer1_off += c_x1_pr_len; - PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_g2_len ) ); - c_g2_off = buffer1_off; - buffer1_off += c_g2_len; - PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x2_pk_len ) ); - c_x2_pk_off = buffer1_off; - buffer1_off += c_x2_pk_len; - PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x2_pr_len ) ); - c_x2_pr_off = buffer1_off; - buffer1_off += c_x2_pr_len; + /* First round */ + TEST_EQUAL( ecjpake_do_round( alg, primitive_arg, &server, &client, + client_input_first, 1, 0 ), 1 ); TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), PSA_ERROR_BAD_STATE ); TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), PSA_ERROR_BAD_STATE ); - /* Client first round Input */ - PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_g1_off, s_g1_len ) ); - PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x1_pk_off, s_x1_pk_len ) ); - PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x1_pr_off, s_x1_pr_len ) ); - PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_g2_off, s_g2_len ) ); - PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x2_pk_off, s_x2_pk_len ) ); - PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x2_pr_off, s_x2_pr_len ) ); - - /* Server first round Input */ - PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + c_g1_off, c_g1_len ) ); - PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + c_x1_pk_off, c_x1_pk_len ) ); - PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + c_x1_pr_off, c_x1_pr_len ) ); - PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + c_g2_off, c_g2_len ) ); - PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + c_x2_pk_off, c_x2_pk_len ) ); - PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + c_x2_pr_off, c_x2_pr_len ) ); - - TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), - PSA_ERROR_BAD_STATE ); - - /* Server second round Output */ - buffer0_off = 0; - - PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_a_len ) ); - s_a_off = buffer0_off; - buffer0_off += s_a_len; - PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x2s_pk_len ) ); - s_x2s_pk_off = buffer0_off; - buffer0_off += s_x2s_pk_len; - PSA_ASSERT( psa_pake_output( &server, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x2s_pr_len ) ); - s_x2s_pr_off = buffer0_off; - buffer0_off += s_x2s_pr_len; - - /* Client second round Output */ - buffer1_off = 0; - - PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_a_len ) ); - c_a_off = buffer1_off; - buffer1_off += c_a_len; - PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x2s_pk_len ) ); - c_x2s_pk_off = buffer1_off; - buffer1_off += c_x2s_pk_len; - PSA_ASSERT( psa_pake_output( &client, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x2s_pr_len ) ); - c_x2s_pr_off = buffer1_off; - buffer1_off += c_x2s_pr_len; - - TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), - PSA_ERROR_BAD_STATE ); - - /* Client second round Input */ - PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_a_off, s_a_len ) ); - PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x2s_pk_off, s_x2s_pk_len ) ); - PSA_ASSERT( psa_pake_input( &client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x2s_pr_off, s_x2s_pr_len ) ); - - TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), - PSA_ERROR_BAD_STATE ); - - /* Server second round Input */ - PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + c_a_off, c_a_len ) ); - PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + c_x2s_pk_off, c_x2s_pk_len ) ); - PSA_ASSERT( psa_pake_input( &server, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + c_x2s_pr_off, c_x2s_pr_len ) ); + /* Second round */ + TEST_EQUAL( ecjpake_do_round( alg, primitive_arg, &server, &client, + client_input_first, 2, 0 ), 1 ); PSA_ASSERT( psa_pake_get_implicit_key( &server, &server_derive ) ); PSA_ASSERT( psa_pake_get_implicit_key( &client, &client_derive ) ); @@ -8518,8 +8636,6 @@ exit: psa_destroy_key( key ); psa_pake_abort( &server ); psa_pake_abort( &client ); - mbedtls_free( buffer0 ); - mbedtls_free( buffer1 ); PSA_DONE( ); } /* END_CASE */ From 8c2e8a6cda40480b6ef66b0ca3b27e3b3c15e375 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 15 Jun 2022 15:28:32 +0200 Subject: [PATCH 0114/1028] Add ecjpake_rounds_inject tests to exercise error injection Signed-off-by: Neil Armstrong --- tests/suites/test_suite_psa_crypto.data | 40 +++++++++++++++ tests/suites/test_suite_psa_crypto.function | 54 +++++++++++++++++++++ 2 files changed, 94 insertions(+) diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index fef475abc4..2e876ff24b 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -6501,3 +6501,43 @@ ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA PSA PAKE: ecjpake rounds, client input first depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":1 + +PSA PAKE: ecjpake no input errors +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:0:"abcdef" + +PSA PAKE: ecjpake no input errors, client input first +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:0:"abcdef" + +PSA PAKE: ecjpake inject input errors, first round client +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:1:"abcdef" + +PSA PAKE: ecjpake inject input errors, first round client, client input first +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:1:"abcdef" + +PSA PAKE: ecjpake inject input errors, first round server +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:2:"abcdef" + +PSA PAKE: ecjpake inject input errors, first round server, client input first +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:2:"abcdef" + +PSA PAKE: ecjpake inject input errors, second round client +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:3:"abcdef" + +PSA PAKE: ecjpake inject input errors, second round client, client input first +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:3:"abcdef" + +PSA PAKE: ecjpake inject input errors, second round server +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:4:"abcdef" + +PSA PAKE: ecjpake inject input errors, second round server, client input first +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:4:"abcdef" diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index cf7ea7d382..67b0dd2ada 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -8555,6 +8555,60 @@ exit: } /* END_CASE */ +/* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ +void ecjpake_rounds_inject( int alg_arg, int primitive_arg, int hash_arg, + int client_input_first, int inject_error, + data_t *pw_data ) +{ + psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); + psa_pake_operation_t server = psa_pake_operation_init(); + psa_pake_operation_t client = psa_pake_operation_init(); + psa_algorithm_t alg = alg_arg; + psa_algorithm_t hash_alg = hash_arg; + mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + + PSA_INIT( ); + + psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); + psa_set_key_algorithm( &attributes, alg ); + psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); + PSA_ASSERT( psa_import_key( &attributes, pw_data->x, pw_data->len, + &key ) ); + + psa_pake_cs_set_algorithm( &cipher_suite, alg ); + psa_pake_cs_set_primitive( &cipher_suite, primitive_arg ); + psa_pake_cs_set_hash( &cipher_suite, hash_alg ); + + + PSA_ASSERT( psa_pake_setup( &server, &cipher_suite ) ); + PSA_ASSERT( psa_pake_setup( &client, &cipher_suite ) ); + + PSA_ASSERT( psa_pake_set_role( &server, PSA_PAKE_ROLE_SERVER ) ); + PSA_ASSERT( psa_pake_set_role( &client, PSA_PAKE_ROLE_CLIENT ) ); + + PSA_ASSERT( psa_pake_set_password_key( &server, key ) ); + PSA_ASSERT( psa_pake_set_password_key( &client, key ) ); + + TEST_EQUAL( ecjpake_do_round( alg, primitive_arg, &server, &client, + client_input_first, 1, + inject_error ), 1 ); + + if( inject_error == 1 || inject_error == 2 ) + goto exit; + + TEST_EQUAL( ecjpake_do_round( alg, primitive_arg, &server, &client, + client_input_first, 2, + inject_error ), 1 ); + +exit: + psa_destroy_key( key ); + psa_pake_abort( &server ); + psa_pake_abort( &client ); + PSA_DONE( ); +} +/* END_CASE */ + /* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, int derive_alg_arg, data_t *pw_data, From 75673abef52e5f8d692dd7ec7b27d266bcdad313 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 15 Jun 2022 17:39:01 +0200 Subject: [PATCH 0115/1028] Only build ecjpake_do_round() is PSA_WANT_ALG_JPAKE is defined Signed-off-by: Neil Armstrong --- tests/suites/test_suite_psa_crypto.function | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 67b0dd2ada..29a007792f 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -705,6 +705,7 @@ exit: return( test_ok ); } +#if defined(PSA_WANT_ALG_JPAKE) static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, psa_pake_operation_t *server, psa_pake_operation_t *client, @@ -994,6 +995,7 @@ exit: mbedtls_free( buffer1 ); return( ret ); } +#endif /* PSA_WANT_ALG_JPAKE */ /* END_HEADER */ From 12663092bc042d1c59ae0d4879167c47a9b2fc4f Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 15 Jun 2022 16:00:00 +0200 Subject: [PATCH 0116/1028] Introduce mbedtls_ecjpake_write_shared_key() to export the EC J-PAKE shared key material before the KDF() Signed-off-by: Neil Armstrong --- include/mbedtls/ecjpake.h | 23 ++++++++++ library/ecjpake.c | 97 ++++++++++++++++++++++++++++++++------- 2 files changed, 104 insertions(+), 16 deletions(-) diff --git a/include/mbedtls/ecjpake.h b/include/mbedtls/ecjpake.h index ffdea05bcf..5b57455576 100644 --- a/include/mbedtls/ecjpake.h +++ b/include/mbedtls/ecjpake.h @@ -258,6 +258,29 @@ int mbedtls_ecjpake_derive_secret( mbedtls_ecjpake_context *ctx, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ); +/** + * \brief Write the shared key material to be passed to a Key + * Derivation Function as described in RFC8236. + * + * \param ctx The ECJPAKE context to use. This must be initialized, + * set up and have performed both round one and two. + * \param buf The buffer to write the derived secret to. This must + * be a writable buffer of length \p len Bytes. + * \param len The length of \p buf in Bytes. + * \param olen The address at which to store the total number of Bytes + * written to \p buf. This must not be \c NULL. + * \param f_rng The RNG function to use. This must not be \c NULL. + * \param p_rng The RNG parameter to be passed to \p f_rng. This + * may be \c NULL if \p f_rng doesn't use a context. + * + * \return \c 0 if successful. + * \return A negative error code on failure. + */ +int mbedtls_ecjpake_write_shared_key( mbedtls_ecjpake_context *ctx, + unsigned char *buf, size_t len, size_t *olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ); + /** * \brief This clears an ECJPAKE context and frees any * embedded data structure. diff --git a/library/ecjpake.c b/library/ecjpake.c index 7447354bc5..17d04387d4 100644 --- a/library/ecjpake.c +++ b/library/ecjpake.c @@ -760,22 +760,14 @@ cleanup: /* * Derive PMS (7.4.2.7 / 7.4.2.8) */ -int mbedtls_ecjpake_derive_secret( mbedtls_ecjpake_context *ctx, - unsigned char *buf, size_t len, size_t *olen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +static int mbedtls_ecjpake_derive_k( mbedtls_ecjpake_context *ctx, + mbedtls_ecp_point *K, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_ecp_point K; mbedtls_mpi m_xm2_s, one; - unsigned char kx[MBEDTLS_ECP_MAX_BYTES]; - size_t x_bytes; - *olen = mbedtls_hash_info_get_size( ctx->md_type ); - if( len < *olen ) - return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL ); - - mbedtls_ecp_point_init( &K ); mbedtls_mpi_init( &m_xm2_s ); mbedtls_mpi_init( &one ); @@ -788,12 +780,39 @@ int mbedtls_ecjpake_derive_secret( mbedtls_ecjpake_context *ctx, */ MBEDTLS_MPI_CHK( ecjpake_mul_secret( &m_xm2_s, -1, &ctx->xm2, &ctx->s, &ctx->grp.N, f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_muladd( &ctx->grp, &K, + MBEDTLS_MPI_CHK( mbedtls_ecp_muladd( &ctx->grp, K, &one, &ctx->Xp, &m_xm2_s, &ctx->Xp2 ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_mul( &ctx->grp, &K, &ctx->xm2, &K, + MBEDTLS_MPI_CHK( mbedtls_ecp_mul( &ctx->grp, K, &ctx->xm2, K, f_rng, p_rng ) ); +cleanup: + mbedtls_mpi_free( &m_xm2_s ); + mbedtls_mpi_free( &one ); + + return( ret ); +} + +int mbedtls_ecjpake_derive_secret( mbedtls_ecjpake_context *ctx, + unsigned char *buf, size_t len, size_t *olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + mbedtls_ecp_point K; + unsigned char kx[MBEDTLS_ECP_MAX_BYTES]; + size_t x_bytes; + + *olen = mbedtls_hash_info_get_size( ctx->md_type ); + if( len < *olen ) + return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL ); + + mbedtls_ecp_point_init( &K ); + + ret = mbedtls_ecjpake_derive_k(ctx, &K, f_rng, p_rng); + if( ret ) + goto cleanup; + /* PMS = SHA-256( K.X ) */ x_bytes = ( ctx->grp.pbits + 7 ) / 8; MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &K.X, kx, x_bytes ) ); @@ -802,8 +821,31 @@ int mbedtls_ecjpake_derive_secret( mbedtls_ecjpake_context *ctx, cleanup: mbedtls_ecp_point_free( &K ); - mbedtls_mpi_free( &m_xm2_s ); - mbedtls_mpi_free( &one ); + + return( ret ); +} + +int mbedtls_ecjpake_write_shared_key( mbedtls_ecjpake_context *ctx, + unsigned char *buf, size_t len, size_t *olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + mbedtls_ecp_point K; + + mbedtls_ecp_point_init( &K ); + + ret = mbedtls_ecjpake_derive_k(ctx, &K, f_rng, p_rng); + if( ret ) + goto cleanup; + + ret = mbedtls_ecp_point_write_binary( &ctx->grp, &K, ctx->point_format, + olen, buf, len ); + if( ret != 0 ) + goto cleanup; + +cleanup: + mbedtls_ecp_point_free( &K ); return( ret ); } @@ -958,6 +1000,15 @@ static const unsigned char ecjpake_test_cli_two[] = { 0xcc, 0x38, 0xdb, 0xdc, 0xae, 0x60, 0xd9, 0xc5, 0x4c }; +static const unsigned char ecjpake_test_shared_key[] = { + 0x04, 0x01, 0xab, 0xe9, 0xf2, 0xc7, 0x3a, 0x99, 0x14, 0xcb, 0x1f, 0x80, + 0xfb, 0x9d, 0xdb, 0x7e, 0x00, 0x12, 0xa8, 0x9c, 0x2f, 0x39, 0x27, 0x79, + 0xf9, 0x64, 0x40, 0x14, 0x75, 0xea, 0xc1, 0x31, 0x28, 0x43, 0x8f, 0xe1, + 0x12, 0x41, 0xd6, 0xc1, 0xe5, 0x5f, 0x7b, 0x80, 0x88, 0x94, 0xc9, 0xc0, + 0x27, 0xa3, 0x34, 0x41, 0xf5, 0xcb, 0xa1, 0xfe, 0x6c, 0xc7, 0xe6, 0x12, + 0x17, 0xc3, 0xde, 0x27, 0xb4, +}; + static const unsigned char ecjpake_test_pms[] = { 0xf3, 0xd4, 0x7f, 0x59, 0x98, 0x44, 0xdb, 0x92, 0xa5, 0x69, 0xbb, 0xe7, 0x98, 0x1e, 0x39, 0xd9, 0x31, 0xfd, 0x74, 0x3b, 0xf2, 0x2e, 0x98, 0xf9, @@ -1144,6 +1195,13 @@ int mbedtls_ecjpake_self_test( int verbose ) TEST_ASSERT( len == sizeof( ecjpake_test_pms ) ); TEST_ASSERT( memcmp( buf, ecjpake_test_pms, len ) == 0 ); + /* Server derives K as unsigned binary data */ + TEST_ASSERT( mbedtls_ecjpake_write_shared_key( &srv, + buf, sizeof( buf ), &len, ecjpake_lgc, NULL ) == 0 ); + + TEST_ASSERT( len == sizeof( ecjpake_test_shared_key ) ); + TEST_ASSERT( memcmp( buf, ecjpake_test_shared_key, len ) == 0 ); + memset( buf, 0, len ); /* Avoid interferences with next step */ /* Client derives PMS */ @@ -1153,6 +1211,13 @@ int mbedtls_ecjpake_self_test( int verbose ) TEST_ASSERT( len == sizeof( ecjpake_test_pms ) ); TEST_ASSERT( memcmp( buf, ecjpake_test_pms, len ) == 0 ); + /* Client derives K as unsigned binary data */ + TEST_ASSERT( mbedtls_ecjpake_write_shared_key( &cli, + buf, sizeof( buf ), &len, ecjpake_lgc, NULL ) == 0 ); + + TEST_ASSERT( len == sizeof( ecjpake_test_shared_key ) ); + TEST_ASSERT( memcmp( buf, ecjpake_test_shared_key, len ) == 0 ); + if( verbose != 0 ) mbedtls_printf( "passed\n" ); #endif /* ! MBEDTLS_ECJPAKE_ALT */ From f19a3cb61333150650067e51de4242f6305000a0 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 15 Jun 2022 16:00:29 +0200 Subject: [PATCH 0117/1028] Use the mbedtls_ecjpake_write_shared_key() to input raw shared key material as derivation secret Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 556acd99b7..dd1a91e5a4 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -690,12 +690,12 @@ psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) if( operation->alg == PSA_ALG_JPAKE ) { - ret = mbedtls_ecjpake_derive_secret( &operation->ctx.ecjpake, - operation->buffer, - PSA_PAKE_BUFFER_SIZE, - &operation->buffer_length, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE ); + ret = mbedtls_ecjpake_write_shared_key( &operation->ctx.ecjpake, + operation->buffer, + PSA_PAKE_BUFFER_SIZE, + &operation->buffer_length, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE ); if( ret != 0) { psa_pake_abort( operation ); From db5b960a7e12f33fe7a3e47da5bfaf4edb135063 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Mon, 20 Jun 2022 14:56:50 +0200 Subject: [PATCH 0118/1028] Permit any psa_pake_input() step to fail when error injected in input Signed-off-by: Neil Armstrong --- tests/suites/test_suite_psa_crypto.function | 438 ++++++++++++++++---- 1 file changed, 353 insertions(+), 85 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 29a007792f..5261dedb44 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -732,7 +732,8 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, size_t c_x1_pr_len, c_x2_pr_len, c_x2s_pr_len; size_t c_x1_pr_off, c_x2_pr_off, c_x2s_pr_off; psa_status_t expected_status = PSA_SUCCESS; - int ret; + psa_status_t status; + int ret = 0; ASSERT_ALLOC( buffer0, buffer_length ); ASSERT_ALLOC( buffer1, buffer_length ); @@ -782,30 +783,86 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, if( client_input_first == 1 ) { /* Client first round Input */ - PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_g1_off, s_g1_len ) ); - PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x1_pk_off, - s_x1_pk_len ) ); - PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x1_pr_off, - s_x1_pr_len ) ); - PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_g2_off, - s_g2_len ) ); - PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x2_pk_off, - s_x2_pk_len ) ); - TEST_EQUAL( psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x2_pr_off, - s_x2_pr_len ), - expected_status ); - - if( inject_error == 1 ) + status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g1_off, s_g1_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) { - ret = 1; - goto exit; + TEST_EQUAL( status, expected_status ); + break; } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x1_pk_off, + s_x1_pk_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x1_pr_off, + s_x1_pr_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g2_off, + s_g2_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2_pk_off, + s_x2_pk_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2_pr_off, + s_x2_pr_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + /* Error didn't trigger, exit with error */ + if( inject_error == 1 ) + goto exit; } /* Client first round Output */ @@ -843,27 +900,86 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, if( client_input_first == 0 ) { /* Client first round Input */ - PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_g1_off, s_g1_len ) ); - PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x1_pk_off, - s_x1_pk_len ) ); - PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x1_pr_off, - s_x1_pr_len ) ); - PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_g2_off, - s_g2_len ) ); - PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x2_pk_off, - s_x2_pk_len ) ); - TEST_EQUAL( psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x2_pr_off, - s_x2_pr_len ), - expected_status ); - - if( inject_error == 1 ) + status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g1_off, s_g1_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x1_pk_off, + s_x1_pk_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x1_pr_off, + s_x1_pr_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g2_off, + s_g2_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2_pk_off, + s_x2_pk_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2_pr_off, + s_x2_pr_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + /* Error didn't trigger, exit with error */ + if( inject_error == 1 ) + goto exit; } if( inject_error == 2 ) @@ -874,19 +990,81 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, } /* Server first round Input */ - PSA_ASSERT( psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + c_g1_off, c_g1_len ) ); - PSA_ASSERT( psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + c_x1_pk_off, c_x1_pk_len ) ); - PSA_ASSERT( psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + c_x1_pr_off, c_x1_pr_len ) ); - PSA_ASSERT( psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + c_g2_off, c_g2_len ) ); - PSA_ASSERT( psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + c_x2_pk_off, c_x2_pk_len ) ); - TEST_EQUAL( psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + c_x2_pr_off, c_x2_pr_len ), - expected_status ); + status = psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_g1_off, c_g1_len ); + if( inject_error == 2 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x1_pk_off, c_x1_pk_len ); + if( inject_error == 2 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x1_pr_off, c_x1_pr_len ); + if( inject_error == 2 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_g2_off, c_g2_len ); + if( inject_error == 2 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x2_pk_off, c_x2_pk_len ); + if( inject_error == 2 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x2_pr_off, c_x2_pr_len ); + if( inject_error == 2 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + /* Error didn't trigger, exit with error */ + if( inject_error == 2 ) + goto exit; break; @@ -919,18 +1097,47 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, if( client_input_first == 1 ) { /* Client second round Input */ - PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_a_off, s_a_len ) ); - PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x2s_pk_off, - s_x2s_pk_len ) ); - TEST_EQUAL( psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x2s_pr_off, - s_x2s_pr_len ), - expected_status ); - - if( inject_error == 3 ) + status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_a_off, s_a_len ); + if( inject_error == 3 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2s_pk_off, + s_x2s_pk_len ); + if( inject_error == 3 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2s_pr_off, + s_x2s_pr_len ); + if( inject_error == 3 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + /* Error didn't trigger, exit with error */ + if( inject_error == 3 ) + goto exit; } /* Client second round Output */ @@ -955,18 +1162,47 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, if( client_input_first == 0 ) { /* Client second round Input */ - PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_a_off, s_a_len ) ); - PSA_ASSERT( psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x2s_pk_off, - s_x2s_pk_len ) ); - TEST_EQUAL( psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x2s_pr_off, - s_x2s_pr_len ), - expected_status ); - - if( inject_error == 3 ) + status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_a_off, s_a_len ); + if( inject_error == 3 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2s_pk_off, + s_x2s_pk_len ); + if( inject_error == 3 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2s_pr_off, + s_x2s_pr_len ); + if( inject_error == 3 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + /* Error didn't trigger, exit with error */ + if( inject_error == 3 ) + goto exit; } if( inject_error == 4 ) @@ -976,13 +1212,45 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, } /* Server second round Input */ - PSA_ASSERT( psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + c_a_off, c_a_len ) ); - PSA_ASSERT( psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + c_x2s_pk_off, c_x2s_pk_len ) ); - TEST_EQUAL( psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + c_x2s_pr_off, c_x2s_pr_len ), - expected_status ); + status = psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_a_off, c_a_len ); + if( inject_error == 4 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x2s_pk_off, c_x2s_pk_len ); + if( inject_error == 4 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x2s_pr_off, c_x2s_pr_len ); + if( inject_error == 4 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + /* Error didn't trigger, exit with error */ + if( inject_error == 4 ) + goto exit; break; From eae1dfcc46e3fe03809989637ca2a7cfe1373d32 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Tue, 21 Jun 2022 13:37:06 +0200 Subject: [PATCH 0119/1028] Change to more efficient error injection in ecjpake_do_round() Signed-off-by: Neil Armstrong --- tests/suites/test_suite_psa_crypto.function | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 5261dedb44..c5a8cde6fa 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -775,7 +775,7 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, if( inject_error == 1 ) { - buffer0[s_x1_pk_off + 12] >>= 4; + buffer0[s_x1_pk_off + 8] >>= 4; buffer0[s_x2_pk_off + 7] <<= 4; expected_status = PSA_ERROR_DATA_INVALID; } @@ -1090,7 +1090,7 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, if( inject_error == 3 ) { - buffer0[s_x2s_pk_off + 12] >>= 4; + buffer0[s_x2s_pk_off + 12] += 0x33; expected_status = PSA_ERROR_DATA_INVALID; } @@ -1207,7 +1207,7 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, if( inject_error == 4 ) { - buffer1[c_x2s_pk_off + 12] >>= 4; + buffer1[c_x2s_pk_off + 7] += 0x28; expected_status = PSA_ERROR_DATA_INVALID; } From e5fdf20a7957a7e2e2fca28c103b7fe8a728e2a1 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Tue, 30 Aug 2022 10:24:39 +0200 Subject: [PATCH 0120/1028] Make ecjpake_rounds test depends on PSA_WANT_ALG_TLS12_PSK_TO_MS Signed-off-by: Neil Armstrong --- tests/suites/test_suite_psa_crypto.data | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index 2e876ff24b..38bc64cc18 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -6495,11 +6495,11 @@ depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_ ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_NONE:0:"abcd":PSA_ERROR_NOT_SUPPORTED PSA PAKE: ecjpake rounds -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0 PSA PAKE: ecjpake rounds, client input first -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":1 PSA PAKE: ecjpake no input errors From b764fb60aa554ddb01980bf0da01473175f9a744 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Tue, 30 Aug 2022 14:38:57 +0200 Subject: [PATCH 0121/1028] Remove MBEDTLS_MD_C dep in config_psa.h when ECJPAJE is wanted Signed-off-by: Neil Armstrong --- include/mbedtls/config_psa.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/mbedtls/config_psa.h b/include/mbedtls/config_psa.h index 96083d8102..342f005747 100644 --- a/include/mbedtls/config_psa.h +++ b/include/mbedtls/config_psa.h @@ -152,7 +152,6 @@ extern "C" { #define MBEDTLS_ECP_DP_SECP256R1_ENABLED #define MBEDTLS_BIGNUM_C #define MBEDTLS_ECP_C -#define MBEDTLS_MD_C #define MBEDTLS_ECJPAKE_C #endif /* PSA_WANT_ALG_JPAKE */ From 26b39c6c6f58d0b619e912478147a04f0bed7308 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 29 Jul 2022 14:51:50 +0100 Subject: [PATCH 0122/1028] Remove NULL pointer validation in pk.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/pk.c | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/library/pk.c b/library/pk.c index 5dd0fa832d..6a3c86044f 100644 --- a/library/pk.c +++ b/library/pk.c @@ -57,7 +57,6 @@ */ void mbedtls_pk_init( mbedtls_pk_context *ctx ) { - PK_VALIDATE( ctx != NULL ); ctx->pk_info = NULL; ctx->pk_ctx = NULL; @@ -83,7 +82,6 @@ void mbedtls_pk_free( mbedtls_pk_context *ctx ) */ void mbedtls_pk_restart_init( mbedtls_pk_restart_ctx *ctx ) { - PK_VALIDATE( ctx != NULL ); ctx->pk_info = NULL; ctx->rs_ctx = NULL; } @@ -137,7 +135,6 @@ const mbedtls_pk_info_t * mbedtls_pk_info_from_type( mbedtls_pk_type_t pk_type ) */ int mbedtls_pk_setup( mbedtls_pk_context *ctx, const mbedtls_pk_info_t *info ) { - PK_VALIDATE_RET( ctx != NULL ); if( info == NULL || ctx->pk_info != NULL ) return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); @@ -200,7 +197,6 @@ int mbedtls_pk_setup_rsa_alt( mbedtls_pk_context *ctx, void * key, mbedtls_rsa_alt_context *rsa_alt; const mbedtls_pk_info_t *info = &mbedtls_rsa_alt_info; - PK_VALIDATE_RET( ctx != NULL ); if( ctx->pk_info != NULL ) return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); @@ -404,10 +400,8 @@ int mbedtls_pk_verify_restartable( mbedtls_pk_context *ctx, const unsigned char *sig, size_t sig_len, mbedtls_pk_restart_ctx *rs_ctx ) { - PK_VALIDATE_RET( ctx != NULL ); PK_VALIDATE_RET( ( md_alg == MBEDTLS_MD_NONE && hash_len == 0 ) || hash != NULL ); - PK_VALIDATE_RET( sig != NULL ); if( ctx->pk_info == NULL || pk_hashlen_helper( md_alg, &hash_len ) != 0 ) @@ -462,10 +456,8 @@ int mbedtls_pk_verify_ext( mbedtls_pk_type_t type, const void *options, const unsigned char *hash, size_t hash_len, const unsigned char *sig, size_t sig_len ) { - PK_VALIDATE_RET( ctx != NULL ); PK_VALIDATE_RET( ( md_alg == MBEDTLS_MD_NONE && hash_len == 0 ) || hash != NULL ); - PK_VALIDATE_RET( sig != NULL ); if( ctx->pk_info == NULL ) return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); @@ -588,10 +580,8 @@ int mbedtls_pk_sign_restartable( mbedtls_pk_context *ctx, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, mbedtls_pk_restart_ctx *rs_ctx ) { - PK_VALIDATE_RET( ctx != NULL ); PK_VALIDATE_RET( ( md_alg == MBEDTLS_MD_NONE && hash_len == 0 ) || hash != NULL ); - PK_VALIDATE_RET( sig != NULL ); if( ctx->pk_info == NULL || pk_hashlen_helper( md_alg, &hash_len ) != 0 ) @@ -707,10 +697,6 @@ int mbedtls_pk_decrypt( mbedtls_pk_context *ctx, unsigned char *output, size_t *olen, size_t osize, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) { - PK_VALIDATE_RET( ctx != NULL ); - PK_VALIDATE_RET( input != NULL || ilen == 0 ); - PK_VALIDATE_RET( output != NULL || osize == 0 ); - PK_VALIDATE_RET( olen != NULL ); if( ctx->pk_info == NULL ) return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); @@ -730,10 +716,6 @@ int mbedtls_pk_encrypt( mbedtls_pk_context *ctx, unsigned char *output, size_t *olen, size_t osize, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) { - PK_VALIDATE_RET( ctx != NULL ); - PK_VALIDATE_RET( input != NULL || ilen == 0 ); - PK_VALIDATE_RET( output != NULL || osize == 0 ); - PK_VALIDATE_RET( olen != NULL ); if( ctx->pk_info == NULL ) return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); @@ -753,8 +735,6 @@ int mbedtls_pk_check_pair( const mbedtls_pk_context *pub, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) { - PK_VALIDATE_RET( pub != NULL ); - PK_VALIDATE_RET( prv != NULL ); if( pub->pk_info == NULL || prv->pk_info == NULL ) @@ -800,7 +780,6 @@ size_t mbedtls_pk_get_bitlen( const mbedtls_pk_context *ctx ) */ int mbedtls_pk_debug( const mbedtls_pk_context *ctx, mbedtls_pk_debug_item *items ) { - PK_VALIDATE_RET( ctx != NULL ); if( ctx->pk_info == NULL ) return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); From 78c1d8c299654749980fa6bf455e19f5ea4566f9 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 29 Jul 2022 14:51:50 +0100 Subject: [PATCH 0123/1028] Re-introduce ENUM validation in pk.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/pk.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/library/pk.c b/library/pk.c index 6a3c86044f..98ba675c52 100644 --- a/library/pk.c +++ b/library/pk.c @@ -46,11 +46,6 @@ #include #include -/* Parameter validation macros based on platform_util.h */ -#define PK_VALIDATE_RET( cond ) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_PK_BAD_INPUT_DATA ) -#define PK_VALIDATE( cond ) \ - MBEDTLS_INTERNAL_VALIDATE( cond ) /* * Initialise a mbedtls_pk_context @@ -400,8 +395,9 @@ int mbedtls_pk_verify_restartable( mbedtls_pk_context *ctx, const unsigned char *sig, size_t sig_len, mbedtls_pk_restart_ctx *rs_ctx ) { - PK_VALIDATE_RET( ( md_alg == MBEDTLS_MD_NONE && hash_len == 0 ) || - hash != NULL ); + if( ( md_alg != MBEDTLS_MD_NONE || hash_len != 0 ) && + hash == NULL ) + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; if( ctx->pk_info == NULL || pk_hashlen_helper( md_alg, &hash_len ) != 0 ) @@ -456,8 +452,9 @@ int mbedtls_pk_verify_ext( mbedtls_pk_type_t type, const void *options, const unsigned char *hash, size_t hash_len, const unsigned char *sig, size_t sig_len ) { - PK_VALIDATE_RET( ( md_alg == MBEDTLS_MD_NONE && hash_len == 0 ) || - hash != NULL ); + if( ( md_alg != MBEDTLS_MD_NONE || hash_len != 0 ) && + hash == NULL ) + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; if( ctx->pk_info == NULL ) return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); @@ -580,8 +577,9 @@ int mbedtls_pk_sign_restartable( mbedtls_pk_context *ctx, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, mbedtls_pk_restart_ctx *rs_ctx ) { - PK_VALIDATE_RET( ( md_alg == MBEDTLS_MD_NONE && hash_len == 0 ) || - hash != NULL ); + if( ( md_alg != MBEDTLS_MD_NONE || hash_len != 0 ) && + hash == NULL ) + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; if( ctx->pk_info == NULL || pk_hashlen_helper( md_alg, &hash_len ) != 0 ) From 79bf51a1098cbf78cdf1d75b0323ab46ed13fa5b Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 29 Jul 2022 15:06:52 +0100 Subject: [PATCH 0124/1028] Add new test for invalid param in pk.c Signed-off-by: Tuvshinzaya Erdenekhuu --- tests/suites/test_suite_pk.data | 3 +++ tests/suites/test_suite_pk.function | 33 +++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/tests/suites/test_suite_pk.data b/tests/suites/test_suite_pk.data index e8cc076f63..3dc2b8ba1b 100644 --- a/tests/suites/test_suite_pk.data +++ b/tests/suites/test_suite_pk.data @@ -1,3 +1,6 @@ +PK invalid parameters +pk_invalid_param: + PK valid parameters valid_parameters: diff --git a/tests/suites/test_suite_pk.function b/tests/suites/test_suite_pk.function index 9c04560325..7fc6873fd5 100644 --- a/tests/suites/test_suite_pk.function +++ b/tests/suites/test_suite_pk.function @@ -299,6 +299,39 @@ exit: } /* END_CASE */ + +/* BEGIN_CASE */ +void pk_invalid_param() +{ + mbedtls_pk_context ctx; + mbedtls_md_type_t md_alg_none = MBEDTLS_MD_NONE; + mbedtls_pk_type_t pk_type = 0; + unsigned char buf[] = {0x01,0x02,0x03,0x04,0x05,0x06}; + size_t buf_size = sizeof( buf ); + + mbedtls_pk_init( &ctx ); + + TEST_EQUAL( MBEDTLS_ERR_PK_BAD_INPUT_DATA, + mbedtls_pk_verify_restartable( &ctx, md_alg_none, + NULL, buf_size, + buf, buf_size, + NULL ) ); + TEST_EQUAL( MBEDTLS_ERR_PK_BAD_INPUT_DATA, + mbedtls_pk_verify_ext( pk_type, NULL, + &ctx, md_alg_none, + NULL, buf_size, + buf, buf_size ) ); + TEST_EQUAL( MBEDTLS_ERR_PK_BAD_INPUT_DATA, + mbedtls_pk_sign_restartable( &ctx, md_alg_none, + NULL, buf_size, + buf, buf_size, &buf_size, + NULL, NULL, + NULL ) ); +exit: + mbedtls_pk_free( &ctx ); +} +/* END_CASE */ + /* BEGIN_CASE */ void valid_parameters( ) { From 088e9368394f0f9532a9b995fd0f39df4cff7cd8 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 29 Jul 2022 14:51:50 +0100 Subject: [PATCH 0125/1028] Remove NULL pointer validation in pkwrite.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/pkwrite.c | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/library/pkwrite.c b/library/pkwrite.c index 8b99340507..17343c217f 100644 --- a/library/pkwrite.c +++ b/library/pkwrite.c @@ -59,11 +59,6 @@ #define mbedtls_free free #endif -/* Parameter validation macros based on platform_util.h */ -#define PK_VALIDATE_RET( cond ) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_PK_BAD_INPUT_DATA ) -#define PK_VALIDATE( cond ) \ - MBEDTLS_INTERNAL_VALIDATE( cond ) #if defined(MBEDTLS_RSA_C) /* @@ -182,10 +177,6 @@ int mbedtls_pk_write_pubkey( unsigned char **p, unsigned char *start, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; - PK_VALIDATE_RET( p != NULL ); - PK_VALIDATE_RET( *p != NULL ); - PK_VALIDATE_RET( start != NULL ); - PK_VALIDATE_RET( key != NULL ); #if defined(MBEDTLS_RSA_C) if( mbedtls_pk_get_type( key ) == MBEDTLS_PK_RSA ) @@ -233,10 +224,8 @@ int mbedtls_pk_write_pubkey_der( const mbedtls_pk_context *key, unsigned char *b mbedtls_pk_type_t pk_type; const char *oid; - PK_VALIDATE_RET( key != NULL ); if( size == 0 ) return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); - PK_VALIDATE_RET( buf != NULL ); c = buf + size; @@ -333,10 +322,8 @@ int mbedtls_pk_write_key_der( const mbedtls_pk_context *key, unsigned char *buf, unsigned char *c; size_t len = 0; - PK_VALIDATE_RET( key != NULL ); if( size == 0 ) return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); - PK_VALIDATE_RET( buf != NULL ); c = buf + size; @@ -500,8 +487,6 @@ int mbedtls_pk_write_pubkey_pem( const mbedtls_pk_context *key, unsigned char *b unsigned char output_buf[PUB_DER_MAX_BYTES]; size_t olen = 0; - PK_VALIDATE_RET( key != NULL ); - PK_VALIDATE_RET( buf != NULL || size == 0 ); if( ( ret = mbedtls_pk_write_pubkey_der( key, output_buf, sizeof(output_buf) ) ) < 0 ) @@ -526,8 +511,6 @@ int mbedtls_pk_write_key_pem( const mbedtls_pk_context *key, unsigned char *buf, const char *begin, *end; size_t olen = 0; - PK_VALIDATE_RET( key != NULL ); - PK_VALIDATE_RET( buf != NULL || size == 0 ); if( ( ret = mbedtls_pk_write_key_der( key, output_buf, sizeof(output_buf) ) ) < 0 ) return( ret ); From dcf9c96274c31879e790ff4d2111cc510ad697e2 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 29 Jul 2022 14:51:51 +0100 Subject: [PATCH 0126/1028] Remove NULL pointer validation in pkparse.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/pkparse.c | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/library/pkparse.c b/library/pkparse.c index 73d59a6bbe..9194040a52 100644 --- a/library/pkparse.c +++ b/library/pkparse.c @@ -56,11 +56,6 @@ #define mbedtls_free free #endif -/* Parameter validation macros based on platform_util.h */ -#define PK_VALIDATE_RET( cond ) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_PK_BAD_INPUT_DATA ) -#define PK_VALIDATE( cond ) \ - MBEDTLS_INTERNAL_VALIDATE( cond ) #if defined(MBEDTLS_FS_IO) /* @@ -75,9 +70,6 @@ int mbedtls_pk_load_file( const char *path, unsigned char **buf, size_t *n ) FILE *f; long size; - PK_VALIDATE_RET( path != NULL ); - PK_VALIDATE_RET( buf != NULL ); - PK_VALIDATE_RET( n != NULL ); if( ( f = fopen( path, "rb" ) ) == NULL ) return( MBEDTLS_ERR_PK_FILE_IO_ERROR ); @@ -133,8 +125,6 @@ int mbedtls_pk_parse_keyfile( mbedtls_pk_context *ctx, size_t n; unsigned char *buf; - PK_VALIDATE_RET( ctx != NULL ); - PK_VALIDATE_RET( path != NULL ); if( ( ret = mbedtls_pk_load_file( path, &buf, &n ) ) != 0 ) return( ret ); @@ -160,8 +150,6 @@ int mbedtls_pk_parse_public_keyfile( mbedtls_pk_context *ctx, const char *path ) size_t n; unsigned char *buf; - PK_VALIDATE_RET( ctx != NULL ); - PK_VALIDATE_RET( path != NULL ); if( ( ret = mbedtls_pk_load_file( path, &buf, &n ) ) != 0 ) return( ret ); @@ -620,10 +608,6 @@ int mbedtls_pk_parse_subpubkey( unsigned char **p, const unsigned char *end, mbedtls_pk_type_t pk_alg = MBEDTLS_PK_NONE; const mbedtls_pk_info_t *pk_info; - PK_VALIDATE_RET( p != NULL ); - PK_VALIDATE_RET( *p != NULL ); - PK_VALIDATE_RET( end != NULL ); - PK_VALIDATE_RET( pk != NULL ); if( ( ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) @@ -1217,10 +1201,8 @@ int mbedtls_pk_parse_key( mbedtls_pk_context *pk, mbedtls_pem_context pem; #endif - PK_VALIDATE_RET( pk != NULL ); if( keylen == 0 ) return( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT ); - PK_VALIDATE_RET( key != NULL ); #if defined(MBEDTLS_PEM_PARSE_C) mbedtls_pem_init( &pem ); @@ -1436,10 +1418,8 @@ int mbedtls_pk_parse_public_key( mbedtls_pk_context *ctx, mbedtls_pem_context pem; #endif - PK_VALIDATE_RET( ctx != NULL ); if( keylen == 0 ) return( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT ); - PK_VALIDATE_RET( key != NULL || keylen == 0 ); #if defined(MBEDTLS_PEM_PARSE_C) mbedtls_pem_init( &pem ); From c388af63e4a871d4e991a80d0f3427f6e31599fe Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Tue, 2 Aug 2022 11:54:54 +0100 Subject: [PATCH 0127/1028] Remove extra spacings Signed-off-by: Tuvshinzaya Erdenekhuu --- library/pk.c | 17 ++++------------- library/pkparse.c | 5 ----- library/pkwrite.c | 4 ---- tests/suites/test_suite_pk.function | 3 +-- 4 files changed, 5 insertions(+), 24 deletions(-) diff --git a/library/pk.c b/library/pk.c index 98ba675c52..8dc19ef99b 100644 --- a/library/pk.c +++ b/library/pk.c @@ -46,13 +46,11 @@ #include #include - /* * Initialise a mbedtls_pk_context */ void mbedtls_pk_init( mbedtls_pk_context *ctx ) { - ctx->pk_info = NULL; ctx->pk_ctx = NULL; } @@ -395,8 +393,7 @@ int mbedtls_pk_verify_restartable( mbedtls_pk_context *ctx, const unsigned char *sig, size_t sig_len, mbedtls_pk_restart_ctx *rs_ctx ) { - if( ( md_alg != MBEDTLS_MD_NONE || hash_len != 0 ) && - hash == NULL ) + if( ( md_alg != MBEDTLS_MD_NONE || hash_len != 0 ) && hash == NULL ) return MBEDTLS_ERR_PK_BAD_INPUT_DATA; if( ctx->pk_info == NULL || @@ -452,8 +449,7 @@ int mbedtls_pk_verify_ext( mbedtls_pk_type_t type, const void *options, const unsigned char *hash, size_t hash_len, const unsigned char *sig, size_t sig_len ) { - if( ( md_alg != MBEDTLS_MD_NONE || hash_len != 0 ) && - hash == NULL ) + if( ( md_alg != MBEDTLS_MD_NONE || hash_len != 0 ) && hash == NULL ) return MBEDTLS_ERR_PK_BAD_INPUT_DATA; if( ctx->pk_info == NULL ) @@ -577,12 +573,10 @@ int mbedtls_pk_sign_restartable( mbedtls_pk_context *ctx, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, mbedtls_pk_restart_ctx *rs_ctx ) { - if( ( md_alg != MBEDTLS_MD_NONE || hash_len != 0 ) && - hash == NULL ) + if( ( md_alg != MBEDTLS_MD_NONE || hash_len != 0 ) && hash == NULL ) return MBEDTLS_ERR_PK_BAD_INPUT_DATA; - if( ctx->pk_info == NULL || - pk_hashlen_helper( md_alg, &hash_len ) != 0 ) + if( ctx->pk_info == NULL || pk_hashlen_helper( md_alg, &hash_len ) != 0 ) return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) @@ -695,7 +689,6 @@ int mbedtls_pk_decrypt( mbedtls_pk_context *ctx, unsigned char *output, size_t *olen, size_t osize, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) { - if( ctx->pk_info == NULL ) return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); @@ -714,7 +707,6 @@ int mbedtls_pk_encrypt( mbedtls_pk_context *ctx, unsigned char *output, size_t *olen, size_t osize, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) { - if( ctx->pk_info == NULL ) return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); @@ -733,7 +725,6 @@ int mbedtls_pk_check_pair( const mbedtls_pk_context *pub, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) { - if( pub->pk_info == NULL || prv->pk_info == NULL ) { diff --git a/library/pkparse.c b/library/pkparse.c index 9194040a52..2a9a558627 100644 --- a/library/pkparse.c +++ b/library/pkparse.c @@ -56,7 +56,6 @@ #define mbedtls_free free #endif - #if defined(MBEDTLS_FS_IO) /* * Load all data from a file into a given buffer. @@ -70,7 +69,6 @@ int mbedtls_pk_load_file( const char *path, unsigned char **buf, size_t *n ) FILE *f; long size; - if( ( f = fopen( path, "rb" ) ) == NULL ) return( MBEDTLS_ERR_PK_FILE_IO_ERROR ); @@ -125,7 +123,6 @@ int mbedtls_pk_parse_keyfile( mbedtls_pk_context *ctx, size_t n; unsigned char *buf; - if( ( ret = mbedtls_pk_load_file( path, &buf, &n ) ) != 0 ) return( ret ); @@ -150,7 +147,6 @@ int mbedtls_pk_parse_public_keyfile( mbedtls_pk_context *ctx, const char *path ) size_t n; unsigned char *buf; - if( ( ret = mbedtls_pk_load_file( path, &buf, &n ) ) != 0 ) return( ret ); @@ -608,7 +604,6 @@ int mbedtls_pk_parse_subpubkey( unsigned char **p, const unsigned char *end, mbedtls_pk_type_t pk_alg = MBEDTLS_PK_NONE; const mbedtls_pk_info_t *pk_info; - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) { diff --git a/library/pkwrite.c b/library/pkwrite.c index 17343c217f..4d87b07efe 100644 --- a/library/pkwrite.c +++ b/library/pkwrite.c @@ -59,7 +59,6 @@ #define mbedtls_free free #endif - #if defined(MBEDTLS_RSA_C) /* * RSAPublicKey ::= SEQUENCE { @@ -177,7 +176,6 @@ int mbedtls_pk_write_pubkey( unsigned char **p, unsigned char *start, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; - #if defined(MBEDTLS_RSA_C) if( mbedtls_pk_get_type( key ) == MBEDTLS_PK_RSA ) MBEDTLS_ASN1_CHK_ADD( len, pk_write_rsa_pubkey( p, start, mbedtls_pk_rsa( *key ) ) ); @@ -487,7 +485,6 @@ int mbedtls_pk_write_pubkey_pem( const mbedtls_pk_context *key, unsigned char *b unsigned char output_buf[PUB_DER_MAX_BYTES]; size_t olen = 0; - if( ( ret = mbedtls_pk_write_pubkey_der( key, output_buf, sizeof(output_buf) ) ) < 0 ) { @@ -511,7 +508,6 @@ int mbedtls_pk_write_key_pem( const mbedtls_pk_context *key, unsigned char *buf, const char *begin, *end; size_t olen = 0; - if( ( ret = mbedtls_pk_write_key_der( key, output_buf, sizeof(output_buf) ) ) < 0 ) return( ret ); diff --git a/tests/suites/test_suite_pk.function b/tests/suites/test_suite_pk.function index 7fc6873fd5..94a76172db 100644 --- a/tests/suites/test_suite_pk.function +++ b/tests/suites/test_suite_pk.function @@ -299,14 +299,13 @@ exit: } /* END_CASE */ - /* BEGIN_CASE */ void pk_invalid_param() { mbedtls_pk_context ctx; mbedtls_md_type_t md_alg_none = MBEDTLS_MD_NONE; mbedtls_pk_type_t pk_type = 0; - unsigned char buf[] = {0x01,0x02,0x03,0x04,0x05,0x06}; + unsigned char buf[] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06}; size_t buf_size = sizeof( buf ); mbedtls_pk_init( &ctx ); From ed99ed34f3a108ad61aaf9a1c5afd0562b733186 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Tue, 2 Aug 2022 14:02:28 +0100 Subject: [PATCH 0128/1028] Add spaces to comply with coding style Signed-off-by: Tuvshinzaya Erdenekhuu --- tests/suites/test_suite_pk.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_pk.function b/tests/suites/test_suite_pk.function index 94a76172db..62682256d1 100644 --- a/tests/suites/test_suite_pk.function +++ b/tests/suites/test_suite_pk.function @@ -305,7 +305,7 @@ void pk_invalid_param() mbedtls_pk_context ctx; mbedtls_md_type_t md_alg_none = MBEDTLS_MD_NONE; mbedtls_pk_type_t pk_type = 0; - unsigned char buf[] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06}; + unsigned char buf[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 }; size_t buf_size = sizeof( buf ); mbedtls_pk_init( &ctx ); From 0050b918f03f27bc01b1c32c47ddeb0533568cb0 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Tue, 30 Aug 2022 13:15:55 +0100 Subject: [PATCH 0129/1028] Added new tests in pk_invalid_param Signed-off-by: Tuvshinzaya Erdenekhuu --- tests/suites/test_suite_pk.function | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_pk.function b/tests/suites/test_suite_pk.function index 62682256d1..2c08a5e799 100644 --- a/tests/suites/test_suite_pk.function +++ b/tests/suites/test_suite_pk.function @@ -303,7 +303,6 @@ exit: void pk_invalid_param() { mbedtls_pk_context ctx; - mbedtls_md_type_t md_alg_none = MBEDTLS_MD_NONE; mbedtls_pk_type_t pk_type = 0; unsigned char buf[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 }; size_t buf_size = sizeof( buf ); @@ -311,21 +310,37 @@ void pk_invalid_param() mbedtls_pk_init( &ctx ); TEST_EQUAL( MBEDTLS_ERR_PK_BAD_INPUT_DATA, - mbedtls_pk_verify_restartable( &ctx, md_alg_none, + mbedtls_pk_verify_restartable( &ctx, MBEDTLS_MD_NONE, NULL, buf_size, buf, buf_size, NULL ) ); + TEST_EQUAL( MBEDTLS_ERR_PK_BAD_INPUT_DATA, + mbedtls_pk_verify_restartable( &ctx, MBEDTLS_MD_SHA256, + NULL, 0, + buf, buf_size, + NULL ) ); TEST_EQUAL( MBEDTLS_ERR_PK_BAD_INPUT_DATA, mbedtls_pk_verify_ext( pk_type, NULL, - &ctx, md_alg_none, + &ctx, MBEDTLS_MD_NONE, NULL, buf_size, buf, buf_size ) ); TEST_EQUAL( MBEDTLS_ERR_PK_BAD_INPUT_DATA, - mbedtls_pk_sign_restartable( &ctx, md_alg_none, + mbedtls_pk_verify_ext( pk_type, NULL, + &ctx, MBEDTLS_MD_SHA256, + NULL, 0, + buf, buf_size ) ); + TEST_EQUAL( MBEDTLS_ERR_PK_BAD_INPUT_DATA, + mbedtls_pk_sign_restartable( &ctx, MBEDTLS_MD_NONE, NULL, buf_size, buf, buf_size, &buf_size, NULL, NULL, NULL ) ); + TEST_EQUAL( MBEDTLS_ERR_PK_BAD_INPUT_DATA, + mbedtls_pk_sign_restartable( &ctx, MBEDTLS_MD_SHA256, + NULL, 0, + buf, buf_size, &buf_size, + NULL, NULL, + NULL ) ); exit: mbedtls_pk_free( &ctx ); } From cac11d7797295ac9cab7085e5fd9a19af393c5ec Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 15:31:57 +0100 Subject: [PATCH 0130/1028] Remove NULL pointer validation in aes.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/aes.c | 49 ------------------------------------------------- 1 file changed, 49 deletions(-) diff --git a/library/aes.c b/library/aes.c index ca94e0a168..9ad12a6151 100644 --- a/library/aes.c +++ b/library/aes.c @@ -489,8 +489,6 @@ static void aes_gen_tables( void ) void mbedtls_aes_init( mbedtls_aes_context *ctx ) { - AES_VALIDATE( ctx != NULL ); - memset( ctx, 0, sizeof( mbedtls_aes_context ) ); } @@ -505,8 +503,6 @@ void mbedtls_aes_free( mbedtls_aes_context *ctx ) #if defined(MBEDTLS_CIPHER_MODE_XTS) void mbedtls_aes_xts_init( mbedtls_aes_xts_context *ctx ) { - AES_VALIDATE( ctx != NULL ); - mbedtls_aes_init( &ctx->crypt ); mbedtls_aes_init( &ctx->tweak ); } @@ -531,9 +527,6 @@ int mbedtls_aes_setkey_enc( mbedtls_aes_context *ctx, const unsigned char *key, unsigned int i; uint32_t *RK; - AES_VALIDATE_RET( ctx != NULL ); - AES_VALIDATE_RET( key != NULL ); - switch( keybits ) { case 128: ctx->nr = 10; break; @@ -649,9 +642,6 @@ int mbedtls_aes_setkey_dec( mbedtls_aes_context *ctx, const unsigned char *key, uint32_t *RK; uint32_t *SK; - AES_VALIDATE_RET( ctx != NULL ); - AES_VALIDATE_RET( key != NULL ); - mbedtls_aes_init( &cty ); ctx->rk_offset = 0; @@ -743,9 +733,6 @@ int mbedtls_aes_xts_setkey_enc( mbedtls_aes_xts_context *ctx, const unsigned char *key1, *key2; unsigned int key1bits, key2bits; - AES_VALIDATE_RET( ctx != NULL ); - AES_VALIDATE_RET( key != NULL ); - ret = mbedtls_aes_xts_decode_keys( key, keybits, &key1, &key1bits, &key2, &key2bits ); if( ret != 0 ) @@ -768,9 +755,6 @@ int mbedtls_aes_xts_setkey_dec( mbedtls_aes_xts_context *ctx, const unsigned char *key1, *key2; unsigned int key1bits, key2bits; - AES_VALIDATE_RET( ctx != NULL ); - AES_VALIDATE_RET( key != NULL ); - ret = mbedtls_aes_xts_decode_keys( key, keybits, &key1, &key1bits, &key2, &key2bits ); if( ret != 0 ) @@ -970,9 +954,6 @@ int mbedtls_aes_crypt_ecb( mbedtls_aes_context *ctx, const unsigned char input[16], unsigned char output[16] ) { - AES_VALIDATE_RET( ctx != NULL ); - AES_VALIDATE_RET( input != NULL ); - AES_VALIDATE_RET( output != NULL ); AES_VALIDATE_RET( mode == MBEDTLS_AES_ENCRYPT || mode == MBEDTLS_AES_DECRYPT ); @@ -1014,12 +995,8 @@ int mbedtls_aes_crypt_cbc( mbedtls_aes_context *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char temp[16]; - AES_VALIDATE_RET( ctx != NULL ); AES_VALIDATE_RET( mode == MBEDTLS_AES_ENCRYPT || mode == MBEDTLS_AES_DECRYPT ); - AES_VALIDATE_RET( iv != NULL ); - AES_VALIDATE_RET( input != NULL ); - AES_VALIDATE_RET( output != NULL ); if( length % 16 ) return( MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH ); @@ -1123,12 +1100,8 @@ int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx, unsigned char prev_tweak[16]; unsigned char tmp[16]; - AES_VALIDATE_RET( ctx != NULL ); AES_VALIDATE_RET( mode == MBEDTLS_AES_ENCRYPT || mode == MBEDTLS_AES_DECRYPT ); - AES_VALIDATE_RET( data_unit != NULL ); - AES_VALIDATE_RET( input != NULL ); - AES_VALIDATE_RET( output != NULL ); /* Data units must be at least 16 bytes long. */ if( length < 16 ) @@ -1232,13 +1205,8 @@ int mbedtls_aes_crypt_cfb128( mbedtls_aes_context *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n; - AES_VALIDATE_RET( ctx != NULL ); AES_VALIDATE_RET( mode == MBEDTLS_AES_ENCRYPT || mode == MBEDTLS_AES_DECRYPT ); - AES_VALIDATE_RET( iv_off != NULL ); - AES_VALIDATE_RET( iv != NULL ); - AES_VALIDATE_RET( input != NULL ); - AES_VALIDATE_RET( output != NULL ); n = *iv_off; @@ -1301,12 +1269,8 @@ int mbedtls_aes_crypt_cfb8( mbedtls_aes_context *ctx, unsigned char c; unsigned char ov[17]; - AES_VALIDATE_RET( ctx != NULL ); AES_VALIDATE_RET( mode == MBEDTLS_AES_ENCRYPT || mode == MBEDTLS_AES_DECRYPT ); - AES_VALIDATE_RET( iv != NULL ); - AES_VALIDATE_RET( input != NULL ); - AES_VALIDATE_RET( output != NULL ); while( length-- ) { memcpy( ov, iv, 16 ); @@ -1345,12 +1309,6 @@ int mbedtls_aes_crypt_ofb( mbedtls_aes_context *ctx, int ret = 0; size_t n; - AES_VALIDATE_RET( ctx != NULL ); - AES_VALIDATE_RET( iv_off != NULL ); - AES_VALIDATE_RET( iv != NULL ); - AES_VALIDATE_RET( input != NULL ); - AES_VALIDATE_RET( output != NULL ); - n = *iv_off; if( n > 15 ) @@ -1392,13 +1350,6 @@ int mbedtls_aes_crypt_ctr( mbedtls_aes_context *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n; - AES_VALIDATE_RET( ctx != NULL ); - AES_VALIDATE_RET( nc_off != NULL ); - AES_VALIDATE_RET( nonce_counter != NULL ); - AES_VALIDATE_RET( stream_block != NULL ); - AES_VALIDATE_RET( input != NULL ); - AES_VALIDATE_RET( output != NULL ); - n = *nc_off; if ( n > 0x0F ) From a8ef1565bb38b707f49b917dbfe8381a2a16c977 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 15:31:57 +0100 Subject: [PATCH 0131/1028] Re-introduce ENUM validation in aes.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/aes.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/library/aes.c b/library/aes.c index 9ad12a6151..03eccef21b 100644 --- a/library/aes.c +++ b/library/aes.c @@ -51,12 +51,6 @@ #if !defined(MBEDTLS_AES_ALT) -/* Parameter validation macros based on platform_util.h */ -#define AES_VALIDATE_RET( cond ) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_AES_BAD_INPUT_DATA ) -#define AES_VALIDATE( cond ) \ - MBEDTLS_INTERNAL_VALIDATE( cond ) - #if defined(MBEDTLS_PADLOCK_C) && \ ( defined(MBEDTLS_HAVE_X86) || defined(MBEDTLS_PADLOCK_ALIGN16) ) static int aes_padlock_ace = -1; @@ -954,8 +948,8 @@ int mbedtls_aes_crypt_ecb( mbedtls_aes_context *ctx, const unsigned char input[16], unsigned char output[16] ) { - AES_VALIDATE_RET( mode == MBEDTLS_AES_ENCRYPT || - mode == MBEDTLS_AES_DECRYPT ); + if( mode != MBEDTLS_AES_ENCRYPT && mode != MBEDTLS_AES_DECRYPT ) + return MBEDTLS_ERR_AES_BAD_INPUT_DATA; #if defined(MBEDTLS_AESNI_C) && defined(MBEDTLS_HAVE_X86_64) if( mbedtls_aesni_has_support( MBEDTLS_AESNI_AES ) ) @@ -995,8 +989,8 @@ int mbedtls_aes_crypt_cbc( mbedtls_aes_context *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char temp[16]; - AES_VALIDATE_RET( mode == MBEDTLS_AES_ENCRYPT || - mode == MBEDTLS_AES_DECRYPT ); + if( mode != MBEDTLS_AES_ENCRYPT && mode != MBEDTLS_AES_DECRYPT ) + return MBEDTLS_ERR_AES_BAD_INPUT_DATA; if( length % 16 ) return( MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH ); @@ -1100,8 +1094,8 @@ int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx, unsigned char prev_tweak[16]; unsigned char tmp[16]; - AES_VALIDATE_RET( mode == MBEDTLS_AES_ENCRYPT || - mode == MBEDTLS_AES_DECRYPT ); + if( mode != MBEDTLS_AES_ENCRYPT && mode != MBEDTLS_AES_DECRYPT ) + return MBEDTLS_ERR_AES_BAD_INPUT_DATA; /* Data units must be at least 16 bytes long. */ if( length < 16 ) @@ -1205,8 +1199,8 @@ int mbedtls_aes_crypt_cfb128( mbedtls_aes_context *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n; - AES_VALIDATE_RET( mode == MBEDTLS_AES_ENCRYPT || - mode == MBEDTLS_AES_DECRYPT ); + if( mode != MBEDTLS_AES_ENCRYPT && mode != MBEDTLS_AES_DECRYPT ) + return MBEDTLS_ERR_AES_BAD_INPUT_DATA; n = *iv_off; @@ -1269,8 +1263,8 @@ int mbedtls_aes_crypt_cfb8( mbedtls_aes_context *ctx, unsigned char c; unsigned char ov[17]; - AES_VALIDATE_RET( mode == MBEDTLS_AES_ENCRYPT || - mode == MBEDTLS_AES_DECRYPT ); + if( mode != MBEDTLS_AES_ENCRYPT && mode != MBEDTLS_AES_DECRYPT ) + return MBEDTLS_ERR_AES_BAD_INPUT_DATA; while( length-- ) { memcpy( ov, iv, 16 ); From c855bf52857a73e6c0c7277246f4f92d23c4ca1d Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 29 Jul 2022 14:43:51 +0100 Subject: [PATCH 0132/1028] Enabled invalid param test for aes Signed-off-by: Tuvshinzaya Erdenekhuu --- tests/suites/test_suite_aes.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_aes.function b/tests/suites/test_suite_aes.function index 5ab265a2f7..10e53c2a4c 100644 --- a/tests/suites/test_suite_aes.function +++ b/tests/suites/test_suite_aes.function @@ -358,7 +358,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:NOT_DEFINED */ +/* BEGIN_CASE */ void aes_invalid_mode( ) { mbedtls_aes_context aes_ctx; From 6291b131cab28b294c4948ce607c4befa8177f58 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 15:31:57 +0100 Subject: [PATCH 0133/1028] Remove NULL pointer validation in camellia.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/camellia.c | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/library/camellia.c b/library/camellia.c index 29d730ab53..75059749d3 100644 --- a/library/camellia.c +++ b/library/camellia.c @@ -298,7 +298,6 @@ static void camellia_feistel( const uint32_t x[2], const uint32_t k[2], void mbedtls_camellia_init( mbedtls_camellia_context *ctx ) { - CAMELLIA_VALIDATE( ctx != NULL ); memset( ctx, 0, sizeof( mbedtls_camellia_context ) ); } @@ -325,9 +324,6 @@ int mbedtls_camellia_setkey_enc( mbedtls_camellia_context *ctx, uint32_t KC[16]; uint32_t TK[20]; - CAMELLIA_VALIDATE_RET( ctx != NULL ); - CAMELLIA_VALIDATE_RET( key != NULL ); - RK = ctx->rk; memset( t, 0, 64 ); @@ -431,8 +427,6 @@ int mbedtls_camellia_setkey_dec( mbedtls_camellia_context *ctx, mbedtls_camellia_context cty; uint32_t *RK; uint32_t *SK; - CAMELLIA_VALIDATE_RET( ctx != NULL ); - CAMELLIA_VALIDATE_RET( key != NULL ); mbedtls_camellia_init( &cty ); @@ -480,11 +474,8 @@ int mbedtls_camellia_crypt_ecb( mbedtls_camellia_context *ctx, { int NR; uint32_t *RK, X[4]; - CAMELLIA_VALIDATE_RET( ctx != NULL ); CAMELLIA_VALIDATE_RET( mode == MBEDTLS_CAMELLIA_ENCRYPT || mode == MBEDTLS_CAMELLIA_DECRYPT ); - CAMELLIA_VALIDATE_RET( input != NULL ); - CAMELLIA_VALIDATE_RET( output != NULL ); ( (void) mode ); @@ -550,12 +541,8 @@ int mbedtls_camellia_crypt_cbc( mbedtls_camellia_context *ctx, { int i; unsigned char temp[16]; - CAMELLIA_VALIDATE_RET( ctx != NULL ); CAMELLIA_VALIDATE_RET( mode == MBEDTLS_CAMELLIA_ENCRYPT || mode == MBEDTLS_CAMELLIA_DECRYPT ); - CAMELLIA_VALIDATE_RET( iv != NULL ); - CAMELLIA_VALIDATE_RET( length == 0 || input != NULL ); - CAMELLIA_VALIDATE_RET( length == 0 || output != NULL ); if( length % 16 ) return( MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH ); @@ -611,13 +598,8 @@ int mbedtls_camellia_crypt_cfb128( mbedtls_camellia_context *ctx, { int c; size_t n; - CAMELLIA_VALIDATE_RET( ctx != NULL ); CAMELLIA_VALIDATE_RET( mode == MBEDTLS_CAMELLIA_ENCRYPT || mode == MBEDTLS_CAMELLIA_DECRYPT ); - CAMELLIA_VALIDATE_RET( iv != NULL ); - CAMELLIA_VALIDATE_RET( iv_off != NULL ); - CAMELLIA_VALIDATE_RET( length == 0 || input != NULL ); - CAMELLIA_VALIDATE_RET( length == 0 || output != NULL ); n = *iv_off; if( n >= 16 ) @@ -670,12 +652,6 @@ int mbedtls_camellia_crypt_ctr( mbedtls_camellia_context *ctx, { int c, i; size_t n; - CAMELLIA_VALIDATE_RET( ctx != NULL ); - CAMELLIA_VALIDATE_RET( nonce_counter != NULL ); - CAMELLIA_VALIDATE_RET( stream_block != NULL ); - CAMELLIA_VALIDATE_RET( nc_off != NULL ); - CAMELLIA_VALIDATE_RET( length == 0 || input != NULL ); - CAMELLIA_VALIDATE_RET( length == 0 || output != NULL ); n = *nc_off; if( n >= 16 ) From 1fd7f9854659992d20eb6670a6b50a89e009ca1a Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 15:31:57 +0100 Subject: [PATCH 0134/1028] Re-introduce ENUM validation in camellia.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/camellia.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/library/camellia.c b/library/camellia.c index 75059749d3..c29e6c1101 100644 --- a/library/camellia.c +++ b/library/camellia.c @@ -43,12 +43,6 @@ #if !defined(MBEDTLS_CAMELLIA_ALT) -/* Parameter validation macros */ -#define CAMELLIA_VALIDATE_RET( cond ) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA ) -#define CAMELLIA_VALIDATE( cond ) \ - MBEDTLS_INTERNAL_VALIDATE( cond ) - static const unsigned char SIGMA_CHARS[6][8] = { { 0xa0, 0x9e, 0x66, 0x7f, 0x3b, 0xcc, 0x90, 0x8b }, @@ -474,8 +468,8 @@ int mbedtls_camellia_crypt_ecb( mbedtls_camellia_context *ctx, { int NR; uint32_t *RK, X[4]; - CAMELLIA_VALIDATE_RET( mode == MBEDTLS_CAMELLIA_ENCRYPT || - mode == MBEDTLS_CAMELLIA_DECRYPT ); + if( mode != MBEDTLS_CAMELLIA_ENCRYPT && mode != MBEDTLS_CAMELLIA_DECRYPT ) + return MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA; ( (void) mode ); @@ -541,8 +535,8 @@ int mbedtls_camellia_crypt_cbc( mbedtls_camellia_context *ctx, { int i; unsigned char temp[16]; - CAMELLIA_VALIDATE_RET( mode == MBEDTLS_CAMELLIA_ENCRYPT || - mode == MBEDTLS_CAMELLIA_DECRYPT ); + if( mode != MBEDTLS_CAMELLIA_ENCRYPT && mode != MBEDTLS_CAMELLIA_DECRYPT ) + return MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA; if( length % 16 ) return( MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH ); @@ -598,8 +592,8 @@ int mbedtls_camellia_crypt_cfb128( mbedtls_camellia_context *ctx, { int c; size_t n; - CAMELLIA_VALIDATE_RET( mode == MBEDTLS_CAMELLIA_ENCRYPT || - mode == MBEDTLS_CAMELLIA_DECRYPT ); + if( mode != MBEDTLS_CAMELLIA_ENCRYPT && mode != MBEDTLS_CAMELLIA_DECRYPT ) + return MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA; n = *iv_off; if( n >= 16 ) From c7d722081499f24d765f01c09c7090b3c4345bd6 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 29 Jul 2022 14:45:04 +0100 Subject: [PATCH 0135/1028] Enabled invalid param test in camellia Signed-off-by: Tuvshinzaya Erdenekhuu --- tests/suites/test_suite_camellia.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_camellia.function b/tests/suites/test_suite_camellia.function index cc18d5b381..3d318c861f 100644 --- a/tests/suites/test_suite_camellia.function +++ b/tests/suites/test_suite_camellia.function @@ -7,7 +7,7 @@ * END_DEPENDENCIES */ -/* BEGIN_CASE depends_on:NOT_DEFINED */ +/* BEGIN_CASE */ void camellia_invalid_param( ) { mbedtls_camellia_context ctx; From ce8908ed0a795dfa87a1abfb58c29abb2f65475a Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 15:31:57 +0100 Subject: [PATCH 0136/1028] Remove NULL pointer validation in chacha20.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/chacha20.c | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/library/chacha20.c b/library/chacha20.c index 658f046901..f6d6e25223 100644 --- a/library/chacha20.c +++ b/library/chacha20.c @@ -48,12 +48,6 @@ #define inline __inline #endif -/* Parameter validation macros */ -#define CHACHA20_VALIDATE_RET( cond ) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA ) -#define CHACHA20_VALIDATE( cond ) \ - MBEDTLS_INTERNAL_VALIDATE( cond ) - #define ROTL32( value, amount ) \ ( (uint32_t) ( (value) << (amount) ) | ( (value) >> ( 32 - (amount) ) ) ) @@ -172,8 +166,6 @@ static void chacha20_block( const uint32_t initial_state[16], void mbedtls_chacha20_init( mbedtls_chacha20_context *ctx ) { - CHACHA20_VALIDATE( ctx != NULL ); - mbedtls_platform_zeroize( ctx->state, sizeof( ctx->state ) ); mbedtls_platform_zeroize( ctx->keystream8, sizeof( ctx->keystream8 ) ); @@ -192,9 +184,6 @@ void mbedtls_chacha20_free( mbedtls_chacha20_context *ctx ) int mbedtls_chacha20_setkey( mbedtls_chacha20_context *ctx, const unsigned char key[32] ) { - CHACHA20_VALIDATE_RET( ctx != NULL ); - CHACHA20_VALIDATE_RET( key != NULL ); - /* ChaCha20 constants - the string "expand 32-byte k" */ ctx->state[0] = 0x61707865; ctx->state[1] = 0x3320646e; @@ -218,9 +207,6 @@ int mbedtls_chacha20_starts( mbedtls_chacha20_context* ctx, const unsigned char nonce[12], uint32_t counter ) { - CHACHA20_VALIDATE_RET( ctx != NULL ); - CHACHA20_VALIDATE_RET( nonce != NULL ); - /* Counter */ ctx->state[12] = counter; @@ -245,10 +231,6 @@ int mbedtls_chacha20_update( mbedtls_chacha20_context *ctx, size_t offset = 0U; size_t i; - CHACHA20_VALIDATE_RET( ctx != NULL ); - CHACHA20_VALIDATE_RET( size == 0 || input != NULL ); - CHACHA20_VALIDATE_RET( size == 0 || output != NULL ); - /* Use leftover keystream bytes, if available */ while( size > 0U && ctx->keystream_bytes_used < CHACHA20_BLOCK_SIZE_BYTES ) { @@ -312,11 +294,6 @@ int mbedtls_chacha20_crypt( const unsigned char key[32], mbedtls_chacha20_context ctx; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - CHACHA20_VALIDATE_RET( key != NULL ); - CHACHA20_VALIDATE_RET( nonce != NULL ); - CHACHA20_VALIDATE_RET( data_len == 0 || input != NULL ); - CHACHA20_VALIDATE_RET( data_len == 0 || output != NULL ); - mbedtls_chacha20_init( &ctx ); ret = mbedtls_chacha20_setkey( &ctx, key ); From 5ce8e529078c9fe7d8694255d8d701f0daec6314 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 15:31:57 +0100 Subject: [PATCH 0137/1028] Remove NULL pointer validation in cipher.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/cipher.c | 42 ------------------------------------------ 1 file changed, 42 deletions(-) diff --git a/library/cipher.c b/library/cipher.c index 0bac4ee993..3fbb967303 100644 --- a/library/cipher.c +++ b/library/cipher.c @@ -143,7 +143,6 @@ const mbedtls_cipher_info_t *mbedtls_cipher_info_from_values( void mbedtls_cipher_init( mbedtls_cipher_context_t *ctx ) { - CIPHER_VALIDATE( ctx != NULL ); memset( ctx, 0, sizeof( mbedtls_cipher_context_t ) ); } @@ -193,7 +192,6 @@ void mbedtls_cipher_free( mbedtls_cipher_context_t *ctx ) int mbedtls_cipher_setup( mbedtls_cipher_context_t *ctx, const mbedtls_cipher_info_t *cipher_info ) { - CIPHER_VALIDATE_RET( ctx != NULL ); if( cipher_info == NULL ) return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); @@ -257,8 +255,6 @@ int mbedtls_cipher_setkey( mbedtls_cipher_context_t *ctx, int key_bitlen, const mbedtls_operation_t operation ) { - CIPHER_VALIDATE_RET( ctx != NULL ); - CIPHER_VALIDATE_RET( key != NULL ); CIPHER_VALIDATE_RET( operation == MBEDTLS_ENCRYPT || operation == MBEDTLS_DECRYPT ); if( ctx->cipher_info == NULL ) @@ -356,8 +352,6 @@ int mbedtls_cipher_set_iv( mbedtls_cipher_context_t *ctx, { size_t actual_iv_size; - CIPHER_VALIDATE_RET( ctx != NULL ); - CIPHER_VALIDATE_RET( iv_len == 0 || iv != NULL ); if( ctx->cipher_info == NULL ) return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); #if defined(MBEDTLS_USE_PSA_CRYPTO) @@ -453,7 +447,6 @@ int mbedtls_cipher_set_iv( mbedtls_cipher_context_t *ctx, int mbedtls_cipher_reset( mbedtls_cipher_context_t *ctx ) { - CIPHER_VALIDATE_RET( ctx != NULL ); if( ctx->cipher_info == NULL ) return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); @@ -475,8 +468,6 @@ int mbedtls_cipher_reset( mbedtls_cipher_context_t *ctx ) int mbedtls_cipher_update_ad( mbedtls_cipher_context_t *ctx, const unsigned char *ad, size_t ad_len ) { - CIPHER_VALIDATE_RET( ctx != NULL ); - CIPHER_VALIDATE_RET( ad_len == 0 || ad != NULL ); if( ctx->cipher_info == NULL ) return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); @@ -529,10 +520,6 @@ int mbedtls_cipher_update( mbedtls_cipher_context_t *ctx, const unsigned char *i int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t block_size; - CIPHER_VALIDATE_RET( ctx != NULL ); - CIPHER_VALIDATE_RET( ilen == 0 || input != NULL ); - CIPHER_VALIDATE_RET( output != NULL ); - CIPHER_VALIDATE_RET( olen != NULL ); if( ctx->cipher_info == NULL ) return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); @@ -952,9 +939,6 @@ static int get_no_padding( unsigned char *input, size_t input_len, int mbedtls_cipher_finish( mbedtls_cipher_context_t *ctx, unsigned char *output, size_t *olen ) { - CIPHER_VALIDATE_RET( ctx != NULL ); - CIPHER_VALIDATE_RET( output != NULL ); - CIPHER_VALIDATE_RET( olen != NULL ); if( ctx->cipher_info == NULL ) return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); @@ -1054,8 +1038,6 @@ int mbedtls_cipher_finish( mbedtls_cipher_context_t *ctx, int mbedtls_cipher_set_padding_mode( mbedtls_cipher_context_t *ctx, mbedtls_cipher_padding_t mode ) { - CIPHER_VALIDATE_RET( ctx != NULL ); - if( NULL == ctx->cipher_info || MBEDTLS_MODE_CBC != ctx->cipher_info->mode ) { return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); @@ -1117,8 +1099,6 @@ int mbedtls_cipher_set_padding_mode( mbedtls_cipher_context_t *ctx, int mbedtls_cipher_write_tag( mbedtls_cipher_context_t *ctx, unsigned char *tag, size_t tag_len ) { - CIPHER_VALIDATE_RET( ctx != NULL ); - CIPHER_VALIDATE_RET( tag_len == 0 || tag != NULL ); if( ctx->cipher_info == NULL ) return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); @@ -1168,8 +1148,6 @@ int mbedtls_cipher_check_tag( mbedtls_cipher_context_t *ctx, unsigned char check_tag[16]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - CIPHER_VALIDATE_RET( ctx != NULL ); - CIPHER_VALIDATE_RET( tag_len == 0 || tag != NULL ); if( ctx->cipher_info == NULL ) return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); @@ -1261,12 +1239,6 @@ int mbedtls_cipher_crypt( mbedtls_cipher_context_t *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t finish_olen; - CIPHER_VALIDATE_RET( ctx != NULL ); - CIPHER_VALIDATE_RET( iv_len == 0 || iv != NULL ); - CIPHER_VALIDATE_RET( ilen == 0 || input != NULL ); - CIPHER_VALIDATE_RET( output != NULL ); - CIPHER_VALIDATE_RET( olen != NULL ); - #if defined(MBEDTLS_USE_PSA_CRYPTO) if( ctx->psa_enabled == 1 ) { @@ -1542,13 +1514,6 @@ int mbedtls_cipher_auth_encrypt_ext( mbedtls_cipher_context_t *ctx, unsigned char *output, size_t output_len, size_t *olen, size_t tag_len ) { - CIPHER_VALIDATE_RET( ctx != NULL ); - CIPHER_VALIDATE_RET( iv_len == 0 || iv != NULL ); - CIPHER_VALIDATE_RET( ad_len == 0 || ad != NULL ); - CIPHER_VALIDATE_RET( ilen == 0 || input != NULL ); - CIPHER_VALIDATE_RET( output != NULL ); - CIPHER_VALIDATE_RET( olen != NULL ); - #if defined(MBEDTLS_NIST_KW_C) if( #if defined(MBEDTLS_USE_PSA_CRYPTO) @@ -1598,13 +1563,6 @@ int mbedtls_cipher_auth_decrypt_ext( mbedtls_cipher_context_t *ctx, unsigned char *output, size_t output_len, size_t *olen, size_t tag_len ) { - CIPHER_VALIDATE_RET( ctx != NULL ); - CIPHER_VALIDATE_RET( iv_len == 0 || iv != NULL ); - CIPHER_VALIDATE_RET( ad_len == 0 || ad != NULL ); - CIPHER_VALIDATE_RET( ilen == 0 || input != NULL ); - CIPHER_VALIDATE_RET( output_len == 0 || output != NULL ); - CIPHER_VALIDATE_RET( olen != NULL ); - #if defined(MBEDTLS_NIST_KW_C) if( #if defined(MBEDTLS_USE_PSA_CRYPTO) From 80a6af6ab59f88d6ebd01287135ccb7bc54d04c8 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 15:31:57 +0100 Subject: [PATCH 0138/1028] Re-introduce ENUM validation in cipher.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/cipher.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/library/cipher.c b/library/cipher.c index 3fbb967303..752d1fea2c 100644 --- a/library/cipher.c +++ b/library/cipher.c @@ -70,11 +70,6 @@ #define mbedtls_free free #endif -#define CIPHER_VALIDATE_RET( cond ) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ) -#define CIPHER_VALIDATE( cond ) \ - MBEDTLS_INTERNAL_VALIDATE( cond ) - static int supported_init = 0; const int *mbedtls_cipher_list( void ) @@ -255,8 +250,8 @@ int mbedtls_cipher_setkey( mbedtls_cipher_context_t *ctx, int key_bitlen, const mbedtls_operation_t operation ) { - CIPHER_VALIDATE_RET( operation == MBEDTLS_ENCRYPT || - operation == MBEDTLS_DECRYPT ); + if( operation != MBEDTLS_ENCRYPT && operation != MBEDTLS_DECRYPT ) + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; if( ctx->cipher_info == NULL ) return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); From 6c68927948b2bccec993ca4de62b850f7e48b8c3 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 29 Jul 2022 14:45:55 +0100 Subject: [PATCH 0139/1028] Enabled invalid param test for cipher Signed-off-by: Tuvshinzaya Erdenekhuu --- tests/suites/test_suite_cipher.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_cipher.function b/tests/suites/test_suite_cipher.function index dd5226c1ab..70a07dbf95 100644 --- a/tests/suites/test_suite_cipher.function +++ b/tests/suites/test_suite_cipher.function @@ -304,7 +304,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:NOT_DEFINED */ +/* BEGIN_CASE */ void cipher_invalid_param_conditional( ) { mbedtls_cipher_context_t valid_ctx; From 505ce0b37edec3d63855ca39a6db17f15ee863de Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 15:31:57 +0100 Subject: [PATCH 0140/1028] Remove NULL pointer validation in gcm.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/gcm.c | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/library/gcm.c b/library/gcm.c index 6d07f8787f..37f07f8239 100644 --- a/library/gcm.c +++ b/library/gcm.c @@ -63,7 +63,6 @@ */ void mbedtls_gcm_init( mbedtls_gcm_context *ctx ) { - GCM_VALIDATE( ctx != NULL ); memset( ctx, 0, sizeof( mbedtls_gcm_context ) ); } @@ -143,8 +142,6 @@ int mbedtls_gcm_setkey( mbedtls_gcm_context *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const mbedtls_cipher_info_t *cipher_info; - GCM_VALIDATE_RET( ctx != NULL ); - GCM_VALIDATE_RET( key != NULL ); GCM_VALIDATE_RET( keybits == 128 || keybits == 192 || keybits == 256 ); cipher_info = mbedtls_cipher_info_from_values( cipher, keybits, @@ -256,9 +253,6 @@ int mbedtls_gcm_starts( mbedtls_gcm_context *ctx, size_t use_len, olen = 0; uint64_t iv_bits; - GCM_VALIDATE_RET( ctx != NULL ); - GCM_VALIDATE_RET( iv != NULL ); - /* IV is limited to 2^64 bits, so 2^61 bytes */ /* IV is not allowed to be zero length */ if( iv_len == 0 || (uint64_t) iv_len >> 61 != 0 ) @@ -334,8 +328,6 @@ int mbedtls_gcm_update_ad( mbedtls_gcm_context *ctx, const unsigned char *p; size_t use_len, i, offset; - GCM_VALIDATE_RET( add_len == 0 || add != NULL ); - /* IV is limited to 2^64 bits, so 2^61 bytes */ if( (uint64_t) add_len >> 61 != 0 ) return( MBEDTLS_ERR_GCM_BAD_INPUT ); @@ -434,7 +426,6 @@ int mbedtls_gcm_update( mbedtls_gcm_context *ctx, if( output_size < input_length ) return( MBEDTLS_ERR_GCM_BUFFER_TOO_SMALL ); - GCM_VALIDATE_RET( output_length != NULL ); *output_length = input_length; /* Exit early if input_length==0 so that we don't do any pointer arithmetic @@ -444,10 +435,6 @@ int mbedtls_gcm_update( mbedtls_gcm_context *ctx, if( input_length == 0 ) return( 0 ); - GCM_VALIDATE_RET( ctx != NULL ); - GCM_VALIDATE_RET( input != NULL ); - GCM_VALIDATE_RET( output != NULL ); - if( output > input && (size_t) ( output - input ) < input_length ) return( MBEDTLS_ERR_GCM_BAD_INPUT ); @@ -519,9 +506,6 @@ int mbedtls_gcm_finish( mbedtls_gcm_context *ctx, uint64_t orig_len; uint64_t orig_add_len; - GCM_VALIDATE_RET( ctx != NULL ); - GCM_VALIDATE_RET( tag != NULL ); - /* We never pass any output in finish(). The output parameter exists only * for the sake of alternative implementations. */ (void) output; @@ -580,13 +564,6 @@ int mbedtls_gcm_crypt_and_tag( mbedtls_gcm_context *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t olen; - GCM_VALIDATE_RET( ctx != NULL ); - GCM_VALIDATE_RET( iv != NULL ); - GCM_VALIDATE_RET( add_len == 0 || add != NULL ); - GCM_VALIDATE_RET( length == 0 || input != NULL ); - GCM_VALIDATE_RET( length == 0 || output != NULL ); - GCM_VALIDATE_RET( tag != NULL ); - if( ( ret = mbedtls_gcm_starts( ctx, mode, iv, iv_len ) ) != 0 ) return( ret ); @@ -619,13 +596,6 @@ int mbedtls_gcm_auth_decrypt( mbedtls_gcm_context *ctx, size_t i; int diff; - GCM_VALIDATE_RET( ctx != NULL ); - GCM_VALIDATE_RET( iv != NULL ); - GCM_VALIDATE_RET( add_len == 0 || add != NULL ); - GCM_VALIDATE_RET( tag != NULL ); - GCM_VALIDATE_RET( length == 0 || input != NULL ); - GCM_VALIDATE_RET( length == 0 || output != NULL ); - if( ( ret = mbedtls_gcm_crypt_and_tag( ctx, MBEDTLS_GCM_DECRYPT, length, iv, iv_len, add, add_len, input, output, tag_len, check_tag ) ) != 0 ) From c6b8a6704e9dc4691c2f941bf1fc25e5bd55f273 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 15:31:57 +0100 Subject: [PATCH 0141/1028] Re-introduce ENUM validation in gcm.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/gcm.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/library/gcm.c b/library/gcm.c index 37f07f8239..ac329e3b6c 100644 --- a/library/gcm.c +++ b/library/gcm.c @@ -52,12 +52,6 @@ #if !defined(MBEDTLS_GCM_ALT) -/* Parameter validation macros */ -#define GCM_VALIDATE_RET( cond ) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_GCM_BAD_INPUT ) -#define GCM_VALIDATE( cond ) \ - MBEDTLS_INTERNAL_VALIDATE( cond ) - /* * Initialize a context */ @@ -142,7 +136,8 @@ int mbedtls_gcm_setkey( mbedtls_gcm_context *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const mbedtls_cipher_info_t *cipher_info; - GCM_VALIDATE_RET( keybits == 128 || keybits == 192 || keybits == 256 ); + if( keybits != 128 && keybits != 192 && keybits != 256 ) + return MBEDTLS_ERR_GCM_BAD_INPUT; cipher_info = mbedtls_cipher_info_from_values( cipher, keybits, MBEDTLS_MODE_ECB ); From 104eb7f4a8b18b7df88421084edf2ebfdec8baee Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 29 Jul 2022 14:48:21 +0100 Subject: [PATCH 0142/1028] Enabled invalid param test for gcm Signed-off-by: Tuvshinzaya Erdenekhuu --- tests/suites/test_suite_gcm.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_gcm.function b/tests/suites/test_suite_gcm.function index 5696679ea9..ea8d6a03ad 100644 --- a/tests/suites/test_suite_gcm.function +++ b/tests/suites/test_suite_gcm.function @@ -411,7 +411,7 @@ void gcm_encrypt_and_verify_no_ad_no_cipher( int cipher_id, } /* END_CASE */ -/* BEGIN_CASE depends_on:NOT_DEFINED */ +/* BEGIN_CASE */ void gcm_invalid_param( ) { mbedtls_gcm_context ctx; From d5ebedffd0f926629f542ad75c173385b1d37ebc Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Tue, 2 Aug 2022 10:12:37 +0100 Subject: [PATCH 0143/1028] Removed unused variable in cipher test Signed-off-by: Tuvshinzaya Erdenekhuu --- tests/suites/test_suite_cipher.function | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/suites/test_suite_cipher.function b/tests/suites/test_suite_cipher.function index 70a07dbf95..37468df71a 100644 --- a/tests/suites/test_suite_cipher.function +++ b/tests/suites/test_suite_cipher.function @@ -313,8 +313,6 @@ void cipher_invalid_param_conditional( ) unsigned char valid_buffer[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }; int valid_size = sizeof(valid_buffer); int valid_bitlen = valid_size * 8; - const mbedtls_cipher_info_t *valid_info = mbedtls_cipher_info_from_type( - *( mbedtls_cipher_list() ) ); TEST_EQUAL( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA, From 6b150ad8fa696688eeedf85fd4150da379fd77c6 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 15:59:19 +0100 Subject: [PATCH 0144/1028] Remove NULL pointer validation in sha1.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/sha1.c | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/library/sha1.c b/library/sha1.c index 6fc9371231..56532b1248 100644 --- a/library/sha1.c +++ b/library/sha1.c @@ -41,17 +41,10 @@ #endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ -#define SHA1_VALIDATE_RET(cond) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_SHA1_BAD_INPUT_DATA ) - -#define SHA1_VALIDATE(cond) MBEDTLS_INTERNAL_VALIDATE( cond ) - #if !defined(MBEDTLS_SHA1_ALT) void mbedtls_sha1_init( mbedtls_sha1_context *ctx ) { - SHA1_VALIDATE( ctx != NULL ); - memset( ctx, 0, sizeof( mbedtls_sha1_context ) ); } @@ -66,9 +59,6 @@ void mbedtls_sha1_free( mbedtls_sha1_context *ctx ) void mbedtls_sha1_clone( mbedtls_sha1_context *dst, const mbedtls_sha1_context *src ) { - SHA1_VALIDATE( dst != NULL ); - SHA1_VALIDATE( src != NULL ); - *dst = *src; } @@ -77,8 +67,6 @@ void mbedtls_sha1_clone( mbedtls_sha1_context *dst, */ int mbedtls_sha1_starts( mbedtls_sha1_context *ctx ) { - SHA1_VALIDATE_RET( ctx != NULL ); - ctx->total[0] = 0; ctx->total[1] = 0; @@ -100,9 +88,6 @@ int mbedtls_internal_sha1_process( mbedtls_sha1_context *ctx, uint32_t temp, W[16], A, B, C, D, E; } local; - SHA1_VALIDATE_RET( ctx != NULL ); - SHA1_VALIDATE_RET( (const unsigned char *)data != NULL ); - local.W[ 0] = MBEDTLS_GET_UINT32_BE( data, 0 ); local.W[ 1] = MBEDTLS_GET_UINT32_BE( data, 4 ); local.W[ 2] = MBEDTLS_GET_UINT32_BE( data, 8 ); @@ -277,9 +262,6 @@ int mbedtls_sha1_update( mbedtls_sha1_context *ctx, size_t fill; uint32_t left; - SHA1_VALIDATE_RET( ctx != NULL ); - SHA1_VALIDATE_RET( ilen == 0 || input != NULL ); - if( ilen == 0 ) return( 0 ); @@ -329,9 +311,6 @@ int mbedtls_sha1_finish( mbedtls_sha1_context *ctx, uint32_t used; uint32_t high, low; - SHA1_VALIDATE_RET( ctx != NULL ); - SHA1_VALIDATE_RET( (unsigned char *)output != NULL ); - /* * Add padding: 0x80 then 0x00 until 8 bytes remain for the length */ @@ -392,9 +371,6 @@ int mbedtls_sha1( const unsigned char *input, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_sha1_context ctx; - SHA1_VALIDATE_RET( ilen == 0 || input != NULL ); - SHA1_VALIDATE_RET( (unsigned char *)output != NULL ); - mbedtls_sha1_init( &ctx ); if( ( ret = mbedtls_sha1_starts( &ctx ) ) != 0 ) From df2f560316d60795ab7a477c02b121a31fe585f8 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 15:59:19 +0100 Subject: [PATCH 0145/1028] Remove NULL pointer validation in sha256.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/sha256.c | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/library/sha256.c b/library/sha256.c index ac15ef8d1d..24be8eac2b 100644 --- a/library/sha256.c +++ b/library/sha256.c @@ -159,8 +159,6 @@ static int mbedtls_a64_crypto_sha256_determine_support( void ) void mbedtls_sha256_init( mbedtls_sha256_context *ctx ) { - SHA256_VALIDATE( ctx != NULL ); - memset( ctx, 0, sizeof( mbedtls_sha256_context ) ); } @@ -175,9 +173,6 @@ void mbedtls_sha256_free( mbedtls_sha256_context *ctx ) void mbedtls_sha256_clone( mbedtls_sha256_context *dst, const mbedtls_sha256_context *src ) { - SHA256_VALIDATE( dst != NULL ); - SHA256_VALIDATE( src != NULL ); - *dst = *src; } @@ -186,8 +181,6 @@ void mbedtls_sha256_clone( mbedtls_sha256_context *dst, */ int mbedtls_sha256_starts( mbedtls_sha256_context *ctx, int is224 ) { - SHA256_VALIDATE_RET( ctx != NULL ); - #if defined(MBEDTLS_SHA224_C) SHA256_VALIDATE_RET( is224 == 0 || is224 == 1 ); #else @@ -427,9 +420,6 @@ int mbedtls_internal_sha256_process_c( mbedtls_sha256_context *ctx, unsigned int i; - SHA256_VALIDATE_RET( ctx != NULL ); - SHA256_VALIDATE_RET( (const unsigned char *)data != NULL ); - for( i = 0; i < 8; i++ ) local.A[i] = ctx->state[i]; @@ -579,9 +569,6 @@ int mbedtls_sha256_update( mbedtls_sha256_context *ctx, size_t fill; uint32_t left; - SHA256_VALIDATE_RET( ctx != NULL ); - SHA256_VALIDATE_RET( ilen == 0 || input != NULL ); - if( ilen == 0 ) return( 0 ); @@ -633,9 +620,6 @@ int mbedtls_sha256_finish( mbedtls_sha256_context *ctx, uint32_t used; uint32_t high, low; - SHA256_VALIDATE_RET( ctx != NULL ); - SHA256_VALIDATE_RET( (unsigned char *)output != NULL ); - /* * Add padding: 0x80 then 0x00 until 8 bytes remain for the length */ @@ -710,9 +694,6 @@ int mbedtls_sha256( const unsigned char *input, SHA256_VALIDATE_RET( is224 == 0 ); #endif - SHA256_VALIDATE_RET( ilen == 0 || input != NULL ); - SHA256_VALIDATE_RET( (unsigned char *)output != NULL ); - mbedtls_sha256_init( &ctx ); if( ( ret = mbedtls_sha256_starts( &ctx, is224 ) ) != 0 ) From 696dfb6b1eda07a9f032bc6f8664b001899be5ec Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 15:59:19 +0100 Subject: [PATCH 0146/1028] Re-introduce ENUM validation in sha256.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/sha256.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/library/sha256.c b/library/sha256.c index 24be8eac2b..4819ba3ad1 100644 --- a/library/sha256.c +++ b/library/sha256.c @@ -149,10 +149,6 @@ static int mbedtls_a64_crypto_sha256_determine_support( void ) #endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT */ -#define SHA256_VALIDATE_RET(cond) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_SHA256_BAD_INPUT_DATA ) -#define SHA256_VALIDATE(cond) MBEDTLS_INTERNAL_VALIDATE( cond ) - #if !defined(MBEDTLS_SHA256_ALT) #define SHA256_BLOCK_SIZE 64 @@ -182,9 +178,11 @@ void mbedtls_sha256_clone( mbedtls_sha256_context *dst, int mbedtls_sha256_starts( mbedtls_sha256_context *ctx, int is224 ) { #if defined(MBEDTLS_SHA224_C) - SHA256_VALIDATE_RET( is224 == 0 || is224 == 1 ); + if( is224 != 0 && is224 != 1 ) + return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA; #else - SHA256_VALIDATE_RET( is224 == 0 ); + if( is224 != 0 ) + return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA; #endif ctx->total[0] = 0; @@ -689,9 +687,11 @@ int mbedtls_sha256( const unsigned char *input, mbedtls_sha256_context ctx; #if defined(MBEDTLS_SHA224_C) - SHA256_VALIDATE_RET( is224 == 0 || is224 == 1 ); + if( is224 != 0 && is224 != 1 ) + return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA; #else - SHA256_VALIDATE_RET( is224 == 0 ); + if( is224 != 0 ) + return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA; #endif mbedtls_sha256_init( &ctx ); From 1db192bc5a1cc2b4c6f25c94684eedee3b4c9c0f Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 29 Jul 2022 15:44:38 +0100 Subject: [PATCH 0147/1028] Enable invalid param test in sha256 Signed-off-by: Tuvshinzaya Erdenekhuu --- tests/suites/test_suite_shax.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_shax.function b/tests/suites/test_suite_shax.function index 95d45baa40..58d0254185 100644 --- a/tests/suites/test_suite_shax.function +++ b/tests/suites/test_suite_shax.function @@ -18,7 +18,7 @@ void mbedtls_sha1( data_t * src_str, data_t * hash ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C:NOT_DEFINED */ +/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C */ void sha256_invalid_param( ) { mbedtls_sha256_context ctx; From 3446c2603a1138111f6a4b55ec0b8daea7a398b9 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 15:59:19 +0100 Subject: [PATCH 0148/1028] Remove NULL pointer validation in sha512.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/sha512.c | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/library/sha512.c b/library/sha512.c index be03ec3316..c575bbd10e 100644 --- a/library/sha512.c +++ b/library/sha512.c @@ -183,8 +183,6 @@ static void sha512_put_uint64_be( uint64_t n, unsigned char *b, uint8_t i ) void mbedtls_sha512_init( mbedtls_sha512_context *ctx ) { - SHA512_VALIDATE( ctx != NULL ); - memset( ctx, 0, sizeof( mbedtls_sha512_context ) ); } @@ -199,9 +197,6 @@ void mbedtls_sha512_free( mbedtls_sha512_context *ctx ) void mbedtls_sha512_clone( mbedtls_sha512_context *dst, const mbedtls_sha512_context *src ) { - SHA512_VALIDATE( dst != NULL ); - SHA512_VALIDATE( src != NULL ); - *dst = *src; } @@ -210,7 +205,6 @@ void mbedtls_sha512_clone( mbedtls_sha512_context *dst, */ int mbedtls_sha512_starts( mbedtls_sha512_context *ctx, int is384 ) { - SHA512_VALIDATE_RET( ctx != NULL ); #if defined(MBEDTLS_SHA384_C) SHA512_VALIDATE_RET( is384 == 0 || is384 == 1 ); #else @@ -569,9 +563,6 @@ int mbedtls_internal_sha512_process_c( mbedtls_sha512_context *ctx, uint64_t A[8]; } local; - SHA512_VALIDATE_RET( ctx != NULL ); - SHA512_VALIDATE_RET( (const unsigned char *)data != NULL ); - #define SHR(x,n) ((x) >> (n)) #define ROTR(x,n) (SHR((x),(n)) | ((x) << (64 - (n)))) @@ -735,9 +726,6 @@ int mbedtls_sha512_update( mbedtls_sha512_context *ctx, size_t fill; unsigned int left; - SHA512_VALIDATE_RET( ctx != NULL ); - SHA512_VALIDATE_RET( ilen == 0 || input != NULL ); - if( ilen == 0 ) return( 0 ); @@ -788,9 +776,6 @@ int mbedtls_sha512_finish( mbedtls_sha512_context *ctx, unsigned used; uint64_t high, low; - SHA512_VALIDATE_RET( ctx != NULL ); - SHA512_VALIDATE_RET( (unsigned char *)output != NULL ); - /* * Add padding: 0x80 then 0x00 until 16 bytes remain for the length */ @@ -866,8 +851,6 @@ int mbedtls_sha512( const unsigned char *input, #else SHA512_VALIDATE_RET( is384 == 0 ); #endif - SHA512_VALIDATE_RET( ilen == 0 || input != NULL ); - SHA512_VALIDATE_RET( (unsigned char *)output != NULL ); mbedtls_sha512_init( &ctx ); From 5893ab02b6628b571bb257f1d6183660b3e9c876 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 15:59:19 +0100 Subject: [PATCH 0149/1028] Re-introduce ENUM validation in sha512.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/sha512.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/library/sha512.c b/library/sha512.c index c575bbd10e..f96580db52 100644 --- a/library/sha512.c +++ b/library/sha512.c @@ -164,10 +164,6 @@ static int mbedtls_a64_crypto_sha512_determine_support( void ) #endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT */ -#define SHA512_VALIDATE_RET(cond) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_SHA512_BAD_INPUT_DATA ) -#define SHA512_VALIDATE(cond) MBEDTLS_INTERNAL_VALIDATE( cond ) - #if !defined(MBEDTLS_SHA512_ALT) #define SHA512_BLOCK_SIZE 128 @@ -206,9 +202,11 @@ void mbedtls_sha512_clone( mbedtls_sha512_context *dst, int mbedtls_sha512_starts( mbedtls_sha512_context *ctx, int is384 ) { #if defined(MBEDTLS_SHA384_C) - SHA512_VALIDATE_RET( is384 == 0 || is384 == 1 ); + if( is384 != 0 && is384 != 1 ) + return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA; #else - SHA512_VALIDATE_RET( is384 == 0 ); + if( is384 != 0 ) + return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA; #endif ctx->total[0] = 0; @@ -847,9 +845,11 @@ int mbedtls_sha512( const unsigned char *input, mbedtls_sha512_context ctx; #if defined(MBEDTLS_SHA384_C) - SHA512_VALIDATE_RET( is384 == 0 || is384 == 1 ); + if( is384 != 0 && is384 != 1 ) + return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA; #else - SHA512_VALIDATE_RET( is384 == 0 ); + if( is384 != 0 ) + return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA; #endif mbedtls_sha512_init( &ctx ); From ca6fde2e1f3e60187d81d3130ed8c2e0d916f7df Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 29 Jul 2022 15:43:04 +0100 Subject: [PATCH 0150/1028] Enable invalid param test in sha512 Signed-off-by: Tuvshinzaya Erdenekhuu --- tests/suites/test_suite_shax.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_shax.function b/tests/suites/test_suite_shax.function index 58d0254185..6072712a6a 100644 --- a/tests/suites/test_suite_shax.function +++ b/tests/suites/test_suite_shax.function @@ -67,7 +67,7 @@ void mbedtls_sha256( data_t * src_str, data_t * hash ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SHA512_C:NOT_DEFINED */ +/* BEGIN_CASE depends_on:MBEDTLS_SHA512_C */ void sha512_invalid_param( ) { mbedtls_sha512_context ctx; From 61f1372b8c779852245d9f910dba1d0675f8e227 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 29 Jul 2022 16:15:03 +0100 Subject: [PATCH 0151/1028] Remove unused variables from shax.function Signed-off-by: Tuvshinzaya Erdenekhuu --- tests/suites/test_suite_shax.function | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/suites/test_suite_shax.function b/tests/suites/test_suite_shax.function index 6072712a6a..aebfd84a82 100644 --- a/tests/suites/test_suite_shax.function +++ b/tests/suites/test_suite_shax.function @@ -24,7 +24,6 @@ void sha256_invalid_param( ) mbedtls_sha256_context ctx; unsigned char buf[64] = { 0 }; size_t const buflen = sizeof( buf ); - int valid_type = 0; int invalid_type = 42; TEST_EQUAL( MBEDTLS_ERR_SHA256_BAD_INPUT_DATA, @@ -73,7 +72,6 @@ void sha512_invalid_param( ) mbedtls_sha512_context ctx; unsigned char buf[64] = { 0 }; size_t const buflen = sizeof( buf ); - int valid_type = 0; int invalid_type = 42; TEST_EQUAL( MBEDTLS_ERR_SHA512_BAD_INPUT_DATA, From 1c5609df09004b45f7acbe5e0673527ade0ed67a Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 15:49:56 +0100 Subject: [PATCH 0152/1028] Remove NULL pointer validation in dhm.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/dhm.c | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/library/dhm.c b/library/dhm.c index 1e95bdab03..1ba5339074 100644 --- a/library/dhm.c +++ b/library/dhm.c @@ -55,11 +55,6 @@ #if !defined(MBEDTLS_DHM_ALT) -#define DHM_VALIDATE_RET( cond ) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_DHM_BAD_INPUT_DATA ) -#define DHM_VALIDATE( cond ) \ - MBEDTLS_INTERNAL_VALIDATE( cond ) - /* * helper to validate the mbedtls_mpi size and import it */ @@ -120,7 +115,6 @@ cleanup: void mbedtls_dhm_init( mbedtls_dhm_context *ctx ) { - DHM_VALIDATE( ctx != NULL ); memset( ctx, 0, sizeof( mbedtls_dhm_context ) ); } @@ -173,9 +167,6 @@ int mbedtls_dhm_read_params( mbedtls_dhm_context *ctx, const unsigned char *end ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - DHM_VALIDATE_RET( ctx != NULL ); - DHM_VALIDATE_RET( p != NULL && *p != NULL ); - DHM_VALIDATE_RET( end != NULL ); if( ( ret = dhm_read_bignum( &ctx->P, p, end ) ) != 0 || ( ret = dhm_read_bignum( &ctx->G, p, end ) ) != 0 || @@ -252,10 +243,6 @@ int mbedtls_dhm_make_params( mbedtls_dhm_context *ctx, int x_size, int ret; size_t n1, n2, n3; unsigned char *p; - DHM_VALIDATE_RET( ctx != NULL ); - DHM_VALIDATE_RET( output != NULL ); - DHM_VALIDATE_RET( olen != NULL ); - DHM_VALIDATE_RET( f_rng != NULL ); ret = dhm_make_common( ctx, x_size, f_rng, p_rng ); if( ret != 0 ) @@ -300,9 +287,6 @@ int mbedtls_dhm_set_group( mbedtls_dhm_context *ctx, const mbedtls_mpi *G ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - DHM_VALIDATE_RET( ctx != NULL ); - DHM_VALIDATE_RET( P != NULL ); - DHM_VALIDATE_RET( G != NULL ); if( ( ret = mbedtls_mpi_copy( &ctx->P, P ) ) != 0 || ( ret = mbedtls_mpi_copy( &ctx->G, G ) ) != 0 ) @@ -320,8 +304,6 @@ int mbedtls_dhm_read_public( mbedtls_dhm_context *ctx, const unsigned char *input, size_t ilen ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - DHM_VALIDATE_RET( ctx != NULL ); - DHM_VALIDATE_RET( input != NULL ); if( ilen < 1 || ilen > mbedtls_dhm_get_len( ctx ) ) return( MBEDTLS_ERR_DHM_BAD_INPUT_DATA ); @@ -341,9 +323,6 @@ int mbedtls_dhm_make_public( mbedtls_dhm_context *ctx, int x_size, void *p_rng ) { int ret; - DHM_VALIDATE_RET( ctx != NULL ); - DHM_VALIDATE_RET( output != NULL ); - DHM_VALIDATE_RET( f_rng != NULL ); if( olen < 1 || olen > mbedtls_dhm_get_len( ctx ) ) return( MBEDTLS_ERR_DHM_BAD_INPUT_DATA ); @@ -440,9 +419,6 @@ int mbedtls_dhm_calc_secret( mbedtls_dhm_context *ctx, { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi GYb; - DHM_VALIDATE_RET( ctx != NULL ); - DHM_VALIDATE_RET( output != NULL ); - DHM_VALIDATE_RET( olen != NULL ); if( f_rng == NULL ) return( MBEDTLS_ERR_DHM_BAD_INPUT_DATA ); @@ -518,9 +494,6 @@ int mbedtls_dhm_parse_dhm( mbedtls_dhm_context *dhm, const unsigned char *dhmin, mbedtls_pem_context pem; #endif /* MBEDTLS_PEM_PARSE_C */ - DHM_VALIDATE_RET( dhm != NULL ); - DHM_VALIDATE_RET( dhmin != NULL ); - #if defined(MBEDTLS_PEM_PARSE_C) mbedtls_pem_init( &pem ); @@ -667,8 +640,6 @@ int mbedtls_dhm_parse_dhmfile( mbedtls_dhm_context *dhm, const char *path ) int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n; unsigned char *buf; - DHM_VALIDATE_RET( dhm != NULL ); - DHM_VALIDATE_RET( path != NULL ); if( ( ret = load_file( path, &buf, &n ) ) != 0 ) return( ret ); From 6a473b2f175c3e9ff7ce8a9ae33c00412a7ec9ea Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 15:49:56 +0100 Subject: [PATCH 0153/1028] Remove NULL pointer validation in rsa.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/rsa.c | 111 +++++++------------------------------------------- 1 file changed, 14 insertions(+), 97 deletions(-) diff --git a/library/rsa.c b/library/rsa.c index 50d15a1e87..c81aa71707 100644 --- a/library/rsa.c +++ b/library/rsa.c @@ -77,19 +77,12 @@ #if !defined(MBEDTLS_RSA_ALT) -/* Parameter validation macros */ -#define RSA_VALIDATE_RET( cond ) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_RSA_BAD_INPUT_DATA ) -#define RSA_VALIDATE( cond ) \ - MBEDTLS_INTERNAL_VALIDATE( cond ) - int mbedtls_rsa_import( mbedtls_rsa_context *ctx, const mbedtls_mpi *N, const mbedtls_mpi *P, const mbedtls_mpi *Q, const mbedtls_mpi *D, const mbedtls_mpi *E ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - RSA_VALIDATE_RET( ctx != NULL ); if( ( N != NULL && ( ret = mbedtls_mpi_copy( &ctx->N, N ) ) != 0 ) || ( P != NULL && ( ret = mbedtls_mpi_copy( &ctx->P, P ) ) != 0 ) || @@ -114,7 +107,6 @@ int mbedtls_rsa_import_raw( mbedtls_rsa_context *ctx, unsigned char const *E, size_t E_len ) { int ret = 0; - RSA_VALIDATE_RET( ctx != NULL ); if( N != NULL ) { @@ -244,8 +236,6 @@ int mbedtls_rsa_complete( mbedtls_rsa_context *ctx ) #endif int n_missing, pq_missing, d_missing, is_pub, is_priv; - RSA_VALIDATE_RET( ctx != NULL ); - have_N = ( mbedtls_mpi_cmp_int( &ctx->N, 0 ) != 0 ); have_P = ( mbedtls_mpi_cmp_int( &ctx->P, 0 ) != 0 ); have_Q = ( mbedtls_mpi_cmp_int( &ctx->Q, 0 ) != 0 ); @@ -348,7 +338,6 @@ int mbedtls_rsa_export_raw( const mbedtls_rsa_context *ctx, { int ret = 0; int is_priv; - RSA_VALIDATE_RET( ctx != NULL ); /* Check if key is private or public */ is_priv = @@ -393,7 +382,6 @@ int mbedtls_rsa_export( const mbedtls_rsa_context *ctx, { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int is_priv; - RSA_VALIDATE_RET( ctx != NULL ); /* Check if key is private or public */ is_priv = @@ -437,7 +425,6 @@ int mbedtls_rsa_export_crt( const mbedtls_rsa_context *ctx, { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int is_priv; - RSA_VALIDATE_RET( ctx != NULL ); /* Check if key is private or public */ is_priv = @@ -474,8 +461,6 @@ int mbedtls_rsa_export_crt( const mbedtls_rsa_context *ctx, */ void mbedtls_rsa_init( mbedtls_rsa_context *ctx ) { - RSA_VALIDATE( ctx != NULL ); - memset( ctx, 0, sizeof( mbedtls_rsa_context ) ); ctx->padding = MBEDTLS_RSA_PKCS_V15; @@ -552,8 +537,6 @@ int mbedtls_rsa_gen_key( mbedtls_rsa_context *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi H, G, L; int prime_quality = 0; - RSA_VALIDATE_RET( ctx != NULL ); - RSA_VALIDATE_RET( f_rng != NULL ); /* * If the modulus is 1024 bit long or shorter, then the security strength of @@ -666,8 +649,6 @@ cleanup: */ int mbedtls_rsa_check_pubkey( const mbedtls_rsa_context *ctx ) { - RSA_VALIDATE_RET( ctx != NULL ); - if( rsa_check_context( ctx, 0 /* public */, 0 /* no blinding */ ) != 0 ) return( MBEDTLS_ERR_RSA_KEY_CHECK_FAILED ); @@ -691,8 +672,6 @@ int mbedtls_rsa_check_pubkey( const mbedtls_rsa_context *ctx ) */ int mbedtls_rsa_check_privkey( const mbedtls_rsa_context *ctx ) { - RSA_VALIDATE_RET( ctx != NULL ); - if( mbedtls_rsa_check_pubkey( ctx ) != 0 || rsa_check_context( ctx, 1 /* private */, 1 /* blinding */ ) != 0 ) { @@ -722,9 +701,6 @@ int mbedtls_rsa_check_privkey( const mbedtls_rsa_context *ctx ) int mbedtls_rsa_check_pub_priv( const mbedtls_rsa_context *pub, const mbedtls_rsa_context *prv ) { - RSA_VALIDATE_RET( pub != NULL ); - RSA_VALIDATE_RET( prv != NULL ); - if( mbedtls_rsa_check_pubkey( pub ) != 0 || mbedtls_rsa_check_privkey( prv ) != 0 ) { @@ -750,9 +726,6 @@ int mbedtls_rsa_public( mbedtls_rsa_context *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t olen; mbedtls_mpi T; - RSA_VALIDATE_RET( ctx != NULL ); - RSA_VALIDATE_RET( input != NULL ); - RSA_VALIDATE_RET( output != NULL ); if( rsa_check_context( ctx, 0 /* public */, 0 /* no blinding */ ) ) return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); @@ -920,10 +893,6 @@ int mbedtls_rsa_private( mbedtls_rsa_context *ctx, * checked result; should be the same in the end. */ mbedtls_mpi I, C; - RSA_VALIDATE_RET( ctx != NULL ); - RSA_VALIDATE_RET( input != NULL ); - RSA_VALIDATE_RET( output != NULL ); - if( f_rng == NULL ) return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); @@ -1311,11 +1280,6 @@ int mbedtls_rsa_rsaes_oaep_encrypt( mbedtls_rsa_context *ctx, unsigned char *p = output; unsigned int hlen; - RSA_VALIDATE_RET( ctx != NULL ); - RSA_VALIDATE_RET( output != NULL ); - RSA_VALIDATE_RET( ilen == 0 || input != NULL ); - RSA_VALIDATE_RET( label_len == 0 || label != NULL ); - if( f_rng == NULL ) return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); @@ -1377,10 +1341,6 @@ int mbedtls_rsa_rsaes_pkcs1_v15_encrypt( mbedtls_rsa_context *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = output; - RSA_VALIDATE_RET( ctx != NULL ); - RSA_VALIDATE_RET( output != NULL ); - RSA_VALIDATE_RET( ilen == 0 || input != NULL ); - olen = ctx->len; /* first comparison checks for overflow */ @@ -1429,10 +1389,6 @@ int mbedtls_rsa_pkcs1_encrypt( mbedtls_rsa_context *ctx, const unsigned char *input, unsigned char *output ) { - RSA_VALIDATE_RET( ctx != NULL ); - RSA_VALIDATE_RET( output != NULL ); - RSA_VALIDATE_RET( ilen == 0 || input != NULL ); - switch( ctx->padding ) { #if defined(MBEDTLS_PKCS1_V15) @@ -1472,12 +1428,6 @@ int mbedtls_rsa_rsaes_oaep_decrypt( mbedtls_rsa_context *ctx, unsigned char lhash[HASH_MAX_SIZE]; unsigned int hlen; - RSA_VALIDATE_RET( ctx != NULL ); - RSA_VALIDATE_RET( output_max_len == 0 || output != NULL ); - RSA_VALIDATE_RET( label_len == 0 || label != NULL ); - RSA_VALIDATE_RET( input != NULL ); - RSA_VALIDATE_RET( olen != NULL ); - /* * Parameters sanity checks */ @@ -1598,11 +1548,6 @@ int mbedtls_rsa_rsaes_pkcs1_v15_decrypt( mbedtls_rsa_context *ctx, size_t ilen; unsigned char buf[MBEDTLS_MPI_MAX_SIZE]; - RSA_VALIDATE_RET( ctx != NULL ); - RSA_VALIDATE_RET( output_max_len == 0 || output != NULL ); - RSA_VALIDATE_RET( input != NULL ); - RSA_VALIDATE_RET( olen != NULL ); - ilen = ctx->len; if( ctx->padding != MBEDTLS_RSA_PKCS_V15 ) @@ -1637,11 +1582,6 @@ int mbedtls_rsa_pkcs1_decrypt( mbedtls_rsa_context *ctx, unsigned char *output, size_t output_max_len) { - RSA_VALIDATE_RET( ctx != NULL ); - RSA_VALIDATE_RET( output_max_len == 0 || output != NULL ); - RSA_VALIDATE_RET( input != NULL ); - RSA_VALIDATE_RET( olen != NULL ); - switch( ctx->padding ) { #if defined(MBEDTLS_PKCS1_V15) @@ -1679,11 +1619,8 @@ static int rsa_rsassa_pss_sign( mbedtls_rsa_context *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t msb; - RSA_VALIDATE_RET( ctx != NULL ); - RSA_VALIDATE_RET( ( md_alg == MBEDTLS_MD_NONE && - hashlen == 0 ) || - hash != NULL ); - RSA_VALIDATE_RET( sig != NULL ); + if( ( md_alg != MBEDTLS_MD_NONE || hashlen != 0 ) && hash == NULL ) + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; if( ctx->padding != MBEDTLS_RSA_PKCS_V21 ) return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); @@ -1955,11 +1892,8 @@ int mbedtls_rsa_rsassa_pkcs1_v15_sign( mbedtls_rsa_context *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *sig_try = NULL, *verif = NULL; - RSA_VALIDATE_RET( ctx != NULL ); - RSA_VALIDATE_RET( ( md_alg == MBEDTLS_MD_NONE && - hashlen == 0 ) || - hash != NULL ); - RSA_VALIDATE_RET( sig != NULL ); + if( ( md_alg != MBEDTLS_MD_NONE || hashlen != 0 ) && hash == NULL ) + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; if( ctx->padding != MBEDTLS_RSA_PKCS_V15 ) return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); @@ -2023,11 +1957,8 @@ int mbedtls_rsa_pkcs1_sign( mbedtls_rsa_context *ctx, const unsigned char *hash, unsigned char *sig ) { - RSA_VALIDATE_RET( ctx != NULL ); - RSA_VALIDATE_RET( ( md_alg == MBEDTLS_MD_NONE && - hashlen == 0 ) || - hash != NULL ); - RSA_VALIDATE_RET( sig != NULL ); + if( ( md_alg != MBEDTLS_MD_NONE || hashlen != 0 ) && hash == NULL ) + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; switch( ctx->padding ) { @@ -2069,11 +2000,8 @@ int mbedtls_rsa_rsassa_pss_verify_ext( mbedtls_rsa_context *ctx, size_t observed_salt_len, msb; unsigned char buf[MBEDTLS_MPI_MAX_SIZE] = {0}; - RSA_VALIDATE_RET( ctx != NULL ); - RSA_VALIDATE_RET( sig != NULL ); - RSA_VALIDATE_RET( ( md_alg == MBEDTLS_MD_NONE && - hashlen == 0 ) || - hash != NULL ); + if( ( md_alg != MBEDTLS_MD_NONE || hashlen != 0 ) && hash == NULL ) + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; siglen = ctx->len; @@ -2168,11 +2096,8 @@ int mbedtls_rsa_rsassa_pss_verify( mbedtls_rsa_context *ctx, const unsigned char *sig ) { mbedtls_md_type_t mgf1_hash_id; - RSA_VALIDATE_RET( ctx != NULL ); - RSA_VALIDATE_RET( sig != NULL ); - RSA_VALIDATE_RET( ( md_alg == MBEDTLS_MD_NONE && - hashlen == 0 ) || - hash != NULL ); + if( ( md_alg != MBEDTLS_MD_NONE || hashlen != 0 ) && hash == NULL ) + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; mgf1_hash_id = ( ctx->hash_id != MBEDTLS_MD_NONE ) ? (mbedtls_md_type_t) ctx->hash_id @@ -2201,11 +2126,8 @@ int mbedtls_rsa_rsassa_pkcs1_v15_verify( mbedtls_rsa_context *ctx, size_t sig_len; unsigned char *encoded = NULL, *encoded_expected = NULL; - RSA_VALIDATE_RET( ctx != NULL ); - RSA_VALIDATE_RET( sig != NULL ); - RSA_VALIDATE_RET( ( md_alg == MBEDTLS_MD_NONE && - hashlen == 0 ) || - hash != NULL ); + if( ( md_alg != MBEDTLS_MD_NONE || hashlen != 0 ) && hash == NULL ) + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; sig_len = ctx->len; @@ -2270,11 +2192,8 @@ int mbedtls_rsa_pkcs1_verify( mbedtls_rsa_context *ctx, const unsigned char *hash, const unsigned char *sig ) { - RSA_VALIDATE_RET( ctx != NULL ); - RSA_VALIDATE_RET( sig != NULL ); - RSA_VALIDATE_RET( ( md_alg == MBEDTLS_MD_NONE && - hashlen == 0 ) || - hash != NULL ); + if( ( md_alg != MBEDTLS_MD_NONE || hashlen != 0 ) && hash == NULL ) + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; switch( ctx->padding ) { @@ -2301,8 +2220,6 @@ int mbedtls_rsa_pkcs1_verify( mbedtls_rsa_context *ctx, int mbedtls_rsa_copy( mbedtls_rsa_context *dst, const mbedtls_rsa_context *src ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - RSA_VALIDATE_RET( dst != NULL ); - RSA_VALIDATE_RET( src != NULL ); dst->len = src->len; From 7e2e2a97625dccae8489e5c993c12d2d5bbc18a3 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Tue, 26 Jul 2022 10:09:24 +0100 Subject: [PATCH 0154/1028] Add new checks in rsa_invalid_param test This new checks covers previous commits Signed-off-by: Tuvshinzaya Erdenekhuu --- tests/suites/test_suite_rsa.function | 48 ++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/tests/suites/test_suite_rsa.function b/tests/suites/test_suite_rsa.function index 0c8887a6fa..1aea673a5e 100644 --- a/tests/suites/test_suite_rsa.function +++ b/tests/suites/test_suite_rsa.function @@ -16,6 +16,9 @@ void rsa_invalid_param( ) mbedtls_rsa_context ctx; const int invalid_padding = 42; const int invalid_hash_id = 0xff; + const mbedtls_md_type_t md_alg_none = MBEDTLS_MD_NONE; + unsigned char buf[] = {0x00,0x01,0x02,0x03,0x04,0x05}; + size_t buf_len = sizeof( buf ); mbedtls_rsa_init( &ctx ); @@ -29,6 +32,17 @@ void rsa_invalid_param( ) invalid_hash_id ), MBEDTLS_ERR_RSA_INVALID_PADDING ); + TEST_EQUAL( mbedtls_rsa_pkcs1_sign(&ctx, NULL, + NULL, md_alg_none, + buf_len, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + + TEST_EQUAL( mbedtls_rsa_pkcs1_verify(&ctx, md_alg_none, + buf_len, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + #if !defined(MBEDTLS_PKCS1_V15) TEST_EQUAL( mbedtls_rsa_set_padding( &ctx, MBEDTLS_RSA_PKCS_V15, @@ -36,6 +50,20 @@ void rsa_invalid_param( ) MBEDTLS_ERR_RSA_INVALID_PADDING ); #endif +#if defined( MBEDTLS_PKCS1_V15 ) + TEST_EQUAL( mbedtls_rsa_rsassa_pkcs1_v15_sign(&ctx, NULL, + NULL, md_alg_none, + buf_len, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + + TEST_EQUAL( mbedtls_rsa_rsassa_pkcs1_v15_verify(&ctx, md_alg_none, + buf_len, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + +#endif + #if !defined(MBEDTLS_PKCS1_V21) TEST_EQUAL( mbedtls_rsa_set_padding( &ctx, MBEDTLS_RSA_PKCS_V21, @@ -43,6 +71,26 @@ void rsa_invalid_param( ) MBEDTLS_ERR_RSA_INVALID_PADDING ); #endif +#if defined(MBEDTLS_PKCS1_V21) + TEST_EQUAL( mbedtls_rsa_rsassa_pss_sign_ext(&ctx, NULL, NULL, + md_alg_none, buf_len, + NULL, buf_len, + buf ), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + + TEST_EQUAL( mbedtls_rsa_rsassa_pss_verify_ext(&ctx, md_alg_none, + buf_len, NULL, + md_alg_none, + buf_len, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + + TEST_EQUAL( mbedtls_rsa_rsassa_pss_verify(&ctx, md_alg_none, + buf_len, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + +#endif + exit: mbedtls_rsa_free( &ctx ); } From 913819e73f90cee216ebdd6a4021cbd85c97470d Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 16:07:47 +0100 Subject: [PATCH 0155/1028] Remove NULL pointer validation in chachapoly.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/chachapoly.c | 33 --------------------------------- 1 file changed, 33 deletions(-) diff --git a/library/chachapoly.c b/library/chachapoly.c index dc75b2030a..1f75528c00 100644 --- a/library/chachapoly.c +++ b/library/chachapoly.c @@ -39,12 +39,6 @@ #if !defined(MBEDTLS_CHACHAPOLY_ALT) -/* Parameter validation macros */ -#define CHACHAPOLY_VALIDATE_RET( cond ) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA ) -#define CHACHAPOLY_VALIDATE( cond ) \ - MBEDTLS_INTERNAL_VALIDATE( cond ) - #define CHACHAPOLY_STATE_INIT ( 0 ) #define CHACHAPOLY_STATE_AAD ( 1 ) #define CHACHAPOLY_STATE_CIPHERTEXT ( 2 ) /* Encrypting or decrypting */ @@ -91,8 +85,6 @@ static int chachapoly_pad_ciphertext( mbedtls_chachapoly_context *ctx ) void mbedtls_chachapoly_init( mbedtls_chachapoly_context *ctx ) { - CHACHAPOLY_VALIDATE( ctx != NULL ); - mbedtls_chacha20_init( &ctx->chacha20_ctx ); mbedtls_poly1305_init( &ctx->poly1305_ctx ); ctx->aad_len = 0U; @@ -118,8 +110,6 @@ int mbedtls_chachapoly_setkey( mbedtls_chachapoly_context *ctx, const unsigned char key[32] ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - CHACHAPOLY_VALIDATE_RET( ctx != NULL ); - CHACHAPOLY_VALIDATE_RET( key != NULL ); ret = mbedtls_chacha20_setkey( &ctx->chacha20_ctx, key ); @@ -132,8 +122,6 @@ int mbedtls_chachapoly_starts( mbedtls_chachapoly_context *ctx, { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char poly1305_key[64]; - CHACHAPOLY_VALIDATE_RET( ctx != NULL ); - CHACHAPOLY_VALIDATE_RET( nonce != NULL ); /* Set counter = 0, will be update to 1 when generating Poly1305 key */ ret = mbedtls_chacha20_starts( &ctx->chacha20_ctx, nonce, 0U ); @@ -170,9 +158,6 @@ int mbedtls_chachapoly_update_aad( mbedtls_chachapoly_context *ctx, const unsigned char *aad, size_t aad_len ) { - CHACHAPOLY_VALIDATE_RET( ctx != NULL ); - CHACHAPOLY_VALIDATE_RET( aad_len == 0 || aad != NULL ); - if( ctx->state != CHACHAPOLY_STATE_AAD ) return( MBEDTLS_ERR_CHACHAPOLY_BAD_STATE ); @@ -187,9 +172,6 @@ int mbedtls_chachapoly_update( mbedtls_chachapoly_context *ctx, unsigned char *output ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - CHACHAPOLY_VALIDATE_RET( ctx != NULL ); - CHACHAPOLY_VALIDATE_RET( len == 0 || input != NULL ); - CHACHAPOLY_VALIDATE_RET( len == 0 || output != NULL ); if( ( ctx->state != CHACHAPOLY_STATE_AAD ) && ( ctx->state != CHACHAPOLY_STATE_CIPHERTEXT ) ) @@ -237,8 +219,6 @@ int mbedtls_chachapoly_finish( mbedtls_chachapoly_context *ctx, { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char len_block[16]; - CHACHAPOLY_VALIDATE_RET( ctx != NULL ); - CHACHAPOLY_VALIDATE_RET( mac != NULL ); if( ctx->state == CHACHAPOLY_STATE_INIT ) { @@ -314,13 +294,6 @@ int mbedtls_chachapoly_encrypt_and_tag( mbedtls_chachapoly_context *ctx, unsigned char *output, unsigned char tag[16] ) { - CHACHAPOLY_VALIDATE_RET( ctx != NULL ); - CHACHAPOLY_VALIDATE_RET( nonce != NULL ); - CHACHAPOLY_VALIDATE_RET( tag != NULL ); - CHACHAPOLY_VALIDATE_RET( aad_len == 0 || aad != NULL ); - CHACHAPOLY_VALIDATE_RET( length == 0 || input != NULL ); - CHACHAPOLY_VALIDATE_RET( length == 0 || output != NULL ); - return( chachapoly_crypt_and_tag( ctx, MBEDTLS_CHACHAPOLY_ENCRYPT, length, nonce, aad, aad_len, input, output, tag ) ); @@ -339,12 +312,6 @@ int mbedtls_chachapoly_auth_decrypt( mbedtls_chachapoly_context *ctx, unsigned char check_tag[16]; size_t i; int diff; - CHACHAPOLY_VALIDATE_RET( ctx != NULL ); - CHACHAPOLY_VALIDATE_RET( nonce != NULL ); - CHACHAPOLY_VALIDATE_RET( tag != NULL ); - CHACHAPOLY_VALIDATE_RET( aad_len == 0 || aad != NULL ); - CHACHAPOLY_VALIDATE_RET( length == 0 || input != NULL ); - CHACHAPOLY_VALIDATE_RET( length == 0 || output != NULL ); if( ( ret = chachapoly_crypt_and_tag( ctx, MBEDTLS_CHACHAPOLY_DECRYPT, length, nonce, From 9077dbfd9471ef941c0f9b449db45348bacdefb9 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Fri, 5 Aug 2022 16:07:47 +0100 Subject: [PATCH 0156/1028] Remove NULL pointer validation in poly1305.c Signed-off-by: Tuvshinzaya Erdenekhuu --- library/poly1305.c | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/library/poly1305.c b/library/poly1305.c index 7375a0c572..f0d4cb63f8 100644 --- a/library/poly1305.c +++ b/library/poly1305.c @@ -44,12 +44,6 @@ #define inline __inline #endif -/* Parameter validation macros */ -#define POLY1305_VALIDATE_RET( cond ) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA ) -#define POLY1305_VALIDATE( cond ) \ - MBEDTLS_INTERNAL_VALIDATE( cond ) - #define POLY1305_BLOCK_SIZE_BYTES ( 16U ) /* @@ -258,8 +252,6 @@ static void poly1305_compute_mac( const mbedtls_poly1305_context *ctx, void mbedtls_poly1305_init( mbedtls_poly1305_context *ctx ) { - POLY1305_VALIDATE( ctx != NULL ); - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_poly1305_context ) ); } @@ -274,9 +266,6 @@ void mbedtls_poly1305_free( mbedtls_poly1305_context *ctx ) int mbedtls_poly1305_starts( mbedtls_poly1305_context *ctx, const unsigned char key[32] ) { - POLY1305_VALIDATE_RET( ctx != NULL ); - POLY1305_VALIDATE_RET( key != NULL ); - /* r &= 0x0ffffffc0ffffffc0ffffffc0fffffff */ ctx->r[0] = MBEDTLS_GET_UINT32_LE( key, 0 ) & 0x0FFFFFFFU; ctx->r[1] = MBEDTLS_GET_UINT32_LE( key, 4 ) & 0x0FFFFFFCU; @@ -310,8 +299,6 @@ int mbedtls_poly1305_update( mbedtls_poly1305_context *ctx, size_t remaining = ilen; size_t queue_free_len; size_t nblocks; - POLY1305_VALIDATE_RET( ctx != NULL ); - POLY1305_VALIDATE_RET( ilen == 0 || input != NULL ); if( ( remaining > 0U ) && ( ctx->queue_len > 0U ) ) { @@ -369,9 +356,6 @@ int mbedtls_poly1305_update( mbedtls_poly1305_context *ctx, int mbedtls_poly1305_finish( mbedtls_poly1305_context *ctx, unsigned char mac[16] ) { - POLY1305_VALIDATE_RET( ctx != NULL ); - POLY1305_VALIDATE_RET( mac != NULL ); - /* Process any leftover data */ if( ctx->queue_len > 0U ) { @@ -400,9 +384,6 @@ int mbedtls_poly1305_mac( const unsigned char key[32], { mbedtls_poly1305_context ctx; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - POLY1305_VALIDATE_RET( key != NULL ); - POLY1305_VALIDATE_RET( mac != NULL ); - POLY1305_VALIDATE_RET( ilen == 0 || input != NULL ); mbedtls_poly1305_init( &ctx ); From db8c5faed7ea7770f59512e8a30802fa583af243 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 3 Aug 2022 12:10:13 +0800 Subject: [PATCH 0157/1028] Add getting session ticket for client - Move ssl_get_psk_to_offer to `ssl_tls13_client.c` - Rename to `ssl_tls13_get_psk_to_offer` - Add session ticket parser Signed-off-by: Jerry Yu --- library/ssl_misc.h | 10 ----- library/ssl_tls13_client.c | 83 +++++++++++++++++++++++++++++++------ library/ssl_tls13_generic.c | 37 ----------------- 3 files changed, 70 insertions(+), 60 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 4842135bf7..c2ded59b52 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2457,16 +2457,6 @@ int mbedtls_ssl_check_dtls_clihlo_cookie( #endif #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) -/* Check if we have any PSK to offer, returns 0 if PSK is available. - * Assign the psk and ticket if pointers are present. - */ -MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_get_psk_to_offer( - const mbedtls_ssl_context *ssl, - int *psk_type, - const unsigned char **psk, size_t *psk_len, - const unsigned char **psk_identity, size_t *psk_identity_len ); - /** * \brief Given an SSL context and its associated configuration, write the TLS * 1.3 specific Pre-Shared key extension. diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 505f8dda89..6d87cffc12 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -664,10 +664,68 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES; return ( 0 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ + +/* Check if we have any PSK to offer, returns 0 if PSK is available. + * Assign the psk and ticket if pointers are present. + */ +MBEDTLS_CHECK_RETURN_CRITICAL +static int ssl_tls13_get_psk_to_offer( + const mbedtls_ssl_context *ssl, + int *psk_type, + const unsigned char **psk, size_t *psk_len, + const unsigned char **psk_identity, size_t *psk_identity_len ) +{ + if( psk_type == NULL || + psk == NULL || psk_len == NULL || + psk_identity == NULL || psk_identity_len == NULL ) + { + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + } + + *psk = NULL; + *psk_len = 0; + *psk_identity = NULL; + *psk_identity_len = 0; + +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + /* Check if a ticket has been configured. */ + if( ssl->session_negotiate != NULL && + ssl->session_negotiate->ticket != NULL ) + { +#if defined(MBEDTLS_HAVE_TIME) + mbedtls_time_t now = mbedtls_time( NULL ); + + if( ( ssl->session_negotiate->ticket_received <= now && + now - ssl->session_negotiate->ticket_received < 7 * 86400 * 1000 ) ) + { + *psk_type = MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION; + *psk = ssl->session_negotiate->resumption_key; + *psk_len = ssl->session_negotiate->resumption_key_len; + *psk_identity = ssl->session_negotiate->ticket; + *psk_identity_len = ssl->session_negotiate->ticket_len; + return( 0 ); + } +#endif /* MBEDTLS_HAVE_TIME */ + MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket expired" ) ); + } +#endif + + /* Check if an external PSK has been configured. */ + if( ssl->conf->psk != NULL ) + { + *psk_type = MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL; + *psk = ssl->conf->psk; + *psk_len = ssl->conf->psk_len; + *psk_identity = ssl->conf->psk_identity; + *psk_identity_len = ssl->conf->psk_identity_len; + return( 0 ); + } + + return( 1 ); +} /* - * mbedtls_ssl_tls13_write_pre_shared_key_ext() structure: + * mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext() structure: * * struct { * opaque identity<1..2^16-1>; @@ -689,9 +747,6 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, * } PreSharedKeyExtension; * */ - -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) - int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( mbedtls_ssl_context *ssl, unsigned char *buf, unsigned char *end, @@ -725,9 +780,8 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( * configured, offer that. * - Otherwise, skip the PSK extension. */ - - if( mbedtls_ssl_get_psk_to_offer( ssl, &psk_type, &psk, &psk_len, - &psk_identity, &psk_identity_len ) != 0 ) + if( ssl_tls13_get_psk_to_offer( ssl, &psk_type, &psk, &psk_len, + &psk_identity, &psk_identity_len ) != 0 ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "skip pre_shared_key extensions" ) ); return( 0 ); @@ -831,8 +885,8 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( unsigned char transcript[MBEDTLS_MD_MAX_SIZE]; size_t transcript_len; - if( mbedtls_ssl_get_psk_to_offer( ssl, &psk_type, &psk, &psk_len, - &psk_identity, &psk_identity_len ) != 0 ) + if( ssl_tls13_get_psk_to_offer( ssl, &psk_type, &psk, &psk_len, + &psk_identity, &psk_identity_len ) != 0 ) { return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); } @@ -1266,15 +1320,15 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, size_t psk_len; const unsigned char *psk_identity; size_t psk_identity_len; - + int psk_type; /* Check which PSK we've offered. * * NOTE: Ultimately, we want to offer multiple PSKs, and in this * case, we need to iterate over them here. */ - if( mbedtls_ssl_get_psk_to_offer( ssl, NULL, &psk, &psk_len, - &psk_identity, &psk_identity_len ) != 0 ) + if( ssl_tls13_get_psk_to_offer( ssl, &psk_type, &psk, &psk_len, + &psk_identity, &psk_identity_len ) != 0 ) { /* If we haven't offered a PSK, the server must not send * a PSK identity extension. */ @@ -2405,6 +2459,9 @@ static int ssl_tls13_parse_new_session_ticket( mbedtls_ssl_context *ssl, return( ret ); } + /* session has been updated, allow export */ + session->exported = 0; + return( 0 ); } diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 2b9ac5c57e..aa843a74e8 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1505,41 +1505,4 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( } #endif /* MBEDTLS_ECDH_C */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) -/* Check if we have any PSK to offer, returns 0 if PSK is available. - * Assign the psk and ticket if pointers are present. - */ -int mbedtls_ssl_get_psk_to_offer( - const mbedtls_ssl_context *ssl, - int *psk_type, - const unsigned char **psk, size_t *psk_len, - const unsigned char **psk_identity, size_t *psk_identity_len ) -{ - int ptrs_present = 0; - - if( psk_type != NULL && psk != NULL && psk_len != NULL && - psk_identity != NULL && psk_identity_len != NULL ) - { - ptrs_present = 1; - } - - /* Check if an external PSK has been configured. */ - if( ssl->conf->psk != NULL ) - { - if( ptrs_present ) - { - *psk_type = MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL; - *psk = ssl->conf->psk; - *psk_len = ssl->conf->psk_len; - *psk_identity = ssl->conf->psk_identity; - *psk_identity_len = ssl->conf->psk_identity_len; - } - - return( 0 ); - } - - return( 1 ); -} -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ - #endif /* MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_PROTO_TLS1_3 */ From 49d63f8c36669d9dc67e644ea859a73e6ed55482 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 3 Aug 2022 12:28:08 +0800 Subject: [PATCH 0158/1028] Implement generate resumption master secret Signed-off-by: Jerry Yu --- library/ssl_tls13_keys.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 32a4f2ab3a..d0809fc1c7 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1507,9 +1507,42 @@ cleanup: int mbedtls_ssl_tls13_generate_resumption_master_secret( mbedtls_ssl_context *ssl ) { + int ret = 0; + + mbedtls_md_type_t md_type; + + unsigned char transcript[MBEDTLS_MD_MAX_SIZE]; + size_t transcript_len; + + MBEDTLS_SSL_DEBUG_MSG( 2, + ( "=> mbedtls_ssl_tls13_generate_resumption_master_secret" ) ); + + md_type = ssl->handshake->ciphersuite_info->mac; + + ret = mbedtls_ssl_get_handshake_transcript( ssl, md_type, + transcript, sizeof( transcript ), + &transcript_len ); + if( ret != 0 ) + return( ret ); + + ret = mbedtls_ssl_tls13_derive_resumption_master_secret( + mbedtls_psa_translate_md( md_type ), + ssl->handshake->tls13_master_secrets.app, + transcript, transcript_len, + &ssl->session_negotiate->app_secrets ); + if( ret != 0 ) + return( ret ); + /* Erase master secrets */ mbedtls_platform_zeroize( &ssl->handshake->tls13_master_secrets, sizeof( ssl->handshake->tls13_master_secrets ) ); + + MBEDTLS_SSL_DEBUG_BUF( 4, "Resumption master secret", + ssl->session_negotiate->app_secrets.resumption_master_secret, + mbedtls_md_get_size( mbedtls_md_info_from_type( md_type ) ) ); + + MBEDTLS_SSL_DEBUG_MSG( 2, + ( "<= mbedtls_ssl_tls13_generate_resumption_master_secret" ) ); return( 0 ); } From e6527512d248fc26040c150e0852cefbfd57c3e3 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 3 Aug 2022 13:39:05 +0800 Subject: [PATCH 0159/1028] Add obfuscated_ticket_age write Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 6d87cffc12..56cd0608df 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -811,6 +811,25 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( break; } } + else +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + if( psk_type == MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION ) + { +#if defined(MBEDTLS_HAVE_TIME) + mbedtls_time_t now = mbedtls_time( NULL ); + obfuscated_ticket_age = + (uint32_t)( now - ssl->session_negotiate->ticket_received ) + + ssl->session_negotiate->ticket_age_add; +#endif + } + else +#endif /* MBEDTLS_SSL_SESSION_TICKETS */ + { + MBEDTLS_SSL_DEBUG_MSG( 1, ( "write_identities_of_pre_shared_key_ext: " + "should never happen" ) ); + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + } + ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( ssl->session_negotiate->ciphersuite ); From 0203534c6437cf63f840152d8c20c87a44abf6f8 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 3 Aug 2022 12:43:06 +0800 Subject: [PATCH 0160/1028] Add session save after got new session ticket Signed-off-by: Jerry Yu --- programs/ssl/ssl_client2.c | 129 +++++++++++++++++++++++++------------ 1 file changed, 89 insertions(+), 40 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 2537521869..c1f347b87b 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -657,6 +657,57 @@ int report_cid_usage( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ +static int ssl_save_session_serialize( mbedtls_ssl_context *ssl, + unsigned char **session_data, + size_t *session_data_len ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + mbedtls_ssl_session exported_session; + + /* free any previously saved data */ + if( *session_data != NULL ) + { + mbedtls_platform_zeroize( *session_data, *session_data_len ); + mbedtls_free( *session_data ); + *session_data = NULL; + *session_data_len = 0; + } + + mbedtls_ssl_session_init( &exported_session ); + ret = mbedtls_ssl_get_session( ssl, &exported_session ); + if( ret != 0 ) + { + mbedtls_printf( + "failed\n ! mbedtls_ssl_get_session() returned -%#02x\n", + (unsigned) -ret ); + goto exit; + } + + /* get size of the buffer needed */ + mbedtls_ssl_session_save( &exported_session, NULL, 0, session_data_len ); + *session_data = mbedtls_calloc( 1, *session_data_len ); + if( *session_data == NULL ) + { + mbedtls_printf( " failed\n ! alloc %u bytes for session data\n", + (unsigned) *session_data_len ); + ret = MBEDTLS_ERR_SSL_ALLOC_FAILED; + goto exit; + } + + /* actually save session data */ + if( ( ret = mbedtls_ssl_session_save( &exported_session, + *session_data, *session_data_len, + session_data_len ) ) != 0 ) + { + mbedtls_printf( " failed\n ! mbedtls_ssl_session_saved returned -0x%04x\n\n", + (unsigned int) -ret ); + goto exit; + } + +exit: + mbedtls_ssl_session_free( &exported_session ); + return( ret ); +} int main( int argc, char *argv[] ) { int ret = 0, len, tail_len, i, written, frags, retry_left; @@ -2360,57 +2411,21 @@ int main( int argc, char *argv[] ) } } #endif /* MBEDTLS_SSL_DTLS_SRTP */ - if( opt.reconnect != 0 ) + if( opt.reconnect != 0 && ssl.tls_version != MBEDTLS_SSL_VERSION_TLS1_3 ) { mbedtls_printf(" . Saving session for reuse..." ); fflush( stdout ); if( opt.reco_mode == 1 ) { - mbedtls_ssl_session exported_session; - - /* free any previously saved data */ - if( session_data != NULL ) + if( ( ret = ssl_save_session_serialize( &ssl, + &session_data, &session_data_len ) ) != 0 ) { - mbedtls_platform_zeroize( session_data, session_data_len ); - mbedtls_free( session_data ); - session_data = NULL; - } - - mbedtls_ssl_session_init( &exported_session ); - ret = mbedtls_ssl_get_session( &ssl, &exported_session ); - if( ret != 0 ) - { - mbedtls_printf( - "failed\n ! mbedtls_ssl_get_session() returned -%#02x\n", - (unsigned) -ret ); - goto exit; - } - - /* get size of the buffer needed */ - mbedtls_ssl_session_save( &exported_session, NULL, 0, &session_data_len ); - session_data = mbedtls_calloc( 1, session_data_len ); - if( session_data == NULL ) - { - mbedtls_printf( " failed\n ! alloc %u bytes for session data\n", - (unsigned) session_data_len ); - mbedtls_ssl_session_free( &exported_session ); - ret = MBEDTLS_ERR_SSL_ALLOC_FAILED; - goto exit; - } - - /* actually save session data */ - if( ( ret = mbedtls_ssl_session_save( &exported_session, - session_data, session_data_len, - &session_data_len ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_session_saved returned -0x%04x\n\n", + mbedtls_printf( " failed\n ! ssl_save_session_serialize returned -0x%04x\n\n", (unsigned int) -ret ); - mbedtls_ssl_session_free( &exported_session ); goto exit; } - mbedtls_ssl_session_free( &exported_session ); } else { @@ -2700,6 +2715,40 @@ send_request: /* We were waiting for application data but got * a NewSessionTicket instead. */ mbedtls_printf( " got new session ticket.\n" ); + if( opt.reconnect != 0 ) + { + mbedtls_printf(" . Saving session for reuse..." ); + fflush( stdout ); + + if( opt.reco_mode == 1 ) + { + if( ( ret = ssl_save_session_serialize( &ssl, + &session_data, &session_data_len ) ) != 0 ) + { + mbedtls_printf( " failed\n ! ssl_save_session_serialize returned -0x%04x\n\n", + (unsigned int) -ret ); + goto exit; + } + } + else + { + if( ( ret = mbedtls_ssl_get_session( &ssl, &saved_session ) ) != 0 ) + { + mbedtls_printf( " failed\n ! mbedtls_ssl_get_session returned -0x%x\n\n", + (unsigned int) -ret ); + goto exit; + } + } + + mbedtls_printf( " ok\n" ); + + if( opt.reco_mode == 1 ) + { + mbedtls_printf( " [ Saved %u bytes of session data]\n", + (unsigned) session_data_len ); + } + } + continue; #endif /* MBEDTLS_SSL_SESSION_TICKETS */ From e976492a11bb838a4230601c320fb5a7a76b6296 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 3 Aug 2022 14:34:24 +0800 Subject: [PATCH 0161/1028] Add session ticket tests for client Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 3 ++ tests/ssl-opt.sh | 81 ++++++++++++++++++++------------------ 2 files changed, 45 insertions(+), 39 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 56cd0608df..febf441c98 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1695,16 +1695,19 @@ static int ssl_tls13_postprocess_server_hello( mbedtls_ssl_context *ssl ) /* Only the pre_shared_key extension was received */ case MBEDTLS_SSL_EXT_PRE_SHARED_KEY: handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK; + MBEDTLS_SSL_DEBUG_MSG( 2, ( "key exchange mode: psk" ) ); break; /* Only the key_share extension was received */ case MBEDTLS_SSL_EXT_KEY_SHARE: handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL; + MBEDTLS_SSL_DEBUG_MSG( 2, ( "key exchange mode: ephemeral" ) ); break; /* Both the pre_shared_key and key_share extensions were received */ case ( MBEDTLS_SSL_EXT_PRE_SHARED_KEY | MBEDTLS_SSL_EXT_KEY_SHARE ): handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL; + MBEDTLS_SSL_DEBUG_MSG( 2, ( "key exchange mode: psk_ephemeral" ) ); break; /* Neither pre_shared_key nor key_share extension was received */ diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index c4628b017e..0e5a5daab4 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -11987,48 +11987,55 @@ run_test "TLS 1.3: Server side check - mbedtls with sni" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK" \ - "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - 1 \ +run_test "TLS 1.3: PSK: default suite. m->m" \ + "$P_SRV debug_level=5 force_version=tls13 psk=6162636465666768696a6b6c6d6e6f70 psk_identity=Client_identity tls13_kex_modes=psk_all" \ + "$P_CLI debug_level=5 force_version=tls13 psk=6162636465666768696a6b6c6d6e6f70 psk_identity=Client_identity tls13_kex_modes=psk_all" \ + 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "<= write client hello" + -c "<= write client hello" \ + -s "found psk key exchange modes extension" \ + -s "found pre_shared_key extension" \ + -s "Found PSK_EPHEMERAL KEX MODE" \ + -s "Found PSK KEX MODE" \ + -s "Pre shared key found" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK - openssl" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - 1 \ +run_test "TLS 1.3: PSK: default suite. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=4 psk=6162636465666768696a6b6c6d6e6f70 psk_identity=Client_identity tls13_kex_modes=psk_all force_version=tls13" \ + 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -c "<= write client hello" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK - gnutls" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - 1 \ +run_test "TLS 1.3: PSK: default suite. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+CIPHER-ALL --pskpasswd data_files/passwd.psk" \ + "$P_CLI debug_level=4 psk=6162636465666768696a6b6c6d6e6f70 psk_identity=Client_identity tls13_kex_modes=all force_version=tls13" \ + 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" + -s "PSK authentication. Connected as 'Client_identity'" + for i in opt-testcases/*.sh do @@ -12650,13 +12657,13 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3: NewSessionTicket: Basic check, m->O" \ - "$O_NEXT_SRV -msg -tls1_3 -no_resume_ephemeral -no_cache " \ - "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + "$O_NEXT_SRV -msg -tls1_3 -no_resume_ephemeral -no_cache --num_tickets 4" \ + "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ 0 \ -c "Protocol is TLSv1.3" \ - -c "MBEDTLS_SSL_NEW_SESSION_TICKET" \ -c "got new session ticket." \ -c "Saving session for reuse... ok" \ + -c "Reconnecting with saved session" \ -c "HTTP/1.0 200 ok" requires_gnutls_tls1_3 @@ -12665,27 +12672,15 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: NewSessionTicket: Basic check, m->G" \ - "$G_NEXT_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+PSK --disable-client-cert" \ - "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+PSK --disable-client-cert" \ + "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ 0 \ -c "Protocol is TLSv1.3" \ - -c "MBEDTLS_SSL_NEW_SESSION_TICKET" \ -c "got new session ticket." \ -c "Saving session for reuse... ok" \ - -c "HTTP/1.0 200 OK" - -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS -requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_DEBUG_C -run_test "TLS 1.3: NewSessionTicket: Basic check, O->m" \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=1" \ - "$O_NEXT_CLI -msg -debug -tls1_3 -no_middlebox" \ - 0 \ - -s "=> write NewSessionTicket msg" \ - -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ - -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" + -c "Reconnecting with saved session" \ + -c "HTTP/1.0 200 OK" \ + -s "This is a resumed session" requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -12694,12 +12689,16 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C run_test "TLS 1.3: NewSessionTicket: Basic check, G->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=1" \ - "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:%DISABLE_TLS13_COMPAT_MODE -V" \ + "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:%DISABLE_TLS13_COMPAT_MODE -V -r" \ 0 \ + -c "Connecting again- trying to resume previous session" \ + -c "NEW SESSION TICKET (4) was received" \ -s "=> write NewSessionTicket msg" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" \ - -c "NEW SESSION TICKET (4) was received" + -s "key exchange mode: ephemeral" \ + -s "key exchange mode: psk_ephemeral" \ + -s "found pre_shared_key extension" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS @@ -12711,13 +12710,17 @@ run_test "TLS 1.3: NewSessionTicket: Basic check, m->m" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ 0 \ -c "Protocol is TLSv1.3" \ - -c "MBEDTLS_SSL_NEW_SESSION_TICKET" \ -c "got new session ticket." \ -c "Saving session for reuse... ok" \ + -c "Reconnecting with saved session" \ -c "HTTP/1.0 200 OK" \ -s "=> write NewSessionTicket msg" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ - -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" + -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" \ + -s "key exchange mode: ephemeral" \ + -s "key exchange mode: psk_ephemeral" \ + -s "found pre_shared_key extension" + requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 From 661dd943b6a61ef79d32cff08a96cc9c7e6f850b Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 3 Aug 2022 14:50:01 +0800 Subject: [PATCH 0162/1028] Add dummy server name extension paser Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index febf441c98..7b26bbbfb7 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1895,7 +1895,12 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, */ switch( extension_type ) { + case MBEDTLS_TLS_EXT_SERVERNAME: + MBEDTLS_SSL_DEBUG_MSG( 3, ( "found server_name extension" ) ); + /* The server_name extension should be an empty extension */ + + break; case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found extensions supported groups" ) ); break; From 89eb95a2218b6c64899f117cf09d9f0aee160ee4 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sun, 21 Aug 2022 19:21:45 +0800 Subject: [PATCH 0163/1028] Add ticket age tolerance config option Signed-off-by: Jerry Yu --- include/mbedtls/mbedtls_config.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index e9487b28f0..19efff7d93 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1549,6 +1549,14 @@ */ //#define MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +/** + * \def MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH + * + * Time in seconds of max ticket lifetime. This is not used in TLS 1.2. + * + */ +#define MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE 6000 + /** * \def MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH * From 95699e72f3fa8bc402b040192560fabf4dee2cd0 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sun, 21 Aug 2022 19:22:23 +0800 Subject: [PATCH 0164/1028] Add session ticket identity check Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 141 +++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index a5b414e974..02a476080b 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -121,14 +121,155 @@ static int ssl_tls13_parse_key_exchange_modes_ext( mbedtls_ssl_context *ssl, #define SSL_TLS1_3_OFFERED_PSK_NOT_MATCH 1 #define SSL_TLS1_3_OFFERED_PSK_MATCH 0 + +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + +MBEDTLS_CHECK_RETURN_CRITICAL +static int ssl_tls13_offered_psks_check_identity_match_ticket( + mbedtls_ssl_context *ssl, + mbedtls_ssl_session *session, + const unsigned char *identity, + size_t identity_len, + uint32_t obfuscated_ticket_age ) +{ + int ret; + unsigned char *ticket_buffer; + + ((void) obfuscated_ticket_age); + + MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> check_identity_match_ticket" ) ); + + MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket length: %" MBEDTLS_PRINTF_SIZET + ". ticket_parse is %sconfigured. " + "ticket_write is %sconfigured.", + identity_len, + ssl->conf->f_ticket_parse == NULL ? "NOT " : "", + ssl->conf->f_ticket_write == NULL ? "NOT " : "" ) ); + + if( ssl->conf->f_ticket_parse == NULL || + identity_len == 0 ) + { + /* Ticket parser is not configured, Skip */ + return( 0 ); + } + + /* We create a copy of the encrypted ticket since decrypting + * it into the same buffer will wipe-out the original content. + * We do, however, need the original buffer for computing the + * psk binder value. + */ + ticket_buffer = mbedtls_calloc( 1, identity_len ); + if( ticket_buffer == NULL ) + { + MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); + return ( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + } + memcpy( ticket_buffer, identity, identity_len ); + + if( ( ret = ssl->conf->f_ticket_parse( ssl->conf->p_ticket, + session, + ticket_buffer, identity_len ) ) != 0 ) + { + if( ret == MBEDTLS_ERR_SSL_INVALID_MAC ) + MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket is not authentic" ) ); + else if( ret == MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED ) + MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket is expired" ) ); + else + MBEDTLS_SSL_DEBUG_RET( 1, "ticket_parse", ret ); + } + + /* We delete the temporary buffer */ + mbedtls_free( ticket_buffer ); + + if( ret == 0 ) + { +#if defined(MBEDTLS_HAVE_TIME) + mbedtls_time_t now; + int64_t diff; +#endif + ret = SSL_TLS1_3_OFFERED_PSK_MATCH; +#if defined(MBEDTLS_HAVE_TIME) + now = mbedtls_time( NULL ); + + /* Check #1: + * Is the time when the ticket was issued later than now? + */ + if( now < session->start ) + { + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "Ticket expired: now=%" MBEDTLS_PRINTF_LONGLONG + ", start=%" MBEDTLS_PRINTF_LONGLONG, + (long long)now, (long long)session->start ) ); + ret = MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED; + } + + /* Check #2: + * Is the ticket age for the selected PSK identity + * (computed by subtracting ticket_age_add from + * PskIdentity.obfuscated_ticket_age modulo 2^32 ) + * within a small tolerance of the time since the + * ticket was issued? + */ + diff = ( now - session->start ) - + ( obfuscated_ticket_age - session->ticket_age_add ); + + if( diff > MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE ) + { + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "Ticket age outside tolerance window ( diff=%" + MBEDTLS_PRINTF_LONGLONG" )", + (long long)diff ) ); + ret = MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED; + } + +#endif /* MBEDTLS_HAVE_TIME */ + } + + MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= check_identity_match_ticket" ) ); + return( ret ); +} +#endif /* MBEDTLS_SSL_SESSION_TICKETS */ + MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_offered_psks_check_identity_match( mbedtls_ssl_context *ssl, const unsigned char *identity, size_t identity_len, + uint32_t obfuscated_ticket_age, + void *session, int *psk_type ) { + ((void) session); + ((void) obfuscated_ticket_age); *psk_type = MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL; + + MBEDTLS_SSL_DEBUG_BUF( 4, "identity", identity, identity_len ); + ssl->handshake->resume = 0; + + + +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + if( ssl_tls13_offered_psks_check_identity_match_ticket( + ssl, (mbedtls_ssl_session *)session, + identity, identity_len, + obfuscated_ticket_age ) == SSL_TLS1_3_OFFERED_PSK_MATCH ) + { + mbedtls_ssl_session *i_session=(mbedtls_ssl_session *)session; + ssl->handshake->resume = 1; + *psk_type = MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION; + mbedtls_ssl_set_hs_psk( ssl, + i_session->resumption_key, + i_session->resumption_key_len ); + + MBEDTLS_SSL_DEBUG_BUF( 4, "Ticket-resumed PSK:", + i_session->resumption_key, + i_session->resumption_key_len ); + MBEDTLS_SSL_DEBUG_MSG( 4, ( "ticket: obfuscated_ticket_age: %u", + (unsigned)obfuscated_ticket_age ) ); + return( SSL_TLS1_3_OFFERED_PSK_MATCH ); + } +#endif /* MBEDTLS_SSL_SESSION_TICKETS */ + /* Check identity with external configured function */ if( ssl->conf->f_psk != NULL ) { From 8253486c4ffe58eaed7906f5a473749246b07f80 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 30 Aug 2022 10:42:33 +0800 Subject: [PATCH 0165/1028] Add session ticket support for server Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 86 +++++++++++++++++++++++++++++++++----- 1 file changed, 75 insertions(+), 11 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 02a476080b..c139fb5369 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -397,6 +397,7 @@ static int ssl_tls13_select_ciphersuite_for_psk( return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); } +#if defined(MBEDTLS_SSL_SESSION_TICKETS) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_select_ciphersuite_for_resumption( mbedtls_ssl_context *ssl, @@ -406,15 +407,51 @@ static int ssl_tls13_select_ciphersuite_for_resumption( uint16_t *selected_ciphersuite, const mbedtls_ssl_ciphersuite_t **selected_ciphersuite_info ) { - ((void) ssl); - ((void) session); - ((void) cipher_suites); - ((void) cipher_suites_end); + *selected_ciphersuite = 0; *selected_ciphersuite_info = NULL; - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + for( const unsigned char *p = cipher_suites; p < cipher_suites_end; p += 2 ) + { + uint16_t cipher_suite = MBEDTLS_GET_UINT16_BE( p, 0 ); + const mbedtls_ssl_ciphersuite_t *ciphersuite_info; + + if( cipher_suite != session->ciphersuite ) + continue; + + ciphersuite_info = ssl_tls13_validate_peer_ciphersuite( ssl, + cipher_suite ); + if( ciphersuite_info == NULL ) + continue; + + *selected_ciphersuite = session->ciphersuite; + *selected_ciphersuite_info = ciphersuite_info; + + return( 0 ); + + } + + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); } +MBEDTLS_CHECK_RETURN_CRITICAL +static int ssl_tls13_session_copy( mbedtls_ssl_session *dst, + mbedtls_ssl_session *src ) +{ + dst->endpoint = src->endpoint; + dst->ciphersuite = src->ciphersuite; + dst->ticket_age_add = src->ticket_age_add; + dst->ticket_flags = src->ticket_flags; + dst->resumption_key_len = src->resumption_key_len; + if( src->resumption_key_len == 0 ) + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + memcpy( dst->resumption_key, src->resumption_key, src->resumption_key_len ); +#if defined(MBEDTLS_HAVE_TIME) + dst->start = src->start; +#endif + return( 0 ); +} +#endif /* MBEDTLS_SSL_SESSION_TICKETS */ + /* Parser for pre_shared_key extension in client hello * struct { * opaque identity<1..2^16-1>; @@ -484,17 +521,23 @@ static int ssl_tls13_parse_pre_shared_key_ext( mbedtls_ssl_context *ssl, { const unsigned char *identity; size_t identity_len; + uint32_t obfuscated_ticket_age; const unsigned char *binder; size_t binder_len; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int psk_type; uint16_t cipher_suite; const mbedtls_ssl_ciphersuite_t *ciphersuite_info; +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + mbedtls_ssl_session session; + memset( &session, 0, sizeof( session ) ); +#endif MBEDTLS_SSL_CHK_BUF_READ_PTR( p_identity_len, identities_end, 2 + 1 + 4 ); identity_len = MBEDTLS_GET_UINT16_BE( p_identity_len, 0 ); identity = p_identity_len + 2; MBEDTLS_SSL_CHK_BUF_READ_PTR( identity, identities_end, identity_len + 4 ); + obfuscated_ticket_age = MBEDTLS_GET_UINT32_BE( identity , identity_len ); p_identity_len += identity_len + 6; MBEDTLS_SSL_CHK_BUF_READ_PTR( p_binder_len, binders_end, 1 + 32 ); @@ -508,7 +551,8 @@ static int ssl_tls13_parse_pre_shared_key_ext( mbedtls_ssl_context *ssl, continue; ret = ssl_tls13_offered_psks_check_identity_match( - ssl, identity, identity_len, &psk_type ); + ssl, identity, identity_len, obfuscated_ticket_age, + &session, &psk_type ); if( ret != SSL_TLS1_3_OFFERED_PSK_MATCH ) continue; @@ -521,9 +565,13 @@ static int ssl_tls13_parse_pre_shared_key_ext( mbedtls_ssl_context *ssl, &cipher_suite, &ciphersuite_info ); break; case MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION: +#if defined(MBEDTLS_SSL_SESSION_TICKETS) ret = ssl_tls13_select_ciphersuite_for_resumption( - ssl, ciphersuites, ciphersuites_end, NULL, + ssl, ciphersuites, ciphersuites_end, &session, &cipher_suite, &ciphersuite_info ); +#else + ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; +#endif break; default: return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); @@ -547,6 +595,9 @@ static int ssl_tls13_parse_pre_shared_key_ext( mbedtls_ssl_context *ssl, /* For security reasons, the handshake should be aborted when we * fail to validate a binder value. See RFC 8446 section 4.2.11.2 * and appendix E.6. */ +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + mbedtls_ssl_session_free( &session ); +#endif MBEDTLS_SSL_DEBUG_MSG( 3, ( "Invalid binder." ) ); MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_offered_psks_check_binder_match" , ret ); @@ -559,11 +610,24 @@ static int ssl_tls13_parse_pre_shared_key_ext( mbedtls_ssl_context *ssl, matched_identity = identity_id; /* Update handshake parameters */ - ssl->session_negotiate->ciphersuite = cipher_suite; ssl->handshake->ciphersuite_info = ciphersuite_info; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "overwrite ciphersuite: %04x - %s", - cipher_suite, ciphersuite_info->name ) ); - + if( psk_type == MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL ) + { + ssl->session_negotiate->ciphersuite = cipher_suite; + MBEDTLS_SSL_DEBUG_MSG( 2, ( "overwrite ciphersuite: %04x - %s", + cipher_suite, + ciphersuite_info->name ) ); + } +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + else + if( psk_type == MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION ) + { + ret = ssl_tls13_session_copy(ssl->session_negotiate, &session ); + mbedtls_ssl_session_free( &session ); + if( ret != 0 ) + return( ret ); + } +#endif /* MBEDTLS_SSL_SESSION_TICKETS */ } if( p_identity_len != identities_end || p_binder_len != binders_end ) From a4b7720cb57bb9dc68d9f263bb526918dff0e4a3 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 31 Aug 2022 16:55:44 +0100 Subject: [PATCH 0166/1028] Use `combinations_with_replacement` for inputs When generating combinations of values, `itertools.combinations` will not allow inputs to be repeated. This is replaced so that cases where input values match are generated, i.e. ("0", "0"). Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 8a8425e1ca..b08ba37852 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -166,7 +166,7 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): """ yield from cast( Iterator[Tuple[str, str]], - itertools.combinations(cls.input_values, 2) + itertools.combinations_with_replacement(cls.input_values, 2) ) yield from cls.input_cases @@ -215,7 +215,7 @@ class BignumAdd(BignumOperation): test_name = "MPI add" input_cases = cast( List[Tuple[str, str]], - list(itertools.combinations( + list(itertools.combinations_with_replacement( [ "1c67967269c6", "9cde3", "-1c67967269c6", "-9cde3", From 466f0363264ed238be3b26dacb624c7b4ccf8eba Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 31 Aug 2022 17:01:38 +0100 Subject: [PATCH 0167/1028] Add dependencies attribute to BaseTarget Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index e833008b59..9eaa7e28f6 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -42,6 +42,7 @@ class BaseTarget(metaclass=ABCMeta): count: Counter for test cases from this class. case_description: Short description of the test case. This may be automatically generated using the class, or manually set. + dependencies: A list of dependencies required for the test case. target_basename: Basename of file to write generated tests to. This should be specified in a child class of BaseTarget. test_function: Test function which the class generates cases for. @@ -51,6 +52,7 @@ class BaseTarget(metaclass=ABCMeta): """ count = 0 case_description = "" + dependencies: List[str] = [] target_basename = "" test_function = "" test_name = "" @@ -94,6 +96,7 @@ class BaseTarget(metaclass=ABCMeta): tc.set_description(self.description()) tc.set_function(self.test_function) tc.set_arguments(self.arguments()) + tc.set_dependencies(self.dependencies) return tc From 9354990a549d9ca3a3c0eec12ff77e1f883bceeb Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 30 Aug 2022 17:41:23 +0100 Subject: [PATCH 0168/1028] Don't use multiplication by condition in even a semi-constant time function Signed-off-by: Tom Cosgrove --- library/bignum_core.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 2e183896a4..1ca69dc6ce 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -300,9 +300,23 @@ mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *A, { mbedtls_mpi_uint c = 0; + /* MSVC has a warning about unary minus on unsigned integer types, + * but this is well-defined and precisely what we want to do here. */ +#if defined(_MSC_VER) +#pragma warning( push ) +#pragma warning( disable : 4146 ) +#endif + + /* all-bits 1 if cond is 1, all-bits 0 if cond is 0 */ + const mbedtls_mpi_uint mask = -(mbedtls_mpi_uint)cond; + +#if defined(_MSC_VER) +#pragma warning( pop ) +#endif + for( size_t i = 0; i < limbs; i++ ) { - mbedtls_mpi_uint add = cond * B[i]; + mbedtls_mpi_uint add = mask & B[i]; mbedtls_mpi_uint t = c + A[i]; c = ( t < A[i] ); t += add; From ed43c6caebbe08aebfbad14ecf4e4d876107bb9a Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 31 Aug 2022 11:35:00 +0100 Subject: [PATCH 0169/1028] In add_if(), B MAY be aliased to A. Also update another comment for consistency. Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 36758e5393..84350bc9b8 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -171,7 +171,8 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, * representing the bignum to accumulate onto. * \param[in] B The pointer to the (little-endian) array * representing the bignum to conditionally add - * to \p A. This must be disjoint from \p A. + * to \p A. This may be aliased to \p A but may not + * overlap otherwise. * \param limbs Number of limbs of \p A and \p B. * \param cond Condition bit dictating whether addition should * happen or not. This must be \c 0 or \c 1. @@ -219,8 +220,8 @@ mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *X, * at least \p B_limbs. * \param[in] B The pointer to the (little-endian) array * representing the bignum to multiply with. - * This may be the same as \p A. Otherwise, - * it must be disjoint from \p A. + * This may be aliased to \p A but may not overlap + * otherwise. * \param B_limbs The number of limbs of \p B. * \param c A scalar to multiply with. * From 630110ab238c1e0e4064550a9d04f30cbfd574c3 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 31 Aug 2022 17:09:29 +0100 Subject: [PATCH 0170/1028] Fix documentation where ciL should be biL Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 84350bc9b8..6769f0f1fd 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -181,7 +181,7 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, * is unspecified, and the resulting value in \p A might be * neither its original value nor \p A + \p B. * - * \return 1 if `A + cond * B >= (2^{ciL})^limbs`, 0 otherwise. + * \return 1 if `A + cond * B >= 2^(biL*limbs)`, 0 otherwise. */ mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *A, const mbedtls_mpi_uint *B, @@ -192,7 +192,7 @@ mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *A, * \brief Subtract two known-size large unsigned integers, returning the borrow. * * Calculate `A - B` where \p A and \p B have the same size. - * This function operates modulo `(2^ciL)^limbs` and returns the carry + * This function operates modulo `2^(biL*limbs)` and returns the carry * (1 if there was a wraparound, i.e. if `A < B`, and 0 otherwise). * * \p X may be aliased to \p A or \p B, or even both, but may not overlap @@ -248,8 +248,8 @@ mbedtls_mpi_uint mbedtls_mpi_montg_init( const mbedtls_mpi_uint *N ); * \param[out] X The destination MPI, as a little-endian array of * length \p AN_limbs. * On successful completion, X contains the result of - * the multiplication A * B * R^-1 mod N where - * R = (2^ciL)^AN_limbs. + * the multiplication `A * B * R^-1` mod N where + * `R = 2^(biL*AN_limbs)`. * \param[in] A Little-endian presentation of first operand. * Must have the same number of limbs as \p N. * \param[in] B Little-endian presentation of second operand. @@ -259,7 +259,7 @@ mbedtls_mpi_uint mbedtls_mpi_montg_init( const mbedtls_mpi_uint *N ); * This must be odd, and have exactly the same number * of limbs as \p A. * \param[in] AN_limbs The number of limbs in \p X, \p A and \p N. - * \param mm The Montgomery constant for \p N: -N^-1 mod 2^ciL. + * \param mm The Montgomery constant for \p N: -N^-1 mod 2^biL. * This can be calculated by `mbedtls_mpi_montg_init()`. * \param[in,out] T Temporary storage of size at least 2*AN_limbs+1 limbs. * Its initial content is unused and From aaf3b79bbbb20523dc45b1438e3e0dbde6295e33 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 31 Aug 2022 17:16:44 +0100 Subject: [PATCH 0171/1028] Use Python 3.5 style typing for dependencies Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index 9eaa7e28f6..1adf8e24f5 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -52,7 +52,7 @@ class BaseTarget(metaclass=ABCMeta): """ count = 0 case_description = "" - dependencies: List[str] = [] + dependencies = [] # type: List[str] target_basename = "" test_function = "" test_name = "" From 5eefc3db3f3d9aced0802edd76231446ce9c5c50 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 31 Aug 2022 17:16:50 +0100 Subject: [PATCH 0172/1028] Move macros to come before function declarations Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 6769f0f1fd..23d80a0ee0 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -31,6 +31,20 @@ #include "mbedtls/bignum.h" #endif +#define ciL ( sizeof(mbedtls_mpi_uint) ) /* chars in limb */ +#define biL ( ciL << 3 ) /* bits in limb */ +#define biH ( ciL << 2 ) /* half limb size */ + +/* + * Convert between bits/chars and number of limbs + * Divide first in order to avoid potential overflows + */ +#define BITS_TO_LIMBS(i) ( (i) / biL + ( (i) % biL != 0 ) ) +#define CHARS_TO_LIMBS(i) ( (i) / ciL + ( (i) % ciL != 0 ) ) +/* Get a specific byte, without range checks. */ +#define GET_BYTE( X, i ) \ + ( ( (X)[(i) / ciL] >> ( ( (i) % ciL ) * 8 ) ) & 0xff ) + /** Count leading zero bits in a given integer. * * \param a Integer to count leading zero bits. @@ -141,20 +155,6 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, unsigned char *output, size_t output_length ); -#define ciL ( sizeof(mbedtls_mpi_uint) ) /* chars in limb */ -#define biL ( ciL << 3 ) /* bits in limb */ -#define biH ( ciL << 2 ) /* half limb size */ - -/* - * Convert between bits/chars and number of limbs - * Divide first in order to avoid potential overflows - */ -#define BITS_TO_LIMBS(i) ( (i) / biL + ( (i) % biL != 0 ) ) -#define CHARS_TO_LIMBS(i) ( (i) / ciL + ( (i) % ciL != 0 ) ) -/* Get a specific byte, without range checks. */ -#define GET_BYTE( X, i ) \ - ( ( (X)[(i) / ciL] >> ( ( (i) % ciL ) * 8 ) ) & 0xff ) - /** * \brief Conditional addition of two known-size large unsigned integers, * returning the carry. From f0b2231fcd72a9225754ec68114e20a52f25fb91 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 31 Aug 2022 17:57:34 +0100 Subject: [PATCH 0173/1028] Update comments at the end of montmul following Gilles' feedback Signed-off-by: Tom Cosgrove --- library/bignum_core.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 1ca69dc6ce..cfcf91a835 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -413,36 +413,37 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, for( size_t i = 0; i < AN_limbs; i++, T++ ) { - mbedtls_mpi_uint u0, u1; /* T = (T + u0*B + u1*N) / 2^biL */ - u0 = A[i]; - u1 = ( T[0] + u0 * B[0] ) * mm; + mbedtls_mpi_uint u0 = A[i]; + mbedtls_mpi_uint u1 = ( T[0] + u0 * B[0] ) * mm; (void) mbedtls_mpi_core_mla( T, AN_limbs + 2, B, B_limbs, u0 ); (void) mbedtls_mpi_core_mla( T, AN_limbs + 2, N, AN_limbs, u1 ); } - /* It's possible that the result in T is > N, and so we might need to subtract N */ + /* + * The result we want is (T >= N) ? T - N : T. + * + * For better constant-time properties in this function, we always do the + * subtraction, with the result in X. + * + * We also look to see if there was any carry in the final additions in the + * loop above. + */ mbedtls_mpi_uint carry = T[AN_limbs]; mbedtls_mpi_uint borrow = mbedtls_mpi_core_sub( X, T, N, AN_limbs ); /* - * Both carry and borrow can only be 0 or 1. + * Using R as the Montgomery radix (auxiliary modulus) i.e. 2^(biL*AN_limbs): * - * If carry = 1, the result in T must be > N by definition, and the subtraction - * using only AN_limbs limbs will create borrow, but that will have the correct - * final result. + * T can be in one of 3 ranges: * - * i.e. (carry, borrow) of (1, 1) => return X + * 1) T < N : (carry, borrow) = (0, 1): we want T + * 2) N <= T < R : (carry, borrow) = (0, 0): we want X + * 3) T >= R : (carry, borrow) = (1, 1): we want X * - * If carry = 0, then we want to use the result of the subtraction iff - * borrow = 0. - * - * i.e. (carry, borrow) of (0, 0) => return X - * (0, 1) => return T - * - * (carry, borrow) = (1, 0) can't happen. + * and (carry, borrow) = (1, 0) can't happen. * * So the correct return value is already in X if (carry ^ borrow) = 0, * but is in (the lower AN_limbs limbs of) T if (carry ^ borrow) = 1. From 9339f05a81aa7016517af9c04e98b5fced23834a Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 1 Sep 2022 13:02:53 +0100 Subject: [PATCH 0174/1028] Swap arguments of TEST_EQUAL() where it improves readability Especially for a sequence of similar lines of test code, or where the result of an expression is being compared to a short integer (especially 0 or 1). Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.function | 122 +++++++++++++-------------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 40c302bdaa..298b548996 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1736,10 +1736,10 @@ void mbedtls_mpi_core_add_if( char * input_l, char * input_r, mbedtls_mpi_init( &l ); mbedtls_mpi_init( &r ); - TEST_EQUAL( mbedtls_test_read_mpi( &l, input_l ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &r, input_r ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &X4, input_X4 ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &X8, input_X8 ), 0 ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &l, input_l ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &r, input_r ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); /* We only need to work with one of (X4, carry4) or (X8, carry8) depending * on sizeof(mbedtls_mpi_uint) @@ -1748,9 +1748,9 @@ void mbedtls_mpi_core_add_if( char * input_l, char * input_r, mbedtls_mpi_uint carry = ( sizeof(mbedtls_mpi_uint) == 4 ) ? carry4 : carry8; /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( l.s, 1 ); - TEST_EQUAL( r.s, 1 ); - TEST_EQUAL( X->s, 1 ); + TEST_EQUAL( 1, l.s ); + TEST_EQUAL( 1, r.s ); + TEST_EQUAL( 1, X->s ); /* Test cases are such that l <= r, so #limbs should be <= */ TEST_ASSERT( l.n <= r.n ); @@ -1777,29 +1777,29 @@ void mbedtls_mpi_core_add_if( char * input_l, char * input_r, /* 1a) a += b, cond = 0 => there should be no carry */ memcpy( da, la, r.n * sizeof(mbedtls_mpi_uint) ); - TEST_EQUAL( mbedtls_mpi_core_add_if( da, ra, r.n, 0 ), 0 ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( da, ra, r.n, 0 ) ); /* 1b) and a should be unchanged */ - TEST_EQUAL( memcmp( da, la, r.n * sizeof(mbedtls_mpi_uint) ), 0 ); + TEST_EQUAL( 0, memcmp( da, la, r.n * sizeof(mbedtls_mpi_uint) ) ); /* 2a) a += b, cond = 1 => we should get the correct carry */ - TEST_EQUAL( mbedtls_mpi_core_add_if( da, ra, r.n, 1 ), carry ); + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( da, ra, r.n, 1 ) ); /* 2b) and a should have the correct result */ - TEST_EQUAL( memcmp( da, Xa, r.n * sizeof(mbedtls_mpi_uint) ), 0 ); + TEST_EQUAL( 0, memcmp( da, Xa, r.n * sizeof(mbedtls_mpi_uint) ) ); /* 3a) b += a, cond = 0 => there should be no carry */ memcpy( da, ra, r.n * sizeof(mbedtls_mpi_uint) ); - TEST_EQUAL( mbedtls_mpi_core_add_if( da, la, r.n, 0 ), 0 ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( da, la, r.n, 0 ) ); /* 3b) and b should be unchanged */ - TEST_EQUAL( memcmp( da, ra, r.n * sizeof(mbedtls_mpi_uint) ), 0 ); + TEST_EQUAL( 0, memcmp( da, ra, r.n * sizeof(mbedtls_mpi_uint) ) ); /* 4a) b += a, cond = 1 => we should get the correct carry */ - TEST_EQUAL( mbedtls_mpi_core_add_if( da, la, r.n, 1 ), carry ); + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( da, la, r.n, 1 ) ); /* 4b) and b should have the correct result */ - TEST_EQUAL( memcmp( da, Xa, r.n * sizeof(mbedtls_mpi_uint) ), 0 ); + TEST_EQUAL( 0, memcmp( da, Xa, r.n * sizeof(mbedtls_mpi_uint) ) ); exit: mbedtls_free( la ); @@ -1830,16 +1830,16 @@ void mbedtls_mpi_core_sub( char * input_l, char * input_r, mbedtls_mpi_init( &X4 ); mbedtls_mpi_init( &X8 ); - TEST_EQUAL( mbedtls_test_read_mpi( &l, input_l ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &r, input_r ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &X4, input_X4 ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &X8, input_X8 ), 0 ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &l, input_l ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &r, input_r ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( l.s, 1 ); - TEST_EQUAL( r.s, 1 ); - TEST_EQUAL( X4.s, 1 ); - TEST_EQUAL( X8.s, 1 ); + TEST_EQUAL( 1, l.s ); + TEST_EQUAL( 1, r.s ); + TEST_EQUAL( 1, X4.s ); + TEST_EQUAL( 1, X8.s ); /* Get the number of limbs we will need */ size_t limbs = ( l.n < r.n ) ? r.n : l.n; @@ -1873,7 +1873,7 @@ void mbedtls_mpi_core_sub( char * input_l, char * input_r, TEST_EQUAL( mbedtls_mpi_core_sub( da, la, ra, limbs ), (mbedtls_mpi_uint) carry ); /* 1b) d = l - r => we should get the correct result */ - TEST_EQUAL( memcmp( da, Xa, limbs * sizeof(mbedtls_mpi_uint) ), 0 ); + TEST_EQUAL( 0, memcmp( da, Xa, limbs * sizeof(mbedtls_mpi_uint) ) ); /* 2 and 3 test "d may be aliased to l or r" */ /* 2a) l -= r => we should get the correct carry (use d to avoid clobbering l) */ @@ -1881,14 +1881,14 @@ void mbedtls_mpi_core_sub( char * input_l, char * input_r, TEST_EQUAL( mbedtls_mpi_core_sub( da, da, ra, limbs ), (mbedtls_mpi_uint) carry ); /* 2b) l -= r => we should get the correct result */ - TEST_EQUAL( memcmp( da, Xa, limbs * sizeof(mbedtls_mpi_uint) ), 0 ); + TEST_EQUAL( 0, memcmp( da, Xa, limbs * sizeof(mbedtls_mpi_uint) ) ); /* 3a) r = l - r => we should get the correct carry (use d to avoid clobbering r) */ memcpy( da, ra, limbs * sizeof(mbedtls_mpi_uint) ); TEST_EQUAL( mbedtls_mpi_core_sub( da, la, da, limbs ), (mbedtls_mpi_uint) carry ); /* 3b) r = l - r => we should get the correct result */ - TEST_EQUAL( memcmp( da, Xa, limbs * sizeof(mbedtls_mpi_uint) ), 0 ); + TEST_EQUAL( 0, memcmp( da, Xa, limbs * sizeof(mbedtls_mpi_uint) ) ); exit: mbedtls_free( la ); @@ -1926,30 +1926,30 @@ void mbedtls_mpi_core_mla( char * input_d, char * input_s, char * input_b, mbedtls_mpi_init( &cy4 ); mbedtls_mpi_init( &cy8 ); - TEST_EQUAL( mbedtls_test_read_mpi( &d, input_d ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &s, input_s ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &b, input_b ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &X4, input_X4 ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &cy4, input_cy4 ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &X8, input_X8 ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &cy8, input_cy8 ), 0 ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &d, input_d ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &s, input_s ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &b, input_b ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &cy4, input_cy4 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &cy8, input_cy8 ) ); /* The MPI encoding of scalar b must be only 1 limb */ - TEST_EQUAL( b.n, 1 ); + TEST_EQUAL( 1, b.n ); /* We only need to work with X4 or X8, and cy4 or cy8, depending on sizeof(mbedtls_mpi_uint) */ mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; mbedtls_mpi *cy = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &cy4 : &cy8; /* The carry should only have one limb */ - TEST_EQUAL( cy->n, 1 ); + TEST_EQUAL( 1, cy->n ); /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( d.s, 1 ); - TEST_EQUAL( s.s, 1 ); - TEST_EQUAL( b.s, 1 ); - TEST_EQUAL( X->s, 1 ); - TEST_EQUAL( cy->s, 1 ); + TEST_EQUAL( 1, d.s ); + TEST_EQUAL( 1, s.s ); + TEST_EQUAL( 1, b.s ); + TEST_EQUAL( 1, X->s ); + TEST_EQUAL( 1, cy->s ); /* Get the (max) number of limbs we will need */ size_t limbs = ( d.n < s.n ) ? s.n : d.n; @@ -1975,7 +1975,7 @@ void mbedtls_mpi_core_mla( char * input_d, char * input_s, char * input_b, TEST_EQUAL( mbedtls_mpi_core_mla( da, limbs, s.p, s.n, *b.p ), *cy->p ); /* 1b) d += s * b => we should get the correct result */ - TEST_EQUAL( memcmp( da, Xa, limbs * sizeof(mbedtls_mpi_uint) ), 0 ); + TEST_EQUAL( 0, memcmp( da, Xa, limbs * sizeof(mbedtls_mpi_uint) ) ); exit: mbedtls_free( da ); @@ -1999,8 +1999,8 @@ void mbedtls_mpi_montg_init( char * input_N, char * input_mm ) mbedtls_mpi_init( &N ); mbedtls_mpi_init( &mm ); - TEST_EQUAL( mbedtls_test_read_mpi( &N, input_N ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &mm, input_mm ), 0 ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &mm, input_mm ) ); /* The MPI encoding of mm should be 1 limb (sizeof(mbedtls_mpi_uint) == 8) or * 2 limbs (sizeof(mbedtls_mpi_uint) == 4). @@ -2011,8 +2011,8 @@ void mbedtls_mpi_montg_init( char * input_N, char * input_mm ) TEST_ASSERT( mm.n == 1 || mm.n == 2 ); /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( N.s, 1 ); - TEST_EQUAL( mm.s, 1 ); + TEST_EQUAL( 1, N.s ); + TEST_EQUAL( 1, mm.s ); /* mbedtls_mpi_montg_init() only returns a result, no error possible */ mbedtls_mpi_uint result = mbedtls_mpi_montg_init( N.p ); @@ -2045,11 +2045,11 @@ void mbedtls_mpi_core_montmul( int limbs_AN4, int limbs_B4, mbedtls_mpi_init( &T ); mbedtls_mpi_init( &R ); /* for the result */ - TEST_EQUAL( mbedtls_test_read_mpi( &A, input_A ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &B, input_B ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &N, input_N ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &X4, input_X4 ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &X8, input_X8 ), 0 ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; @@ -2061,25 +2061,25 @@ void mbedtls_mpi_core_montmul( int limbs_AN4, int limbs_B4, TEST_ASSERT( limbs_B <= limbs_AN ); /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( A.s, 1 ); - TEST_EQUAL( B.s, 1 ); - TEST_EQUAL( N.s, 1 ); - TEST_EQUAL( X->s, 1 ); + TEST_EQUAL( 1, A.s ); + TEST_EQUAL( 1, B.s ); + TEST_EQUAL( 1, N.s ); + TEST_EQUAL( 1, X->s ); - TEST_EQUAL( mbedtls_mpi_grow( &A, limbs_AN ), 0 ); - TEST_EQUAL( mbedtls_mpi_grow( &N, limbs_AN ), 0 ); - TEST_EQUAL( mbedtls_mpi_grow( X, limbs_AN ), 0 ); - TEST_EQUAL( mbedtls_mpi_grow( &B, limbs_B ), 0 ); + TEST_EQUAL( 0, mbedtls_mpi_grow( &A, limbs_AN ) ); + TEST_EQUAL( 0, mbedtls_mpi_grow( &N, limbs_AN ) ); + TEST_EQUAL( 0, mbedtls_mpi_grow( X, limbs_AN ) ); + TEST_EQUAL( 0, mbedtls_mpi_grow( &B, limbs_B ) ); - TEST_EQUAL( mbedtls_mpi_grow( &T, limbs_AN * 2 + 1 ), 0 ); + TEST_EQUAL( 0, mbedtls_mpi_grow( &T, limbs_AN * 2 + 1 ) ); /* Calculate the Montgomery constant (this is unit tested separately) */ mbedtls_mpi_uint mm = mbedtls_mpi_montg_init( N.p ); - TEST_EQUAL( mbedtls_mpi_grow( &R, limbs_AN ), 0 ); /* ensure it's got the right number of limbs */ + TEST_EQUAL( 0, mbedtls_mpi_grow( &R, limbs_AN ) ); /* ensure it's got the right number of limbs */ mbedtls_mpi_core_montmul( R.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); - TEST_EQUAL( memcmp( R.p, X->p, N.n * sizeof(mbedtls_mpi_uint) ), 0 ); + TEST_EQUAL( 0, memcmp( R.p, X->p, N.n * sizeof(mbedtls_mpi_uint) ) ); exit: mbedtls_mpi_free( &A ); From b0fb17a829742214e550d6976366de9a6056a022 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 1 Sep 2022 15:04:43 +0100 Subject: [PATCH 0175/1028] Use ASSERT_COMPARE() instead of memcmp() in new tests Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.function | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 298b548996..cb8f9fb948 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1762,6 +1762,8 @@ void mbedtls_mpi_core_add_if( char * input_l, char * input_r, Xa = mbedtls_calloc( r.n, sizeof(mbedtls_mpi_uint) ); da = mbedtls_calloc( r.n, sizeof(mbedtls_mpi_uint) ); + size_t bytes = r.n * sizeof(mbedtls_mpi_uint); + TEST_ASSERT( la != NULL ); TEST_ASSERT( ra != NULL ); TEST_ASSERT( Xa != NULL ); @@ -1780,26 +1782,26 @@ void mbedtls_mpi_core_add_if( char * input_l, char * input_r, TEST_EQUAL( 0, mbedtls_mpi_core_add_if( da, ra, r.n, 0 ) ); /* 1b) and a should be unchanged */ - TEST_EQUAL( 0, memcmp( da, la, r.n * sizeof(mbedtls_mpi_uint) ) ); + ASSERT_COMPARE( da, bytes, la, bytes ); /* 2a) a += b, cond = 1 => we should get the correct carry */ TEST_EQUAL( carry, mbedtls_mpi_core_add_if( da, ra, r.n, 1 ) ); /* 2b) and a should have the correct result */ - TEST_EQUAL( 0, memcmp( da, Xa, r.n * sizeof(mbedtls_mpi_uint) ) ); + ASSERT_COMPARE( da, bytes, Xa, bytes ); /* 3a) b += a, cond = 0 => there should be no carry */ memcpy( da, ra, r.n * sizeof(mbedtls_mpi_uint) ); TEST_EQUAL( 0, mbedtls_mpi_core_add_if( da, la, r.n, 0 ) ); /* 3b) and b should be unchanged */ - TEST_EQUAL( 0, memcmp( da, ra, r.n * sizeof(mbedtls_mpi_uint) ) ); + ASSERT_COMPARE( da, bytes, ra, bytes ); /* 4a) b += a, cond = 1 => we should get the correct carry */ TEST_EQUAL( carry, mbedtls_mpi_core_add_if( da, la, r.n, 1 ) ); /* 4b) and b should have the correct result */ - TEST_EQUAL( 0, memcmp( da, Xa, r.n * sizeof(mbedtls_mpi_uint) ) ); + ASSERT_COMPARE( da, bytes, Xa, bytes ); exit: mbedtls_free( la ); @@ -1843,6 +1845,7 @@ void mbedtls_mpi_core_sub( char * input_l, char * input_r, /* Get the number of limbs we will need */ size_t limbs = ( l.n < r.n ) ? r.n : l.n; + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); /* We only need to work with X4 or X8, depending on sizeof(mbedtls_mpi_uint) */ mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; @@ -1873,7 +1876,7 @@ void mbedtls_mpi_core_sub( char * input_l, char * input_r, TEST_EQUAL( mbedtls_mpi_core_sub( da, la, ra, limbs ), (mbedtls_mpi_uint) carry ); /* 1b) d = l - r => we should get the correct result */ - TEST_EQUAL( 0, memcmp( da, Xa, limbs * sizeof(mbedtls_mpi_uint) ) ); + ASSERT_COMPARE( da, bytes, Xa, bytes ); /* 2 and 3 test "d may be aliased to l or r" */ /* 2a) l -= r => we should get the correct carry (use d to avoid clobbering l) */ @@ -1881,14 +1884,14 @@ void mbedtls_mpi_core_sub( char * input_l, char * input_r, TEST_EQUAL( mbedtls_mpi_core_sub( da, da, ra, limbs ), (mbedtls_mpi_uint) carry ); /* 2b) l -= r => we should get the correct result */ - TEST_EQUAL( 0, memcmp( da, Xa, limbs * sizeof(mbedtls_mpi_uint) ) ); + ASSERT_COMPARE( da, bytes, Xa, bytes ); /* 3a) r = l - r => we should get the correct carry (use d to avoid clobbering r) */ memcpy( da, ra, limbs * sizeof(mbedtls_mpi_uint) ); TEST_EQUAL( mbedtls_mpi_core_sub( da, la, da, limbs ), (mbedtls_mpi_uint) carry ); /* 3b) r = l - r => we should get the correct result */ - TEST_EQUAL( 0, memcmp( da, Xa, limbs * sizeof(mbedtls_mpi_uint) ) ); + ASSERT_COMPARE( da, bytes, Xa, bytes ); exit: mbedtls_free( la ); @@ -1953,6 +1956,7 @@ void mbedtls_mpi_core_mla( char * input_d, char * input_s, char * input_b, /* Get the (max) number of limbs we will need */ size_t limbs = ( d.n < s.n ) ? s.n : d.n; + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); /* The result shouldn't have more limbs than the longest input */ TEST_ASSERT( X->n <= limbs ); @@ -1975,7 +1979,7 @@ void mbedtls_mpi_core_mla( char * input_d, char * input_s, char * input_b, TEST_EQUAL( mbedtls_mpi_core_mla( da, limbs, s.p, s.n, *b.p ), *cy->p ); /* 1b) d += s * b => we should get the correct result */ - TEST_EQUAL( 0, memcmp( da, Xa, limbs * sizeof(mbedtls_mpi_uint) ) ); + ASSERT_COMPARE( da, bytes, Xa, bytes ); exit: mbedtls_free( da ); @@ -2079,7 +2083,8 @@ void mbedtls_mpi_core_montmul( int limbs_AN4, int limbs_B4, TEST_EQUAL( 0, mbedtls_mpi_grow( &R, limbs_AN ) ); /* ensure it's got the right number of limbs */ mbedtls_mpi_core_montmul( R.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); - TEST_EQUAL( 0, memcmp( R.p, X->p, N.n * sizeof(mbedtls_mpi_uint) ) ); + size_t bytes = N.n * sizeof(mbedtls_mpi_uint); + ASSERT_COMPARE( R.p, bytes, X->p, bytes ); exit: mbedtls_mpi_free( &A ); From fe7524de03914c1387818526e1dcecbdfca377f8 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Thu, 1 Sep 2022 16:07:18 +0100 Subject: [PATCH 0176/1028] Make minor style change Signed-off-by: Tuvshinzaya Erdenekhuu --- tests/suites/test_suite_rsa.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_rsa.function b/tests/suites/test_suite_rsa.function index 1aea673a5e..5bba023fe4 100644 --- a/tests/suites/test_suite_rsa.function +++ b/tests/suites/test_suite_rsa.function @@ -50,7 +50,7 @@ void rsa_invalid_param( ) MBEDTLS_ERR_RSA_INVALID_PADDING ); #endif -#if defined( MBEDTLS_PKCS1_V15 ) +#if defined(MBEDTLS_PKCS1_V15) TEST_EQUAL( mbedtls_rsa_rsassa_pkcs1_v15_sign(&ctx, NULL, NULL, md_alg_none, buf_len, From 08b223443f5611e678f52fbb808d34be63b38e9a Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Thu, 1 Sep 2022 16:18:00 +0100 Subject: [PATCH 0177/1028] Add new tests Signed-off-by: Tuvshinzaya Erdenekhuu --- tests/suites/test_suite_rsa.function | 55 ++++++++++++++++++++++++---- 1 file changed, 47 insertions(+), 8 deletions(-) diff --git a/tests/suites/test_suite_rsa.function b/tests/suites/test_suite_rsa.function index 5bba023fe4..ad52e98cd4 100644 --- a/tests/suites/test_suite_rsa.function +++ b/tests/suites/test_suite_rsa.function @@ -33,16 +33,27 @@ void rsa_invalid_param( ) MBEDTLS_ERR_RSA_INVALID_PADDING ); TEST_EQUAL( mbedtls_rsa_pkcs1_sign(&ctx, NULL, - NULL, md_alg_none, + NULL, MBEDTLS_MD_NONE, buf_len, NULL, buf), MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); - TEST_EQUAL( mbedtls_rsa_pkcs1_verify(&ctx, md_alg_none, + TEST_EQUAL( mbedtls_rsa_pkcs1_sign(&ctx, NULL, + NULL, MBEDTLS_MD_SHA256, + 0, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + + TEST_EQUAL( mbedtls_rsa_pkcs1_verify(&ctx, MBEDTLS_MD_NONE, buf_len, NULL, buf), MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + TEST_EQUAL( mbedtls_rsa_pkcs1_verify(&ctx, MBEDTLS_MD_SHA256, + 0, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + #if !defined(MBEDTLS_PKCS1_V15) TEST_EQUAL( mbedtls_rsa_set_padding( &ctx, MBEDTLS_RSA_PKCS_V15, @@ -52,16 +63,28 @@ void rsa_invalid_param( ) #if defined(MBEDTLS_PKCS1_V15) TEST_EQUAL( mbedtls_rsa_rsassa_pkcs1_v15_sign(&ctx, NULL, - NULL, md_alg_none, + NULL, MBEDTLS_MD_NONE, buf_len, NULL, buf), MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); - TEST_EQUAL( mbedtls_rsa_rsassa_pkcs1_v15_verify(&ctx, md_alg_none, + TEST_EQUAL( mbedtls_rsa_rsassa_pkcs1_v15_sign(&ctx, NULL, + NULL, MBEDTLS_MD_SHA256, + 0, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + + TEST_EQUAL( mbedtls_rsa_rsassa_pkcs1_v15_verify(&ctx, MBEDTLS_MD_NONE, buf_len, NULL, buf), MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + TEST_EQUAL( mbedtls_rsa_rsassa_pkcs1_v15_verify(&ctx, MBEDTLS_MD_SHA256, + 0, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + + #endif #if !defined(MBEDTLS_PKCS1_V21) @@ -73,22 +96,38 @@ void rsa_invalid_param( ) #if defined(MBEDTLS_PKCS1_V21) TEST_EQUAL( mbedtls_rsa_rsassa_pss_sign_ext(&ctx, NULL, NULL, - md_alg_none, buf_len, + MBEDTLS_MD_NONE, buf_len, NULL, buf_len, buf ), MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); - TEST_EQUAL( mbedtls_rsa_rsassa_pss_verify_ext(&ctx, md_alg_none, + TEST_EQUAL( mbedtls_rsa_rsassa_pss_sign_ext(&ctx, NULL, NULL, + MBEDTLS_MD_SHA256, 0, + NULL, buf_len, + buf ), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + + TEST_EQUAL( mbedtls_rsa_rsassa_pss_verify_ext(&ctx, MBEDTLS_MD_NONE, buf_len, NULL, - md_alg_none, + MBEDTLS_MD_NONE, buf_len, buf), MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); - TEST_EQUAL( mbedtls_rsa_rsassa_pss_verify(&ctx, md_alg_none, + TEST_EQUAL( mbedtls_rsa_rsassa_pss_verify_ext(&ctx, MBEDTLS_MD_SHA256, + 0, NULL, + MBEDTLS_MD_NONE, + buf_len, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + + TEST_EQUAL( mbedtls_rsa_rsassa_pss_verify(&ctx, MBEDTLS_MD_NONE, buf_len, NULL, buf), MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + TEST_EQUAL( mbedtls_rsa_rsassa_pss_verify(&ctx, MBEDTLS_MD_SHA256, + 0, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); #endif exit: From 771436866712f353d7b5519e490f5ca5972d51f0 Mon Sep 17 00:00:00 2001 From: Tuvshinzaya Erdenekhuu Date: Thu, 1 Sep 2022 17:11:14 +0100 Subject: [PATCH 0178/1028] Remove unused variable Signed-off-by: Tuvshinzaya Erdenekhuu --- tests/suites/test_suite_rsa.function | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/suites/test_suite_rsa.function b/tests/suites/test_suite_rsa.function index ad52e98cd4..5b3dddf907 100644 --- a/tests/suites/test_suite_rsa.function +++ b/tests/suites/test_suite_rsa.function @@ -16,7 +16,6 @@ void rsa_invalid_param( ) mbedtls_rsa_context ctx; const int invalid_padding = 42; const int invalid_hash_id = 0xff; - const mbedtls_md_type_t md_alg_none = MBEDTLS_MD_NONE; unsigned char buf[] = {0x00,0x01,0x02,0x03,0x04,0x05}; size_t buf_len = sizeof( buf ); From 1b2947a6149c71e0bfe65c3f3179c0c47b65aa5e Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 2 Sep 2022 10:24:55 +0100 Subject: [PATCH 0179/1028] Remove mbedtls_ prefix from bignum test cases Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.data | 9554 +++++++++++++------------- tests/suites/test_suite_mpi.function | 186 +- 2 files changed, 4870 insertions(+), 4870 deletions(-) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 9ee37312ee..85812f5080 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -83,516 +83,516 @@ Test mpi_write_string #10 (Negative hex with odd number of digits) mpi_read_write_string:16:"-1":16:"":3:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL Test mbedtls_mpi_core_io functions with null pointers -mbedtls_mpi_core_io_null +mpi_core_io_null Test mbedtls_mpi_core_io_be #1 (Buffer and limbs just fit, input limb-aligned) -mbedtls_mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:0:0 +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:0:0 Test mbedtls_mpi_core_io_be #2 (Buffer and limbs just fit, input unaligned) -mbedtls_mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:0:0 +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:0:0 Test mbedtls_mpi_core_io_be #3 (Buffer just fits, extra limbs, input limb-aligned) -mbedtls_mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:0:0 +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:0:0 Test mbedtls_mpi_core_io_be #4 (Buffer just fits, extra limbs, input unaligned) -mbedtls_mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:0:0 +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:0:0 Test mbedtls_mpi_core_io_be #5 (Extra limbs, buffer aligned to extra limbs, input limb-aligned) -mbedtls_mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:0:0 +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:0:0 Test mbedtls_mpi_core_io_be #6 (Extra limbs, buffer aligned to extra limbs, input unaligned) -mbedtls_mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:0:0 +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:0:0 Test mbedtls_mpi_core_io_be #7 (Buffer and limbs just fit, input limb-aligned with leading zeroes) -mbedtls_mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:24:0:0 +mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:24:0:0 Test mbedtls_mpi_core_io_be #8 (Buffer and limbs just fit, input unaligned with leading zeroes) -mbedtls_mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:24:0:0 +mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:24:0:0 Test mbedtls_mpi_core_io_be #9 (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) -mbedtls_mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:28:0:0 +mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:28:0:0 Test mbedtls_mpi_core_io_be #10 (Buffer just fits, extra limbs, input unaligned with leading zeroes) -mbedtls_mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:28:0:0 +mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:28:0:0 Test mbedtls_mpi_core_io_be #11 (Zero) -mbedtls_mpi_core_io_be:"00":1:1:0:0 +mpi_core_io_be:"00":1:1:0:0 Test mbedtls_mpi_core_io_be #12 (Zero, empty output) -mbedtls_mpi_core_io_be:"00":0:1:0:0 +mpi_core_io_be:"00":0:1:0:0 Test mbedtls_mpi_core_io_be #13 (Zero, empty input) -mbedtls_mpi_core_io_be:"":1:1:0:0 +mpi_core_io_be:"":1:1:0:0 Test mbedtls_mpi_core_io_be #14 (One) -mbedtls_mpi_core_io_be:"01":1:1:0:0 +mpi_core_io_be:"01":1:1:0:0 Test mbedtls_mpi_core_io_be #15 (One limb, 32 bit) depends_on:MBEDTLS_HAVE_INT32 -mbedtls_mpi_core_io_be:"ff000000":4:1:0:0 +mpi_core_io_be:"ff000000":4:1:0:0 Test mbedtls_mpi_core_io_be #16 (One limb, 64 bit) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_io_be:"ff00000000000000":8:2:0:0 +mpi_core_io_be:"ff00000000000000":8:2:0:0 Test mbedtls_mpi_core_io_be #17 (not enough limbs, input limb-aligned) -mbedtls_mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 Test mbedtls_mpi_core_io_be #18 (not enough limbs, input unaligned) -mbedtls_mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 Test mbedtls_mpi_core_io_be #19 (buffer too small, input limb-aligned) -mbedtls_mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL Test mbedtls_mpi_core_io_be #20 (buffer too small, input unaligned) -mbedtls_mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL Test mbedtls_mpi_core_io_be #21 (Buffer and limbs fit, input unaligned, odd number of limbs) -mbedtls_mpi_core_io_be:"00de4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":82:21:0:0 +mpi_core_io_be:"00de4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":82:21:0:0 Test mbedtls_mpi_core_io_le #1 (Buffer and limbs just fit, input limb-aligned) -mbedtls_mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:0:0 +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:0:0 Test mbedtls_mpi_core_io_le #2 (Buffer and limbs just fit, input unaligned) -mbedtls_mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:0:0 +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:0:0 Test mbedtls_mpi_core_io_le #3 (Buffer just fits, extra limbs, input limb-aligned) -mbedtls_mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:0:0 +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:0:0 Test mbedtls_mpi_core_io_le #4 (Buffer just fits, extra limbs, input unaligned) -mbedtls_mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:0:0 +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:0:0 Test mbedtls_mpi_core_io_le #5 (Extra limbs, buffer aligned to extra limbs, input limb-aligned) -mbedtls_mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:0:0 +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:0:0 Test mbedtls_mpi_core_io_le #6 (Extra limbs, buffer aligned to extra limbs, input unaligned) -mbedtls_mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:0:0 +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:0:0 Test mbedtls_mpi_core_io_le #7 (Buffer and limbs just fit, input limb-aligned with leading zeroes) -mbedtls_mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:24:0:0 +mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:24:0:0 Test mbedtls_mpi_core_io_le #8 (Buffer and limbs just fit, input unaligned with leading zeroes) -mbedtls_mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:24:0:0 +mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:24:0:0 Test mbedtls_mpi_core_io_le #9 (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) -mbedtls_mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:28:0:0 +mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:28:0:0 Test mbedtls_mpi_core_io_le #10 (Buffer just fits, extra limbs, input unaligned with leading zeroes) -mbedtls_mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:28:0:0 +mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:28:0:0 Test mbedtls_mpi_core_io_le #11 (Zero) -mbedtls_mpi_core_io_le:"00":1:1:0:0 +mpi_core_io_le:"00":1:1:0:0 Test mbedtls_mpi_core_io_le #12 (Zero, empty output) -mbedtls_mpi_core_io_le:"00":0:1:0:0 +mpi_core_io_le:"00":0:1:0:0 Test mbedtls_mpi_core_io_le #13 (Zero, empty input) -mbedtls_mpi_core_io_le:"":1:1:0:0 +mpi_core_io_le:"":1:1:0:0 Test mbedtls_mpi_core_io_le #14 (One) -mbedtls_mpi_core_io_le:"01":1:1:0:0 +mpi_core_io_le:"01":1:1:0:0 Test mbedtls_mpi_core_io_le #15 (One limb) depends_on:MBEDTLS_HAVE_INT32 -mbedtls_mpi_core_io_le:"000000ff":4:1:0:0 +mpi_core_io_le:"000000ff":4:1:0:0 Test mbedtls_mpi_core_io_le #16 (One limb) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_io_le:"00000000000000ff":8:2:0:0 +mpi_core_io_le:"00000000000000ff":8:2:0:0 Test mbedtls_mpi_core_io_le #17 (not enough limbs, input limb-aligned) -mbedtls_mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 Test mbedtls_mpi_core_io_le #18 (not enough limbs, input unaligned) -mbedtls_mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 Test mbedtls_mpi_core_io_le #19 (buffer too small, input limb-aligned) -mbedtls_mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL Test mbedtls_mpi_core_io_le #20 (buffer too small, input unaligned) -mbedtls_mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL Test mbedtls_mpi_core_io_le #21 (Buffer and limbs fit, input unaligned, odd number of limbs) -mbedtls_mpi_core_io_le:"de4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b442400":82:21:0:0 +mpi_core_io_le:"de4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b442400":82:21:0:0 Test mbedtls_mpi_mod_raw_io #1 BE (Buffer and limbs just fit, input limb-aligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 Test mbedtls_mpi_mod_raw_io #1 LE (Buffer and limbs just fit, input limb-aligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 Test mbedtls_mpi_mod_raw_io #2 BE (Buffer and limbs just fit, input unaligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 Test mbedtls_mpi_mod_raw_io #2 LE (Buffer and limbs just fit, input unaligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 Test mbedtls_mpi_mod_raw_io #3 BE (Buffer just fits, extra limbs, input limb-aligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 Test mbedtls_mpi_mod_raw_io #3 LE (Buffer just fits, extra limbs, input limb-aligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 Test mbedtls_mpi_mod_raw_io #4 BE (Buffer just fits, extra limbs, input unaligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 Test mbedtls_mpi_mod_raw_io #4 LE (Buffer just fits, extra limbs, input unaligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 Test mbedtls_mpi_mod_raw_io #5 BE (Extra limbs, buffer aligned to extra limbs, input limb-aligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 Test mbedtls_mpi_mod_raw_io #5 LE (Extra limbs, buffer aligned to extra limbs, input limb-aligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 Test mbedtls_mpi_mod_raw_io #6 BE (Extra limbs, buffer aligned to extra limbs, input unaligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 Test mbedtls_mpi_mod_raw_io #6 LE (Extra limbs, buffer aligned to extra limbs, input unaligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 Test mbedtls_mpi_mod_raw_io #7 BE (Buffer and limbs just fit, input limb-aligned with leading zeroes) -mbedtls_mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 Test mbedtls_mpi_mod_raw_io #7 LE (Buffer and limbs just fit, input limb-aligned with leading zeroes) -mbedtls_mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 +mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 Test mbedtls_mpi_mod_raw_io #8 BE (Buffer and limbs just fit, input unaligned with leading zeroes) -mbedtls_mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 Test mbedtls_mpi_mod_raw_io #8 LE (Buffer and limbs just fit, input unaligned with leading zeroes) -mbedtls_mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 +mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 Test mbedtls_mpi_mod_raw_io #9 BE (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) -mbedtls_mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 Test mbedtls_mpi_mod_raw_io #9 LE (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) -mbedtls_mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 +mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 Test mbedtls_mpi_mod_raw_io #10 BE (Buffer just fits, extra limbs, input unaligned with leading zeroes) -mbedtls_mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 Test mbedtls_mpi_mod_raw_io #10 LE (Buffer just fits, extra limbs, input unaligned with leading zeroes) -mbedtls_mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 +mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 Test mbedtls_mpi_mod_raw_io #11 BE (Zero) -mbedtls_mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 Test mbedtls_mpi_mod_raw_io #11 LE (Zero) -mbedtls_mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 Test mbedtls_mpi_mod_raw_io #12 BE (Zero, empty output) -mbedtls_mpi_mod_raw_io:"00":0:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +mpi_mod_raw_io:"00":0:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 Test mbedtls_mpi_mod_raw_io #12 LE (Zero, empty output) -mbedtls_mpi_mod_raw_io:"00":0:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 +mpi_mod_raw_io:"00":0:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 Test mbedtls_mpi_mod_raw_io #13 BE (Zero, empty input) -mbedtls_mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 Test mbedtls_mpi_mod_raw_io #13 LE (Zero, empty input) -mbedtls_mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 +mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 Test mbedtls_mpi_mod_raw_io #14 BE (One) -mbedtls_mpi_mod_raw_io:"01":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +mpi_mod_raw_io:"01":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 Test mbedtls_mpi_mod_raw_io #14 LE (One) -mbedtls_mpi_mod_raw_io:"01":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 +mpi_mod_raw_io:"01":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 Test mbedtls_mpi_mod_raw_io #14 BE (One limb) -mbedtls_mpi_mod_raw_io:"ff00000000000000":8:2:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +mpi_mod_raw_io:"ff00000000000000":8:2:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 Test mbedtls_mpi_mod_raw_io #14 LE (One limb) -mbedtls_mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 +mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 Test mbedtls_mpi_mod_raw_io #15 BE (One limb) depends_on:MBEDTLS_HAVE_INT32 -mbedtls_mpi_mod_raw_io:"000000ff":4:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +mpi_mod_raw_io:"000000ff":4:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 Test mbedtls_mpi_mod_raw_io #15 LE (One limb) depends_on:MBEDTLS_HAVE_INT32 -mbedtls_mpi_mod_raw_io:"000000ff":4:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 +mpi_mod_raw_io:"000000ff":4:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 Test mbedtls_mpi_mod_raw_io #16 BE (One limb) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 Test mbedtls_mpi_mod_raw_io #16 LE (One limb) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 +mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 Test mbedtls_mpi_mod_raw_io #17 BE (not enough limbs, input limb-aligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 Test mbedtls_mpi_mod_raw_io #17 LE (not enough limbs, input limb-aligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 Test mbedtls_mpi_mod_raw_io #18 BE (not enough limbs, input unaligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 Test mbedtls_mpi_mod_raw_io #18 LE (not enough limbs, input unaligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 Test mbedtls_mpi_mod_raw_io #19 BE (buffer too small, input limb-aligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL Test mbedtls_mpi_mod_raw_io #19 LE (buffer too small, input limb-aligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL Test mbedtls_mpi_mod_raw_io #20 BE (buffer too small, input unaligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL Test mbedtls_mpi_mod_raw_io #20 LE (buffer too small, input unaligned) -mbedtls_mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL Test mbedtls_mpi_mod_raw_io #21 BE (modulus is equal to input) -mbedtls_mpi_mod_raw_io:"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF":1024:256:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 +mpi_mod_raw_io:"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF":1024:256:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 Test mbedtls_mpi_mod_raw_io #21 LE (modulus is equal to input) -mbedtls_mpi_mod_raw_io:"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF":1024:256:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 +mpi_mod_raw_io:"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF":1024:256:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 Test mbedtls_mpi_mod_raw_io #22 (reading with invalid endianness) -mbedtls_mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 +mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 Test mbedtls_mpi_mod_raw_io #22 (writing with invalid endianness) -mbedtls_mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_mod_setup #1 (Both representations invalid) -mbedtls_mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_mod_setup #2 (Internal representation invalid) -mbedtls_mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_mod_setup #3 (Internal representation invalid) -mbedtls_mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_mod_setup #4 (External representation invalid) -mbedtls_mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_MONTGOMERY:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_MONTGOMERY:MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_mod_setup #5 (External representation invalid) -mbedtls_mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_OPT_RED:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_OPT_RED:MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_mod_setup #6 (Both representations valid) -mbedtls_mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 Test mbedtls_mpi_mod_setup #7 (Both representations valid) -mbedtls_mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 Test mbedtls_mpi_mod_setup #8 (Both representations valid) -mbedtls_mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 Test mbedtls_mpi_mod_setup #9 (Both representations valid) -mbedtls_mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 Base test mbedtls_mpi_read_binary #1 -mbedtls_mpi_read_binary:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"0941379D00FED1491FE15DF284DFDE4A142F68AA8D412023195CEE66883E6290FFE703F4EA5963BF212713CEE46B107C09182B5EDCD955ADAC418BF4918E2889AF48E1099D513830CEC85C26AC1E158B52620E33BA8692F893EFBB2F958B4424" +mpi_read_binary:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"0941379D00FED1491FE15DF284DFDE4A142F68AA8D412023195CEE66883E6290FFE703F4EA5963BF212713CEE46B107C09182B5EDCD955ADAC418BF4918E2889AF48E1099D513830CEC85C26AC1E158B52620E33BA8692F893EFBB2F958B4424" Base test mbedtls_mpi_read_binary_le #1 -mbedtls_mpi_read_binary_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"24448B952FBBEF93F89286BA330E62528B151EAC265CC8CE3038519D09E148AF89288E91F48B41ACAD55D9DC5E2B18097C106BE4CE132721BF6359EAF403E7FF90623E8866EE5C192320418DAA682F144ADEDF84F25DE11F49D1FE009D374109" +mpi_read_binary_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"24448B952FBBEF93F89286BA330E62528B151EAC265CC8CE3038519D09E148AF89288E91F48B41ACAD55D9DC5E2B18097C106BE4CE132721BF6359EAF403E7FF90623E8866EE5C192320418DAA682F144ADEDF84F25DE11F49D1FE009D374109" Base test mbedtls_mpi_write_binary #1 -mbedtls_mpi_write_binary:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":200:0 +mpi_write_binary:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":200:0 Test mbedtls_mpi_write_binary #1 (Buffer just fits) -mbedtls_mpi_write_binary:"123123123123123123123123123":"0123123123123123123123123123":14:0 +mpi_write_binary:"123123123123123123123123123":"0123123123123123123123123123":14:0 Test mbedtls_mpi_write_binary #2 (Buffer too small) -mbedtls_mpi_write_binary:"123123123123123123123123123":"23123123123123123123123123":13:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL +mpi_write_binary:"123123123123123123123123123":"23123123123123123123123123":13:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL Base test mbedtls_mpi_write_binary_le #1 -mbedtls_mpi_write_binary_le:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"24448b952fbbef93f89286ba330e62528b151eac265cc8ce3038519d09e148af89288e91f48b41acad55d9dc5e2b18097c106be4ce132721bf6359eaf403e7ff90623e8866ee5c192320418daa682f144adedf84f25de11f49d1fe009d374109":200:0 +mpi_write_binary_le:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"24448b952fbbef93f89286ba330e62528b151eac265cc8ce3038519d09e148af89288e91f48b41acad55d9dc5e2b18097c106be4ce132721bf6359eaf403e7ff90623e8866ee5c192320418daa682f144adedf84f25de11f49d1fe009d374109":200:0 Test mbedtls_mpi_write_binary_le #1 (Buffer just fits) -mbedtls_mpi_write_binary_le:"123123123123123123123123123":"2331122331122331122331122301":14:0 +mpi_write_binary_le:"123123123123123123123123123":"2331122331122331122331122301":14:0 Test mbedtls_mpi_write_binary_le #2 (Buffer too small) -mbedtls_mpi_write_binary_le:"123123123123123123123123123":"23311223311223311223311223":13:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL +mpi_write_binary_le:"123123123123123123123123123":"23311223311223311223311223":13:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL Base test mbedtls_mpi_read_file #1 -mbedtls_mpi_read_file:"data_files/mpi_16":"01f55332c3a48b910f9942f6c914e58bef37a47ee45cb164a5b6b8d1006bf59a059c21449939ebebfdf517d2e1dbac88010d7b1f141e997bd6801ddaec9d05910f4f2de2b2c4d714e2c14a72fc7f17aa428d59c531627f09":0 +mpi_read_file:"data_files/mpi_16":"01f55332c3a48b910f9942f6c914e58bef37a47ee45cb164a5b6b8d1006bf59a059c21449939ebebfdf517d2e1dbac88010d7b1f141e997bd6801ddaec9d05910f4f2de2b2c4d714e2c14a72fc7f17aa428d59c531627f09":0 Test mbedtls_mpi_read_file #1 (Empty file) -mbedtls_mpi_read_file:"data_files/hash_file_4":"":MBEDTLS_ERR_MPI_FILE_IO_ERROR +mpi_read_file:"data_files/hash_file_4":"":MBEDTLS_ERR_MPI_FILE_IO_ERROR Test mbedtls_mpi_read_file #2 (Illegal input) -mbedtls_mpi_read_file:"data_files/hash_file_2":"":0 +mpi_read_file:"data_files/hash_file_2":"":0 Test mbedtls_mpi_read_file #3 (Input too big) -mbedtls_mpi_read_file:"data_files/mpi_too_big":"":MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL +mpi_read_file:"data_files/mpi_too_big":"":MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL Base test mbedtls_mpi_write_file #1 -mbedtls_mpi_write_file:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"data_files/mpi_write" +mpi_write_file:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"data_files/mpi_write" Test mbedtls_mpi_lsb: 0 (null) -mbedtls_mpi_lsb:"":0 +mpi_lsb:"":0 Test mbedtls_mpi_lsb: 0 (1 limb) -mbedtls_mpi_lsb:"0":0 +mpi_lsb:"0":0 Base test mbedtls_mpi_lsb #1 -mbedtls_mpi_lsb:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":2 +mpi_lsb:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":2 Base test mbedtls_mpi_lsb #2 -mbedtls_mpi_lsb:"18":3 +mpi_lsb:"18":3 Base test mbedtls_mpi_lsb #3 -mbedtls_mpi_lsb:"24":2 +mpi_lsb:"24":2 Base test mbedtls_mpi_lsb #4 -mbedtls_mpi_lsb:"2000":13 +mpi_lsb:"2000":13 Base test mbedtls_mpi_bitlen #1 -mbedtls_mpi_bitlen:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":764 +mpi_bitlen:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":764 Base test mbedtls_mpi_bitlen #2 -mbedtls_mpi_bitlen:"18":5 +mpi_bitlen:"18":5 Base test mbedtls_mpi_bitlen #3 -mbedtls_mpi_bitlen:"1":1 +mpi_bitlen:"1":1 Base test mbedtls_mpi_bitlen #4 -mbedtls_mpi_bitlen:"f":4 +mpi_bitlen:"f":4 Base test mbedtls_mpi_bitlen #5 -mbedtls_mpi_bitlen:"10":5 +mpi_bitlen:"10":5 Base test mbedtls_mpi_bitlen #6 -mbedtls_mpi_bitlen:"a":4 +mpi_bitlen:"a":4 Base test mbedtls_mpi_bitlen: 0 (null) -mbedtls_mpi_bitlen:"":0 +mpi_bitlen:"":0 Base test mbedtls_mpi_bitlen: 0 (1 limb) -mbedtls_mpi_bitlen:"0":0 +mpi_bitlen:"0":0 Base test mbedtls_mpi_cmp_int #1 -mbedtls_mpi_cmp_int:693:693:0 +mpi_cmp_int:693:693:0 Base test mbedtls_mpi_cmp_int #2 -mbedtls_mpi_cmp_int:693:692:1 +mpi_cmp_int:693:692:1 Base test mbedtls_mpi_cmp_int #3 -mbedtls_mpi_cmp_int:693:694:-1 +mpi_cmp_int:693:694:-1 Base test mbedtls_mpi_cmp_int (Negative values) #1 -mbedtls_mpi_cmp_int:-2:-2:0 +mpi_cmp_int:-2:-2:0 Base test mbedtls_mpi_cmp_int (Negative values) #2 -mbedtls_mpi_cmp_int:-2:-3:1 +mpi_cmp_int:-2:-3:1 Base test mbedtls_mpi_cmp_int (Negative values) #3 -mbedtls_mpi_cmp_int:-2:-1:-1 +mpi_cmp_int:-2:-1:-1 Base test mbedtls_mpi_cmp_mpi #1 -mbedtls_mpi_cmp_mpi:"2b5":"2b5":0 +mpi_cmp_mpi:"2b5":"2b5":0 Base test mbedtls_mpi_cmp_mpi #2 -mbedtls_mpi_cmp_mpi:"2b5":"2b4":1 +mpi_cmp_mpi:"2b5":"2b4":1 Base test mbedtls_mpi_cmp_mpi #3 -mbedtls_mpi_cmp_mpi:"2b5":"2b6":-1 +mpi_cmp_mpi:"2b5":"2b6":-1 Base test mbedtls_mpi_cmp_mpi (Negative values) #1 -mbedtls_mpi_cmp_mpi:"-2":"-2":0 +mpi_cmp_mpi:"-2":"-2":0 Base test mbedtls_mpi_cmp_mpi (Negative values) #2 -mbedtls_mpi_cmp_mpi:"-2":"-3":1 +mpi_cmp_mpi:"-2":"-3":1 Base test mbedtls_mpi_cmp_mpi (Negative values) #3 -mbedtls_mpi_cmp_mpi:"-2":"-1":-1 +mpi_cmp_mpi:"-2":"-1":-1 Base test mbedtls_mpi_cmp_mpi (Mixed values) #4 -mbedtls_mpi_cmp_mpi:"-3":"2":-1 +mpi_cmp_mpi:"-3":"2":-1 Base test mbedtls_mpi_cmp_mpi (Mixed values) #5 -mbedtls_mpi_cmp_mpi:"2":"-3":1 +mpi_cmp_mpi:"2":"-3":1 Base test mbedtls_mpi_cmp_mpi (Mixed values) #6 -mbedtls_mpi_cmp_mpi:"-2":"1c67967269c6":-1 +mpi_cmp_mpi:"-2":"1c67967269c6":-1 Test mbedtls_mpi_cmp_mpi: 0 (null) = 0 (null) -mbedtls_mpi_cmp_mpi:"":"":0 +mpi_cmp_mpi:"":"":0 Test mbedtls_mpi_cmp_mpi: 0 (null) = 0 (1 limb) -mbedtls_mpi_cmp_mpi:"":"0":0 +mpi_cmp_mpi:"":"0":0 Test mbedtls_mpi_cmp_mpi: 0 (1 limb) = 0 (null) -mbedtls_mpi_cmp_mpi:"0":"":0 +mpi_cmp_mpi:"0":"":0 Test mbedtls_mpi_cmp_mpi: 0 (1 limb) = 0 (1 limb) -mbedtls_mpi_cmp_mpi:"0":"0":0 +mpi_cmp_mpi:"0":"0":0 Test mbedtls_mpi_cmp_mpi: 0 (null) < positive -mbedtls_mpi_cmp_mpi:"":"7b":-1 +mpi_cmp_mpi:"":"7b":-1 Test mbedtls_mpi_cmp_mpi: 0 (1 limb) < positive -mbedtls_mpi_cmp_mpi:"0":"7b":-1 +mpi_cmp_mpi:"0":"7b":-1 Test mbedtls_mpi_cmp_mpi: 0 (null) > negative -mbedtls_mpi_cmp_mpi:"":"-7b":1 +mpi_cmp_mpi:"":"-7b":1 Test mbedtls_mpi_cmp_mpi: 0 (1 limb) > negative -mbedtls_mpi_cmp_mpi:"0":"-7b":1 +mpi_cmp_mpi:"0":"-7b":1 Test mbedtls_mpi_cmp_mpi: positive > 0 (null) -mbedtls_mpi_cmp_mpi:"7b":"":1 +mpi_cmp_mpi:"7b":"":1 Test mbedtls_mpi_cmp_mpi: positive > 0 (1 limb) -mbedtls_mpi_cmp_mpi:"7b":"0":1 +mpi_cmp_mpi:"7b":"0":1 Test mbedtls_mpi_cmp_mpi: negative < 0 (null) -mbedtls_mpi_cmp_mpi:"-7b":"":-1 +mpi_cmp_mpi:"-7b":"":-1 Test mbedtls_mpi_cmp_mpi: negative < 0 (1 limb) -mbedtls_mpi_cmp_mpi:"-7b":"0":-1 +mpi_cmp_mpi:"-7b":"0":-1 Test mbedtls_mpi_cmp_mpi: 0 (null) < positive with leading zero limb -mbedtls_mpi_cmp_mpi:"":"0000000000000000123":-1 +mpi_cmp_mpi:"":"0000000000000000123":-1 Test mbedtls_mpi_cmp_mpi: 0 (1 limb) < positive with leading zero limb -mbedtls_mpi_cmp_mpi:"0":"0000000000000000123":-1 +mpi_cmp_mpi:"0":"0000000000000000123":-1 Test mbedtls_mpi_cmp_mpi: 0 (null) > negative with leading zero limb -mbedtls_mpi_cmp_mpi:"":"-0000000000000000123":1 +mpi_cmp_mpi:"":"-0000000000000000123":1 Test mbedtls_mpi_cmp_mpi: 0 (1 limb) > negative with leading zero limb -mbedtls_mpi_cmp_mpi:"0":"-0000000000000000123":1 +mpi_cmp_mpi:"0":"-0000000000000000123":1 Test mbedtls_mpi_cmp_mpi: positive with leading zero limb > 0 (null) -mbedtls_mpi_cmp_mpi:"0000000000000000123":"":1 +mpi_cmp_mpi:"0000000000000000123":"":1 Test mbedtls_mpi_cmp_mpi: positive with leading zero limb > 0 (1 limb) -mbedtls_mpi_cmp_mpi:"0000000000000000123":"0":1 +mpi_cmp_mpi:"0000000000000000123":"0":1 Test mbedtls_mpi_cmp_mpi: negative with leading zero limb < 0 (null) -mbedtls_mpi_cmp_mpi:"-0000000000000000123":"":-1 +mpi_cmp_mpi:"-0000000000000000123":"":-1 Test mbedtls_mpi_cmp_mpi: negative with leading zero limb < 0 (1 limb) -mbedtls_mpi_cmp_mpi:"-0000000000000000123":"0":-1 +mpi_cmp_mpi:"-0000000000000000123":"0":-1 Test mbedtls_mpi_cmp_mpi: 0 (null) < large positive -mbedtls_mpi_cmp_mpi:"":"1230000000000000000":-1 +mpi_cmp_mpi:"":"1230000000000000000":-1 Test mbedtls_mpi_cmp_mpi: 0 (1 limb) < large positive -mbedtls_mpi_cmp_mpi:"0":"1230000000000000000":-1 +mpi_cmp_mpi:"0":"1230000000000000000":-1 Test mbedtls_mpi_cmp_mpi: 0 (null) > large negative -mbedtls_mpi_cmp_mpi:"":"-1230000000000000000":1 +mpi_cmp_mpi:"":"-1230000000000000000":1 Test mbedtls_mpi_cmp_mpi: 0 (1 limb) > large negative -mbedtls_mpi_cmp_mpi:"0":"-1230000000000000000":1 +mpi_cmp_mpi:"0":"-1230000000000000000":1 Test mbedtls_mpi_cmp_mpi: large positive > 0 (null) -mbedtls_mpi_cmp_mpi:"1230000000000000000":"":1 +mpi_cmp_mpi:"1230000000000000000":"":1 Test mbedtls_mpi_cmp_mpi: large positive > 0 (1 limb) -mbedtls_mpi_cmp_mpi:"1230000000000000000":"0":1 +mpi_cmp_mpi:"1230000000000000000":"0":1 Test mbedtls_mpi_cmp_mpi: large negative < 0 (null) -mbedtls_mpi_cmp_mpi:"-1230000000000000000":"":-1 +mpi_cmp_mpi:"-1230000000000000000":"":-1 Test mbedtls_mpi_cmp_mpi: large negative < 0 (1 limb) -mbedtls_mpi_cmp_mpi:"-1230000000000000000":"0":-1 +mpi_cmp_mpi:"-1230000000000000000":"0":-1 mbedtls_mpi_core_lt_ct: x=y (1 limb) mpi_core_lt_ct:"02B5":"02B5":0 @@ -682,241 +682,241 @@ mbedtls_mpi_core_lt_ct: x>y (alternating limbs) mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 Base test mbedtls_mpi_lt_mpi_ct #1 -mbedtls_mpi_lt_mpi_ct:1:"2B5":1:"2B5":0:0 +mpi_lt_mpi_ct:1:"2B5":1:"2B5":0:0 Base test mbedtls_mpi_lt_mpi_ct #2 -mbedtls_mpi_lt_mpi_ct:1:"2B5":1:"2B4":0:0 +mpi_lt_mpi_ct:1:"2B5":1:"2B4":0:0 Base test mbedtls_mpi_lt_mpi_ct #3 -mbedtls_mpi_lt_mpi_ct:1:"2B5":1:"2B6":1:0 +mpi_lt_mpi_ct:1:"2B5":1:"2B6":1:0 Base test mbedtls_mpi_lt_mpi_ct (Negative values) #1 -mbedtls_mpi_lt_mpi_ct:1:"-2":1:"-2":0:0 +mpi_lt_mpi_ct:1:"-2":1:"-2":0:0 Base test mbedtls_mpi_lt_mpi_ct (Negative values) #2 -mbedtls_mpi_lt_mpi_ct:1:"-2":1:"-3":0:0 +mpi_lt_mpi_ct:1:"-2":1:"-3":0:0 Base test mbedtls_mpi_lt_mpi_ct (Negative values) #3 -mbedtls_mpi_lt_mpi_ct:1:"-2":1:"-1":1:0 +mpi_lt_mpi_ct:1:"-2":1:"-1":1:0 Base test mbedtls_mpi_lt_mpi_ct (Mixed values) #1 -mbedtls_mpi_lt_mpi_ct:1:"-3":1:"2":1:0 +mpi_lt_mpi_ct:1:"-3":1:"2":1:0 Base test mbedtls_mpi_lt_mpi_ct (Mixed values) #2 -mbedtls_mpi_lt_mpi_ct:1:"2":1:"-3":0:0 +mpi_lt_mpi_ct:1:"2":1:"-3":0:0 Base test mbedtls_mpi_lt_mpi_ct (Mixed values) #3 -mbedtls_mpi_lt_mpi_ct:2:"-2":2:"1C67967269C6":1:0 +mpi_lt_mpi_ct:2:"-2":2:"1C67967269C6":1:0 Base test mbedtls_mpi_lt_mpi_ct (X is longer in storage) -mbedtls_mpi_lt_mpi_ct:3:"2B5":2:"2B5":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_lt_mpi_ct:3:"2B5":2:"2B5":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA Base test mbedtls_mpi_lt_mpi_ct (Y is longer in storage) -mbedtls_mpi_lt_mpi_ct:3:"2B5":4:"2B5":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_lt_mpi_ct:3:"2B5":4:"2B5":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA Base test mbedtls_mpi_lt_mpi_ct (length=0) -mbedtls_mpi_lt_mpi_ct:0:"":0:"":0:0 +mpi_lt_mpi_ct:0:"":0:"":0:0 Base test mbedtls_mpi_lt_mpi_ct (corner case - 64 bit) #1 -mbedtls_mpi_lt_mpi_ct:2:"7FFFFFFFFFFFFFFF":2:"FF":0:0 +mpi_lt_mpi_ct:2:"7FFFFFFFFFFFFFFF":2:"FF":0:0 Base test mbedtls_mpi_lt_mpi_ct (corner case - 64 bit) #2 -mbedtls_mpi_lt_mpi_ct:2:"8000000000000000":2:"7FFFFFFFFFFFFFFF":0:0 +mpi_lt_mpi_ct:2:"8000000000000000":2:"7FFFFFFFFFFFFFFF":0:0 Base test mbedtls_mpi_lt_mpi_ct (corner case - 64 bit) #3 -mbedtls_mpi_lt_mpi_ct:2:"8000000000000000":2:"1":0:0 +mpi_lt_mpi_ct:2:"8000000000000000":2:"1":0:0 Base test mbedtls_mpi_lt_mpi_ct (corner case - 64 bit) #4 -mbedtls_mpi_lt_mpi_ct:2:"8000000000000000":2:"0":0:0 +mpi_lt_mpi_ct:2:"8000000000000000":2:"0":0:0 Base test mbedtls_mpi_lt_mpi_ct (corner case - 64 bit) #5 -mbedtls_mpi_lt_mpi_ct:2:"FFFFFFFFFFFFFFFF":2:"FF":0:0 +mpi_lt_mpi_ct:2:"FFFFFFFFFFFFFFFF":2:"FF":0:0 Base test mbedtls_mpi_lt_mpi_ct (corner case - 32 bit) #1 -mbedtls_mpi_lt_mpi_ct:1:"7FFFFFFF":1:"FF":0:0 +mpi_lt_mpi_ct:1:"7FFFFFFF":1:"FF":0:0 Base test mbedtls_mpi_lt_mpi_ct (corner case - 32 bit) #2 -mbedtls_mpi_lt_mpi_ct:1:"80000000":1:"7FFFFFFF":0:0 +mpi_lt_mpi_ct:1:"80000000":1:"7FFFFFFF":0:0 Base test mbedtls_mpi_lt_mpi_ct (corner case - 32 bit) #3 -mbedtls_mpi_lt_mpi_ct:1:"80000000":1:"1":0:0 +mpi_lt_mpi_ct:1:"80000000":1:"1":0:0 Base test mbedtls_mpi_lt_mpi_ct (corner case - 32 bit) #4 -mbedtls_mpi_lt_mpi_ct:1:"80000000":1:"0":0:0 +mpi_lt_mpi_ct:1:"80000000":1:"0":0:0 Base test mbedtls_mpi_lt_mpi_ct (corner case - 32 bit) #5 -mbedtls_mpi_lt_mpi_ct:1:"FFFFFFFF":1:"FF":0:0 +mpi_lt_mpi_ct:1:"FFFFFFFF":1:"FF":0:0 Multi-limb mbedtls_mpi_lt_mpi_ct (XY, equal MS limbs) -mbedtls_mpi_lt_mpi_ct:2:"-EEFFFFFFFFFFFFFFF1":2:"-EEFFFFFFFFFFFFFFFF":0:0 +mpi_lt_mpi_ct:2:"-EEFFFFFFFFFFFFFFF1":2:"-EEFFFFFFFFFFFFFFFF":0:0 Multi-limb mbedtls_mpi_lt_mpi_ct (X=Y) -mbedtls_mpi_lt_mpi_ct:2:"EEFFFFFFFFFFFFFFFF":2:"EEFFFFFFFFFFFFFFFF":0:0 +mpi_lt_mpi_ct:2:"EEFFFFFFFFFFFFFFFF":2:"EEFFFFFFFFFFFFFFFF":0:0 Multi-limb mbedtls_mpi_lt_mpi_ct (X=-Y) -mbedtls_mpi_lt_mpi_ct:2:"-EEFFFFFFFFFFFFFFFF":2:"EEFFFFFFFFFFFFFFFF":1:0 +mpi_lt_mpi_ct:2:"-EEFFFFFFFFFFFFFFFF":2:"EEFFFFFFFFFFFFFFFF":1:0 Multi-limb mbedtls_mpi_lt_mpi_ct (Alternating limbs) #1 -mbedtls_mpi_lt_mpi_ct:2:"11FFFFFFFFFFFFFFFF":2:"FF1111111111111111":1:0 +mpi_lt_mpi_ct:2:"11FFFFFFFFFFFFFFFF":2:"FF1111111111111111":1:0 Multi-limb mbedtls_mpi_lt_mpi_ct (Alternating limbs) #2 -mbedtls_mpi_lt_mpi_ct:2:"FF1111111111111111":2:"11FFFFFFFFFFFFFFFF":0:0 +mpi_lt_mpi_ct:2:"FF1111111111111111":2:"11FFFFFFFFFFFFFFFF":0:0 Multi-limb mbedtls_mpi_lt_mpi_ct (Alternating limbs) #3 -mbedtls_mpi_lt_mpi_ct:2:"-11FFFFFFFFFFFFFFFF":2:"-FF1111111111111111":0:0 +mpi_lt_mpi_ct:2:"-11FFFFFFFFFFFFFFFF":2:"-FF1111111111111111":0:0 Multi-limb mbedtls_mpi_lt_mpi_ct (Alternating limbs) #4 -mbedtls_mpi_lt_mpi_ct:2:"-FF1111111111111111":2:"-11FFFFFFFFFFFFFFFF":1:0 +mpi_lt_mpi_ct:2:"-FF1111111111111111":2:"-11FFFFFFFFFFFFFFFF":1:0 Base test mbedtls_mpi_cmp_abs #1 -mbedtls_mpi_cmp_abs:"2b5":"2b5":0 +mpi_cmp_abs:"2b5":"2b5":0 Base test mbedtls_mpi_cmp_abs #2 -mbedtls_mpi_cmp_abs:"2b5":"2b4":1 +mpi_cmp_abs:"2b5":"2b4":1 Base test mbedtls_mpi_cmp_abs #3 -mbedtls_mpi_cmp_abs:"2b5":"2b6":-1 +mpi_cmp_abs:"2b5":"2b6":-1 Base test mbedtls_mpi_cmp_abs (Negative values) #1 -mbedtls_mpi_cmp_abs:"-2":"-2":0 +mpi_cmp_abs:"-2":"-2":0 Base test mbedtls_mpi_cmp_abs (Negative values) #2 -mbedtls_mpi_cmp_abs:"-2":"-3":-1 +mpi_cmp_abs:"-2":"-3":-1 Base test mbedtls_mpi_cmp_abs (Negative values) #3 -mbedtls_mpi_cmp_abs:"-2":"-1":1 +mpi_cmp_abs:"-2":"-1":1 Test mbedtls_mpi_cmp_abs: 0 (null) = 0 (null) -mbedtls_mpi_cmp_abs:"":"":0 +mpi_cmp_abs:"":"":0 Test mbedtls_mpi_cmp_abs: 0 (null) = 0 (1 limb) -mbedtls_mpi_cmp_abs:"":"0":0 +mpi_cmp_abs:"":"0":0 Test mbedtls_mpi_cmp_abs: 0 (1 limb) = 0 (null) -mbedtls_mpi_cmp_abs:"0":"":0 +mpi_cmp_abs:"0":"":0 Test mbedtls_mpi_cmp_abs: 0 (1 limb) = 0 (1 limb) -mbedtls_mpi_cmp_abs:"0":"0":0 +mpi_cmp_abs:"0":"0":0 Base test mbedtls_mpi_cmp_abs (Mix values) #1 -mbedtls_mpi_cmp_abs:"-2":"2":0 +mpi_cmp_abs:"-2":"2":0 Base test mbedtls_mpi_cmp_abs (Mix values) #2 -mbedtls_mpi_cmp_abs:"2":"-3":-1 +mpi_cmp_abs:"2":"-3":-1 Base test mbedtls_mpi_cmp_abs (Mix values) #3 -mbedtls_mpi_cmp_abs:"-2":"1":1 +mpi_cmp_abs:"-2":"1":1 Copy large negative to large negative -mbedtls_mpi_copy:"-ca5cadedb01dfaceacc01ade":"-face1e55ca11ab1ecab005e5" +mpi_copy:"-ca5cadedb01dfaceacc01ade":"-face1e55ca11ab1ecab005e5" Copy large negative to large positive -mbedtls_mpi_copy:"-ca5cadedb01dfaceacc01ade":"face1e55ca11ab1ecab005e5" +mpi_copy:"-ca5cadedb01dfaceacc01ade":"face1e55ca11ab1ecab005e5" Copy large negative to small negative -mbedtls_mpi_copy:"-ca5cadedb01dfaceacc01ade":"-beef" +mpi_copy:"-ca5cadedb01dfaceacc01ade":"-beef" Copy large negative to small positive -mbedtls_mpi_copy:"-ca5cadedb01dfaceacc01ade":"beef" +mpi_copy:"-ca5cadedb01dfaceacc01ade":"beef" Copy large negative to zero (1 limb) -mbedtls_mpi_copy:"-ca5cadedb01dfaceacc01ade":"0" +mpi_copy:"-ca5cadedb01dfaceacc01ade":"0" Copy large negative to zero (null) -mbedtls_mpi_copy:"-ca5cadedb01dfaceacc01ade":"" +mpi_copy:"-ca5cadedb01dfaceacc01ade":"" Copy large positive to large negative -mbedtls_mpi_copy:"ca5cadedb01dfaceacc01ade":"-face1e55ca11ab1ecab005e5" +mpi_copy:"ca5cadedb01dfaceacc01ade":"-face1e55ca11ab1ecab005e5" Copy large positive to large positive -mbedtls_mpi_copy:"ca5cadedb01dfaceacc01ade":"face1e55ca11ab1ecab005e5" +mpi_copy:"ca5cadedb01dfaceacc01ade":"face1e55ca11ab1ecab005e5" Copy large positive to small negative -mbedtls_mpi_copy:"ca5cadedb01dfaceacc01ade":"-beef" +mpi_copy:"ca5cadedb01dfaceacc01ade":"-beef" Copy large positive to small positive -mbedtls_mpi_copy:"ca5cadedb01dfaceacc01ade":"beef" +mpi_copy:"ca5cadedb01dfaceacc01ade":"beef" Copy large positive to zero (1 limb) -mbedtls_mpi_copy:"ca5cadedb01dfaceacc01ade":"0" +mpi_copy:"ca5cadedb01dfaceacc01ade":"0" Copy large positive to zero (null) -mbedtls_mpi_copy:"ca5cadedb01dfaceacc01ade":"" +mpi_copy:"ca5cadedb01dfaceacc01ade":"" Copy small negative to large negative -mbedtls_mpi_copy:"-bead":"-face1e55ca11ab1ecab005e5" +mpi_copy:"-bead":"-face1e55ca11ab1ecab005e5" Copy small negative to large positive -mbedtls_mpi_copy:"-bead":"face1e55ca11ab1ecab005e5" +mpi_copy:"-bead":"face1e55ca11ab1ecab005e5" Copy small negative to small negative -mbedtls_mpi_copy:"-bead":"-beef" +mpi_copy:"-bead":"-beef" Copy small negative to small positive -mbedtls_mpi_copy:"-bead":"beef" +mpi_copy:"-bead":"beef" Copy small negative to zero (1 limb) -mbedtls_mpi_copy:"-bead":"0" +mpi_copy:"-bead":"0" Copy small negative to zero (null) -mbedtls_mpi_copy:"-bead":"" +mpi_copy:"-bead":"" Copy small positive to large negative -mbedtls_mpi_copy:"bead":"-face1e55ca11ab1ecab005e5" +mpi_copy:"bead":"-face1e55ca11ab1ecab005e5" Copy small positive to large positive -mbedtls_mpi_copy:"bead":"face1e55ca11ab1ecab005e5" +mpi_copy:"bead":"face1e55ca11ab1ecab005e5" Copy small positive to small negative -mbedtls_mpi_copy:"bead":"-beef" +mpi_copy:"bead":"-beef" Copy small positive to small positive -mbedtls_mpi_copy:"bead":"beef" +mpi_copy:"bead":"beef" Copy small positive to zero (1 limb) -mbedtls_mpi_copy:"bead":"0" +mpi_copy:"bead":"0" Copy small positive to zero (null) -mbedtls_mpi_copy:"bead":"" +mpi_copy:"bead":"" Copy zero (1 limb) to large negative -mbedtls_mpi_copy:"0":"-face1e55ca11ab1ecab005e5" +mpi_copy:"0":"-face1e55ca11ab1ecab005e5" Copy zero (1 limb) to large positive -mbedtls_mpi_copy:"0":"face1e55ca11ab1ecab005e5" +mpi_copy:"0":"face1e55ca11ab1ecab005e5" Copy zero (1 limb) to small negative -mbedtls_mpi_copy:"0":"-beef" +mpi_copy:"0":"-beef" Copy zero (1 limb) to small positive -mbedtls_mpi_copy:"0":"beef" +mpi_copy:"0":"beef" Copy zero (1 limb) to zero (1 limb) -mbedtls_mpi_copy:"0":"0" +mpi_copy:"0":"0" Copy zero (1 limb) to zero (null) -mbedtls_mpi_copy:"0":"" +mpi_copy:"0":"" Copy zero (null) to large negative -mbedtls_mpi_copy:"":"-face1e55ca11ab1ecab005e5" +mpi_copy:"":"-face1e55ca11ab1ecab005e5" Copy zero (null) to large positive -mbedtls_mpi_copy:"":"face1e55ca11ab1ecab005e5" +mpi_copy:"":"face1e55ca11ab1ecab005e5" Copy zero (null) to small negative -mbedtls_mpi_copy:"":"-beef" +mpi_copy:"":"-beef" Copy zero (null) to small positive -mbedtls_mpi_copy:"":"beef" +mpi_copy:"":"beef" Copy zero (null) to zero (1 limb) -mbedtls_mpi_copy:"":"0" +mpi_copy:"":"0" Copy zero (null) to zero (null) -mbedtls_mpi_copy:"":"" +mpi_copy:"":"" Copy self: large negative mpi_copy_self:"-ca5cadedb01dfaceacc01ade" @@ -937,112 +937,112 @@ Copy self: zero (null) mpi_copy_self:"" Swap large negative with large negative -mbedtls_mpi_swap:"-ca5cadedb01dfaceacc01ade":"-face1e55ca11ab1ecab005e5" +mpi_swap:"-ca5cadedb01dfaceacc01ade":"-face1e55ca11ab1ecab005e5" Swap large negative with large positive -mbedtls_mpi_swap:"-ca5cadedb01dfaceacc01ade":"face1e55ca11ab1ecab005e5" +mpi_swap:"-ca5cadedb01dfaceacc01ade":"face1e55ca11ab1ecab005e5" Swap large negative with small negative -mbedtls_mpi_swap:"-ca5cadedb01dfaceacc01ade":"-beef" +mpi_swap:"-ca5cadedb01dfaceacc01ade":"-beef" Swap large negative with small positive -mbedtls_mpi_swap:"-ca5cadedb01dfaceacc01ade":"beef" +mpi_swap:"-ca5cadedb01dfaceacc01ade":"beef" Swap large negative with zero (1 limb) -mbedtls_mpi_swap:"-ca5cadedb01dfaceacc01ade":"0" +mpi_swap:"-ca5cadedb01dfaceacc01ade":"0" Swap large negative with zero (null) -mbedtls_mpi_swap:"-ca5cadedb01dfaceacc01ade":"" +mpi_swap:"-ca5cadedb01dfaceacc01ade":"" Swap large positive with large negative -mbedtls_mpi_swap:"ca5cadedb01dfaceacc01ade":"-face1e55ca11ab1ecab005e5" +mpi_swap:"ca5cadedb01dfaceacc01ade":"-face1e55ca11ab1ecab005e5" Swap large positive with large positive -mbedtls_mpi_swap:"ca5cadedb01dfaceacc01ade":"face1e55ca11ab1ecab005e5" +mpi_swap:"ca5cadedb01dfaceacc01ade":"face1e55ca11ab1ecab005e5" Swap large positive with small negative -mbedtls_mpi_swap:"ca5cadedb01dfaceacc01ade":"-beef" +mpi_swap:"ca5cadedb01dfaceacc01ade":"-beef" Swap large positive with small positive -mbedtls_mpi_swap:"ca5cadedb01dfaceacc01ade":"beef" +mpi_swap:"ca5cadedb01dfaceacc01ade":"beef" Swap large positive with zero (1 limb) -mbedtls_mpi_swap:"ca5cadedb01dfaceacc01ade":"0" +mpi_swap:"ca5cadedb01dfaceacc01ade":"0" Swap large positive with zero (null) -mbedtls_mpi_swap:"ca5cadedb01dfaceacc01ade":"" +mpi_swap:"ca5cadedb01dfaceacc01ade":"" Swap small negative with large negative -mbedtls_mpi_swap:"-bead":"-face1e55ca11ab1ecab005e5" +mpi_swap:"-bead":"-face1e55ca11ab1ecab005e5" Swap small negative with large positive -mbedtls_mpi_swap:"-bead":"face1e55ca11ab1ecab005e5" +mpi_swap:"-bead":"face1e55ca11ab1ecab005e5" Swap small negative with small negative -mbedtls_mpi_swap:"-bead":"-beef" +mpi_swap:"-bead":"-beef" Swap small negative with small positive -mbedtls_mpi_swap:"-bead":"beef" +mpi_swap:"-bead":"beef" Swap small negative with zero (1 limb) -mbedtls_mpi_swap:"-bead":"0" +mpi_swap:"-bead":"0" Swap small negative with zero (null) -mbedtls_mpi_swap:"-bead":"" +mpi_swap:"-bead":"" Swap small positive with large negative -mbedtls_mpi_swap:"bead":"-face1e55ca11ab1ecab005e5" +mpi_swap:"bead":"-face1e55ca11ab1ecab005e5" Swap small positive with large positive -mbedtls_mpi_swap:"bead":"face1e55ca11ab1ecab005e5" +mpi_swap:"bead":"face1e55ca11ab1ecab005e5" Swap small positive with small negative -mbedtls_mpi_swap:"bead":"-beef" +mpi_swap:"bead":"-beef" Swap small positive with small positive -mbedtls_mpi_swap:"bead":"beef" +mpi_swap:"bead":"beef" Swap small positive with zero (1 limb) -mbedtls_mpi_swap:"bead":"0" +mpi_swap:"bead":"0" Swap small positive with zero (null) -mbedtls_mpi_swap:"bead":"" +mpi_swap:"bead":"" Swap zero (1 limb) with large negative -mbedtls_mpi_swap:"0":"-face1e55ca11ab1ecab005e5" +mpi_swap:"0":"-face1e55ca11ab1ecab005e5" Swap zero (1 limb) with large positive -mbedtls_mpi_swap:"0":"face1e55ca11ab1ecab005e5" +mpi_swap:"0":"face1e55ca11ab1ecab005e5" Swap zero (1 limb) with small negative -mbedtls_mpi_swap:"0":"-beef" +mpi_swap:"0":"-beef" Swap zero (1 limb) with small positive -mbedtls_mpi_swap:"0":"beef" +mpi_swap:"0":"beef" Swap zero (1 limb) with zero (1 limb) -mbedtls_mpi_swap:"0":"0" +mpi_swap:"0":"0" Swap zero (1 limb) with zero (null) -mbedtls_mpi_swap:"0":"" +mpi_swap:"0":"" Swap zero (null) with large negative -mbedtls_mpi_swap:"":"-face1e55ca11ab1ecab005e5" +mpi_swap:"":"-face1e55ca11ab1ecab005e5" Swap zero (null) with large positive -mbedtls_mpi_swap:"":"face1e55ca11ab1ecab005e5" +mpi_swap:"":"face1e55ca11ab1ecab005e5" Swap zero (null) with small negative -mbedtls_mpi_swap:"":"-beef" +mpi_swap:"":"-beef" Swap zero (null) with small positive -mbedtls_mpi_swap:"":"beef" +mpi_swap:"":"beef" Swap zero (null) with zero (1 limb) -mbedtls_mpi_swap:"":"0" +mpi_swap:"":"0" Swap zero (null) with zero (null) -mbedtls_mpi_swap:"":"" +mpi_swap:"":"" Swap self: large negative mpi_swap_self:"-ca5cadedb01dfaceacc01ade" @@ -1063,982 +1063,982 @@ Swap self: zero (null) mpi_swap_self:"" Shrink 0 limbs in a buffer of size 0 to 0 -mbedtls_mpi_shrink:0:0:0:0 +mpi_shrink:0:0:0:0 Shrink 2 limbs in a buffer of size 2 to 4 -mbedtls_mpi_shrink:2:2:4:4 +mpi_shrink:2:2:4:4 Shrink 2 limbs in a buffer of size 4 to 4 -mbedtls_mpi_shrink:4:2:4:4 +mpi_shrink:4:2:4:4 Shrink 2 limbs in a buffer of size 8 to 4 -mbedtls_mpi_shrink:8:2:4:4 +mpi_shrink:8:2:4:4 Shrink 4 limbs in a buffer of size 8 to 4 -mbedtls_mpi_shrink:8:4:4:4 +mpi_shrink:8:4:4:4 Shrink 6 limbs in a buffer of size 8 to 4 yielding 6 -mbedtls_mpi_shrink:8:6:4:6 +mpi_shrink:8:6:4:6 Shrink 2 limbs in a buffer of size 4 to 0 yielding 2 -mbedtls_mpi_shrink:4:2:0:2 +mpi_shrink:4:2:0:2 Shrink 1 limbs in a buffer of size 4 to 0 yielding 1 -mbedtls_mpi_shrink:4:1:0:1 +mpi_shrink:4:1:0:1 Shrink 0 limbs in a buffer of size 4 to 0 yielding 1 -mbedtls_mpi_shrink:4:0:0:1 +mpi_shrink:4:0:0:1 Base test mbedtls_mpi_add_abs #1 -mbedtls_mpi_add_abs:"bc614e":"9cde3":"c62f31" +mpi_add_abs:"bc614e":"9cde3":"c62f31" Base test mbedtls_mpi_add_abs #2 -mbedtls_mpi_add_abs:"-bc614e":"9cde3":"c62f31" +mpi_add_abs:"-bc614e":"9cde3":"c62f31" Base test mbedtls_mpi_add_abs #3 -mbedtls_mpi_add_abs:"bc614e":"-9cde3":"c62f31" +mpi_add_abs:"bc614e":"-9cde3":"c62f31" Base test mbedtls_mpi_add_abs #4 -mbedtls_mpi_add_abs:"-bc614e":"-9cde3":"c62f31" +mpi_add_abs:"-bc614e":"-9cde3":"c62f31" Test mbedtls_mpi_add_abs: 0 (null) + 0 (null) -mbedtls_mpi_add_abs:"":"":"0" +mpi_add_abs:"":"":"0" Test mbedtls_mpi_add_abs: 0 (null) + 1 -mbedtls_mpi_add_abs:"":"01":"01" +mpi_add_abs:"":"01":"01" Test mbedtls_mpi_add_abs: 1 + 0 (null) -mbedtls_mpi_add_abs:"01":"":"01" +mpi_add_abs:"01":"":"01" Test mbedtls_mpi_add_abs #1 -mbedtls_mpi_add_abs:"-1f55332c3a48b910f9942f6c914e58bef37a47ee45cb164a5b6b8d1006bf59a059c21449939ebebfdf517d2e1dbac88010d7b1f141e997bd6801ddaec9d05910f4f2de2b2c4d714e2c14a72fc7f17aa428d59c531627f09":"941379d00fed1491dec0abfc13b52b9049625b3c42c3a972a2549e7a3e1b12c5a304b23e9ed6e251b8af28a4b3124900b23138bfafda925ab3410d57d6f8f0dd8c8c32eb0b4329fbf792e43f9593e766fa0c3c0be077b4e5162616a6428c51b":"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424" +mpi_add_abs:"-1f55332c3a48b910f9942f6c914e58bef37a47ee45cb164a5b6b8d1006bf59a059c21449939ebebfdf517d2e1dbac88010d7b1f141e997bd6801ddaec9d05910f4f2de2b2c4d714e2c14a72fc7f17aa428d59c531627f09":"941379d00fed1491dec0abfc13b52b9049625b3c42c3a972a2549e7a3e1b12c5a304b23e9ed6e251b8af28a4b3124900b23138bfafda925ab3410d57d6f8f0dd8c8c32eb0b4329fbf792e43f9593e766fa0c3c0be077b4e5162616a6428c51b":"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424" Regression mbedtls_mpi_add_abs (add small to very large MPI with carry rollover) [#1] -mbedtls_mpi_add_abs:"FFFFFFFFFFFFFFFFFFFFFFFFFFFFF8":"08":"1000000000000000000000000000000" +mpi_add_abs:"FFFFFFFFFFFFFFFFFFFFFFFFFFFFF8":"08":"1000000000000000000000000000000" Regression mbedtls_mpi_add_abs (add small to very large MPI with carry rollover) [#2] -mbedtls_mpi_add_abs:"08":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFF8":"1000000000000000000000000000000" +mpi_add_abs:"08":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFF8":"1000000000000000000000000000000" Base test mbedtls_mpi_add_mpi #1 -mbedtls_mpi_add_mpi:"bc614e":"9cde3":"c62f31" +mpi_add_mpi:"bc614e":"9cde3":"c62f31" Base test mbedtls_mpi_add_mpi #2 -mbedtls_mpi_add_mpi:"-bc614e":"9cde3":"-b2936b" +mpi_add_mpi:"-bc614e":"9cde3":"-b2936b" Base test mbedtls_mpi_add_mpi #3 -mbedtls_mpi_add_mpi:"bc614e":"-9cde3":"b2936b" +mpi_add_mpi:"bc614e":"-9cde3":"b2936b" Base test mbedtls_mpi_add_mpi #4 -mbedtls_mpi_add_mpi:"-bc614e":"-9cde3":"-c62f31" +mpi_add_mpi:"-bc614e":"-9cde3":"-c62f31" Test mbedtls_mpi_add_mpi: 0 (null) + 0 (null) -mbedtls_mpi_add_mpi:"":"":"0" +mpi_add_mpi:"":"":"0" Test mbedtls_mpi_add_mpi: 0 (null) + 1 -mbedtls_mpi_add_mpi:"":"01":"01" +mpi_add_mpi:"":"01":"01" Test mbedtls_mpi_add_mpi: 1 + 0 (null) -mbedtls_mpi_add_mpi:"01":"":"01" +mpi_add_mpi:"01":"":"01" Test mbedtls_mpi_add_mpi: 0 (null) + -1 -mbedtls_mpi_add_mpi:"":"-01":"-01" +mpi_add_mpi:"":"-01":"-01" Test mbedtls_mpi_add_mpi: -1 + 0 (null) -mbedtls_mpi_add_mpi:"-01":"":"-01" +mpi_add_mpi:"-01":"":"-01" Test mbedtls_mpi_add_mpi #1 -mbedtls_mpi_add_mpi:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"cb50e82a8583f44ee0025942e7362991b24e12663a0ddc234a57b0f7b4ff7b025bf5a6707dedc2898e70b739042c95a996283dffdf67558768784553c61e302e8812bc90f0bb0696870cfb910b560cefed8d99bbf7a00b31ccdbd56f3594e5a653cfd127d2167b13119e5c45c3f76b4e3d904a9bc0cbb43c33aa7f23b":"1194815323a3b10dc8cb9293d7c85b719d79974dd43a0e4de3a5babaee7276e428559e1caa42d296a6234b1628323acff85fd798f9632d6b3d437c122ddb0c8ec215a8159a1fe2aaa91390af0b8cf65967dde43439da979d0d23b88fe14a13e30407471f77bb1c10ef08ca8af2f29f92b2874bcd5065bd2fc58b1ea366" +mpi_add_mpi:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"cb50e82a8583f44ee0025942e7362991b24e12663a0ddc234a57b0f7b4ff7b025bf5a6707dedc2898e70b739042c95a996283dffdf67558768784553c61e302e8812bc90f0bb0696870cfb910b560cefed8d99bbf7a00b31ccdbd56f3594e5a653cfd127d2167b13119e5c45c3f76b4e3d904a9bc0cbb43c33aa7f23b":"1194815323a3b10dc8cb9293d7c85b719d79974dd43a0e4de3a5babaee7276e428559e1caa42d296a6234b1628323acff85fd798f9632d6b3d437c122ddb0c8ec215a8159a1fe2aaa91390af0b8cf65967dde43439da979d0d23b88fe14a13e30407471f77bb1c10ef08ca8af2f29f92b2874bcd5065bd2fc58b1ea366" Test mbedtls_mpi_add_mpi #2 -mbedtls_mpi_add_mpi:"1f55332c3a48b910f9942f6c914e58bef37a47ee45cb164a5b6b8d1006bf59a059c21449939ebebfdf517d2e1dbac88010d7b1f141e997bd6801ddaec9d05910f4f2de2b2c4d714e2c14a72fc7f17aa428d59c531627f09":"941379d00fed1491dec0abfc13b52b9049625b3c42c3a972a2549e7a3e1b12c5a304b23e9ed6e251b8af28a4b3124900b23138bfafda925ab3410d57d6f8f0dd8c8c32eb0b4329fbf792e43f9593e766fa0c3c0be077b4e5162616a6428c51b":"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424" +mpi_add_mpi:"1f55332c3a48b910f9942f6c914e58bef37a47ee45cb164a5b6b8d1006bf59a059c21449939ebebfdf517d2e1dbac88010d7b1f141e997bd6801ddaec9d05910f4f2de2b2c4d714e2c14a72fc7f17aa428d59c531627f09":"941379d00fed1491dec0abfc13b52b9049625b3c42c3a972a2549e7a3e1b12c5a304b23e9ed6e251b8af28a4b3124900b23138bfafda925ab3410d57d6f8f0dd8c8c32eb0b4329fbf792e43f9593e766fa0c3c0be077b4e5162616a6428c51b":"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424" Base test mbedtls_mpi_add_mpi inplace #1 -mbedtls_mpi_add_mpi_inplace:"bc614e":"178c29c" +mpi_add_mpi_inplace:"bc614e":"178c29c" Test mbedtls_mpi_add_mpi inplace #2 -mbedtls_mpi_add_mpi_inplace:"1f55332c3a48b910f9942f6c914e58bef37a47ee45cb164a5b6b8d1006bf59a059c21449939ebebfdf517d2e1dbac88010d7b1f141e997bd6801ddaec9d05910f4f2de2b2c4d714e2c14a72fc7f17aa428d59c531627f09":"3eaa665874917221f3285ed9229cb17de6f48fdc8b962c94b6d71a200d7eb340b3842893273d7d7fbea2fa5c3b75910021af63e283d32f7ad003bb5d93a0b221e9e5bc56589ae29c58294e5f8fe2f54851ab38a62c4fe12" +mpi_add_mpi_inplace:"1f55332c3a48b910f9942f6c914e58bef37a47ee45cb164a5b6b8d1006bf59a059c21449939ebebfdf517d2e1dbac88010d7b1f141e997bd6801ddaec9d05910f4f2de2b2c4d714e2c14a72fc7f17aa428d59c531627f09":"3eaa665874917221f3285ed9229cb17de6f48fdc8b962c94b6d71a200d7eb340b3842893273d7d7fbea2fa5c3b75910021af63e283d32f7ad003bb5d93a0b221e9e5bc56589ae29c58294e5f8fe2f54851ab38a62c4fe12" Test mbedtls_mpi_add_mpi inplace #3 -mbedtls_mpi_add_mpi_inplace:"ffffffffffffffffffffffffffffffff":"01fffffffffffffffffffffffffffffffe" +mpi_add_mpi_inplace:"ffffffffffffffffffffffffffffffff":"01fffffffffffffffffffffffffffffffe" Test mbedtls_mpi_add_int #1 -mbedtls_mpi_add_int:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd92ad4189":9871232:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd9343e109" +mpi_add_int:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd92ad4189":9871232:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd9343e109" Test mbedtls_mpi_add_int #2 -mbedtls_mpi_add_int:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd92ad4189":-9871232:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd9216a209" +mpi_add_int:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd92ad4189":-9871232:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd9216a209" Test mbedtls_mpi_add_int: 0 (null) + 0 -mbedtls_mpi_add_int:"":0:"0" +mpi_add_int:"":0:"0" Test mbedtls_mpi_add_int: 0 (null) + 1 -mbedtls_mpi_add_int:"":1:"1" +mpi_add_int:"":1:"1" Base test mbedtls_mpi_sub_abs #1 (|B| > |A|) -mbedtls_mpi_sub_abs:"5":"7":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_sub_abs:"5":"7":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_sub_abs #2 (|B| > |A|) -mbedtls_mpi_sub_abs:"-5":"-7":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_sub_abs:"-5":"-7":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_sub_abs #3 (|B| > |A|) -mbedtls_mpi_sub_abs:"-5":"7":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_sub_abs:"-5":"7":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_sub_abs #4 (|B| > |A|) -mbedtls_mpi_sub_abs:"5":"-7":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_sub_abs:"5":"-7":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_sub_abs #1 (|B| >> |A| with more limbs) -mbedtls_mpi_sub_abs:"5":"123456789abcdef01":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_sub_abs:"5":"123456789abcdef01":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_sub_abs #2 (|B| >> |A| with more limbs) -mbedtls_mpi_sub_abs:"-5":"-123456789abcdef01":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_sub_abs:"-5":"-123456789abcdef01":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_sub_abs #3 (|B| >> |A| with more limbs) -mbedtls_mpi_sub_abs:"-5":"123456789abcdef01":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_sub_abs:"-5":"123456789abcdef01":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_sub_abs #4 (|B| >> |A| with more limbs) -mbedtls_mpi_sub_abs:"5":"-123456789abcdef01":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_sub_abs:"5":"-123456789abcdef01":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_sub_abs #1 -mbedtls_mpi_sub_abs:"7":"5":"2":0 +mpi_sub_abs:"7":"5":"2":0 Base test mbedtls_mpi_sub_abs #2 -mbedtls_mpi_sub_abs:"-7":"-5":"2":0 +mpi_sub_abs:"-7":"-5":"2":0 Base test mbedtls_mpi_sub_abs #3 -mbedtls_mpi_sub_abs:"-7":"5":"2":0 +mpi_sub_abs:"-7":"5":"2":0 Base test mbedtls_mpi_sub_abs #4 -mbedtls_mpi_sub_abs:"7":"-5":"2":0 +mpi_sub_abs:"7":"-5":"2":0 Test mbedtls_mpi_sub_abs: 0 (null) - 0 (null) -mbedtls_mpi_sub_abs:"":"":"":0 +mpi_sub_abs:"":"":"":0 Test mbedtls_mpi_sub_abs: 0 (null) - 0 (1 limb) -mbedtls_mpi_sub_abs:"":"00":"":0 +mpi_sub_abs:"":"00":"":0 Test mbedtls_mpi_sub_abs: 0 (1 limb) - 0 (null) -mbedtls_mpi_sub_abs:"00":"":"":0 +mpi_sub_abs:"00":"":"":0 Test mbedtls_mpi_sub_abs: 0 (1 limb) - 0 (1 limb) -mbedtls_mpi_sub_abs:"00":"00":"":0 +mpi_sub_abs:"00":"00":"":0 Test mbedtls_mpi_sub_abs: 1 - 0 (null) -mbedtls_mpi_sub_abs:"01":"":"01":0 +mpi_sub_abs:"01":"":"01":0 Test mbedtls_mpi_sub_abs: 0 (null) - 1 -mbedtls_mpi_sub_abs:"":"01":"":MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_sub_abs:"":"01":"":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Test mbedtls_mpi_sub_abs #1 -mbedtls_mpi_sub_abs:"FFFFFFFFFF":"01":"FFFFFFFFFE":0 +mpi_sub_abs:"FFFFFFFFFF":"01":"FFFFFFFFFE":0 Test mbedtls_mpi_sub_abs #2 -mbedtls_mpi_sub_abs:"FFFFFFFFF0":"01":"FFFFFFFFEF":0 +mpi_sub_abs:"FFFFFFFFF0":"01":"FFFFFFFFEF":0 Test mbedtls_mpi_sub_abs #3 -mbedtls_mpi_sub_abs:"FF00000000":"0F00000000":"F000000000":0 +mpi_sub_abs:"FF00000000":"0F00000000":"F000000000":0 Test mbedtls_mpi_sub_abs #4 -mbedtls_mpi_sub_abs:"FF00000000":"0F00000001":"EFFFFFFFFF":0 +mpi_sub_abs:"FF00000000":"0F00000001":"EFFFFFFFFF":0 Base test mbedtls_mpi_sub_mpi #1 (Test with negative result) -mbedtls_mpi_sub_mpi:"5":"7":"-2" +mpi_sub_mpi:"5":"7":"-2" Base test mbedtls_mpi_sub_mpi #2 (Test with negative inputs) -mbedtls_mpi_sub_mpi:"-5":"-7":"2" +mpi_sub_mpi:"-5":"-7":"2" Base test mbedtls_mpi_sub_mpi #3 (Test with negative base) -mbedtls_mpi_sub_mpi:"-5":"7":"-c" +mpi_sub_mpi:"-5":"7":"-c" Base test mbedtls_mpi_sub_mpi #4 (Test with negative subtraction) -mbedtls_mpi_sub_mpi:"5":"-7":"c" +mpi_sub_mpi:"5":"-7":"c" Test mbedtls_mpi_sub_mpi: 0 (null) - 0 (null) -mbedtls_mpi_sub_mpi:"":"":"0" +mpi_sub_mpi:"":"":"0" Test mbedtls_mpi_sub_mpi: 0 (null) - 0 (1 limb) -mbedtls_mpi_sub_mpi:"":"00":"0" +mpi_sub_mpi:"":"00":"0" Test mbedtls_mpi_sub_mpi: 0 (null) - 1 -mbedtls_mpi_sub_mpi:"":"1":"-1" +mpi_sub_mpi:"":"1":"-1" Test mbedtls_mpi_sub_mpi: 0 (null) - -1 -mbedtls_mpi_sub_mpi:"":"-1":"1" +mpi_sub_mpi:"":"-1":"1" Test mbedtls_mpi_sub_mpi: 0 (1 limb) - 0 (null) -mbedtls_mpi_sub_mpi:"00":"":"0" +mpi_sub_mpi:"00":"":"0" Test mbedtls_mpi_sub_mpi: 1 - 0 (null) -mbedtls_mpi_sub_mpi:"1":"":"1" +mpi_sub_mpi:"1":"":"1" Test mbedtls_mpi_sub_mpi: -1 - 0 (null) -mbedtls_mpi_sub_mpi:"-1":"":"-1" +mpi_sub_mpi:"-1":"":"-1" Test mbedtls_mpi_sub_mpi #1 -mbedtls_mpi_sub_mpi:"cb50e82a8583f44ee0025942e7362991b24e12663a0ddc234a57b0f7b4ff7b025bf5a6707dedc2898e70b739042c95a996283dffdf67558768784553c61e302e8812bc90f0bb0696870cfb910b560cefed8d99bbf7a00b31ccdbd56f3594e5a653cfd127d2167b13119e5c45c3f76b4e3d904a9bc0cbb43c33aa7f23b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7d59bb22d0ccd7c1334b894851e69c098d02afef307ad3685a53b64082d787c232916b1657ae5ba8baacbd0f85357e53a6530270289bd45afcb8c984ae8b9770eecaf7c83f77e2827ce0ec315ddcb4495d3cf03451969c92c77c21e056888d1c672b3058287b351732b00fdc58c4dd7152abd8627b3b957c0ea314110" +mpi_sub_mpi:"cb50e82a8583f44ee0025942e7362991b24e12663a0ddc234a57b0f7b4ff7b025bf5a6707dedc2898e70b739042c95a996283dffdf67558768784553c61e302e8812bc90f0bb0696870cfb910b560cefed8d99bbf7a00b31ccdbd56f3594e5a653cfd127d2167b13119e5c45c3f76b4e3d904a9bc0cbb43c33aa7f23b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7d59bb22d0ccd7c1334b894851e69c098d02afef307ad3685a53b64082d787c232916b1657ae5ba8baacbd0f85357e53a6530270289bd45afcb8c984ae8b9770eecaf7c83f77e2827ce0ec315ddcb4495d3cf03451969c92c77c21e056888d1c672b3058287b351732b00fdc58c4dd7152abd8627b3b957c0ea314110" Test mbedtls_mpi_sub_mpi #2 (Test for negative result) -mbedtls_mpi_sub_mpi:"1f55332c3a48b910f9942f6c914e58bef37a47ee45cb164a5b6b8d1006bf59a059c21449939ebebfdf517d2e1dbac88010d7b1f141e997bd6801ddaec9d05910f4f2de2b2c4d714e2c14a72fc7f17aa428d59c531627f09":"941379d00fed1491dec0abfc13b52b9049625b3c42c3a972a2549e7a3e1b12c5a304b23e9ed6e251b8af28a4b3124900b23138bfafda925ab3410d57d6f8f0dd8c8c32eb0b4329fbf792e43f9593e766fa0c3c0be077b4e5162616a6428c51b":"-941379d00fed1491bf6b78cfd96c727f4fce2bcfb17550b3aeda568bf84ffc7b4799252e981788b15eed145b1f738a40d2dfbb91921fc9daa2695b66950f5920248a553c4172d0eb02a0061469467618cdf794dc18863a40ed507a532c64612" +mpi_sub_mpi:"1f55332c3a48b910f9942f6c914e58bef37a47ee45cb164a5b6b8d1006bf59a059c21449939ebebfdf517d2e1dbac88010d7b1f141e997bd6801ddaec9d05910f4f2de2b2c4d714e2c14a72fc7f17aa428d59c531627f09":"941379d00fed1491dec0abfc13b52b9049625b3c42c3a972a2549e7a3e1b12c5a304b23e9ed6e251b8af28a4b3124900b23138bfafda925ab3410d57d6f8f0dd8c8c32eb0b4329fbf792e43f9593e766fa0c3c0be077b4e5162616a6428c51b":"-941379d00fed1491bf6b78cfd96c727f4fce2bcfb17550b3aeda568bf84ffc7b4799252e981788b15eed145b1f738a40d2dfbb91921fc9daa2695b66950f5920248a553c4172d0eb02a0061469467618cdf794dc18863a40ed507a532c64612" Test mbedtls_mpi_sub_int #1 -mbedtls_mpi_sub_int:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd92ad4189":-9871232:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd9343e109" +mpi_sub_int:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd92ad4189":-9871232:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd9343e109" Test mbedtls_mpi_sub_int #2 -mbedtls_mpi_sub_int:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd92ad4189":9871232:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd9216a209" +mpi_sub_int:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd92ad4189":9871232:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd9216a209" Test mbedtls_mpi_sub_int: 0 (null) - 0 -mbedtls_mpi_sub_int:"":0:"0" +mpi_sub_int:"":0:"0" Test mbedtls_mpi_sub_int: 0 (null) - 1 -mbedtls_mpi_sub_int:"":1:"-1" +mpi_sub_int:"":1:"-1" Test mbedtls_mpi_sub_int: 0 (null) - -1 -mbedtls_mpi_sub_int:"":-1:"1" +mpi_sub_int:"":-1:"1" Test mbedtls_mpi_shift_l #1 -mbedtls_mpi_shift_l:"40":1:"80" +mpi_shift_l:"40":1:"80" Test mbedtls_mpi_shift_l #2 -mbedtls_mpi_shift_l:"1946e2958a85d8863ae21f4904fcc49478412534ed53eaf321f63f2a2227a3c63acbf50b6305595f90cfa8327f6db80d986fe96080bcbb5df1bdbe9b74fb8dedf2bddb3f8215b54dffd66409323bcc473e45a8fe9d08e77a511698b5dad0416305db7fcf":37:"328dc52b150bb10c75c43e9209f98928f0824a69daa7d5e643ec7e54444f478c7597ea16c60ab2bf219f5064fedb701b30dfd2c1017976bbe37b7d36e9f71bdbe57bb67f042b6a9bffacc8126477988e7c8b51fd3a11cef4a22d316bb5a082c60bb6ff9e000000000" +mpi_shift_l:"1946e2958a85d8863ae21f4904fcc49478412534ed53eaf321f63f2a2227a3c63acbf50b6305595f90cfa8327f6db80d986fe96080bcbb5df1bdbe9b74fb8dedf2bddb3f8215b54dffd66409323bcc473e45a8fe9d08e77a511698b5dad0416305db7fcf":37:"328dc52b150bb10c75c43e9209f98928f0824a69daa7d5e643ec7e54444f478c7597ea16c60ab2bf219f5064fedb701b30dfd2c1017976bbe37b7d36e9f71bdbe57bb67f042b6a9bffacc8126477988e7c8b51fd3a11cef4a22d316bb5a082c60bb6ff9e000000000" Test mbedtls_mpi_shift_l: 0 (null) <<= 0 -mbedtls_mpi_shift_l:"":0:"0" +mpi_shift_l:"":0:"0" Test mbedtls_mpi_shift_l: 0 (null) <<= 1 -mbedtls_mpi_shift_l:"":1:"0" +mpi_shift_l:"":1:"0" Test mbedtls_mpi_shift_l: 0 (null) <<= 64 -mbedtls_mpi_shift_l:"":64:"0" +mpi_shift_l:"":64:"0" Test mbedtls_mpi_shift_r #1 -mbedtls_mpi_shift_r:"80":1:"40" +mpi_shift_r:"80":1:"40" Test mbedtls_mpi_shift_r #2 -mbedtls_mpi_shift_r:"4a36ce2a2eba161116629d6196efb17ee4f01ef753cd32b9e952d4d69e4b2401e85e0c3ba0ea761f44e312db10209fb6b38963c9c0302dc67b1b531c32301d8d341968c734387ef8bc2496051e0bb530975839852d8dd15684788f9dca62cb0c372ac51":45:"251b6715175d0b088b314eb0cb77d8bf72780f7ba9e6995cf4a96a6b4f259200f42f061dd0753b0fa271896d88104fdb59c4b1e4e01816e33d8da98e19180ec69a0cb4639a1c3f7c5e124b028f05da984bac1cc296c6e8ab423c47cee531" +mpi_shift_r:"4a36ce2a2eba161116629d6196efb17ee4f01ef753cd32b9e952d4d69e4b2401e85e0c3ba0ea761f44e312db10209fb6b38963c9c0302dc67b1b531c32301d8d341968c734387ef8bc2496051e0bb530975839852d8dd15684788f9dca62cb0c372ac51":45:"251b6715175d0b088b314eb0cb77d8bf72780f7ba9e6995cf4a96a6b4f259200f42f061dd0753b0fa271896d88104fdb59c4b1e4e01816e33d8da98e19180ec69a0cb4639a1c3f7c5e124b028f05da984bac1cc296c6e8ab423c47cee531" Test mbedtls_mpi_shift_r #4 [#1] -mbedtls_mpi_shift_r:"FFFFFFFFFFFFFFFF":63:"01" +mpi_shift_r:"FFFFFFFFFFFFFFFF":63:"01" Test mbedtls_mpi_shift_r #4 [#2] -mbedtls_mpi_shift_r:"FFFFFFFFFFFFFFFF":64:"00" +mpi_shift_r:"FFFFFFFFFFFFFFFF":64:"00" Test mbedtls_mpi_shift_r #6 -mbedtls_mpi_shift_r:"FFFFFFFFFFFFFFFF":65:"00" +mpi_shift_r:"FFFFFFFFFFFFFFFF":65:"00" Test mbedtls_mpi_shift_r #7 -mbedtls_mpi_shift_r:"FFFFFFFFFFFFFFFF":128:"00" +mpi_shift_r:"FFFFFFFFFFFFFFFF":128:"00" Test mbedtls_mpi_shift_r: 0 (null) >>= 0 -mbedtls_mpi_shift_r:"":0:"0" +mpi_shift_r:"":0:"0" Test mbedtls_mpi_shift_r: 0 (null) >>= 1 -mbedtls_mpi_shift_r:"":1:"0" +mpi_shift_r:"":1:"0" Test mbedtls_mpi_shift_r: 0 (null) >>= 64 -mbedtls_mpi_shift_r:"":64:"0" +mpi_shift_r:"":64:"0" Base test mbedtls_mpi_mul_mpi #1 -mbedtls_mpi_mul_mpi:"5":"7":"23" +mpi_mul_mpi:"5":"7":"23" Base test mbedtls_mpi_mul_mpi #2 -mbedtls_mpi_mul_mpi:"-5":"7":"-23" +mpi_mul_mpi:"-5":"7":"-23" Base test mbedtls_mpi_mul_mpi #3 -mbedtls_mpi_mul_mpi:"5":"-7":"-23" +mpi_mul_mpi:"5":"-7":"-23" Base test mbedtls_mpi_mul_mpi #4 -mbedtls_mpi_mul_mpi:"-5":"-7":"23" +mpi_mul_mpi:"-5":"-7":"23" Test mbedtls_mpi_mul_mpi: 0 (null) * 0 (null) -mbedtls_mpi_mul_mpi:"":"":"0" +mpi_mul_mpi:"":"":"0" Test mbedtls_mpi_mul_mpi: 0 (null) * 0 (1 limb) -mbedtls_mpi_mul_mpi:"":"00":"0" +mpi_mul_mpi:"":"00":"0" Test mbedtls_mpi_mul_mpi: 0 (null) * 1 -mbedtls_mpi_mul_mpi:"":"01":"0" +mpi_mul_mpi:"":"01":"0" Test mbedtls_mpi_mul_mpi: 0 (null) * -1 -mbedtls_mpi_mul_mpi:"":"-01":"0" +mpi_mul_mpi:"":"-01":"0" Test mbedtls_mpi_mul_mpi: 0 (1 limb) * -1 -mbedtls_mpi_mul_mpi:"00":"-01":"0" +mpi_mul_mpi:"00":"-01":"0" Test mbedtls_mpi_mul_mpi: 0 (1 limb) * 0 (null) -mbedtls_mpi_mul_mpi:"00":"":"0" +mpi_mul_mpi:"00":"":"0" Test mbedtls_mpi_mul_mpi: 1 * 0 (null) -mbedtls_mpi_mul_mpi:"01":"":"0" +mpi_mul_mpi:"01":"":"0" Test mbedtls_mpi_mul_mpi: -1 * 0 (null) -mbedtls_mpi_mul_mpi:"-01":"":"0" +mpi_mul_mpi:"-01":"":"0" Test mbedtls_mpi_mul_mpi: -1 * 0 (1 limb) -mbedtls_mpi_mul_mpi:"-01":"00":"0" +mpi_mul_mpi:"-01":"00":"0" Test mbedtls_mpi_mul_mpi #1 -mbedtls_mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" +mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" Test mbedtls_mpi_mul_mpi #1, leading 0 limb in B -mbedtls_mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"000000000000000001b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" +mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"000000000000000001b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" Test mbedtls_mpi_mul_mpi #1, leading 0 limb in B, A < 0 -mbedtls_mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"000000000000000001b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" +mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"000000000000000001b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" Test mbedtls_mpi_mul_mpi #1, leading 0 limb in B, B < 0 -mbedtls_mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-000000000000000001b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" +mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-000000000000000001b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" Test mbedtls_mpi_mul_mpi #1, leading 0 limb in B, A < 0, B < 0 -mbedtls_mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-000000000000000001b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" +mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-000000000000000001b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" Test mbedtls_mpi_mul_mpi #1, leading 0 limb in A -mbedtls_mpi_mul_mpi:"000000000000000002f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" +mpi_mul_mpi:"000000000000000002f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" Test mbedtls_mpi_mul_mpi #1, leading 0 limb in A, A < 0 -mbedtls_mpi_mul_mpi:"-000000000000000002f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" +mpi_mul_mpi:"-000000000000000002f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" Test mbedtls_mpi_mul_mpi #1, leading 0 limb in A, B < 0 -mbedtls_mpi_mul_mpi:"000000000000000002f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" +mpi_mul_mpi:"000000000000000002f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" Test mbedtls_mpi_mul_mpi #1, leading 0 limb in A, A < 0, B < 0 -mbedtls_mpi_mul_mpi:"-000000000000000002f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" +mpi_mul_mpi:"-000000000000000002f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" Test mbedtls_mpi_mul_mpi #1, leading 0 limb in A and B -mbedtls_mpi_mul_mpi:"000000000000000002f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"000000000000000001b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" +mpi_mul_mpi:"000000000000000002f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"000000000000000001b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" Test mbedtls_mpi_mul_mpi #1, leading 0 limb in A and B, A < 0 -mbedtls_mpi_mul_mpi:"-000000000000000002f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"000000000000000001b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" +mpi_mul_mpi:"-000000000000000002f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"000000000000000001b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" Test mbedtls_mpi_mul_mpi #1, leading 0 limb in A and B, B < 0 -mbedtls_mpi_mul_mpi:"000000000000000002f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-000000000000000001b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" +mpi_mul_mpi:"000000000000000002f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-000000000000000001b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" Test mbedtls_mpi_mul_mpi #1, leading 0 limb in A and B, A < 0, B < 0 -mbedtls_mpi_mul_mpi:"-000000000000000002f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-000000000000000001b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" +mpi_mul_mpi:"-000000000000000002f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-000000000000000001b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb59" Test mbedtls_mpi_mul_mpi #2, trailing 0 limb in A -mbedtls_mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf24510000000000000000":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb590000000000000000" +mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf24510000000000000000":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb590000000000000000" Test mbedtls_mpi_mul_mpi #2, trailing 0 limb in A, A < 0 -mbedtls_mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf24510000000000000000":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb590000000000000000" +mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf24510000000000000000":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb590000000000000000" Test mbedtls_mpi_mul_mpi #2, trailing 0 limb in A, B < 0 -mbedtls_mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf24510000000000000000":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb590000000000000000" +mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf24510000000000000000":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb590000000000000000" Test mbedtls_mpi_mul_mpi #2, trailing 0 limb in A, A < 0, B < 0 -mbedtls_mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf24510000000000000000":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb590000000000000000" +mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf24510000000000000000":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb590000000000000000" Test mbedtls_mpi_mul_mpi #2, trailing 0 limb in B -mbedtls_mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c890000000000000000":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb590000000000000000" +mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c890000000000000000":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb590000000000000000" Test mbedtls_mpi_mul_mpi #2, trailing 0 limb in B, A < 0 -mbedtls_mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c890000000000000000":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb590000000000000000" +mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c890000000000000000":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb590000000000000000" Test mbedtls_mpi_mul_mpi #2, trailing 0 limb in B, B < 0 -mbedtls_mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c890000000000000000":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb590000000000000000" +mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c890000000000000000":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb590000000000000000" Test mbedtls_mpi_mul_mpi #2, trailing 0 limb in B, A < 0, B < 0 -mbedtls_mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c890000000000000000":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb590000000000000000" +mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c890000000000000000":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb590000000000000000" Test mbedtls_mpi_mul_mpi #2, trailing 0 limb in A and B -mbedtls_mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf24510000000000000000":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c890000000000000000":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" +mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf24510000000000000000":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c890000000000000000":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" Test mbedtls_mpi_mul_mpi #2, trailing 0 limb in A and B, A < 0 -mbedtls_mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf24510000000000000000":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c890000000000000000":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" +mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf24510000000000000000":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c890000000000000000":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" Test mbedtls_mpi_mul_mpi #2, trailing 0 limb in A and B, B < 0 -mbedtls_mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf24510000000000000000":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c890000000000000000":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" +mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf24510000000000000000":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c890000000000000000":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" Test mbedtls_mpi_mul_mpi #2, trailing 0 limb in A and B, A < 0, B < 0 -mbedtls_mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf24510000000000000000":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c890000000000000000":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" +mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf24510000000000000000":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c890000000000000000":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" Test mbedtls_mpi_mul_mpi #3, trailing 0 limbs in A -mbedtls_mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf245100000000000000000000000000000000":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" +mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf245100000000000000000000000000000000":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" Test mbedtls_mpi_mul_mpi #3, trailing 0 limbs in A, A < 0 -mbedtls_mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf245100000000000000000000000000000000":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" +mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf245100000000000000000000000000000000":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" Test mbedtls_mpi_mul_mpi #3, trailing 0 limbs in A, B < 0 -mbedtls_mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf245100000000000000000000000000000000":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" +mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf245100000000000000000000000000000000":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" Test mbedtls_mpi_mul_mpi #3, trailing 0 limbs in A, A < 0, B < 0 -mbedtls_mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf245100000000000000000000000000000000":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" +mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf245100000000000000000000000000000000":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" Test mbedtls_mpi_mul_mpi #3, trailing 0 limbs in B -mbedtls_mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c8900000000000000000000000000000000":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" +mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c8900000000000000000000000000000000":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" Test mbedtls_mpi_mul_mpi #3, trailing 0 limbs in B, A < 0 -mbedtls_mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c8900000000000000000000000000000000":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" +mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c8900000000000000000000000000000000":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" Test mbedtls_mpi_mul_mpi #3, trailing 0 limbs in B, B < 0 -mbedtls_mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c8900000000000000000000000000000000":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" +mpi_mul_mpi:"02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c8900000000000000000000000000000000":"-0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" Test mbedtls_mpi_mul_mpi #3, trailing 0 limbs in B, A < 0, B < 0 -mbedtls_mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c8900000000000000000000000000000000":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" +mpi_mul_mpi:"-02f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"-01b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c8900000000000000000000000000000000":"0503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5900000000000000000000000000000000" Test mbedtls_mpi_mul_int #1 -mbedtls_mpi_mul_int:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd92ad4189":9871232:"9e22d6da18a33d1ef28d2a82242b3f6e9c9742f63e5d440f58a190bfaf23a7866e67589adb80":"==" +mpi_mul_int:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd92ad4189":9871232:"9e22d6da18a33d1ef28d2a82242b3f6e9c9742f63e5d440f58a190bfaf23a7866e67589adb80":"==" Test mbedtls_mpi_mul_int #2 (Unsigned, thus failure) -mbedtls_mpi_mul_int:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd92ad4189":-9871232:"-9e22d6da18a33d1ef28d2a82242b3f6e9c9742f63e5d440f58a190bfaf23a7866e67589adb80":"!=" +mpi_mul_int:"10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd92ad4189":-9871232:"-9e22d6da18a33d1ef28d2a82242b3f6e9c9742f63e5d440f58a190bfaf23a7866e67589adb80":"!=" Test mbedtls_mpi_mul_int #3 -mbedtls_mpi_mul_int:"-10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd92ad4189":9871232:"-9e22d6da18a33d1ef28d2a82242b3f6e9c9742f63e5d440f58a190bfaf23a7866e67589adb80":"==" +mpi_mul_int:"-10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd92ad4189":9871232:"-9e22d6da18a33d1ef28d2a82242b3f6e9c9742f63e5d440f58a190bfaf23a7866e67589adb80":"==" Test mbedtls_mpi_mul_int #4 (Unsigned, thus failure) -mbedtls_mpi_mul_int:"-10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd92ad4189":-9871232:"9e22d6da18a33d1ef28d2a82242b3f6e9c9742f63e5d440f58a190bfaf23a7866e67589adb80":"!=" +mpi_mul_int:"-10cc4ebcb68cbdaa438b80692d9e586b384ae3e1fa33f3db5962d394bec17fd92ad4189":-9871232:"9e22d6da18a33d1ef28d2a82242b3f6e9c9742f63e5d440f58a190bfaf23a7866e67589adb80":"!=" Test mbedtls_mpi_mul_int: 0 (null) * 0 -mbedtls_mpi_mul_int:"":0:"":"==" +mpi_mul_int:"":0:"":"==" Test mbedtls_mpi_mul_int: 0 (null) * 1 -mbedtls_mpi_mul_int:"":1:"":"==" +mpi_mul_int:"":1:"":"==" Test mbedtls_mpi_mul_int: 0 (null) * 0x1234 -mbedtls_mpi_mul_int:"":0x1234:"":"==" +mpi_mul_int:"":0x1234:"":"==" Base test mbedtls_mpi_div_mpi #1 -mbedtls_mpi_div_mpi:"3e8":"d":"4c":"c":0 +mpi_div_mpi:"3e8":"d":"4c":"c":0 Base test mbedtls_mpi_div_mpi #2 (Divide by zero (1 limb)) -mbedtls_mpi_div_mpi:"3e8":"0":"1":"1":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO +mpi_div_mpi:"3e8":"0":"1":"1":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Base test mbedtls_mpi_div_mpi #2 (Divide by zero (null)) -mbedtls_mpi_div_mpi:"3e8":"":"1":"1":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO +mpi_div_mpi:"3e8":"":"1":"1":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Base test mbedtls_mpi_div_mpi #3 -mbedtls_mpi_div_mpi:"3e8":"-d":"-4c":"c":0 +mpi_div_mpi:"3e8":"-d":"-4c":"c":0 Test mbedtls_mpi_div_mpi: 0 (null) / 0 (null) -mbedtls_mpi_div_mpi:"":"":"":"":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO +mpi_div_mpi:"":"":"":"":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Test mbedtls_mpi_div_mpi: 0 (null) / 0 (1 limb) -mbedtls_mpi_div_mpi:"":"0":"":"":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO +mpi_div_mpi:"":"0":"":"":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Test mbedtls_mpi_div_mpi: 0 (1 limb) / 0 (null) -mbedtls_mpi_div_mpi:"0":"":"":"":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO +mpi_div_mpi:"0":"":"":"":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Test mbedtls_mpi_div_mpi: 0 (1 limb) / 0 (1 limb) -mbedtls_mpi_div_mpi:"0":"0":"":"":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO +mpi_div_mpi:"0":"0":"":"":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Test mbedtls_mpi_div_mpi: 0 (null) / 1 -mbedtls_mpi_div_mpi:"":"1":"":"":0 +mpi_div_mpi:"":"1":"":"":0 Test mbedtls_mpi_div_mpi: 0 (null) / -1 -mbedtls_mpi_div_mpi:"":"-1":"":"":0 +mpi_div_mpi:"":"-1":"":"":0 Test mbedtls_mpi_div_mpi #1 -mbedtls_mpi_div_mpi:"9e22d6da18a33d1ef28d2a82242b3f6e9c9742f63e5d440f58a190bfaf23a7866e67589adb80":"22":"4a6abf75b13dc268ea9cc8b5b6aaf0ac85ecd437a4e0987fb13cf8d2acc57c0306c738c1583":"1a":0 +mpi_div_mpi:"9e22d6da18a33d1ef28d2a82242b3f6e9c9742f63e5d440f58a190bfaf23a7866e67589adb80":"22":"4a6abf75b13dc268ea9cc8b5b6aaf0ac85ecd437a4e0987fb13cf8d2acc57c0306c738c1583":"1a":0 Test mbedtls_mpi_div_mpi #2 -mbedtls_mpi_div_mpi:"503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5a":"2f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"1b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"1":0 +mpi_div_mpi:"503ae899d35ae5b7706b067aed7cb2952da37a5d4ad58f05f69abe14e8aaae88eab2baed858177cb4595c0edc92e5ac13c2bba2bfa23276dd023e9e52f547d4c9edb138d86aad329d7afb01e15eab7281e181cb249fc91bf09d621d86561301edda156f80e3bbff853a312852fe9e3d0541cb86801390aff1dc3c05bcb592c266f625b70e419b4c7e7e85399bb06c0e50b099b4292f9eaff4d869681faa1f745b5fcb3349ed93c572739a31dcf76b43370cf9f86cc54e982dfac9467bde915c697e60554e0d698be6bb2dd1f8bc64659f6baee7641b51f4b5ed7010c04600fcd382db84a93fe3d4d86e86a459c6cebb5a":"2f77b94b179d4a51360f04fa56e2c0784ce3b8a742280b016904896a5605fbe9e0f0683f82c439d979ab14e11b34e05ae96232b18fb2e0d1319f4942732d7eadf92ae90cb8c68ec8ece154d334f553564b6f6db185b33b8d3635598c3d128acde8bbb7b13697e48d1a542e5f9168d2d83a8dd05ae1eaf2451":"1b0b14c432710cde936e3fc100515e95dca61e10b8a68d9632bfa0546a9731a1ce6bebc6cb5fe6f5fd7e57b25f737f6a0ce5402e216b8b81c06f0c5ccce447d7f5631d14bff9dfa16f7cc72c56c84b636d00a5f35199d17ee9bf3f8746f44374ffd4ae22cf84089f04a9f7f356d6dc9f8cf8ef208a9b88c89":"1":0 Test mbedtls_mpi_div_mpi #3 -mbedtls_mpi_div_mpi:"3e8":"7":"8e":"6":0 +mpi_div_mpi:"3e8":"7":"8e":"6":0 Test mbedtls_mpi_div_mpi #4 -mbedtls_mpi_div_mpi:"309":"7":"6f":"0":0 +mpi_div_mpi:"309":"7":"6f":"0":0 Base test mbedtls_mpi_div_int #1 -mbedtls_mpi_div_int:"3e8":13:"4c":"c":0 +mpi_div_int:"3e8":13:"4c":"c":0 Base test mbedtls_mpi_div_int #2 (Divide by zero) -mbedtls_mpi_div_int:"3e8":0:"1":"1":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO +mpi_div_int:"3e8":0:"1":"1":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Base test mbedtls_mpi_div_int #3 -mbedtls_mpi_div_int:"3e8":-13:"-4c":"c":0 +mpi_div_int:"3e8":-13:"-4c":"c":0 Test mbedtls_mpi_div_int #1 -mbedtls_mpi_div_int:"9e22d6da18a33d1ef28d2a82242b3f6e9c9742f63e5d440f58a190bfaf23a7866e67589adb80":34:"4a6abf75b13dc268ea9cc8b5b6aaf0ac85ecd437a4e0987fb13cf8d2acc57c0306c738c1583":"1a":0 +mpi_div_int:"9e22d6da18a33d1ef28d2a82242b3f6e9c9742f63e5d440f58a190bfaf23a7866e67589adb80":34:"4a6abf75b13dc268ea9cc8b5b6aaf0ac85ecd437a4e0987fb13cf8d2acc57c0306c738c1583":"1a":0 Test mbedtls_mpi_div_int #2 -mbedtls_mpi_div_int:"9e22d6da18a33d1ef28d2a82242b3f6e9c9742f63e5d440f58a190bfaf23a7866e67589adb80":-34:"-4a6abf75b13dc268ea9cc8b5b6aaf0ac85ecd437a4e0987fb13cf8d2acc57c0306c738c1583":"1a":0 +mpi_div_int:"9e22d6da18a33d1ef28d2a82242b3f6e9c9742f63e5d440f58a190bfaf23a7866e67589adb80":-34:"-4a6abf75b13dc268ea9cc8b5b6aaf0ac85ecd437a4e0987fb13cf8d2acc57c0306c738c1583":"1a":0 Test mbedtls_mpi_div_int: 0 (null) / 0 -mbedtls_mpi_div_int:"":0:"":"":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO +mpi_div_int:"":0:"":"":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Test mbedtls_mpi_div_int: 0 (1 limb) / 0 -mbedtls_mpi_div_int:"00":0:"":"":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO +mpi_div_int:"00":0:"":"":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Test mbedtls_mpi_div_int: 0 (null) / 1 -mbedtls_mpi_div_int:"":1:"":"":0 +mpi_div_int:"":1:"":"":0 Base test mbedtls_mpi_mod_mpi #1 -mbedtls_mpi_mod_mpi:"3e8":"d":"c":0 +mpi_mod_mpi:"3e8":"d":"c":0 Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (null)) -mbedtls_mpi_mod_mpi:"3e8":"":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO +mpi_mod_mpi:"3e8":"":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (1 limb)) -mbedtls_mpi_mod_mpi:"3e8":"0":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO +mpi_mod_mpi:"3e8":"0":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Base test mbedtls_mpi_mod_mpi #3 -mbedtls_mpi_mod_mpi:"-3e8":"d":"1":0 +mpi_mod_mpi:"-3e8":"d":"1":0 Base test mbedtls_mpi_mod_mpi #4 (Negative modulo) -mbedtls_mpi_mod_mpi:"3e8":"-d":"-1":MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_mod_mpi:"3e8":"-d":"-1":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_mod_mpi #5 (Negative modulo) -mbedtls_mpi_mod_mpi:"-3e8":"-d":"-c":MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_mod_mpi:"-3e8":"-d":"-c":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Test mbedtls_mpi_mod_mpi: 0 (null) % 1 -mbedtls_mpi_mod_mpi:"":"1":"":0 +mpi_mod_mpi:"":"1":"":0 Test mbedtls_mpi_mod_mpi: 0 (null) % -1 -mbedtls_mpi_mod_mpi:"":"-1":"":MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_mod_mpi:"":"-1":"":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_mod_int #1 -mbedtls_mpi_mod_int:"3e8":13:12:0 +mpi_mod_int:"3e8":13:12:0 Base test mbedtls_mpi_mod_int #2 (Divide by zero) -mbedtls_mpi_mod_int:"3e8":0:0:MBEDTLS_ERR_MPI_DIVISION_BY_ZERO +mpi_mod_int:"3e8":0:0:MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Base test mbedtls_mpi_mod_int #3 -mbedtls_mpi_mod_int:"-3e8":13:1:0 +mpi_mod_int:"-3e8":13:1:0 Base test mbedtls_mpi_mod_int #4 (Negative modulo) -mbedtls_mpi_mod_int:"3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_mod_int:"3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_mod_int #5 (Negative modulo) -mbedtls_mpi_mod_int:"-3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_mod_int:"-3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_mod_int #6 (By 1) -mbedtls_mpi_mod_int:"3e8":1:0:0 +mpi_mod_int:"3e8":1:0:0 Base test mbedtls_mpi_mod_int #7 (By 2) -mbedtls_mpi_mod_int:"3e9":2:1:0 +mpi_mod_int:"3e9":2:1:0 Base test mbedtls_mpi_mod_int #8 (By 2) -mbedtls_mpi_mod_int:"3e8":2:0:0 +mpi_mod_int:"3e8":2:0:0 Test mbedtls_mpi_mod_int: 0 (null) % 1 -mbedtls_mpi_mod_int:"":1:0:0 +mpi_mod_int:"":1:0:0 Test mbedtls_mpi_mod_int: 0 (null) % 2 -mbedtls_mpi_mod_int:"":2:0:0 +mpi_mod_int:"":2:0:0 Test mbedtls_mpi_mod_int: 0 (null) % -1 -mbedtls_mpi_mod_int:"":-1:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_mod_int:"":-1:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE Test mbedtls_mpi_mod_int: 0 (null) % -2 -mbedtls_mpi_mod_int:"":-2:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_mod_int:"":-2:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_exp_mod #1 -mbedtls_mpi_exp_mod:"17":"d":"1d":"18":0 +mpi_exp_mod:"17":"d":"1d":"18":0 Base test mbedtls_mpi_exp_mod #2 (Even N) -mbedtls_mpi_exp_mod:"17":"d":"1e":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_exp_mod:"17":"d":"1e":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Base test mbedtls_mpi_exp_mod #2 (N = 0 (null)) -mbedtls_mpi_exp_mod:"17":"d":"":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_exp_mod:"17":"d":"":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Base test mbedtls_mpi_exp_mod #3 (Negative N) -mbedtls_mpi_exp_mod:"17":"d":"-1d":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_exp_mod:"17":"d":"-1d":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Base test mbedtls_mpi_exp_mod #4 (Negative base) -mbedtls_mpi_exp_mod:"-17":"d":"1d":"5":0 +mpi_exp_mod:"-17":"d":"1d":"5":0 Base test mbedtls_mpi_exp_mod #5 (Negative exponent) -mbedtls_mpi_exp_mod:"17":"-d":"1d":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_exp_mod:"17":"-d":"1d":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Base test mbedtls_mpi_exp_mod #6 (Negative base + exponent) -mbedtls_mpi_exp_mod:"-17":"-d":"1d":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_exp_mod:"-17":"-d":"1d":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_exp_mod: 0 (null) ^ 0 (null) mod 9 -mbedtls_mpi_exp_mod:"":"":"09":"1":0 +mpi_exp_mod:"":"":"09":"1":0 Test mbedtls_mpi_exp_mod: 0 (null) ^ 0 (1 limb) mod 9 -mbedtls_mpi_exp_mod:"":"00":"09":"1":0 +mpi_exp_mod:"":"00":"09":"1":0 Test mbedtls_mpi_exp_mod: 0 (null) ^ 1 mod 9 -mbedtls_mpi_exp_mod:"":"01":"09":"":0 +mpi_exp_mod:"":"01":"09":"":0 Test mbedtls_mpi_exp_mod: 0 (null) ^ 2 mod 9 -mbedtls_mpi_exp_mod:"":"02":"09":"":0 +mpi_exp_mod:"":"02":"09":"":0 Test mbedtls_mpi_exp_mod: 0 (1 limb) ^ 0 (null) mod 9 -mbedtls_mpi_exp_mod:"00":"":"09":"1":0 +mpi_exp_mod:"00":"":"09":"1":0 Test mbedtls_mpi_exp_mod: 0 (1 limb) ^ 0 (1 limb) mod 9 -mbedtls_mpi_exp_mod:"00":"00":"09":"1":0 +mpi_exp_mod:"00":"00":"09":"1":0 Test mbedtls_mpi_exp_mod: 0 (1 limb) ^ 1 mod 9 -mbedtls_mpi_exp_mod:"00":"01":"09":"":0 +mpi_exp_mod:"00":"01":"09":"":0 Test mbedtls_mpi_exp_mod: 0 (1 limb) ^ 2 mod 9 -mbedtls_mpi_exp_mod:"00":"02":"09":"":0 +mpi_exp_mod:"00":"02":"09":"":0 Test mbedtls_mpi_exp_mod: 1 ^ 0 (null) mod 9 -mbedtls_mpi_exp_mod:"01":"":"09":"1":0 +mpi_exp_mod:"01":"":"09":"1":0 Test mbedtls_mpi_exp_mod: 4 ^ 0 (null) mod 9 -mbedtls_mpi_exp_mod:"04":"":"09":"1":0 +mpi_exp_mod:"04":"":"09":"1":0 Test mbedtls_mpi_exp_mod: 10 ^ 0 (null) mod 9 -mbedtls_mpi_exp_mod:"0a":"":"09":"1":0 +mpi_exp_mod:"0a":"":"09":"1":0 Test mbedtls_mpi_exp_mod: 1 ^ 0 (1 limb) mod 9 -mbedtls_mpi_exp_mod:"01":"00":"09":"1":0 +mpi_exp_mod:"01":"00":"09":"1":0 Test mbedtls_mpi_exp_mod: 4 ^ 0 (1 limb) mod 9 -mbedtls_mpi_exp_mod:"04":"00":"09":"1":0 +mpi_exp_mod:"04":"00":"09":"1":0 Test mbedtls_mpi_exp_mod: 10 ^ 0 (1 limb) mod 9 -mbedtls_mpi_exp_mod:"0a":"00":"09":"1":0 +mpi_exp_mod:"0a":"00":"09":"1":0 Test mbedtls_mpi_exp_mod: MAX_SIZE exponent -mbedtls_mpi_exp_mod_size:2:MBEDTLS_MPI_MAX_SIZE:10:"":0 +mpi_exp_mod_size:2:MBEDTLS_MPI_MAX_SIZE:10:"":0 Test mbedtls_mpi_exp_mod: MAX_SIZE + 1 exponent -mbedtls_mpi_exp_mod_size:2:MBEDTLS_MPI_MAX_SIZE + 1:10:"":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_exp_mod_size:2:MBEDTLS_MPI_MAX_SIZE + 1:10:"":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_exp_mod: MAX_SIZE modulus -mbedtls_mpi_exp_mod_size:2:2:MBEDTLS_MPI_MAX_SIZE:"":0 +mpi_exp_mod_size:2:2:MBEDTLS_MPI_MAX_SIZE:"":0 Test mbedtls_mpi_exp_mod: MAX_SIZE + 1 modulus -mbedtls_mpi_exp_mod_size:2:2:MBEDTLS_MPI_MAX_SIZE + 1:"":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_exp_mod_size:2:2:MBEDTLS_MPI_MAX_SIZE + 1:"":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_exp_mod: MAX_SIZE exponent and modulus -mbedtls_mpi_exp_mod_size:2:MBEDTLS_MPI_MAX_SIZE:MBEDTLS_MPI_MAX_SIZE:"":0 +mpi_exp_mod_size:2:MBEDTLS_MPI_MAX_SIZE:MBEDTLS_MPI_MAX_SIZE:"":0 Test mbedtls_mpi_exp_mod: MAX_SIZE + 1 exponent and modulus -mbedtls_mpi_exp_mod_size:2:MBEDTLS_MPI_MAX_SIZE + 1:MBEDTLS_MPI_MAX_SIZE + 1:"":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_exp_mod_size:2:MBEDTLS_MPI_MAX_SIZE + 1:MBEDTLS_MPI_MAX_SIZE + 1:"":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_exp_mod #1 depends_on:MPI_MAX_BITS_LARGER_THAN_792 -mbedtls_mpi_exp_mod:"109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"33ae3764fd06a00cdc3cba5c45dc79a9edb4e67e4d057cc74139d531c25190d111775fc4a0f4439b8b1930bbd766e7b46f170601f316c8a18ff8d5cb5ca5581f168345d101edb462b7d93b7c520ccb8fb276b447a63d869203cc11f67a1122dc4da034218de85e39":"11a9351d2d32ccd568e75bf8b4ebbb2a36be691b55832edac662ff79803df8af525fba453068be16ac3920bcc1b468f8f7fe786e0fa4ecbabcad31e5e3b05def802eb8600deaf11ef452487db878df20a80606e4bb6a163b83895d034cc8b53dbcd005be42ffdd2ce99bed06089a0b79d":"37880b547b41bda303bddda307eefe24b4aedf076c9b814b903aaf328a10825c7e259a20afc6b70b487bb21a6d32d0ee98a0b9f42ff812c901e2f79237fe3e00856992dd69d93ebc0664c75863829621751b0ac35a8ae8a0965841607d3099b8e0ed24442749ba09acbcb165598dcd40":0 +mpi_exp_mod:"109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"33ae3764fd06a00cdc3cba5c45dc79a9edb4e67e4d057cc74139d531c25190d111775fc4a0f4439b8b1930bbd766e7b46f170601f316c8a18ff8d5cb5ca5581f168345d101edb462b7d93b7c520ccb8fb276b447a63d869203cc11f67a1122dc4da034218de85e39":"11a9351d2d32ccd568e75bf8b4ebbb2a36be691b55832edac662ff79803df8af525fba453068be16ac3920bcc1b468f8f7fe786e0fa4ecbabcad31e5e3b05def802eb8600deaf11ef452487db878df20a80606e4bb6a163b83895d034cc8b53dbcd005be42ffdd2ce99bed06089a0b79d":"37880b547b41bda303bddda307eefe24b4aedf076c9b814b903aaf328a10825c7e259a20afc6b70b487bb21a6d32d0ee98a0b9f42ff812c901e2f79237fe3e00856992dd69d93ebc0664c75863829621751b0ac35a8ae8a0965841607d3099b8e0ed24442749ba09acbcb165598dcd40":0 Test mbedtls_mpi_exp_mod (Negative base) [#1] -mbedtls_mpi_exp_mod:"-2540be400":"2540be400":"1869f":"1":0 +mpi_exp_mod:"-2540be400":"2540be400":"1869f":"1":0 Test mbedtls_mpi_exp_mod (Negative base) [#2] depends_on:MPI_MAX_BITS_LARGER_THAN_792 -mbedtls_mpi_exp_mod:"-9f13012cd92aa72fb86ac8879d2fde4f7fd661aaae43a00971f081cc60ca277059d5c37e89652e2af2585d281d66ef6a9d38a117e9608e9e7574cd142dc55278838a2161dd56db9470d4c1da2d5df15a908ee2eb886aaa890f23be16de59386663a12f1afbb325431a3e835e3fd89b98b96a6f77382f458ef9a37e1f84a03045c8676ab55291a94c2228ea15448ee96b626b998":"40a54d1b9e86789f06d9607fb158672d64867665c73ee9abb545fc7a785634b354c7bae5b962ce8040cf45f2c1f3d3659b2ee5ede17534c8fc2ec85c815e8df1fe7048d12c90ee31b88a68a081f17f0d8ce5f4030521e9400083bcea73a429031d4ca7949c2000d597088e0c39a6014d8bf962b73bb2e8083bd0390a4e00b9b3":"eeaf0ab9adb38dd69c33f80afa8fc5e86072618775ff3c0b9ea2314c9c256576d674df7496ea81d3383b4813d692c6e0e0d5d8e250b98be48e495c1d6089dad15dc7d7b46154d6b6ce8ef4ad69b15d4982559b297bcf1885c529f566660e57ec68edbc3c05726cc02fd4cbf4976eaa9afd5138fe8376435b9fc61d2fc0eb06e3":"21acc7199e1b90f9b4844ffe12c19f00ec548c5d32b21c647d48b6015d8eb9ec9db05b4f3d44db4227a2b5659c1a7cceb9d5fa8fa60376047953ce7397d90aaeb7465e14e820734f84aa52ad0fc66701bcbb991d57715806a11531268e1e83dd48288c72b424a6287e9ce4e5cc4db0dd67614aecc23b0124a5776d36e5c89483":0 +mpi_exp_mod:"-9f13012cd92aa72fb86ac8879d2fde4f7fd661aaae43a00971f081cc60ca277059d5c37e89652e2af2585d281d66ef6a9d38a117e9608e9e7574cd142dc55278838a2161dd56db9470d4c1da2d5df15a908ee2eb886aaa890f23be16de59386663a12f1afbb325431a3e835e3fd89b98b96a6f77382f458ef9a37e1f84a03045c8676ab55291a94c2228ea15448ee96b626b998":"40a54d1b9e86789f06d9607fb158672d64867665c73ee9abb545fc7a785634b354c7bae5b962ce8040cf45f2c1f3d3659b2ee5ede17534c8fc2ec85c815e8df1fe7048d12c90ee31b88a68a081f17f0d8ce5f4030521e9400083bcea73a429031d4ca7949c2000d597088e0c39a6014d8bf962b73bb2e8083bd0390a4e00b9b3":"eeaf0ab9adb38dd69c33f80afa8fc5e86072618775ff3c0b9ea2314c9c256576d674df7496ea81d3383b4813d692c6e0e0d5d8e250b98be48e495c1d6089dad15dc7d7b46154d6b6ce8ef4ad69b15d4982559b297bcf1885c529f566660e57ec68edbc3c05726cc02fd4cbf4976eaa9afd5138fe8376435b9fc61d2fc0eb06e3":"21acc7199e1b90f9b4844ffe12c19f00ec548c5d32b21c647d48b6015d8eb9ec9db05b4f3d44db4227a2b5659c1a7cceb9d5fa8fa60376047953ce7397d90aaeb7465e14e820734f84aa52ad0fc66701bcbb991d57715806a11531268e1e83dd48288c72b424a6287e9ce4e5cc4db0dd67614aecc23b0124a5776d36e5c89483":0 Base test GCD #1 -mbedtls_mpi_gcd:"2b5":"261":"15" +mpi_gcd:"2b5":"261":"15" Base test GCD #2 -mbedtls_mpi_gcd:"6e4":"364":"1c" +mpi_gcd:"6e4":"364":"1c" Base test GCD #3 -mbedtls_mpi_gcd:"2dcdb10b":"2050d306":"1" +mpi_gcd:"2dcdb10b":"2050d306":"1" Test GCD: 0 (null), 0 (null) -mbedtls_mpi_gcd:"":"":"0" +mpi_gcd:"":"":"0" Test GCD: 0 (null), 0 (1 limb) -mbedtls_mpi_gcd:"":"00":"0" +mpi_gcd:"":"00":"0" Test GCD: 0 (null), 3 -mbedtls_mpi_gcd:"":"03":"3" +mpi_gcd:"":"03":"3" Test GCD: 0 (null), 6 -mbedtls_mpi_gcd:"":"06":"6" +mpi_gcd:"":"06":"6" Test GCD: 0 (1 limb), 0 (null) -mbedtls_mpi_gcd:"00":"":"0" +mpi_gcd:"00":"":"0" Test GCD: 0 (1 limb), 3 -mbedtls_mpi_gcd:"00":"03":"3" +mpi_gcd:"00":"03":"3" Test GCD: 0 (1 limb), 6 -mbedtls_mpi_gcd:"00":"06":"6" +mpi_gcd:"00":"06":"6" Test GCD: 3, 0 (null) -mbedtls_mpi_gcd:"03":"":"3" +mpi_gcd:"03":"":"3" Test GCD: 3, 0 (1 limb) -mbedtls_mpi_gcd:"03":"00":"3" +mpi_gcd:"03":"00":"3" Test GCD: 6, 0 (null) -mbedtls_mpi_gcd:"06":"":"6" +mpi_gcd:"06":"":"6" Test GCD: 6, 0 (1 limb) -mbedtls_mpi_gcd:"06":"00":"6" +mpi_gcd:"06":"00":"6" Test GCD: gcd=1, 0 < A < B -mbedtls_mpi_gcd:"109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"33ae3764fd06a00cdc3cba5c45dc79a9edb4e67e4d057cc74139d531c25190d111775fc4a0f4439b8b1930bbd766e7b46f170601f316c8a18ff8d5cb5ca5581f168345d101edb462b7d93b7c520ccb8fb276b447a63d869203cc11f67a1122dc4da034218de85e39":"1" +mpi_gcd:"109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"33ae3764fd06a00cdc3cba5c45dc79a9edb4e67e4d057cc74139d531c25190d111775fc4a0f4439b8b1930bbd766e7b46f170601f316c8a18ff8d5cb5ca5581f168345d101edb462b7d93b7c520ccb8fb276b447a63d869203cc11f67a1122dc4da034218de85e39":"1" Test GCD: gcd=1, 0 < B < A -mbedtls_mpi_gcd:"33ae3764fd06a00cdc3cba5c45dc79a9edb4e67e4d057cc74139d531c25190d111775fc4a0f4439b8b1930bbd766e7b46f170601f316c8a18ff8d5cb5ca5581f168345d101edb462b7d93b7c520ccb8fb276b447a63d869203cc11f67a1122dc4da034218de85e39":"109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"1" +mpi_gcd:"33ae3764fd06a00cdc3cba5c45dc79a9edb4e67e4d057cc74139d531c25190d111775fc4a0f4439b8b1930bbd766e7b46f170601f316c8a18ff8d5cb5ca5581f168345d101edb462b7d93b7c520ccb8fb276b447a63d869203cc11f67a1122dc4da034218de85e39":"109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"1" Test GCD: gcd=1, A > 0, B < 0 -mbedtls_mpi_gcd:"109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"-33ae3764fd06a00cdc3cba5c45dc79a9edb4e67e4d057cc74139d531c25190d111775fc4a0f4439b8b1930bbd766e7b46f170601f316c8a18ff8d5cb5ca5581f168345d101edb462b7d93b7c520ccb8fb276b447a63d869203cc11f67a1122dc4da034218de85e39":"1" +mpi_gcd:"109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"-33ae3764fd06a00cdc3cba5c45dc79a9edb4e67e4d057cc74139d531c25190d111775fc4a0f4439b8b1930bbd766e7b46f170601f316c8a18ff8d5cb5ca5581f168345d101edb462b7d93b7c520ccb8fb276b447a63d869203cc11f67a1122dc4da034218de85e39":"1" Test GCD: gcd=1, A < 0 < B, |A| < |B| -mbedtls_mpi_gcd:"-109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"33ae3764fd06a00cdc3cba5c45dc79a9edb4e67e4d057cc74139d531c25190d111775fc4a0f4439b8b1930bbd766e7b46f170601f316c8a18ff8d5cb5ca5581f168345d101edb462b7d93b7c520ccb8fb276b447a63d869203cc11f67a1122dc4da034218de85e39":"1" +mpi_gcd:"-109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"33ae3764fd06a00cdc3cba5c45dc79a9edb4e67e4d057cc74139d531c25190d111775fc4a0f4439b8b1930bbd766e7b46f170601f316c8a18ff8d5cb5ca5581f168345d101edb462b7d93b7c520ccb8fb276b447a63d869203cc11f67a1122dc4da034218de85e39":"1" Test GCD: gcd=1, B < A < 0 -mbedtls_mpi_gcd:"-109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"-33ae3764fd06a00cdc3cba5c45dc79a9edb4e67e4d057cc74139d531c25190d111775fc4a0f4439b8b1930bbd766e7b46f170601f316c8a18ff8d5cb5ca5581f168345d101edb462b7d93b7c520ccb8fb276b447a63d869203cc11f67a1122dc4da034218de85e39":"1" +mpi_gcd:"-109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"-33ae3764fd06a00cdc3cba5c45dc79a9edb4e67e4d057cc74139d531c25190d111775fc4a0f4439b8b1930bbd766e7b46f170601f316c8a18ff8d5cb5ca5581f168345d101edb462b7d93b7c520ccb8fb276b447a63d869203cc11f67a1122dc4da034218de85e39":"1" Test GCD: gcd=2, 0 < A < B -mbedtls_mpi_gcd:"213fc8ae290cdcadfba95b36d6d0dbe4e4495f6f0d19e9e1976f28a4d2650a797e17dd4c2b282ccca9a279b3fc1b3b4b2952fdc40461e25f6a869bce7f69f0204e4b402c4566363d485c744ca032073583be630d37b2f261af25f6e59b552e3b15002b5e":"675c6ec9fa0d4019b87974b88bb8f353db69ccfc9a0af98e8273aa6384a321a222eebf8941e8873716326177aecdcf68de2e0c03e62d91431ff1ab96b94ab03e2d068ba203db68c56fb276f8a419971f64ed688f4c7b0d24079823ecf42245b89b4068431bd0bc72":"2" +mpi_gcd:"213fc8ae290cdcadfba95b36d6d0dbe4e4495f6f0d19e9e1976f28a4d2650a797e17dd4c2b282ccca9a279b3fc1b3b4b2952fdc40461e25f6a869bce7f69f0204e4b402c4566363d485c744ca032073583be630d37b2f261af25f6e59b552e3b15002b5e":"675c6ec9fa0d4019b87974b88bb8f353db69ccfc9a0af98e8273aa6384a321a222eebf8941e8873716326177aecdcf68de2e0c03e62d91431ff1ab96b94ab03e2d068ba203db68c56fb276f8a419971f64ed688f4c7b0d24079823ecf42245b89b4068431bd0bc72":"2" Test GCD: gcd=2, 0 < B < A -mbedtls_mpi_gcd:"675c6ec9fa0d4019b87974b88bb8f353db69ccfc9a0af98e8273aa6384a321a222eebf8941e8873716326177aecdcf68de2e0c03e62d91431ff1ab96b94ab03e2d068ba203db68c56fb276f8a419971f64ed688f4c7b0d24079823ecf42245b89b4068431bd0bc72":"213fc8ae290cdcadfba95b36d6d0dbe4e4495f6f0d19e9e1976f28a4d2650a797e17dd4c2b282ccca9a279b3fc1b3b4b2952fdc40461e25f6a869bce7f69f0204e4b402c4566363d485c744ca032073583be630d37b2f261af25f6e59b552e3b15002b5e":"2" +mpi_gcd:"675c6ec9fa0d4019b87974b88bb8f353db69ccfc9a0af98e8273aa6384a321a222eebf8941e8873716326177aecdcf68de2e0c03e62d91431ff1ab96b94ab03e2d068ba203db68c56fb276f8a419971f64ed688f4c7b0d24079823ecf42245b89b4068431bd0bc72":"213fc8ae290cdcadfba95b36d6d0dbe4e4495f6f0d19e9e1976f28a4d2650a797e17dd4c2b282ccca9a279b3fc1b3b4b2952fdc40461e25f6a869bce7f69f0204e4b402c4566363d485c744ca032073583be630d37b2f261af25f6e59b552e3b15002b5e":"2" Test GCD: gcd=3, 0 < A < B -mbedtls_mpi_gcd:"31dfad053d934b04f97e08d2423949d7566e0f2693a6ded26326bcf73b978fb63d23cbf240bc4332fe73b68dfa28d8f0bdfc7ca60692d38f1fc9e9b5bf1ee8307570e0426819515bec8aae72f04b0ad0459d9493d38c6b9286b8f25868ffc5589f80410d":"9b0aa62ef713e02694b62f14d1956cfdc91eb37ae7107655c3ad7f9546f4b27334661f4de2dccad2a14b92338634b71d4d451205d94459e4afea816215f0085d4389d17305c91d28278bb274f62662af17641cd6f2b893b60b6435e36e336894e8e09c64a9b91aab":"3" +mpi_gcd:"31dfad053d934b04f97e08d2423949d7566e0f2693a6ded26326bcf73b978fb63d23cbf240bc4332fe73b68dfa28d8f0bdfc7ca60692d38f1fc9e9b5bf1ee8307570e0426819515bec8aae72f04b0ad0459d9493d38c6b9286b8f25868ffc5589f80410d":"9b0aa62ef713e02694b62f14d1956cfdc91eb37ae7107655c3ad7f9546f4b27334661f4de2dccad2a14b92338634b71d4d451205d94459e4afea816215f0085d4389d17305c91d28278bb274f62662af17641cd6f2b893b60b6435e36e336894e8e09c64a9b91aab":"3" Test GCD: gcd=3, 0 < B < A -mbedtls_mpi_gcd:"9b0aa62ef713e02694b62f14d1956cfdc91eb37ae7107655c3ad7f9546f4b27334661f4de2dccad2a14b92338634b71d4d451205d94459e4afea816215f0085d4389d17305c91d28278bb274f62662af17641cd6f2b893b60b6435e36e336894e8e09c64a9b91aab":"31dfad053d934b04f97e08d2423949d7566e0f2693a6ded26326bcf73b978fb63d23cbf240bc4332fe73b68dfa28d8f0bdfc7ca60692d38f1fc9e9b5bf1ee8307570e0426819515bec8aae72f04b0ad0459d9493d38c6b9286b8f25868ffc5589f80410d":"3" +mpi_gcd:"9b0aa62ef713e02694b62f14d1956cfdc91eb37ae7107655c3ad7f9546f4b27334661f4de2dccad2a14b92338634b71d4d451205d94459e4afea816215f0085d4389d17305c91d28278bb274f62662af17641cd6f2b893b60b6435e36e336894e8e09c64a9b91aab":"31dfad053d934b04f97e08d2423949d7566e0f2693a6ded26326bcf73b978fb63d23cbf240bc4332fe73b68dfa28d8f0bdfc7ca60692d38f1fc9e9b5bf1ee8307570e0426819515bec8aae72f04b0ad0459d9493d38c6b9286b8f25868ffc5589f80410d":"3" Test GCD: gcd=4, 0 < A < B -mbedtls_mpi_gcd:"427f915c5219b95bf752b66dada1b7c9c892bede1a33d3c32ede5149a4ca14f2fc2fba98565059995344f367f836769652a5fb8808c3c4bed50d379cfed3e0409c9680588acc6c7a90b8e89940640e6b077cc61a6f65e4c35e4bedcb36aa5c762a0056bc":"ceb8dd93f41a803370f2e9711771e6a7b6d399f93415f31d04e754c70946434445dd7f1283d10e6e2c64c2ef5d9b9ed1bc5c1807cc5b22863fe3572d7295607c5a0d174407b6d18adf64edf148332e3ec9dad11e98f61a480f3047d9e8448b713680d08637a178e4":"4" +mpi_gcd:"427f915c5219b95bf752b66dada1b7c9c892bede1a33d3c32ede5149a4ca14f2fc2fba98565059995344f367f836769652a5fb8808c3c4bed50d379cfed3e0409c9680588acc6c7a90b8e89940640e6b077cc61a6f65e4c35e4bedcb36aa5c762a0056bc":"ceb8dd93f41a803370f2e9711771e6a7b6d399f93415f31d04e754c70946434445dd7f1283d10e6e2c64c2ef5d9b9ed1bc5c1807cc5b22863fe3572d7295607c5a0d174407b6d18adf64edf148332e3ec9dad11e98f61a480f3047d9e8448b713680d08637a178e4":"4" Test GCD: gcd=4, 0 < B < A -mbedtls_mpi_gcd:"ceb8dd93f41a803370f2e9711771e6a7b6d399f93415f31d04e754c70946434445dd7f1283d10e6e2c64c2ef5d9b9ed1bc5c1807cc5b22863fe3572d7295607c5a0d174407b6d18adf64edf148332e3ec9dad11e98f61a480f3047d9e8448b713680d08637a178e4":"427f915c5219b95bf752b66dada1b7c9c892bede1a33d3c32ede5149a4ca14f2fc2fba98565059995344f367f836769652a5fb8808c3c4bed50d379cfed3e0409c9680588acc6c7a90b8e89940640e6b077cc61a6f65e4c35e4bedcb36aa5c762a0056bc":"4" +mpi_gcd:"ceb8dd93f41a803370f2e9711771e6a7b6d399f93415f31d04e754c70946434445dd7f1283d10e6e2c64c2ef5d9b9ed1bc5c1807cc5b22863fe3572d7295607c5a0d174407b6d18adf64edf148332e3ec9dad11e98f61a480f3047d9e8448b713680d08637a178e4":"427f915c5219b95bf752b66dada1b7c9c892bede1a33d3c32ede5149a4ca14f2fc2fba98565059995344f367f836769652a5fb8808c3c4bed50d379cfed3e0409c9680588acc6c7a90b8e89940640e6b077cc61a6f65e4c35e4bedcb36aa5c762a0056bc":"4" Test GCD: gcd=6, 0 < A < B -mbedtls_mpi_gcd:"63bf5a0a7b269609f2fc11a4847293aeacdc1e4d274dbda4c64d79ee772f1f6c7a4797e481788665fce76d1bf451b1e17bf8f94c0d25a71e3f93d36b7e3dd060eae1c084d032a2b7d9155ce5e09615a08b3b2927a718d7250d71e4b0d1ff8ab13f00821a":"136154c5dee27c04d296c5e29a32ad9fb923d66f5ce20ecab875aff2a8de964e668cc3e9bc5b995a5429724670c696e3a9a8a240bb288b3c95fd502c42be010ba8713a2e60b923a504f1764e9ec4cc55e2ec839ade571276c16c86bc6dc66d129d1c138c953723556":"6" +mpi_gcd:"63bf5a0a7b269609f2fc11a4847293aeacdc1e4d274dbda4c64d79ee772f1f6c7a4797e481788665fce76d1bf451b1e17bf8f94c0d25a71e3f93d36b7e3dd060eae1c084d032a2b7d9155ce5e09615a08b3b2927a718d7250d71e4b0d1ff8ab13f00821a":"136154c5dee27c04d296c5e29a32ad9fb923d66f5ce20ecab875aff2a8de964e668cc3e9bc5b995a5429724670c696e3a9a8a240bb288b3c95fd502c42be010ba8713a2e60b923a504f1764e9ec4cc55e2ec839ade571276c16c86bc6dc66d129d1c138c953723556":"6" Test GCD: gcd=6, 0 < B < A -mbedtls_mpi_gcd:"136154c5dee27c04d296c5e29a32ad9fb923d66f5ce20ecab875aff2a8de964e668cc3e9bc5b995a5429724670c696e3a9a8a240bb288b3c95fd502c42be010ba8713a2e60b923a504f1764e9ec4cc55e2ec839ade571276c16c86bc6dc66d129d1c138c953723556":"63bf5a0a7b269609f2fc11a4847293aeacdc1e4d274dbda4c64d79ee772f1f6c7a4797e481788665fce76d1bf451b1e17bf8f94c0d25a71e3f93d36b7e3dd060eae1c084d032a2b7d9155ce5e09615a08b3b2927a718d7250d71e4b0d1ff8ab13f00821a":"6" +mpi_gcd:"136154c5dee27c04d296c5e29a32ad9fb923d66f5ce20ecab875aff2a8de964e668cc3e9bc5b995a5429724670c696e3a9a8a240bb288b3c95fd502c42be010ba8713a2e60b923a504f1764e9ec4cc55e2ec839ade571276c16c86bc6dc66d129d1c138c953723556":"63bf5a0a7b269609f2fc11a4847293aeacdc1e4d274dbda4c64d79ee772f1f6c7a4797e481788665fce76d1bf451b1e17bf8f94c0d25a71e3f93d36b7e3dd060eae1c084d032a2b7d9155ce5e09615a08b3b2927a718d7250d71e4b0d1ff8ab13f00821a":"6" Test GCD: 0 < A = B -mbedtls_mpi_gcd:"109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af" +mpi_gcd:"109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af" Base test mbedtls_mpi_inv_mod #1 -mbedtls_mpi_inv_mod:"3":"b":"4":0 +mpi_inv_mod:"3":"b":"4":0 Test mbedtls_mpi_inv_mod: mod 0 (null) -mbedtls_mpi_inv_mod:"3":"":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_inv_mod:"3":"":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_inv_mod: mod 0 (1 limb) -mbedtls_mpi_inv_mod:"3":"0":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_inv_mod:"3":"0":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_inv_mod: mod negative -mbedtls_mpi_inv_mod:"3":"-b":"4":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_inv_mod:"3":"-b":"4":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_inv_mod: 2^-1 mod 4 -mbedtls_mpi_inv_mod:"2":"4":"0":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE +mpi_inv_mod:"2":"4":"0":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE Test mbedtls_mpi_inv_mod: mod 1 -mbedtls_mpi_inv_mod:"3":"1":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_inv_mod:"3":"1":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_inv_mod: 0 (null) ^-1 -mbedtls_mpi_inv_mod:"":"11":"":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE +mpi_inv_mod:"":"11":"":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE Test mbedtls_mpi_inv_mod: 0 (1 limb) ^-1 -mbedtls_mpi_inv_mod:"00":"11":"":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE +mpi_inv_mod:"00":"11":"":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE Test mbedtls_mpi_inv_mod #1 -mbedtls_mpi_inv_mod:"aa4df5cb14b4c31237f98bd1faf527c283c2d0f3eec89718664ba33f9762907c":"fffbbd660b94412ae61ead9c2906a344116e316a256fd387874c6c675b1d587d":"8d6a5c1d7adeae3e94b9bcd2c47e0d46e778bc8804a2cc25c02d775dc3d05b0c":0 +mpi_inv_mod:"aa4df5cb14b4c31237f98bd1faf527c283c2d0f3eec89718664ba33f9762907c":"fffbbd660b94412ae61ead9c2906a344116e316a256fd387874c6c675b1d587d":"8d6a5c1d7adeae3e94b9bcd2c47e0d46e778bc8804a2cc25c02d775dc3d05b0c":0 Base test mbedtls_mpi_is_prime #1 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"0":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE +mpi_is_prime:"0":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE Base test mbedtls_mpi_is_prime #2 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"1":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE +mpi_is_prime:"1":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE Base test mbedtls_mpi_is_prime #3 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"2":0 +mpi_is_prime:"2":0 Base test mbedtls_mpi_is_prime #4 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"3":0 +mpi_is_prime:"3":0 Base test mbedtls_mpi_is_prime #5 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"4":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE +mpi_is_prime:"4":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE Base test mbedtls_mpi_is_prime #6 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"5":0 +mpi_is_prime:"5":0 Base test mbedtls_mpi_is_prime #7 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"1b":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE +mpi_is_prime:"1b":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE Base test mbedtls_mpi_is_prime #8 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"2f":0 +mpi_is_prime:"2f":0 Test mbedtls_mpi_is_prime #1a depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"b91ba63180c726fbd57786f27f1ede97a3b40c59a7fcfb5898f076e9af57028d":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE +mpi_is_prime:"b91ba63180c726fbd57786f27f1ede97a3b40c59a7fcfb5898f076e9af57028d":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE Test mbedtls_mpi_is_prime #1b depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"b3a119602ee213cde28581ecd892e0f592a338655dce4ca88054b3d124d0e561":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE +mpi_is_prime:"b3a119602ee213cde28581ecd892e0f592a338655dce4ca88054b3d124d0e561":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE Test mbedtls_mpi_is_prime #2a depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"284139ea19c139ebe09a8111926aaa39a2c2be12ed487a809d3cb5bc55854725b4cdcb5734c58f90b2f60d99cc1950cdbc8d651793e93c9c6f0ead752500a32c56c62082912b66132b2a6aa42ada923e1ad22ceb7ba0123":0 +mpi_is_prime:"284139ea19c139ebe09a8111926aaa39a2c2be12ed487a809d3cb5bc55854725b4cdcb5734c58f90b2f60d99cc1950cdbc8d651793e93c9c6f0ead752500a32c56c62082912b66132b2a6aa42ada923e1ad22ceb7ba0123":0 Test mbedtls_mpi_is_prime #2b depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"284139ea19c139ebe09a8111926aaa39a2c2be12ed487a809d3cb5bc55854725b4cdcb5734c58f90b2f60d99cc1950cdbc8d651793e93c9c6f0ead752500a32c56c62082912b66132b2a6aa42ada923e1ad22ceb7ba00c1":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE +mpi_is_prime:"284139ea19c139ebe09a8111926aaa39a2c2be12ed487a809d3cb5bc55854725b4cdcb5734c58f90b2f60d99cc1950cdbc8d651793e93c9c6f0ead752500a32c56c62082912b66132b2a6aa42ada923e1ad22ceb7ba00c1":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE Test mbedtls_mpi_is_prime #3 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"257ffffffffffffffffff":0 +mpi_is_prime:"257ffffffffffffffffff":0 Test mbedtls_mpi_is_prime #4 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"a1ffffffffffffffffffff":0 +mpi_is_prime:"a1ffffffffffffffffffff":0 Test mbedtls_mpi_is_prime #5 [#1] depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"397ffffffffffffffffffffffffffff":0 +mpi_is_prime:"397ffffffffffffffffffffffffffff":0 Test mbedtls_mpi_is_prime #5 [#2] depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"aaaaaaaaaaaaaab":0 +mpi_is_prime:"aaaaaaaaaaaaaab":0 Test mbedtls_mpi_is_prime #6 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"2aaaaaaaaaaaaaaaaaab":0 +mpi_is_prime:"2aaaaaaaaaaaaaaaaaab":0 Test mbedtls_mpi_is_prime #7 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"aaaaaaaaaaaaaaaaaaaaaaaab":0 +mpi_is_prime:"aaaaaaaaaaaaaaaaaaaaaaaab":0 Test mbedtls_mpi_is_prime #8 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaab":0 +mpi_is_prime:"2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaab":0 Test mbedtls_mpi_is_prime #9 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 +mpi_is_prime:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 Test mbedtls_mpi_is_prime #10 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"cb50e82a8583f44ee0025942e7362991b24e12663a0ddc234a57b0f7b4ff7b025bf5a6707dedc2898e70b739042c95a996283dffdf67558768784553c61e302e8812bc90f0bb0696870cfb910b560cefed8d99bbf7a00b31ccdbd56f3594e5a653cfd127d2167b13119e5c45c3f76b4e3d904a9bc0cbb43c33aa7f23b":0 +mpi_is_prime:"cb50e82a8583f44ee0025942e7362991b24e12663a0ddc234a57b0f7b4ff7b025bf5a6707dedc2898e70b739042c95a996283dffdf67558768784553c61e302e8812bc90f0bb0696870cfb910b560cefed8d99bbf7a00b31ccdbd56f3594e5a653cfd127d2167b13119e5c45c3f76b4e3d904a9bc0cbb43c33aa7f23b":0 Test mbedtls_mpi_is_prime #11 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"7a364ab3de755f924642bd5273524234f78395da1ed9098f39af4fe248288b0cb7f1c27214588969479d7dc9f0d327b5544dd4c095aa1fa271df421fe9ee460855cc8423d223e2c85dc793f6babdca7fc804ea1f408f867db053bfd98c45085ea5d805c78d2863bacdfcaf4c6147ebb74a9056045074785714c0b84ed":0 +mpi_is_prime:"7a364ab3de755f924642bd5273524234f78395da1ed9098f39af4fe248288b0cb7f1c27214588969479d7dc9f0d327b5544dd4c095aa1fa271df421fe9ee460855cc8423d223e2c85dc793f6babdca7fc804ea1f408f867db053bfd98c45085ea5d805c78d2863bacdfcaf4c6147ebb74a9056045074785714c0b84ed":0 Test mbedtls_mpi_is_prime #12 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"9c3525e8404f89b7d30b3ccfdb0fab17f81adebbac1b6c6bf558a796014fe3b6cd2c4445c0826d7ef5f5d3aff5ac108185675d2159cd275c64812f24da66dbb0147efc6a3d2f8060e8304f48844abc9d33686087ccc11f":0 +mpi_is_prime:"9c3525e8404f89b7d30b3ccfdb0fab17f81adebbac1b6c6bf558a796014fe3b6cd2c4445c0826d7ef5f5d3aff5ac108185675d2159cd275c64812f24da66dbb0147efc6a3d2f8060e8304f48844abc9d33686087ccc11f":0 Test mbedtls_mpi_is_prime #13 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"284139ea19c139ebe09a8111926aaa39a2c2be12ed487a809d3cb5bc55854725b4cdcb5734c58f90b2f60d99cc1950cdbc8d651793e93c9c6f0ead752500a32c56c62082912b66132b2a6aa42ada923e1ad22ceb7ba0123":0 +mpi_is_prime:"284139ea19c139ebe09a8111926aaa39a2c2be12ed487a809d3cb5bc55854725b4cdcb5734c58f90b2f60d99cc1950cdbc8d651793e93c9c6f0ead752500a32c56c62082912b66132b2a6aa42ada923e1ad22ceb7ba0123":0 Test mbedtls_mpi_is_prime #14 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"2eede25f74336afd1f51cbc4e809f8bb746ffac49335d129d1ff322ee3498b2b8144f0b136de076db169da4f4436de1f0c715b3d255272b4d77523174081a2fb703f82409185e0ef73e5a8bdf94e5b789fb7bf9be8eec9f":0 +mpi_is_prime:"2eede25f74336afd1f51cbc4e809f8bb746ffac49335d129d1ff322ee3498b2b8144f0b136de076db169da4f4436de1f0c715b3d255272b4d77523174081a2fb703f82409185e0ef73e5a8bdf94e5b789fb7bf9be8eec9f":0 Test mbedtls_mpi_is_prime #15 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"7fffffffffffffffffffffffffffffff":0 +mpi_is_prime:"7fffffffffffffffffffffffffffffff":0 Test mbedtls_mpi_is_prime #16 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"7fffffff":0 +mpi_is_prime:"7fffffff":0 Test mbedtls_mpi_is_prime #17 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"39531fcd":0 +mpi_is_prime:"39531fcd":0 Test mbedtls_mpi_is_prime #18 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"ab1cdb3":0 +mpi_is_prime:"ab1cdb3":0 Test mbedtls_mpi_is_prime #19 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"1ef3103":0 +mpi_is_prime:"1ef3103":0 Test mbedtls_mpi_is_prime #20 depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime:"2faa127":0 +mpi_is_prime:"2faa127":0 Test mbedtls_mpi_is_prime_det (4 non-witnesses) depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime_det:"043BD64BA10B11DA83FBD296B04BCA9E0552FAF6E09CAC74E2D7E735ED0DB09FC47ED76145644203EE0C826013BC602F560BCDAAED557D04683859A65D659FF828A245A2C5B1AC41E01E4669A525A45E23AF":"040EA852F7935ACCECC0E87B845281F047D10DC9AAFEF990AF9D3D66770DA30B0C5B5E03EEA8C0CB79B936FE0BB8EE5389EC1D34EB16C58AA3F2E11AF084160CDF6400BE1CC179867AB074866952D9F34EE7042D27F960E715A97FCB93F3182247D0A6AE51BD21CC2F6B0651F9E572C5FB86F3137053FA85FD7A51816D69B3A53A5A438C17754836D04E98CA240B901F828332F2D72D88C497DA45F533F99A6E53EDEA6B0424EC8951B048FA9A80134B37D0A67014597934E3CFC52C5A4DD4751ADF8D66FC79E84E2A3148C4B15C17E12CB659390FD275F39A331FFC80EC699BC3F6FAB868E30E9B14575FCDAB6FAED01E00112DD28704177E09C335AD43A696FEA761E8DF3B0663277A5C3637F9060CB5E5654F72E9A6B0F369E660AD4CF7ABF4195493545B367BD55271CD4BB7D9C15D3F508FE8F7409C2126FC8E73B43A67CD4EFB21E9F15DBF040A2A8D5F5ED75CEAC12B595C0051F3EC9D5A58ACE82A9506E64F780E9836728260FFE1BFD73E8A9869E3D46A35A856D3028F7FEAB9F4F1A04449AEDC80017EE1014080D87F0B50C8EF255324CD89F7D039":82:5 +mpi_is_prime_det:"043BD64BA10B11DA83FBD296B04BCA9E0552FAF6E09CAC74E2D7E735ED0DB09FC47ED76145644203EE0C826013BC602F560BCDAAED557D04683859A65D659FF828A245A2C5B1AC41E01E4669A525A45E23AF":"040EA852F7935ACCECC0E87B845281F047D10DC9AAFEF990AF9D3D66770DA30B0C5B5E03EEA8C0CB79B936FE0BB8EE5389EC1D34EB16C58AA3F2E11AF084160CDF6400BE1CC179867AB074866952D9F34EE7042D27F960E715A97FCB93F3182247D0A6AE51BD21CC2F6B0651F9E572C5FB86F3137053FA85FD7A51816D69B3A53A5A438C17754836D04E98CA240B901F828332F2D72D88C497DA45F533F99A6E53EDEA6B0424EC8951B048FA9A80134B37D0A67014597934E3CFC52C5A4DD4751ADF8D66FC79E84E2A3148C4B15C17E12CB659390FD275F39A331FFC80EC699BC3F6FAB868E30E9B14575FCDAB6FAED01E00112DD28704177E09C335AD43A696FEA761E8DF3B0663277A5C3637F9060CB5E5654F72E9A6B0F369E660AD4CF7ABF4195493545B367BD55271CD4BB7D9C15D3F508FE8F7409C2126FC8E73B43A67CD4EFB21E9F15DBF040A2A8D5F5ED75CEAC12B595C0051F3EC9D5A58ACE82A9506E64F780E9836728260FFE1BFD73E8A9869E3D46A35A856D3028F7FEAB9F4F1A04449AEDC80017EE1014080D87F0B50C8EF255324CD89F7D039":82:5 Test mbedtls_mpi_is_prime_det (39 non-witnesses) depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_is_prime_det:"155102B67930FBE8858DF6C0642D77D419A7B7968E622CC7500F3E3F2C5168368C50E0083187":"119B3E2C721834D83416239B04447AA18AE0163E61DCAE97054563D79E094A6FA4485BD6A0501445BF57FE9C058926CDB862E04CC1A95D79D61D9AB3466857A53E04F8D7470C9C86649B226A13DDC534E18DFD5C22FAEA317CA4D4960F18457FD6D2FFB5F3273F74C89980DC774590D8D30D1159CA81999ED94A042D67DA68C82616AD46C2C88288A8EBD0B37AC7C152D9522CA4544642AD1210F6B642FEBF43563FA872B0DEFAFC69D0B6570E8FEA9570D0AADCFA9B06CC8BFD62CEDC221541210EEEF9762448C6D49F26AA767A4D66CB168589E0201923015314E6CD4A480E5936E7CF145F73A564C5B782635B3AFC3028E2632C5D3458224A7C9E8BA1876E8F690463C878292D3DC011E9640331E7F7621F2B5E0F6713DD8C9D6767521C4BA880DA8D11C67753C8493D2C4C4F1443147550D0B25B7FAD04EAFA9F8AA60974C1365C8A794CFEECEB4279B1150909A97E5A7A10B5D91186CA5B25A612036631FE73529C8CFAE51E76FB704A772DE5320EFC1212E7A399B1FEBF57D014AF9129DFF5D2C5DFBBEEAC55F360CF6D22FA90B8E2E9AD0C71AB6495A9452A58D653B8CC26128C66B43EFBA6E39AEC5717A1A3C2AE1449FCABAFE1180B159DA55190CD81A3D9E8D798647E11B827F0A057D6DA5AAD78AB5112EE65E10E8B8B369BA24E1B8AD2CD8548C497016C07A143DE1232F8059BE303572456FA92E76A0F23D1340629228B7D27C02D3833A72745B91A3DBEB5E081117A9F19597F00E4277B414FAEA8C8CEB895C37F956A5A22F8D7A10ADA50B22BAB312504904511AA0EFDD4D3BF20ECB17E8A684564FFB5BBD5E22C429F9A75A4FB4AE468FE7612ED53C7A11212E7EF3435CC9CA6E7DB167B8CCE2BECF35F89013F8F876223C77FA81570970858663C6E32B91080AA47F9C90177F51E6FD7747B910C9489C7B6ACB070996198AD9A40A69711274159210A9A12DBAAA4FB4632446066AB70D735DC95F7C2BCE517E88C064D728DE82B1B043DF4AEE0EFF5131120A4E5B9B4180EB6F6B8A0D1491ABDA069058A9966B1A517D8E7B4997DC52A1E698FD79E271153DF1913FE6787A5D99DE69F39C3F22D26DC731CFBB33FF5C267D85D7A3DAE8E1C87E1DB2F1236212EF1942EA756967FB3D07D629E59EA4034D9A9B5E270DD4A31C8A3DFDA99C1094B5537132C196DA2AEAF5253A019B9AF25B5DCB0D4DD75C7C9C353DA9DAABFB23959A5455312E7E1C21268C1BC14E83DCFDF50C27FD3E8B4EDC04C5F3CB5FCFFF2B57151E1B1EE1A6456DC006BC43E1158674AA4CF7D146DE4A57103BE43ED130C8007294ED2418C7A2B769A7D20EBB5A8367A77B313F81BB119B9954305FF160FF83EED7F808EE6D340A5CCC000CF81AA497D315D350CCE4E86A31456B8AA85B677491FC662933DFA55EB5BFF64B8D85430D676A85D1CAFAFF383E68C4E6C22A51063739EC03FC58C36C07C44E54828BE2152B2E9AFB0F179B157D09B64C147B524BB5424BB1914419424D9100D06EDCFC718F4DF3D562E9E16C446663F35273CA7BC5426B868A80C8D415C9A12A1619CDB7CDB5BEBC70313150BDF8C3AB26B809FE62D28E798EF1EF98C410A2DA0A9071F82154AC569078B0E647E2C085D1D907E634453442803D0492D3D0C78CACB762020C0E589C8B0981321EA2771305FD0413F3B2963FCE9A232F6641DB7E12ADC009A032063C41756E5E19E5711DE12711F07AFE7545B4D83F3EFD7BFD0435297C89DF3D4AF96EBE2CE8D64B93E36EA5D7E5A0492151D0CAEE7449A7D35E1A3C83E22C3B35162C073CC3B1CF76FBDEE84270721FC042EAAEB7325110181415E2031CFB7462F15111291CDAC0560FF9F4C7341F2FA261B97CEF348D074AA2EB4DB153FE6B1410519DA4213B611999868F3B867A2B6D758D333C4989DE80782683CA26ECDE373C71524F01B76349CE8A07A5EBECBB42259CF970DDA756EC996B189FEA045FEE45F23D476960913106ECA2510B8517AA75D56FA4152B2BDDC212014E5D07FD964D6EE532F0616DF74E104659955132331FABF2D2AD265E71C93C648A956FA0A3DB21FF103D516527F2DA0E870340B61EE8A8ED913B60605EB5A67B834D0FC90564386012585609870FEF6530B3E3C037B55506F0B5694F6B0FC":38:40 +mpi_is_prime_det:"155102B67930FBE8858DF6C0642D77D419A7B7968E622CC7500F3E3F2C5168368C50E0083187":"119B3E2C721834D83416239B04447AA18AE0163E61DCAE97054563D79E094A6FA4485BD6A0501445BF57FE9C058926CDB862E04CC1A95D79D61D9AB3466857A53E04F8D7470C9C86649B226A13DDC534E18DFD5C22FAEA317CA4D4960F18457FD6D2FFB5F3273F74C89980DC774590D8D30D1159CA81999ED94A042D67DA68C82616AD46C2C88288A8EBD0B37AC7C152D9522CA4544642AD1210F6B642FEBF43563FA872B0DEFAFC69D0B6570E8FEA9570D0AADCFA9B06CC8BFD62CEDC221541210EEEF9762448C6D49F26AA767A4D66CB168589E0201923015314E6CD4A480E5936E7CF145F73A564C5B782635B3AFC3028E2632C5D3458224A7C9E8BA1876E8F690463C878292D3DC011E9640331E7F7621F2B5E0F6713DD8C9D6767521C4BA880DA8D11C67753C8493D2C4C4F1443147550D0B25B7FAD04EAFA9F8AA60974C1365C8A794CFEECEB4279B1150909A97E5A7A10B5D91186CA5B25A612036631FE73529C8CFAE51E76FB704A772DE5320EFC1212E7A399B1FEBF57D014AF9129DFF5D2C5DFBBEEAC55F360CF6D22FA90B8E2E9AD0C71AB6495A9452A58D653B8CC26128C66B43EFBA6E39AEC5717A1A3C2AE1449FCABAFE1180B159DA55190CD81A3D9E8D798647E11B827F0A057D6DA5AAD78AB5112EE65E10E8B8B369BA24E1B8AD2CD8548C497016C07A143DE1232F8059BE303572456FA92E76A0F23D1340629228B7D27C02D3833A72745B91A3DBEB5E081117A9F19597F00E4277B414FAEA8C8CEB895C37F956A5A22F8D7A10ADA50B22BAB312504904511AA0EFDD4D3BF20ECB17E8A684564FFB5BBD5E22C429F9A75A4FB4AE468FE7612ED53C7A11212E7EF3435CC9CA6E7DB167B8CCE2BECF35F89013F8F876223C77FA81570970858663C6E32B91080AA47F9C90177F51E6FD7747B910C9489C7B6ACB070996198AD9A40A69711274159210A9A12DBAAA4FB4632446066AB70D735DC95F7C2BCE517E88C064D728DE82B1B043DF4AEE0EFF5131120A4E5B9B4180EB6F6B8A0D1491ABDA069058A9966B1A517D8E7B4997DC52A1E698FD79E271153DF1913FE6787A5D99DE69F39C3F22D26DC731CFBB33FF5C267D85D7A3DAE8E1C87E1DB2F1236212EF1942EA756967FB3D07D629E59EA4034D9A9B5E270DD4A31C8A3DFDA99C1094B5537132C196DA2AEAF5253A019B9AF25B5DCB0D4DD75C7C9C353DA9DAABFB23959A5455312E7E1C21268C1BC14E83DCFDF50C27FD3E8B4EDC04C5F3CB5FCFFF2B57151E1B1EE1A6456DC006BC43E1158674AA4CF7D146DE4A57103BE43ED130C8007294ED2418C7A2B769A7D20EBB5A8367A77B313F81BB119B9954305FF160FF83EED7F808EE6D340A5CCC000CF81AA497D315D350CCE4E86A31456B8AA85B677491FC662933DFA55EB5BFF64B8D85430D676A85D1CAFAFF383E68C4E6C22A51063739EC03FC58C36C07C44E54828BE2152B2E9AFB0F179B157D09B64C147B524BB5424BB1914419424D9100D06EDCFC718F4DF3D562E9E16C446663F35273CA7BC5426B868A80C8D415C9A12A1619CDB7CDB5BEBC70313150BDF8C3AB26B809FE62D28E798EF1EF98C410A2DA0A9071F82154AC569078B0E647E2C085D1D907E634453442803D0492D3D0C78CACB762020C0E589C8B0981321EA2771305FD0413F3B2963FCE9A232F6641DB7E12ADC009A032063C41756E5E19E5711DE12711F07AFE7545B4D83F3EFD7BFD0435297C89DF3D4AF96EBE2CE8D64B93E36EA5D7E5A0492151D0CAEE7449A7D35E1A3C83E22C3B35162C073CC3B1CF76FBDEE84270721FC042EAAEB7325110181415E2031CFB7462F15111291CDAC0560FF9F4C7341F2FA261B97CEF348D074AA2EB4DB153FE6B1410519DA4213B611999868F3B867A2B6D758D333C4989DE80782683CA26ECDE373C71524F01B76349CE8A07A5EBECBB42259CF970DDA756EC996B189FEA045FEE45F23D476960913106ECA2510B8517AA75D56FA4152B2BDDC212014E5D07FD964D6EE532F0616DF74E104659955132331FABF2D2AD265E71C93C648A956FA0A3DB21FF103D516527F2DA0E870340B61EE8A8ED913B60605EB5A67B834D0FC90564386012585609870FEF6530B3E3C037B55506F0B5694F6B0FC":38:40 Test mbedtls_mpi_gen_prime (Too small) depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_gen_prime:2:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_gen_prime:2:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_gen_prime (OK, minimum size) depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_gen_prime:3:0:0 +mpi_gen_prime:3:0:0 Test mbedtls_mpi_gen_prime (corner case limb size -1 bits) depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_gen_prime:63:0:0 +mpi_gen_prime:63:0:0 Test mbedtls_mpi_gen_prime (corner case limb size) depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_gen_prime:64:0:0 +mpi_gen_prime:64:0:0 Test mbedtls_mpi_gen_prime (corner case limb size +1 bits) depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_gen_prime:65:0:0 +mpi_gen_prime:65:0:0 Test mbedtls_mpi_gen_prime (Larger) depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_gen_prime:128:0:0 +mpi_gen_prime:128:0:0 Test mbedtls_mpi_gen_prime (Safe) depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_gen_prime:128:MBEDTLS_MPI_GEN_PRIME_FLAG_DH:0 +mpi_gen_prime:128:MBEDTLS_MPI_GEN_PRIME_FLAG_DH:0 Test mbedtls_mpi_gen_prime (Safe with lower error rate) depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_gen_prime:128:MBEDTLS_MPI_GEN_PRIME_FLAG_DH | MBEDTLS_MPI_GEN_PRIME_FLAG_LOW_ERR:0 +mpi_gen_prime:128:MBEDTLS_MPI_GEN_PRIME_FLAG_DH | MBEDTLS_MPI_GEN_PRIME_FLAG_LOW_ERR:0 Test mbedtls_mpi_gen_prime standard RSA #1 (lower error rate) depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_gen_prime:1024:MBEDTLS_MPI_GEN_PRIME_FLAG_LOW_ERR:0 +mpi_gen_prime:1024:MBEDTLS_MPI_GEN_PRIME_FLAG_LOW_ERR:0 Test mbedtls_mpi_gen_prime standard RSA #2 (lower error rate) depends_on:MBEDTLS_GENPRIME -mbedtls_mpi_gen_prime:1536:MBEDTLS_MPI_GEN_PRIME_FLAG_LOW_ERR:0 +mpi_gen_prime:1536:MBEDTLS_MPI_GEN_PRIME_FLAG_LOW_ERR:0 Test bit getting (Value bit 25) -mbedtls_mpi_get_bit:"2faa127":25:1 +mpi_get_bit:"2faa127":25:1 Test bit getting (Larger but same limb) -mbedtls_mpi_get_bit:"2faa127":26:0 +mpi_get_bit:"2faa127":26:0 Test bit getting (Larger and non-existing limb) -mbedtls_mpi_get_bit:"2faa127":500:0 +mpi_get_bit:"2faa127":500:0 Test bit getting in 0 (null) -mbedtls_mpi_get_bit:"":500:0 +mpi_get_bit:"":500:0 Test bit getting (Value bit 24) -mbedtls_mpi_get_bit:"2faa127":24:0 +mpi_get_bit:"2faa127":24:0 Test bit getting (Value bit 23) -mbedtls_mpi_get_bit:"2faa127":23:1 +mpi_get_bit:"2faa127":23:1 Test bit set (Change existing value with a 1) -mbedtls_mpi_set_bit:"2faa127":24:1:"3faa127":0 +mpi_set_bit:"2faa127":24:1:"3faa127":0 Test bit set (Change existing value with a 0) -mbedtls_mpi_set_bit:"2faa127":25:0:"faa127":0 +mpi_set_bit:"2faa127":25:0:"faa127":0 Test bit set (Add above existing limbs with a 0) -mbedtls_mpi_set_bit:"2faa127":80:0:"2faa127":0 +mpi_set_bit:"2faa127":80:0:"2faa127":0 Test bit set (Add above existing limbs with a 1) -mbedtls_mpi_set_bit:"2faa127":80:1:"100000000000002faa127":0 +mpi_set_bit:"2faa127":80:1:"100000000000002faa127":0 Test bit set (Add to 0 (null) with a 0) -mbedtls_mpi_set_bit:"":65:0:"":0 +mpi_set_bit:"":65:0:"":0 Test bit set (Add to 0 (null) with a 1) -mbedtls_mpi_set_bit:"":65:1:"020000000000000000":0 +mpi_set_bit:"":65:1:"020000000000000000":0 Test bit set (Bit index larger than 31 with a 0) -mbedtls_mpi_set_bit:"FFFFFFFFFFFFFFFF":32:0:"FFFFFFFEFFFFFFFF":0 +mpi_set_bit:"FFFFFFFFFFFFFFFF":32:0:"FFFFFFFEFFFFFFFF":0 Test bit set (Bit index larger than 31 with a 1) -mbedtls_mpi_set_bit:"00":32:1:"0100000000":0 +mpi_set_bit:"00":32:1:"0100000000":0 Test bit set (Invalid bit value) -mbedtls_mpi_set_bit:"00":5:2:"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_set_bit:"00":5:2:"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Fill random: 0 bytes mpi_fill_random:0:0:0:0 @@ -2283,13453 +2283,13453 @@ MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA mbedtls_mpi_core_add_if #1: 0x0 + 0x0 = (0x0, carry 0)/(0x0, carry 0) (for when sizeof(mbedtls_mpi_uint) == 4/8) -mbedtls_mpi_core_add_if:"0":"0":"0":0:"0":0 +mpi_core_add_if:"0":"0":"0":0:"0":0 mbedtls_mpi_core_add_if #2: 0x0 + 0x1 = (0x1, carry 0)/(0x1, carry 0) -mbedtls_mpi_core_add_if:"0":"1":"1":0:"1":0 +mpi_core_add_if:"0":"1":"1":0:"1":0 mbedtls_mpi_core_add_if #3: 0x0 + 0x3 = (0x3, carry 0)/(0x3, carry 0) -mbedtls_mpi_core_add_if:"0":"3":"3":0:"3":0 +mpi_core_add_if:"0":"3":"3":0:"3":0 mbedtls_mpi_core_add_if #4: 0x0 + 0xf = (0xf, carry 0)/(0xf, carry 0) -mbedtls_mpi_core_add_if:"0":"f":"f":0:"f":0 +mpi_core_add_if:"0":"f":"f":0:"f":0 mbedtls_mpi_core_add_if #5: 0x0 + 0xfe = (0xfe, carry 0)/(0xfe, carry 0) -mbedtls_mpi_core_add_if:"0":"fe":"fe":0:"fe":0 +mpi_core_add_if:"0":"fe":"fe":0:"fe":0 mbedtls_mpi_core_add_if #6: 0x0 + 0xff = (0xff, carry 0)/(0xff, carry 0) -mbedtls_mpi_core_add_if:"0":"ff":"ff":0:"ff":0 +mpi_core_add_if:"0":"ff":"ff":0:"ff":0 mbedtls_mpi_core_add_if #7: 0x0 + 0x100 = (0x100, carry 0)/(0x100, carry 0) -mbedtls_mpi_core_add_if:"0":"100":"100":0:"100":0 +mpi_core_add_if:"0":"100":"100":0:"100":0 mbedtls_mpi_core_add_if #8: 0x0 + 0xff00 = (0xff00, carry 0)/(0xff00, carry 0) -mbedtls_mpi_core_add_if:"0":"ff00":"ff00":0:"ff00":0 +mpi_core_add_if:"0":"ff00":"ff00":0:"ff00":0 mbedtls_mpi_core_add_if #9: 0x0 + 0xfffe = (0xfffe, carry 0)/(0xfffe, carry 0) -mbedtls_mpi_core_add_if:"0":"fffe":"fffe":0:"fffe":0 +mpi_core_add_if:"0":"fffe":"fffe":0:"fffe":0 mbedtls_mpi_core_add_if #10: 0x0 + 0xffff = (0xffff, carry 0)/(0xffff, carry 0) -mbedtls_mpi_core_add_if:"0":"ffff":"ffff":0:"ffff":0 +mpi_core_add_if:"0":"ffff":"ffff":0:"ffff":0 mbedtls_mpi_core_add_if #11: 0x0 + 0x10000 = (0x10000, carry 0)/(0x10000, carry 0) -mbedtls_mpi_core_add_if:"0":"10000":"10000":0:"10000":0 +mpi_core_add_if:"0":"10000":"10000":0:"10000":0 mbedtls_mpi_core_add_if #12: 0x0 + 0xfffffffe = (0xfffffffe, carry 0)/(0xfffffffe, carry 0) -mbedtls_mpi_core_add_if:"0":"fffffffe":"fffffffe":0:"fffffffe":0 +mpi_core_add_if:"0":"fffffffe":"fffffffe":0:"fffffffe":0 mbedtls_mpi_core_add_if #13: 0x0 + 0xffffffff = (0xffffffff, carry 0)/(0xffffffff, carry 0) -mbedtls_mpi_core_add_if:"0":"ffffffff":"ffffffff":0:"ffffffff":0 +mpi_core_add_if:"0":"ffffffff":"ffffffff":0:"ffffffff":0 mbedtls_mpi_core_add_if #14: 0x0 + 0x100000000 = (0x100000000, carry 0)/(0x100000000, carry 0) -mbedtls_mpi_core_add_if:"0":"100000000":"100000000":0:"100000000":0 +mpi_core_add_if:"0":"100000000":"100000000":0:"100000000":0 mbedtls_mpi_core_add_if #15: 0x0 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f7f7f, carry 0)/(0x1f7f7f7f7f7f7f, carry 0) -mbedtls_mpi_core_add_if:"0":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":0:"1f7f7f7f7f7f7f":0 +mpi_core_add_if:"0":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":0:"1f7f7f7f7f7f7f":0 mbedtls_mpi_core_add_if #16: 0x0 + 0x8000000000000000 = (0x8000000000000000, carry 0)/(0x8000000000000000, carry 0) -mbedtls_mpi_core_add_if:"0":"8000000000000000":"8000000000000000":0:"8000000000000000":0 +mpi_core_add_if:"0":"8000000000000000":"8000000000000000":0:"8000000000000000":0 mbedtls_mpi_core_add_if #17: 0x0 + 0xfefefefefefefefe = (0xfefefefefefefefe, carry 0)/(0xfefefefefefefefe, carry 0) -mbedtls_mpi_core_add_if:"0":"fefefefefefefefe":"fefefefefefefefe":0:"fefefefefefefefe":0 +mpi_core_add_if:"0":"fefefefefefefefe":"fefefefefefefefe":0:"fefefefefefefefe":0 mbedtls_mpi_core_add_if #18: 0x0 + 0xfffffffffffffffe = (0xfffffffffffffffe, carry 0)/(0xfffffffffffffffe, carry 0) -mbedtls_mpi_core_add_if:"0":"fffffffffffffffe":"fffffffffffffffe":0:"fffffffffffffffe":0 +mpi_core_add_if:"0":"fffffffffffffffe":"fffffffffffffffe":0:"fffffffffffffffe":0 mbedtls_mpi_core_add_if #19: 0x0 + 0xffffffffffffffff = (0xffffffffffffffff, carry 0)/(0xffffffffffffffff, carry 0) -mbedtls_mpi_core_add_if:"0":"ffffffffffffffff":"ffffffffffffffff":0:"ffffffffffffffff":0 +mpi_core_add_if:"0":"ffffffffffffffff":"ffffffffffffffff":0:"ffffffffffffffff":0 mbedtls_mpi_core_add_if #20: 0x0 + 0x10000000000000000 = (0x10000000000000000, carry 0)/(0x10000000000000000, carry 0) -mbedtls_mpi_core_add_if:"0":"10000000000000000":"10000000000000000":0:"10000000000000000":0 +mpi_core_add_if:"0":"10000000000000000":"10000000000000000":0:"10000000000000000":0 mbedtls_mpi_core_add_if #21: 0x0 + 0x1234567890abcdef0 = (0x1234567890abcdef0, carry 0)/(0x1234567890abcdef0, carry 0) -mbedtls_mpi_core_add_if:"0":"1234567890abcdef0":"1234567890abcdef0":0:"1234567890abcdef0":0 +mpi_core_add_if:"0":"1234567890abcdef0":"1234567890abcdef0":0:"1234567890abcdef0":0 mbedtls_mpi_core_add_if #22: 0x0 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefefe, carry 0)/(0xfffffffffffffffffefefefefefefefe, carry 0) -mbedtls_mpi_core_add_if:"0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":0:"fffffffffffffffffefefefefefefefe":0 +mpi_core_add_if:"0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":0:"fffffffffffffffffefefefefefefefe":0 mbedtls_mpi_core_add_if #23: 0x0 + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffe, carry 0)/(0xfffffffffffffffffffffffffffffffe, carry 0) -mbedtls_mpi_core_add_if:"0":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":0:"fffffffffffffffffffffffffffffffe":0 +mpi_core_add_if:"0":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":0:"fffffffffffffffffffffffffffffffe":0 mbedtls_mpi_core_add_if #24: 0x0 + 0xffffffffffffffffffffffffffffffff = (0xffffffffffffffffffffffffffffffff, carry 0)/(0xffffffffffffffffffffffffffffffff, carry 0) -mbedtls_mpi_core_add_if:"0":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffff":0 +mpi_core_add_if:"0":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffff":0 mbedtls_mpi_core_add_if #25: 0x0 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000000000, carry 0)/(0x100000000000000000000000000000000, carry 0) -mbedtls_mpi_core_add_if:"0":"100000000000000000000000000000000":"100000000000000000000000000000000":0:"100000000000000000000000000000000":0 +mpi_core_add_if:"0":"100000000000000000000000000000000":"100000000000000000000000000000000":0:"100000000000000000000000000000000":0 mbedtls_mpi_core_add_if #26: 0x0 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef0, carry 0) -mbedtls_mpi_core_add_if:"0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":0:"1234567890abcdef01234567890abcdef0":0 +mpi_core_add_if:"0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":0:"1234567890abcdef01234567890abcdef0":0 mbedtls_mpi_core_add_if #27: 0x0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0) -mbedtls_mpi_core_add_if:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0 +mpi_core_add_if:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0 mbedtls_mpi_core_add_if #28: 0x0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0) -mbedtls_mpi_core_add_if:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 +mpi_core_add_if:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 mbedtls_mpi_core_add_if #29: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0) -mbedtls_mpi_core_add_if:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 +mpi_core_add_if:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 mbedtls_mpi_core_add_if #30: 0x0 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000000000, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000000000, carry 0) -mbedtls_mpi_core_add_if:"0":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":0:"10000000000000000000000000000000000000000000000000000000000000000":0 +mpi_core_add_if:"0":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":0:"10000000000000000000000000000000000000000000000000000000000000000":0 mbedtls_mpi_core_add_if #31: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0) -mbedtls_mpi_core_add_if:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 +mpi_core_add_if:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 mbedtls_mpi_core_add_if #32: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0) -mbedtls_mpi_core_add_if:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 +mpi_core_add_if:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 mbedtls_mpi_core_add_if #33: 0x1 + 0x1 = (0x2, carry 0)/(0x2, carry 0) -mbedtls_mpi_core_add_if:"1":"1":"2":0:"2":0 +mpi_core_add_if:"1":"1":"2":0:"2":0 mbedtls_mpi_core_add_if #34: 0x1 + 0x3 = (0x4, carry 0)/(0x4, carry 0) -mbedtls_mpi_core_add_if:"1":"3":"4":0:"4":0 +mpi_core_add_if:"1":"3":"4":0:"4":0 mbedtls_mpi_core_add_if #35: 0x1 + 0xf = (0x10, carry 0)/(0x10, carry 0) -mbedtls_mpi_core_add_if:"1":"f":"10":0:"10":0 +mpi_core_add_if:"1":"f":"10":0:"10":0 mbedtls_mpi_core_add_if #36: 0x1 + 0xfe = (0xff, carry 0)/(0xff, carry 0) -mbedtls_mpi_core_add_if:"1":"fe":"ff":0:"ff":0 +mpi_core_add_if:"1":"fe":"ff":0:"ff":0 mbedtls_mpi_core_add_if #37: 0x1 + 0xff = (0x100, carry 0)/(0x100, carry 0) -mbedtls_mpi_core_add_if:"1":"ff":"100":0:"100":0 +mpi_core_add_if:"1":"ff":"100":0:"100":0 mbedtls_mpi_core_add_if #38: 0x1 + 0x100 = (0x101, carry 0)/(0x101, carry 0) -mbedtls_mpi_core_add_if:"1":"100":"101":0:"101":0 +mpi_core_add_if:"1":"100":"101":0:"101":0 mbedtls_mpi_core_add_if #39: 0x1 + 0xff00 = (0xff01, carry 0)/(0xff01, carry 0) -mbedtls_mpi_core_add_if:"1":"ff00":"ff01":0:"ff01":0 +mpi_core_add_if:"1":"ff00":"ff01":0:"ff01":0 mbedtls_mpi_core_add_if #40: 0x1 + 0xfffe = (0xffff, carry 0)/(0xffff, carry 0) -mbedtls_mpi_core_add_if:"1":"fffe":"ffff":0:"ffff":0 +mpi_core_add_if:"1":"fffe":"ffff":0:"ffff":0 mbedtls_mpi_core_add_if #41: 0x1 + 0xffff = (0x10000, carry 0)/(0x10000, carry 0) -mbedtls_mpi_core_add_if:"1":"ffff":"10000":0:"10000":0 +mpi_core_add_if:"1":"ffff":"10000":0:"10000":0 mbedtls_mpi_core_add_if #42: 0x1 + 0x10000 = (0x10001, carry 0)/(0x10001, carry 0) -mbedtls_mpi_core_add_if:"1":"10000":"10001":0:"10001":0 +mpi_core_add_if:"1":"10000":"10001":0:"10001":0 mbedtls_mpi_core_add_if #43: 0x1 + 0xfffffffe = (0xffffffff, carry 0)/(0xffffffff, carry 0) -mbedtls_mpi_core_add_if:"1":"fffffffe":"ffffffff":0:"ffffffff":0 +mpi_core_add_if:"1":"fffffffe":"ffffffff":0:"ffffffff":0 mbedtls_mpi_core_add_if #44: 0x1 + 0xffffffff = (0x0, carry 1)/(0x100000000, carry 0) -mbedtls_mpi_core_add_if:"1":"ffffffff":"0":1:"100000000":0 +mpi_core_add_if:"1":"ffffffff":"0":1:"100000000":0 mbedtls_mpi_core_add_if #45: 0x1 + 0x100000000 = (0x100000001, carry 0)/(0x100000001, carry 0) -mbedtls_mpi_core_add_if:"1":"100000000":"100000001":0:"100000001":0 +mpi_core_add_if:"1":"100000000":"100000001":0:"100000001":0 mbedtls_mpi_core_add_if #46: 0x1 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f7f80, carry 0)/(0x1f7f7f7f7f7f80, carry 0) -mbedtls_mpi_core_add_if:"1":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f80":0:"1f7f7f7f7f7f80":0 +mpi_core_add_if:"1":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f80":0:"1f7f7f7f7f7f80":0 mbedtls_mpi_core_add_if #47: 0x1 + 0x8000000000000000 = (0x8000000000000001, carry 0)/(0x8000000000000001, carry 0) -mbedtls_mpi_core_add_if:"1":"8000000000000000":"8000000000000001":0:"8000000000000001":0 +mpi_core_add_if:"1":"8000000000000000":"8000000000000001":0:"8000000000000001":0 mbedtls_mpi_core_add_if #48: 0x1 + 0xfefefefefefefefe = (0xfefefefefefefeff, carry 0)/(0xfefefefefefefeff, carry 0) -mbedtls_mpi_core_add_if:"1":"fefefefefefefefe":"fefefefefefefeff":0:"fefefefefefefeff":0 +mpi_core_add_if:"1":"fefefefefefefefe":"fefefefefefefeff":0:"fefefefefefefeff":0 mbedtls_mpi_core_add_if #49: 0x1 + 0xfffffffffffffffe = (0xffffffffffffffff, carry 0)/(0xffffffffffffffff, carry 0) -mbedtls_mpi_core_add_if:"1":"fffffffffffffffe":"ffffffffffffffff":0:"ffffffffffffffff":0 +mpi_core_add_if:"1":"fffffffffffffffe":"ffffffffffffffff":0:"ffffffffffffffff":0 mbedtls_mpi_core_add_if #50: 0x1 + 0xffffffffffffffff = (0x0, carry 1)/(0x0, carry 1) -mbedtls_mpi_core_add_if:"1":"ffffffffffffffff":"0":1:"0":1 +mpi_core_add_if:"1":"ffffffffffffffff":"0":1:"0":1 mbedtls_mpi_core_add_if #51: 0x1 + 0x10000000000000000 = (0x10000000000000001, carry 0)/(0x10000000000000001, carry 0) -mbedtls_mpi_core_add_if:"1":"10000000000000000":"10000000000000001":0:"10000000000000001":0 +mpi_core_add_if:"1":"10000000000000000":"10000000000000001":0:"10000000000000001":0 mbedtls_mpi_core_add_if #52: 0x1 + 0x1234567890abcdef0 = (0x1234567890abcdef1, carry 0)/(0x1234567890abcdef1, carry 0) -mbedtls_mpi_core_add_if:"1":"1234567890abcdef0":"1234567890abcdef1":0:"1234567890abcdef1":0 +mpi_core_add_if:"1":"1234567890abcdef0":"1234567890abcdef1":0:"1234567890abcdef1":0 mbedtls_mpi_core_add_if #53: 0x1 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefeff, carry 0)/(0xfffffffffffffffffefefefefefefeff, carry 0) -mbedtls_mpi_core_add_if:"1":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefeff":0:"fffffffffffffffffefefefefefefeff":0 +mpi_core_add_if:"1":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefeff":0:"fffffffffffffffffefefefefefefeff":0 mbedtls_mpi_core_add_if #54: 0x1 + 0xfffffffffffffffffffffffffffffffe = (0xffffffffffffffffffffffffffffffff, carry 0)/(0xffffffffffffffffffffffffffffffff, carry 0) -mbedtls_mpi_core_add_if:"1":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffff":0 +mpi_core_add_if:"1":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffff":0 mbedtls_mpi_core_add_if #55: 0x1 + 0xffffffffffffffffffffffffffffffff = (0x0, carry 1)/(0x0, carry 1) -mbedtls_mpi_core_add_if:"1":"ffffffffffffffffffffffffffffffff":"0":1:"0":1 +mpi_core_add_if:"1":"ffffffffffffffffffffffffffffffff":"0":1:"0":1 mbedtls_mpi_core_add_if #56: 0x1 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000000001, carry 0)/(0x100000000000000000000000000000001, carry 0) -mbedtls_mpi_core_add_if:"1":"100000000000000000000000000000000":"100000000000000000000000000000001":0:"100000000000000000000000000000001":0 +mpi_core_add_if:"1":"100000000000000000000000000000000":"100000000000000000000000000000001":0:"100000000000000000000000000000001":0 mbedtls_mpi_core_add_if #57: 0x1 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef1, carry 0)/(0x1234567890abcdef01234567890abcdef1, carry 0) -mbedtls_mpi_core_add_if:"1":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef1":0:"1234567890abcdef01234567890abcdef1":0 +mpi_core_add_if:"1":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef1":0:"1234567890abcdef01234567890abcdef1":0 mbedtls_mpi_core_add_if #58: 0x1 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff, carry 0) -mbedtls_mpi_core_add_if:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":0 +mpi_core_add_if:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":0 mbedtls_mpi_core_add_if #59: 0x1 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0) -mbedtls_mpi_core_add_if:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 +mpi_core_add_if:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 mbedtls_mpi_core_add_if #60: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x0, carry 1)/(0x0, carry 1) -mbedtls_mpi_core_add_if:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":1:"0":1 +mpi_core_add_if:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":1:"0":1 mbedtls_mpi_core_add_if #61: 0x1 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000000001, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000000001, carry 0) -mbedtls_mpi_core_add_if:"1":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000001":0:"10000000000000000000000000000000000000000000000000000000000000001":0 +mpi_core_add_if:"1":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000001":0:"10000000000000000000000000000000000000000000000000000000000000001":0 mbedtls_mpi_core_add_if #62: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1, carry 0) -mbedtls_mpi_core_add_if:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":0 +mpi_core_add_if:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":0 mbedtls_mpi_core_add_if #63: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c, carry 0) -mbedtls_mpi_core_add_if:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":0 +mpi_core_add_if:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":0 mbedtls_mpi_core_add_if #64: 0x3 + 0x3 = (0x6, carry 0)/(0x6, carry 0) -mbedtls_mpi_core_add_if:"3":"3":"6":0:"6":0 +mpi_core_add_if:"3":"3":"6":0:"6":0 mbedtls_mpi_core_add_if #65: 0x3 + 0xf = (0x12, carry 0)/(0x12, carry 0) -mbedtls_mpi_core_add_if:"3":"f":"12":0:"12":0 +mpi_core_add_if:"3":"f":"12":0:"12":0 mbedtls_mpi_core_add_if #66: 0x3 + 0xfe = (0x101, carry 0)/(0x101, carry 0) -mbedtls_mpi_core_add_if:"3":"fe":"101":0:"101":0 +mpi_core_add_if:"3":"fe":"101":0:"101":0 mbedtls_mpi_core_add_if #67: 0x3 + 0xff = (0x102, carry 0)/(0x102, carry 0) -mbedtls_mpi_core_add_if:"3":"ff":"102":0:"102":0 +mpi_core_add_if:"3":"ff":"102":0:"102":0 mbedtls_mpi_core_add_if #68: 0x3 + 0x100 = (0x103, carry 0)/(0x103, carry 0) -mbedtls_mpi_core_add_if:"3":"100":"103":0:"103":0 +mpi_core_add_if:"3":"100":"103":0:"103":0 mbedtls_mpi_core_add_if #69: 0x3 + 0xff00 = (0xff03, carry 0)/(0xff03, carry 0) -mbedtls_mpi_core_add_if:"3":"ff00":"ff03":0:"ff03":0 +mpi_core_add_if:"3":"ff00":"ff03":0:"ff03":0 mbedtls_mpi_core_add_if #70: 0x3 + 0xfffe = (0x10001, carry 0)/(0x10001, carry 0) -mbedtls_mpi_core_add_if:"3":"fffe":"10001":0:"10001":0 +mpi_core_add_if:"3":"fffe":"10001":0:"10001":0 mbedtls_mpi_core_add_if #71: 0x3 + 0xffff = (0x10002, carry 0)/(0x10002, carry 0) -mbedtls_mpi_core_add_if:"3":"ffff":"10002":0:"10002":0 +mpi_core_add_if:"3":"ffff":"10002":0:"10002":0 mbedtls_mpi_core_add_if #72: 0x3 + 0x10000 = (0x10003, carry 0)/(0x10003, carry 0) -mbedtls_mpi_core_add_if:"3":"10000":"10003":0:"10003":0 +mpi_core_add_if:"3":"10000":"10003":0:"10003":0 mbedtls_mpi_core_add_if #73: 0x3 + 0xfffffffe = (0x1, carry 1)/(0x100000001, carry 0) -mbedtls_mpi_core_add_if:"3":"fffffffe":"1":1:"100000001":0 +mpi_core_add_if:"3":"fffffffe":"1":1:"100000001":0 mbedtls_mpi_core_add_if #74: 0x3 + 0xffffffff = (0x2, carry 1)/(0x100000002, carry 0) -mbedtls_mpi_core_add_if:"3":"ffffffff":"2":1:"100000002":0 +mpi_core_add_if:"3":"ffffffff":"2":1:"100000002":0 mbedtls_mpi_core_add_if #75: 0x3 + 0x100000000 = (0x100000003, carry 0)/(0x100000003, carry 0) -mbedtls_mpi_core_add_if:"3":"100000000":"100000003":0:"100000003":0 +mpi_core_add_if:"3":"100000000":"100000003":0:"100000003":0 mbedtls_mpi_core_add_if #76: 0x3 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f7f82, carry 0)/(0x1f7f7f7f7f7f82, carry 0) -mbedtls_mpi_core_add_if:"3":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f82":0:"1f7f7f7f7f7f82":0 +mpi_core_add_if:"3":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f82":0:"1f7f7f7f7f7f82":0 mbedtls_mpi_core_add_if #77: 0x3 + 0x8000000000000000 = (0x8000000000000003, carry 0)/(0x8000000000000003, carry 0) -mbedtls_mpi_core_add_if:"3":"8000000000000000":"8000000000000003":0:"8000000000000003":0 +mpi_core_add_if:"3":"8000000000000000":"8000000000000003":0:"8000000000000003":0 mbedtls_mpi_core_add_if #78: 0x3 + 0xfefefefefefefefe = (0xfefefefefefeff01, carry 0)/(0xfefefefefefeff01, carry 0) -mbedtls_mpi_core_add_if:"3":"fefefefefefefefe":"fefefefefefeff01":0:"fefefefefefeff01":0 +mpi_core_add_if:"3":"fefefefefefefefe":"fefefefefefeff01":0:"fefefefefefeff01":0 mbedtls_mpi_core_add_if #79: 0x3 + 0xfffffffffffffffe = (0x1, carry 1)/(0x1, carry 1) -mbedtls_mpi_core_add_if:"3":"fffffffffffffffe":"1":1:"1":1 +mpi_core_add_if:"3":"fffffffffffffffe":"1":1:"1":1 mbedtls_mpi_core_add_if #80: 0x3 + 0xffffffffffffffff = (0x2, carry 1)/(0x2, carry 1) -mbedtls_mpi_core_add_if:"3":"ffffffffffffffff":"2":1:"2":1 +mpi_core_add_if:"3":"ffffffffffffffff":"2":1:"2":1 mbedtls_mpi_core_add_if #81: 0x3 + 0x10000000000000000 = (0x10000000000000003, carry 0)/(0x10000000000000003, carry 0) -mbedtls_mpi_core_add_if:"3":"10000000000000000":"10000000000000003":0:"10000000000000003":0 +mpi_core_add_if:"3":"10000000000000000":"10000000000000003":0:"10000000000000003":0 mbedtls_mpi_core_add_if #82: 0x3 + 0x1234567890abcdef0 = (0x1234567890abcdef3, carry 0)/(0x1234567890abcdef3, carry 0) -mbedtls_mpi_core_add_if:"3":"1234567890abcdef0":"1234567890abcdef3":0:"1234567890abcdef3":0 +mpi_core_add_if:"3":"1234567890abcdef0":"1234567890abcdef3":0:"1234567890abcdef3":0 mbedtls_mpi_core_add_if #83: 0x3 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefeff01, carry 0)/(0xfffffffffffffffffefefefefefeff01, carry 0) -mbedtls_mpi_core_add_if:"3":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefeff01":0:"fffffffffffffffffefefefefefeff01":0 +mpi_core_add_if:"3":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefeff01":0:"fffffffffffffffffefefefefefeff01":0 mbedtls_mpi_core_add_if #84: 0x3 + 0xfffffffffffffffffffffffffffffffe = (0x1, carry 1)/(0x1, carry 1) -mbedtls_mpi_core_add_if:"3":"fffffffffffffffffffffffffffffffe":"1":1:"1":1 +mpi_core_add_if:"3":"fffffffffffffffffffffffffffffffe":"1":1:"1":1 mbedtls_mpi_core_add_if #85: 0x3 + 0xffffffffffffffffffffffffffffffff = (0x2, carry 1)/(0x2, carry 1) -mbedtls_mpi_core_add_if:"3":"ffffffffffffffffffffffffffffffff":"2":1:"2":1 +mpi_core_add_if:"3":"ffffffffffffffffffffffffffffffff":"2":1:"2":1 mbedtls_mpi_core_add_if #86: 0x3 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000000003, carry 0)/(0x100000000000000000000000000000003, carry 0) -mbedtls_mpi_core_add_if:"3":"100000000000000000000000000000000":"100000000000000000000000000000003":0:"100000000000000000000000000000003":0 +mpi_core_add_if:"3":"100000000000000000000000000000000":"100000000000000000000000000000003":0:"100000000000000000000000000000003":0 mbedtls_mpi_core_add_if #87: 0x3 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef3, carry 0)/(0x1234567890abcdef01234567890abcdef3, carry 0) -mbedtls_mpi_core_add_if:"3":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef3":0:"1234567890abcdef01234567890abcdef3":0 +mpi_core_add_if:"3":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef3":0:"1234567890abcdef01234567890abcdef3":0 mbedtls_mpi_core_add_if #88: 0x3 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01, carry 0) -mbedtls_mpi_core_add_if:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01":0 +mpi_core_add_if:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01":0 mbedtls_mpi_core_add_if #89: 0x3 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x1, carry 1)/(0x1, carry 1) -mbedtls_mpi_core_add_if:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1":1:"1":1 +mpi_core_add_if:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1":1:"1":1 mbedtls_mpi_core_add_if #90: 0x3 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x2, carry 1)/(0x2, carry 1) -mbedtls_mpi_core_add_if:"3":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"2":1:"2":1 +mpi_core_add_if:"3":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"2":1:"2":1 mbedtls_mpi_core_add_if #91: 0x3 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000000003, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000000003, carry 0) -mbedtls_mpi_core_add_if:"3":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000003":0:"10000000000000000000000000000000000000000000000000000000000000003":0 +mpi_core_add_if:"3":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000003":0:"10000000000000000000000000000000000000000000000000000000000000003":0 mbedtls_mpi_core_add_if #92: 0x3 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3, carry 0) -mbedtls_mpi_core_add_if:"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":0 +mpi_core_add_if:"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":0 mbedtls_mpi_core_add_if #93: 0x3 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e, carry 0) -mbedtls_mpi_core_add_if:"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":0 +mpi_core_add_if:"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":0 mbedtls_mpi_core_add_if #94: 0xf + 0xf = (0x1e, carry 0)/(0x1e, carry 0) -mbedtls_mpi_core_add_if:"f":"f":"1e":0:"1e":0 +mpi_core_add_if:"f":"f":"1e":0:"1e":0 mbedtls_mpi_core_add_if #95: 0xf + 0xfe = (0x10d, carry 0)/(0x10d, carry 0) -mbedtls_mpi_core_add_if:"f":"fe":"10d":0:"10d":0 +mpi_core_add_if:"f":"fe":"10d":0:"10d":0 mbedtls_mpi_core_add_if #96: 0xf + 0xff = (0x10e, carry 0)/(0x10e, carry 0) -mbedtls_mpi_core_add_if:"f":"ff":"10e":0:"10e":0 +mpi_core_add_if:"f":"ff":"10e":0:"10e":0 mbedtls_mpi_core_add_if #97: 0xf + 0x100 = (0x10f, carry 0)/(0x10f, carry 0) -mbedtls_mpi_core_add_if:"f":"100":"10f":0:"10f":0 +mpi_core_add_if:"f":"100":"10f":0:"10f":0 mbedtls_mpi_core_add_if #98: 0xf + 0xff00 = (0xff0f, carry 0)/(0xff0f, carry 0) -mbedtls_mpi_core_add_if:"f":"ff00":"ff0f":0:"ff0f":0 +mpi_core_add_if:"f":"ff00":"ff0f":0:"ff0f":0 mbedtls_mpi_core_add_if #99: 0xf + 0xfffe = (0x1000d, carry 0)/(0x1000d, carry 0) -mbedtls_mpi_core_add_if:"f":"fffe":"1000d":0:"1000d":0 +mpi_core_add_if:"f":"fffe":"1000d":0:"1000d":0 mbedtls_mpi_core_add_if #100: 0xf + 0xffff = (0x1000e, carry 0)/(0x1000e, carry 0) -mbedtls_mpi_core_add_if:"f":"ffff":"1000e":0:"1000e":0 +mpi_core_add_if:"f":"ffff":"1000e":0:"1000e":0 mbedtls_mpi_core_add_if #101: 0xf + 0x10000 = (0x1000f, carry 0)/(0x1000f, carry 0) -mbedtls_mpi_core_add_if:"f":"10000":"1000f":0:"1000f":0 +mpi_core_add_if:"f":"10000":"1000f":0:"1000f":0 mbedtls_mpi_core_add_if #102: 0xf + 0xfffffffe = (0xd, carry 1)/(0x10000000d, carry 0) -mbedtls_mpi_core_add_if:"f":"fffffffe":"d":1:"10000000d":0 +mpi_core_add_if:"f":"fffffffe":"d":1:"10000000d":0 mbedtls_mpi_core_add_if #103: 0xf + 0xffffffff = (0xe, carry 1)/(0x10000000e, carry 0) -mbedtls_mpi_core_add_if:"f":"ffffffff":"e":1:"10000000e":0 +mpi_core_add_if:"f":"ffffffff":"e":1:"10000000e":0 mbedtls_mpi_core_add_if #104: 0xf + 0x100000000 = (0x10000000f, carry 0)/(0x10000000f, carry 0) -mbedtls_mpi_core_add_if:"f":"100000000":"10000000f":0:"10000000f":0 +mpi_core_add_if:"f":"100000000":"10000000f":0:"10000000f":0 mbedtls_mpi_core_add_if #105: 0xf + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f7f8e, carry 0)/(0x1f7f7f7f7f7f8e, carry 0) -mbedtls_mpi_core_add_if:"f":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f8e":0:"1f7f7f7f7f7f8e":0 +mpi_core_add_if:"f":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f8e":0:"1f7f7f7f7f7f8e":0 mbedtls_mpi_core_add_if #106: 0xf + 0x8000000000000000 = (0x800000000000000f, carry 0)/(0x800000000000000f, carry 0) -mbedtls_mpi_core_add_if:"f":"8000000000000000":"800000000000000f":0:"800000000000000f":0 +mpi_core_add_if:"f":"8000000000000000":"800000000000000f":0:"800000000000000f":0 mbedtls_mpi_core_add_if #107: 0xf + 0xfefefefefefefefe = (0xfefefefefefeff0d, carry 0)/(0xfefefefefefeff0d, carry 0) -mbedtls_mpi_core_add_if:"f":"fefefefefefefefe":"fefefefefefeff0d":0:"fefefefefefeff0d":0 +mpi_core_add_if:"f":"fefefefefefefefe":"fefefefefefeff0d":0:"fefefefefefeff0d":0 mbedtls_mpi_core_add_if #108: 0xf + 0xfffffffffffffffe = (0xd, carry 1)/(0xd, carry 1) -mbedtls_mpi_core_add_if:"f":"fffffffffffffffe":"d":1:"d":1 +mpi_core_add_if:"f":"fffffffffffffffe":"d":1:"d":1 mbedtls_mpi_core_add_if #109: 0xf + 0xffffffffffffffff = (0xe, carry 1)/(0xe, carry 1) -mbedtls_mpi_core_add_if:"f":"ffffffffffffffff":"e":1:"e":1 +mpi_core_add_if:"f":"ffffffffffffffff":"e":1:"e":1 mbedtls_mpi_core_add_if #110: 0xf + 0x10000000000000000 = (0x1000000000000000f, carry 0)/(0x1000000000000000f, carry 0) -mbedtls_mpi_core_add_if:"f":"10000000000000000":"1000000000000000f":0:"1000000000000000f":0 +mpi_core_add_if:"f":"10000000000000000":"1000000000000000f":0:"1000000000000000f":0 mbedtls_mpi_core_add_if #111: 0xf + 0x1234567890abcdef0 = (0x1234567890abcdeff, carry 0)/(0x1234567890abcdeff, carry 0) -mbedtls_mpi_core_add_if:"f":"1234567890abcdef0":"1234567890abcdeff":0:"1234567890abcdeff":0 +mpi_core_add_if:"f":"1234567890abcdef0":"1234567890abcdeff":0:"1234567890abcdeff":0 mbedtls_mpi_core_add_if #112: 0xf + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefeff0d, carry 0)/(0xfffffffffffffffffefefefefefeff0d, carry 0) -mbedtls_mpi_core_add_if:"f":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefeff0d":0:"fffffffffffffffffefefefefefeff0d":0 +mpi_core_add_if:"f":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefeff0d":0:"fffffffffffffffffefefefefefeff0d":0 mbedtls_mpi_core_add_if #113: 0xf + 0xfffffffffffffffffffffffffffffffe = (0xd, carry 1)/(0xd, carry 1) -mbedtls_mpi_core_add_if:"f":"fffffffffffffffffffffffffffffffe":"d":1:"d":1 +mpi_core_add_if:"f":"fffffffffffffffffffffffffffffffe":"d":1:"d":1 mbedtls_mpi_core_add_if #114: 0xf + 0xffffffffffffffffffffffffffffffff = (0xe, carry 1)/(0xe, carry 1) -mbedtls_mpi_core_add_if:"f":"ffffffffffffffffffffffffffffffff":"e":1:"e":1 +mpi_core_add_if:"f":"ffffffffffffffffffffffffffffffff":"e":1:"e":1 mbedtls_mpi_core_add_if #115: 0xf + 0x100000000000000000000000000000000 = (0x10000000000000000000000000000000f, carry 0)/(0x10000000000000000000000000000000f, carry 0) -mbedtls_mpi_core_add_if:"f":"100000000000000000000000000000000":"10000000000000000000000000000000f":0:"10000000000000000000000000000000f":0 +mpi_core_add_if:"f":"100000000000000000000000000000000":"10000000000000000000000000000000f":0:"10000000000000000000000000000000f":0 mbedtls_mpi_core_add_if #116: 0xf + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdeff, carry 0)/(0x1234567890abcdef01234567890abcdeff, carry 0) -mbedtls_mpi_core_add_if:"f":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdeff":0:"1234567890abcdef01234567890abcdeff":0 +mpi_core_add_if:"f":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdeff":0:"1234567890abcdef01234567890abcdeff":0 mbedtls_mpi_core_add_if #117: 0xf + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d, carry 0) -mbedtls_mpi_core_add_if:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d":0 +mpi_core_add_if:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d":0 mbedtls_mpi_core_add_if #118: 0xf + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xd, carry 1)/(0xd, carry 1) -mbedtls_mpi_core_add_if:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"d":1:"d":1 +mpi_core_add_if:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"d":1:"d":1 mbedtls_mpi_core_add_if #119: 0xf + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xe, carry 1)/(0xe, carry 1) -mbedtls_mpi_core_add_if:"f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"e":1:"e":1 +mpi_core_add_if:"f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"e":1:"e":1 mbedtls_mpi_core_add_if #120: 0xf + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000000000000000000f, carry 0)/(0x1000000000000000000000000000000000000000000000000000000000000000f, carry 0) -mbedtls_mpi_core_add_if:"f":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000000f":0:"1000000000000000000000000000000000000000000000000000000000000000f":0 +mpi_core_add_if:"f":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000000f":0:"1000000000000000000000000000000000000000000000000000000000000000f":0 mbedtls_mpi_core_add_if #121: 0xf + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff, carry 0) -mbedtls_mpi_core_add_if:"f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff":0 +mpi_core_add_if:"f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff":0 mbedtls_mpi_core_add_if #122: 0xf + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a, carry 0) -mbedtls_mpi_core_add_if:"f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a":0 +mpi_core_add_if:"f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a":0 mbedtls_mpi_core_add_if #123: 0xfe + 0xfe = (0x1fc, carry 0)/(0x1fc, carry 0) -mbedtls_mpi_core_add_if:"fe":"fe":"1fc":0:"1fc":0 +mpi_core_add_if:"fe":"fe":"1fc":0:"1fc":0 mbedtls_mpi_core_add_if #124: 0xfe + 0xff = (0x1fd, carry 0)/(0x1fd, carry 0) -mbedtls_mpi_core_add_if:"fe":"ff":"1fd":0:"1fd":0 +mpi_core_add_if:"fe":"ff":"1fd":0:"1fd":0 mbedtls_mpi_core_add_if #125: 0xfe + 0x100 = (0x1fe, carry 0)/(0x1fe, carry 0) -mbedtls_mpi_core_add_if:"fe":"100":"1fe":0:"1fe":0 +mpi_core_add_if:"fe":"100":"1fe":0:"1fe":0 mbedtls_mpi_core_add_if #126: 0xfe + 0xff00 = (0xfffe, carry 0)/(0xfffe, carry 0) -mbedtls_mpi_core_add_if:"fe":"ff00":"fffe":0:"fffe":0 +mpi_core_add_if:"fe":"ff00":"fffe":0:"fffe":0 mbedtls_mpi_core_add_if #127: 0xfe + 0xfffe = (0x100fc, carry 0)/(0x100fc, carry 0) -mbedtls_mpi_core_add_if:"fe":"fffe":"100fc":0:"100fc":0 +mpi_core_add_if:"fe":"fffe":"100fc":0:"100fc":0 mbedtls_mpi_core_add_if #128: 0xfe + 0xffff = (0x100fd, carry 0)/(0x100fd, carry 0) -mbedtls_mpi_core_add_if:"fe":"ffff":"100fd":0:"100fd":0 +mpi_core_add_if:"fe":"ffff":"100fd":0:"100fd":0 mbedtls_mpi_core_add_if #129: 0xfe + 0x10000 = (0x100fe, carry 0)/(0x100fe, carry 0) -mbedtls_mpi_core_add_if:"fe":"10000":"100fe":0:"100fe":0 +mpi_core_add_if:"fe":"10000":"100fe":0:"100fe":0 mbedtls_mpi_core_add_if #130: 0xfe + 0xfffffffe = (0xfc, carry 1)/(0x1000000fc, carry 0) -mbedtls_mpi_core_add_if:"fe":"fffffffe":"fc":1:"1000000fc":0 +mpi_core_add_if:"fe":"fffffffe":"fc":1:"1000000fc":0 mbedtls_mpi_core_add_if #131: 0xfe + 0xffffffff = (0xfd, carry 1)/(0x1000000fd, carry 0) -mbedtls_mpi_core_add_if:"fe":"ffffffff":"fd":1:"1000000fd":0 +mpi_core_add_if:"fe":"ffffffff":"fd":1:"1000000fd":0 mbedtls_mpi_core_add_if #132: 0xfe + 0x100000000 = (0x1000000fe, carry 0)/(0x1000000fe, carry 0) -mbedtls_mpi_core_add_if:"fe":"100000000":"1000000fe":0:"1000000fe":0 +mpi_core_add_if:"fe":"100000000":"1000000fe":0:"1000000fe":0 mbedtls_mpi_core_add_if #133: 0xfe + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f807d, carry 0)/(0x1f7f7f7f7f807d, carry 0) -mbedtls_mpi_core_add_if:"fe":"1f7f7f7f7f7f7f":"1f7f7f7f7f807d":0:"1f7f7f7f7f807d":0 +mpi_core_add_if:"fe":"1f7f7f7f7f7f7f":"1f7f7f7f7f807d":0:"1f7f7f7f7f807d":0 mbedtls_mpi_core_add_if #134: 0xfe + 0x8000000000000000 = (0x80000000000000fe, carry 0)/(0x80000000000000fe, carry 0) -mbedtls_mpi_core_add_if:"fe":"8000000000000000":"80000000000000fe":0:"80000000000000fe":0 +mpi_core_add_if:"fe":"8000000000000000":"80000000000000fe":0:"80000000000000fe":0 mbedtls_mpi_core_add_if #135: 0xfe + 0xfefefefefefefefe = (0xfefefefefefefffc, carry 0)/(0xfefefefefefefffc, carry 0) -mbedtls_mpi_core_add_if:"fe":"fefefefefefefefe":"fefefefefefefffc":0:"fefefefefefefffc":0 +mpi_core_add_if:"fe":"fefefefefefefefe":"fefefefefefefffc":0:"fefefefefefefffc":0 mbedtls_mpi_core_add_if #136: 0xfe + 0xfffffffffffffffe = (0xfc, carry 1)/(0xfc, carry 1) -mbedtls_mpi_core_add_if:"fe":"fffffffffffffffe":"fc":1:"fc":1 +mpi_core_add_if:"fe":"fffffffffffffffe":"fc":1:"fc":1 mbedtls_mpi_core_add_if #137: 0xfe + 0xffffffffffffffff = (0xfd, carry 1)/(0xfd, carry 1) -mbedtls_mpi_core_add_if:"fe":"ffffffffffffffff":"fd":1:"fd":1 +mpi_core_add_if:"fe":"ffffffffffffffff":"fd":1:"fd":1 mbedtls_mpi_core_add_if #138: 0xfe + 0x10000000000000000 = (0x100000000000000fe, carry 0)/(0x100000000000000fe, carry 0) -mbedtls_mpi_core_add_if:"fe":"10000000000000000":"100000000000000fe":0:"100000000000000fe":0 +mpi_core_add_if:"fe":"10000000000000000":"100000000000000fe":0:"100000000000000fe":0 mbedtls_mpi_core_add_if #139: 0xfe + 0x1234567890abcdef0 = (0x1234567890abcdfee, carry 0)/(0x1234567890abcdfee, carry 0) -mbedtls_mpi_core_add_if:"fe":"1234567890abcdef0":"1234567890abcdfee":0:"1234567890abcdfee":0 +mpi_core_add_if:"fe":"1234567890abcdef0":"1234567890abcdfee":0:"1234567890abcdfee":0 mbedtls_mpi_core_add_if #140: 0xfe + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefffc, carry 0)/(0xfffffffffffffffffefefefefefefffc, carry 0) -mbedtls_mpi_core_add_if:"fe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefffc":0:"fffffffffffffffffefefefefefefffc":0 +mpi_core_add_if:"fe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefffc":0:"fffffffffffffffffefefefefefefffc":0 mbedtls_mpi_core_add_if #141: 0xfe + 0xfffffffffffffffffffffffffffffffe = (0xfc, carry 1)/(0xfc, carry 1) -mbedtls_mpi_core_add_if:"fe":"fffffffffffffffffffffffffffffffe":"fc":1:"fc":1 +mpi_core_add_if:"fe":"fffffffffffffffffffffffffffffffe":"fc":1:"fc":1 mbedtls_mpi_core_add_if #142: 0xfe + 0xffffffffffffffffffffffffffffffff = (0xfd, carry 1)/(0xfd, carry 1) -mbedtls_mpi_core_add_if:"fe":"ffffffffffffffffffffffffffffffff":"fd":1:"fd":1 +mpi_core_add_if:"fe":"ffffffffffffffffffffffffffffffff":"fd":1:"fd":1 mbedtls_mpi_core_add_if #143: 0xfe + 0x100000000000000000000000000000000 = (0x1000000000000000000000000000000fe, carry 0)/(0x1000000000000000000000000000000fe, carry 0) -mbedtls_mpi_core_add_if:"fe":"100000000000000000000000000000000":"1000000000000000000000000000000fe":0:"1000000000000000000000000000000fe":0 +mpi_core_add_if:"fe":"100000000000000000000000000000000":"1000000000000000000000000000000fe":0:"1000000000000000000000000000000fe":0 mbedtls_mpi_core_add_if #144: 0xfe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdfee, carry 0)/(0x1234567890abcdef01234567890abcdfee, carry 0) -mbedtls_mpi_core_add_if:"fe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdfee":0:"1234567890abcdef01234567890abcdfee":0 +mpi_core_add_if:"fe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdfee":0:"1234567890abcdef01234567890abcdfee":0 mbedtls_mpi_core_add_if #145: 0xfe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc, carry 0) -mbedtls_mpi_core_add_if:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc":0 +mpi_core_add_if:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc":0 mbedtls_mpi_core_add_if #146: 0xfe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfc, carry 1)/(0xfc, carry 1) -mbedtls_mpi_core_add_if:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fc":1:"fc":1 +mpi_core_add_if:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fc":1:"fc":1 mbedtls_mpi_core_add_if #147: 0xfe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfd, carry 1)/(0xfd, carry 1) -mbedtls_mpi_core_add_if:"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fd":1:"fd":1 +mpi_core_add_if:"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fd":1:"fd":1 mbedtls_mpi_core_add_if #148: 0xfe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000000000000000000000000000000000fe, carry 0)/(0x100000000000000000000000000000000000000000000000000000000000000fe, carry 0) -mbedtls_mpi_core_add_if:"fe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000000000fe":0:"100000000000000000000000000000000000000000000000000000000000000fe":0 +mpi_core_add_if:"fe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000000000fe":0:"100000000000000000000000000000000000000000000000000000000000000fe":0 mbedtls_mpi_core_add_if #149: 0xfe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee, carry 0) -mbedtls_mpi_core_add_if:"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":0 +mpi_core_add_if:"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":0 mbedtls_mpi_core_add_if #150: 0xfe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229, carry 0) -mbedtls_mpi_core_add_if:"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":0 +mpi_core_add_if:"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":0 mbedtls_mpi_core_add_if #151: 0xff + 0xff = (0x1fe, carry 0)/(0x1fe, carry 0) -mbedtls_mpi_core_add_if:"ff":"ff":"1fe":0:"1fe":0 +mpi_core_add_if:"ff":"ff":"1fe":0:"1fe":0 mbedtls_mpi_core_add_if #152: 0xff + 0x100 = (0x1ff, carry 0)/(0x1ff, carry 0) -mbedtls_mpi_core_add_if:"ff":"100":"1ff":0:"1ff":0 +mpi_core_add_if:"ff":"100":"1ff":0:"1ff":0 mbedtls_mpi_core_add_if #153: 0xff + 0xff00 = (0xffff, carry 0)/(0xffff, carry 0) -mbedtls_mpi_core_add_if:"ff":"ff00":"ffff":0:"ffff":0 +mpi_core_add_if:"ff":"ff00":"ffff":0:"ffff":0 mbedtls_mpi_core_add_if #154: 0xff + 0xfffe = (0x100fd, carry 0)/(0x100fd, carry 0) -mbedtls_mpi_core_add_if:"ff":"fffe":"100fd":0:"100fd":0 +mpi_core_add_if:"ff":"fffe":"100fd":0:"100fd":0 mbedtls_mpi_core_add_if #155: 0xff + 0xffff = (0x100fe, carry 0)/(0x100fe, carry 0) -mbedtls_mpi_core_add_if:"ff":"ffff":"100fe":0:"100fe":0 +mpi_core_add_if:"ff":"ffff":"100fe":0:"100fe":0 mbedtls_mpi_core_add_if #156: 0xff + 0x10000 = (0x100ff, carry 0)/(0x100ff, carry 0) -mbedtls_mpi_core_add_if:"ff":"10000":"100ff":0:"100ff":0 +mpi_core_add_if:"ff":"10000":"100ff":0:"100ff":0 mbedtls_mpi_core_add_if #157: 0xff + 0xfffffffe = (0xfd, carry 1)/(0x1000000fd, carry 0) -mbedtls_mpi_core_add_if:"ff":"fffffffe":"fd":1:"1000000fd":0 +mpi_core_add_if:"ff":"fffffffe":"fd":1:"1000000fd":0 mbedtls_mpi_core_add_if #158: 0xff + 0xffffffff = (0xfe, carry 1)/(0x1000000fe, carry 0) -mbedtls_mpi_core_add_if:"ff":"ffffffff":"fe":1:"1000000fe":0 +mpi_core_add_if:"ff":"ffffffff":"fe":1:"1000000fe":0 mbedtls_mpi_core_add_if #159: 0xff + 0x100000000 = (0x1000000ff, carry 0)/(0x1000000ff, carry 0) -mbedtls_mpi_core_add_if:"ff":"100000000":"1000000ff":0:"1000000ff":0 +mpi_core_add_if:"ff":"100000000":"1000000ff":0:"1000000ff":0 mbedtls_mpi_core_add_if #160: 0xff + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f807e, carry 0)/(0x1f7f7f7f7f807e, carry 0) -mbedtls_mpi_core_add_if:"ff":"1f7f7f7f7f7f7f":"1f7f7f7f7f807e":0:"1f7f7f7f7f807e":0 +mpi_core_add_if:"ff":"1f7f7f7f7f7f7f":"1f7f7f7f7f807e":0:"1f7f7f7f7f807e":0 mbedtls_mpi_core_add_if #161: 0xff + 0x8000000000000000 = (0x80000000000000ff, carry 0)/(0x80000000000000ff, carry 0) -mbedtls_mpi_core_add_if:"ff":"8000000000000000":"80000000000000ff":0:"80000000000000ff":0 +mpi_core_add_if:"ff":"8000000000000000":"80000000000000ff":0:"80000000000000ff":0 mbedtls_mpi_core_add_if #162: 0xff + 0xfefefefefefefefe = (0xfefefefefefefffd, carry 0)/(0xfefefefefefefffd, carry 0) -mbedtls_mpi_core_add_if:"ff":"fefefefefefefefe":"fefefefefefefffd":0:"fefefefefefefffd":0 +mpi_core_add_if:"ff":"fefefefefefefefe":"fefefefefefefffd":0:"fefefefefefefffd":0 mbedtls_mpi_core_add_if #163: 0xff + 0xfffffffffffffffe = (0xfd, carry 1)/(0xfd, carry 1) -mbedtls_mpi_core_add_if:"ff":"fffffffffffffffe":"fd":1:"fd":1 +mpi_core_add_if:"ff":"fffffffffffffffe":"fd":1:"fd":1 mbedtls_mpi_core_add_if #164: 0xff + 0xffffffffffffffff = (0xfe, carry 1)/(0xfe, carry 1) -mbedtls_mpi_core_add_if:"ff":"ffffffffffffffff":"fe":1:"fe":1 +mpi_core_add_if:"ff":"ffffffffffffffff":"fe":1:"fe":1 mbedtls_mpi_core_add_if #165: 0xff + 0x10000000000000000 = (0x100000000000000ff, carry 0)/(0x100000000000000ff, carry 0) -mbedtls_mpi_core_add_if:"ff":"10000000000000000":"100000000000000ff":0:"100000000000000ff":0 +mpi_core_add_if:"ff":"10000000000000000":"100000000000000ff":0:"100000000000000ff":0 mbedtls_mpi_core_add_if #166: 0xff + 0x1234567890abcdef0 = (0x1234567890abcdfef, carry 0)/(0x1234567890abcdfef, carry 0) -mbedtls_mpi_core_add_if:"ff":"1234567890abcdef0":"1234567890abcdfef":0:"1234567890abcdfef":0 +mpi_core_add_if:"ff":"1234567890abcdef0":"1234567890abcdfef":0:"1234567890abcdfef":0 mbedtls_mpi_core_add_if #167: 0xff + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefffd, carry 0)/(0xfffffffffffffffffefefefefefefffd, carry 0) -mbedtls_mpi_core_add_if:"ff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefffd":0:"fffffffffffffffffefefefefefefffd":0 +mpi_core_add_if:"ff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefffd":0:"fffffffffffffffffefefefefefefffd":0 mbedtls_mpi_core_add_if #168: 0xff + 0xfffffffffffffffffffffffffffffffe = (0xfd, carry 1)/(0xfd, carry 1) -mbedtls_mpi_core_add_if:"ff":"fffffffffffffffffffffffffffffffe":"fd":1:"fd":1 +mpi_core_add_if:"ff":"fffffffffffffffffffffffffffffffe":"fd":1:"fd":1 mbedtls_mpi_core_add_if #169: 0xff + 0xffffffffffffffffffffffffffffffff = (0xfe, carry 1)/(0xfe, carry 1) -mbedtls_mpi_core_add_if:"ff":"ffffffffffffffffffffffffffffffff":"fe":1:"fe":1 +mpi_core_add_if:"ff":"ffffffffffffffffffffffffffffffff":"fe":1:"fe":1 mbedtls_mpi_core_add_if #170: 0xff + 0x100000000000000000000000000000000 = (0x1000000000000000000000000000000ff, carry 0)/(0x1000000000000000000000000000000ff, carry 0) -mbedtls_mpi_core_add_if:"ff":"100000000000000000000000000000000":"1000000000000000000000000000000ff":0:"1000000000000000000000000000000ff":0 +mpi_core_add_if:"ff":"100000000000000000000000000000000":"1000000000000000000000000000000ff":0:"1000000000000000000000000000000ff":0 mbedtls_mpi_core_add_if #171: 0xff + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdfef, carry 0)/(0x1234567890abcdef01234567890abcdfef, carry 0) -mbedtls_mpi_core_add_if:"ff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdfef":0:"1234567890abcdef01234567890abcdfef":0 +mpi_core_add_if:"ff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdfef":0:"1234567890abcdef01234567890abcdfef":0 mbedtls_mpi_core_add_if #172: 0xff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd, carry 0) -mbedtls_mpi_core_add_if:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd":0 +mpi_core_add_if:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd":0 mbedtls_mpi_core_add_if #173: 0xff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfd, carry 1)/(0xfd, carry 1) -mbedtls_mpi_core_add_if:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fd":1:"fd":1 +mpi_core_add_if:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fd":1:"fd":1 mbedtls_mpi_core_add_if #174: 0xff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfe, carry 1)/(0xfe, carry 1) -mbedtls_mpi_core_add_if:"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":1:"fe":1 +mpi_core_add_if:"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":1:"fe":1 mbedtls_mpi_core_add_if #175: 0xff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000000000000000000000000000000000ff, carry 0)/(0x100000000000000000000000000000000000000000000000000000000000000ff, carry 0) -mbedtls_mpi_core_add_if:"ff":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000000000ff":0:"100000000000000000000000000000000000000000000000000000000000000ff":0 +mpi_core_add_if:"ff":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000000000ff":0:"100000000000000000000000000000000000000000000000000000000000000ff":0 mbedtls_mpi_core_add_if #176: 0xff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef, carry 0) -mbedtls_mpi_core_add_if:"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":0 +mpi_core_add_if:"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":0 mbedtls_mpi_core_add_if #177: 0xff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a, carry 0) -mbedtls_mpi_core_add_if:"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":0 +mpi_core_add_if:"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":0 mbedtls_mpi_core_add_if #178: 0x100 + 0x100 = (0x200, carry 0)/(0x200, carry 0) -mbedtls_mpi_core_add_if:"100":"100":"200":0:"200":0 +mpi_core_add_if:"100":"100":"200":0:"200":0 mbedtls_mpi_core_add_if #179: 0x100 + 0xff00 = (0x10000, carry 0)/(0x10000, carry 0) -mbedtls_mpi_core_add_if:"100":"ff00":"10000":0:"10000":0 +mpi_core_add_if:"100":"ff00":"10000":0:"10000":0 mbedtls_mpi_core_add_if #180: 0x100 + 0xfffe = (0x100fe, carry 0)/(0x100fe, carry 0) -mbedtls_mpi_core_add_if:"100":"fffe":"100fe":0:"100fe":0 +mpi_core_add_if:"100":"fffe":"100fe":0:"100fe":0 mbedtls_mpi_core_add_if #181: 0x100 + 0xffff = (0x100ff, carry 0)/(0x100ff, carry 0) -mbedtls_mpi_core_add_if:"100":"ffff":"100ff":0:"100ff":0 +mpi_core_add_if:"100":"ffff":"100ff":0:"100ff":0 mbedtls_mpi_core_add_if #182: 0x100 + 0x10000 = (0x10100, carry 0)/(0x10100, carry 0) -mbedtls_mpi_core_add_if:"100":"10000":"10100":0:"10100":0 +mpi_core_add_if:"100":"10000":"10100":0:"10100":0 mbedtls_mpi_core_add_if #183: 0x100 + 0xfffffffe = (0xfe, carry 1)/(0x1000000fe, carry 0) -mbedtls_mpi_core_add_if:"100":"fffffffe":"fe":1:"1000000fe":0 +mpi_core_add_if:"100":"fffffffe":"fe":1:"1000000fe":0 mbedtls_mpi_core_add_if #184: 0x100 + 0xffffffff = (0xff, carry 1)/(0x1000000ff, carry 0) -mbedtls_mpi_core_add_if:"100":"ffffffff":"ff":1:"1000000ff":0 +mpi_core_add_if:"100":"ffffffff":"ff":1:"1000000ff":0 mbedtls_mpi_core_add_if #185: 0x100 + 0x100000000 = (0x100000100, carry 0)/(0x100000100, carry 0) -mbedtls_mpi_core_add_if:"100":"100000000":"100000100":0:"100000100":0 +mpi_core_add_if:"100":"100000000":"100000100":0:"100000100":0 mbedtls_mpi_core_add_if #186: 0x100 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f807f, carry 0)/(0x1f7f7f7f7f807f, carry 0) -mbedtls_mpi_core_add_if:"100":"1f7f7f7f7f7f7f":"1f7f7f7f7f807f":0:"1f7f7f7f7f807f":0 +mpi_core_add_if:"100":"1f7f7f7f7f7f7f":"1f7f7f7f7f807f":0:"1f7f7f7f7f807f":0 mbedtls_mpi_core_add_if #187: 0x100 + 0x8000000000000000 = (0x8000000000000100, carry 0)/(0x8000000000000100, carry 0) -mbedtls_mpi_core_add_if:"100":"8000000000000000":"8000000000000100":0:"8000000000000100":0 +mpi_core_add_if:"100":"8000000000000000":"8000000000000100":0:"8000000000000100":0 mbedtls_mpi_core_add_if #188: 0x100 + 0xfefefefefefefefe = (0xfefefefefefefffe, carry 0)/(0xfefefefefefefffe, carry 0) -mbedtls_mpi_core_add_if:"100":"fefefefefefefefe":"fefefefefefefffe":0:"fefefefefefefffe":0 +mpi_core_add_if:"100":"fefefefefefefefe":"fefefefefefefffe":0:"fefefefefefefffe":0 mbedtls_mpi_core_add_if #189: 0x100 + 0xfffffffffffffffe = (0xfe, carry 1)/(0xfe, carry 1) -mbedtls_mpi_core_add_if:"100":"fffffffffffffffe":"fe":1:"fe":1 +mpi_core_add_if:"100":"fffffffffffffffe":"fe":1:"fe":1 mbedtls_mpi_core_add_if #190: 0x100 + 0xffffffffffffffff = (0xff, carry 1)/(0xff, carry 1) -mbedtls_mpi_core_add_if:"100":"ffffffffffffffff":"ff":1:"ff":1 +mpi_core_add_if:"100":"ffffffffffffffff":"ff":1:"ff":1 mbedtls_mpi_core_add_if #191: 0x100 + 0x10000000000000000 = (0x10000000000000100, carry 0)/(0x10000000000000100, carry 0) -mbedtls_mpi_core_add_if:"100":"10000000000000000":"10000000000000100":0:"10000000000000100":0 +mpi_core_add_if:"100":"10000000000000000":"10000000000000100":0:"10000000000000100":0 mbedtls_mpi_core_add_if #192: 0x100 + 0x1234567890abcdef0 = (0x1234567890abcdff0, carry 0)/(0x1234567890abcdff0, carry 0) -mbedtls_mpi_core_add_if:"100":"1234567890abcdef0":"1234567890abcdff0":0:"1234567890abcdff0":0 +mpi_core_add_if:"100":"1234567890abcdef0":"1234567890abcdff0":0:"1234567890abcdff0":0 mbedtls_mpi_core_add_if #193: 0x100 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefffe, carry 0)/(0xfffffffffffffffffefefefefefefffe, carry 0) -mbedtls_mpi_core_add_if:"100":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefffe":0:"fffffffffffffffffefefefefefefffe":0 +mpi_core_add_if:"100":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefffe":0:"fffffffffffffffffefefefefefefffe":0 mbedtls_mpi_core_add_if #194: 0x100 + 0xfffffffffffffffffffffffffffffffe = (0xfe, carry 1)/(0xfe, carry 1) -mbedtls_mpi_core_add_if:"100":"fffffffffffffffffffffffffffffffe":"fe":1:"fe":1 +mpi_core_add_if:"100":"fffffffffffffffffffffffffffffffe":"fe":1:"fe":1 mbedtls_mpi_core_add_if #195: 0x100 + 0xffffffffffffffffffffffffffffffff = (0xff, carry 1)/(0xff, carry 1) -mbedtls_mpi_core_add_if:"100":"ffffffffffffffffffffffffffffffff":"ff":1:"ff":1 +mpi_core_add_if:"100":"ffffffffffffffffffffffffffffffff":"ff":1:"ff":1 mbedtls_mpi_core_add_if #196: 0x100 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000000100, carry 0)/(0x100000000000000000000000000000100, carry 0) -mbedtls_mpi_core_add_if:"100":"100000000000000000000000000000000":"100000000000000000000000000000100":0:"100000000000000000000000000000100":0 +mpi_core_add_if:"100":"100000000000000000000000000000000":"100000000000000000000000000000100":0:"100000000000000000000000000000100":0 mbedtls_mpi_core_add_if #197: 0x100 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdff0, carry 0)/(0x1234567890abcdef01234567890abcdff0, carry 0) -mbedtls_mpi_core_add_if:"100":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdff0":0:"1234567890abcdef01234567890abcdff0":0 +mpi_core_add_if:"100":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdff0":0:"1234567890abcdef01234567890abcdff0":0 mbedtls_mpi_core_add_if #198: 0x100 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe, carry 0) -mbedtls_mpi_core_add_if:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe":0 +mpi_core_add_if:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe":0 mbedtls_mpi_core_add_if #199: 0x100 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfe, carry 1)/(0xfe, carry 1) -mbedtls_mpi_core_add_if:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fe":1:"fe":1 +mpi_core_add_if:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fe":1:"fe":1 mbedtls_mpi_core_add_if #200: 0x100 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xff, carry 1)/(0xff, carry 1) -mbedtls_mpi_core_add_if:"100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":1:"ff":1 +mpi_core_add_if:"100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":1:"ff":1 mbedtls_mpi_core_add_if #201: 0x100 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000000100, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000000100, carry 0) -mbedtls_mpi_core_add_if:"100":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000100":0:"10000000000000000000000000000000000000000000000000000000000000100":0 +mpi_core_add_if:"100":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000100":0:"10000000000000000000000000000000000000000000000000000000000000100":0 mbedtls_mpi_core_add_if #202: 0x100 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0, carry 0) -mbedtls_mpi_core_add_if:"100":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0":0 +mpi_core_add_if:"100":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0":0 mbedtls_mpi_core_add_if #203: 0x100 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b, carry 0) -mbedtls_mpi_core_add_if:"100":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b":0 +mpi_core_add_if:"100":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b":0 mbedtls_mpi_core_add_if #204: 0xff00 + 0xff00 = (0x1fe00, carry 0)/(0x1fe00, carry 0) -mbedtls_mpi_core_add_if:"ff00":"ff00":"1fe00":0:"1fe00":0 +mpi_core_add_if:"ff00":"ff00":"1fe00":0:"1fe00":0 mbedtls_mpi_core_add_if #205: 0xff00 + 0xfffe = (0x1fefe, carry 0)/(0x1fefe, carry 0) -mbedtls_mpi_core_add_if:"ff00":"fffe":"1fefe":0:"1fefe":0 +mpi_core_add_if:"ff00":"fffe":"1fefe":0:"1fefe":0 mbedtls_mpi_core_add_if #206: 0xff00 + 0xffff = (0x1feff, carry 0)/(0x1feff, carry 0) -mbedtls_mpi_core_add_if:"ff00":"ffff":"1feff":0:"1feff":0 +mpi_core_add_if:"ff00":"ffff":"1feff":0:"1feff":0 mbedtls_mpi_core_add_if #207: 0xff00 + 0x10000 = (0x1ff00, carry 0)/(0x1ff00, carry 0) -mbedtls_mpi_core_add_if:"ff00":"10000":"1ff00":0:"1ff00":0 +mpi_core_add_if:"ff00":"10000":"1ff00":0:"1ff00":0 mbedtls_mpi_core_add_if #208: 0xff00 + 0xfffffffe = (0xfefe, carry 1)/(0x10000fefe, carry 0) -mbedtls_mpi_core_add_if:"ff00":"fffffffe":"fefe":1:"10000fefe":0 +mpi_core_add_if:"ff00":"fffffffe":"fefe":1:"10000fefe":0 mbedtls_mpi_core_add_if #209: 0xff00 + 0xffffffff = (0xfeff, carry 1)/(0x10000feff, carry 0) -mbedtls_mpi_core_add_if:"ff00":"ffffffff":"feff":1:"10000feff":0 +mpi_core_add_if:"ff00":"ffffffff":"feff":1:"10000feff":0 mbedtls_mpi_core_add_if #210: 0xff00 + 0x100000000 = (0x10000ff00, carry 0)/(0x10000ff00, carry 0) -mbedtls_mpi_core_add_if:"ff00":"100000000":"10000ff00":0:"10000ff00":0 +mpi_core_add_if:"ff00":"100000000":"10000ff00":0:"10000ff00":0 mbedtls_mpi_core_add_if #211: 0xff00 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f807e7f, carry 0)/(0x1f7f7f7f807e7f, carry 0) -mbedtls_mpi_core_add_if:"ff00":"1f7f7f7f7f7f7f":"1f7f7f7f807e7f":0:"1f7f7f7f807e7f":0 +mpi_core_add_if:"ff00":"1f7f7f7f7f7f7f":"1f7f7f7f807e7f":0:"1f7f7f7f807e7f":0 mbedtls_mpi_core_add_if #212: 0xff00 + 0x8000000000000000 = (0x800000000000ff00, carry 0)/(0x800000000000ff00, carry 0) -mbedtls_mpi_core_add_if:"ff00":"8000000000000000":"800000000000ff00":0:"800000000000ff00":0 +mpi_core_add_if:"ff00":"8000000000000000":"800000000000ff00":0:"800000000000ff00":0 mbedtls_mpi_core_add_if #213: 0xff00 + 0xfefefefefefefefe = (0xfefefefefefffdfe, carry 0)/(0xfefefefefefffdfe, carry 0) -mbedtls_mpi_core_add_if:"ff00":"fefefefefefefefe":"fefefefefefffdfe":0:"fefefefefefffdfe":0 +mpi_core_add_if:"ff00":"fefefefefefefefe":"fefefefefefffdfe":0:"fefefefefefffdfe":0 mbedtls_mpi_core_add_if #214: 0xff00 + 0xfffffffffffffffe = (0xfefe, carry 1)/(0xfefe, carry 1) -mbedtls_mpi_core_add_if:"ff00":"fffffffffffffffe":"fefe":1:"fefe":1 +mpi_core_add_if:"ff00":"fffffffffffffffe":"fefe":1:"fefe":1 mbedtls_mpi_core_add_if #215: 0xff00 + 0xffffffffffffffff = (0xfeff, carry 1)/(0xfeff, carry 1) -mbedtls_mpi_core_add_if:"ff00":"ffffffffffffffff":"feff":1:"feff":1 +mpi_core_add_if:"ff00":"ffffffffffffffff":"feff":1:"feff":1 mbedtls_mpi_core_add_if #216: 0xff00 + 0x10000000000000000 = (0x1000000000000ff00, carry 0)/(0x1000000000000ff00, carry 0) -mbedtls_mpi_core_add_if:"ff00":"10000000000000000":"1000000000000ff00":0:"1000000000000ff00":0 +mpi_core_add_if:"ff00":"10000000000000000":"1000000000000ff00":0:"1000000000000ff00":0 mbedtls_mpi_core_add_if #217: 0xff00 + 0x1234567890abcdef0 = (0x1234567890abdddf0, carry 0)/(0x1234567890abdddf0, carry 0) -mbedtls_mpi_core_add_if:"ff00":"1234567890abcdef0":"1234567890abdddf0":0:"1234567890abdddf0":0 +mpi_core_add_if:"ff00":"1234567890abcdef0":"1234567890abdddf0":0:"1234567890abdddf0":0 mbedtls_mpi_core_add_if #218: 0xff00 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefffdfe, carry 0)/(0xfffffffffffffffffefefefefefffdfe, carry 0) -mbedtls_mpi_core_add_if:"ff00":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffdfe":0:"fffffffffffffffffefefefefefffdfe":0 +mpi_core_add_if:"ff00":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffdfe":0:"fffffffffffffffffefefefefefffdfe":0 mbedtls_mpi_core_add_if #219: 0xff00 + 0xfffffffffffffffffffffffffffffffe = (0xfefe, carry 1)/(0xfefe, carry 1) -mbedtls_mpi_core_add_if:"ff00":"fffffffffffffffffffffffffffffffe":"fefe":1:"fefe":1 +mpi_core_add_if:"ff00":"fffffffffffffffffffffffffffffffe":"fefe":1:"fefe":1 mbedtls_mpi_core_add_if #220: 0xff00 + 0xffffffffffffffffffffffffffffffff = (0xfeff, carry 1)/(0xfeff, carry 1) -mbedtls_mpi_core_add_if:"ff00":"ffffffffffffffffffffffffffffffff":"feff":1:"feff":1 +mpi_core_add_if:"ff00":"ffffffffffffffffffffffffffffffff":"feff":1:"feff":1 mbedtls_mpi_core_add_if #221: 0xff00 + 0x100000000000000000000000000000000 = (0x10000000000000000000000000000ff00, carry 0)/(0x10000000000000000000000000000ff00, carry 0) -mbedtls_mpi_core_add_if:"ff00":"100000000000000000000000000000000":"10000000000000000000000000000ff00":0:"10000000000000000000000000000ff00":0 +mpi_core_add_if:"ff00":"100000000000000000000000000000000":"10000000000000000000000000000ff00":0:"10000000000000000000000000000ff00":0 mbedtls_mpi_core_add_if #222: 0xff00 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abdddf0, carry 0)/(0x1234567890abcdef01234567890abdddf0, carry 0) -mbedtls_mpi_core_add_if:"ff00":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abdddf0":0:"1234567890abcdef01234567890abdddf0":0 +mpi_core_add_if:"ff00":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abdddf0":0:"1234567890abcdef01234567890abdddf0":0 mbedtls_mpi_core_add_if #223: 0xff00 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe, carry 0) -mbedtls_mpi_core_add_if:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe":0 +mpi_core_add_if:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe":0 mbedtls_mpi_core_add_if #224: 0xff00 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfefe, carry 1)/(0xfefe, carry 1) -mbedtls_mpi_core_add_if:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefe":1:"fefe":1 +mpi_core_add_if:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefe":1:"fefe":1 mbedtls_mpi_core_add_if #225: 0xff00 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfeff, carry 1)/(0xfeff, carry 1) -mbedtls_mpi_core_add_if:"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"feff":1:"feff":1 +mpi_core_add_if:"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"feff":1:"feff":1 mbedtls_mpi_core_add_if #226: 0xff00 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000000000000000ff00, carry 0)/(0x1000000000000000000000000000000000000000000000000000000000000ff00, carry 0) -mbedtls_mpi_core_add_if:"ff00":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000ff00":0:"1000000000000000000000000000000000000000000000000000000000000ff00":0 +mpi_core_add_if:"ff00":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000ff00":0:"1000000000000000000000000000000000000000000000000000000000000ff00":0 mbedtls_mpi_core_add_if #227: 0xff00 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0, carry 0) -mbedtls_mpi_core_add_if:"ff00":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0":0 +mpi_core_add_if:"ff00":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0":0 mbedtls_mpi_core_add_if #228: 0xff00 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b, carry 0) -mbedtls_mpi_core_add_if:"ff00":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b":0 +mpi_core_add_if:"ff00":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b":0 mbedtls_mpi_core_add_if #229: 0xfffe + 0xfffe = (0x1fffc, carry 0)/(0x1fffc, carry 0) -mbedtls_mpi_core_add_if:"fffe":"fffe":"1fffc":0:"1fffc":0 +mpi_core_add_if:"fffe":"fffe":"1fffc":0:"1fffc":0 mbedtls_mpi_core_add_if #230: 0xfffe + 0xffff = (0x1fffd, carry 0)/(0x1fffd, carry 0) -mbedtls_mpi_core_add_if:"fffe":"ffff":"1fffd":0:"1fffd":0 +mpi_core_add_if:"fffe":"ffff":"1fffd":0:"1fffd":0 mbedtls_mpi_core_add_if #231: 0xfffe + 0x10000 = (0x1fffe, carry 0)/(0x1fffe, carry 0) -mbedtls_mpi_core_add_if:"fffe":"10000":"1fffe":0:"1fffe":0 +mpi_core_add_if:"fffe":"10000":"1fffe":0:"1fffe":0 mbedtls_mpi_core_add_if #232: 0xfffe + 0xfffffffe = (0xfffc, carry 1)/(0x10000fffc, carry 0) -mbedtls_mpi_core_add_if:"fffe":"fffffffe":"fffc":1:"10000fffc":0 +mpi_core_add_if:"fffe":"fffffffe":"fffc":1:"10000fffc":0 mbedtls_mpi_core_add_if #233: 0xfffe + 0xffffffff = (0xfffd, carry 1)/(0x10000fffd, carry 0) -mbedtls_mpi_core_add_if:"fffe":"ffffffff":"fffd":1:"10000fffd":0 +mpi_core_add_if:"fffe":"ffffffff":"fffd":1:"10000fffd":0 mbedtls_mpi_core_add_if #234: 0xfffe + 0x100000000 = (0x10000fffe, carry 0)/(0x10000fffe, carry 0) -mbedtls_mpi_core_add_if:"fffe":"100000000":"10000fffe":0:"10000fffe":0 +mpi_core_add_if:"fffe":"100000000":"10000fffe":0:"10000fffe":0 mbedtls_mpi_core_add_if #235: 0xfffe + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f807f7d, carry 0)/(0x1f7f7f7f807f7d, carry 0) -mbedtls_mpi_core_add_if:"fffe":"1f7f7f7f7f7f7f":"1f7f7f7f807f7d":0:"1f7f7f7f807f7d":0 +mpi_core_add_if:"fffe":"1f7f7f7f7f7f7f":"1f7f7f7f807f7d":0:"1f7f7f7f807f7d":0 mbedtls_mpi_core_add_if #236: 0xfffe + 0x8000000000000000 = (0x800000000000fffe, carry 0)/(0x800000000000fffe, carry 0) -mbedtls_mpi_core_add_if:"fffe":"8000000000000000":"800000000000fffe":0:"800000000000fffe":0 +mpi_core_add_if:"fffe":"8000000000000000":"800000000000fffe":0:"800000000000fffe":0 mbedtls_mpi_core_add_if #237: 0xfffe + 0xfefefefefefefefe = (0xfefefefefefffefc, carry 0)/(0xfefefefefefffefc, carry 0) -mbedtls_mpi_core_add_if:"fffe":"fefefefefefefefe":"fefefefefefffefc":0:"fefefefefefffefc":0 +mpi_core_add_if:"fffe":"fefefefefefefefe":"fefefefefefffefc":0:"fefefefefefffefc":0 mbedtls_mpi_core_add_if #238: 0xfffe + 0xfffffffffffffffe = (0xfffc, carry 1)/(0xfffc, carry 1) -mbedtls_mpi_core_add_if:"fffe":"fffffffffffffffe":"fffc":1:"fffc":1 +mpi_core_add_if:"fffe":"fffffffffffffffe":"fffc":1:"fffc":1 mbedtls_mpi_core_add_if #239: 0xfffe + 0xffffffffffffffff = (0xfffd, carry 1)/(0xfffd, carry 1) -mbedtls_mpi_core_add_if:"fffe":"ffffffffffffffff":"fffd":1:"fffd":1 +mpi_core_add_if:"fffe":"ffffffffffffffff":"fffd":1:"fffd":1 mbedtls_mpi_core_add_if #240: 0xfffe + 0x10000000000000000 = (0x1000000000000fffe, carry 0)/(0x1000000000000fffe, carry 0) -mbedtls_mpi_core_add_if:"fffe":"10000000000000000":"1000000000000fffe":0:"1000000000000fffe":0 +mpi_core_add_if:"fffe":"10000000000000000":"1000000000000fffe":0:"1000000000000fffe":0 mbedtls_mpi_core_add_if #241: 0xfffe + 0x1234567890abcdef0 = (0x1234567890abddeee, carry 0)/(0x1234567890abddeee, carry 0) -mbedtls_mpi_core_add_if:"fffe":"1234567890abcdef0":"1234567890abddeee":0:"1234567890abddeee":0 +mpi_core_add_if:"fffe":"1234567890abcdef0":"1234567890abddeee":0:"1234567890abddeee":0 mbedtls_mpi_core_add_if #242: 0xfffe + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefffefc, carry 0)/(0xfffffffffffffffffefefefefefffefc, carry 0) -mbedtls_mpi_core_add_if:"fffe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffefc":0:"fffffffffffffffffefefefefefffefc":0 +mpi_core_add_if:"fffe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffefc":0:"fffffffffffffffffefefefefefffefc":0 mbedtls_mpi_core_add_if #243: 0xfffe + 0xfffffffffffffffffffffffffffffffe = (0xfffc, carry 1)/(0xfffc, carry 1) -mbedtls_mpi_core_add_if:"fffe":"fffffffffffffffffffffffffffffffe":"fffc":1:"fffc":1 +mpi_core_add_if:"fffe":"fffffffffffffffffffffffffffffffe":"fffc":1:"fffc":1 mbedtls_mpi_core_add_if #244: 0xfffe + 0xffffffffffffffffffffffffffffffff = (0xfffd, carry 1)/(0xfffd, carry 1) -mbedtls_mpi_core_add_if:"fffe":"ffffffffffffffffffffffffffffffff":"fffd":1:"fffd":1 +mpi_core_add_if:"fffe":"ffffffffffffffffffffffffffffffff":"fffd":1:"fffd":1 mbedtls_mpi_core_add_if #245: 0xfffe + 0x100000000000000000000000000000000 = (0x10000000000000000000000000000fffe, carry 0)/(0x10000000000000000000000000000fffe, carry 0) -mbedtls_mpi_core_add_if:"fffe":"100000000000000000000000000000000":"10000000000000000000000000000fffe":0:"10000000000000000000000000000fffe":0 +mpi_core_add_if:"fffe":"100000000000000000000000000000000":"10000000000000000000000000000fffe":0:"10000000000000000000000000000fffe":0 mbedtls_mpi_core_add_if #246: 0xfffe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abddeee, carry 0)/(0x1234567890abcdef01234567890abddeee, carry 0) -mbedtls_mpi_core_add_if:"fffe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abddeee":0:"1234567890abcdef01234567890abddeee":0 +mpi_core_add_if:"fffe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abddeee":0:"1234567890abcdef01234567890abddeee":0 mbedtls_mpi_core_add_if #247: 0xfffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc, carry 0) -mbedtls_mpi_core_add_if:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc":0 +mpi_core_add_if:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc":0 mbedtls_mpi_core_add_if #248: 0xfffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffc, carry 1)/(0xfffc, carry 1) -mbedtls_mpi_core_add_if:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffc":1:"fffc":1 +mpi_core_add_if:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffc":1:"fffc":1 mbedtls_mpi_core_add_if #249: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffd, carry 1)/(0xfffd, carry 1) -mbedtls_mpi_core_add_if:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffd":1:"fffd":1 +mpi_core_add_if:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffd":1:"fffd":1 mbedtls_mpi_core_add_if #250: 0xfffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000000000000000fffe, carry 0)/(0x1000000000000000000000000000000000000000000000000000000000000fffe, carry 0) -mbedtls_mpi_core_add_if:"fffe":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000fffe":0:"1000000000000000000000000000000000000000000000000000000000000fffe":0 +mpi_core_add_if:"fffe":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000fffe":0:"1000000000000000000000000000000000000000000000000000000000000fffe":0 mbedtls_mpi_core_add_if #251: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee, carry 0) -mbedtls_mpi_core_add_if:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee":0 +mpi_core_add_if:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee":0 mbedtls_mpi_core_add_if #252: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129, carry 0) -mbedtls_mpi_core_add_if:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129":0 +mpi_core_add_if:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129":0 mbedtls_mpi_core_add_if #253: 0xffff + 0xffff = (0x1fffe, carry 0)/(0x1fffe, carry 0) -mbedtls_mpi_core_add_if:"ffff":"ffff":"1fffe":0:"1fffe":0 +mpi_core_add_if:"ffff":"ffff":"1fffe":0:"1fffe":0 mbedtls_mpi_core_add_if #254: 0xffff + 0x10000 = (0x1ffff, carry 0)/(0x1ffff, carry 0) -mbedtls_mpi_core_add_if:"ffff":"10000":"1ffff":0:"1ffff":0 +mpi_core_add_if:"ffff":"10000":"1ffff":0:"1ffff":0 mbedtls_mpi_core_add_if #255: 0xffff + 0xfffffffe = (0xfffd, carry 1)/(0x10000fffd, carry 0) -mbedtls_mpi_core_add_if:"ffff":"fffffffe":"fffd":1:"10000fffd":0 +mpi_core_add_if:"ffff":"fffffffe":"fffd":1:"10000fffd":0 mbedtls_mpi_core_add_if #256: 0xffff + 0xffffffff = (0xfffe, carry 1)/(0x10000fffe, carry 0) -mbedtls_mpi_core_add_if:"ffff":"ffffffff":"fffe":1:"10000fffe":0 +mpi_core_add_if:"ffff":"ffffffff":"fffe":1:"10000fffe":0 mbedtls_mpi_core_add_if #257: 0xffff + 0x100000000 = (0x10000ffff, carry 0)/(0x10000ffff, carry 0) -mbedtls_mpi_core_add_if:"ffff":"100000000":"10000ffff":0:"10000ffff":0 +mpi_core_add_if:"ffff":"100000000":"10000ffff":0:"10000ffff":0 mbedtls_mpi_core_add_if #258: 0xffff + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f807f7e, carry 0)/(0x1f7f7f7f807f7e, carry 0) -mbedtls_mpi_core_add_if:"ffff":"1f7f7f7f7f7f7f":"1f7f7f7f807f7e":0:"1f7f7f7f807f7e":0 +mpi_core_add_if:"ffff":"1f7f7f7f7f7f7f":"1f7f7f7f807f7e":0:"1f7f7f7f807f7e":0 mbedtls_mpi_core_add_if #259: 0xffff + 0x8000000000000000 = (0x800000000000ffff, carry 0)/(0x800000000000ffff, carry 0) -mbedtls_mpi_core_add_if:"ffff":"8000000000000000":"800000000000ffff":0:"800000000000ffff":0 +mpi_core_add_if:"ffff":"8000000000000000":"800000000000ffff":0:"800000000000ffff":0 mbedtls_mpi_core_add_if #260: 0xffff + 0xfefefefefefefefe = (0xfefefefefefffefd, carry 0)/(0xfefefefefefffefd, carry 0) -mbedtls_mpi_core_add_if:"ffff":"fefefefefefefefe":"fefefefefefffefd":0:"fefefefefefffefd":0 +mpi_core_add_if:"ffff":"fefefefefefefefe":"fefefefefefffefd":0:"fefefefefefffefd":0 mbedtls_mpi_core_add_if #261: 0xffff + 0xfffffffffffffffe = (0xfffd, carry 1)/(0xfffd, carry 1) -mbedtls_mpi_core_add_if:"ffff":"fffffffffffffffe":"fffd":1:"fffd":1 +mpi_core_add_if:"ffff":"fffffffffffffffe":"fffd":1:"fffd":1 mbedtls_mpi_core_add_if #262: 0xffff + 0xffffffffffffffff = (0xfffe, carry 1)/(0xfffe, carry 1) -mbedtls_mpi_core_add_if:"ffff":"ffffffffffffffff":"fffe":1:"fffe":1 +mpi_core_add_if:"ffff":"ffffffffffffffff":"fffe":1:"fffe":1 mbedtls_mpi_core_add_if #263: 0xffff + 0x10000000000000000 = (0x1000000000000ffff, carry 0)/(0x1000000000000ffff, carry 0) -mbedtls_mpi_core_add_if:"ffff":"10000000000000000":"1000000000000ffff":0:"1000000000000ffff":0 +mpi_core_add_if:"ffff":"10000000000000000":"1000000000000ffff":0:"1000000000000ffff":0 mbedtls_mpi_core_add_if #264: 0xffff + 0x1234567890abcdef0 = (0x1234567890abddeef, carry 0)/(0x1234567890abddeef, carry 0) -mbedtls_mpi_core_add_if:"ffff":"1234567890abcdef0":"1234567890abddeef":0:"1234567890abddeef":0 +mpi_core_add_if:"ffff":"1234567890abcdef0":"1234567890abddeef":0:"1234567890abddeef":0 mbedtls_mpi_core_add_if #265: 0xffff + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefffefd, carry 0)/(0xfffffffffffffffffefefefefefffefd, carry 0) -mbedtls_mpi_core_add_if:"ffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffefd":0:"fffffffffffffffffefefefefefffefd":0 +mpi_core_add_if:"ffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffefd":0:"fffffffffffffffffefefefefefffefd":0 mbedtls_mpi_core_add_if #266: 0xffff + 0xfffffffffffffffffffffffffffffffe = (0xfffd, carry 1)/(0xfffd, carry 1) -mbedtls_mpi_core_add_if:"ffff":"fffffffffffffffffffffffffffffffe":"fffd":1:"fffd":1 +mpi_core_add_if:"ffff":"fffffffffffffffffffffffffffffffe":"fffd":1:"fffd":1 mbedtls_mpi_core_add_if #267: 0xffff + 0xffffffffffffffffffffffffffffffff = (0xfffe, carry 1)/(0xfffe, carry 1) -mbedtls_mpi_core_add_if:"ffff":"ffffffffffffffffffffffffffffffff":"fffe":1:"fffe":1 +mpi_core_add_if:"ffff":"ffffffffffffffffffffffffffffffff":"fffe":1:"fffe":1 mbedtls_mpi_core_add_if #268: 0xffff + 0x100000000000000000000000000000000 = (0x10000000000000000000000000000ffff, carry 0)/(0x10000000000000000000000000000ffff, carry 0) -mbedtls_mpi_core_add_if:"ffff":"100000000000000000000000000000000":"10000000000000000000000000000ffff":0:"10000000000000000000000000000ffff":0 +mpi_core_add_if:"ffff":"100000000000000000000000000000000":"10000000000000000000000000000ffff":0:"10000000000000000000000000000ffff":0 mbedtls_mpi_core_add_if #269: 0xffff + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abddeef, carry 0)/(0x1234567890abcdef01234567890abddeef, carry 0) -mbedtls_mpi_core_add_if:"ffff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abddeef":0:"1234567890abcdef01234567890abddeef":0 +mpi_core_add_if:"ffff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abddeef":0:"1234567890abcdef01234567890abddeef":0 mbedtls_mpi_core_add_if #270: 0xffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd, carry 0) -mbedtls_mpi_core_add_if:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd":0 +mpi_core_add_if:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd":0 mbedtls_mpi_core_add_if #271: 0xffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffd, carry 1)/(0xfffd, carry 1) -mbedtls_mpi_core_add_if:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffd":1:"fffd":1 +mpi_core_add_if:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffd":1:"fffd":1 mbedtls_mpi_core_add_if #272: 0xffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffe, carry 1)/(0xfffe, carry 1) -mbedtls_mpi_core_add_if:"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":1:"fffe":1 +mpi_core_add_if:"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":1:"fffe":1 mbedtls_mpi_core_add_if #273: 0xffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000000000000000ffff, carry 0)/(0x1000000000000000000000000000000000000000000000000000000000000ffff, carry 0) -mbedtls_mpi_core_add_if:"ffff":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000ffff":0:"1000000000000000000000000000000000000000000000000000000000000ffff":0 +mpi_core_add_if:"ffff":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000ffff":0:"1000000000000000000000000000000000000000000000000000000000000ffff":0 mbedtls_mpi_core_add_if #274: 0xffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef, carry 0) -mbedtls_mpi_core_add_if:"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":0 +mpi_core_add_if:"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":0 mbedtls_mpi_core_add_if #275: 0xffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a, carry 0) -mbedtls_mpi_core_add_if:"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":0 +mpi_core_add_if:"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":0 mbedtls_mpi_core_add_if #276: 0x10000 + 0x10000 = (0x20000, carry 0)/(0x20000, carry 0) -mbedtls_mpi_core_add_if:"10000":"10000":"20000":0:"20000":0 +mpi_core_add_if:"10000":"10000":"20000":0:"20000":0 mbedtls_mpi_core_add_if #277: 0x10000 + 0xfffffffe = (0xfffe, carry 1)/(0x10000fffe, carry 0) -mbedtls_mpi_core_add_if:"10000":"fffffffe":"fffe":1:"10000fffe":0 +mpi_core_add_if:"10000":"fffffffe":"fffe":1:"10000fffe":0 mbedtls_mpi_core_add_if #278: 0x10000 + 0xffffffff = (0xffff, carry 1)/(0x10000ffff, carry 0) -mbedtls_mpi_core_add_if:"10000":"ffffffff":"ffff":1:"10000ffff":0 +mpi_core_add_if:"10000":"ffffffff":"ffff":1:"10000ffff":0 mbedtls_mpi_core_add_if #279: 0x10000 + 0x100000000 = (0x100010000, carry 0)/(0x100010000, carry 0) -mbedtls_mpi_core_add_if:"10000":"100000000":"100010000":0:"100010000":0 +mpi_core_add_if:"10000":"100000000":"100010000":0:"100010000":0 mbedtls_mpi_core_add_if #280: 0x10000 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f807f7f, carry 0)/(0x1f7f7f7f807f7f, carry 0) -mbedtls_mpi_core_add_if:"10000":"1f7f7f7f7f7f7f":"1f7f7f7f807f7f":0:"1f7f7f7f807f7f":0 +mpi_core_add_if:"10000":"1f7f7f7f7f7f7f":"1f7f7f7f807f7f":0:"1f7f7f7f807f7f":0 mbedtls_mpi_core_add_if #281: 0x10000 + 0x8000000000000000 = (0x8000000000010000, carry 0)/(0x8000000000010000, carry 0) -mbedtls_mpi_core_add_if:"10000":"8000000000000000":"8000000000010000":0:"8000000000010000":0 +mpi_core_add_if:"10000":"8000000000000000":"8000000000010000":0:"8000000000010000":0 mbedtls_mpi_core_add_if #282: 0x10000 + 0xfefefefefefefefe = (0xfefefefefefffefe, carry 0)/(0xfefefefefefffefe, carry 0) -mbedtls_mpi_core_add_if:"10000":"fefefefefefefefe":"fefefefefefffefe":0:"fefefefefefffefe":0 +mpi_core_add_if:"10000":"fefefefefefefefe":"fefefefefefffefe":0:"fefefefefefffefe":0 mbedtls_mpi_core_add_if #283: 0x10000 + 0xfffffffffffffffe = (0xfffe, carry 1)/(0xfffe, carry 1) -mbedtls_mpi_core_add_if:"10000":"fffffffffffffffe":"fffe":1:"fffe":1 +mpi_core_add_if:"10000":"fffffffffffffffe":"fffe":1:"fffe":1 mbedtls_mpi_core_add_if #284: 0x10000 + 0xffffffffffffffff = (0xffff, carry 1)/(0xffff, carry 1) -mbedtls_mpi_core_add_if:"10000":"ffffffffffffffff":"ffff":1:"ffff":1 +mpi_core_add_if:"10000":"ffffffffffffffff":"ffff":1:"ffff":1 mbedtls_mpi_core_add_if #285: 0x10000 + 0x10000000000000000 = (0x10000000000010000, carry 0)/(0x10000000000010000, carry 0) -mbedtls_mpi_core_add_if:"10000":"10000000000000000":"10000000000010000":0:"10000000000010000":0 +mpi_core_add_if:"10000":"10000000000000000":"10000000000010000":0:"10000000000010000":0 mbedtls_mpi_core_add_if #286: 0x10000 + 0x1234567890abcdef0 = (0x1234567890abddef0, carry 0)/(0x1234567890abddef0, carry 0) -mbedtls_mpi_core_add_if:"10000":"1234567890abcdef0":"1234567890abddef0":0:"1234567890abddef0":0 +mpi_core_add_if:"10000":"1234567890abcdef0":"1234567890abddef0":0:"1234567890abddef0":0 mbedtls_mpi_core_add_if #287: 0x10000 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefffefe, carry 0)/(0xfffffffffffffffffefefefefefffefe, carry 0) -mbedtls_mpi_core_add_if:"10000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffefe":0:"fffffffffffffffffefefefefefffefe":0 +mpi_core_add_if:"10000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffefe":0:"fffffffffffffffffefefefefefffefe":0 mbedtls_mpi_core_add_if #288: 0x10000 + 0xfffffffffffffffffffffffffffffffe = (0xfffe, carry 1)/(0xfffe, carry 1) -mbedtls_mpi_core_add_if:"10000":"fffffffffffffffffffffffffffffffe":"fffe":1:"fffe":1 +mpi_core_add_if:"10000":"fffffffffffffffffffffffffffffffe":"fffe":1:"fffe":1 mbedtls_mpi_core_add_if #289: 0x10000 + 0xffffffffffffffffffffffffffffffff = (0xffff, carry 1)/(0xffff, carry 1) -mbedtls_mpi_core_add_if:"10000":"ffffffffffffffffffffffffffffffff":"ffff":1:"ffff":1 +mpi_core_add_if:"10000":"ffffffffffffffffffffffffffffffff":"ffff":1:"ffff":1 mbedtls_mpi_core_add_if #290: 0x10000 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000010000, carry 0)/(0x100000000000000000000000000010000, carry 0) -mbedtls_mpi_core_add_if:"10000":"100000000000000000000000000000000":"100000000000000000000000000010000":0:"100000000000000000000000000010000":0 +mpi_core_add_if:"10000":"100000000000000000000000000000000":"100000000000000000000000000010000":0:"100000000000000000000000000010000":0 mbedtls_mpi_core_add_if #291: 0x10000 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abddef0, carry 0)/(0x1234567890abcdef01234567890abddef0, carry 0) -mbedtls_mpi_core_add_if:"10000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abddef0":0:"1234567890abcdef01234567890abddef0":0 +mpi_core_add_if:"10000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abddef0":0:"1234567890abcdef01234567890abddef0":0 mbedtls_mpi_core_add_if #292: 0x10000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe, carry 0) -mbedtls_mpi_core_add_if:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe":0 +mpi_core_add_if:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe":0 mbedtls_mpi_core_add_if #293: 0x10000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffe, carry 1)/(0xfffe, carry 1) -mbedtls_mpi_core_add_if:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffe":1:"fffe":1 +mpi_core_add_if:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffe":1:"fffe":1 mbedtls_mpi_core_add_if #294: 0x10000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffff, carry 1)/(0xffff, carry 1) -mbedtls_mpi_core_add_if:"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":1:"ffff":1 +mpi_core_add_if:"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":1:"ffff":1 mbedtls_mpi_core_add_if #295: 0x10000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000010000, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000010000, carry 0) -mbedtls_mpi_core_add_if:"10000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000010000":0:"10000000000000000000000000000000000000000000000000000000000010000":0 +mpi_core_add_if:"10000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000010000":0:"10000000000000000000000000000000000000000000000000000000000010000":0 mbedtls_mpi_core_add_if #296: 0x10000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0, carry 0) -mbedtls_mpi_core_add_if:"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":0 +mpi_core_add_if:"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":0 mbedtls_mpi_core_add_if #297: 0x10000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b, carry 0) -mbedtls_mpi_core_add_if:"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":0 +mpi_core_add_if:"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":0 mbedtls_mpi_core_add_if #298: 0xfffffffe + 0xfffffffe = (0xfffffffc, carry 1)/(0x1fffffffc, carry 0) -mbedtls_mpi_core_add_if:"fffffffe":"fffffffe":"fffffffc":1:"1fffffffc":0 +mpi_core_add_if:"fffffffe":"fffffffe":"fffffffc":1:"1fffffffc":0 mbedtls_mpi_core_add_if #299: 0xfffffffe + 0xffffffff = (0xfffffffd, carry 1)/(0x1fffffffd, carry 0) -mbedtls_mpi_core_add_if:"fffffffe":"ffffffff":"fffffffd":1:"1fffffffd":0 +mpi_core_add_if:"fffffffe":"ffffffff":"fffffffd":1:"1fffffffd":0 mbedtls_mpi_core_add_if #300: 0xfffffffe + 0x100000000 = (0x1fffffffe, carry 0)/(0x1fffffffe, carry 0) -mbedtls_mpi_core_add_if:"fffffffe":"100000000":"1fffffffe":0:"1fffffffe":0 +mpi_core_add_if:"fffffffe":"100000000":"1fffffffe":0:"1fffffffe":0 mbedtls_mpi_core_add_if #301: 0xfffffffe + 0x1f7f7f7f7f7f7f = (0x1f7f807f7f7f7d, carry 0)/(0x1f7f807f7f7f7d, carry 0) -mbedtls_mpi_core_add_if:"fffffffe":"1f7f7f7f7f7f7f":"1f7f807f7f7f7d":0:"1f7f807f7f7f7d":0 +mpi_core_add_if:"fffffffe":"1f7f7f7f7f7f7f":"1f7f807f7f7f7d":0:"1f7f807f7f7f7d":0 mbedtls_mpi_core_add_if #302: 0xfffffffe + 0x8000000000000000 = (0x80000000fffffffe, carry 0)/(0x80000000fffffffe, carry 0) -mbedtls_mpi_core_add_if:"fffffffe":"8000000000000000":"80000000fffffffe":0:"80000000fffffffe":0 +mpi_core_add_if:"fffffffe":"8000000000000000":"80000000fffffffe":0:"80000000fffffffe":0 mbedtls_mpi_core_add_if #303: 0xfffffffe + 0xfefefefefefefefe = (0xfefefefffefefefc, carry 0)/(0xfefefefffefefefc, carry 0) -mbedtls_mpi_core_add_if:"fffffffe":"fefefefefefefefe":"fefefefffefefefc":0:"fefefefffefefefc":0 +mpi_core_add_if:"fffffffe":"fefefefefefefefe":"fefefefffefefefc":0:"fefefefffefefefc":0 mbedtls_mpi_core_add_if #304: 0xfffffffe + 0xfffffffffffffffe = (0xfffffffc, carry 1)/(0xfffffffc, carry 1) -mbedtls_mpi_core_add_if:"fffffffe":"fffffffffffffffe":"fffffffc":1:"fffffffc":1 +mpi_core_add_if:"fffffffe":"fffffffffffffffe":"fffffffc":1:"fffffffc":1 mbedtls_mpi_core_add_if #305: 0xfffffffe + 0xffffffffffffffff = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mbedtls_mpi_core_add_if:"fffffffe":"ffffffffffffffff":"fffffffd":1:"fffffffd":1 +mpi_core_add_if:"fffffffe":"ffffffffffffffff":"fffffffd":1:"fffffffd":1 mbedtls_mpi_core_add_if #306: 0xfffffffe + 0x10000000000000000 = (0x100000000fffffffe, carry 0)/(0x100000000fffffffe, carry 0) -mbedtls_mpi_core_add_if:"fffffffe":"10000000000000000":"100000000fffffffe":0:"100000000fffffffe":0 +mpi_core_add_if:"fffffffe":"10000000000000000":"100000000fffffffe":0:"100000000fffffffe":0 mbedtls_mpi_core_add_if #307: 0xfffffffe + 0x1234567890abcdef0 = (0x12345678a0abcdeee, carry 0)/(0x12345678a0abcdeee, carry 0) -mbedtls_mpi_core_add_if:"fffffffe":"1234567890abcdef0":"12345678a0abcdeee":0:"12345678a0abcdeee":0 +mpi_core_add_if:"fffffffe":"1234567890abcdef0":"12345678a0abcdeee":0:"12345678a0abcdeee":0 mbedtls_mpi_core_add_if #308: 0xfffffffe + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefffefefefc, carry 0)/(0xfffffffffffffffffefefefffefefefc, carry 0) -mbedtls_mpi_core_add_if:"fffffffe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefffefefefc":0:"fffffffffffffffffefefefffefefefc":0 +mpi_core_add_if:"fffffffe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefffefefefc":0:"fffffffffffffffffefefefffefefefc":0 mbedtls_mpi_core_add_if #309: 0xfffffffe + 0xfffffffffffffffffffffffffffffffe = (0xfffffffc, carry 1)/(0xfffffffc, carry 1) -mbedtls_mpi_core_add_if:"fffffffe":"fffffffffffffffffffffffffffffffe":"fffffffc":1:"fffffffc":1 +mpi_core_add_if:"fffffffe":"fffffffffffffffffffffffffffffffe":"fffffffc":1:"fffffffc":1 mbedtls_mpi_core_add_if #310: 0xfffffffe + 0xffffffffffffffffffffffffffffffff = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mbedtls_mpi_core_add_if:"fffffffe":"ffffffffffffffffffffffffffffffff":"fffffffd":1:"fffffffd":1 +mpi_core_add_if:"fffffffe":"ffffffffffffffffffffffffffffffff":"fffffffd":1:"fffffffd":1 mbedtls_mpi_core_add_if #311: 0xfffffffe + 0x100000000000000000000000000000000 = (0x1000000000000000000000000fffffffe, carry 0)/(0x1000000000000000000000000fffffffe, carry 0) -mbedtls_mpi_core_add_if:"fffffffe":"100000000000000000000000000000000":"1000000000000000000000000fffffffe":0:"1000000000000000000000000fffffffe":0 +mpi_core_add_if:"fffffffe":"100000000000000000000000000000000":"1000000000000000000000000fffffffe":0:"1000000000000000000000000fffffffe":0 mbedtls_mpi_core_add_if #312: 0xfffffffe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef012345678a0abcdeee, carry 0)/(0x1234567890abcdef012345678a0abcdeee, carry 0) -mbedtls_mpi_core_add_if:"fffffffe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012345678a0abcdeee":0:"1234567890abcdef012345678a0abcdeee":0 +mpi_core_add_if:"fffffffe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012345678a0abcdeee":0:"1234567890abcdef012345678a0abcdeee":0 mbedtls_mpi_core_add_if #313: 0xfffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc, carry 0) -mbedtls_mpi_core_add_if:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc":0 +mpi_core_add_if:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc":0 mbedtls_mpi_core_add_if #314: 0xfffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffc, carry 1)/(0xfffffffc, carry 1) -mbedtls_mpi_core_add_if:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffc":1:"fffffffc":1 +mpi_core_add_if:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffc":1:"fffffffc":1 mbedtls_mpi_core_add_if #315: 0xfffffffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mbedtls_mpi_core_add_if:"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffd":1:"fffffffd":1 +mpi_core_add_if:"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffd":1:"fffffffd":1 mbedtls_mpi_core_add_if #316: 0xfffffffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000000000000000000000000000fffffffe, carry 0)/(0x100000000000000000000000000000000000000000000000000000000fffffffe, carry 0) -mbedtls_mpi_core_add_if:"fffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000fffffffe":0:"100000000000000000000000000000000000000000000000000000000fffffffe":0 +mpi_core_add_if:"fffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000fffffffe":0:"100000000000000000000000000000000000000000000000000000000fffffffe":0 mbedtls_mpi_core_add_if #317: 0xfffffffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee, carry 0) -mbedtls_mpi_core_add_if:"fffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee":0:"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee":0 +mpi_core_add_if:"fffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee":0:"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee":0 mbedtls_mpi_core_add_if #318: 0xfffffffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129, carry 0) -mbedtls_mpi_core_add_if:"fffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129":0 +mpi_core_add_if:"fffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129":0 mbedtls_mpi_core_add_if #319: 0xffffffff + 0xffffffff = (0xfffffffe, carry 1)/(0x1fffffffe, carry 0) -mbedtls_mpi_core_add_if:"ffffffff":"ffffffff":"fffffffe":1:"1fffffffe":0 +mpi_core_add_if:"ffffffff":"ffffffff":"fffffffe":1:"1fffffffe":0 mbedtls_mpi_core_add_if #320: 0xffffffff + 0x100000000 = (0x1ffffffff, carry 0)/(0x1ffffffff, carry 0) -mbedtls_mpi_core_add_if:"ffffffff":"100000000":"1ffffffff":0:"1ffffffff":0 +mpi_core_add_if:"ffffffff":"100000000":"1ffffffff":0:"1ffffffff":0 mbedtls_mpi_core_add_if #321: 0xffffffff + 0x1f7f7f7f7f7f7f = (0x1f7f807f7f7f7e, carry 0)/(0x1f7f807f7f7f7e, carry 0) -mbedtls_mpi_core_add_if:"ffffffff":"1f7f7f7f7f7f7f":"1f7f807f7f7f7e":0:"1f7f807f7f7f7e":0 +mpi_core_add_if:"ffffffff":"1f7f7f7f7f7f7f":"1f7f807f7f7f7e":0:"1f7f807f7f7f7e":0 mbedtls_mpi_core_add_if #322: 0xffffffff + 0x8000000000000000 = (0x80000000ffffffff, carry 0)/(0x80000000ffffffff, carry 0) -mbedtls_mpi_core_add_if:"ffffffff":"8000000000000000":"80000000ffffffff":0:"80000000ffffffff":0 +mpi_core_add_if:"ffffffff":"8000000000000000":"80000000ffffffff":0:"80000000ffffffff":0 mbedtls_mpi_core_add_if #323: 0xffffffff + 0xfefefefefefefefe = (0xfefefefffefefefd, carry 0)/(0xfefefefffefefefd, carry 0) -mbedtls_mpi_core_add_if:"ffffffff":"fefefefefefefefe":"fefefefffefefefd":0:"fefefefffefefefd":0 +mpi_core_add_if:"ffffffff":"fefefefefefefefe":"fefefefffefefefd":0:"fefefefffefefefd":0 mbedtls_mpi_core_add_if #324: 0xffffffff + 0xfffffffffffffffe = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mbedtls_mpi_core_add_if:"ffffffff":"fffffffffffffffe":"fffffffd":1:"fffffffd":1 +mpi_core_add_if:"ffffffff":"fffffffffffffffe":"fffffffd":1:"fffffffd":1 mbedtls_mpi_core_add_if #325: 0xffffffff + 0xffffffffffffffff = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mbedtls_mpi_core_add_if:"ffffffff":"ffffffffffffffff":"fffffffe":1:"fffffffe":1 +mpi_core_add_if:"ffffffff":"ffffffffffffffff":"fffffffe":1:"fffffffe":1 mbedtls_mpi_core_add_if #326: 0xffffffff + 0x10000000000000000 = (0x100000000ffffffff, carry 0)/(0x100000000ffffffff, carry 0) -mbedtls_mpi_core_add_if:"ffffffff":"10000000000000000":"100000000ffffffff":0:"100000000ffffffff":0 +mpi_core_add_if:"ffffffff":"10000000000000000":"100000000ffffffff":0:"100000000ffffffff":0 mbedtls_mpi_core_add_if #327: 0xffffffff + 0x1234567890abcdef0 = (0x12345678a0abcdeef, carry 0)/(0x12345678a0abcdeef, carry 0) -mbedtls_mpi_core_add_if:"ffffffff":"1234567890abcdef0":"12345678a0abcdeef":0:"12345678a0abcdeef":0 +mpi_core_add_if:"ffffffff":"1234567890abcdef0":"12345678a0abcdeef":0:"12345678a0abcdeef":0 mbedtls_mpi_core_add_if #328: 0xffffffff + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefffefefefd, carry 0)/(0xfffffffffffffffffefefefffefefefd, carry 0) -mbedtls_mpi_core_add_if:"ffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefffefefefd":0:"fffffffffffffffffefefefffefefefd":0 +mpi_core_add_if:"ffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefffefefefd":0:"fffffffffffffffffefefefffefefefd":0 mbedtls_mpi_core_add_if #329: 0xffffffff + 0xfffffffffffffffffffffffffffffffe = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mbedtls_mpi_core_add_if:"ffffffff":"fffffffffffffffffffffffffffffffe":"fffffffd":1:"fffffffd":1 +mpi_core_add_if:"ffffffff":"fffffffffffffffffffffffffffffffe":"fffffffd":1:"fffffffd":1 mbedtls_mpi_core_add_if #330: 0xffffffff + 0xffffffffffffffffffffffffffffffff = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mbedtls_mpi_core_add_if:"ffffffff":"ffffffffffffffffffffffffffffffff":"fffffffe":1:"fffffffe":1 +mpi_core_add_if:"ffffffff":"ffffffffffffffffffffffffffffffff":"fffffffe":1:"fffffffe":1 mbedtls_mpi_core_add_if #331: 0xffffffff + 0x100000000000000000000000000000000 = (0x1000000000000000000000000ffffffff, carry 0)/(0x1000000000000000000000000ffffffff, carry 0) -mbedtls_mpi_core_add_if:"ffffffff":"100000000000000000000000000000000":"1000000000000000000000000ffffffff":0:"1000000000000000000000000ffffffff":0 +mpi_core_add_if:"ffffffff":"100000000000000000000000000000000":"1000000000000000000000000ffffffff":0:"1000000000000000000000000ffffffff":0 mbedtls_mpi_core_add_if #332: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef012345678a0abcdeef, carry 0)/(0x1234567890abcdef012345678a0abcdeef, carry 0) -mbedtls_mpi_core_add_if:"ffffffff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012345678a0abcdeef":0:"1234567890abcdef012345678a0abcdeef":0 +mpi_core_add_if:"ffffffff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012345678a0abcdeef":0:"1234567890abcdef012345678a0abcdeef":0 mbedtls_mpi_core_add_if #333: 0xffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd, carry 0) -mbedtls_mpi_core_add_if:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd":0 +mpi_core_add_if:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd":0 mbedtls_mpi_core_add_if #334: 0xffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mbedtls_mpi_core_add_if:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffd":1:"fffffffd":1 +mpi_core_add_if:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffd":1:"fffffffd":1 mbedtls_mpi_core_add_if #335: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mbedtls_mpi_core_add_if:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffe":1:"fffffffe":1 +mpi_core_add_if:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffe":1:"fffffffe":1 mbedtls_mpi_core_add_if #336: 0xffffffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000000000000000000000000000ffffffff, carry 0)/(0x100000000000000000000000000000000000000000000000000000000ffffffff, carry 0) -mbedtls_mpi_core_add_if:"ffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000ffffffff":0:"100000000000000000000000000000000000000000000000000000000ffffffff":0 +mpi_core_add_if:"ffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000ffffffff":0:"100000000000000000000000000000000000000000000000000000000ffffffff":0 mbedtls_mpi_core_add_if #337: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef, carry 0) -mbedtls_mpi_core_add_if:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":0:"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":0 +mpi_core_add_if:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":0:"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":0 mbedtls_mpi_core_add_if #338: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a, carry 0) -mbedtls_mpi_core_add_if:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":0 +mpi_core_add_if:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":0 mbedtls_mpi_core_add_if #339: 0x100000000 + 0x100000000 = (0x200000000, carry 0)/(0x200000000, carry 0) -mbedtls_mpi_core_add_if:"100000000":"100000000":"200000000":0:"200000000":0 +mpi_core_add_if:"100000000":"100000000":"200000000":0:"200000000":0 mbedtls_mpi_core_add_if #340: 0x100000000 + 0x1f7f7f7f7f7f7f = (0x1f7f807f7f7f7f, carry 0)/(0x1f7f807f7f7f7f, carry 0) -mbedtls_mpi_core_add_if:"100000000":"1f7f7f7f7f7f7f":"1f7f807f7f7f7f":0:"1f7f807f7f7f7f":0 +mpi_core_add_if:"100000000":"1f7f7f7f7f7f7f":"1f7f807f7f7f7f":0:"1f7f807f7f7f7f":0 mbedtls_mpi_core_add_if #341: 0x100000000 + 0x8000000000000000 = (0x8000000100000000, carry 0)/(0x8000000100000000, carry 0) -mbedtls_mpi_core_add_if:"100000000":"8000000000000000":"8000000100000000":0:"8000000100000000":0 +mpi_core_add_if:"100000000":"8000000000000000":"8000000100000000":0:"8000000100000000":0 mbedtls_mpi_core_add_if #342: 0x100000000 + 0xfefefefefefefefe = (0xfefefefffefefefe, carry 0)/(0xfefefefffefefefe, carry 0) -mbedtls_mpi_core_add_if:"100000000":"fefefefefefefefe":"fefefefffefefefe":0:"fefefefffefefefe":0 +mpi_core_add_if:"100000000":"fefefefefefefefe":"fefefefffefefefe":0:"fefefefffefefefe":0 mbedtls_mpi_core_add_if #343: 0x100000000 + 0xfffffffffffffffe = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mbedtls_mpi_core_add_if:"100000000":"fffffffffffffffe":"fffffffe":1:"fffffffe":1 +mpi_core_add_if:"100000000":"fffffffffffffffe":"fffffffe":1:"fffffffe":1 mbedtls_mpi_core_add_if #344: 0x100000000 + 0xffffffffffffffff = (0xffffffff, carry 1)/(0xffffffff, carry 1) -mbedtls_mpi_core_add_if:"100000000":"ffffffffffffffff":"ffffffff":1:"ffffffff":1 +mpi_core_add_if:"100000000":"ffffffffffffffff":"ffffffff":1:"ffffffff":1 mbedtls_mpi_core_add_if #345: 0x100000000 + 0x10000000000000000 = (0x10000000100000000, carry 0)/(0x10000000100000000, carry 0) -mbedtls_mpi_core_add_if:"100000000":"10000000000000000":"10000000100000000":0:"10000000100000000":0 +mpi_core_add_if:"100000000":"10000000000000000":"10000000100000000":0:"10000000100000000":0 mbedtls_mpi_core_add_if #346: 0x100000000 + 0x1234567890abcdef0 = (0x12345678a0abcdef0, carry 0)/(0x12345678a0abcdef0, carry 0) -mbedtls_mpi_core_add_if:"100000000":"1234567890abcdef0":"12345678a0abcdef0":0:"12345678a0abcdef0":0 +mpi_core_add_if:"100000000":"1234567890abcdef0":"12345678a0abcdef0":0:"12345678a0abcdef0":0 mbedtls_mpi_core_add_if #347: 0x100000000 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefffefefefe, carry 0)/(0xfffffffffffffffffefefefffefefefe, carry 0) -mbedtls_mpi_core_add_if:"100000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefffefefefe":0:"fffffffffffffffffefefefffefefefe":0 +mpi_core_add_if:"100000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefffefefefe":0:"fffffffffffffffffefefefffefefefe":0 mbedtls_mpi_core_add_if #348: 0x100000000 + 0xfffffffffffffffffffffffffffffffe = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mbedtls_mpi_core_add_if:"100000000":"fffffffffffffffffffffffffffffffe":"fffffffe":1:"fffffffe":1 +mpi_core_add_if:"100000000":"fffffffffffffffffffffffffffffffe":"fffffffe":1:"fffffffe":1 mbedtls_mpi_core_add_if #349: 0x100000000 + 0xffffffffffffffffffffffffffffffff = (0xffffffff, carry 1)/(0xffffffff, carry 1) -mbedtls_mpi_core_add_if:"100000000":"ffffffffffffffffffffffffffffffff":"ffffffff":1:"ffffffff":1 +mpi_core_add_if:"100000000":"ffffffffffffffffffffffffffffffff":"ffffffff":1:"ffffffff":1 mbedtls_mpi_core_add_if #350: 0x100000000 + 0x100000000000000000000000000000000 = (0x100000000000000000000000100000000, carry 0)/(0x100000000000000000000000100000000, carry 0) -mbedtls_mpi_core_add_if:"100000000":"100000000000000000000000000000000":"100000000000000000000000100000000":0:"100000000000000000000000100000000":0 +mpi_core_add_if:"100000000":"100000000000000000000000000000000":"100000000000000000000000100000000":0:"100000000000000000000000100000000":0 mbedtls_mpi_core_add_if #351: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef012345678a0abcdef0, carry 0)/(0x1234567890abcdef012345678a0abcdef0, carry 0) -mbedtls_mpi_core_add_if:"100000000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012345678a0abcdef0":0:"1234567890abcdef012345678a0abcdef0":0 +mpi_core_add_if:"100000000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012345678a0abcdef0":0:"1234567890abcdef012345678a0abcdef0":0 mbedtls_mpi_core_add_if #352: 0x100000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe, carry 0) -mbedtls_mpi_core_add_if:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe":0 +mpi_core_add_if:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe":0 mbedtls_mpi_core_add_if #353: 0x100000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mbedtls_mpi_core_add_if:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffe":1:"fffffffe":1 +mpi_core_add_if:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffe":1:"fffffffe":1 mbedtls_mpi_core_add_if #354: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffffffff, carry 1)/(0xffffffff, carry 1) -mbedtls_mpi_core_add_if:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":1:"ffffffff":1 +mpi_core_add_if:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":1:"ffffffff":1 mbedtls_mpi_core_add_if #355: 0x100000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000100000000, carry 0)/(0x10000000000000000000000000000000000000000000000000000000100000000, carry 0) -mbedtls_mpi_core_add_if:"100000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000100000000":0:"10000000000000000000000000000000000000000000000000000000100000000":0 +mpi_core_add_if:"100000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000100000000":0:"10000000000000000000000000000000000000000000000000000000100000000":0 mbedtls_mpi_core_add_if #356: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0, carry 0) -mbedtls_mpi_core_add_if:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":0 +mpi_core_add_if:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":0 mbedtls_mpi_core_add_if #357: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b, carry 0) -mbedtls_mpi_core_add_if:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":0 +mpi_core_add_if:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":0 mbedtls_mpi_core_add_if #358: 0x1f7f7f7f7f7f7f + 0x1f7f7f7f7f7f7f = (0x3efefefefefefe, carry 0)/(0x3efefefefefefe, carry 0) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":"3efefefefefefe":0:"3efefefefefefe":0 +mpi_core_add_if:"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":"3efefefefefefe":0:"3efefefefefefe":0 mbedtls_mpi_core_add_if #359: 0x1f7f7f7f7f7f7f + 0x8000000000000000 = (0x801f7f7f7f7f7f7f, carry 0)/(0x801f7f7f7f7f7f7f, carry 0) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"8000000000000000":"801f7f7f7f7f7f7f":0:"801f7f7f7f7f7f7f":0 +mpi_core_add_if:"1f7f7f7f7f7f7f":"8000000000000000":"801f7f7f7f7f7f7f":0:"801f7f7f7f7f7f7f":0 mbedtls_mpi_core_add_if #360: 0x1f7f7f7f7f7f7f + 0xfefefefefefefefe = (0xff1e7e7e7e7e7e7d, carry 0)/(0xff1e7e7e7e7e7e7d, carry 0) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"fefefefefefefefe":"ff1e7e7e7e7e7e7d":0:"ff1e7e7e7e7e7e7d":0 +mpi_core_add_if:"1f7f7f7f7f7f7f":"fefefefefefefefe":"ff1e7e7e7e7e7e7d":0:"ff1e7e7e7e7e7e7d":0 mbedtls_mpi_core_add_if #361: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffe = (0x1f7f7f7f7f7f7d, carry 1)/(0x1f7f7f7f7f7f7d, carry 1) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffe":"1f7f7f7f7f7f7d":1:"1f7f7f7f7f7f7d":1 +mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffe":"1f7f7f7f7f7f7d":1:"1f7f7f7f7f7f7d":1 mbedtls_mpi_core_add_if #362: 0x1f7f7f7f7f7f7f + 0xffffffffffffffff = (0x1f7f7f7f7f7f7e, carry 1)/(0x1f7f7f7f7f7f7e, carry 1) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"ffffffffffffffff":"1f7f7f7f7f7f7e":1:"1f7f7f7f7f7f7e":1 +mpi_core_add_if:"1f7f7f7f7f7f7f":"ffffffffffffffff":"1f7f7f7f7f7f7e":1:"1f7f7f7f7f7f7e":1 mbedtls_mpi_core_add_if #363: 0x1f7f7f7f7f7f7f + 0x10000000000000000 = (0x1001f7f7f7f7f7f7f, carry 0)/(0x1001f7f7f7f7f7f7f, carry 0) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"10000000000000000":"1001f7f7f7f7f7f7f":0:"1001f7f7f7f7f7f7f":0 +mpi_core_add_if:"1f7f7f7f7f7f7f":"10000000000000000":"1001f7f7f7f7f7f7f":0:"1001f7f7f7f7f7f7f":0 mbedtls_mpi_core_add_if #364: 0x1f7f7f7f7f7f7f + 0x1234567890abcdef0 = (0x12364e7088a3c5e6f, carry 0)/(0x12364e7088a3c5e6f, carry 0) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"1234567890abcdef0":"12364e7088a3c5e6f":0:"12364e7088a3c5e6f":0 +mpi_core_add_if:"1f7f7f7f7f7f7f":"1234567890abcdef0":"12364e7088a3c5e6f":0:"12364e7088a3c5e6f":0 mbedtls_mpi_core_add_if #365: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffffefefefefefefefe = (0xffffffffffffffffff1e7e7e7e7e7e7d, carry 0)/(0xffffffffffffffffff1e7e7e7e7e7e7d, carry 0) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffff1e7e7e7e7e7e7d":0:"ffffffffffffffffff1e7e7e7e7e7e7d":0 +mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffff1e7e7e7e7e7e7d":0:"ffffffffffffffffff1e7e7e7e7e7e7d":0 mbedtls_mpi_core_add_if #366: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffffffffffffffffffe = (0x1f7f7f7f7f7f7d, carry 1)/(0x1f7f7f7f7f7f7d, carry 1) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7d":1:"1f7f7f7f7f7f7d":1 +mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7d":1:"1f7f7f7f7f7f7d":1 mbedtls_mpi_core_add_if #367: 0x1f7f7f7f7f7f7f + 0xffffffffffffffffffffffffffffffff = (0x1f7f7f7f7f7f7e, carry 1)/(0x1f7f7f7f7f7f7e, carry 1) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7e":1:"1f7f7f7f7f7f7e":1 +mpi_core_add_if:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7e":1:"1f7f7f7f7f7f7e":1 mbedtls_mpi_core_add_if #368: 0x1f7f7f7f7f7f7f + 0x100000000000000000000000000000000 = (0x10000000000000000001f7f7f7f7f7f7f, carry 0)/(0x10000000000000000001f7f7f7f7f7f7f, carry 0) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"100000000000000000000000000000000":"10000000000000000001f7f7f7f7f7f7f":0:"10000000000000000001f7f7f7f7f7f7f":0 +mpi_core_add_if:"1f7f7f7f7f7f7f":"100000000000000000000000000000000":"10000000000000000001f7f7f7f7f7f7f":0:"10000000000000000001f7f7f7f7f7f7f":0 mbedtls_mpi_core_add_if #369: 0x1f7f7f7f7f7f7f + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef012364e7088a3c5e6f, carry 0)/(0x1234567890abcdef012364e7088a3c5e6f, carry 0) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012364e7088a3c5e6f":0:"1234567890abcdef012364e7088a3c5e6f":0 +mpi_core_add_if:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012364e7088a3c5e6f":0:"1234567890abcdef012364e7088a3c5e6f":0 mbedtls_mpi_core_add_if #370: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d, carry 0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d, carry 0) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d":0:"ffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d":0 +mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d":0:"ffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d":0 mbedtls_mpi_core_add_if #371: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x1f7f7f7f7f7f7d, carry 1)/(0x1f7f7f7f7f7f7d, carry 1) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7d":1:"1f7f7f7f7f7f7d":1 +mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7d":1:"1f7f7f7f7f7f7d":1 mbedtls_mpi_core_add_if #372: 0x1f7f7f7f7f7f7f + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x1f7f7f7f7f7f7e, carry 1)/(0x1f7f7f7f7f7f7e, carry 1) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7e":1:"1f7f7f7f7f7f7e":1 +mpi_core_add_if:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7e":1:"1f7f7f7f7f7f7e":1 mbedtls_mpi_core_add_if #373: 0x1f7f7f7f7f7f7f + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f, carry 0)/(0x1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f, carry 0) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":0:"1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":0 +mpi_core_add_if:"1f7f7f7f7f7f7f":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":0:"1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":0 mbedtls_mpi_core_add_if #374: 0x1f7f7f7f7f7f7f + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f, carry 0) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f":0:"1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f":0 +mpi_core_add_if:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f":0:"1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f":0 mbedtls_mpi_core_add_if #375: 0x1f7f7f7f7f7f7f + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa, carry 0) -mbedtls_mpi_core_add_if:"1f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa":0 +mpi_core_add_if:"1f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa":0 mbedtls_mpi_core_add_if #376: 0x8000000000000000 + 0x8000000000000000 = (0x0, carry 1)/(0x0, carry 1) -mbedtls_mpi_core_add_if:"8000000000000000":"8000000000000000":"0":1:"0":1 +mpi_core_add_if:"8000000000000000":"8000000000000000":"0":1:"0":1 mbedtls_mpi_core_add_if #377: 0x8000000000000000 + 0xfefefefefefefefe = (0x7efefefefefefefe, carry 1)/(0x7efefefefefefefe, carry 1) -mbedtls_mpi_core_add_if:"8000000000000000":"fefefefefefefefe":"7efefefefefefefe":1:"7efefefefefefefe":1 +mpi_core_add_if:"8000000000000000":"fefefefefefefefe":"7efefefefefefefe":1:"7efefefefefefefe":1 mbedtls_mpi_core_add_if #378: 0x8000000000000000 + 0xfffffffffffffffe = (0x7ffffffffffffffe, carry 1)/(0x7ffffffffffffffe, carry 1) -mbedtls_mpi_core_add_if:"8000000000000000":"fffffffffffffffe":"7ffffffffffffffe":1:"7ffffffffffffffe":1 +mpi_core_add_if:"8000000000000000":"fffffffffffffffe":"7ffffffffffffffe":1:"7ffffffffffffffe":1 mbedtls_mpi_core_add_if #379: 0x8000000000000000 + 0xffffffffffffffff = (0x7fffffffffffffff, carry 1)/(0x7fffffffffffffff, carry 1) -mbedtls_mpi_core_add_if:"8000000000000000":"ffffffffffffffff":"7fffffffffffffff":1:"7fffffffffffffff":1 +mpi_core_add_if:"8000000000000000":"ffffffffffffffff":"7fffffffffffffff":1:"7fffffffffffffff":1 mbedtls_mpi_core_add_if #380: 0x8000000000000000 + 0x10000000000000000 = (0x18000000000000000, carry 0)/(0x18000000000000000, carry 0) -mbedtls_mpi_core_add_if:"8000000000000000":"10000000000000000":"18000000000000000":0:"18000000000000000":0 +mpi_core_add_if:"8000000000000000":"10000000000000000":"18000000000000000":0:"18000000000000000":0 mbedtls_mpi_core_add_if #381: 0x8000000000000000 + 0x1234567890abcdef0 = (0x1a34567890abcdef0, carry 0)/(0x1a34567890abcdef0, carry 0) -mbedtls_mpi_core_add_if:"8000000000000000":"1234567890abcdef0":"1a34567890abcdef0":0:"1a34567890abcdef0":0 +mpi_core_add_if:"8000000000000000":"1234567890abcdef0":"1a34567890abcdef0":0:"1a34567890abcdef0":0 mbedtls_mpi_core_add_if #382: 0x8000000000000000 + 0xfffffffffffffffffefefefefefefefe = (0x7efefefefefefefe, carry 1)/(0x7efefefefefefefe, carry 1) -mbedtls_mpi_core_add_if:"8000000000000000":"fffffffffffffffffefefefefefefefe":"7efefefefefefefe":1:"7efefefefefefefe":1 +mpi_core_add_if:"8000000000000000":"fffffffffffffffffefefefefefefefe":"7efefefefefefefe":1:"7efefefefefefefe":1 mbedtls_mpi_core_add_if #383: 0x8000000000000000 + 0xfffffffffffffffffffffffffffffffe = (0x7ffffffffffffffe, carry 1)/(0x7ffffffffffffffe, carry 1) -mbedtls_mpi_core_add_if:"8000000000000000":"fffffffffffffffffffffffffffffffe":"7ffffffffffffffe":1:"7ffffffffffffffe":1 +mpi_core_add_if:"8000000000000000":"fffffffffffffffffffffffffffffffe":"7ffffffffffffffe":1:"7ffffffffffffffe":1 mbedtls_mpi_core_add_if #384: 0x8000000000000000 + 0xffffffffffffffffffffffffffffffff = (0x7fffffffffffffff, carry 1)/(0x7fffffffffffffff, carry 1) -mbedtls_mpi_core_add_if:"8000000000000000":"ffffffffffffffffffffffffffffffff":"7fffffffffffffff":1:"7fffffffffffffff":1 +mpi_core_add_if:"8000000000000000":"ffffffffffffffffffffffffffffffff":"7fffffffffffffff":1:"7fffffffffffffff":1 mbedtls_mpi_core_add_if #385: 0x8000000000000000 + 0x100000000000000000000000000000000 = (0x100000000000000008000000000000000, carry 0)/(0x100000000000000008000000000000000, carry 0) -mbedtls_mpi_core_add_if:"8000000000000000":"100000000000000000000000000000000":"100000000000000008000000000000000":0:"100000000000000008000000000000000":0 +mpi_core_add_if:"8000000000000000":"100000000000000000000000000000000":"100000000000000008000000000000000":0:"100000000000000008000000000000000":0 mbedtls_mpi_core_add_if #386: 0x8000000000000000 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01a34567890abcdef0, carry 0)/(0x1234567890abcdef01a34567890abcdef0, carry 0) -mbedtls_mpi_core_add_if:"8000000000000000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01a34567890abcdef0":0:"1234567890abcdef01a34567890abcdef0":0 +mpi_core_add_if:"8000000000000000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01a34567890abcdef0":0:"1234567890abcdef01a34567890abcdef0":0 mbedtls_mpi_core_add_if #387: 0x8000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0x7efefefefefefefe, carry 1)/(0x7efefefefefefefe, carry 1) -mbedtls_mpi_core_add_if:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"7efefefefefefefe":1:"7efefefefefefefe":1 +mpi_core_add_if:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"7efefefefefefefe":1:"7efefefefefefefe":1 mbedtls_mpi_core_add_if #388: 0x8000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x7ffffffffffffffe, carry 1)/(0x7ffffffffffffffe, carry 1) -mbedtls_mpi_core_add_if:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"7ffffffffffffffe":1:"7ffffffffffffffe":1 +mpi_core_add_if:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"7ffffffffffffffe":1:"7ffffffffffffffe":1 mbedtls_mpi_core_add_if #389: 0x8000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x7fffffffffffffff, carry 1)/(0x7fffffffffffffff, carry 1) -mbedtls_mpi_core_add_if:"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7fffffffffffffff":1:"7fffffffffffffff":1 +mpi_core_add_if:"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7fffffffffffffff":1:"7fffffffffffffff":1 mbedtls_mpi_core_add_if #390: 0x8000000000000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000008000000000000000, carry 0)/(0x10000000000000000000000000000000000000000000000008000000000000000, carry 0) -mbedtls_mpi_core_add_if:"8000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000008000000000000000":0:"10000000000000000000000000000000000000000000000008000000000000000":0 +mpi_core_add_if:"8000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000008000000000000000":0:"10000000000000000000000000000000000000000000000008000000000000000":0 mbedtls_mpi_core_add_if #391: 0x8000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0, carry 0) -mbedtls_mpi_core_add_if:"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":0 +mpi_core_add_if:"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":0 mbedtls_mpi_core_add_if #392: 0x8000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b, carry 0) -mbedtls_mpi_core_add_if:"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":0 +mpi_core_add_if:"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":0 mbedtls_mpi_core_add_if #393: 0xfefefefefefefefe + 0xfefefefefefefefe = (0xfdfdfdfdfdfdfdfc, carry 1)/(0xfdfdfdfdfdfdfdfc, carry 1) -mbedtls_mpi_core_add_if:"fefefefefefefefe":"fefefefefefefefe":"fdfdfdfdfdfdfdfc":1:"fdfdfdfdfdfdfdfc":1 +mpi_core_add_if:"fefefefefefefefe":"fefefefefefefefe":"fdfdfdfdfdfdfdfc":1:"fdfdfdfdfdfdfdfc":1 mbedtls_mpi_core_add_if #394: 0xfefefefefefefefe + 0xfffffffffffffffe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) -mbedtls_mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffe":"fefefefefefefefc":1:"fefefefefefefefc":1 +mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffe":"fefefefefefefefc":1:"fefefefefefefefc":1 mbedtls_mpi_core_add_if #395: 0xfefefefefefefefe + 0xffffffffffffffff = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) -mbedtls_mpi_core_add_if:"fefefefefefefefe":"ffffffffffffffff":"fefefefefefefefd":1:"fefefefefefefefd":1 +mpi_core_add_if:"fefefefefefefefe":"ffffffffffffffff":"fefefefefefefefd":1:"fefefefefefefefd":1 mbedtls_mpi_core_add_if #396: 0xfefefefefefefefe + 0x10000000000000000 = (0x1fefefefefefefefe, carry 0)/(0x1fefefefefefefefe, carry 0) -mbedtls_mpi_core_add_if:"fefefefefefefefe":"10000000000000000":"1fefefefefefefefe":0:"1fefefefefefefefe":0 +mpi_core_add_if:"fefefefefefefefe":"10000000000000000":"1fefefefefefefefe":0:"1fefefefefefefefe":0 mbedtls_mpi_core_add_if #397: 0xfefefefefefefefe + 0x1234567890abcdef0 = (0x22244668809bbddee, carry 0)/(0x22244668809bbddee, carry 0) -mbedtls_mpi_core_add_if:"fefefefefefefefe":"1234567890abcdef0":"22244668809bbddee":0:"22244668809bbddee":0 +mpi_core_add_if:"fefefefefefefefe":"1234567890abcdef0":"22244668809bbddee":0:"22244668809bbddee":0 mbedtls_mpi_core_add_if #398: 0xfefefefefefefefe + 0xfffffffffffffffffefefefefefefefe = (0xfdfdfdfdfdfdfdfc, carry 1)/(0xfdfdfdfdfdfdfdfc, carry 1) -mbedtls_mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fdfdfdfdfdfdfdfc":1:"fdfdfdfdfdfdfdfc":1 +mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fdfdfdfdfdfdfdfc":1:"fdfdfdfdfdfdfdfc":1 mbedtls_mpi_core_add_if #399: 0xfefefefefefefefe + 0xfffffffffffffffffffffffffffffffe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) -mbedtls_mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fefefefefefefefc":1:"fefefefefefefefc":1 +mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fefefefefefefefc":1:"fefefefefefefefc":1 mbedtls_mpi_core_add_if #400: 0xfefefefefefefefe + 0xffffffffffffffffffffffffffffffff = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) -mbedtls_mpi_core_add_if:"fefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fefefefefefefefd":1:"fefefefefefefefd":1 +mpi_core_add_if:"fefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fefefefefefefefd":1:"fefefefefefefefd":1 mbedtls_mpi_core_add_if #401: 0xfefefefefefefefe + 0x100000000000000000000000000000000 = (0x10000000000000000fefefefefefefefe, carry 0)/(0x10000000000000000fefefefefefefefe, carry 0) -mbedtls_mpi_core_add_if:"fefefefefefefefe":"100000000000000000000000000000000":"10000000000000000fefefefefefefefe":0:"10000000000000000fefefefefefefefe":0 +mpi_core_add_if:"fefefefefefefefe":"100000000000000000000000000000000":"10000000000000000fefefefefefefefe":0:"10000000000000000fefefefefefefefe":0 mbedtls_mpi_core_add_if #402: 0xfefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef022244668809bbddee, carry 0)/(0x1234567890abcdef022244668809bbddee, carry 0) -mbedtls_mpi_core_add_if:"fefefefefefefefe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef022244668809bbddee":0:"1234567890abcdef022244668809bbddee":0 +mpi_core_add_if:"fefefefefefefefe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef022244668809bbddee":0:"1234567890abcdef022244668809bbddee":0 mbedtls_mpi_core_add_if #403: 0xfefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfdfdfdfdfdfdfdfc, carry 1)/(0xfdfdfdfdfdfdfdfc, carry 1) -mbedtls_mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fdfdfdfdfdfdfdfc":1:"fdfdfdfdfdfdfdfc":1 +mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fdfdfdfdfdfdfdfc":1:"fdfdfdfdfdfdfdfc":1 mbedtls_mpi_core_add_if #404: 0xfefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) -mbedtls_mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefefefefefefefc":1:"fefefefefefefefc":1 +mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefefefefefefefc":1:"fefefefefefefefc":1 mbedtls_mpi_core_add_if #405: 0xfefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) -mbedtls_mpi_core_add_if:"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fefefefefefefefd":1:"fefefefefefefefd":1 +mpi_core_add_if:"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fefefefefefefefd":1:"fefefefefefefefd":1 mbedtls_mpi_core_add_if #406: 0xfefefefefefefefe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000fefefefefefefefe, carry 0)/(0x1000000000000000000000000000000000000000000000000fefefefefefefefe, carry 0) -mbedtls_mpi_core_add_if:"fefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000fefefefefefefefe":0:"1000000000000000000000000000000000000000000000000fefefefefefefefe":0 +mpi_core_add_if:"fefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000fefefefefefefefe":0:"1000000000000000000000000000000000000000000000000fefefefefefefefe":0 mbedtls_mpi_core_add_if #407: 0xfefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee, carry 0) -mbedtls_mpi_core_add_if:"fefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee":0:"1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee":0 +mpi_core_add_if:"fefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee":0:"1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee":0 mbedtls_mpi_core_add_if #408: 0xfefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029, carry 0) -mbedtls_mpi_core_add_if:"fefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029":0 +mpi_core_add_if:"fefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029":0 mbedtls_mpi_core_add_if #409: 0xfffffffffffffffe + 0xfffffffffffffffe = (0xfffffffffffffffc, carry 1)/(0xfffffffffffffffc, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffe":"fffffffffffffffc":1:"fffffffffffffffc":1 +mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffe":"fffffffffffffffc":1:"fffffffffffffffc":1 mbedtls_mpi_core_add_if #410: 0xfffffffffffffffe + 0xffffffffffffffff = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffe":"ffffffffffffffff":"fffffffffffffffd":1:"fffffffffffffffd":1 +mpi_core_add_if:"fffffffffffffffe":"ffffffffffffffff":"fffffffffffffffd":1:"fffffffffffffffd":1 mbedtls_mpi_core_add_if #411: 0xfffffffffffffffe + 0x10000000000000000 = (0x1fffffffffffffffe, carry 0)/(0x1fffffffffffffffe, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffe":"10000000000000000":"1fffffffffffffffe":0:"1fffffffffffffffe":0 +mpi_core_add_if:"fffffffffffffffe":"10000000000000000":"1fffffffffffffffe":0:"1fffffffffffffffe":0 mbedtls_mpi_core_add_if #412: 0xfffffffffffffffe + 0x1234567890abcdef0 = (0x2234567890abcdeee, carry 0)/(0x2234567890abcdeee, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffe":"1234567890abcdef0":"2234567890abcdeee":0:"2234567890abcdeee":0 +mpi_core_add_if:"fffffffffffffffe":"1234567890abcdef0":"2234567890abcdeee":0:"2234567890abcdeee":0 mbedtls_mpi_core_add_if #413: 0xfffffffffffffffe + 0xfffffffffffffffffefefefefefefefe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffefefefefefefefe":"fefefefefefefefc":1:"fefefefefefefefc":1 +mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffefefefefefefefe":"fefefefefefefefc":1:"fefefefefefefefc":1 mbedtls_mpi_core_add_if #414: 0xfffffffffffffffe + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffc, carry 1)/(0xfffffffffffffffc, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffc":1:"fffffffffffffffc":1 +mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffc":1:"fffffffffffffffc":1 mbedtls_mpi_core_add_if #415: 0xfffffffffffffffe + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffd":1:"fffffffffffffffd":1 +mpi_core_add_if:"fffffffffffffffe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffd":1:"fffffffffffffffd":1 mbedtls_mpi_core_add_if #416: 0xfffffffffffffffe + 0x100000000000000000000000000000000 = (0x10000000000000000fffffffffffffffe, carry 0)/(0x10000000000000000fffffffffffffffe, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffe":"100000000000000000000000000000000":"10000000000000000fffffffffffffffe":0:"10000000000000000fffffffffffffffe":0 +mpi_core_add_if:"fffffffffffffffe":"100000000000000000000000000000000":"10000000000000000fffffffffffffffe":0:"10000000000000000fffffffffffffffe":0 mbedtls_mpi_core_add_if #417: 0xfffffffffffffffe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef02234567890abcdeee, carry 0)/(0x1234567890abcdef02234567890abcdeee, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02234567890abcdeee":0:"1234567890abcdef02234567890abcdeee":0 +mpi_core_add_if:"fffffffffffffffe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02234567890abcdeee":0:"1234567890abcdef02234567890abcdeee":0 mbedtls_mpi_core_add_if #418: 0xfffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefc":1:"fefefefefefefefc":1 +mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefc":1:"fefefefefefefefc":1 mbedtls_mpi_core_add_if #419: 0xfffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffc, carry 1)/(0xfffffffffffffffc, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffc":1:"fffffffffffffffc":1 +mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffc":1:"fffffffffffffffc":1 mbedtls_mpi_core_add_if #420: 0xfffffffffffffffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffd":1:"fffffffffffffffd":1 +mpi_core_add_if:"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffd":1:"fffffffffffffffd":1 mbedtls_mpi_core_add_if #421: 0xfffffffffffffffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000fffffffffffffffe, carry 0)/(0x1000000000000000000000000000000000000000000000000fffffffffffffffe, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000fffffffffffffffe":0:"1000000000000000000000000000000000000000000000000fffffffffffffffe":0 +mpi_core_add_if:"fffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000fffffffffffffffe":0:"1000000000000000000000000000000000000000000000000fffffffffffffffe":0 mbedtls_mpi_core_add_if #422: 0xfffffffffffffffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":0:"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":0 +mpi_core_add_if:"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":0:"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":0 mbedtls_mpi_core_add_if #423: 0xfffffffffffffffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":0 +mpi_core_add_if:"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":0 mbedtls_mpi_core_add_if #424: 0xffffffffffffffff + 0xffffffffffffffff = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) -mbedtls_mpi_core_add_if:"ffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":1:"fffffffffffffffe":1 +mpi_core_add_if:"ffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":1:"fffffffffffffffe":1 mbedtls_mpi_core_add_if #425: 0xffffffffffffffff + 0x10000000000000000 = (0x1ffffffffffffffff, carry 0)/(0x1ffffffffffffffff, carry 0) -mbedtls_mpi_core_add_if:"ffffffffffffffff":"10000000000000000":"1ffffffffffffffff":0:"1ffffffffffffffff":0 +mpi_core_add_if:"ffffffffffffffff":"10000000000000000":"1ffffffffffffffff":0:"1ffffffffffffffff":0 mbedtls_mpi_core_add_if #426: 0xffffffffffffffff + 0x1234567890abcdef0 = (0x2234567890abcdeef, carry 0)/(0x2234567890abcdeef, carry 0) -mbedtls_mpi_core_add_if:"ffffffffffffffff":"1234567890abcdef0":"2234567890abcdeef":0:"2234567890abcdeef":0 +mpi_core_add_if:"ffffffffffffffff":"1234567890abcdef0":"2234567890abcdeef":0:"2234567890abcdeef":0 mbedtls_mpi_core_add_if #427: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) -mbedtls_mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fefefefefefefefd":1:"fefefefefefefefd":1 +mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fefefefefefefefd":1:"fefefefefefefefd":1 mbedtls_mpi_core_add_if #428: 0xffffffffffffffff + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) -mbedtls_mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffffffffffffffffe":"fffffffffffffffd":1:"fffffffffffffffd":1 +mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffffffffffffffffe":"fffffffffffffffd":1:"fffffffffffffffd":1 mbedtls_mpi_core_add_if #429: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) -mbedtls_mpi_core_add_if:"ffffffffffffffff":"ffffffffffffffffffffffffffffffff":"fffffffffffffffe":1:"fffffffffffffffe":1 +mpi_core_add_if:"ffffffffffffffff":"ffffffffffffffffffffffffffffffff":"fffffffffffffffe":1:"fffffffffffffffe":1 mbedtls_mpi_core_add_if #430: 0xffffffffffffffff + 0x100000000000000000000000000000000 = (0x10000000000000000ffffffffffffffff, carry 0)/(0x10000000000000000ffffffffffffffff, carry 0) -mbedtls_mpi_core_add_if:"ffffffffffffffff":"100000000000000000000000000000000":"10000000000000000ffffffffffffffff":0:"10000000000000000ffffffffffffffff":0 +mpi_core_add_if:"ffffffffffffffff":"100000000000000000000000000000000":"10000000000000000ffffffffffffffff":0:"10000000000000000ffffffffffffffff":0 mbedtls_mpi_core_add_if #431: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef02234567890abcdeef, carry 0)/(0x1234567890abcdef02234567890abcdeef, carry 0) -mbedtls_mpi_core_add_if:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02234567890abcdeef":0:"1234567890abcdef02234567890abcdeef":0 +mpi_core_add_if:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02234567890abcdeef":0:"1234567890abcdef02234567890abcdeef":0 mbedtls_mpi_core_add_if #432: 0xffffffffffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) -mbedtls_mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefd":1:"fefefefefefefefd":1 +mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefd":1:"fefefefefefefefd":1 mbedtls_mpi_core_add_if #433: 0xffffffffffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) -mbedtls_mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffd":1:"fffffffffffffffd":1 +mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffd":1:"fffffffffffffffd":1 mbedtls_mpi_core_add_if #434: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) -mbedtls_mpi_core_add_if:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":1:"fffffffffffffffe":1 +mpi_core_add_if:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":1:"fffffffffffffffe":1 mbedtls_mpi_core_add_if #435: 0xffffffffffffffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000ffffffffffffffff, carry 0)/(0x1000000000000000000000000000000000000000000000000ffffffffffffffff, carry 0) -mbedtls_mpi_core_add_if:"ffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000ffffffffffffffff":0:"1000000000000000000000000000000000000000000000000ffffffffffffffff":0 +mpi_core_add_if:"ffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000ffffffffffffffff":0:"1000000000000000000000000000000000000000000000000ffffffffffffffff":0 mbedtls_mpi_core_add_if #436: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef, carry 0) -mbedtls_mpi_core_add_if:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef":0:"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef":0 +mpi_core_add_if:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef":0:"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef":0 mbedtls_mpi_core_add_if #437: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a, carry 0) -mbedtls_mpi_core_add_if:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a":0 +mpi_core_add_if:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a":0 mbedtls_mpi_core_add_if #438: 0x10000000000000000 + 0x10000000000000000 = (0x20000000000000000, carry 0)/(0x20000000000000000, carry 0) -mbedtls_mpi_core_add_if:"10000000000000000":"10000000000000000":"20000000000000000":0:"20000000000000000":0 +mpi_core_add_if:"10000000000000000":"10000000000000000":"20000000000000000":0:"20000000000000000":0 mbedtls_mpi_core_add_if #439: 0x10000000000000000 + 0x1234567890abcdef0 = (0x2234567890abcdef0, carry 0)/(0x2234567890abcdef0, carry 0) -mbedtls_mpi_core_add_if:"10000000000000000":"1234567890abcdef0":"2234567890abcdef0":0:"2234567890abcdef0":0 +mpi_core_add_if:"10000000000000000":"1234567890abcdef0":"2234567890abcdef0":0:"2234567890abcdef0":0 mbedtls_mpi_core_add_if #440: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe = (0xfefefefefefefefe, carry 1)/(0xfefefefefefefefe, carry 1) -mbedtls_mpi_core_add_if:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fefefefefefefefe":1:"fefefefefefefefe":1 +mpi_core_add_if:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fefefefefefefefe":1:"fefefefefefefefe":1 mbedtls_mpi_core_add_if #441: 0x10000000000000000 + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) -mbedtls_mpi_core_add_if:"10000000000000000":"fffffffffffffffffffffffffffffffe":"fffffffffffffffe":1:"fffffffffffffffe":1 +mpi_core_add_if:"10000000000000000":"fffffffffffffffffffffffffffffffe":"fffffffffffffffe":1:"fffffffffffffffe":1 mbedtls_mpi_core_add_if #442: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffff = (0xffffffffffffffff, carry 1)/(0xffffffffffffffff, carry 1) -mbedtls_mpi_core_add_if:"10000000000000000":"ffffffffffffffffffffffffffffffff":"ffffffffffffffff":1:"ffffffffffffffff":1 +mpi_core_add_if:"10000000000000000":"ffffffffffffffffffffffffffffffff":"ffffffffffffffff":1:"ffffffffffffffff":1 mbedtls_mpi_core_add_if #443: 0x10000000000000000 + 0x100000000000000000000000000000000 = (0x100000000000000010000000000000000, carry 0)/(0x100000000000000010000000000000000, carry 0) -mbedtls_mpi_core_add_if:"10000000000000000":"100000000000000000000000000000000":"100000000000000010000000000000000":0:"100000000000000010000000000000000":0 +mpi_core_add_if:"10000000000000000":"100000000000000000000000000000000":"100000000000000010000000000000000":0:"100000000000000010000000000000000":0 mbedtls_mpi_core_add_if #444: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef02234567890abcdef0, carry 0)/(0x1234567890abcdef02234567890abcdef0, carry 0) -mbedtls_mpi_core_add_if:"10000000000000000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02234567890abcdef0":0:"1234567890abcdef02234567890abcdef0":0 +mpi_core_add_if:"10000000000000000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02234567890abcdef0":0:"1234567890abcdef02234567890abcdef0":0 mbedtls_mpi_core_add_if #445: 0x10000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfefefefefefefefe, carry 1)/(0xfefefefefefefefe, carry 1) -mbedtls_mpi_core_add_if:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefe":1:"fefefefefefefefe":1 +mpi_core_add_if:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefe":1:"fefefefefefefefe":1 mbedtls_mpi_core_add_if #446: 0x10000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) -mbedtls_mpi_core_add_if:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffe":1:"fffffffffffffffe":1 +mpi_core_add_if:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffe":1:"fffffffffffffffe":1 mbedtls_mpi_core_add_if #447: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffffffffffffffff, carry 1)/(0xffffffffffffffff, carry 1) -mbedtls_mpi_core_add_if:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":1:"ffffffffffffffff":1 +mpi_core_add_if:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":1:"ffffffffffffffff":1 mbedtls_mpi_core_add_if #448: 0x10000000000000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000010000000000000000, carry 0)/(0x10000000000000000000000000000000000000000000000010000000000000000, carry 0) -mbedtls_mpi_core_add_if:"10000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000010000000000000000":0:"10000000000000000000000000000000000000000000000010000000000000000":0 +mpi_core_add_if:"10000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000010000000000000000":0:"10000000000000000000000000000000000000000000000010000000000000000":0 mbedtls_mpi_core_add_if #449: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0, carry 0) -mbedtls_mpi_core_add_if:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":0 +mpi_core_add_if:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":0 mbedtls_mpi_core_add_if #450: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b, carry 0) -mbedtls_mpi_core_add_if:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":0 +mpi_core_add_if:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":0 mbedtls_mpi_core_add_if #451: 0x1234567890abcdef0 + 0x1234567890abcdef0 = (0x2468acf121579bde0, carry 0)/(0x2468acf121579bde0, carry 0) -mbedtls_mpi_core_add_if:"1234567890abcdef0":"1234567890abcdef0":"2468acf121579bde0":0:"2468acf121579bde0":0 +mpi_core_add_if:"1234567890abcdef0":"1234567890abcdef0":"2468acf121579bde0":0:"2468acf121579bde0":0 mbedtls_mpi_core_add_if #452: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe = (0x12244668809bbddee, carry 1)/(0x12244668809bbddee, carry 1) -mbedtls_mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"12244668809bbddee":1:"12244668809bbddee":1 +mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"12244668809bbddee":1:"12244668809bbddee":1 mbedtls_mpi_core_add_if #453: 0x1234567890abcdef0 + 0xfffffffffffffffffffffffffffffffe = (0x1234567890abcdeee, carry 1)/(0x1234567890abcdeee, carry 1) -mbedtls_mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1234567890abcdeee":1:"1234567890abcdeee":1 +mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1234567890abcdeee":1:"1234567890abcdeee":1 mbedtls_mpi_core_add_if #454: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffff = (0x1234567890abcdeef, carry 1)/(0x1234567890abcdeef, carry 1) -mbedtls_mpi_core_add_if:"1234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1234567890abcdeef":1:"1234567890abcdeef":1 +mpi_core_add_if:"1234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1234567890abcdeef":1:"1234567890abcdeef":1 mbedtls_mpi_core_add_if #455: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 = (0x10000000000000001234567890abcdef0, carry 0)/(0x10000000000000001234567890abcdef0, carry 0) -mbedtls_mpi_core_add_if:"1234567890abcdef0":"100000000000000000000000000000000":"10000000000000001234567890abcdef0":0:"10000000000000001234567890abcdef0":0 +mpi_core_add_if:"1234567890abcdef0":"100000000000000000000000000000000":"10000000000000001234567890abcdef0":0:"10000000000000001234567890abcdef0":0 mbedtls_mpi_core_add_if #456: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef02468acf121579bde0, carry 0)/(0x1234567890abcdef02468acf121579bde0, carry 0) -mbedtls_mpi_core_add_if:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02468acf121579bde0":0:"1234567890abcdef02468acf121579bde0":0 +mpi_core_add_if:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02468acf121579bde0":0:"1234567890abcdef02468acf121579bde0":0 mbedtls_mpi_core_add_if #457: 0x1234567890abcdef0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0x12244668809bbddee, carry 1)/(0x12244668809bbddee, carry 1) -mbedtls_mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"12244668809bbddee":1:"12244668809bbddee":1 +mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"12244668809bbddee":1:"12244668809bbddee":1 mbedtls_mpi_core_add_if #458: 0x1234567890abcdef0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x1234567890abcdeee, carry 1)/(0x1234567890abcdeee, carry 1) -mbedtls_mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdeee":1:"1234567890abcdeee":1 +mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdeee":1:"1234567890abcdeee":1 mbedtls_mpi_core_add_if #459: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x1234567890abcdeef, carry 1)/(0x1234567890abcdeef, carry 1) -mbedtls_mpi_core_add_if:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdeef":1:"1234567890abcdeef":1 +mpi_core_add_if:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdeef":1:"1234567890abcdeef":1 mbedtls_mpi_core_add_if #460: 0x1234567890abcdef0 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000001234567890abcdef0, carry 0)/(0x1000000000000000000000000000000000000000000000001234567890abcdef0, carry 0) -mbedtls_mpi_core_add_if:"1234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000001234567890abcdef0":0:"1000000000000000000000000000000000000000000000001234567890abcdef0":0 +mpi_core_add_if:"1234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000001234567890abcdef0":0:"1000000000000000000000000000000000000000000000001234567890abcdef0":0 mbedtls_mpi_core_add_if #461: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0, carry 0) -mbedtls_mpi_core_add_if:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0":0:"1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0":0 +mpi_core_add_if:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0":0:"1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0":0 mbedtls_mpi_core_add_if #462: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b, carry 0) -mbedtls_mpi_core_add_if:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b":0 +mpi_core_add_if:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b":0 mbedtls_mpi_core_add_if #463: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffdfdfdfdfdfdfdfc, carry 1)/(0xfffffffffffffffffdfdfdfdfdfdfdfc, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffdfdfdfdfdfdfdfc":1:"fffffffffffffffffdfdfdfdfdfdfdfc":1 +mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffdfdfdfdfdfdfdfc":1:"fffffffffffffffffdfdfdfdfdfdfdfc":1 mbedtls_mpi_core_add_if #464: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffffefefefefefefefc, carry 1)/(0xfffffffffffffffffefefefefefefefc, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefc":1:"fffffffffffffffffefefefefefefefc":1 +mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefc":1:"fffffffffffffffffefefefefefefefc":1 mbedtls_mpi_core_add_if #465: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffffefefefefefefefd, carry 1)/(0xfffffffffffffffffefefefefefefefd, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefd":1:"fffffffffffffffffefefefefefefefd":1 +mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefd":1:"fffffffffffffffffefefefefefefefd":1 mbedtls_mpi_core_add_if #466: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 = (0x1fffffffffffffffffefefefefefefefe, carry 0)/(0x1fffffffffffffffffefefefefefefefe, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"1fffffffffffffffffefefefefefefefe":0:"1fffffffffffffffffefefefefefefefe":0 +mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"1fffffffffffffffffefefefefefefefe":0:"1fffffffffffffffffefefefefefefefe":0 mbedtls_mpi_core_add_if #467: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 = (0x1334567890abcdef012244668809bbddee, carry 0)/(0x1334567890abcdef012244668809bbddee, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"1334567890abcdef012244668809bbddee":0:"1334567890abcdef012244668809bbddee":0 +mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"1334567890abcdef012244668809bbddee":0:"1334567890abcdef012244668809bbddee":0 mbedtls_mpi_core_add_if #468: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffdfdfdfdfdfdfdfc, carry 1)/(0xfffffffffffffffffdfdfdfdfdfdfdfc, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffdfdfdfdfdfdfdfc":1:"fffffffffffffffffdfdfdfdfdfdfdfc":1 +mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffdfdfdfdfdfdfdfc":1:"fffffffffffffffffdfdfdfdfdfdfdfc":1 mbedtls_mpi_core_add_if #469: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffefefefefefefefc, carry 1)/(0xfffffffffffffffffefefefefefefefc, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefc":1:"fffffffffffffffffefefefefefefefc":1 +mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefc":1:"fffffffffffffffffefefefefefefefc":1 mbedtls_mpi_core_add_if #470: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffefefefefefefefd, carry 1)/(0xfffffffffffffffffefefefefefefefd, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefd":1:"fffffffffffffffffefefefefefefefd":1 +mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefd":1:"fffffffffffffffffefefefefefefefd":1 mbedtls_mpi_core_add_if #471: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000fffffffffffffffffefefefefefefefe, carry 0)/(0x100000000000000000000000000000000fffffffffffffffffefefefefefefefe, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000fffffffffffffffffefefefefefefefe":0:"100000000000000000000000000000000fffffffffffffffffefefefefefefefe":0 +mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000fffffffffffffffffefefefefefefefe":0:"100000000000000000000000000000000fffffffffffffffffefefefefefefefe":0 mbedtls_mpi_core_add_if #472: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee, carry 0)/(0x1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee":0:"1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee":0 +mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee":0:"1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee":0 mbedtls_mpi_core_add_if #473: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029":0 +mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029":0 mbedtls_mpi_core_add_if #474: 0xfffffffffffffffffffffffffffffffe + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffc, carry 1)/(0xfffffffffffffffffffffffffffffffc, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffc":1:"fffffffffffffffffffffffffffffffc":1 +mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffc":1:"fffffffffffffffffffffffffffffffc":1 mbedtls_mpi_core_add_if #475: 0xfffffffffffffffffffffffffffffffe + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffd, carry 1)/(0xfffffffffffffffffffffffffffffffd, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffd":1 +mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffd":1 mbedtls_mpi_core_add_if #476: 0xfffffffffffffffffffffffffffffffe + 0x100000000000000000000000000000000 = (0x1fffffffffffffffffffffffffffffffe, carry 0)/(0x1fffffffffffffffffffffffffffffffe, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"1fffffffffffffffffffffffffffffffe":0:"1fffffffffffffffffffffffffffffffe":0 +mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"1fffffffffffffffffffffffffffffffe":0:"1fffffffffffffffffffffffffffffffe":0 mbedtls_mpi_core_add_if #477: 0xfffffffffffffffffffffffffffffffe + 0x1234567890abcdef01234567890abcdef0 = (0x1334567890abcdef01234567890abcdeee, carry 0)/(0x1334567890abcdef01234567890abcdeee, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef0":"1334567890abcdef01234567890abcdeee":0:"1334567890abcdef01234567890abcdeee":0 +mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef0":"1334567890abcdef01234567890abcdeee":0:"1334567890abcdef01234567890abcdeee":0 mbedtls_mpi_core_add_if #478: 0xfffffffffffffffffffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefefc, carry 1)/(0xfffffffffffffffffefefefefefefefc, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefc":1:"fffffffffffffffffefefefefefefefc":1 +mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefc":1:"fffffffffffffffffefefefefefefefc":1 mbedtls_mpi_core_add_if #479: 0xfffffffffffffffffffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffc, carry 1)/(0xfffffffffffffffffffffffffffffffc, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffc":1:"fffffffffffffffffffffffffffffffc":1 +mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffc":1:"fffffffffffffffffffffffffffffffc":1 mbedtls_mpi_core_add_if #480: 0xfffffffffffffffffffffffffffffffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffd, carry 1)/(0xfffffffffffffffffffffffffffffffd, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffd":1 +mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffd":1 mbedtls_mpi_core_add_if #481: 0xfffffffffffffffffffffffffffffffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000fffffffffffffffffffffffffffffffe, carry 0)/(0x100000000000000000000000000000000fffffffffffffffffffffffffffffffe, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000fffffffffffffffffffffffffffffffe":0:"100000000000000000000000000000000fffffffffffffffffffffffffffffffe":0 +mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000fffffffffffffffffffffffffffffffe":0:"100000000000000000000000000000000fffffffffffffffffffffffffffffffe":0 mbedtls_mpi_core_add_if #482: 0xfffffffffffffffffffffffffffffffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee, carry 0)/(0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee":0:"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee":0 +mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee":0:"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee":0 mbedtls_mpi_core_add_if #483: 0xfffffffffffffffffffffffffffffffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129":0 +mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129":0 mbedtls_mpi_core_add_if #484: 0xffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffe, carry 1)/(0xfffffffffffffffffffffffffffffffe, carry 1) -mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffe":1 +mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffe":1 mbedtls_mpi_core_add_if #485: 0xffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 = (0x1ffffffffffffffffffffffffffffffff, carry 0)/(0x1ffffffffffffffffffffffffffffffff, carry 0) -mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"1ffffffffffffffffffffffffffffffff":0:"1ffffffffffffffffffffffffffffffff":0 +mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"1ffffffffffffffffffffffffffffffff":0:"1ffffffffffffffffffffffffffffffff":0 mbedtls_mpi_core_add_if #486: 0xffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 = (0x1334567890abcdef01234567890abcdeef, carry 0)/(0x1334567890abcdef01234567890abcdeef, carry 0) -mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"1334567890abcdef01234567890abcdeef":0:"1334567890abcdef01234567890abcdeef":0 +mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"1334567890abcdef01234567890abcdeef":0:"1334567890abcdef01234567890abcdeef":0 mbedtls_mpi_core_add_if #487: 0xffffffffffffffffffffffffffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefefd, carry 1)/(0xfffffffffffffffffefefefefefefefd, carry 1) -mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefd":1:"fffffffffffffffffefefefefefefefd":1 +mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefd":1:"fffffffffffffffffefefefefefefefd":1 mbedtls_mpi_core_add_if #488: 0xffffffffffffffffffffffffffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffd, carry 1)/(0xfffffffffffffffffffffffffffffffd, carry 1) -mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffd":1 +mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffd":1 mbedtls_mpi_core_add_if #489: 0xffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffe, carry 1)/(0xfffffffffffffffffffffffffffffffe, carry 1) -mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffe":1 +mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffe":1 mbedtls_mpi_core_add_if #490: 0xffffffffffffffffffffffffffffffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000ffffffffffffffffffffffffffffffff, carry 0)/(0x100000000000000000000000000000000ffffffffffffffffffffffffffffffff, carry 0) -mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000ffffffffffffffffffffffffffffffff":0:"100000000000000000000000000000000ffffffffffffffffffffffffffffffff":0 +mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000ffffffffffffffffffffffffffffffff":0:"100000000000000000000000000000000ffffffffffffffffffffffffffffffff":0 mbedtls_mpi_core_add_if #491: 0xffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef, carry 0)/(0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef, carry 0) -mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef":0:"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef":0 +mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef":0:"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef":0 mbedtls_mpi_core_add_if #492: 0xffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a, carry 0) -mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a":0 +mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a":0 mbedtls_mpi_core_add_if #493: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 = (0x200000000000000000000000000000000, carry 0)/(0x200000000000000000000000000000000, carry 0) -mbedtls_mpi_core_add_if:"100000000000000000000000000000000":"100000000000000000000000000000000":"200000000000000000000000000000000":0:"200000000000000000000000000000000":0 +mpi_core_add_if:"100000000000000000000000000000000":"100000000000000000000000000000000":"200000000000000000000000000000000":0:"200000000000000000000000000000000":0 mbedtls_mpi_core_add_if #494: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 = (0x1334567890abcdef01234567890abcdef0, carry 0)/(0x1334567890abcdef01234567890abcdef0, carry 0) -mbedtls_mpi_core_add_if:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"1334567890abcdef01234567890abcdef0":0:"1334567890abcdef01234567890abcdef0":0 +mpi_core_add_if:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"1334567890abcdef01234567890abcdef0":0:"1334567890abcdef01234567890abcdef0":0 mbedtls_mpi_core_add_if #495: 0x100000000000000000000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefefe, carry 1)/(0xfffffffffffffffffefefefefefefefe, carry 1) -mbedtls_mpi_core_add_if:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":1:"fffffffffffffffffefefefefefefefe":1 +mpi_core_add_if:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":1:"fffffffffffffffffefefefefefefefe":1 mbedtls_mpi_core_add_if #496: 0x100000000000000000000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffe, carry 1)/(0xfffffffffffffffffffffffffffffffe, carry 1) -mbedtls_mpi_core_add_if:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffe":1 +mpi_core_add_if:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffe":1 mbedtls_mpi_core_add_if #497: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffffffffffffffffffffffffffffffff, carry 1)/(0xffffffffffffffffffffffffffffffff, carry 1) -mbedtls_mpi_core_add_if:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1:"ffffffffffffffffffffffffffffffff":1 +mpi_core_add_if:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1:"ffffffffffffffffffffffffffffffff":1 mbedtls_mpi_core_add_if #498: 0x100000000000000000000000000000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000100000000000000000000000000000000, carry 0)/(0x10000000000000000000000000000000100000000000000000000000000000000, carry 0) -mbedtls_mpi_core_add_if:"100000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000100000000000000000000000000000000":0:"10000000000000000000000000000000100000000000000000000000000000000":0 +mpi_core_add_if:"100000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000100000000000000000000000000000000":0:"10000000000000000000000000000000100000000000000000000000000000000":0 mbedtls_mpi_core_add_if #499: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0, carry 0) -mbedtls_mpi_core_add_if:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0":0:"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0":0 +mpi_core_add_if:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0":0:"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0":0 mbedtls_mpi_core_add_if #500: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b, carry 0) -mbedtls_mpi_core_add_if:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b":0 +mpi_core_add_if:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b":0 mbedtls_mpi_core_add_if #501: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 = (0x2468acf121579bde02468acf121579bde0, carry 0)/(0x2468acf121579bde02468acf121579bde0, carry 0) -mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"2468acf121579bde02468acf121579bde0":0:"2468acf121579bde02468acf121579bde0":0 +mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"2468acf121579bde02468acf121579bde0":0:"2468acf121579bde02468acf121579bde0":0 mbedtls_mpi_core_add_if #502: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0x1234567890abcdef012244668809bbddee, carry 1)/(0x1234567890abcdef012244668809bbddee, carry 1) -mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef012244668809bbddee":1:"1234567890abcdef012244668809bbddee":1 +mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef012244668809bbddee":1:"1234567890abcdef012244668809bbddee":1 mbedtls_mpi_core_add_if #503: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x1234567890abcdef01234567890abcdeee, carry 1)/(0x1234567890abcdef01234567890abcdeee, carry 1) -mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdeee":1:"1234567890abcdef01234567890abcdeee":1 +mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdeee":1:"1234567890abcdef01234567890abcdeee":1 mbedtls_mpi_core_add_if #504: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x1234567890abcdef01234567890abcdeef, carry 1)/(0x1234567890abcdef01234567890abcdeef, carry 1) -mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdeef":1:"1234567890abcdef01234567890abcdeef":1 +mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdeef":1:"1234567890abcdef01234567890abcdeef":1 mbedtls_mpi_core_add_if #505: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000001234567890abcdef01234567890abcdef0, carry 0)/(0x10000000000000000000000000000001234567890abcdef01234567890abcdef0, carry 0) -mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000001234567890abcdef01234567890abcdef0":0:"10000000000000000000000000000001234567890abcdef01234567890abcdef0":0 +mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000001234567890abcdef01234567890abcdef0":0:"10000000000000000000000000000001234567890abcdef01234567890abcdef0":0 mbedtls_mpi_core_add_if #506: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0, carry 0)/(0x1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0, carry 0) -mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0":0:"1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0":0 +mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0":0:"1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0":0 mbedtls_mpi_core_add_if #507: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b, carry 0) -mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b":0 +mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b":0 mbedtls_mpi_core_add_if #508: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc":1:"fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc":1 +mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc":1:"fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc":1 mbedtls_mpi_core_add_if #509: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc":1:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc":1 +mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc":1:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc":1 mbedtls_mpi_core_add_if #510: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":1:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":1 +mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":1:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":1 mbedtls_mpi_core_add_if #511: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0)/(0x1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0:"1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0 +mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0:"1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0 mbedtls_mpi_core_add_if #512: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee, carry 0)/(0x1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee":0:"1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee":0 +mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee":0:"1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee":0 mbedtls_mpi_core_add_if #513: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029":0 +mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029":0 mbedtls_mpi_core_add_if #514: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":1 +mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":1 mbedtls_mpi_core_add_if #515: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 1) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":1 +mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":1 mbedtls_mpi_core_add_if #516: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0)/(0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0:"1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 +mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0:"1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 mbedtls_mpi_core_add_if #517: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee, carry 0)/(0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee":0:"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee":0 +mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee":0:"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee":0 mbedtls_mpi_core_add_if #518: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129, carry 0) -mbedtls_mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129":0 +mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129":0 mbedtls_mpi_core_add_if #519: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 1) -mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":1 +mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":1 mbedtls_mpi_core_add_if #520: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0)/(0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0) -mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0:"1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 +mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0:"1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 mbedtls_mpi_core_add_if #521: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef, carry 0)/(0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef, carry 0) -mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":0:"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":0 +mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":0:"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":0 mbedtls_mpi_core_add_if #522: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a, carry 0) -mbedtls_mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":0 +mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":0 mbedtls_mpi_core_add_if #523: 0x10000000000000000000000000000000000000000000000000000000000000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x20000000000000000000000000000000000000000000000000000000000000000, carry 0)/(0x20000000000000000000000000000000000000000000000000000000000000000, carry 0) -mbedtls_mpi_core_add_if:"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"20000000000000000000000000000000000000000000000000000000000000000":0:"20000000000000000000000000000000000000000000000000000000000000000":0 +mpi_core_add_if:"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"20000000000000000000000000000000000000000000000000000000000000000":0:"20000000000000000000000000000000000000000000000000000000000000000":0 mbedtls_mpi_core_add_if #524: 0x10000000000000000000000000000000000000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0)/(0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0) -mbedtls_mpi_core_add_if:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0:"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 +mpi_core_add_if:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0:"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 mbedtls_mpi_core_add_if #525: 0x10000000000000000000000000000000000000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0) -mbedtls_mpi_core_add_if:"10000000000000000000000000000000000000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 +mpi_core_add_if:"10000000000000000000000000000000000000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 mbedtls_mpi_core_add_if #526: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0, carry 0)/(0x2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0, carry 0) -mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0":0:"2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0":0 +mpi_core_add_if:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0":0:"2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0":0 mbedtls_mpi_core_add_if #527: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b, carry 0) -mbedtls_mpi_core_add_if:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b":0 +mpi_core_add_if:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b":0 mbedtls_mpi_core_add_if #528: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256, carry 0)/(0x9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256, carry 0) -mbedtls_mpi_core_add_if:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256":0:"9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256":0 +mpi_core_add_if:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256":0:"9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256":0 mbedtls_mpi_core_sub #1: 0x0 - 0x0 = 0x0/0 (for when sizeof(mbedtls_mpi_uint) == 4/8), carry 0 -mbedtls_mpi_core_sub:"0":"0":"0":"0":0 +mpi_core_sub:"0":"0":"0":"0":0 mbedtls_mpi_core_sub #2: 0x0 - 0x1 = 0xffffffff/ffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"0":"1":"ffffffff":"ffffffffffffffff":1 +mpi_core_sub:"0":"1":"ffffffff":"ffffffffffffffff":1 mbedtls_mpi_core_sub #3: 0x0 - 0x3 = 0xfffffffd/fffffffffffffffd, carry 1 -mbedtls_mpi_core_sub:"0":"3":"fffffffd":"fffffffffffffffd":1 +mpi_core_sub:"0":"3":"fffffffd":"fffffffffffffffd":1 mbedtls_mpi_core_sub #4: 0x0 - 0xf = 0xfffffff1/fffffffffffffff1, carry 1 -mbedtls_mpi_core_sub:"0":"f":"fffffff1":"fffffffffffffff1":1 +mpi_core_sub:"0":"f":"fffffff1":"fffffffffffffff1":1 mbedtls_mpi_core_sub #5: 0x0 - 0xfe = 0xffffff02/ffffffffffffff02, carry 1 -mbedtls_mpi_core_sub:"0":"fe":"ffffff02":"ffffffffffffff02":1 +mpi_core_sub:"0":"fe":"ffffff02":"ffffffffffffff02":1 mbedtls_mpi_core_sub #6: 0x0 - 0xff = 0xffffff01/ffffffffffffff01, carry 1 -mbedtls_mpi_core_sub:"0":"ff":"ffffff01":"ffffffffffffff01":1 +mpi_core_sub:"0":"ff":"ffffff01":"ffffffffffffff01":1 mbedtls_mpi_core_sub #7: 0x0 - 0x100 = 0xffffff00/ffffffffffffff00, carry 1 -mbedtls_mpi_core_sub:"0":"100":"ffffff00":"ffffffffffffff00":1 +mpi_core_sub:"0":"100":"ffffff00":"ffffffffffffff00":1 mbedtls_mpi_core_sub #8: 0x0 - 0xff00 = 0xffff0100/ffffffffffff0100, carry 1 -mbedtls_mpi_core_sub:"0":"ff00":"ffff0100":"ffffffffffff0100":1 +mpi_core_sub:"0":"ff00":"ffff0100":"ffffffffffff0100":1 mbedtls_mpi_core_sub #9: 0x0 - 0xfffe = 0xffff0002/ffffffffffff0002, carry 1 -mbedtls_mpi_core_sub:"0":"fffe":"ffff0002":"ffffffffffff0002":1 +mpi_core_sub:"0":"fffe":"ffff0002":"ffffffffffff0002":1 mbedtls_mpi_core_sub #10: 0x0 - 0xffff = 0xffff0001/ffffffffffff0001, carry 1 -mbedtls_mpi_core_sub:"0":"ffff":"ffff0001":"ffffffffffff0001":1 +mpi_core_sub:"0":"ffff":"ffff0001":"ffffffffffff0001":1 mbedtls_mpi_core_sub #11: 0x0 - 0x10000 = 0xffff0000/ffffffffffff0000, carry 1 -mbedtls_mpi_core_sub:"0":"10000":"ffff0000":"ffffffffffff0000":1 +mpi_core_sub:"0":"10000":"ffff0000":"ffffffffffff0000":1 mbedtls_mpi_core_sub #12: 0x0 - 0xfffffffe = 0x2/ffffffff00000002, carry 1 -mbedtls_mpi_core_sub:"0":"fffffffe":"2":"ffffffff00000002":1 +mpi_core_sub:"0":"fffffffe":"2":"ffffffff00000002":1 mbedtls_mpi_core_sub #13: 0x0 - 0xffffffff = 0x1/ffffffff00000001, carry 1 -mbedtls_mpi_core_sub:"0":"ffffffff":"1":"ffffffff00000001":1 +mpi_core_sub:"0":"ffffffff":"1":"ffffffff00000001":1 mbedtls_mpi_core_sub #14: 0x0 - 0x100000000 = 0xffffffff00000000/ffffffff00000000, carry 1 -mbedtls_mpi_core_sub:"0":"100000000":"ffffffff00000000":"ffffffff00000000":1 +mpi_core_sub:"0":"100000000":"ffffffff00000000":"ffffffff00000000":1 mbedtls_mpi_core_sub #15: 0x0 - 0x1f7f7f7f7f7f7f = 0xffe0808080808081/ffe0808080808081, carry 1 -mbedtls_mpi_core_sub:"0":"1f7f7f7f7f7f7f":"ffe0808080808081":"ffe0808080808081":1 +mpi_core_sub:"0":"1f7f7f7f7f7f7f":"ffe0808080808081":"ffe0808080808081":1 mbedtls_mpi_core_sub #16: 0x0 - 0x8000000000000000 = 0x8000000000000000/8000000000000000, carry 1 -mbedtls_mpi_core_sub:"0":"8000000000000000":"8000000000000000":"8000000000000000":1 +mpi_core_sub:"0":"8000000000000000":"8000000000000000":"8000000000000000":1 mbedtls_mpi_core_sub #17: 0x0 - 0xfefefefefefefefe = 0x101010101010102/101010101010102, carry 1 -mbedtls_mpi_core_sub:"0":"fefefefefefefefe":"101010101010102":"101010101010102":1 +mpi_core_sub:"0":"fefefefefefefefe":"101010101010102":"101010101010102":1 mbedtls_mpi_core_sub #18: 0x0 - 0xfffffffffffffffe = 0x2/2, carry 1 -mbedtls_mpi_core_sub:"0":"fffffffffffffffe":"2":"2":1 +mpi_core_sub:"0":"fffffffffffffffe":"2":"2":1 mbedtls_mpi_core_sub #19: 0x0 - 0xffffffffffffffff = 0x1/1, carry 1 -mbedtls_mpi_core_sub:"0":"ffffffffffffffff":"1":"1":1 +mpi_core_sub:"0":"ffffffffffffffff":"1":"1":1 mbedtls_mpi_core_sub #20: 0x0 - 0x10000000000000000 = 0xffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 1 -mbedtls_mpi_core_sub:"0":"10000000000000000":"ffffffff0000000000000000":"ffffffffffffffff0000000000000000":1 +mpi_core_sub:"0":"10000000000000000":"ffffffff0000000000000000":"ffffffffffffffff0000000000000000":1 mbedtls_mpi_core_sub #21: 0x0 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5432110/fffffffffffffffedcba9876f5432110, carry 1 -mbedtls_mpi_core_sub:"0":"1234567890abcdef0":"fffffffedcba9876f5432110":"fffffffffffffffedcba9876f5432110":1 +mpi_core_sub:"0":"1234567890abcdef0":"fffffffedcba9876f5432110":"fffffffffffffffedcba9876f5432110":1 mbedtls_mpi_core_sub #22: 0x0 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010102/101010101010102, carry 1 -mbedtls_mpi_core_sub:"0":"fffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":1 +mpi_core_sub:"0":"fffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":1 mbedtls_mpi_core_sub #23: 0x0 - 0xfffffffffffffffffffffffffffffffe = 0x2/2, carry 1 -mbedtls_mpi_core_sub:"0":"fffffffffffffffffffffffffffffffe":"2":"2":1 +mpi_core_sub:"0":"fffffffffffffffffffffffffffffffe":"2":"2":1 mbedtls_mpi_core_sub #24: 0x0 - 0xffffffffffffffffffffffffffffffff = 0x1/1, carry 1 -mbedtls_mpi_core_sub:"0":"ffffffffffffffffffffffffffffffff":"1":"1":1 +mpi_core_sub:"0":"ffffffffffffffffffffffffffffffff":"1":"1":1 mbedtls_mpi_core_sub #25: 0x0 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000/ffffffffffffffff00000000000000000000000000000000, carry 1 -mbedtls_mpi_core_sub:"0":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000000":"ffffffffffffffff00000000000000000000000000000000":1 +mpi_core_sub:"0":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000000":"ffffffffffffffff00000000000000000000000000000000":1 mbedtls_mpi_core_sub #26: 0x0 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5432110/ffffffffffffffedcba9876f543210fedcba9876f5432110, carry 1 -mbedtls_mpi_core_sub:"0":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432110":"ffffffffffffffedcba9876f543210fedcba9876f5432110":1 +mpi_core_sub:"0":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432110":"ffffffffffffffedcba9876f543210fedcba9876f5432110":1 mbedtls_mpi_core_sub #27: 0x0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010102/101010101010102, carry 1 -mbedtls_mpi_core_sub:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":1 +mpi_core_sub:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":1 mbedtls_mpi_core_sub #28: 0x0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x2/2, carry 1 -mbedtls_mpi_core_sub:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2":"2":1 +mpi_core_sub:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2":"2":1 mbedtls_mpi_core_sub #29: 0x0 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1/1, carry 1 -mbedtls_mpi_core_sub:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"1":1 +mpi_core_sub:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"1":1 mbedtls_mpi_core_sub #30: 0x0 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000000000/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000, carry 1 -mbedtls_mpi_core_sub:"0":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000":1 +mpi_core_sub:"0":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000":1 mbedtls_mpi_core_sub #31: 0x0 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110, carry 1 -mbedtls_mpi_core_sub:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":1 +mpi_core_sub:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":1 mbedtls_mpi_core_sub #32: 0x0 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5, carry 1 -mbedtls_mpi_core_sub:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":1 +mpi_core_sub:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":1 mbedtls_mpi_core_sub #33: 0x1 - 0x0 = 0x1/1, carry 0 -mbedtls_mpi_core_sub:"1":"0":"1":"1":0 +mpi_core_sub:"1":"0":"1":"1":0 mbedtls_mpi_core_sub #34: 0x1 - 0x1 = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"1":"1":"0":"0":0 +mpi_core_sub:"1":"1":"0":"0":0 mbedtls_mpi_core_sub #35: 0x1 - 0x3 = 0xfffffffe/fffffffffffffffe, carry 1 -mbedtls_mpi_core_sub:"1":"3":"fffffffe":"fffffffffffffffe":1 +mpi_core_sub:"1":"3":"fffffffe":"fffffffffffffffe":1 mbedtls_mpi_core_sub #36: 0x1 - 0xf = 0xfffffff2/fffffffffffffff2, carry 1 -mbedtls_mpi_core_sub:"1":"f":"fffffff2":"fffffffffffffff2":1 +mpi_core_sub:"1":"f":"fffffff2":"fffffffffffffff2":1 mbedtls_mpi_core_sub #37: 0x1 - 0xfe = 0xffffff03/ffffffffffffff03, carry 1 -mbedtls_mpi_core_sub:"1":"fe":"ffffff03":"ffffffffffffff03":1 +mpi_core_sub:"1":"fe":"ffffff03":"ffffffffffffff03":1 mbedtls_mpi_core_sub #38: 0x1 - 0xff = 0xffffff02/ffffffffffffff02, carry 1 -mbedtls_mpi_core_sub:"1":"ff":"ffffff02":"ffffffffffffff02":1 +mpi_core_sub:"1":"ff":"ffffff02":"ffffffffffffff02":1 mbedtls_mpi_core_sub #39: 0x1 - 0x100 = 0xffffff01/ffffffffffffff01, carry 1 -mbedtls_mpi_core_sub:"1":"100":"ffffff01":"ffffffffffffff01":1 +mpi_core_sub:"1":"100":"ffffff01":"ffffffffffffff01":1 mbedtls_mpi_core_sub #40: 0x1 - 0xff00 = 0xffff0101/ffffffffffff0101, carry 1 -mbedtls_mpi_core_sub:"1":"ff00":"ffff0101":"ffffffffffff0101":1 +mpi_core_sub:"1":"ff00":"ffff0101":"ffffffffffff0101":1 mbedtls_mpi_core_sub #41: 0x1 - 0xfffe = 0xffff0003/ffffffffffff0003, carry 1 -mbedtls_mpi_core_sub:"1":"fffe":"ffff0003":"ffffffffffff0003":1 +mpi_core_sub:"1":"fffe":"ffff0003":"ffffffffffff0003":1 mbedtls_mpi_core_sub #42: 0x1 - 0xffff = 0xffff0002/ffffffffffff0002, carry 1 -mbedtls_mpi_core_sub:"1":"ffff":"ffff0002":"ffffffffffff0002":1 +mpi_core_sub:"1":"ffff":"ffff0002":"ffffffffffff0002":1 mbedtls_mpi_core_sub #43: 0x1 - 0x10000 = 0xffff0001/ffffffffffff0001, carry 1 -mbedtls_mpi_core_sub:"1":"10000":"ffff0001":"ffffffffffff0001":1 +mpi_core_sub:"1":"10000":"ffff0001":"ffffffffffff0001":1 mbedtls_mpi_core_sub #44: 0x1 - 0xfffffffe = 0x3/ffffffff00000003, carry 1 -mbedtls_mpi_core_sub:"1":"fffffffe":"3":"ffffffff00000003":1 +mpi_core_sub:"1":"fffffffe":"3":"ffffffff00000003":1 mbedtls_mpi_core_sub #45: 0x1 - 0xffffffff = 0x2/ffffffff00000002, carry 1 -mbedtls_mpi_core_sub:"1":"ffffffff":"2":"ffffffff00000002":1 +mpi_core_sub:"1":"ffffffff":"2":"ffffffff00000002":1 mbedtls_mpi_core_sub #46: 0x1 - 0x100000000 = 0xffffffff00000001/ffffffff00000001, carry 1 -mbedtls_mpi_core_sub:"1":"100000000":"ffffffff00000001":"ffffffff00000001":1 +mpi_core_sub:"1":"100000000":"ffffffff00000001":"ffffffff00000001":1 mbedtls_mpi_core_sub #47: 0x1 - 0x1f7f7f7f7f7f7f = 0xffe0808080808082/ffe0808080808082, carry 1 -mbedtls_mpi_core_sub:"1":"1f7f7f7f7f7f7f":"ffe0808080808082":"ffe0808080808082":1 +mpi_core_sub:"1":"1f7f7f7f7f7f7f":"ffe0808080808082":"ffe0808080808082":1 mbedtls_mpi_core_sub #48: 0x1 - 0x8000000000000000 = 0x8000000000000001/8000000000000001, carry 1 -mbedtls_mpi_core_sub:"1":"8000000000000000":"8000000000000001":"8000000000000001":1 +mpi_core_sub:"1":"8000000000000000":"8000000000000001":"8000000000000001":1 mbedtls_mpi_core_sub #49: 0x1 - 0xfefefefefefefefe = 0x101010101010103/101010101010103, carry 1 -mbedtls_mpi_core_sub:"1":"fefefefefefefefe":"101010101010103":"101010101010103":1 +mpi_core_sub:"1":"fefefefefefefefe":"101010101010103":"101010101010103":1 mbedtls_mpi_core_sub #50: 0x1 - 0xfffffffffffffffe = 0x3/3, carry 1 -mbedtls_mpi_core_sub:"1":"fffffffffffffffe":"3":"3":1 +mpi_core_sub:"1":"fffffffffffffffe":"3":"3":1 mbedtls_mpi_core_sub #51: 0x1 - 0xffffffffffffffff = 0x2/2, carry 1 -mbedtls_mpi_core_sub:"1":"ffffffffffffffff":"2":"2":1 +mpi_core_sub:"1":"ffffffffffffffff":"2":"2":1 mbedtls_mpi_core_sub #52: 0x1 - 0x10000000000000000 = 0xffffffff0000000000000001/ffffffffffffffff0000000000000001, carry 1 -mbedtls_mpi_core_sub:"1":"10000000000000000":"ffffffff0000000000000001":"ffffffffffffffff0000000000000001":1 +mpi_core_sub:"1":"10000000000000000":"ffffffff0000000000000001":"ffffffffffffffff0000000000000001":1 mbedtls_mpi_core_sub #53: 0x1 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5432111/fffffffffffffffedcba9876f5432111, carry 1 -mbedtls_mpi_core_sub:"1":"1234567890abcdef0":"fffffffedcba9876f5432111":"fffffffffffffffedcba9876f5432111":1 +mpi_core_sub:"1":"1234567890abcdef0":"fffffffedcba9876f5432111":"fffffffffffffffedcba9876f5432111":1 mbedtls_mpi_core_sub #54: 0x1 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010103/101010101010103, carry 1 -mbedtls_mpi_core_sub:"1":"fffffffffffffffffefefefefefefefe":"101010101010103":"101010101010103":1 +mpi_core_sub:"1":"fffffffffffffffffefefefefefefefe":"101010101010103":"101010101010103":1 mbedtls_mpi_core_sub #55: 0x1 - 0xfffffffffffffffffffffffffffffffe = 0x3/3, carry 1 -mbedtls_mpi_core_sub:"1":"fffffffffffffffffffffffffffffffe":"3":"3":1 +mpi_core_sub:"1":"fffffffffffffffffffffffffffffffe":"3":"3":1 mbedtls_mpi_core_sub #56: 0x1 - 0xffffffffffffffffffffffffffffffff = 0x2/2, carry 1 -mbedtls_mpi_core_sub:"1":"ffffffffffffffffffffffffffffffff":"2":"2":1 +mpi_core_sub:"1":"ffffffffffffffffffffffffffffffff":"2":"2":1 mbedtls_mpi_core_sub #57: 0x1 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000000001/ffffffffffffffff00000000000000000000000000000001, carry 1 -mbedtls_mpi_core_sub:"1":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000001":"ffffffffffffffff00000000000000000000000000000001":1 +mpi_core_sub:"1":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000001":"ffffffffffffffff00000000000000000000000000000001":1 mbedtls_mpi_core_sub #58: 0x1 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5432111/ffffffffffffffedcba9876f543210fedcba9876f5432111, carry 1 -mbedtls_mpi_core_sub:"1":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432111":"ffffffffffffffedcba9876f543210fedcba9876f5432111":1 +mpi_core_sub:"1":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432111":"ffffffffffffffedcba9876f543210fedcba9876f5432111":1 mbedtls_mpi_core_sub #59: 0x1 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010103/101010101010103, carry 1 -mbedtls_mpi_core_sub:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010103":"101010101010103":1 +mpi_core_sub:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010103":"101010101010103":1 mbedtls_mpi_core_sub #60: 0x1 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x3/3, carry 1 -mbedtls_mpi_core_sub:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"3":"3":1 +mpi_core_sub:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"3":"3":1 mbedtls_mpi_core_sub #61: 0x1 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x2/2, carry 1 -mbedtls_mpi_core_sub:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"2":"2":1 +mpi_core_sub:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"2":"2":1 mbedtls_mpi_core_sub #62: 0x1 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000000001/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001, carry 1 -mbedtls_mpi_core_sub:"1":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000001":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001":1 +mpi_core_sub:"1":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000001":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001":1 mbedtls_mpi_core_sub #63: 0x1 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111, carry 1 -mbedtls_mpi_core_sub:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111":1 +mpi_core_sub:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111":1 mbedtls_mpi_core_sub #64: 0x1 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6, carry 1 -mbedtls_mpi_core_sub:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6":1 +mpi_core_sub:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6":1 mbedtls_mpi_core_sub #65: 0x3 - 0x0 = 0x3/3, carry 0 -mbedtls_mpi_core_sub:"3":"0":"3":"3":0 +mpi_core_sub:"3":"0":"3":"3":0 mbedtls_mpi_core_sub #66: 0x3 - 0x1 = 0x2/2, carry 0 -mbedtls_mpi_core_sub:"3":"1":"2":"2":0 +mpi_core_sub:"3":"1":"2":"2":0 mbedtls_mpi_core_sub #67: 0x3 - 0x3 = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"3":"3":"0":"0":0 +mpi_core_sub:"3":"3":"0":"0":0 mbedtls_mpi_core_sub #68: 0x3 - 0xf = 0xfffffff4/fffffffffffffff4, carry 1 -mbedtls_mpi_core_sub:"3":"f":"fffffff4":"fffffffffffffff4":1 +mpi_core_sub:"3":"f":"fffffff4":"fffffffffffffff4":1 mbedtls_mpi_core_sub #69: 0x3 - 0xfe = 0xffffff05/ffffffffffffff05, carry 1 -mbedtls_mpi_core_sub:"3":"fe":"ffffff05":"ffffffffffffff05":1 +mpi_core_sub:"3":"fe":"ffffff05":"ffffffffffffff05":1 mbedtls_mpi_core_sub #70: 0x3 - 0xff = 0xffffff04/ffffffffffffff04, carry 1 -mbedtls_mpi_core_sub:"3":"ff":"ffffff04":"ffffffffffffff04":1 +mpi_core_sub:"3":"ff":"ffffff04":"ffffffffffffff04":1 mbedtls_mpi_core_sub #71: 0x3 - 0x100 = 0xffffff03/ffffffffffffff03, carry 1 -mbedtls_mpi_core_sub:"3":"100":"ffffff03":"ffffffffffffff03":1 +mpi_core_sub:"3":"100":"ffffff03":"ffffffffffffff03":1 mbedtls_mpi_core_sub #72: 0x3 - 0xff00 = 0xffff0103/ffffffffffff0103, carry 1 -mbedtls_mpi_core_sub:"3":"ff00":"ffff0103":"ffffffffffff0103":1 +mpi_core_sub:"3":"ff00":"ffff0103":"ffffffffffff0103":1 mbedtls_mpi_core_sub #73: 0x3 - 0xfffe = 0xffff0005/ffffffffffff0005, carry 1 -mbedtls_mpi_core_sub:"3":"fffe":"ffff0005":"ffffffffffff0005":1 +mpi_core_sub:"3":"fffe":"ffff0005":"ffffffffffff0005":1 mbedtls_mpi_core_sub #74: 0x3 - 0xffff = 0xffff0004/ffffffffffff0004, carry 1 -mbedtls_mpi_core_sub:"3":"ffff":"ffff0004":"ffffffffffff0004":1 +mpi_core_sub:"3":"ffff":"ffff0004":"ffffffffffff0004":1 mbedtls_mpi_core_sub #75: 0x3 - 0x10000 = 0xffff0003/ffffffffffff0003, carry 1 -mbedtls_mpi_core_sub:"3":"10000":"ffff0003":"ffffffffffff0003":1 +mpi_core_sub:"3":"10000":"ffff0003":"ffffffffffff0003":1 mbedtls_mpi_core_sub #76: 0x3 - 0xfffffffe = 0x5/ffffffff00000005, carry 1 -mbedtls_mpi_core_sub:"3":"fffffffe":"5":"ffffffff00000005":1 +mpi_core_sub:"3":"fffffffe":"5":"ffffffff00000005":1 mbedtls_mpi_core_sub #77: 0x3 - 0xffffffff = 0x4/ffffffff00000004, carry 1 -mbedtls_mpi_core_sub:"3":"ffffffff":"4":"ffffffff00000004":1 +mpi_core_sub:"3":"ffffffff":"4":"ffffffff00000004":1 mbedtls_mpi_core_sub #78: 0x3 - 0x100000000 = 0xffffffff00000003/ffffffff00000003, carry 1 -mbedtls_mpi_core_sub:"3":"100000000":"ffffffff00000003":"ffffffff00000003":1 +mpi_core_sub:"3":"100000000":"ffffffff00000003":"ffffffff00000003":1 mbedtls_mpi_core_sub #79: 0x3 - 0x1f7f7f7f7f7f7f = 0xffe0808080808084/ffe0808080808084, carry 1 -mbedtls_mpi_core_sub:"3":"1f7f7f7f7f7f7f":"ffe0808080808084":"ffe0808080808084":1 +mpi_core_sub:"3":"1f7f7f7f7f7f7f":"ffe0808080808084":"ffe0808080808084":1 mbedtls_mpi_core_sub #80: 0x3 - 0x8000000000000000 = 0x8000000000000003/8000000000000003, carry 1 -mbedtls_mpi_core_sub:"3":"8000000000000000":"8000000000000003":"8000000000000003":1 +mpi_core_sub:"3":"8000000000000000":"8000000000000003":"8000000000000003":1 mbedtls_mpi_core_sub #81: 0x3 - 0xfefefefefefefefe = 0x101010101010105/101010101010105, carry 1 -mbedtls_mpi_core_sub:"3":"fefefefefefefefe":"101010101010105":"101010101010105":1 +mpi_core_sub:"3":"fefefefefefefefe":"101010101010105":"101010101010105":1 mbedtls_mpi_core_sub #82: 0x3 - 0xfffffffffffffffe = 0x5/5, carry 1 -mbedtls_mpi_core_sub:"3":"fffffffffffffffe":"5":"5":1 +mpi_core_sub:"3":"fffffffffffffffe":"5":"5":1 mbedtls_mpi_core_sub #83: 0x3 - 0xffffffffffffffff = 0x4/4, carry 1 -mbedtls_mpi_core_sub:"3":"ffffffffffffffff":"4":"4":1 +mpi_core_sub:"3":"ffffffffffffffff":"4":"4":1 mbedtls_mpi_core_sub #84: 0x3 - 0x10000000000000000 = 0xffffffff0000000000000003/ffffffffffffffff0000000000000003, carry 1 -mbedtls_mpi_core_sub:"3":"10000000000000000":"ffffffff0000000000000003":"ffffffffffffffff0000000000000003":1 +mpi_core_sub:"3":"10000000000000000":"ffffffff0000000000000003":"ffffffffffffffff0000000000000003":1 mbedtls_mpi_core_sub #85: 0x3 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5432113/fffffffffffffffedcba9876f5432113, carry 1 -mbedtls_mpi_core_sub:"3":"1234567890abcdef0":"fffffffedcba9876f5432113":"fffffffffffffffedcba9876f5432113":1 +mpi_core_sub:"3":"1234567890abcdef0":"fffffffedcba9876f5432113":"fffffffffffffffedcba9876f5432113":1 mbedtls_mpi_core_sub #86: 0x3 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010105/101010101010105, carry 1 -mbedtls_mpi_core_sub:"3":"fffffffffffffffffefefefefefefefe":"101010101010105":"101010101010105":1 +mpi_core_sub:"3":"fffffffffffffffffefefefefefefefe":"101010101010105":"101010101010105":1 mbedtls_mpi_core_sub #87: 0x3 - 0xfffffffffffffffffffffffffffffffe = 0x5/5, carry 1 -mbedtls_mpi_core_sub:"3":"fffffffffffffffffffffffffffffffe":"5":"5":1 +mpi_core_sub:"3":"fffffffffffffffffffffffffffffffe":"5":"5":1 mbedtls_mpi_core_sub #88: 0x3 - 0xffffffffffffffffffffffffffffffff = 0x4/4, carry 1 -mbedtls_mpi_core_sub:"3":"ffffffffffffffffffffffffffffffff":"4":"4":1 +mpi_core_sub:"3":"ffffffffffffffffffffffffffffffff":"4":"4":1 mbedtls_mpi_core_sub #89: 0x3 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000000003/ffffffffffffffff00000000000000000000000000000003, carry 1 -mbedtls_mpi_core_sub:"3":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000003":"ffffffffffffffff00000000000000000000000000000003":1 +mpi_core_sub:"3":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000003":"ffffffffffffffff00000000000000000000000000000003":1 mbedtls_mpi_core_sub #90: 0x3 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5432113/ffffffffffffffedcba9876f543210fedcba9876f5432113, carry 1 -mbedtls_mpi_core_sub:"3":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432113":"ffffffffffffffedcba9876f543210fedcba9876f5432113":1 +mpi_core_sub:"3":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432113":"ffffffffffffffedcba9876f543210fedcba9876f5432113":1 mbedtls_mpi_core_sub #91: 0x3 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010105/101010101010105, carry 1 -mbedtls_mpi_core_sub:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010105":"101010101010105":1 +mpi_core_sub:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010105":"101010101010105":1 mbedtls_mpi_core_sub #92: 0x3 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x5/5, carry 1 -mbedtls_mpi_core_sub:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"5":"5":1 +mpi_core_sub:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"5":"5":1 mbedtls_mpi_core_sub #93: 0x3 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x4/4, carry 1 -mbedtls_mpi_core_sub:"3":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4":"4":1 +mpi_core_sub:"3":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4":"4":1 mbedtls_mpi_core_sub #94: 0x3 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000000003/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000003, carry 1 -mbedtls_mpi_core_sub:"3":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000003":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000003":1 +mpi_core_sub:"3":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000003":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000003":1 mbedtls_mpi_core_sub #95: 0x3 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113, carry 1 -mbedtls_mpi_core_sub:"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113":1 +mpi_core_sub:"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113":1 mbedtls_mpi_core_sub #96: 0x3 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8, carry 1 -mbedtls_mpi_core_sub:"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8":1 +mpi_core_sub:"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8":1 mbedtls_mpi_core_sub #97: 0xf - 0x0 = 0xf/f, carry 0 -mbedtls_mpi_core_sub:"f":"0":"f":"f":0 +mpi_core_sub:"f":"0":"f":"f":0 mbedtls_mpi_core_sub #98: 0xf - 0x1 = 0xe/e, carry 0 -mbedtls_mpi_core_sub:"f":"1":"e":"e":0 +mpi_core_sub:"f":"1":"e":"e":0 mbedtls_mpi_core_sub #99: 0xf - 0x3 = 0xc/c, carry 0 -mbedtls_mpi_core_sub:"f":"3":"c":"c":0 +mpi_core_sub:"f":"3":"c":"c":0 mbedtls_mpi_core_sub #100: 0xf - 0xf = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"f":"f":"0":"0":0 +mpi_core_sub:"f":"f":"0":"0":0 mbedtls_mpi_core_sub #101: 0xf - 0xfe = 0xffffff11/ffffffffffffff11, carry 1 -mbedtls_mpi_core_sub:"f":"fe":"ffffff11":"ffffffffffffff11":1 +mpi_core_sub:"f":"fe":"ffffff11":"ffffffffffffff11":1 mbedtls_mpi_core_sub #102: 0xf - 0xff = 0xffffff10/ffffffffffffff10, carry 1 -mbedtls_mpi_core_sub:"f":"ff":"ffffff10":"ffffffffffffff10":1 +mpi_core_sub:"f":"ff":"ffffff10":"ffffffffffffff10":1 mbedtls_mpi_core_sub #103: 0xf - 0x100 = 0xffffff0f/ffffffffffffff0f, carry 1 -mbedtls_mpi_core_sub:"f":"100":"ffffff0f":"ffffffffffffff0f":1 +mpi_core_sub:"f":"100":"ffffff0f":"ffffffffffffff0f":1 mbedtls_mpi_core_sub #104: 0xf - 0xff00 = 0xffff010f/ffffffffffff010f, carry 1 -mbedtls_mpi_core_sub:"f":"ff00":"ffff010f":"ffffffffffff010f":1 +mpi_core_sub:"f":"ff00":"ffff010f":"ffffffffffff010f":1 mbedtls_mpi_core_sub #105: 0xf - 0xfffe = 0xffff0011/ffffffffffff0011, carry 1 -mbedtls_mpi_core_sub:"f":"fffe":"ffff0011":"ffffffffffff0011":1 +mpi_core_sub:"f":"fffe":"ffff0011":"ffffffffffff0011":1 mbedtls_mpi_core_sub #106: 0xf - 0xffff = 0xffff0010/ffffffffffff0010, carry 1 -mbedtls_mpi_core_sub:"f":"ffff":"ffff0010":"ffffffffffff0010":1 +mpi_core_sub:"f":"ffff":"ffff0010":"ffffffffffff0010":1 mbedtls_mpi_core_sub #107: 0xf - 0x10000 = 0xffff000f/ffffffffffff000f, carry 1 -mbedtls_mpi_core_sub:"f":"10000":"ffff000f":"ffffffffffff000f":1 +mpi_core_sub:"f":"10000":"ffff000f":"ffffffffffff000f":1 mbedtls_mpi_core_sub #108: 0xf - 0xfffffffe = 0x11/ffffffff00000011, carry 1 -mbedtls_mpi_core_sub:"f":"fffffffe":"11":"ffffffff00000011":1 +mpi_core_sub:"f":"fffffffe":"11":"ffffffff00000011":1 mbedtls_mpi_core_sub #109: 0xf - 0xffffffff = 0x10/ffffffff00000010, carry 1 -mbedtls_mpi_core_sub:"f":"ffffffff":"10":"ffffffff00000010":1 +mpi_core_sub:"f":"ffffffff":"10":"ffffffff00000010":1 mbedtls_mpi_core_sub #110: 0xf - 0x100000000 = 0xffffffff0000000f/ffffffff0000000f, carry 1 -mbedtls_mpi_core_sub:"f":"100000000":"ffffffff0000000f":"ffffffff0000000f":1 +mpi_core_sub:"f":"100000000":"ffffffff0000000f":"ffffffff0000000f":1 mbedtls_mpi_core_sub #111: 0xf - 0x1f7f7f7f7f7f7f = 0xffe0808080808090/ffe0808080808090, carry 1 -mbedtls_mpi_core_sub:"f":"1f7f7f7f7f7f7f":"ffe0808080808090":"ffe0808080808090":1 +mpi_core_sub:"f":"1f7f7f7f7f7f7f":"ffe0808080808090":"ffe0808080808090":1 mbedtls_mpi_core_sub #112: 0xf - 0x8000000000000000 = 0x800000000000000f/800000000000000f, carry 1 -mbedtls_mpi_core_sub:"f":"8000000000000000":"800000000000000f":"800000000000000f":1 +mpi_core_sub:"f":"8000000000000000":"800000000000000f":"800000000000000f":1 mbedtls_mpi_core_sub #113: 0xf - 0xfefefefefefefefe = 0x101010101010111/101010101010111, carry 1 -mbedtls_mpi_core_sub:"f":"fefefefefefefefe":"101010101010111":"101010101010111":1 +mpi_core_sub:"f":"fefefefefefefefe":"101010101010111":"101010101010111":1 mbedtls_mpi_core_sub #114: 0xf - 0xfffffffffffffffe = 0x11/11, carry 1 -mbedtls_mpi_core_sub:"f":"fffffffffffffffe":"11":"11":1 +mpi_core_sub:"f":"fffffffffffffffe":"11":"11":1 mbedtls_mpi_core_sub #115: 0xf - 0xffffffffffffffff = 0x10/10, carry 1 -mbedtls_mpi_core_sub:"f":"ffffffffffffffff":"10":"10":1 +mpi_core_sub:"f":"ffffffffffffffff":"10":"10":1 mbedtls_mpi_core_sub #116: 0xf - 0x10000000000000000 = 0xffffffff000000000000000f/ffffffffffffffff000000000000000f, carry 1 -mbedtls_mpi_core_sub:"f":"10000000000000000":"ffffffff000000000000000f":"ffffffffffffffff000000000000000f":1 +mpi_core_sub:"f":"10000000000000000":"ffffffff000000000000000f":"ffffffffffffffff000000000000000f":1 mbedtls_mpi_core_sub #117: 0xf - 0x1234567890abcdef0 = 0xfffffffedcba9876f543211f/fffffffffffffffedcba9876f543211f, carry 1 -mbedtls_mpi_core_sub:"f":"1234567890abcdef0":"fffffffedcba9876f543211f":"fffffffffffffffedcba9876f543211f":1 +mpi_core_sub:"f":"1234567890abcdef0":"fffffffedcba9876f543211f":"fffffffffffffffedcba9876f543211f":1 mbedtls_mpi_core_sub #118: 0xf - 0xfffffffffffffffffefefefefefefefe = 0x101010101010111/101010101010111, carry 1 -mbedtls_mpi_core_sub:"f":"fffffffffffffffffefefefefefefefe":"101010101010111":"101010101010111":1 +mpi_core_sub:"f":"fffffffffffffffffefefefefefefefe":"101010101010111":"101010101010111":1 mbedtls_mpi_core_sub #119: 0xf - 0xfffffffffffffffffffffffffffffffe = 0x11/11, carry 1 -mbedtls_mpi_core_sub:"f":"fffffffffffffffffffffffffffffffe":"11":"11":1 +mpi_core_sub:"f":"fffffffffffffffffffffffffffffffe":"11":"11":1 mbedtls_mpi_core_sub #120: 0xf - 0xffffffffffffffffffffffffffffffff = 0x10/10, carry 1 -mbedtls_mpi_core_sub:"f":"ffffffffffffffffffffffffffffffff":"10":"10":1 +mpi_core_sub:"f":"ffffffffffffffffffffffffffffffff":"10":"10":1 mbedtls_mpi_core_sub #121: 0xf - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000f/ffffffffffffffff0000000000000000000000000000000f, carry 1 -mbedtls_mpi_core_sub:"f":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000000f":"ffffffffffffffff0000000000000000000000000000000f":1 +mpi_core_sub:"f":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000000f":"ffffffffffffffff0000000000000000000000000000000f":1 mbedtls_mpi_core_sub #122: 0xf - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f543211f/ffffffffffffffedcba9876f543210fedcba9876f543211f, carry 1 -mbedtls_mpi_core_sub:"f":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f543211f":"ffffffffffffffedcba9876f543210fedcba9876f543211f":1 +mpi_core_sub:"f":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f543211f":"ffffffffffffffedcba9876f543210fedcba9876f543211f":1 mbedtls_mpi_core_sub #123: 0xf - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010111/101010101010111, carry 1 -mbedtls_mpi_core_sub:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010111":"101010101010111":1 +mpi_core_sub:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010111":"101010101010111":1 mbedtls_mpi_core_sub #124: 0xf - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x11/11, carry 1 -mbedtls_mpi_core_sub:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"11":"11":1 +mpi_core_sub:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"11":"11":1 mbedtls_mpi_core_sub #125: 0xf - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10/10, carry 1 -mbedtls_mpi_core_sub:"f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10":"10":1 +mpi_core_sub:"f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10":"10":1 mbedtls_mpi_core_sub #126: 0xf - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000000000000000000f/ffffffffffffffff000000000000000000000000000000000000000000000000000000000000000f, carry 1 -mbedtls_mpi_core_sub:"f":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000000f":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000000f":1 +mpi_core_sub:"f":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000000f":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000000f":1 mbedtls_mpi_core_sub #127: 0xf - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f, carry 1 -mbedtls_mpi_core_sub:"f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f":1 +mpi_core_sub:"f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f":1 mbedtls_mpi_core_sub #128: 0xf - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4, carry 1 -mbedtls_mpi_core_sub:"f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4":1 +mpi_core_sub:"f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4":1 mbedtls_mpi_core_sub #129: 0xfe - 0x0 = 0xfe/fe, carry 0 -mbedtls_mpi_core_sub:"fe":"0":"fe":"fe":0 +mpi_core_sub:"fe":"0":"fe":"fe":0 mbedtls_mpi_core_sub #130: 0xfe - 0x1 = 0xfd/fd, carry 0 -mbedtls_mpi_core_sub:"fe":"1":"fd":"fd":0 +mpi_core_sub:"fe":"1":"fd":"fd":0 mbedtls_mpi_core_sub #131: 0xfe - 0x3 = 0xfb/fb, carry 0 -mbedtls_mpi_core_sub:"fe":"3":"fb":"fb":0 +mpi_core_sub:"fe":"3":"fb":"fb":0 mbedtls_mpi_core_sub #132: 0xfe - 0xf = 0xef/ef, carry 0 -mbedtls_mpi_core_sub:"fe":"f":"ef":"ef":0 +mpi_core_sub:"fe":"f":"ef":"ef":0 mbedtls_mpi_core_sub #133: 0xfe - 0xfe = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"fe":"fe":"0":"0":0 +mpi_core_sub:"fe":"fe":"0":"0":0 mbedtls_mpi_core_sub #134: 0xfe - 0xff = 0xffffffff/ffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"fe":"ff":"ffffffff":"ffffffffffffffff":1 +mpi_core_sub:"fe":"ff":"ffffffff":"ffffffffffffffff":1 mbedtls_mpi_core_sub #135: 0xfe - 0x100 = 0xfffffffe/fffffffffffffffe, carry 1 -mbedtls_mpi_core_sub:"fe":"100":"fffffffe":"fffffffffffffffe":1 +mpi_core_sub:"fe":"100":"fffffffe":"fffffffffffffffe":1 mbedtls_mpi_core_sub #136: 0xfe - 0xff00 = 0xffff01fe/ffffffffffff01fe, carry 1 -mbedtls_mpi_core_sub:"fe":"ff00":"ffff01fe":"ffffffffffff01fe":1 +mpi_core_sub:"fe":"ff00":"ffff01fe":"ffffffffffff01fe":1 mbedtls_mpi_core_sub #137: 0xfe - 0xfffe = 0xffff0100/ffffffffffff0100, carry 1 -mbedtls_mpi_core_sub:"fe":"fffe":"ffff0100":"ffffffffffff0100":1 +mpi_core_sub:"fe":"fffe":"ffff0100":"ffffffffffff0100":1 mbedtls_mpi_core_sub #138: 0xfe - 0xffff = 0xffff00ff/ffffffffffff00ff, carry 1 -mbedtls_mpi_core_sub:"fe":"ffff":"ffff00ff":"ffffffffffff00ff":1 +mpi_core_sub:"fe":"ffff":"ffff00ff":"ffffffffffff00ff":1 mbedtls_mpi_core_sub #139: 0xfe - 0x10000 = 0xffff00fe/ffffffffffff00fe, carry 1 -mbedtls_mpi_core_sub:"fe":"10000":"ffff00fe":"ffffffffffff00fe":1 +mpi_core_sub:"fe":"10000":"ffff00fe":"ffffffffffff00fe":1 mbedtls_mpi_core_sub #140: 0xfe - 0xfffffffe = 0x100/ffffffff00000100, carry 1 -mbedtls_mpi_core_sub:"fe":"fffffffe":"100":"ffffffff00000100":1 +mpi_core_sub:"fe":"fffffffe":"100":"ffffffff00000100":1 mbedtls_mpi_core_sub #141: 0xfe - 0xffffffff = 0xff/ffffffff000000ff, carry 1 -mbedtls_mpi_core_sub:"fe":"ffffffff":"ff":"ffffffff000000ff":1 +mpi_core_sub:"fe":"ffffffff":"ff":"ffffffff000000ff":1 mbedtls_mpi_core_sub #142: 0xfe - 0x100000000 = 0xffffffff000000fe/ffffffff000000fe, carry 1 -mbedtls_mpi_core_sub:"fe":"100000000":"ffffffff000000fe":"ffffffff000000fe":1 +mpi_core_sub:"fe":"100000000":"ffffffff000000fe":"ffffffff000000fe":1 mbedtls_mpi_core_sub #143: 0xfe - 0x1f7f7f7f7f7f7f = 0xffe080808080817f/ffe080808080817f, carry 1 -mbedtls_mpi_core_sub:"fe":"1f7f7f7f7f7f7f":"ffe080808080817f":"ffe080808080817f":1 +mpi_core_sub:"fe":"1f7f7f7f7f7f7f":"ffe080808080817f":"ffe080808080817f":1 mbedtls_mpi_core_sub #144: 0xfe - 0x8000000000000000 = 0x80000000000000fe/80000000000000fe, carry 1 -mbedtls_mpi_core_sub:"fe":"8000000000000000":"80000000000000fe":"80000000000000fe":1 +mpi_core_sub:"fe":"8000000000000000":"80000000000000fe":"80000000000000fe":1 mbedtls_mpi_core_sub #145: 0xfe - 0xfefefefefefefefe = 0x101010101010200/101010101010200, carry 1 -mbedtls_mpi_core_sub:"fe":"fefefefefefefefe":"101010101010200":"101010101010200":1 +mpi_core_sub:"fe":"fefefefefefefefe":"101010101010200":"101010101010200":1 mbedtls_mpi_core_sub #146: 0xfe - 0xfffffffffffffffe = 0x100/100, carry 1 -mbedtls_mpi_core_sub:"fe":"fffffffffffffffe":"100":"100":1 +mpi_core_sub:"fe":"fffffffffffffffe":"100":"100":1 mbedtls_mpi_core_sub #147: 0xfe - 0xffffffffffffffff = 0xff/ff, carry 1 -mbedtls_mpi_core_sub:"fe":"ffffffffffffffff":"ff":"ff":1 +mpi_core_sub:"fe":"ffffffffffffffff":"ff":"ff":1 mbedtls_mpi_core_sub #148: 0xfe - 0x10000000000000000 = 0xffffffff00000000000000fe/ffffffffffffffff00000000000000fe, carry 1 -mbedtls_mpi_core_sub:"fe":"10000000000000000":"ffffffff00000000000000fe":"ffffffffffffffff00000000000000fe":1 +mpi_core_sub:"fe":"10000000000000000":"ffffffff00000000000000fe":"ffffffffffffffff00000000000000fe":1 mbedtls_mpi_core_sub #149: 0xfe - 0x1234567890abcdef0 = 0xfffffffedcba9876f543220e/fffffffffffffffedcba9876f543220e, carry 1 -mbedtls_mpi_core_sub:"fe":"1234567890abcdef0":"fffffffedcba9876f543220e":"fffffffffffffffedcba9876f543220e":1 +mpi_core_sub:"fe":"1234567890abcdef0":"fffffffedcba9876f543220e":"fffffffffffffffedcba9876f543220e":1 mbedtls_mpi_core_sub #150: 0xfe - 0xfffffffffffffffffefefefefefefefe = 0x101010101010200/101010101010200, carry 1 -mbedtls_mpi_core_sub:"fe":"fffffffffffffffffefefefefefefefe":"101010101010200":"101010101010200":1 +mpi_core_sub:"fe":"fffffffffffffffffefefefefefefefe":"101010101010200":"101010101010200":1 mbedtls_mpi_core_sub #151: 0xfe - 0xfffffffffffffffffffffffffffffffe = 0x100/100, carry 1 -mbedtls_mpi_core_sub:"fe":"fffffffffffffffffffffffffffffffe":"100":"100":1 +mpi_core_sub:"fe":"fffffffffffffffffffffffffffffffe":"100":"100":1 mbedtls_mpi_core_sub #152: 0xfe - 0xffffffffffffffffffffffffffffffff = 0xff/ff, carry 1 -mbedtls_mpi_core_sub:"fe":"ffffffffffffffffffffffffffffffff":"ff":"ff":1 +mpi_core_sub:"fe":"ffffffffffffffffffffffffffffffff":"ff":"ff":1 mbedtls_mpi_core_sub #153: 0xfe - 0x100000000000000000000000000000000 = 0xffffffff000000000000000000000000000000fe/ffffffffffffffff000000000000000000000000000000fe, carry 1 -mbedtls_mpi_core_sub:"fe":"100000000000000000000000000000000":"ffffffff000000000000000000000000000000fe":"ffffffffffffffff000000000000000000000000000000fe":1 +mpi_core_sub:"fe":"100000000000000000000000000000000":"ffffffff000000000000000000000000000000fe":"ffffffffffffffff000000000000000000000000000000fe":1 mbedtls_mpi_core_sub #154: 0xfe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f543220e/ffffffffffffffedcba9876f543210fedcba9876f543220e, carry 1 -mbedtls_mpi_core_sub:"fe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f543220e":"ffffffffffffffedcba9876f543210fedcba9876f543220e":1 +mpi_core_sub:"fe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f543220e":"ffffffffffffffedcba9876f543210fedcba9876f543220e":1 mbedtls_mpi_core_sub #155: 0xfe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010200/101010101010200, carry 1 -mbedtls_mpi_core_sub:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010200":"101010101010200":1 +mpi_core_sub:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010200":"101010101010200":1 mbedtls_mpi_core_sub #156: 0xfe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100/100, carry 1 -mbedtls_mpi_core_sub:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100":"100":1 +mpi_core_sub:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100":"100":1 mbedtls_mpi_core_sub #157: 0xfe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xff/ff, carry 1 -mbedtls_mpi_core_sub:"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ff":1 +mpi_core_sub:"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ff":1 mbedtls_mpi_core_sub #158: 0xfe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000000000000000000000000000000000fe/ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000fe, carry 1 -mbedtls_mpi_core_sub:"fe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000000000fe":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000fe":1 +mpi_core_sub:"fe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000000000fe":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000fe":1 mbedtls_mpi_core_sub #159: 0xfe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e, carry 1 -mbedtls_mpi_core_sub:"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e":1 +mpi_core_sub:"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e":1 mbedtls_mpi_core_sub #160: 0xfe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3, carry 1 -mbedtls_mpi_core_sub:"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3":1 +mpi_core_sub:"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3":1 mbedtls_mpi_core_sub #161: 0xff - 0x0 = 0xff/ff, carry 0 -mbedtls_mpi_core_sub:"ff":"0":"ff":"ff":0 +mpi_core_sub:"ff":"0":"ff":"ff":0 mbedtls_mpi_core_sub #162: 0xff - 0x1 = 0xfe/fe, carry 0 -mbedtls_mpi_core_sub:"ff":"1":"fe":"fe":0 +mpi_core_sub:"ff":"1":"fe":"fe":0 mbedtls_mpi_core_sub #163: 0xff - 0x3 = 0xfc/fc, carry 0 -mbedtls_mpi_core_sub:"ff":"3":"fc":"fc":0 +mpi_core_sub:"ff":"3":"fc":"fc":0 mbedtls_mpi_core_sub #164: 0xff - 0xf = 0xf0/f0, carry 0 -mbedtls_mpi_core_sub:"ff":"f":"f0":"f0":0 +mpi_core_sub:"ff":"f":"f0":"f0":0 mbedtls_mpi_core_sub #165: 0xff - 0xfe = 0x1/1, carry 0 -mbedtls_mpi_core_sub:"ff":"fe":"1":"1":0 +mpi_core_sub:"ff":"fe":"1":"1":0 mbedtls_mpi_core_sub #166: 0xff - 0xff = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"ff":"ff":"0":"0":0 +mpi_core_sub:"ff":"ff":"0":"0":0 mbedtls_mpi_core_sub #167: 0xff - 0x100 = 0xffffffff/ffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"ff":"100":"ffffffff":"ffffffffffffffff":1 +mpi_core_sub:"ff":"100":"ffffffff":"ffffffffffffffff":1 mbedtls_mpi_core_sub #168: 0xff - 0xff00 = 0xffff01ff/ffffffffffff01ff, carry 1 -mbedtls_mpi_core_sub:"ff":"ff00":"ffff01ff":"ffffffffffff01ff":1 +mpi_core_sub:"ff":"ff00":"ffff01ff":"ffffffffffff01ff":1 mbedtls_mpi_core_sub #169: 0xff - 0xfffe = 0xffff0101/ffffffffffff0101, carry 1 -mbedtls_mpi_core_sub:"ff":"fffe":"ffff0101":"ffffffffffff0101":1 +mpi_core_sub:"ff":"fffe":"ffff0101":"ffffffffffff0101":1 mbedtls_mpi_core_sub #170: 0xff - 0xffff = 0xffff0100/ffffffffffff0100, carry 1 -mbedtls_mpi_core_sub:"ff":"ffff":"ffff0100":"ffffffffffff0100":1 +mpi_core_sub:"ff":"ffff":"ffff0100":"ffffffffffff0100":1 mbedtls_mpi_core_sub #171: 0xff - 0x10000 = 0xffff00ff/ffffffffffff00ff, carry 1 -mbedtls_mpi_core_sub:"ff":"10000":"ffff00ff":"ffffffffffff00ff":1 +mpi_core_sub:"ff":"10000":"ffff00ff":"ffffffffffff00ff":1 mbedtls_mpi_core_sub #172: 0xff - 0xfffffffe = 0x101/ffffffff00000101, carry 1 -mbedtls_mpi_core_sub:"ff":"fffffffe":"101":"ffffffff00000101":1 +mpi_core_sub:"ff":"fffffffe":"101":"ffffffff00000101":1 mbedtls_mpi_core_sub #173: 0xff - 0xffffffff = 0x100/ffffffff00000100, carry 1 -mbedtls_mpi_core_sub:"ff":"ffffffff":"100":"ffffffff00000100":1 +mpi_core_sub:"ff":"ffffffff":"100":"ffffffff00000100":1 mbedtls_mpi_core_sub #174: 0xff - 0x100000000 = 0xffffffff000000ff/ffffffff000000ff, carry 1 -mbedtls_mpi_core_sub:"ff":"100000000":"ffffffff000000ff":"ffffffff000000ff":1 +mpi_core_sub:"ff":"100000000":"ffffffff000000ff":"ffffffff000000ff":1 mbedtls_mpi_core_sub #175: 0xff - 0x1f7f7f7f7f7f7f = 0xffe0808080808180/ffe0808080808180, carry 1 -mbedtls_mpi_core_sub:"ff":"1f7f7f7f7f7f7f":"ffe0808080808180":"ffe0808080808180":1 +mpi_core_sub:"ff":"1f7f7f7f7f7f7f":"ffe0808080808180":"ffe0808080808180":1 mbedtls_mpi_core_sub #176: 0xff - 0x8000000000000000 = 0x80000000000000ff/80000000000000ff, carry 1 -mbedtls_mpi_core_sub:"ff":"8000000000000000":"80000000000000ff":"80000000000000ff":1 +mpi_core_sub:"ff":"8000000000000000":"80000000000000ff":"80000000000000ff":1 mbedtls_mpi_core_sub #177: 0xff - 0xfefefefefefefefe = 0x101010101010201/101010101010201, carry 1 -mbedtls_mpi_core_sub:"ff":"fefefefefefefefe":"101010101010201":"101010101010201":1 +mpi_core_sub:"ff":"fefefefefefefefe":"101010101010201":"101010101010201":1 mbedtls_mpi_core_sub #178: 0xff - 0xfffffffffffffffe = 0x101/101, carry 1 -mbedtls_mpi_core_sub:"ff":"fffffffffffffffe":"101":"101":1 +mpi_core_sub:"ff":"fffffffffffffffe":"101":"101":1 mbedtls_mpi_core_sub #179: 0xff - 0xffffffffffffffff = 0x100/100, carry 1 -mbedtls_mpi_core_sub:"ff":"ffffffffffffffff":"100":"100":1 +mpi_core_sub:"ff":"ffffffffffffffff":"100":"100":1 mbedtls_mpi_core_sub #180: 0xff - 0x10000000000000000 = 0xffffffff00000000000000ff/ffffffffffffffff00000000000000ff, carry 1 -mbedtls_mpi_core_sub:"ff":"10000000000000000":"ffffffff00000000000000ff":"ffffffffffffffff00000000000000ff":1 +mpi_core_sub:"ff":"10000000000000000":"ffffffff00000000000000ff":"ffffffffffffffff00000000000000ff":1 mbedtls_mpi_core_sub #181: 0xff - 0x1234567890abcdef0 = 0xfffffffedcba9876f543220f/fffffffffffffffedcba9876f543220f, carry 1 -mbedtls_mpi_core_sub:"ff":"1234567890abcdef0":"fffffffedcba9876f543220f":"fffffffffffffffedcba9876f543220f":1 +mpi_core_sub:"ff":"1234567890abcdef0":"fffffffedcba9876f543220f":"fffffffffffffffedcba9876f543220f":1 mbedtls_mpi_core_sub #182: 0xff - 0xfffffffffffffffffefefefefefefefe = 0x101010101010201/101010101010201, carry 1 -mbedtls_mpi_core_sub:"ff":"fffffffffffffffffefefefefefefefe":"101010101010201":"101010101010201":1 +mpi_core_sub:"ff":"fffffffffffffffffefefefefefefefe":"101010101010201":"101010101010201":1 mbedtls_mpi_core_sub #183: 0xff - 0xfffffffffffffffffffffffffffffffe = 0x101/101, carry 1 -mbedtls_mpi_core_sub:"ff":"fffffffffffffffffffffffffffffffe":"101":"101":1 +mpi_core_sub:"ff":"fffffffffffffffffffffffffffffffe":"101":"101":1 mbedtls_mpi_core_sub #184: 0xff - 0xffffffffffffffffffffffffffffffff = 0x100/100, carry 1 -mbedtls_mpi_core_sub:"ff":"ffffffffffffffffffffffffffffffff":"100":"100":1 +mpi_core_sub:"ff":"ffffffffffffffffffffffffffffffff":"100":"100":1 mbedtls_mpi_core_sub #185: 0xff - 0x100000000000000000000000000000000 = 0xffffffff000000000000000000000000000000ff/ffffffffffffffff000000000000000000000000000000ff, carry 1 -mbedtls_mpi_core_sub:"ff":"100000000000000000000000000000000":"ffffffff000000000000000000000000000000ff":"ffffffffffffffff000000000000000000000000000000ff":1 +mpi_core_sub:"ff":"100000000000000000000000000000000":"ffffffff000000000000000000000000000000ff":"ffffffffffffffff000000000000000000000000000000ff":1 mbedtls_mpi_core_sub #186: 0xff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f543220f/ffffffffffffffedcba9876f543210fedcba9876f543220f, carry 1 -mbedtls_mpi_core_sub:"ff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f543220f":"ffffffffffffffedcba9876f543210fedcba9876f543220f":1 +mpi_core_sub:"ff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f543220f":"ffffffffffffffedcba9876f543210fedcba9876f543220f":1 mbedtls_mpi_core_sub #187: 0xff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010201/101010101010201, carry 1 -mbedtls_mpi_core_sub:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010201":"101010101010201":1 +mpi_core_sub:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010201":"101010101010201":1 mbedtls_mpi_core_sub #188: 0xff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x101/101, carry 1 -mbedtls_mpi_core_sub:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"101":"101":1 +mpi_core_sub:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"101":"101":1 mbedtls_mpi_core_sub #189: 0xff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100/100, carry 1 -mbedtls_mpi_core_sub:"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100":"100":1 +mpi_core_sub:"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100":"100":1 mbedtls_mpi_core_sub #190: 0xff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000000000000000000000000000000000ff/ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000ff, carry 1 -mbedtls_mpi_core_sub:"ff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000000000ff":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000ff":1 +mpi_core_sub:"ff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000000000ff":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000ff":1 mbedtls_mpi_core_sub #191: 0xff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f, carry 1 -mbedtls_mpi_core_sub:"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f":1 +mpi_core_sub:"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f":1 mbedtls_mpi_core_sub #192: 0xff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4, carry 1 -mbedtls_mpi_core_sub:"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4":1 +mpi_core_sub:"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4":1 mbedtls_mpi_core_sub #193: 0x100 - 0x0 = 0x100/100, carry 0 -mbedtls_mpi_core_sub:"100":"0":"100":"100":0 +mpi_core_sub:"100":"0":"100":"100":0 mbedtls_mpi_core_sub #194: 0x100 - 0x1 = 0xff/ff, carry 0 -mbedtls_mpi_core_sub:"100":"1":"ff":"ff":0 +mpi_core_sub:"100":"1":"ff":"ff":0 mbedtls_mpi_core_sub #195: 0x100 - 0x3 = 0xfd/fd, carry 0 -mbedtls_mpi_core_sub:"100":"3":"fd":"fd":0 +mpi_core_sub:"100":"3":"fd":"fd":0 mbedtls_mpi_core_sub #196: 0x100 - 0xf = 0xf1/f1, carry 0 -mbedtls_mpi_core_sub:"100":"f":"f1":"f1":0 +mpi_core_sub:"100":"f":"f1":"f1":0 mbedtls_mpi_core_sub #197: 0x100 - 0xfe = 0x2/2, carry 0 -mbedtls_mpi_core_sub:"100":"fe":"2":"2":0 +mpi_core_sub:"100":"fe":"2":"2":0 mbedtls_mpi_core_sub #198: 0x100 - 0xff = 0x1/1, carry 0 -mbedtls_mpi_core_sub:"100":"ff":"1":"1":0 +mpi_core_sub:"100":"ff":"1":"1":0 mbedtls_mpi_core_sub #199: 0x100 - 0x100 = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"100":"100":"0":"0":0 +mpi_core_sub:"100":"100":"0":"0":0 mbedtls_mpi_core_sub #200: 0x100 - 0xff00 = 0xffff0200/ffffffffffff0200, carry 1 -mbedtls_mpi_core_sub:"100":"ff00":"ffff0200":"ffffffffffff0200":1 +mpi_core_sub:"100":"ff00":"ffff0200":"ffffffffffff0200":1 mbedtls_mpi_core_sub #201: 0x100 - 0xfffe = 0xffff0102/ffffffffffff0102, carry 1 -mbedtls_mpi_core_sub:"100":"fffe":"ffff0102":"ffffffffffff0102":1 +mpi_core_sub:"100":"fffe":"ffff0102":"ffffffffffff0102":1 mbedtls_mpi_core_sub #202: 0x100 - 0xffff = 0xffff0101/ffffffffffff0101, carry 1 -mbedtls_mpi_core_sub:"100":"ffff":"ffff0101":"ffffffffffff0101":1 +mpi_core_sub:"100":"ffff":"ffff0101":"ffffffffffff0101":1 mbedtls_mpi_core_sub #203: 0x100 - 0x10000 = 0xffff0100/ffffffffffff0100, carry 1 -mbedtls_mpi_core_sub:"100":"10000":"ffff0100":"ffffffffffff0100":1 +mpi_core_sub:"100":"10000":"ffff0100":"ffffffffffff0100":1 mbedtls_mpi_core_sub #204: 0x100 - 0xfffffffe = 0x102/ffffffff00000102, carry 1 -mbedtls_mpi_core_sub:"100":"fffffffe":"102":"ffffffff00000102":1 +mpi_core_sub:"100":"fffffffe":"102":"ffffffff00000102":1 mbedtls_mpi_core_sub #205: 0x100 - 0xffffffff = 0x101/ffffffff00000101, carry 1 -mbedtls_mpi_core_sub:"100":"ffffffff":"101":"ffffffff00000101":1 +mpi_core_sub:"100":"ffffffff":"101":"ffffffff00000101":1 mbedtls_mpi_core_sub #206: 0x100 - 0x100000000 = 0xffffffff00000100/ffffffff00000100, carry 1 -mbedtls_mpi_core_sub:"100":"100000000":"ffffffff00000100":"ffffffff00000100":1 +mpi_core_sub:"100":"100000000":"ffffffff00000100":"ffffffff00000100":1 mbedtls_mpi_core_sub #207: 0x100 - 0x1f7f7f7f7f7f7f = 0xffe0808080808181/ffe0808080808181, carry 1 -mbedtls_mpi_core_sub:"100":"1f7f7f7f7f7f7f":"ffe0808080808181":"ffe0808080808181":1 +mpi_core_sub:"100":"1f7f7f7f7f7f7f":"ffe0808080808181":"ffe0808080808181":1 mbedtls_mpi_core_sub #208: 0x100 - 0x8000000000000000 = 0x8000000000000100/8000000000000100, carry 1 -mbedtls_mpi_core_sub:"100":"8000000000000000":"8000000000000100":"8000000000000100":1 +mpi_core_sub:"100":"8000000000000000":"8000000000000100":"8000000000000100":1 mbedtls_mpi_core_sub #209: 0x100 - 0xfefefefefefefefe = 0x101010101010202/101010101010202, carry 1 -mbedtls_mpi_core_sub:"100":"fefefefefefefefe":"101010101010202":"101010101010202":1 +mpi_core_sub:"100":"fefefefefefefefe":"101010101010202":"101010101010202":1 mbedtls_mpi_core_sub #210: 0x100 - 0xfffffffffffffffe = 0x102/102, carry 1 -mbedtls_mpi_core_sub:"100":"fffffffffffffffe":"102":"102":1 +mpi_core_sub:"100":"fffffffffffffffe":"102":"102":1 mbedtls_mpi_core_sub #211: 0x100 - 0xffffffffffffffff = 0x101/101, carry 1 -mbedtls_mpi_core_sub:"100":"ffffffffffffffff":"101":"101":1 +mpi_core_sub:"100":"ffffffffffffffff":"101":"101":1 mbedtls_mpi_core_sub #212: 0x100 - 0x10000000000000000 = 0xffffffff0000000000000100/ffffffffffffffff0000000000000100, carry 1 -mbedtls_mpi_core_sub:"100":"10000000000000000":"ffffffff0000000000000100":"ffffffffffffffff0000000000000100":1 +mpi_core_sub:"100":"10000000000000000":"ffffffff0000000000000100":"ffffffffffffffff0000000000000100":1 mbedtls_mpi_core_sub #213: 0x100 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5432210/fffffffffffffffedcba9876f5432210, carry 1 -mbedtls_mpi_core_sub:"100":"1234567890abcdef0":"fffffffedcba9876f5432210":"fffffffffffffffedcba9876f5432210":1 +mpi_core_sub:"100":"1234567890abcdef0":"fffffffedcba9876f5432210":"fffffffffffffffedcba9876f5432210":1 mbedtls_mpi_core_sub #214: 0x100 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010202/101010101010202, carry 1 -mbedtls_mpi_core_sub:"100":"fffffffffffffffffefefefefefefefe":"101010101010202":"101010101010202":1 +mpi_core_sub:"100":"fffffffffffffffffefefefefefefefe":"101010101010202":"101010101010202":1 mbedtls_mpi_core_sub #215: 0x100 - 0xfffffffffffffffffffffffffffffffe = 0x102/102, carry 1 -mbedtls_mpi_core_sub:"100":"fffffffffffffffffffffffffffffffe":"102":"102":1 +mpi_core_sub:"100":"fffffffffffffffffffffffffffffffe":"102":"102":1 mbedtls_mpi_core_sub #216: 0x100 - 0xffffffffffffffffffffffffffffffff = 0x101/101, carry 1 -mbedtls_mpi_core_sub:"100":"ffffffffffffffffffffffffffffffff":"101":"101":1 +mpi_core_sub:"100":"ffffffffffffffffffffffffffffffff":"101":"101":1 mbedtls_mpi_core_sub #217: 0x100 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000000100/ffffffffffffffff00000000000000000000000000000100, carry 1 -mbedtls_mpi_core_sub:"100":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000100":"ffffffffffffffff00000000000000000000000000000100":1 +mpi_core_sub:"100":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000100":"ffffffffffffffff00000000000000000000000000000100":1 mbedtls_mpi_core_sub #218: 0x100 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5432210/ffffffffffffffedcba9876f543210fedcba9876f5432210, carry 1 -mbedtls_mpi_core_sub:"100":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432210":"ffffffffffffffedcba9876f543210fedcba9876f5432210":1 +mpi_core_sub:"100":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432210":"ffffffffffffffedcba9876f543210fedcba9876f5432210":1 mbedtls_mpi_core_sub #219: 0x100 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010202/101010101010202, carry 1 -mbedtls_mpi_core_sub:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010202":"101010101010202":1 +mpi_core_sub:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010202":"101010101010202":1 mbedtls_mpi_core_sub #220: 0x100 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x102/102, carry 1 -mbedtls_mpi_core_sub:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"102":"102":1 +mpi_core_sub:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"102":"102":1 mbedtls_mpi_core_sub #221: 0x100 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x101/101, carry 1 -mbedtls_mpi_core_sub:"100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"101":"101":1 +mpi_core_sub:"100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"101":"101":1 mbedtls_mpi_core_sub #222: 0x100 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000000100/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000100, carry 1 -mbedtls_mpi_core_sub:"100":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000100":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000100":1 +mpi_core_sub:"100":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000100":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000100":1 mbedtls_mpi_core_sub #223: 0x100 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210, carry 1 -mbedtls_mpi_core_sub:"100":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210":1 +mpi_core_sub:"100":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210":1 mbedtls_mpi_core_sub #224: 0x100 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5, carry 1 -mbedtls_mpi_core_sub:"100":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5":1 +mpi_core_sub:"100":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5":1 mbedtls_mpi_core_sub #225: 0xff00 - 0x0 = 0xff00/ff00, carry 0 -mbedtls_mpi_core_sub:"ff00":"0":"ff00":"ff00":0 +mpi_core_sub:"ff00":"0":"ff00":"ff00":0 mbedtls_mpi_core_sub #226: 0xff00 - 0x1 = 0xfeff/feff, carry 0 -mbedtls_mpi_core_sub:"ff00":"1":"feff":"feff":0 +mpi_core_sub:"ff00":"1":"feff":"feff":0 mbedtls_mpi_core_sub #227: 0xff00 - 0x3 = 0xfefd/fefd, carry 0 -mbedtls_mpi_core_sub:"ff00":"3":"fefd":"fefd":0 +mpi_core_sub:"ff00":"3":"fefd":"fefd":0 mbedtls_mpi_core_sub #228: 0xff00 - 0xf = 0xfef1/fef1, carry 0 -mbedtls_mpi_core_sub:"ff00":"f":"fef1":"fef1":0 +mpi_core_sub:"ff00":"f":"fef1":"fef1":0 mbedtls_mpi_core_sub #229: 0xff00 - 0xfe = 0xfe02/fe02, carry 0 -mbedtls_mpi_core_sub:"ff00":"fe":"fe02":"fe02":0 +mpi_core_sub:"ff00":"fe":"fe02":"fe02":0 mbedtls_mpi_core_sub #230: 0xff00 - 0xff = 0xfe01/fe01, carry 0 -mbedtls_mpi_core_sub:"ff00":"ff":"fe01":"fe01":0 +mpi_core_sub:"ff00":"ff":"fe01":"fe01":0 mbedtls_mpi_core_sub #231: 0xff00 - 0x100 = 0xfe00/fe00, carry 0 -mbedtls_mpi_core_sub:"ff00":"100":"fe00":"fe00":0 +mpi_core_sub:"ff00":"100":"fe00":"fe00":0 mbedtls_mpi_core_sub #232: 0xff00 - 0xff00 = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"ff00":"ff00":"0":"0":0 +mpi_core_sub:"ff00":"ff00":"0":"0":0 mbedtls_mpi_core_sub #233: 0xff00 - 0xfffe = 0xffffff02/ffffffffffffff02, carry 1 -mbedtls_mpi_core_sub:"ff00":"fffe":"ffffff02":"ffffffffffffff02":1 +mpi_core_sub:"ff00":"fffe":"ffffff02":"ffffffffffffff02":1 mbedtls_mpi_core_sub #234: 0xff00 - 0xffff = 0xffffff01/ffffffffffffff01, carry 1 -mbedtls_mpi_core_sub:"ff00":"ffff":"ffffff01":"ffffffffffffff01":1 +mpi_core_sub:"ff00":"ffff":"ffffff01":"ffffffffffffff01":1 mbedtls_mpi_core_sub #235: 0xff00 - 0x10000 = 0xffffff00/ffffffffffffff00, carry 1 -mbedtls_mpi_core_sub:"ff00":"10000":"ffffff00":"ffffffffffffff00":1 +mpi_core_sub:"ff00":"10000":"ffffff00":"ffffffffffffff00":1 mbedtls_mpi_core_sub #236: 0xff00 - 0xfffffffe = 0xff02/ffffffff0000ff02, carry 1 -mbedtls_mpi_core_sub:"ff00":"fffffffe":"ff02":"ffffffff0000ff02":1 +mpi_core_sub:"ff00":"fffffffe":"ff02":"ffffffff0000ff02":1 mbedtls_mpi_core_sub #237: 0xff00 - 0xffffffff = 0xff01/ffffffff0000ff01, carry 1 -mbedtls_mpi_core_sub:"ff00":"ffffffff":"ff01":"ffffffff0000ff01":1 +mpi_core_sub:"ff00":"ffffffff":"ff01":"ffffffff0000ff01":1 mbedtls_mpi_core_sub #238: 0xff00 - 0x100000000 = 0xffffffff0000ff00/ffffffff0000ff00, carry 1 -mbedtls_mpi_core_sub:"ff00":"100000000":"ffffffff0000ff00":"ffffffff0000ff00":1 +mpi_core_sub:"ff00":"100000000":"ffffffff0000ff00":"ffffffff0000ff00":1 mbedtls_mpi_core_sub #239: 0xff00 - 0x1f7f7f7f7f7f7f = 0xffe0808080817f81/ffe0808080817f81, carry 1 -mbedtls_mpi_core_sub:"ff00":"1f7f7f7f7f7f7f":"ffe0808080817f81":"ffe0808080817f81":1 +mpi_core_sub:"ff00":"1f7f7f7f7f7f7f":"ffe0808080817f81":"ffe0808080817f81":1 mbedtls_mpi_core_sub #240: 0xff00 - 0x8000000000000000 = 0x800000000000ff00/800000000000ff00, carry 1 -mbedtls_mpi_core_sub:"ff00":"8000000000000000":"800000000000ff00":"800000000000ff00":1 +mpi_core_sub:"ff00":"8000000000000000":"800000000000ff00":"800000000000ff00":1 mbedtls_mpi_core_sub #241: 0xff00 - 0xfefefefefefefefe = 0x101010101020002/101010101020002, carry 1 -mbedtls_mpi_core_sub:"ff00":"fefefefefefefefe":"101010101020002":"101010101020002":1 +mpi_core_sub:"ff00":"fefefefefefefefe":"101010101020002":"101010101020002":1 mbedtls_mpi_core_sub #242: 0xff00 - 0xfffffffffffffffe = 0xff02/ff02, carry 1 -mbedtls_mpi_core_sub:"ff00":"fffffffffffffffe":"ff02":"ff02":1 +mpi_core_sub:"ff00":"fffffffffffffffe":"ff02":"ff02":1 mbedtls_mpi_core_sub #243: 0xff00 - 0xffffffffffffffff = 0xff01/ff01, carry 1 -mbedtls_mpi_core_sub:"ff00":"ffffffffffffffff":"ff01":"ff01":1 +mpi_core_sub:"ff00":"ffffffffffffffff":"ff01":"ff01":1 mbedtls_mpi_core_sub #244: 0xff00 - 0x10000000000000000 = 0xffffffff000000000000ff00/ffffffffffffffff000000000000ff00, carry 1 -mbedtls_mpi_core_sub:"ff00":"10000000000000000":"ffffffff000000000000ff00":"ffffffffffffffff000000000000ff00":1 +mpi_core_sub:"ff00":"10000000000000000":"ffffffff000000000000ff00":"ffffffffffffffff000000000000ff00":1 mbedtls_mpi_core_sub #245: 0xff00 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5442010/fffffffffffffffedcba9876f5442010, carry 1 -mbedtls_mpi_core_sub:"ff00":"1234567890abcdef0":"fffffffedcba9876f5442010":"fffffffffffffffedcba9876f5442010":1 +mpi_core_sub:"ff00":"1234567890abcdef0":"fffffffedcba9876f5442010":"fffffffffffffffedcba9876f5442010":1 mbedtls_mpi_core_sub #246: 0xff00 - 0xfffffffffffffffffefefefefefefefe = 0x101010101020002/101010101020002, carry 1 -mbedtls_mpi_core_sub:"ff00":"fffffffffffffffffefefefefefefefe":"101010101020002":"101010101020002":1 +mpi_core_sub:"ff00":"fffffffffffffffffefefefefefefefe":"101010101020002":"101010101020002":1 mbedtls_mpi_core_sub #247: 0xff00 - 0xfffffffffffffffffffffffffffffffe = 0xff02/ff02, carry 1 -mbedtls_mpi_core_sub:"ff00":"fffffffffffffffffffffffffffffffe":"ff02":"ff02":1 +mpi_core_sub:"ff00":"fffffffffffffffffffffffffffffffe":"ff02":"ff02":1 mbedtls_mpi_core_sub #248: 0xff00 - 0xffffffffffffffffffffffffffffffff = 0xff01/ff01, carry 1 -mbedtls_mpi_core_sub:"ff00":"ffffffffffffffffffffffffffffffff":"ff01":"ff01":1 +mpi_core_sub:"ff00":"ffffffffffffffffffffffffffffffff":"ff01":"ff01":1 mbedtls_mpi_core_sub #249: 0xff00 - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000000000000000ff00/ffffffffffffffff0000000000000000000000000000ff00, carry 1 -mbedtls_mpi_core_sub:"ff00":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000ff00":"ffffffffffffffff0000000000000000000000000000ff00":1 +mpi_core_sub:"ff00":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000ff00":"ffffffffffffffff0000000000000000000000000000ff00":1 mbedtls_mpi_core_sub #250: 0xff00 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5442010/ffffffffffffffedcba9876f543210fedcba9876f5442010, carry 1 -mbedtls_mpi_core_sub:"ff00":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5442010":"ffffffffffffffedcba9876f543210fedcba9876f5442010":1 +mpi_core_sub:"ff00":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5442010":"ffffffffffffffedcba9876f543210fedcba9876f5442010":1 mbedtls_mpi_core_sub #251: 0xff00 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101020002/101010101020002, carry 1 -mbedtls_mpi_core_sub:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020002":"101010101020002":1 +mpi_core_sub:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020002":"101010101020002":1 mbedtls_mpi_core_sub #252: 0xff00 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0xff02/ff02, carry 1 -mbedtls_mpi_core_sub:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ff02":"ff02":1 +mpi_core_sub:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ff02":"ff02":1 mbedtls_mpi_core_sub #253: 0xff00 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xff01/ff01, carry 1 -mbedtls_mpi_core_sub:"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff01":"ff01":1 +mpi_core_sub:"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff01":"ff01":1 mbedtls_mpi_core_sub #254: 0xff00 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000000000000000ff00/ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ff00, carry 1 -mbedtls_mpi_core_sub:"ff00":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000ff00":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ff00":1 +mpi_core_sub:"ff00":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000ff00":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ff00":1 mbedtls_mpi_core_sub #255: 0xff00 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010, carry 1 -mbedtls_mpi_core_sub:"ff00":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010":1 +mpi_core_sub:"ff00":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010":1 mbedtls_mpi_core_sub #256: 0xff00 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5, carry 1 -mbedtls_mpi_core_sub:"ff00":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5":1 +mpi_core_sub:"ff00":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5":1 mbedtls_mpi_core_sub #257: 0xfffe - 0x0 = 0xfffe/fffe, carry 0 -mbedtls_mpi_core_sub:"fffe":"0":"fffe":"fffe":0 +mpi_core_sub:"fffe":"0":"fffe":"fffe":0 mbedtls_mpi_core_sub #258: 0xfffe - 0x1 = 0xfffd/fffd, carry 0 -mbedtls_mpi_core_sub:"fffe":"1":"fffd":"fffd":0 +mpi_core_sub:"fffe":"1":"fffd":"fffd":0 mbedtls_mpi_core_sub #259: 0xfffe - 0x3 = 0xfffb/fffb, carry 0 -mbedtls_mpi_core_sub:"fffe":"3":"fffb":"fffb":0 +mpi_core_sub:"fffe":"3":"fffb":"fffb":0 mbedtls_mpi_core_sub #260: 0xfffe - 0xf = 0xffef/ffef, carry 0 -mbedtls_mpi_core_sub:"fffe":"f":"ffef":"ffef":0 +mpi_core_sub:"fffe":"f":"ffef":"ffef":0 mbedtls_mpi_core_sub #261: 0xfffe - 0xfe = 0xff00/ff00, carry 0 -mbedtls_mpi_core_sub:"fffe":"fe":"ff00":"ff00":0 +mpi_core_sub:"fffe":"fe":"ff00":"ff00":0 mbedtls_mpi_core_sub #262: 0xfffe - 0xff = 0xfeff/feff, carry 0 -mbedtls_mpi_core_sub:"fffe":"ff":"feff":"feff":0 +mpi_core_sub:"fffe":"ff":"feff":"feff":0 mbedtls_mpi_core_sub #263: 0xfffe - 0x100 = 0xfefe/fefe, carry 0 -mbedtls_mpi_core_sub:"fffe":"100":"fefe":"fefe":0 +mpi_core_sub:"fffe":"100":"fefe":"fefe":0 mbedtls_mpi_core_sub #264: 0xfffe - 0xff00 = 0xfe/fe, carry 0 -mbedtls_mpi_core_sub:"fffe":"ff00":"fe":"fe":0 +mpi_core_sub:"fffe":"ff00":"fe":"fe":0 mbedtls_mpi_core_sub #265: 0xfffe - 0xfffe = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"fffe":"fffe":"0":"0":0 +mpi_core_sub:"fffe":"fffe":"0":"0":0 mbedtls_mpi_core_sub #266: 0xfffe - 0xffff = 0xffffffff/ffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"fffe":"ffff":"ffffffff":"ffffffffffffffff":1 +mpi_core_sub:"fffe":"ffff":"ffffffff":"ffffffffffffffff":1 mbedtls_mpi_core_sub #267: 0xfffe - 0x10000 = 0xfffffffe/fffffffffffffffe, carry 1 -mbedtls_mpi_core_sub:"fffe":"10000":"fffffffe":"fffffffffffffffe":1 +mpi_core_sub:"fffe":"10000":"fffffffe":"fffffffffffffffe":1 mbedtls_mpi_core_sub #268: 0xfffe - 0xfffffffe = 0x10000/ffffffff00010000, carry 1 -mbedtls_mpi_core_sub:"fffe":"fffffffe":"10000":"ffffffff00010000":1 +mpi_core_sub:"fffe":"fffffffe":"10000":"ffffffff00010000":1 mbedtls_mpi_core_sub #269: 0xfffe - 0xffffffff = 0xffff/ffffffff0000ffff, carry 1 -mbedtls_mpi_core_sub:"fffe":"ffffffff":"ffff":"ffffffff0000ffff":1 +mpi_core_sub:"fffe":"ffffffff":"ffff":"ffffffff0000ffff":1 mbedtls_mpi_core_sub #270: 0xfffe - 0x100000000 = 0xffffffff0000fffe/ffffffff0000fffe, carry 1 -mbedtls_mpi_core_sub:"fffe":"100000000":"ffffffff0000fffe":"ffffffff0000fffe":1 +mpi_core_sub:"fffe":"100000000":"ffffffff0000fffe":"ffffffff0000fffe":1 mbedtls_mpi_core_sub #271: 0xfffe - 0x1f7f7f7f7f7f7f = 0xffe080808081807f/ffe080808081807f, carry 1 -mbedtls_mpi_core_sub:"fffe":"1f7f7f7f7f7f7f":"ffe080808081807f":"ffe080808081807f":1 +mpi_core_sub:"fffe":"1f7f7f7f7f7f7f":"ffe080808081807f":"ffe080808081807f":1 mbedtls_mpi_core_sub #272: 0xfffe - 0x8000000000000000 = 0x800000000000fffe/800000000000fffe, carry 1 -mbedtls_mpi_core_sub:"fffe":"8000000000000000":"800000000000fffe":"800000000000fffe":1 +mpi_core_sub:"fffe":"8000000000000000":"800000000000fffe":"800000000000fffe":1 mbedtls_mpi_core_sub #273: 0xfffe - 0xfefefefefefefefe = 0x101010101020100/101010101020100, carry 1 -mbedtls_mpi_core_sub:"fffe":"fefefefefefefefe":"101010101020100":"101010101020100":1 +mpi_core_sub:"fffe":"fefefefefefefefe":"101010101020100":"101010101020100":1 mbedtls_mpi_core_sub #274: 0xfffe - 0xfffffffffffffffe = 0x10000/10000, carry 1 -mbedtls_mpi_core_sub:"fffe":"fffffffffffffffe":"10000":"10000":1 +mpi_core_sub:"fffe":"fffffffffffffffe":"10000":"10000":1 mbedtls_mpi_core_sub #275: 0xfffe - 0xffffffffffffffff = 0xffff/ffff, carry 1 -mbedtls_mpi_core_sub:"fffe":"ffffffffffffffff":"ffff":"ffff":1 +mpi_core_sub:"fffe":"ffffffffffffffff":"ffff":"ffff":1 mbedtls_mpi_core_sub #276: 0xfffe - 0x10000000000000000 = 0xffffffff000000000000fffe/ffffffffffffffff000000000000fffe, carry 1 -mbedtls_mpi_core_sub:"fffe":"10000000000000000":"ffffffff000000000000fffe":"ffffffffffffffff000000000000fffe":1 +mpi_core_sub:"fffe":"10000000000000000":"ffffffff000000000000fffe":"ffffffffffffffff000000000000fffe":1 mbedtls_mpi_core_sub #277: 0xfffe - 0x1234567890abcdef0 = 0xfffffffedcba9876f544210e/fffffffffffffffedcba9876f544210e, carry 1 -mbedtls_mpi_core_sub:"fffe":"1234567890abcdef0":"fffffffedcba9876f544210e":"fffffffffffffffedcba9876f544210e":1 +mpi_core_sub:"fffe":"1234567890abcdef0":"fffffffedcba9876f544210e":"fffffffffffffffedcba9876f544210e":1 mbedtls_mpi_core_sub #278: 0xfffe - 0xfffffffffffffffffefefefefefefefe = 0x101010101020100/101010101020100, carry 1 -mbedtls_mpi_core_sub:"fffe":"fffffffffffffffffefefefefefefefe":"101010101020100":"101010101020100":1 +mpi_core_sub:"fffe":"fffffffffffffffffefefefefefefefe":"101010101020100":"101010101020100":1 mbedtls_mpi_core_sub #279: 0xfffe - 0xfffffffffffffffffffffffffffffffe = 0x10000/10000, carry 1 -mbedtls_mpi_core_sub:"fffe":"fffffffffffffffffffffffffffffffe":"10000":"10000":1 +mpi_core_sub:"fffe":"fffffffffffffffffffffffffffffffe":"10000":"10000":1 mbedtls_mpi_core_sub #280: 0xfffe - 0xffffffffffffffffffffffffffffffff = 0xffff/ffff, carry 1 -mbedtls_mpi_core_sub:"fffe":"ffffffffffffffffffffffffffffffff":"ffff":"ffff":1 +mpi_core_sub:"fffe":"ffffffffffffffffffffffffffffffff":"ffff":"ffff":1 mbedtls_mpi_core_sub #281: 0xfffe - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000000000000000fffe/ffffffffffffffff0000000000000000000000000000fffe, carry 1 -mbedtls_mpi_core_sub:"fffe":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000fffe":"ffffffffffffffff0000000000000000000000000000fffe":1 +mpi_core_sub:"fffe":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000fffe":"ffffffffffffffff0000000000000000000000000000fffe":1 mbedtls_mpi_core_sub #282: 0xfffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f544210e/ffffffffffffffedcba9876f543210fedcba9876f544210e, carry 1 -mbedtls_mpi_core_sub:"fffe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f544210e":"ffffffffffffffedcba9876f543210fedcba9876f544210e":1 +mpi_core_sub:"fffe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f544210e":"ffffffffffffffedcba9876f543210fedcba9876f544210e":1 mbedtls_mpi_core_sub #283: 0xfffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101020100/101010101020100, carry 1 -mbedtls_mpi_core_sub:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020100":"101010101020100":1 +mpi_core_sub:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020100":"101010101020100":1 mbedtls_mpi_core_sub #284: 0xfffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10000/10000, carry 1 -mbedtls_mpi_core_sub:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000":"10000":1 +mpi_core_sub:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000":"10000":1 mbedtls_mpi_core_sub #285: 0xfffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffff/ffff, carry 1 -mbedtls_mpi_core_sub:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff":1 +mpi_core_sub:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff":1 mbedtls_mpi_core_sub #286: 0xfffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000000000000000fffe/ffffffffffffffff000000000000000000000000000000000000000000000000000000000000fffe, carry 1 -mbedtls_mpi_core_sub:"fffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000fffe":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000fffe":1 +mpi_core_sub:"fffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000fffe":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000fffe":1 mbedtls_mpi_core_sub #287: 0xfffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e, carry 1 -mbedtls_mpi_core_sub:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e":1 +mpi_core_sub:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e":1 mbedtls_mpi_core_sub #288: 0xfffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3, carry 1 -mbedtls_mpi_core_sub:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3":1 +mpi_core_sub:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3":1 mbedtls_mpi_core_sub #289: 0xffff - 0x0 = 0xffff/ffff, carry 0 -mbedtls_mpi_core_sub:"ffff":"0":"ffff":"ffff":0 +mpi_core_sub:"ffff":"0":"ffff":"ffff":0 mbedtls_mpi_core_sub #290: 0xffff - 0x1 = 0xfffe/fffe, carry 0 -mbedtls_mpi_core_sub:"ffff":"1":"fffe":"fffe":0 +mpi_core_sub:"ffff":"1":"fffe":"fffe":0 mbedtls_mpi_core_sub #291: 0xffff - 0x3 = 0xfffc/fffc, carry 0 -mbedtls_mpi_core_sub:"ffff":"3":"fffc":"fffc":0 +mpi_core_sub:"ffff":"3":"fffc":"fffc":0 mbedtls_mpi_core_sub #292: 0xffff - 0xf = 0xfff0/fff0, carry 0 -mbedtls_mpi_core_sub:"ffff":"f":"fff0":"fff0":0 +mpi_core_sub:"ffff":"f":"fff0":"fff0":0 mbedtls_mpi_core_sub #293: 0xffff - 0xfe = 0xff01/ff01, carry 0 -mbedtls_mpi_core_sub:"ffff":"fe":"ff01":"ff01":0 +mpi_core_sub:"ffff":"fe":"ff01":"ff01":0 mbedtls_mpi_core_sub #294: 0xffff - 0xff = 0xff00/ff00, carry 0 -mbedtls_mpi_core_sub:"ffff":"ff":"ff00":"ff00":0 +mpi_core_sub:"ffff":"ff":"ff00":"ff00":0 mbedtls_mpi_core_sub #295: 0xffff - 0x100 = 0xfeff/feff, carry 0 -mbedtls_mpi_core_sub:"ffff":"100":"feff":"feff":0 +mpi_core_sub:"ffff":"100":"feff":"feff":0 mbedtls_mpi_core_sub #296: 0xffff - 0xff00 = 0xff/ff, carry 0 -mbedtls_mpi_core_sub:"ffff":"ff00":"ff":"ff":0 +mpi_core_sub:"ffff":"ff00":"ff":"ff":0 mbedtls_mpi_core_sub #297: 0xffff - 0xfffe = 0x1/1, carry 0 -mbedtls_mpi_core_sub:"ffff":"fffe":"1":"1":0 +mpi_core_sub:"ffff":"fffe":"1":"1":0 mbedtls_mpi_core_sub #298: 0xffff - 0xffff = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"ffff":"ffff":"0":"0":0 +mpi_core_sub:"ffff":"ffff":"0":"0":0 mbedtls_mpi_core_sub #299: 0xffff - 0x10000 = 0xffffffff/ffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"ffff":"10000":"ffffffff":"ffffffffffffffff":1 +mpi_core_sub:"ffff":"10000":"ffffffff":"ffffffffffffffff":1 mbedtls_mpi_core_sub #300: 0xffff - 0xfffffffe = 0x10001/ffffffff00010001, carry 1 -mbedtls_mpi_core_sub:"ffff":"fffffffe":"10001":"ffffffff00010001":1 +mpi_core_sub:"ffff":"fffffffe":"10001":"ffffffff00010001":1 mbedtls_mpi_core_sub #301: 0xffff - 0xffffffff = 0x10000/ffffffff00010000, carry 1 -mbedtls_mpi_core_sub:"ffff":"ffffffff":"10000":"ffffffff00010000":1 +mpi_core_sub:"ffff":"ffffffff":"10000":"ffffffff00010000":1 mbedtls_mpi_core_sub #302: 0xffff - 0x100000000 = 0xffffffff0000ffff/ffffffff0000ffff, carry 1 -mbedtls_mpi_core_sub:"ffff":"100000000":"ffffffff0000ffff":"ffffffff0000ffff":1 +mpi_core_sub:"ffff":"100000000":"ffffffff0000ffff":"ffffffff0000ffff":1 mbedtls_mpi_core_sub #303: 0xffff - 0x1f7f7f7f7f7f7f = 0xffe0808080818080/ffe0808080818080, carry 1 -mbedtls_mpi_core_sub:"ffff":"1f7f7f7f7f7f7f":"ffe0808080818080":"ffe0808080818080":1 +mpi_core_sub:"ffff":"1f7f7f7f7f7f7f":"ffe0808080818080":"ffe0808080818080":1 mbedtls_mpi_core_sub #304: 0xffff - 0x8000000000000000 = 0x800000000000ffff/800000000000ffff, carry 1 -mbedtls_mpi_core_sub:"ffff":"8000000000000000":"800000000000ffff":"800000000000ffff":1 +mpi_core_sub:"ffff":"8000000000000000":"800000000000ffff":"800000000000ffff":1 mbedtls_mpi_core_sub #305: 0xffff - 0xfefefefefefefefe = 0x101010101020101/101010101020101, carry 1 -mbedtls_mpi_core_sub:"ffff":"fefefefefefefefe":"101010101020101":"101010101020101":1 +mpi_core_sub:"ffff":"fefefefefefefefe":"101010101020101":"101010101020101":1 mbedtls_mpi_core_sub #306: 0xffff - 0xfffffffffffffffe = 0x10001/10001, carry 1 -mbedtls_mpi_core_sub:"ffff":"fffffffffffffffe":"10001":"10001":1 +mpi_core_sub:"ffff":"fffffffffffffffe":"10001":"10001":1 mbedtls_mpi_core_sub #307: 0xffff - 0xffffffffffffffff = 0x10000/10000, carry 1 -mbedtls_mpi_core_sub:"ffff":"ffffffffffffffff":"10000":"10000":1 +mpi_core_sub:"ffff":"ffffffffffffffff":"10000":"10000":1 mbedtls_mpi_core_sub #308: 0xffff - 0x10000000000000000 = 0xffffffff000000000000ffff/ffffffffffffffff000000000000ffff, carry 1 -mbedtls_mpi_core_sub:"ffff":"10000000000000000":"ffffffff000000000000ffff":"ffffffffffffffff000000000000ffff":1 +mpi_core_sub:"ffff":"10000000000000000":"ffffffff000000000000ffff":"ffffffffffffffff000000000000ffff":1 mbedtls_mpi_core_sub #309: 0xffff - 0x1234567890abcdef0 = 0xfffffffedcba9876f544210f/fffffffffffffffedcba9876f544210f, carry 1 -mbedtls_mpi_core_sub:"ffff":"1234567890abcdef0":"fffffffedcba9876f544210f":"fffffffffffffffedcba9876f544210f":1 +mpi_core_sub:"ffff":"1234567890abcdef0":"fffffffedcba9876f544210f":"fffffffffffffffedcba9876f544210f":1 mbedtls_mpi_core_sub #310: 0xffff - 0xfffffffffffffffffefefefefefefefe = 0x101010101020101/101010101020101, carry 1 -mbedtls_mpi_core_sub:"ffff":"fffffffffffffffffefefefefefefefe":"101010101020101":"101010101020101":1 +mpi_core_sub:"ffff":"fffffffffffffffffefefefefefefefe":"101010101020101":"101010101020101":1 mbedtls_mpi_core_sub #311: 0xffff - 0xfffffffffffffffffffffffffffffffe = 0x10001/10001, carry 1 -mbedtls_mpi_core_sub:"ffff":"fffffffffffffffffffffffffffffffe":"10001":"10001":1 +mpi_core_sub:"ffff":"fffffffffffffffffffffffffffffffe":"10001":"10001":1 mbedtls_mpi_core_sub #312: 0xffff - 0xffffffffffffffffffffffffffffffff = 0x10000/10000, carry 1 -mbedtls_mpi_core_sub:"ffff":"ffffffffffffffffffffffffffffffff":"10000":"10000":1 +mpi_core_sub:"ffff":"ffffffffffffffffffffffffffffffff":"10000":"10000":1 mbedtls_mpi_core_sub #313: 0xffff - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000000000000000ffff/ffffffffffffffff0000000000000000000000000000ffff, carry 1 -mbedtls_mpi_core_sub:"ffff":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000ffff":"ffffffffffffffff0000000000000000000000000000ffff":1 +mpi_core_sub:"ffff":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000ffff":"ffffffffffffffff0000000000000000000000000000ffff":1 mbedtls_mpi_core_sub #314: 0xffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f544210f/ffffffffffffffedcba9876f543210fedcba9876f544210f, carry 1 -mbedtls_mpi_core_sub:"ffff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f544210f":"ffffffffffffffedcba9876f543210fedcba9876f544210f":1 +mpi_core_sub:"ffff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f544210f":"ffffffffffffffedcba9876f543210fedcba9876f544210f":1 mbedtls_mpi_core_sub #315: 0xffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101020101/101010101020101, carry 1 -mbedtls_mpi_core_sub:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020101":"101010101020101":1 +mpi_core_sub:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020101":"101010101020101":1 mbedtls_mpi_core_sub #316: 0xffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10001/10001, carry 1 -mbedtls_mpi_core_sub:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10001":"10001":1 +mpi_core_sub:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10001":"10001":1 mbedtls_mpi_core_sub #317: 0xffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10000/10000, carry 1 -mbedtls_mpi_core_sub:"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"10000":1 +mpi_core_sub:"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"10000":1 mbedtls_mpi_core_sub #318: 0xffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000000000000000ffff/ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ffff, carry 1 -mbedtls_mpi_core_sub:"ffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000ffff":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ffff":1 +mpi_core_sub:"ffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000ffff":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ffff":1 mbedtls_mpi_core_sub #319: 0xffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f, carry 1 -mbedtls_mpi_core_sub:"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f":1 +mpi_core_sub:"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f":1 mbedtls_mpi_core_sub #320: 0xffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4, carry 1 -mbedtls_mpi_core_sub:"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4":1 +mpi_core_sub:"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4":1 mbedtls_mpi_core_sub #321: 0x10000 - 0x0 = 0x10000/10000, carry 0 -mbedtls_mpi_core_sub:"10000":"0":"10000":"10000":0 +mpi_core_sub:"10000":"0":"10000":"10000":0 mbedtls_mpi_core_sub #322: 0x10000 - 0x1 = 0xffff/ffff, carry 0 -mbedtls_mpi_core_sub:"10000":"1":"ffff":"ffff":0 +mpi_core_sub:"10000":"1":"ffff":"ffff":0 mbedtls_mpi_core_sub #323: 0x10000 - 0x3 = 0xfffd/fffd, carry 0 -mbedtls_mpi_core_sub:"10000":"3":"fffd":"fffd":0 +mpi_core_sub:"10000":"3":"fffd":"fffd":0 mbedtls_mpi_core_sub #324: 0x10000 - 0xf = 0xfff1/fff1, carry 0 -mbedtls_mpi_core_sub:"10000":"f":"fff1":"fff1":0 +mpi_core_sub:"10000":"f":"fff1":"fff1":0 mbedtls_mpi_core_sub #325: 0x10000 - 0xfe = 0xff02/ff02, carry 0 -mbedtls_mpi_core_sub:"10000":"fe":"ff02":"ff02":0 +mpi_core_sub:"10000":"fe":"ff02":"ff02":0 mbedtls_mpi_core_sub #326: 0x10000 - 0xff = 0xff01/ff01, carry 0 -mbedtls_mpi_core_sub:"10000":"ff":"ff01":"ff01":0 +mpi_core_sub:"10000":"ff":"ff01":"ff01":0 mbedtls_mpi_core_sub #327: 0x10000 - 0x100 = 0xff00/ff00, carry 0 -mbedtls_mpi_core_sub:"10000":"100":"ff00":"ff00":0 +mpi_core_sub:"10000":"100":"ff00":"ff00":0 mbedtls_mpi_core_sub #328: 0x10000 - 0xff00 = 0x100/100, carry 0 -mbedtls_mpi_core_sub:"10000":"ff00":"100":"100":0 +mpi_core_sub:"10000":"ff00":"100":"100":0 mbedtls_mpi_core_sub #329: 0x10000 - 0xfffe = 0x2/2, carry 0 -mbedtls_mpi_core_sub:"10000":"fffe":"2":"2":0 +mpi_core_sub:"10000":"fffe":"2":"2":0 mbedtls_mpi_core_sub #330: 0x10000 - 0xffff = 0x1/1, carry 0 -mbedtls_mpi_core_sub:"10000":"ffff":"1":"1":0 +mpi_core_sub:"10000":"ffff":"1":"1":0 mbedtls_mpi_core_sub #331: 0x10000 - 0x10000 = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"10000":"10000":"0":"0":0 +mpi_core_sub:"10000":"10000":"0":"0":0 mbedtls_mpi_core_sub #332: 0x10000 - 0xfffffffe = 0x10002/ffffffff00010002, carry 1 -mbedtls_mpi_core_sub:"10000":"fffffffe":"10002":"ffffffff00010002":1 +mpi_core_sub:"10000":"fffffffe":"10002":"ffffffff00010002":1 mbedtls_mpi_core_sub #333: 0x10000 - 0xffffffff = 0x10001/ffffffff00010001, carry 1 -mbedtls_mpi_core_sub:"10000":"ffffffff":"10001":"ffffffff00010001":1 +mpi_core_sub:"10000":"ffffffff":"10001":"ffffffff00010001":1 mbedtls_mpi_core_sub #334: 0x10000 - 0x100000000 = 0xffffffff00010000/ffffffff00010000, carry 1 -mbedtls_mpi_core_sub:"10000":"100000000":"ffffffff00010000":"ffffffff00010000":1 +mpi_core_sub:"10000":"100000000":"ffffffff00010000":"ffffffff00010000":1 mbedtls_mpi_core_sub #335: 0x10000 - 0x1f7f7f7f7f7f7f = 0xffe0808080818081/ffe0808080818081, carry 1 -mbedtls_mpi_core_sub:"10000":"1f7f7f7f7f7f7f":"ffe0808080818081":"ffe0808080818081":1 +mpi_core_sub:"10000":"1f7f7f7f7f7f7f":"ffe0808080818081":"ffe0808080818081":1 mbedtls_mpi_core_sub #336: 0x10000 - 0x8000000000000000 = 0x8000000000010000/8000000000010000, carry 1 -mbedtls_mpi_core_sub:"10000":"8000000000000000":"8000000000010000":"8000000000010000":1 +mpi_core_sub:"10000":"8000000000000000":"8000000000010000":"8000000000010000":1 mbedtls_mpi_core_sub #337: 0x10000 - 0xfefefefefefefefe = 0x101010101020102/101010101020102, carry 1 -mbedtls_mpi_core_sub:"10000":"fefefefefefefefe":"101010101020102":"101010101020102":1 +mpi_core_sub:"10000":"fefefefefefefefe":"101010101020102":"101010101020102":1 mbedtls_mpi_core_sub #338: 0x10000 - 0xfffffffffffffffe = 0x10002/10002, carry 1 -mbedtls_mpi_core_sub:"10000":"fffffffffffffffe":"10002":"10002":1 +mpi_core_sub:"10000":"fffffffffffffffe":"10002":"10002":1 mbedtls_mpi_core_sub #339: 0x10000 - 0xffffffffffffffff = 0x10001/10001, carry 1 -mbedtls_mpi_core_sub:"10000":"ffffffffffffffff":"10001":"10001":1 +mpi_core_sub:"10000":"ffffffffffffffff":"10001":"10001":1 mbedtls_mpi_core_sub #340: 0x10000 - 0x10000000000000000 = 0xffffffff0000000000010000/ffffffffffffffff0000000000010000, carry 1 -mbedtls_mpi_core_sub:"10000":"10000000000000000":"ffffffff0000000000010000":"ffffffffffffffff0000000000010000":1 +mpi_core_sub:"10000":"10000000000000000":"ffffffff0000000000010000":"ffffffffffffffff0000000000010000":1 mbedtls_mpi_core_sub #341: 0x10000 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5442110/fffffffffffffffedcba9876f5442110, carry 1 -mbedtls_mpi_core_sub:"10000":"1234567890abcdef0":"fffffffedcba9876f5442110":"fffffffffffffffedcba9876f5442110":1 +mpi_core_sub:"10000":"1234567890abcdef0":"fffffffedcba9876f5442110":"fffffffffffffffedcba9876f5442110":1 mbedtls_mpi_core_sub #342: 0x10000 - 0xfffffffffffffffffefefefefefefefe = 0x101010101020102/101010101020102, carry 1 -mbedtls_mpi_core_sub:"10000":"fffffffffffffffffefefefefefefefe":"101010101020102":"101010101020102":1 +mpi_core_sub:"10000":"fffffffffffffffffefefefefefefefe":"101010101020102":"101010101020102":1 mbedtls_mpi_core_sub #343: 0x10000 - 0xfffffffffffffffffffffffffffffffe = 0x10002/10002, carry 1 -mbedtls_mpi_core_sub:"10000":"fffffffffffffffffffffffffffffffe":"10002":"10002":1 +mpi_core_sub:"10000":"fffffffffffffffffffffffffffffffe":"10002":"10002":1 mbedtls_mpi_core_sub #344: 0x10000 - 0xffffffffffffffffffffffffffffffff = 0x10001/10001, carry 1 -mbedtls_mpi_core_sub:"10000":"ffffffffffffffffffffffffffffffff":"10001":"10001":1 +mpi_core_sub:"10000":"ffffffffffffffffffffffffffffffff":"10001":"10001":1 mbedtls_mpi_core_sub #345: 0x10000 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000010000/ffffffffffffffff00000000000000000000000000010000, carry 1 -mbedtls_mpi_core_sub:"10000":"100000000000000000000000000000000":"ffffffff00000000000000000000000000010000":"ffffffffffffffff00000000000000000000000000010000":1 +mpi_core_sub:"10000":"100000000000000000000000000000000":"ffffffff00000000000000000000000000010000":"ffffffffffffffff00000000000000000000000000010000":1 mbedtls_mpi_core_sub #346: 0x10000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5442110/ffffffffffffffedcba9876f543210fedcba9876f5442110, carry 1 -mbedtls_mpi_core_sub:"10000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5442110":"ffffffffffffffedcba9876f543210fedcba9876f5442110":1 +mpi_core_sub:"10000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5442110":"ffffffffffffffedcba9876f543210fedcba9876f5442110":1 mbedtls_mpi_core_sub #347: 0x10000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101020102/101010101020102, carry 1 -mbedtls_mpi_core_sub:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020102":"101010101020102":1 +mpi_core_sub:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020102":"101010101020102":1 mbedtls_mpi_core_sub #348: 0x10000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10002/10002, carry 1 -mbedtls_mpi_core_sub:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10002":"10002":1 +mpi_core_sub:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10002":"10002":1 mbedtls_mpi_core_sub #349: 0x10000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10001/10001, carry 1 -mbedtls_mpi_core_sub:"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10001":"10001":1 +mpi_core_sub:"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10001":"10001":1 mbedtls_mpi_core_sub #350: 0x10000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000010000/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000010000, carry 1 -mbedtls_mpi_core_sub:"10000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000010000":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000010000":1 +mpi_core_sub:"10000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000010000":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000010000":1 mbedtls_mpi_core_sub #351: 0x10000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110, carry 1 -mbedtls_mpi_core_sub:"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110":1 +mpi_core_sub:"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110":1 mbedtls_mpi_core_sub #352: 0x10000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5, carry 1 -mbedtls_mpi_core_sub:"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5":1 +mpi_core_sub:"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5":1 mbedtls_mpi_core_sub #353: 0xfffffffe - 0x0 = 0xfffffffe/fffffffe, carry 0 -mbedtls_mpi_core_sub:"fffffffe":"0":"fffffffe":"fffffffe":0 +mpi_core_sub:"fffffffe":"0":"fffffffe":"fffffffe":0 mbedtls_mpi_core_sub #354: 0xfffffffe - 0x1 = 0xfffffffd/fffffffd, carry 0 -mbedtls_mpi_core_sub:"fffffffe":"1":"fffffffd":"fffffffd":0 +mpi_core_sub:"fffffffe":"1":"fffffffd":"fffffffd":0 mbedtls_mpi_core_sub #355: 0xfffffffe - 0x3 = 0xfffffffb/fffffffb, carry 0 -mbedtls_mpi_core_sub:"fffffffe":"3":"fffffffb":"fffffffb":0 +mpi_core_sub:"fffffffe":"3":"fffffffb":"fffffffb":0 mbedtls_mpi_core_sub #356: 0xfffffffe - 0xf = 0xffffffef/ffffffef, carry 0 -mbedtls_mpi_core_sub:"fffffffe":"f":"ffffffef":"ffffffef":0 +mpi_core_sub:"fffffffe":"f":"ffffffef":"ffffffef":0 mbedtls_mpi_core_sub #357: 0xfffffffe - 0xfe = 0xffffff00/ffffff00, carry 0 -mbedtls_mpi_core_sub:"fffffffe":"fe":"ffffff00":"ffffff00":0 +mpi_core_sub:"fffffffe":"fe":"ffffff00":"ffffff00":0 mbedtls_mpi_core_sub #358: 0xfffffffe - 0xff = 0xfffffeff/fffffeff, carry 0 -mbedtls_mpi_core_sub:"fffffffe":"ff":"fffffeff":"fffffeff":0 +mpi_core_sub:"fffffffe":"ff":"fffffeff":"fffffeff":0 mbedtls_mpi_core_sub #359: 0xfffffffe - 0x100 = 0xfffffefe/fffffefe, carry 0 -mbedtls_mpi_core_sub:"fffffffe":"100":"fffffefe":"fffffefe":0 +mpi_core_sub:"fffffffe":"100":"fffffefe":"fffffefe":0 mbedtls_mpi_core_sub #360: 0xfffffffe - 0xff00 = 0xffff00fe/ffff00fe, carry 0 -mbedtls_mpi_core_sub:"fffffffe":"ff00":"ffff00fe":"ffff00fe":0 +mpi_core_sub:"fffffffe":"ff00":"ffff00fe":"ffff00fe":0 mbedtls_mpi_core_sub #361: 0xfffffffe - 0xfffe = 0xffff0000/ffff0000, carry 0 -mbedtls_mpi_core_sub:"fffffffe":"fffe":"ffff0000":"ffff0000":0 +mpi_core_sub:"fffffffe":"fffe":"ffff0000":"ffff0000":0 mbedtls_mpi_core_sub #362: 0xfffffffe - 0xffff = 0xfffeffff/fffeffff, carry 0 -mbedtls_mpi_core_sub:"fffffffe":"ffff":"fffeffff":"fffeffff":0 +mpi_core_sub:"fffffffe":"ffff":"fffeffff":"fffeffff":0 mbedtls_mpi_core_sub #363: 0xfffffffe - 0x10000 = 0xfffefffe/fffefffe, carry 0 -mbedtls_mpi_core_sub:"fffffffe":"10000":"fffefffe":"fffefffe":0 +mpi_core_sub:"fffffffe":"10000":"fffefffe":"fffefffe":0 mbedtls_mpi_core_sub #364: 0xfffffffe - 0xfffffffe = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"fffffffe":"fffffffe":"0":"0":0 +mpi_core_sub:"fffffffe":"fffffffe":"0":"0":0 mbedtls_mpi_core_sub #365: 0xfffffffe - 0xffffffff = 0xffffffff/ffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"ffffffff":"ffffffff":"ffffffffffffffff":1 +mpi_core_sub:"fffffffe":"ffffffff":"ffffffff":"ffffffffffffffff":1 mbedtls_mpi_core_sub #366: 0xfffffffe - 0x100000000 = 0xfffffffffffffffe/fffffffffffffffe, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"100000000":"fffffffffffffffe":"fffffffffffffffe":1 +mpi_core_sub:"fffffffe":"100000000":"fffffffffffffffe":"fffffffffffffffe":1 mbedtls_mpi_core_sub #367: 0xfffffffe - 0x1f7f7f7f7f7f7f = 0xffe080818080807f/ffe080818080807f, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"1f7f7f7f7f7f7f":"ffe080818080807f":"ffe080818080807f":1 +mpi_core_sub:"fffffffe":"1f7f7f7f7f7f7f":"ffe080818080807f":"ffe080818080807f":1 mbedtls_mpi_core_sub #368: 0xfffffffe - 0x8000000000000000 = 0x80000000fffffffe/80000000fffffffe, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"8000000000000000":"80000000fffffffe":"80000000fffffffe":1 +mpi_core_sub:"fffffffe":"8000000000000000":"80000000fffffffe":"80000000fffffffe":1 mbedtls_mpi_core_sub #369: 0xfffffffe - 0xfefefefefefefefe = 0x101010201010100/101010201010100, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"fefefefefefefefe":"101010201010100":"101010201010100":1 +mpi_core_sub:"fffffffe":"fefefefefefefefe":"101010201010100":"101010201010100":1 mbedtls_mpi_core_sub #370: 0xfffffffe - 0xfffffffffffffffe = 0x100000000/100000000, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"fffffffffffffffe":"100000000":"100000000":1 +mpi_core_sub:"fffffffe":"fffffffffffffffe":"100000000":"100000000":1 mbedtls_mpi_core_sub #371: 0xfffffffe - 0xffffffffffffffff = 0xffffffff/ffffffff, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"ffffffffffffffff":"ffffffff":"ffffffff":1 +mpi_core_sub:"fffffffe":"ffffffffffffffff":"ffffffff":"ffffffff":1 mbedtls_mpi_core_sub #372: 0xfffffffe - 0x10000000000000000 = 0xffffffff00000000fffffffe/ffffffffffffffff00000000fffffffe, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"10000000000000000":"ffffffff00000000fffffffe":"ffffffffffffffff00000000fffffffe":1 +mpi_core_sub:"fffffffe":"10000000000000000":"ffffffff00000000fffffffe":"ffffffffffffffff00000000fffffffe":1 mbedtls_mpi_core_sub #373: 0xfffffffe - 0x1234567890abcdef0 = 0xfffffffedcba9877f543210e/fffffffffffffffedcba9877f543210e, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"1234567890abcdef0":"fffffffedcba9877f543210e":"fffffffffffffffedcba9877f543210e":1 +mpi_core_sub:"fffffffe":"1234567890abcdef0":"fffffffedcba9877f543210e":"fffffffffffffffedcba9877f543210e":1 mbedtls_mpi_core_sub #374: 0xfffffffe - 0xfffffffffffffffffefefefefefefefe = 0x101010201010100/101010201010100, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"fffffffffffffffffefefefefefefefe":"101010201010100":"101010201010100":1 +mpi_core_sub:"fffffffe":"fffffffffffffffffefefefefefefefe":"101010201010100":"101010201010100":1 mbedtls_mpi_core_sub #375: 0xfffffffe - 0xfffffffffffffffffffffffffffffffe = 0x100000000/100000000, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"fffffffffffffffffffffffffffffffe":"100000000":"100000000":1 +mpi_core_sub:"fffffffe":"fffffffffffffffffffffffffffffffe":"100000000":"100000000":1 mbedtls_mpi_core_sub #376: 0xfffffffe - 0xffffffffffffffffffffffffffffffff = 0xffffffff/ffffffff, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"ffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff":1 +mpi_core_sub:"fffffffe":"ffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff":1 mbedtls_mpi_core_sub #377: 0xfffffffe - 0x100000000000000000000000000000000 = 0xffffffff000000000000000000000000fffffffe/ffffffffffffffff000000000000000000000000fffffffe, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"100000000000000000000000000000000":"ffffffff000000000000000000000000fffffffe":"ffffffffffffffff000000000000000000000000fffffffe":1 +mpi_core_sub:"fffffffe":"100000000000000000000000000000000":"ffffffff000000000000000000000000fffffffe":"ffffffffffffffff000000000000000000000000fffffffe":1 mbedtls_mpi_core_sub #378: 0xfffffffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9877f543210e/ffffffffffffffedcba9876f543210fedcba9877f543210e, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9877f543210e":"ffffffffffffffedcba9876f543210fedcba9877f543210e":1 +mpi_core_sub:"fffffffe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9877f543210e":"ffffffffffffffedcba9876f543210fedcba9877f543210e":1 mbedtls_mpi_core_sub #379: 0xfffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010201010100/101010201010100, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010201010100":"101010201010100":1 +mpi_core_sub:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010201010100":"101010201010100":1 mbedtls_mpi_core_sub #380: 0xfffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000000/100000000, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000":"100000000":1 +mpi_core_sub:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000":"100000000":1 mbedtls_mpi_core_sub #381: 0xfffffffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffffffff/ffffffff, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff":1 +mpi_core_sub:"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff":1 mbedtls_mpi_core_sub #382: 0xfffffffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000000000000000000000000000fffffffe/ffffffffffffffff00000000000000000000000000000000000000000000000000000000fffffffe, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000fffffffe":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000fffffffe":1 +mpi_core_sub:"fffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000fffffffe":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000fffffffe":1 mbedtls_mpi_core_sub #383: 0xfffffffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e":1 +mpi_core_sub:"fffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e":1 mbedtls_mpi_core_sub #384: 0xfffffffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3, carry 1 -mbedtls_mpi_core_sub:"fffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3":1 +mpi_core_sub:"fffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3":1 mbedtls_mpi_core_sub #385: 0xffffffff - 0x0 = 0xffffffff/ffffffff, carry 0 -mbedtls_mpi_core_sub:"ffffffff":"0":"ffffffff":"ffffffff":0 +mpi_core_sub:"ffffffff":"0":"ffffffff":"ffffffff":0 mbedtls_mpi_core_sub #386: 0xffffffff - 0x1 = 0xfffffffe/fffffffe, carry 0 -mbedtls_mpi_core_sub:"ffffffff":"1":"fffffffe":"fffffffe":0 +mpi_core_sub:"ffffffff":"1":"fffffffe":"fffffffe":0 mbedtls_mpi_core_sub #387: 0xffffffff - 0x3 = 0xfffffffc/fffffffc, carry 0 -mbedtls_mpi_core_sub:"ffffffff":"3":"fffffffc":"fffffffc":0 +mpi_core_sub:"ffffffff":"3":"fffffffc":"fffffffc":0 mbedtls_mpi_core_sub #388: 0xffffffff - 0xf = 0xfffffff0/fffffff0, carry 0 -mbedtls_mpi_core_sub:"ffffffff":"f":"fffffff0":"fffffff0":0 +mpi_core_sub:"ffffffff":"f":"fffffff0":"fffffff0":0 mbedtls_mpi_core_sub #389: 0xffffffff - 0xfe = 0xffffff01/ffffff01, carry 0 -mbedtls_mpi_core_sub:"ffffffff":"fe":"ffffff01":"ffffff01":0 +mpi_core_sub:"ffffffff":"fe":"ffffff01":"ffffff01":0 mbedtls_mpi_core_sub #390: 0xffffffff - 0xff = 0xffffff00/ffffff00, carry 0 -mbedtls_mpi_core_sub:"ffffffff":"ff":"ffffff00":"ffffff00":0 +mpi_core_sub:"ffffffff":"ff":"ffffff00":"ffffff00":0 mbedtls_mpi_core_sub #391: 0xffffffff - 0x100 = 0xfffffeff/fffffeff, carry 0 -mbedtls_mpi_core_sub:"ffffffff":"100":"fffffeff":"fffffeff":0 +mpi_core_sub:"ffffffff":"100":"fffffeff":"fffffeff":0 mbedtls_mpi_core_sub #392: 0xffffffff - 0xff00 = 0xffff00ff/ffff00ff, carry 0 -mbedtls_mpi_core_sub:"ffffffff":"ff00":"ffff00ff":"ffff00ff":0 +mpi_core_sub:"ffffffff":"ff00":"ffff00ff":"ffff00ff":0 mbedtls_mpi_core_sub #393: 0xffffffff - 0xfffe = 0xffff0001/ffff0001, carry 0 -mbedtls_mpi_core_sub:"ffffffff":"fffe":"ffff0001":"ffff0001":0 +mpi_core_sub:"ffffffff":"fffe":"ffff0001":"ffff0001":0 mbedtls_mpi_core_sub #394: 0xffffffff - 0xffff = 0xffff0000/ffff0000, carry 0 -mbedtls_mpi_core_sub:"ffffffff":"ffff":"ffff0000":"ffff0000":0 +mpi_core_sub:"ffffffff":"ffff":"ffff0000":"ffff0000":0 mbedtls_mpi_core_sub #395: 0xffffffff - 0x10000 = 0xfffeffff/fffeffff, carry 0 -mbedtls_mpi_core_sub:"ffffffff":"10000":"fffeffff":"fffeffff":0 +mpi_core_sub:"ffffffff":"10000":"fffeffff":"fffeffff":0 mbedtls_mpi_core_sub #396: 0xffffffff - 0xfffffffe = 0x1/1, carry 0 -mbedtls_mpi_core_sub:"ffffffff":"fffffffe":"1":"1":0 +mpi_core_sub:"ffffffff":"fffffffe":"1":"1":0 mbedtls_mpi_core_sub #397: 0xffffffff - 0xffffffff = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"ffffffff":"ffffffff":"0":"0":0 +mpi_core_sub:"ffffffff":"ffffffff":"0":"0":0 mbedtls_mpi_core_sub #398: 0xffffffff - 0x100000000 = 0xffffffffffffffff/ffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"100000000":"ffffffffffffffff":"ffffffffffffffff":1 +mpi_core_sub:"ffffffff":"100000000":"ffffffffffffffff":"ffffffffffffffff":1 mbedtls_mpi_core_sub #399: 0xffffffff - 0x1f7f7f7f7f7f7f = 0xffe0808180808080/ffe0808180808080, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"1f7f7f7f7f7f7f":"ffe0808180808080":"ffe0808180808080":1 +mpi_core_sub:"ffffffff":"1f7f7f7f7f7f7f":"ffe0808180808080":"ffe0808180808080":1 mbedtls_mpi_core_sub #400: 0xffffffff - 0x8000000000000000 = 0x80000000ffffffff/80000000ffffffff, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"8000000000000000":"80000000ffffffff":"80000000ffffffff":1 +mpi_core_sub:"ffffffff":"8000000000000000":"80000000ffffffff":"80000000ffffffff":1 mbedtls_mpi_core_sub #401: 0xffffffff - 0xfefefefefefefefe = 0x101010201010101/101010201010101, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"fefefefefefefefe":"101010201010101":"101010201010101":1 +mpi_core_sub:"ffffffff":"fefefefefefefefe":"101010201010101":"101010201010101":1 mbedtls_mpi_core_sub #402: 0xffffffff - 0xfffffffffffffffe = 0x100000001/100000001, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"fffffffffffffffe":"100000001":"100000001":1 +mpi_core_sub:"ffffffff":"fffffffffffffffe":"100000001":"100000001":1 mbedtls_mpi_core_sub #403: 0xffffffff - 0xffffffffffffffff = 0x100000000/100000000, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"ffffffffffffffff":"100000000":"100000000":1 +mpi_core_sub:"ffffffff":"ffffffffffffffff":"100000000":"100000000":1 mbedtls_mpi_core_sub #404: 0xffffffff - 0x10000000000000000 = 0xffffffff00000000ffffffff/ffffffffffffffff00000000ffffffff, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"10000000000000000":"ffffffff00000000ffffffff":"ffffffffffffffff00000000ffffffff":1 +mpi_core_sub:"ffffffff":"10000000000000000":"ffffffff00000000ffffffff":"ffffffffffffffff00000000ffffffff":1 mbedtls_mpi_core_sub #405: 0xffffffff - 0x1234567890abcdef0 = 0xfffffffedcba9877f543210f/fffffffffffffffedcba9877f543210f, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"1234567890abcdef0":"fffffffedcba9877f543210f":"fffffffffffffffedcba9877f543210f":1 +mpi_core_sub:"ffffffff":"1234567890abcdef0":"fffffffedcba9877f543210f":"fffffffffffffffedcba9877f543210f":1 mbedtls_mpi_core_sub #406: 0xffffffff - 0xfffffffffffffffffefefefefefefefe = 0x101010201010101/101010201010101, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"fffffffffffffffffefefefefefefefe":"101010201010101":"101010201010101":1 +mpi_core_sub:"ffffffff":"fffffffffffffffffefefefefefefefe":"101010201010101":"101010201010101":1 mbedtls_mpi_core_sub #407: 0xffffffff - 0xfffffffffffffffffffffffffffffffe = 0x100000001/100000001, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"fffffffffffffffffffffffffffffffe":"100000001":"100000001":1 +mpi_core_sub:"ffffffff":"fffffffffffffffffffffffffffffffe":"100000001":"100000001":1 mbedtls_mpi_core_sub #408: 0xffffffff - 0xffffffffffffffffffffffffffffffff = 0x100000000/100000000, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"ffffffffffffffffffffffffffffffff":"100000000":"100000000":1 +mpi_core_sub:"ffffffff":"ffffffffffffffffffffffffffffffff":"100000000":"100000000":1 mbedtls_mpi_core_sub #409: 0xffffffff - 0x100000000000000000000000000000000 = 0xffffffff000000000000000000000000ffffffff/ffffffffffffffff000000000000000000000000ffffffff, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"100000000000000000000000000000000":"ffffffff000000000000000000000000ffffffff":"ffffffffffffffff000000000000000000000000ffffffff":1 +mpi_core_sub:"ffffffff":"100000000000000000000000000000000":"ffffffff000000000000000000000000ffffffff":"ffffffffffffffff000000000000000000000000ffffffff":1 mbedtls_mpi_core_sub #410: 0xffffffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9877f543210f/ffffffffffffffedcba9876f543210fedcba9877f543210f, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9877f543210f":"ffffffffffffffedcba9876f543210fedcba9877f543210f":1 +mpi_core_sub:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9877f543210f":"ffffffffffffffedcba9876f543210fedcba9877f543210f":1 mbedtls_mpi_core_sub #411: 0xffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010201010101/101010201010101, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010201010101":"101010201010101":1 +mpi_core_sub:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010201010101":"101010201010101":1 mbedtls_mpi_core_sub #412: 0xffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000001/100000001, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000001":"100000001":1 +mpi_core_sub:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000001":"100000001":1 mbedtls_mpi_core_sub #413: 0xffffffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100000000/100000000, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"100000000":1 +mpi_core_sub:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"100000000":1 mbedtls_mpi_core_sub #414: 0xffffffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000000000000000000000000000ffffffff/ffffffffffffffff00000000000000000000000000000000000000000000000000000000ffffffff, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000ffffffff":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000ffffffff":1 +mpi_core_sub:"ffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000ffffffff":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000ffffffff":1 mbedtls_mpi_core_sub #415: 0xffffffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f":1 +mpi_core_sub:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f":1 mbedtls_mpi_core_sub #416: 0xffffffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4, carry 1 -mbedtls_mpi_core_sub:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4":1 +mpi_core_sub:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4":1 mbedtls_mpi_core_sub #417: 0x100000000 - 0x0 = 0x100000000/100000000, carry 0 -mbedtls_mpi_core_sub:"100000000":"0":"100000000":"100000000":0 +mpi_core_sub:"100000000":"0":"100000000":"100000000":0 mbedtls_mpi_core_sub #418: 0x100000000 - 0x1 = 0xffffffff/ffffffff, carry 0 -mbedtls_mpi_core_sub:"100000000":"1":"ffffffff":"ffffffff":0 +mpi_core_sub:"100000000":"1":"ffffffff":"ffffffff":0 mbedtls_mpi_core_sub #419: 0x100000000 - 0x3 = 0xfffffffd/fffffffd, carry 0 -mbedtls_mpi_core_sub:"100000000":"3":"fffffffd":"fffffffd":0 +mpi_core_sub:"100000000":"3":"fffffffd":"fffffffd":0 mbedtls_mpi_core_sub #420: 0x100000000 - 0xf = 0xfffffff1/fffffff1, carry 0 -mbedtls_mpi_core_sub:"100000000":"f":"fffffff1":"fffffff1":0 +mpi_core_sub:"100000000":"f":"fffffff1":"fffffff1":0 mbedtls_mpi_core_sub #421: 0x100000000 - 0xfe = 0xffffff02/ffffff02, carry 0 -mbedtls_mpi_core_sub:"100000000":"fe":"ffffff02":"ffffff02":0 +mpi_core_sub:"100000000":"fe":"ffffff02":"ffffff02":0 mbedtls_mpi_core_sub #422: 0x100000000 - 0xff = 0xffffff01/ffffff01, carry 0 -mbedtls_mpi_core_sub:"100000000":"ff":"ffffff01":"ffffff01":0 +mpi_core_sub:"100000000":"ff":"ffffff01":"ffffff01":0 mbedtls_mpi_core_sub #423: 0x100000000 - 0x100 = 0xffffff00/ffffff00, carry 0 -mbedtls_mpi_core_sub:"100000000":"100":"ffffff00":"ffffff00":0 +mpi_core_sub:"100000000":"100":"ffffff00":"ffffff00":0 mbedtls_mpi_core_sub #424: 0x100000000 - 0xff00 = 0xffff0100/ffff0100, carry 0 -mbedtls_mpi_core_sub:"100000000":"ff00":"ffff0100":"ffff0100":0 +mpi_core_sub:"100000000":"ff00":"ffff0100":"ffff0100":0 mbedtls_mpi_core_sub #425: 0x100000000 - 0xfffe = 0xffff0002/ffff0002, carry 0 -mbedtls_mpi_core_sub:"100000000":"fffe":"ffff0002":"ffff0002":0 +mpi_core_sub:"100000000":"fffe":"ffff0002":"ffff0002":0 mbedtls_mpi_core_sub #426: 0x100000000 - 0xffff = 0xffff0001/ffff0001, carry 0 -mbedtls_mpi_core_sub:"100000000":"ffff":"ffff0001":"ffff0001":0 +mpi_core_sub:"100000000":"ffff":"ffff0001":"ffff0001":0 mbedtls_mpi_core_sub #427: 0x100000000 - 0x10000 = 0xffff0000/ffff0000, carry 0 -mbedtls_mpi_core_sub:"100000000":"10000":"ffff0000":"ffff0000":0 +mpi_core_sub:"100000000":"10000":"ffff0000":"ffff0000":0 mbedtls_mpi_core_sub #428: 0x100000000 - 0xfffffffe = 0x2/2, carry 0 -mbedtls_mpi_core_sub:"100000000":"fffffffe":"2":"2":0 +mpi_core_sub:"100000000":"fffffffe":"2":"2":0 mbedtls_mpi_core_sub #429: 0x100000000 - 0xffffffff = 0x1/1, carry 0 -mbedtls_mpi_core_sub:"100000000":"ffffffff":"1":"1":0 +mpi_core_sub:"100000000":"ffffffff":"1":"1":0 mbedtls_mpi_core_sub #430: 0x100000000 - 0x100000000 = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"100000000":"100000000":"0":"0":0 +mpi_core_sub:"100000000":"100000000":"0":"0":0 mbedtls_mpi_core_sub #431: 0x100000000 - 0x1f7f7f7f7f7f7f = 0xffe0808180808081/ffe0808180808081, carry 1 -mbedtls_mpi_core_sub:"100000000":"1f7f7f7f7f7f7f":"ffe0808180808081":"ffe0808180808081":1 +mpi_core_sub:"100000000":"1f7f7f7f7f7f7f":"ffe0808180808081":"ffe0808180808081":1 mbedtls_mpi_core_sub #432: 0x100000000 - 0x8000000000000000 = 0x8000000100000000/8000000100000000, carry 1 -mbedtls_mpi_core_sub:"100000000":"8000000000000000":"8000000100000000":"8000000100000000":1 +mpi_core_sub:"100000000":"8000000000000000":"8000000100000000":"8000000100000000":1 mbedtls_mpi_core_sub #433: 0x100000000 - 0xfefefefefefefefe = 0x101010201010102/101010201010102, carry 1 -mbedtls_mpi_core_sub:"100000000":"fefefefefefefefe":"101010201010102":"101010201010102":1 +mpi_core_sub:"100000000":"fefefefefefefefe":"101010201010102":"101010201010102":1 mbedtls_mpi_core_sub #434: 0x100000000 - 0xfffffffffffffffe = 0x100000002/100000002, carry 1 -mbedtls_mpi_core_sub:"100000000":"fffffffffffffffe":"100000002":"100000002":1 +mpi_core_sub:"100000000":"fffffffffffffffe":"100000002":"100000002":1 mbedtls_mpi_core_sub #435: 0x100000000 - 0xffffffffffffffff = 0x100000001/100000001, carry 1 -mbedtls_mpi_core_sub:"100000000":"ffffffffffffffff":"100000001":"100000001":1 +mpi_core_sub:"100000000":"ffffffffffffffff":"100000001":"100000001":1 mbedtls_mpi_core_sub #436: 0x100000000 - 0x10000000000000000 = 0xffffffff0000000100000000/ffffffffffffffff0000000100000000, carry 1 -mbedtls_mpi_core_sub:"100000000":"10000000000000000":"ffffffff0000000100000000":"ffffffffffffffff0000000100000000":1 +mpi_core_sub:"100000000":"10000000000000000":"ffffffff0000000100000000":"ffffffffffffffff0000000100000000":1 mbedtls_mpi_core_sub #437: 0x100000000 - 0x1234567890abcdef0 = 0xfffffffedcba9877f5432110/fffffffffffffffedcba9877f5432110, carry 1 -mbedtls_mpi_core_sub:"100000000":"1234567890abcdef0":"fffffffedcba9877f5432110":"fffffffffffffffedcba9877f5432110":1 +mpi_core_sub:"100000000":"1234567890abcdef0":"fffffffedcba9877f5432110":"fffffffffffffffedcba9877f5432110":1 mbedtls_mpi_core_sub #438: 0x100000000 - 0xfffffffffffffffffefefefefefefefe = 0x101010201010102/101010201010102, carry 1 -mbedtls_mpi_core_sub:"100000000":"fffffffffffffffffefefefefefefefe":"101010201010102":"101010201010102":1 +mpi_core_sub:"100000000":"fffffffffffffffffefefefefefefefe":"101010201010102":"101010201010102":1 mbedtls_mpi_core_sub #439: 0x100000000 - 0xfffffffffffffffffffffffffffffffe = 0x100000002/100000002, carry 1 -mbedtls_mpi_core_sub:"100000000":"fffffffffffffffffffffffffffffffe":"100000002":"100000002":1 +mpi_core_sub:"100000000":"fffffffffffffffffffffffffffffffe":"100000002":"100000002":1 mbedtls_mpi_core_sub #440: 0x100000000 - 0xffffffffffffffffffffffffffffffff = 0x100000001/100000001, carry 1 -mbedtls_mpi_core_sub:"100000000":"ffffffffffffffffffffffffffffffff":"100000001":"100000001":1 +mpi_core_sub:"100000000":"ffffffffffffffffffffffffffffffff":"100000001":"100000001":1 mbedtls_mpi_core_sub #441: 0x100000000 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000100000000/ffffffffffffffff00000000000000000000000100000000, carry 1 -mbedtls_mpi_core_sub:"100000000":"100000000000000000000000000000000":"ffffffff00000000000000000000000100000000":"ffffffffffffffff00000000000000000000000100000000":1 +mpi_core_sub:"100000000":"100000000000000000000000000000000":"ffffffff00000000000000000000000100000000":"ffffffffffffffff00000000000000000000000100000000":1 mbedtls_mpi_core_sub #442: 0x100000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9877f5432110/ffffffffffffffedcba9876f543210fedcba9877f5432110, carry 1 -mbedtls_mpi_core_sub:"100000000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9877f5432110":"ffffffffffffffedcba9876f543210fedcba9877f5432110":1 +mpi_core_sub:"100000000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9877f5432110":"ffffffffffffffedcba9876f543210fedcba9877f5432110":1 mbedtls_mpi_core_sub #443: 0x100000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010201010102/101010201010102, carry 1 -mbedtls_mpi_core_sub:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010201010102":"101010201010102":1 +mpi_core_sub:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010201010102":"101010201010102":1 mbedtls_mpi_core_sub #444: 0x100000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000002/100000002, carry 1 -mbedtls_mpi_core_sub:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000002":"100000002":1 +mpi_core_sub:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000002":"100000002":1 mbedtls_mpi_core_sub #445: 0x100000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100000001/100000001, carry 1 -mbedtls_mpi_core_sub:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000001":"100000001":1 +mpi_core_sub:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000001":"100000001":1 mbedtls_mpi_core_sub #446: 0x100000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000100000000/ffffffffffffffff0000000000000000000000000000000000000000000000000000000100000000, carry 1 -mbedtls_mpi_core_sub:"100000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000100000000":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000100000000":1 +mpi_core_sub:"100000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000100000000":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000100000000":1 mbedtls_mpi_core_sub #447: 0x100000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110, carry 1 -mbedtls_mpi_core_sub:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110":1 +mpi_core_sub:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110":1 mbedtls_mpi_core_sub #448: 0x100000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5, carry 1 -mbedtls_mpi_core_sub:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5":1 +mpi_core_sub:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5":1 mbedtls_mpi_core_sub #449: 0x1f7f7f7f7f7f7f - 0x0 = 0x1f7f7f7f7f7f7f/1f7f7f7f7f7f7f, carry 0 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"0":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":0 +mpi_core_sub:"1f7f7f7f7f7f7f":"0":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":0 mbedtls_mpi_core_sub #450: 0x1f7f7f7f7f7f7f - 0x1 = 0x1f7f7f7f7f7f7e/1f7f7f7f7f7f7e, carry 0 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"1":"1f7f7f7f7f7f7e":"1f7f7f7f7f7f7e":0 +mpi_core_sub:"1f7f7f7f7f7f7f":"1":"1f7f7f7f7f7f7e":"1f7f7f7f7f7f7e":0 mbedtls_mpi_core_sub #451: 0x1f7f7f7f7f7f7f - 0x3 = 0x1f7f7f7f7f7f7c/1f7f7f7f7f7f7c, carry 0 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"3":"1f7f7f7f7f7f7c":"1f7f7f7f7f7f7c":0 +mpi_core_sub:"1f7f7f7f7f7f7f":"3":"1f7f7f7f7f7f7c":"1f7f7f7f7f7f7c":0 mbedtls_mpi_core_sub #452: 0x1f7f7f7f7f7f7f - 0xf = 0x1f7f7f7f7f7f70/1f7f7f7f7f7f70, carry 0 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"f":"1f7f7f7f7f7f70":"1f7f7f7f7f7f70":0 +mpi_core_sub:"1f7f7f7f7f7f7f":"f":"1f7f7f7f7f7f70":"1f7f7f7f7f7f70":0 mbedtls_mpi_core_sub #453: 0x1f7f7f7f7f7f7f - 0xfe = 0x1f7f7f7f7f7e81/1f7f7f7f7f7e81, carry 0 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fe":"1f7f7f7f7f7e81":"1f7f7f7f7f7e81":0 +mpi_core_sub:"1f7f7f7f7f7f7f":"fe":"1f7f7f7f7f7e81":"1f7f7f7f7f7e81":0 mbedtls_mpi_core_sub #454: 0x1f7f7f7f7f7f7f - 0xff = 0x1f7f7f7f7f7e80/1f7f7f7f7f7e80, carry 0 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"ff":"1f7f7f7f7f7e80":"1f7f7f7f7f7e80":0 +mpi_core_sub:"1f7f7f7f7f7f7f":"ff":"1f7f7f7f7f7e80":"1f7f7f7f7f7e80":0 mbedtls_mpi_core_sub #455: 0x1f7f7f7f7f7f7f - 0x100 = 0x1f7f7f7f7f7e7f/1f7f7f7f7f7e7f, carry 0 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"100":"1f7f7f7f7f7e7f":"1f7f7f7f7f7e7f":0 +mpi_core_sub:"1f7f7f7f7f7f7f":"100":"1f7f7f7f7f7e7f":"1f7f7f7f7f7e7f":0 mbedtls_mpi_core_sub #456: 0x1f7f7f7f7f7f7f - 0xff00 = 0x1f7f7f7f7e807f/1f7f7f7f7e807f, carry 0 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"ff00":"1f7f7f7f7e807f":"1f7f7f7f7e807f":0 +mpi_core_sub:"1f7f7f7f7f7f7f":"ff00":"1f7f7f7f7e807f":"1f7f7f7f7e807f":0 mbedtls_mpi_core_sub #457: 0x1f7f7f7f7f7f7f - 0xfffe = 0x1f7f7f7f7e7f81/1f7f7f7f7e7f81, carry 0 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fffe":"1f7f7f7f7e7f81":"1f7f7f7f7e7f81":0 +mpi_core_sub:"1f7f7f7f7f7f7f":"fffe":"1f7f7f7f7e7f81":"1f7f7f7f7e7f81":0 mbedtls_mpi_core_sub #458: 0x1f7f7f7f7f7f7f - 0xffff = 0x1f7f7f7f7e7f80/1f7f7f7f7e7f80, carry 0 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"ffff":"1f7f7f7f7e7f80":"1f7f7f7f7e7f80":0 +mpi_core_sub:"1f7f7f7f7f7f7f":"ffff":"1f7f7f7f7e7f80":"1f7f7f7f7e7f80":0 mbedtls_mpi_core_sub #459: 0x1f7f7f7f7f7f7f - 0x10000 = 0x1f7f7f7f7e7f7f/1f7f7f7f7e7f7f, carry 0 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"10000":"1f7f7f7f7e7f7f":"1f7f7f7f7e7f7f":0 +mpi_core_sub:"1f7f7f7f7f7f7f":"10000":"1f7f7f7f7e7f7f":"1f7f7f7f7e7f7f":0 mbedtls_mpi_core_sub #460: 0x1f7f7f7f7f7f7f - 0xfffffffe = 0x1f7f7e7f7f7f81/1f7f7e7f7f7f81, carry 0 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffe":"1f7f7e7f7f7f81":"1f7f7e7f7f7f81":0 +mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffe":"1f7f7e7f7f7f81":"1f7f7e7f7f7f81":0 mbedtls_mpi_core_sub #461: 0x1f7f7f7f7f7f7f - 0xffffffff = 0x1f7f7e7f7f7f80/1f7f7e7f7f7f80, carry 0 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffff":"1f7f7e7f7f7f80":"1f7f7e7f7f7f80":0 +mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffff":"1f7f7e7f7f7f80":"1f7f7e7f7f7f80":0 mbedtls_mpi_core_sub #462: 0x1f7f7f7f7f7f7f - 0x100000000 = 0x1f7f7e7f7f7f7f/1f7f7e7f7f7f7f, carry 0 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"100000000":"1f7f7e7f7f7f7f":"1f7f7e7f7f7f7f":0 +mpi_core_sub:"1f7f7f7f7f7f7f":"100000000":"1f7f7e7f7f7f7f":"1f7f7e7f7f7f7f":0 mbedtls_mpi_core_sub #463: 0x1f7f7f7f7f7f7f - 0x1f7f7f7f7f7f7f = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":"0":"0":0 +mpi_core_sub:"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":"0":"0":0 mbedtls_mpi_core_sub #464: 0x1f7f7f7f7f7f7f - 0x8000000000000000 = 0x801f7f7f7f7f7f7f/801f7f7f7f7f7f7f, carry 1 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"8000000000000000":"801f7f7f7f7f7f7f":"801f7f7f7f7f7f7f":1 +mpi_core_sub:"1f7f7f7f7f7f7f":"8000000000000000":"801f7f7f7f7f7f7f":"801f7f7f7f7f7f7f":1 mbedtls_mpi_core_sub #465: 0x1f7f7f7f7f7f7f - 0xfefefefefefefefe = 0x120808080808081/120808080808081, carry 1 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fefefefefefefefe":"120808080808081":"120808080808081":1 +mpi_core_sub:"1f7f7f7f7f7f7f":"fefefefefefefefe":"120808080808081":"120808080808081":1 mbedtls_mpi_core_sub #466: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffe = 0x1f7f7f7f7f7f81/1f7f7f7f7f7f81, carry 1 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffe":"1f7f7f7f7f7f81":"1f7f7f7f7f7f81":1 +mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffe":"1f7f7f7f7f7f81":"1f7f7f7f7f7f81":1 mbedtls_mpi_core_sub #467: 0x1f7f7f7f7f7f7f - 0xffffffffffffffff = 0x1f7f7f7f7f7f80/1f7f7f7f7f7f80, carry 1 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffffffffffff":"1f7f7f7f7f7f80":"1f7f7f7f7f7f80":1 +mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffffffffffff":"1f7f7f7f7f7f80":"1f7f7f7f7f7f80":1 mbedtls_mpi_core_sub #468: 0x1f7f7f7f7f7f7f - 0x10000000000000000 = 0xffffffff001f7f7f7f7f7f7f/ffffffffffffffff001f7f7f7f7f7f7f, carry 1 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"10000000000000000":"ffffffff001f7f7f7f7f7f7f":"ffffffffffffffff001f7f7f7f7f7f7f":1 +mpi_core_sub:"1f7f7f7f7f7f7f":"10000000000000000":"ffffffff001f7f7f7f7f7f7f":"ffffffffffffffff001f7f7f7f7f7f7f":1 mbedtls_mpi_core_sub #469: 0x1f7f7f7f7f7f7f - 0x1234567890abcdef0 = 0xfffffffedcda17f674c2a08f/fffffffffffffffedcda17f674c2a08f, carry 1 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"1234567890abcdef0":"fffffffedcda17f674c2a08f":"fffffffffffffffedcda17f674c2a08f":1 +mpi_core_sub:"1f7f7f7f7f7f7f":"1234567890abcdef0":"fffffffedcda17f674c2a08f":"fffffffffffffffedcda17f674c2a08f":1 mbedtls_mpi_core_sub #470: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffffefefefefefefefe = 0x120808080808081/120808080808081, carry 1 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffefefefefefefefe":"120808080808081":"120808080808081":1 +mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffefefefefefefefe":"120808080808081":"120808080808081":1 mbedtls_mpi_core_sub #471: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffffffffffffffffffe = 0x1f7f7f7f7f7f81/1f7f7f7f7f7f81, carry 1 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f81":"1f7f7f7f7f7f81":1 +mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f81":"1f7f7f7f7f7f81":1 mbedtls_mpi_core_sub #472: 0x1f7f7f7f7f7f7f - 0xffffffffffffffffffffffffffffffff = 0x1f7f7f7f7f7f80/1f7f7f7f7f7f80, carry 1 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f80":"1f7f7f7f7f7f80":1 +mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f80":"1f7f7f7f7f7f80":1 mbedtls_mpi_core_sub #473: 0x1f7f7f7f7f7f7f - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000001f7f7f7f7f7f7f/ffffffffffffffff0000000000000000001f7f7f7f7f7f7f, carry 1 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"100000000000000000000000000000000":"ffffffff0000000000000000001f7f7f7f7f7f7f":"ffffffffffffffff0000000000000000001f7f7f7f7f7f7f":1 +mpi_core_sub:"1f7f7f7f7f7f7f":"100000000000000000000000000000000":"ffffffff0000000000000000001f7f7f7f7f7f7f":"ffffffffffffffff0000000000000000001f7f7f7f7f7f7f":1 mbedtls_mpi_core_sub #474: 0x1f7f7f7f7f7f7f - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcda17f674c2a08f/ffffffffffffffedcba9876f543210fedcda17f674c2a08f, carry 1 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcda17f674c2a08f":"ffffffffffffffedcba9876f543210fedcda17f674c2a08f":1 +mpi_core_sub:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcda17f674c2a08f":"ffffffffffffffedcba9876f543210fedcda17f674c2a08f":1 mbedtls_mpi_core_sub #475: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x120808080808081/120808080808081, carry 1 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"120808080808081":"120808080808081":1 +mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"120808080808081":"120808080808081":1 mbedtls_mpi_core_sub #476: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1f7f7f7f7f7f81/1f7f7f7f7f7f81, carry 1 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f81":"1f7f7f7f7f7f81":1 +mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f81":"1f7f7f7f7f7f81":1 mbedtls_mpi_core_sub #477: 0x1f7f7f7f7f7f7f - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1f7f7f7f7f7f80/1f7f7f7f7f7f80, carry 1 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f80":"1f7f7f7f7f7f80":1 +mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f80":"1f7f7f7f7f7f80":1 mbedtls_mpi_core_sub #478: 0x1f7f7f7f7f7f7f - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f/ffffffffffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f, carry 1 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":"ffffffffffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":1 +mpi_core_sub:"1f7f7f7f7f7f7f":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":"ffffffffffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":1 mbedtls_mpi_core_sub #479: 0x1f7f7f7f7f7f7f - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f, carry 1 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f":1 +mpi_core_sub:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f":1 mbedtls_mpi_core_sub #480: 0x1f7f7f7f7f7f7f - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54, carry 1 -mbedtls_mpi_core_sub:"1f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54":1 +mpi_core_sub:"1f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54":1 mbedtls_mpi_core_sub #481: 0x8000000000000000 - 0x0 = 0x8000000000000000/8000000000000000, carry 0 -mbedtls_mpi_core_sub:"8000000000000000":"0":"8000000000000000":"8000000000000000":0 +mpi_core_sub:"8000000000000000":"0":"8000000000000000":"8000000000000000":0 mbedtls_mpi_core_sub #482: 0x8000000000000000 - 0x1 = 0x7fffffffffffffff/7fffffffffffffff, carry 0 -mbedtls_mpi_core_sub:"8000000000000000":"1":"7fffffffffffffff":"7fffffffffffffff":0 +mpi_core_sub:"8000000000000000":"1":"7fffffffffffffff":"7fffffffffffffff":0 mbedtls_mpi_core_sub #483: 0x8000000000000000 - 0x3 = 0x7ffffffffffffffd/7ffffffffffffffd, carry 0 -mbedtls_mpi_core_sub:"8000000000000000":"3":"7ffffffffffffffd":"7ffffffffffffffd":0 +mpi_core_sub:"8000000000000000":"3":"7ffffffffffffffd":"7ffffffffffffffd":0 mbedtls_mpi_core_sub #484: 0x8000000000000000 - 0xf = 0x7ffffffffffffff1/7ffffffffffffff1, carry 0 -mbedtls_mpi_core_sub:"8000000000000000":"f":"7ffffffffffffff1":"7ffffffffffffff1":0 +mpi_core_sub:"8000000000000000":"f":"7ffffffffffffff1":"7ffffffffffffff1":0 mbedtls_mpi_core_sub #485: 0x8000000000000000 - 0xfe = 0x7fffffffffffff02/7fffffffffffff02, carry 0 -mbedtls_mpi_core_sub:"8000000000000000":"fe":"7fffffffffffff02":"7fffffffffffff02":0 +mpi_core_sub:"8000000000000000":"fe":"7fffffffffffff02":"7fffffffffffff02":0 mbedtls_mpi_core_sub #486: 0x8000000000000000 - 0xff = 0x7fffffffffffff01/7fffffffffffff01, carry 0 -mbedtls_mpi_core_sub:"8000000000000000":"ff":"7fffffffffffff01":"7fffffffffffff01":0 +mpi_core_sub:"8000000000000000":"ff":"7fffffffffffff01":"7fffffffffffff01":0 mbedtls_mpi_core_sub #487: 0x8000000000000000 - 0x100 = 0x7fffffffffffff00/7fffffffffffff00, carry 0 -mbedtls_mpi_core_sub:"8000000000000000":"100":"7fffffffffffff00":"7fffffffffffff00":0 +mpi_core_sub:"8000000000000000":"100":"7fffffffffffff00":"7fffffffffffff00":0 mbedtls_mpi_core_sub #488: 0x8000000000000000 - 0xff00 = 0x7fffffffffff0100/7fffffffffff0100, carry 0 -mbedtls_mpi_core_sub:"8000000000000000":"ff00":"7fffffffffff0100":"7fffffffffff0100":0 +mpi_core_sub:"8000000000000000":"ff00":"7fffffffffff0100":"7fffffffffff0100":0 mbedtls_mpi_core_sub #489: 0x8000000000000000 - 0xfffe = 0x7fffffffffff0002/7fffffffffff0002, carry 0 -mbedtls_mpi_core_sub:"8000000000000000":"fffe":"7fffffffffff0002":"7fffffffffff0002":0 +mpi_core_sub:"8000000000000000":"fffe":"7fffffffffff0002":"7fffffffffff0002":0 mbedtls_mpi_core_sub #490: 0x8000000000000000 - 0xffff = 0x7fffffffffff0001/7fffffffffff0001, carry 0 -mbedtls_mpi_core_sub:"8000000000000000":"ffff":"7fffffffffff0001":"7fffffffffff0001":0 +mpi_core_sub:"8000000000000000":"ffff":"7fffffffffff0001":"7fffffffffff0001":0 mbedtls_mpi_core_sub #491: 0x8000000000000000 - 0x10000 = 0x7fffffffffff0000/7fffffffffff0000, carry 0 -mbedtls_mpi_core_sub:"8000000000000000":"10000":"7fffffffffff0000":"7fffffffffff0000":0 +mpi_core_sub:"8000000000000000":"10000":"7fffffffffff0000":"7fffffffffff0000":0 mbedtls_mpi_core_sub #492: 0x8000000000000000 - 0xfffffffe = 0x7fffffff00000002/7fffffff00000002, carry 0 -mbedtls_mpi_core_sub:"8000000000000000":"fffffffe":"7fffffff00000002":"7fffffff00000002":0 +mpi_core_sub:"8000000000000000":"fffffffe":"7fffffff00000002":"7fffffff00000002":0 mbedtls_mpi_core_sub #493: 0x8000000000000000 - 0xffffffff = 0x7fffffff00000001/7fffffff00000001, carry 0 -mbedtls_mpi_core_sub:"8000000000000000":"ffffffff":"7fffffff00000001":"7fffffff00000001":0 +mpi_core_sub:"8000000000000000":"ffffffff":"7fffffff00000001":"7fffffff00000001":0 mbedtls_mpi_core_sub #494: 0x8000000000000000 - 0x100000000 = 0x7fffffff00000000/7fffffff00000000, carry 0 -mbedtls_mpi_core_sub:"8000000000000000":"100000000":"7fffffff00000000":"7fffffff00000000":0 +mpi_core_sub:"8000000000000000":"100000000":"7fffffff00000000":"7fffffff00000000":0 mbedtls_mpi_core_sub #495: 0x8000000000000000 - 0x1f7f7f7f7f7f7f = 0x7fe0808080808081/7fe0808080808081, carry 0 -mbedtls_mpi_core_sub:"8000000000000000":"1f7f7f7f7f7f7f":"7fe0808080808081":"7fe0808080808081":0 +mpi_core_sub:"8000000000000000":"1f7f7f7f7f7f7f":"7fe0808080808081":"7fe0808080808081":0 mbedtls_mpi_core_sub #496: 0x8000000000000000 - 0x8000000000000000 = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"8000000000000000":"8000000000000000":"0":"0":0 +mpi_core_sub:"8000000000000000":"8000000000000000":"0":"0":0 mbedtls_mpi_core_sub #497: 0x8000000000000000 - 0xfefefefefefefefe = 0x8101010101010102/8101010101010102, carry 1 -mbedtls_mpi_core_sub:"8000000000000000":"fefefefefefefefe":"8101010101010102":"8101010101010102":1 +mpi_core_sub:"8000000000000000":"fefefefefefefefe":"8101010101010102":"8101010101010102":1 mbedtls_mpi_core_sub #498: 0x8000000000000000 - 0xfffffffffffffffe = 0x8000000000000002/8000000000000002, carry 1 -mbedtls_mpi_core_sub:"8000000000000000":"fffffffffffffffe":"8000000000000002":"8000000000000002":1 +mpi_core_sub:"8000000000000000":"fffffffffffffffe":"8000000000000002":"8000000000000002":1 mbedtls_mpi_core_sub #499: 0x8000000000000000 - 0xffffffffffffffff = 0x8000000000000001/8000000000000001, carry 1 -mbedtls_mpi_core_sub:"8000000000000000":"ffffffffffffffff":"8000000000000001":"8000000000000001":1 +mpi_core_sub:"8000000000000000":"ffffffffffffffff":"8000000000000001":"8000000000000001":1 mbedtls_mpi_core_sub #500: 0x8000000000000000 - 0x10000000000000000 = 0xffffffff8000000000000000/ffffffffffffffff8000000000000000, carry 1 -mbedtls_mpi_core_sub:"8000000000000000":"10000000000000000":"ffffffff8000000000000000":"ffffffffffffffff8000000000000000":1 +mpi_core_sub:"8000000000000000":"10000000000000000":"ffffffff8000000000000000":"ffffffffffffffff8000000000000000":1 mbedtls_mpi_core_sub #501: 0x8000000000000000 - 0x1234567890abcdef0 = 0xffffffff5cba9876f5432110/ffffffffffffffff5cba9876f5432110, carry 1 -mbedtls_mpi_core_sub:"8000000000000000":"1234567890abcdef0":"ffffffff5cba9876f5432110":"ffffffffffffffff5cba9876f5432110":1 +mpi_core_sub:"8000000000000000":"1234567890abcdef0":"ffffffff5cba9876f5432110":"ffffffffffffffff5cba9876f5432110":1 mbedtls_mpi_core_sub #502: 0x8000000000000000 - 0xfffffffffffffffffefefefefefefefe = 0x8101010101010102/8101010101010102, carry 1 -mbedtls_mpi_core_sub:"8000000000000000":"fffffffffffffffffefefefefefefefe":"8101010101010102":"8101010101010102":1 +mpi_core_sub:"8000000000000000":"fffffffffffffffffefefefefefefefe":"8101010101010102":"8101010101010102":1 mbedtls_mpi_core_sub #503: 0x8000000000000000 - 0xfffffffffffffffffffffffffffffffe = 0x8000000000000002/8000000000000002, carry 1 -mbedtls_mpi_core_sub:"8000000000000000":"fffffffffffffffffffffffffffffffe":"8000000000000002":"8000000000000002":1 +mpi_core_sub:"8000000000000000":"fffffffffffffffffffffffffffffffe":"8000000000000002":"8000000000000002":1 mbedtls_mpi_core_sub #504: 0x8000000000000000 - 0xffffffffffffffffffffffffffffffff = 0x8000000000000001/8000000000000001, carry 1 -mbedtls_mpi_core_sub:"8000000000000000":"ffffffffffffffffffffffffffffffff":"8000000000000001":"8000000000000001":1 +mpi_core_sub:"8000000000000000":"ffffffffffffffffffffffffffffffff":"8000000000000001":"8000000000000001":1 mbedtls_mpi_core_sub #505: 0x8000000000000000 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000008000000000000000/ffffffffffffffff00000000000000008000000000000000, carry 1 -mbedtls_mpi_core_sub:"8000000000000000":"100000000000000000000000000000000":"ffffffff00000000000000008000000000000000":"ffffffffffffffff00000000000000008000000000000000":1 +mpi_core_sub:"8000000000000000":"100000000000000000000000000000000":"ffffffff00000000000000008000000000000000":"ffffffffffffffff00000000000000008000000000000000":1 mbedtls_mpi_core_sub #506: 0x8000000000000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ff5cba9876f5432110/ffffffffffffffedcba9876f543210ff5cba9876f5432110, carry 1 -mbedtls_mpi_core_sub:"8000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ff5cba9876f5432110":"ffffffffffffffedcba9876f543210ff5cba9876f5432110":1 +mpi_core_sub:"8000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ff5cba9876f5432110":"ffffffffffffffedcba9876f543210ff5cba9876f5432110":1 mbedtls_mpi_core_sub #507: 0x8000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x8101010101010102/8101010101010102, carry 1 -mbedtls_mpi_core_sub:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"8101010101010102":"8101010101010102":1 +mpi_core_sub:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"8101010101010102":"8101010101010102":1 mbedtls_mpi_core_sub #508: 0x8000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x8000000000000002/8000000000000002, carry 1 -mbedtls_mpi_core_sub:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"8000000000000002":"8000000000000002":1 +mpi_core_sub:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"8000000000000002":"8000000000000002":1 mbedtls_mpi_core_sub #509: 0x8000000000000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x8000000000000001/8000000000000001, carry 1 -mbedtls_mpi_core_sub:"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000001":"8000000000000001":1 +mpi_core_sub:"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000001":"8000000000000001":1 mbedtls_mpi_core_sub #510: 0x8000000000000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000008000000000000000/ffffffffffffffff0000000000000000000000000000000000000000000000008000000000000000, carry 1 -mbedtls_mpi_core_sub:"8000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000008000000000000000":"ffffffffffffffff0000000000000000000000000000000000000000000000008000000000000000":1 +mpi_core_sub:"8000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000008000000000000000":"ffffffffffffffff0000000000000000000000000000000000000000000000008000000000000000":1 mbedtls_mpi_core_sub #511: 0x8000000000000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110, carry 1 -mbedtls_mpi_core_sub:"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110":1 +mpi_core_sub:"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110":1 mbedtls_mpi_core_sub #512: 0x8000000000000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5, carry 1 -mbedtls_mpi_core_sub:"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5":1 +mpi_core_sub:"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5":1 mbedtls_mpi_core_sub #513: 0xfefefefefefefefe - 0x0 = 0xfefefefefefefefe/fefefefefefefefe, carry 0 -mbedtls_mpi_core_sub:"fefefefefefefefe":"0":"fefefefefefefefe":"fefefefefefefefe":0 +mpi_core_sub:"fefefefefefefefe":"0":"fefefefefefefefe":"fefefefefefefefe":0 mbedtls_mpi_core_sub #514: 0xfefefefefefefefe - 0x1 = 0xfefefefefefefefd/fefefefefefefefd, carry 0 -mbedtls_mpi_core_sub:"fefefefefefefefe":"1":"fefefefefefefefd":"fefefefefefefefd":0 +mpi_core_sub:"fefefefefefefefe":"1":"fefefefefefefefd":"fefefefefefefefd":0 mbedtls_mpi_core_sub #515: 0xfefefefefefefefe - 0x3 = 0xfefefefefefefefb/fefefefefefefefb, carry 0 -mbedtls_mpi_core_sub:"fefefefefefefefe":"3":"fefefefefefefefb":"fefefefefefefefb":0 +mpi_core_sub:"fefefefefefefefe":"3":"fefefefefefefefb":"fefefefefefefefb":0 mbedtls_mpi_core_sub #516: 0xfefefefefefefefe - 0xf = 0xfefefefefefefeef/fefefefefefefeef, carry 0 -mbedtls_mpi_core_sub:"fefefefefefefefe":"f":"fefefefefefefeef":"fefefefefefefeef":0 +mpi_core_sub:"fefefefefefefefe":"f":"fefefefefefefeef":"fefefefefefefeef":0 mbedtls_mpi_core_sub #517: 0xfefefefefefefefe - 0xfe = 0xfefefefefefefe00/fefefefefefefe00, carry 0 -mbedtls_mpi_core_sub:"fefefefefefefefe":"fe":"fefefefefefefe00":"fefefefefefefe00":0 +mpi_core_sub:"fefefefefefefefe":"fe":"fefefefefefefe00":"fefefefefefefe00":0 mbedtls_mpi_core_sub #518: 0xfefefefefefefefe - 0xff = 0xfefefefefefefdff/fefefefefefefdff, carry 0 -mbedtls_mpi_core_sub:"fefefefefefefefe":"ff":"fefefefefefefdff":"fefefefefefefdff":0 +mpi_core_sub:"fefefefefefefefe":"ff":"fefefefefefefdff":"fefefefefefefdff":0 mbedtls_mpi_core_sub #519: 0xfefefefefefefefe - 0x100 = 0xfefefefefefefdfe/fefefefefefefdfe, carry 0 -mbedtls_mpi_core_sub:"fefefefefefefefe":"100":"fefefefefefefdfe":"fefefefefefefdfe":0 +mpi_core_sub:"fefefefefefefefe":"100":"fefefefefefefdfe":"fefefefefefefdfe":0 mbedtls_mpi_core_sub #520: 0xfefefefefefefefe - 0xff00 = 0xfefefefefefdfffe/fefefefefefdfffe, carry 0 -mbedtls_mpi_core_sub:"fefefefefefefefe":"ff00":"fefefefefefdfffe":"fefefefefefdfffe":0 +mpi_core_sub:"fefefefefefefefe":"ff00":"fefefefefefdfffe":"fefefefefefdfffe":0 mbedtls_mpi_core_sub #521: 0xfefefefefefefefe - 0xfffe = 0xfefefefefefdff00/fefefefefefdff00, carry 0 -mbedtls_mpi_core_sub:"fefefefefefefefe":"fffe":"fefefefefefdff00":"fefefefefefdff00":0 +mpi_core_sub:"fefefefefefefefe":"fffe":"fefefefefefdff00":"fefefefefefdff00":0 mbedtls_mpi_core_sub #522: 0xfefefefefefefefe - 0xffff = 0xfefefefefefdfeff/fefefefefefdfeff, carry 0 -mbedtls_mpi_core_sub:"fefefefefefefefe":"ffff":"fefefefefefdfeff":"fefefefefefdfeff":0 +mpi_core_sub:"fefefefefefefefe":"ffff":"fefefefefefdfeff":"fefefefefefdfeff":0 mbedtls_mpi_core_sub #523: 0xfefefefefefefefe - 0x10000 = 0xfefefefefefdfefe/fefefefefefdfefe, carry 0 -mbedtls_mpi_core_sub:"fefefefefefefefe":"10000":"fefefefefefdfefe":"fefefefefefdfefe":0 +mpi_core_sub:"fefefefefefefefe":"10000":"fefefefefefdfefe":"fefefefefefdfefe":0 mbedtls_mpi_core_sub #524: 0xfefefefefefefefe - 0xfffffffe = 0xfefefefdfefeff00/fefefefdfefeff00, carry 0 -mbedtls_mpi_core_sub:"fefefefefefefefe":"fffffffe":"fefefefdfefeff00":"fefefefdfefeff00":0 +mpi_core_sub:"fefefefefefefefe":"fffffffe":"fefefefdfefeff00":"fefefefdfefeff00":0 mbedtls_mpi_core_sub #525: 0xfefefefefefefefe - 0xffffffff = 0xfefefefdfefefeff/fefefefdfefefeff, carry 0 -mbedtls_mpi_core_sub:"fefefefefefefefe":"ffffffff":"fefefefdfefefeff":"fefefefdfefefeff":0 +mpi_core_sub:"fefefefefefefefe":"ffffffff":"fefefefdfefefeff":"fefefefdfefefeff":0 mbedtls_mpi_core_sub #526: 0xfefefefefefefefe - 0x100000000 = 0xfefefefdfefefefe/fefefefdfefefefe, carry 0 -mbedtls_mpi_core_sub:"fefefefefefefefe":"100000000":"fefefefdfefefefe":"fefefefdfefefefe":0 +mpi_core_sub:"fefefefefefefefe":"100000000":"fefefefdfefefefe":"fefefefdfefefefe":0 mbedtls_mpi_core_sub #527: 0xfefefefefefefefe - 0x1f7f7f7f7f7f7f = 0xfedf7f7f7f7f7f7f/fedf7f7f7f7f7f7f, carry 0 -mbedtls_mpi_core_sub:"fefefefefefefefe":"1f7f7f7f7f7f7f":"fedf7f7f7f7f7f7f":"fedf7f7f7f7f7f7f":0 +mpi_core_sub:"fefefefefefefefe":"1f7f7f7f7f7f7f":"fedf7f7f7f7f7f7f":"fedf7f7f7f7f7f7f":0 mbedtls_mpi_core_sub #528: 0xfefefefefefefefe - 0x8000000000000000 = 0x7efefefefefefefe/7efefefefefefefe, carry 0 -mbedtls_mpi_core_sub:"fefefefefefefefe":"8000000000000000":"7efefefefefefefe":"7efefefefefefefe":0 +mpi_core_sub:"fefefefefefefefe":"8000000000000000":"7efefefefefefefe":"7efefefefefefefe":0 mbedtls_mpi_core_sub #529: 0xfefefefefefefefe - 0xfefefefefefefefe = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"fefefefefefefefe":"fefefefefefefefe":"0":"0":0 +mpi_core_sub:"fefefefefefefefe":"fefefefefefefefe":"0":"0":0 mbedtls_mpi_core_sub #530: 0xfefefefefefefefe - 0xfffffffffffffffe = 0xfefefefefefeff00/fefefefefefeff00, carry 1 -mbedtls_mpi_core_sub:"fefefefefefefefe":"fffffffffffffffe":"fefefefefefeff00":"fefefefefefeff00":1 +mpi_core_sub:"fefefefefefefefe":"fffffffffffffffe":"fefefefefefeff00":"fefefefefefeff00":1 mbedtls_mpi_core_sub #531: 0xfefefefefefefefe - 0xffffffffffffffff = 0xfefefefefefefeff/fefefefefefefeff, carry 1 -mbedtls_mpi_core_sub:"fefefefefefefefe":"ffffffffffffffff":"fefefefefefefeff":"fefefefefefefeff":1 +mpi_core_sub:"fefefefefefefefe":"ffffffffffffffff":"fefefefefefefeff":"fefefefefefefeff":1 mbedtls_mpi_core_sub #532: 0xfefefefefefefefe - 0x10000000000000000 = 0xfffffffffefefefefefefefe/fffffffffffffffffefefefefefefefe, carry 1 -mbedtls_mpi_core_sub:"fefefefefefefefe":"10000000000000000":"fffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":1 +mpi_core_sub:"fefefefefefefefe":"10000000000000000":"fffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":1 mbedtls_mpi_core_sub #533: 0xfefefefefefefefe - 0x1234567890abcdef0 = 0xffffffffdbb99775f442200e/ffffffffffffffffdbb99775f442200e, carry 1 -mbedtls_mpi_core_sub:"fefefefefefefefe":"1234567890abcdef0":"ffffffffdbb99775f442200e":"ffffffffffffffffdbb99775f442200e":1 +mpi_core_sub:"fefefefefefefefe":"1234567890abcdef0":"ffffffffdbb99775f442200e":"ffffffffffffffffdbb99775f442200e":1 mbedtls_mpi_core_sub #534: 0xfefefefefefefefe - 0xfffffffffffffffffefefefefefefefe = 0x10000000000000000/10000000000000000, carry 1 -mbedtls_mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffefefefefefefefe":"10000000000000000":"10000000000000000":1 +mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffefefefefefefefe":"10000000000000000":"10000000000000000":1 mbedtls_mpi_core_sub #535: 0xfefefefefefefefe - 0xfffffffffffffffffffffffffffffffe = 0xfefefefefefeff00/fefefefefefeff00, carry 1 -mbedtls_mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fefefefefefeff00":"fefefefefefeff00":1 +mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fefefefefefeff00":"fefefefefefeff00":1 mbedtls_mpi_core_sub #536: 0xfefefefefefefefe - 0xffffffffffffffffffffffffffffffff = 0xfefefefefefefeff/fefefefefefefeff, carry 1 -mbedtls_mpi_core_sub:"fefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fefefefefefefeff":"fefefefefefefeff":1 +mpi_core_sub:"fefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fefefefefefefeff":"fefefefefefefeff":1 mbedtls_mpi_core_sub #537: 0xfefefefefefefefe - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000fefefefefefefefe/ffffffffffffffff0000000000000000fefefefefefefefe, carry 1 -mbedtls_mpi_core_sub:"fefefefefefefefe":"100000000000000000000000000000000":"ffffffff0000000000000000fefefefefefefefe":"ffffffffffffffff0000000000000000fefefefefefefefe":1 +mpi_core_sub:"fefefefefefefefe":"100000000000000000000000000000000":"ffffffff0000000000000000fefefefefefefefe":"ffffffffffffffff0000000000000000fefefefefefefefe":1 mbedtls_mpi_core_sub #538: 0xfefefefefefefefe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ffdbb99775f442200e/ffffffffffffffedcba9876f543210ffdbb99775f442200e, carry 1 -mbedtls_mpi_core_sub:"fefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdbb99775f442200e":"ffffffffffffffedcba9876f543210ffdbb99775f442200e":1 +mpi_core_sub:"fefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdbb99775f442200e":"ffffffffffffffedcba9876f543210ffdbb99775f442200e":1 mbedtls_mpi_core_sub #539: 0xfefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x10000000000000000/10000000000000000, carry 1 -mbedtls_mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000":"10000000000000000":1 +mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000":"10000000000000000":1 mbedtls_mpi_core_sub #540: 0xfefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0xfefefefefefeff00/fefefefefefeff00, carry 1 -mbedtls_mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefefefefefeff00":"fefefefefefeff00":1 +mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefefefefefeff00":"fefefefefefeff00":1 mbedtls_mpi_core_sub #541: 0xfefefefefefefefe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xfefefefefefefeff/fefefefefefefeff, carry 1 -mbedtls_mpi_core_sub:"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fefefefefefefeff":"fefefefefefefeff":1 +mpi_core_sub:"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fefefefefefefeff":"fefefefefefefeff":1 mbedtls_mpi_core_sub #542: 0xfefefefefefefefe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000fefefefefefefefe/ffffffffffffffff000000000000000000000000000000000000000000000000fefefefefefefefe, carry 1 -mbedtls_mpi_core_sub:"fefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000fefefefefefefefe":"ffffffffffffffff000000000000000000000000000000000000000000000000fefefefefefefefe":1 +mpi_core_sub:"fefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000fefefefefefefefe":"ffffffffffffffff000000000000000000000000000000000000000000000000fefefefefefefefe":1 mbedtls_mpi_core_sub #543: 0xfefefefefefefefe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e, carry 1 -mbedtls_mpi_core_sub:"fefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e":1 +mpi_core_sub:"fefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e":1 mbedtls_mpi_core_sub #544: 0xfefefefefefefefe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3, carry 1 -mbedtls_mpi_core_sub:"fefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3":1 +mpi_core_sub:"fefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3":1 mbedtls_mpi_core_sub #545: 0xfffffffffffffffe - 0x0 = 0xfffffffffffffffe/fffffffffffffffe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"0":"fffffffffffffffe":"fffffffffffffffe":0 +mpi_core_sub:"fffffffffffffffe":"0":"fffffffffffffffe":"fffffffffffffffe":0 mbedtls_mpi_core_sub #546: 0xfffffffffffffffe - 0x1 = 0xfffffffffffffffd/fffffffffffffffd, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"1":"fffffffffffffffd":"fffffffffffffffd":0 +mpi_core_sub:"fffffffffffffffe":"1":"fffffffffffffffd":"fffffffffffffffd":0 mbedtls_mpi_core_sub #547: 0xfffffffffffffffe - 0x3 = 0xfffffffffffffffb/fffffffffffffffb, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"3":"fffffffffffffffb":"fffffffffffffffb":0 +mpi_core_sub:"fffffffffffffffe":"3":"fffffffffffffffb":"fffffffffffffffb":0 mbedtls_mpi_core_sub #548: 0xfffffffffffffffe - 0xf = 0xffffffffffffffef/ffffffffffffffef, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"f":"ffffffffffffffef":"ffffffffffffffef":0 +mpi_core_sub:"fffffffffffffffe":"f":"ffffffffffffffef":"ffffffffffffffef":0 mbedtls_mpi_core_sub #549: 0xfffffffffffffffe - 0xfe = 0xffffffffffffff00/ffffffffffffff00, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"fe":"ffffffffffffff00":"ffffffffffffff00":0 +mpi_core_sub:"fffffffffffffffe":"fe":"ffffffffffffff00":"ffffffffffffff00":0 mbedtls_mpi_core_sub #550: 0xfffffffffffffffe - 0xff = 0xfffffffffffffeff/fffffffffffffeff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"ff":"fffffffffffffeff":"fffffffffffffeff":0 +mpi_core_sub:"fffffffffffffffe":"ff":"fffffffffffffeff":"fffffffffffffeff":0 mbedtls_mpi_core_sub #551: 0xfffffffffffffffe - 0x100 = 0xfffffffffffffefe/fffffffffffffefe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"100":"fffffffffffffefe":"fffffffffffffefe":0 +mpi_core_sub:"fffffffffffffffe":"100":"fffffffffffffefe":"fffffffffffffefe":0 mbedtls_mpi_core_sub #552: 0xfffffffffffffffe - 0xff00 = 0xffffffffffff00fe/ffffffffffff00fe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"ff00":"ffffffffffff00fe":"ffffffffffff00fe":0 +mpi_core_sub:"fffffffffffffffe":"ff00":"ffffffffffff00fe":"ffffffffffff00fe":0 mbedtls_mpi_core_sub #553: 0xfffffffffffffffe - 0xfffe = 0xffffffffffff0000/ffffffffffff0000, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"fffe":"ffffffffffff0000":"ffffffffffff0000":0 +mpi_core_sub:"fffffffffffffffe":"fffe":"ffffffffffff0000":"ffffffffffff0000":0 mbedtls_mpi_core_sub #554: 0xfffffffffffffffe - 0xffff = 0xfffffffffffeffff/fffffffffffeffff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"ffff":"fffffffffffeffff":"fffffffffffeffff":0 +mpi_core_sub:"fffffffffffffffe":"ffff":"fffffffffffeffff":"fffffffffffeffff":0 mbedtls_mpi_core_sub #555: 0xfffffffffffffffe - 0x10000 = 0xfffffffffffefffe/fffffffffffefffe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"10000":"fffffffffffefffe":"fffffffffffefffe":0 +mpi_core_sub:"fffffffffffffffe":"10000":"fffffffffffefffe":"fffffffffffefffe":0 mbedtls_mpi_core_sub #556: 0xfffffffffffffffe - 0xfffffffe = 0xffffffff00000000/ffffffff00000000, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"fffffffe":"ffffffff00000000":"ffffffff00000000":0 +mpi_core_sub:"fffffffffffffffe":"fffffffe":"ffffffff00000000":"ffffffff00000000":0 mbedtls_mpi_core_sub #557: 0xfffffffffffffffe - 0xffffffff = 0xfffffffeffffffff/fffffffeffffffff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"ffffffff":"fffffffeffffffff":"fffffffeffffffff":0 +mpi_core_sub:"fffffffffffffffe":"ffffffff":"fffffffeffffffff":"fffffffeffffffff":0 mbedtls_mpi_core_sub #558: 0xfffffffffffffffe - 0x100000000 = 0xfffffffefffffffe/fffffffefffffffe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"100000000":"fffffffefffffffe":"fffffffefffffffe":0 +mpi_core_sub:"fffffffffffffffe":"100000000":"fffffffefffffffe":"fffffffefffffffe":0 mbedtls_mpi_core_sub #559: 0xfffffffffffffffe - 0x1f7f7f7f7f7f7f = 0xffe080808080807f/ffe080808080807f, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"1f7f7f7f7f7f7f":"ffe080808080807f":"ffe080808080807f":0 +mpi_core_sub:"fffffffffffffffe":"1f7f7f7f7f7f7f":"ffe080808080807f":"ffe080808080807f":0 mbedtls_mpi_core_sub #560: 0xfffffffffffffffe - 0x8000000000000000 = 0x7ffffffffffffffe/7ffffffffffffffe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"8000000000000000":"7ffffffffffffffe":"7ffffffffffffffe":0 +mpi_core_sub:"fffffffffffffffe":"8000000000000000":"7ffffffffffffffe":"7ffffffffffffffe":0 mbedtls_mpi_core_sub #561: 0xfffffffffffffffe - 0xfefefefefefefefe = 0x101010101010100/101010101010100, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"fefefefefefefefe":"101010101010100":"101010101010100":0 +mpi_core_sub:"fffffffffffffffe":"fefefefefefefefe":"101010101010100":"101010101010100":0 mbedtls_mpi_core_sub #562: 0xfffffffffffffffe - 0xfffffffffffffffe = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffe":"fffffffffffffffe":"0":"0":0 +mpi_core_sub:"fffffffffffffffe":"fffffffffffffffe":"0":"0":0 mbedtls_mpi_core_sub #563: 0xfffffffffffffffe - 0xffffffffffffffff = 0xffffffffffffffff/ffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffe":"ffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff":1 +mpi_core_sub:"fffffffffffffffe":"ffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff":1 mbedtls_mpi_core_sub #564: 0xfffffffffffffffe - 0x10000000000000000 = 0xfffffffffffffffffffffffe/fffffffffffffffffffffffffffffffe, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffe":"10000000000000000":"fffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":1 +mpi_core_sub:"fffffffffffffffe":"10000000000000000":"fffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":1 mbedtls_mpi_core_sub #565: 0xfffffffffffffffe - 0x1234567890abcdef0 = 0xffffffffdcba9876f543210e/ffffffffffffffffdcba9876f543210e, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffe":"1234567890abcdef0":"ffffffffdcba9876f543210e":"ffffffffffffffffdcba9876f543210e":1 +mpi_core_sub:"fffffffffffffffe":"1234567890abcdef0":"ffffffffdcba9876f543210e":"ffffffffffffffffdcba9876f543210e":1 mbedtls_mpi_core_sub #566: 0xfffffffffffffffe - 0xfffffffffffffffffefefefefefefefe = 0x10101010101010100/10101010101010100, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffefefefefefefefe":"10101010101010100":"10101010101010100":1 +mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffefefefefefefefe":"10101010101010100":"10101010101010100":1 mbedtls_mpi_core_sub #567: 0xfffffffffffffffe - 0xfffffffffffffffffffffffffffffffe = 0x10000000000000000/10000000000000000, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffffffffffffffffe":"10000000000000000":"10000000000000000":1 +mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffffffffffffffffe":"10000000000000000":"10000000000000000":1 mbedtls_mpi_core_sub #568: 0xfffffffffffffffe - 0xffffffffffffffffffffffffffffffff = 0xffffffffffffffff/ffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffe":"ffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff":1 +mpi_core_sub:"fffffffffffffffe":"ffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff":1 mbedtls_mpi_core_sub #569: 0xfffffffffffffffe - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000fffffffffffffffe/ffffffffffffffff0000000000000000fffffffffffffffe, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffe":"100000000000000000000000000000000":"ffffffff0000000000000000fffffffffffffffe":"ffffffffffffffff0000000000000000fffffffffffffffe":1 +mpi_core_sub:"fffffffffffffffe":"100000000000000000000000000000000":"ffffffff0000000000000000fffffffffffffffe":"ffffffffffffffff0000000000000000fffffffffffffffe":1 mbedtls_mpi_core_sub #570: 0xfffffffffffffffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ffdcba9876f543210e/ffffffffffffffedcba9876f543210ffdcba9876f543210e, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdcba9876f543210e":"ffffffffffffffedcba9876f543210ffdcba9876f543210e":1 +mpi_core_sub:"fffffffffffffffe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdcba9876f543210e":"ffffffffffffffedcba9876f543210ffdcba9876f543210e":1 mbedtls_mpi_core_sub #571: 0xfffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x10101010101010100/10101010101010100, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10101010101010100":"10101010101010100":1 +mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10101010101010100":"10101010101010100":1 mbedtls_mpi_core_sub #572: 0xfffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10000000000000000/10000000000000000, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000":"10000000000000000":1 +mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000":"10000000000000000":1 mbedtls_mpi_core_sub #573: 0xfffffffffffffffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffffffffffffffff/ffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff":1 +mpi_core_sub:"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff":1 mbedtls_mpi_core_sub #574: 0xfffffffffffffffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000fffffffffffffffe/ffffffffffffffff000000000000000000000000000000000000000000000000fffffffffffffffe, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000fffffffffffffffe":"ffffffffffffffff000000000000000000000000000000000000000000000000fffffffffffffffe":1 +mpi_core_sub:"fffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000fffffffffffffffe":"ffffffffffffffff000000000000000000000000000000000000000000000000fffffffffffffffe":1 mbedtls_mpi_core_sub #575: 0xfffffffffffffffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e":1 +mpi_core_sub:"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e":1 mbedtls_mpi_core_sub #576: 0xfffffffffffffffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3":1 +mpi_core_sub:"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3":1 mbedtls_mpi_core_sub #577: 0xffffffffffffffff - 0x0 = 0xffffffffffffffff/ffffffffffffffff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"0":"ffffffffffffffff":"ffffffffffffffff":0 +mpi_core_sub:"ffffffffffffffff":"0":"ffffffffffffffff":"ffffffffffffffff":0 mbedtls_mpi_core_sub #578: 0xffffffffffffffff - 0x1 = 0xfffffffffffffffe/fffffffffffffffe, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffe":0 +mpi_core_sub:"ffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffe":0 mbedtls_mpi_core_sub #579: 0xffffffffffffffff - 0x3 = 0xfffffffffffffffc/fffffffffffffffc, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"3":"fffffffffffffffc":"fffffffffffffffc":0 +mpi_core_sub:"ffffffffffffffff":"3":"fffffffffffffffc":"fffffffffffffffc":0 mbedtls_mpi_core_sub #580: 0xffffffffffffffff - 0xf = 0xfffffffffffffff0/fffffffffffffff0, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"f":"fffffffffffffff0":"fffffffffffffff0":0 +mpi_core_sub:"ffffffffffffffff":"f":"fffffffffffffff0":"fffffffffffffff0":0 mbedtls_mpi_core_sub #581: 0xffffffffffffffff - 0xfe = 0xffffffffffffff01/ffffffffffffff01, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"fe":"ffffffffffffff01":"ffffffffffffff01":0 +mpi_core_sub:"ffffffffffffffff":"fe":"ffffffffffffff01":"ffffffffffffff01":0 mbedtls_mpi_core_sub #582: 0xffffffffffffffff - 0xff = 0xffffffffffffff00/ffffffffffffff00, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"ff":"ffffffffffffff00":"ffffffffffffff00":0 +mpi_core_sub:"ffffffffffffffff":"ff":"ffffffffffffff00":"ffffffffffffff00":0 mbedtls_mpi_core_sub #583: 0xffffffffffffffff - 0x100 = 0xfffffffffffffeff/fffffffffffffeff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"100":"fffffffffffffeff":"fffffffffffffeff":0 +mpi_core_sub:"ffffffffffffffff":"100":"fffffffffffffeff":"fffffffffffffeff":0 mbedtls_mpi_core_sub #584: 0xffffffffffffffff - 0xff00 = 0xffffffffffff00ff/ffffffffffff00ff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"ff00":"ffffffffffff00ff":"ffffffffffff00ff":0 +mpi_core_sub:"ffffffffffffffff":"ff00":"ffffffffffff00ff":"ffffffffffff00ff":0 mbedtls_mpi_core_sub #585: 0xffffffffffffffff - 0xfffe = 0xffffffffffff0001/ffffffffffff0001, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"fffe":"ffffffffffff0001":"ffffffffffff0001":0 +mpi_core_sub:"ffffffffffffffff":"fffe":"ffffffffffff0001":"ffffffffffff0001":0 mbedtls_mpi_core_sub #586: 0xffffffffffffffff - 0xffff = 0xffffffffffff0000/ffffffffffff0000, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"ffff":"ffffffffffff0000":"ffffffffffff0000":0 +mpi_core_sub:"ffffffffffffffff":"ffff":"ffffffffffff0000":"ffffffffffff0000":0 mbedtls_mpi_core_sub #587: 0xffffffffffffffff - 0x10000 = 0xfffffffffffeffff/fffffffffffeffff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"10000":"fffffffffffeffff":"fffffffffffeffff":0 +mpi_core_sub:"ffffffffffffffff":"10000":"fffffffffffeffff":"fffffffffffeffff":0 mbedtls_mpi_core_sub #588: 0xffffffffffffffff - 0xfffffffe = 0xffffffff00000001/ffffffff00000001, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"fffffffe":"ffffffff00000001":"ffffffff00000001":0 +mpi_core_sub:"ffffffffffffffff":"fffffffe":"ffffffff00000001":"ffffffff00000001":0 mbedtls_mpi_core_sub #589: 0xffffffffffffffff - 0xffffffff = 0xffffffff00000000/ffffffff00000000, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff00000000":0 +mpi_core_sub:"ffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff00000000":0 mbedtls_mpi_core_sub #590: 0xffffffffffffffff - 0x100000000 = 0xfffffffeffffffff/fffffffeffffffff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"100000000":"fffffffeffffffff":"fffffffeffffffff":0 +mpi_core_sub:"ffffffffffffffff":"100000000":"fffffffeffffffff":"fffffffeffffffff":0 mbedtls_mpi_core_sub #591: 0xffffffffffffffff - 0x1f7f7f7f7f7f7f = 0xffe0808080808080/ffe0808080808080, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"1f7f7f7f7f7f7f":"ffe0808080808080":"ffe0808080808080":0 +mpi_core_sub:"ffffffffffffffff":"1f7f7f7f7f7f7f":"ffe0808080808080":"ffe0808080808080":0 mbedtls_mpi_core_sub #592: 0xffffffffffffffff - 0x8000000000000000 = 0x7fffffffffffffff/7fffffffffffffff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"8000000000000000":"7fffffffffffffff":"7fffffffffffffff":0 +mpi_core_sub:"ffffffffffffffff":"8000000000000000":"7fffffffffffffff":"7fffffffffffffff":0 mbedtls_mpi_core_sub #593: 0xffffffffffffffff - 0xfefefefefefefefe = 0x101010101010101/101010101010101, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"fefefefefefefefe":"101010101010101":"101010101010101":0 +mpi_core_sub:"ffffffffffffffff":"fefefefefefefefe":"101010101010101":"101010101010101":0 mbedtls_mpi_core_sub #594: 0xffffffffffffffff - 0xfffffffffffffffe = 0x1/1, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"fffffffffffffffe":"1":"1":0 +mpi_core_sub:"ffffffffffffffff":"fffffffffffffffe":"1":"1":0 mbedtls_mpi_core_sub #595: 0xffffffffffffffff - 0xffffffffffffffff = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffff":"ffffffffffffffff":"0":"0":0 +mpi_core_sub:"ffffffffffffffff":"ffffffffffffffff":"0":"0":0 mbedtls_mpi_core_sub #596: 0xffffffffffffffff - 0x10000000000000000 = 0xffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffff":"10000000000000000":"ffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1 +mpi_core_sub:"ffffffffffffffff":"10000000000000000":"ffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1 mbedtls_mpi_core_sub #597: 0xffffffffffffffff - 0x1234567890abcdef0 = 0xffffffffdcba9876f543210f/ffffffffffffffffdcba9876f543210f, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffff":"1234567890abcdef0":"ffffffffdcba9876f543210f":"ffffffffffffffffdcba9876f543210f":1 +mpi_core_sub:"ffffffffffffffff":"1234567890abcdef0":"ffffffffdcba9876f543210f":"ffffffffffffffffdcba9876f543210f":1 mbedtls_mpi_core_sub #598: 0xffffffffffffffff - 0xfffffffffffffffffefefefefefefefe = 0x10101010101010101/10101010101010101, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10101010101010101":"10101010101010101":1 +mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10101010101010101":"10101010101010101":1 mbedtls_mpi_core_sub #599: 0xffffffffffffffff - 0xfffffffffffffffffffffffffffffffe = 0x10000000000000001/10000000000000001, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffffffffffffffffe":"10000000000000001":"10000000000000001":1 +mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffffffffffffffffe":"10000000000000001":"10000000000000001":1 mbedtls_mpi_core_sub #600: 0xffffffffffffffff - 0xffffffffffffffffffffffffffffffff = 0x10000000000000000/10000000000000000, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffff":"ffffffffffffffffffffffffffffffff":"10000000000000000":"10000000000000000":1 +mpi_core_sub:"ffffffffffffffff":"ffffffffffffffffffffffffffffffff":"10000000000000000":"10000000000000000":1 mbedtls_mpi_core_sub #601: 0xffffffffffffffff - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000ffffffffffffffff/ffffffffffffffff0000000000000000ffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffff":"100000000000000000000000000000000":"ffffffff0000000000000000ffffffffffffffff":"ffffffffffffffff0000000000000000ffffffffffffffff":1 +mpi_core_sub:"ffffffffffffffff":"100000000000000000000000000000000":"ffffffff0000000000000000ffffffffffffffff":"ffffffffffffffff0000000000000000ffffffffffffffff":1 mbedtls_mpi_core_sub #602: 0xffffffffffffffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ffdcba9876f543210f/ffffffffffffffedcba9876f543210ffdcba9876f543210f, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdcba9876f543210f":"ffffffffffffffedcba9876f543210ffdcba9876f543210f":1 +mpi_core_sub:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdcba9876f543210f":"ffffffffffffffedcba9876f543210ffdcba9876f543210f":1 mbedtls_mpi_core_sub #603: 0xffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x10101010101010101/10101010101010101, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10101010101010101":"10101010101010101":1 +mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10101010101010101":"10101010101010101":1 mbedtls_mpi_core_sub #604: 0xffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10000000000000001/10000000000000001, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000001":"10000000000000001":1 +mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000001":"10000000000000001":1 mbedtls_mpi_core_sub #605: 0xffffffffffffffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10000000000000000/10000000000000000, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"10000000000000000":1 +mpi_core_sub:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"10000000000000000":1 mbedtls_mpi_core_sub #606: 0xffffffffffffffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000ffffffffffffffff/ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff":"ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff":1 +mpi_core_sub:"ffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff":"ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff":1 mbedtls_mpi_core_sub #607: 0xffffffffffffffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f":1 +mpi_core_sub:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f":1 mbedtls_mpi_core_sub #608: 0xffffffffffffffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4":1 +mpi_core_sub:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4":1 mbedtls_mpi_core_sub #609: 0x10000000000000000 - 0x0 = 0x10000000000000000/10000000000000000, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"0":"10000000000000000":"10000000000000000":0 +mpi_core_sub:"10000000000000000":"0":"10000000000000000":"10000000000000000":0 mbedtls_mpi_core_sub #610: 0x10000000000000000 - 0x1 = 0xffffffffffffffff/ffffffffffffffff, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"1":"ffffffffffffffff":"ffffffffffffffff":0 +mpi_core_sub:"10000000000000000":"1":"ffffffffffffffff":"ffffffffffffffff":0 mbedtls_mpi_core_sub #611: 0x10000000000000000 - 0x3 = 0xfffffffffffffffd/fffffffffffffffd, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"3":"fffffffffffffffd":"fffffffffffffffd":0 +mpi_core_sub:"10000000000000000":"3":"fffffffffffffffd":"fffffffffffffffd":0 mbedtls_mpi_core_sub #612: 0x10000000000000000 - 0xf = 0xfffffffffffffff1/fffffffffffffff1, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"f":"fffffffffffffff1":"fffffffffffffff1":0 +mpi_core_sub:"10000000000000000":"f":"fffffffffffffff1":"fffffffffffffff1":0 mbedtls_mpi_core_sub #613: 0x10000000000000000 - 0xfe = 0xffffffffffffff02/ffffffffffffff02, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"fe":"ffffffffffffff02":"ffffffffffffff02":0 +mpi_core_sub:"10000000000000000":"fe":"ffffffffffffff02":"ffffffffffffff02":0 mbedtls_mpi_core_sub #614: 0x10000000000000000 - 0xff = 0xffffffffffffff01/ffffffffffffff01, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"ff":"ffffffffffffff01":"ffffffffffffff01":0 +mpi_core_sub:"10000000000000000":"ff":"ffffffffffffff01":"ffffffffffffff01":0 mbedtls_mpi_core_sub #615: 0x10000000000000000 - 0x100 = 0xffffffffffffff00/ffffffffffffff00, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"100":"ffffffffffffff00":"ffffffffffffff00":0 +mpi_core_sub:"10000000000000000":"100":"ffffffffffffff00":"ffffffffffffff00":0 mbedtls_mpi_core_sub #616: 0x10000000000000000 - 0xff00 = 0xffffffffffff0100/ffffffffffff0100, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"ff00":"ffffffffffff0100":"ffffffffffff0100":0 +mpi_core_sub:"10000000000000000":"ff00":"ffffffffffff0100":"ffffffffffff0100":0 mbedtls_mpi_core_sub #617: 0x10000000000000000 - 0xfffe = 0xffffffffffff0002/ffffffffffff0002, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"fffe":"ffffffffffff0002":"ffffffffffff0002":0 +mpi_core_sub:"10000000000000000":"fffe":"ffffffffffff0002":"ffffffffffff0002":0 mbedtls_mpi_core_sub #618: 0x10000000000000000 - 0xffff = 0xffffffffffff0001/ffffffffffff0001, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"ffff":"ffffffffffff0001":"ffffffffffff0001":0 +mpi_core_sub:"10000000000000000":"ffff":"ffffffffffff0001":"ffffffffffff0001":0 mbedtls_mpi_core_sub #619: 0x10000000000000000 - 0x10000 = 0xffffffffffff0000/ffffffffffff0000, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"10000":"ffffffffffff0000":"ffffffffffff0000":0 +mpi_core_sub:"10000000000000000":"10000":"ffffffffffff0000":"ffffffffffff0000":0 mbedtls_mpi_core_sub #620: 0x10000000000000000 - 0xfffffffe = 0xffffffff00000002/ffffffff00000002, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"fffffffe":"ffffffff00000002":"ffffffff00000002":0 +mpi_core_sub:"10000000000000000":"fffffffe":"ffffffff00000002":"ffffffff00000002":0 mbedtls_mpi_core_sub #621: 0x10000000000000000 - 0xffffffff = 0xffffffff00000001/ffffffff00000001, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"ffffffff":"ffffffff00000001":"ffffffff00000001":0 +mpi_core_sub:"10000000000000000":"ffffffff":"ffffffff00000001":"ffffffff00000001":0 mbedtls_mpi_core_sub #622: 0x10000000000000000 - 0x100000000 = 0xffffffff00000000/ffffffff00000000, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"100000000":"ffffffff00000000":"ffffffff00000000":0 +mpi_core_sub:"10000000000000000":"100000000":"ffffffff00000000":"ffffffff00000000":0 mbedtls_mpi_core_sub #623: 0x10000000000000000 - 0x1f7f7f7f7f7f7f = 0xffe0808080808081/ffe0808080808081, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"1f7f7f7f7f7f7f":"ffe0808080808081":"ffe0808080808081":0 +mpi_core_sub:"10000000000000000":"1f7f7f7f7f7f7f":"ffe0808080808081":"ffe0808080808081":0 mbedtls_mpi_core_sub #624: 0x10000000000000000 - 0x8000000000000000 = 0x8000000000000000/8000000000000000, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"8000000000000000":"8000000000000000":"8000000000000000":0 +mpi_core_sub:"10000000000000000":"8000000000000000":"8000000000000000":"8000000000000000":0 mbedtls_mpi_core_sub #625: 0x10000000000000000 - 0xfefefefefefefefe = 0x101010101010102/101010101010102, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"fefefefefefefefe":"101010101010102":"101010101010102":0 +mpi_core_sub:"10000000000000000":"fefefefefefefefe":"101010101010102":"101010101010102":0 mbedtls_mpi_core_sub #626: 0x10000000000000000 - 0xfffffffffffffffe = 0x2/2, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"fffffffffffffffe":"2":"2":0 +mpi_core_sub:"10000000000000000":"fffffffffffffffe":"2":"2":0 mbedtls_mpi_core_sub #627: 0x10000000000000000 - 0xffffffffffffffff = 0x1/1, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"ffffffffffffffff":"1":"1":0 +mpi_core_sub:"10000000000000000":"ffffffffffffffff":"1":"1":0 mbedtls_mpi_core_sub #628: 0x10000000000000000 - 0x10000000000000000 = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"10000000000000000":"10000000000000000":"0":"0":0 +mpi_core_sub:"10000000000000000":"10000000000000000":"0":"0":0 mbedtls_mpi_core_sub #629: 0x10000000000000000 - 0x1234567890abcdef0 = 0xffffffffdcba9876f5432110/ffffffffffffffffdcba9876f5432110, carry 1 -mbedtls_mpi_core_sub:"10000000000000000":"1234567890abcdef0":"ffffffffdcba9876f5432110":"ffffffffffffffffdcba9876f5432110":1 +mpi_core_sub:"10000000000000000":"1234567890abcdef0":"ffffffffdcba9876f5432110":"ffffffffffffffffdcba9876f5432110":1 mbedtls_mpi_core_sub #630: 0x10000000000000000 - 0xfffffffffffffffffefefefefefefefe = 0x10101010101010102/10101010101010102, carry 1 -mbedtls_mpi_core_sub:"10000000000000000":"fffffffffffffffffefefefefefefefe":"10101010101010102":"10101010101010102":1 +mpi_core_sub:"10000000000000000":"fffffffffffffffffefefefefefefefe":"10101010101010102":"10101010101010102":1 mbedtls_mpi_core_sub #631: 0x10000000000000000 - 0xfffffffffffffffffffffffffffffffe = 0x10000000000000002/10000000000000002, carry 1 -mbedtls_mpi_core_sub:"10000000000000000":"fffffffffffffffffffffffffffffffe":"10000000000000002":"10000000000000002":1 +mpi_core_sub:"10000000000000000":"fffffffffffffffffffffffffffffffe":"10000000000000002":"10000000000000002":1 mbedtls_mpi_core_sub #632: 0x10000000000000000 - 0xffffffffffffffffffffffffffffffff = 0x10000000000000001/10000000000000001, carry 1 -mbedtls_mpi_core_sub:"10000000000000000":"ffffffffffffffffffffffffffffffff":"10000000000000001":"10000000000000001":1 +mpi_core_sub:"10000000000000000":"ffffffffffffffffffffffffffffffff":"10000000000000001":"10000000000000001":1 mbedtls_mpi_core_sub #633: 0x10000000000000000 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000010000000000000000/ffffffffffffffff00000000000000010000000000000000, carry 1 -mbedtls_mpi_core_sub:"10000000000000000":"100000000000000000000000000000000":"ffffffff00000000000000010000000000000000":"ffffffffffffffff00000000000000010000000000000000":1 +mpi_core_sub:"10000000000000000":"100000000000000000000000000000000":"ffffffff00000000000000010000000000000000":"ffffffffffffffff00000000000000010000000000000000":1 mbedtls_mpi_core_sub #634: 0x10000000000000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ffdcba9876f5432110/ffffffffffffffedcba9876f543210ffdcba9876f5432110, carry 1 -mbedtls_mpi_core_sub:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdcba9876f5432110":"ffffffffffffffedcba9876f543210ffdcba9876f5432110":1 +mpi_core_sub:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdcba9876f5432110":"ffffffffffffffedcba9876f543210ffdcba9876f5432110":1 mbedtls_mpi_core_sub #635: 0x10000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x10101010101010102/10101010101010102, carry 1 -mbedtls_mpi_core_sub:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10101010101010102":"10101010101010102":1 +mpi_core_sub:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10101010101010102":"10101010101010102":1 mbedtls_mpi_core_sub #636: 0x10000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10000000000000002/10000000000000002, carry 1 -mbedtls_mpi_core_sub:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000002":"10000000000000002":1 +mpi_core_sub:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000002":"10000000000000002":1 mbedtls_mpi_core_sub #637: 0x10000000000000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10000000000000001/10000000000000001, carry 1 -mbedtls_mpi_core_sub:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000001":"10000000000000001":1 +mpi_core_sub:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000001":"10000000000000001":1 mbedtls_mpi_core_sub #638: 0x10000000000000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000010000000000000000/ffffffffffffffff0000000000000000000000000000000000000000000000010000000000000000, carry 1 -mbedtls_mpi_core_sub:"10000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000010000000000000000":"ffffffffffffffff0000000000000000000000000000000000000000000000010000000000000000":1 +mpi_core_sub:"10000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000010000000000000000":"ffffffffffffffff0000000000000000000000000000000000000000000000010000000000000000":1 mbedtls_mpi_core_sub #639: 0x10000000000000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110, carry 1 -mbedtls_mpi_core_sub:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110":1 +mpi_core_sub:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110":1 mbedtls_mpi_core_sub #640: 0x10000000000000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5, carry 1 -mbedtls_mpi_core_sub:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5":1 +mpi_core_sub:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5":1 mbedtls_mpi_core_sub #641: 0x1234567890abcdef0 - 0x0 = 0x1234567890abcdef0/1234567890abcdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"0":"1234567890abcdef0":"1234567890abcdef0":0 +mpi_core_sub:"1234567890abcdef0":"0":"1234567890abcdef0":"1234567890abcdef0":0 mbedtls_mpi_core_sub #642: 0x1234567890abcdef0 - 0x1 = 0x1234567890abcdeef/1234567890abcdeef, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"1":"1234567890abcdeef":"1234567890abcdeef":0 +mpi_core_sub:"1234567890abcdef0":"1":"1234567890abcdeef":"1234567890abcdeef":0 mbedtls_mpi_core_sub #643: 0x1234567890abcdef0 - 0x3 = 0x1234567890abcdeed/1234567890abcdeed, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"3":"1234567890abcdeed":"1234567890abcdeed":0 +mpi_core_sub:"1234567890abcdef0":"3":"1234567890abcdeed":"1234567890abcdeed":0 mbedtls_mpi_core_sub #644: 0x1234567890abcdef0 - 0xf = 0x1234567890abcdee1/1234567890abcdee1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"f":"1234567890abcdee1":"1234567890abcdee1":0 +mpi_core_sub:"1234567890abcdef0":"f":"1234567890abcdee1":"1234567890abcdee1":0 mbedtls_mpi_core_sub #645: 0x1234567890abcdef0 - 0xfe = 0x1234567890abcddf2/1234567890abcddf2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"fe":"1234567890abcddf2":"1234567890abcddf2":0 +mpi_core_sub:"1234567890abcdef0":"fe":"1234567890abcddf2":"1234567890abcddf2":0 mbedtls_mpi_core_sub #646: 0x1234567890abcdef0 - 0xff = 0x1234567890abcddf1/1234567890abcddf1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"ff":"1234567890abcddf1":"1234567890abcddf1":0 +mpi_core_sub:"1234567890abcdef0":"ff":"1234567890abcddf1":"1234567890abcddf1":0 mbedtls_mpi_core_sub #647: 0x1234567890abcdef0 - 0x100 = 0x1234567890abcddf0/1234567890abcddf0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"100":"1234567890abcddf0":"1234567890abcddf0":0 +mpi_core_sub:"1234567890abcdef0":"100":"1234567890abcddf0":"1234567890abcddf0":0 mbedtls_mpi_core_sub #648: 0x1234567890abcdef0 - 0xff00 = 0x1234567890abbdff0/1234567890abbdff0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"ff00":"1234567890abbdff0":"1234567890abbdff0":0 +mpi_core_sub:"1234567890abcdef0":"ff00":"1234567890abbdff0":"1234567890abbdff0":0 mbedtls_mpi_core_sub #649: 0x1234567890abcdef0 - 0xfffe = 0x1234567890abbdef2/1234567890abbdef2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"fffe":"1234567890abbdef2":"1234567890abbdef2":0 +mpi_core_sub:"1234567890abcdef0":"fffe":"1234567890abbdef2":"1234567890abbdef2":0 mbedtls_mpi_core_sub #650: 0x1234567890abcdef0 - 0xffff = 0x1234567890abbdef1/1234567890abbdef1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"ffff":"1234567890abbdef1":"1234567890abbdef1":0 +mpi_core_sub:"1234567890abcdef0":"ffff":"1234567890abbdef1":"1234567890abbdef1":0 mbedtls_mpi_core_sub #651: 0x1234567890abcdef0 - 0x10000 = 0x1234567890abbdef0/1234567890abbdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"10000":"1234567890abbdef0":"1234567890abbdef0":0 +mpi_core_sub:"1234567890abcdef0":"10000":"1234567890abbdef0":"1234567890abbdef0":0 mbedtls_mpi_core_sub #652: 0x1234567890abcdef0 - 0xfffffffe = 0x1234567880abcdef2/1234567880abcdef2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"fffffffe":"1234567880abcdef2":"1234567880abcdef2":0 +mpi_core_sub:"1234567890abcdef0":"fffffffe":"1234567880abcdef2":"1234567880abcdef2":0 mbedtls_mpi_core_sub #653: 0x1234567890abcdef0 - 0xffffffff = 0x1234567880abcdef1/1234567880abcdef1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"ffffffff":"1234567880abcdef1":"1234567880abcdef1":0 +mpi_core_sub:"1234567890abcdef0":"ffffffff":"1234567880abcdef1":"1234567880abcdef1":0 mbedtls_mpi_core_sub #654: 0x1234567890abcdef0 - 0x100000000 = 0x1234567880abcdef0/1234567880abcdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"100000000":"1234567880abcdef0":"1234567880abcdef0":0 +mpi_core_sub:"1234567890abcdef0":"100000000":"1234567880abcdef0":"1234567880abcdef0":0 mbedtls_mpi_core_sub #655: 0x1234567890abcdef0 - 0x1f7f7f7f7f7f7f = 0x12325e8098b3d5f71/12325e8098b3d5f71, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"1f7f7f7f7f7f7f":"12325e8098b3d5f71":"12325e8098b3d5f71":0 +mpi_core_sub:"1234567890abcdef0":"1f7f7f7f7f7f7f":"12325e8098b3d5f71":"12325e8098b3d5f71":0 mbedtls_mpi_core_sub #656: 0x1234567890abcdef0 - 0x8000000000000000 = 0xa34567890abcdef0/a34567890abcdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"8000000000000000":"a34567890abcdef0":"a34567890abcdef0":0 +mpi_core_sub:"1234567890abcdef0":"8000000000000000":"a34567890abcdef0":"a34567890abcdef0":0 mbedtls_mpi_core_sub #657: 0x1234567890abcdef0 - 0xfefefefefefefefe = 0x2446688a0bbddff2/2446688a0bbddff2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"fefefefefefefefe":"2446688a0bbddff2":"2446688a0bbddff2":0 +mpi_core_sub:"1234567890abcdef0":"fefefefefefefefe":"2446688a0bbddff2":"2446688a0bbddff2":0 mbedtls_mpi_core_sub #658: 0x1234567890abcdef0 - 0xfffffffffffffffe = 0x234567890abcdef2/234567890abcdef2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"fffffffffffffffe":"234567890abcdef2":"234567890abcdef2":0 +mpi_core_sub:"1234567890abcdef0":"fffffffffffffffe":"234567890abcdef2":"234567890abcdef2":0 mbedtls_mpi_core_sub #659: 0x1234567890abcdef0 - 0xffffffffffffffff = 0x234567890abcdef1/234567890abcdef1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"ffffffffffffffff":"234567890abcdef1":"234567890abcdef1":0 +mpi_core_sub:"1234567890abcdef0":"ffffffffffffffff":"234567890abcdef1":"234567890abcdef1":0 mbedtls_mpi_core_sub #660: 0x1234567890abcdef0 - 0x10000000000000000 = 0x234567890abcdef0/234567890abcdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"10000000000000000":"234567890abcdef0":"234567890abcdef0":0 +mpi_core_sub:"1234567890abcdef0":"10000000000000000":"234567890abcdef0":"234567890abcdef0":0 mbedtls_mpi_core_sub #661: 0x1234567890abcdef0 - 0x1234567890abcdef0 = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef0":"1234567890abcdef0":"0":"0":0 +mpi_core_sub:"1234567890abcdef0":"1234567890abcdef0":"0":"0":0 mbedtls_mpi_core_sub #662: 0x1234567890abcdef0 - 0xfffffffffffffffffefefefefefefefe = 0x12446688a0bbddff2/12446688a0bbddff2, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"12446688a0bbddff2":"12446688a0bbddff2":1 +mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"12446688a0bbddff2":"12446688a0bbddff2":1 mbedtls_mpi_core_sub #663: 0x1234567890abcdef0 - 0xfffffffffffffffffffffffffffffffe = 0x1234567890abcdef2/1234567890abcdef2, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1234567890abcdef2":"1234567890abcdef2":1 +mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1234567890abcdef2":"1234567890abcdef2":1 mbedtls_mpi_core_sub #664: 0x1234567890abcdef0 - 0xffffffffffffffffffffffffffffffff = 0x1234567890abcdef1/1234567890abcdef1, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1234567890abcdef1":"1234567890abcdef1":1 +mpi_core_sub:"1234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1234567890abcdef1":"1234567890abcdef1":1 mbedtls_mpi_core_sub #665: 0x1234567890abcdef0 - 0x100000000000000000000000000000000 = 0xffffffff0000000000000001234567890abcdef0/ffffffffffffffff0000000000000001234567890abcdef0, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef0":"100000000000000000000000000000000":"ffffffff0000000000000001234567890abcdef0":"ffffffffffffffff0000000000000001234567890abcdef0":1 +mpi_core_sub:"1234567890abcdef0":"100000000000000000000000000000000":"ffffffff0000000000000001234567890abcdef0":"ffffffffffffffff0000000000000001234567890abcdef0":1 mbedtls_mpi_core_sub #666: 0x1234567890abcdef0 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543211000000000000000000/ffffffffffffffedcba9876f543211000000000000000000, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543211000000000000000000":"ffffffffffffffedcba9876f543211000000000000000000":1 +mpi_core_sub:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543211000000000000000000":"ffffffffffffffedcba9876f543211000000000000000000":1 mbedtls_mpi_core_sub #667: 0x1234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x12446688a0bbddff2/12446688a0bbddff2, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"12446688a0bbddff2":"12446688a0bbddff2":1 +mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"12446688a0bbddff2":"12446688a0bbddff2":1 mbedtls_mpi_core_sub #668: 0x1234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1234567890abcdef2/1234567890abcdef2, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef2":"1234567890abcdef2":1 +mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef2":"1234567890abcdef2":1 mbedtls_mpi_core_sub #669: 0x1234567890abcdef0 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1234567890abcdef1/1234567890abcdef1, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef1":"1234567890abcdef1":1 +mpi_core_sub:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef1":"1234567890abcdef1":1 mbedtls_mpi_core_sub #670: 0x1234567890abcdef0 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000001234567890abcdef0/ffffffffffffffff000000000000000000000000000000000000000000000001234567890abcdef0, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000001234567890abcdef0":"ffffffffffffffff000000000000000000000000000000000000000000000001234567890abcdef0":1 +mpi_core_sub:"1234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000001234567890abcdef0":"ffffffffffffffff000000000000000000000000000000000000000000000001234567890abcdef0":1 mbedtls_mpi_core_sub #671: 0x1234567890abcdef0 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000":1 +mpi_core_sub:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000":1 mbedtls_mpi_core_sub #672: 0x1234567890abcdef0 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5":1 +mpi_core_sub:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5":1 mbedtls_mpi_core_sub #673: 0xfffffffffffffffffefefefefefefefe - 0x0 = 0xfffffffffffffffffefefefefefefefe/fffffffffffffffffefefefefefefefe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":0 mbedtls_mpi_core_sub #674: 0xfffffffffffffffffefefefefefefefe - 0x1 = 0xfffffffffffffffffefefefefefefefd/fffffffffffffffffefefefefefefefd, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1":"fffffffffffffffffefefefefefefefd":"fffffffffffffffffefefefefefefefd":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1":"fffffffffffffffffefefefefefefefd":"fffffffffffffffffefefefefefefefd":0 mbedtls_mpi_core_sub #675: 0xfffffffffffffffffefefefefefefefe - 0x3 = 0xfffffffffffffffffefefefefefefefb/fffffffffffffffffefefefefefefefb, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffefefefefefefefb":"fffffffffffffffffefefefefefefefb":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffefefefefefefefb":"fffffffffffffffffefefefefefefefb":0 mbedtls_mpi_core_sub #676: 0xfffffffffffffffffefefefefefefefe - 0xf = 0xfffffffffffffffffefefefefefefeef/fffffffffffffffffefefefefefefeef, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"f":"fffffffffffffffffefefefefefefeef":"fffffffffffffffffefefefefefefeef":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"f":"fffffffffffffffffefefefefefefeef":"fffffffffffffffffefefefefefefeef":0 mbedtls_mpi_core_sub #677: 0xfffffffffffffffffefefefefefefefe - 0xfe = 0xfffffffffffffffffefefefefefefe00/fffffffffffffffffefefefefefefe00, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fe":"fffffffffffffffffefefefefefefe00":"fffffffffffffffffefefefefefefe00":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fe":"fffffffffffffffffefefefefefefe00":"fffffffffffffffffefefefefefefe00":0 mbedtls_mpi_core_sub #678: 0xfffffffffffffffffefefefefefefefe - 0xff = 0xfffffffffffffffffefefefefefefdff/fffffffffffffffffefefefefefefdff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffffefefefefefefdff":"fffffffffffffffffefefefefefefdff":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffffefefefefefefdff":"fffffffffffffffffefefefefefefdff":0 mbedtls_mpi_core_sub #679: 0xfffffffffffffffffefefefefefefefe - 0x100 = 0xfffffffffffffffffefefefefefefdfe/fffffffffffffffffefefefefefefdfe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"100":"fffffffffffffffffefefefefefefdfe":"fffffffffffffffffefefefefefefdfe":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"100":"fffffffffffffffffefefefefefefdfe":"fffffffffffffffffefefefefefefdfe":0 mbedtls_mpi_core_sub #680: 0xfffffffffffffffffefefefefefefefe - 0xff00 = 0xfffffffffffffffffefefefefefdfffe/fffffffffffffffffefefefefefdfffe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ff00":"fffffffffffffffffefefefefefdfffe":"fffffffffffffffffefefefefefdfffe":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ff00":"fffffffffffffffffefefefefefdfffe":"fffffffffffffffffefefefefefdfffe":0 mbedtls_mpi_core_sub #681: 0xfffffffffffffffffefefefefefefefe - 0xfffe = 0xfffffffffffffffffefefefefefdff00/fffffffffffffffffefefefefefdff00, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffe":"fffffffffffffffffefefefefefdff00":"fffffffffffffffffefefefefefdff00":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffe":"fffffffffffffffffefefefefefdff00":"fffffffffffffffffefefefefefdff00":0 mbedtls_mpi_core_sub #682: 0xfffffffffffffffffefefefefefefefe - 0xffff = 0xfffffffffffffffffefefefefefdfeff/fffffffffffffffffefefefefefdfeff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffffffefefefefefdfeff":"fffffffffffffffffefefefefefdfeff":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffffffefefefefefdfeff":"fffffffffffffffffefefefefefdfeff":0 mbedtls_mpi_core_sub #683: 0xfffffffffffffffffefefefefefefefe - 0x10000 = 0xfffffffffffffffffefefefefefdfefe/fffffffffffffffffefefefefefdfefe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffffffefefefefefdfefe":"fffffffffffffffffefefefefefdfefe":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffffffefefefefefdfefe":"fffffffffffffffffefefefefefdfefe":0 mbedtls_mpi_core_sub #684: 0xfffffffffffffffffefefefefefefefe - 0xfffffffe = 0xfffffffffffffffffefefefdfefeff00/fffffffffffffffffefefefdfefeff00, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffe":"fffffffffffffffffefefefdfefeff00":"fffffffffffffffffefefefdfefeff00":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffe":"fffffffffffffffffefefefdfefeff00":"fffffffffffffffffefefefdfefeff00":0 mbedtls_mpi_core_sub #685: 0xfffffffffffffffffefefefefefefefe - 0xffffffff = 0xfffffffffffffffffefefefdfefefeff/fffffffffffffffffefefefdfefefeff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffffefefefdfefefeff":"fffffffffffffffffefefefdfefefeff":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffffefefefdfefefeff":"fffffffffffffffffefefefdfefefeff":0 mbedtls_mpi_core_sub #686: 0xfffffffffffffffffefefefefefefefe - 0x100000000 = 0xfffffffffffffffffefefefdfefefefe/fffffffffffffffffefefefdfefefefe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffffefefefdfefefefe":"fffffffffffffffffefefefdfefefefe":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffffefefefdfefefefe":"fffffffffffffffffefefefdfefefefe":0 mbedtls_mpi_core_sub #687: 0xfffffffffffffffffefefefefefefefe - 0x1f7f7f7f7f7f7f = 0xfffffffffffffffffedf7f7f7f7f7f7f/fffffffffffffffffedf7f7f7f7f7f7f, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1f7f7f7f7f7f7f":"fffffffffffffffffedf7f7f7f7f7f7f":"fffffffffffffffffedf7f7f7f7f7f7f":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1f7f7f7f7f7f7f":"fffffffffffffffffedf7f7f7f7f7f7f":"fffffffffffffffffedf7f7f7f7f7f7f":0 mbedtls_mpi_core_sub #688: 0xfffffffffffffffffefefefefefefefe - 0x8000000000000000 = 0xffffffffffffffff7efefefefefefefe/ffffffffffffffff7efefefefefefefe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"ffffffffffffffff7efefefefefefefe":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"ffffffffffffffff7efefefefefefefe":0 mbedtls_mpi_core_sub #689: 0xfffffffffffffffffefefefefefefefe - 0xfefefefefefefefe = 0xffffffffffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fefefefefefefefe":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fefefefefefefefe":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 mbedtls_mpi_core_sub #690: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffe = 0xfffffffffffffffefefefefefefeff00/fffffffffffffffefefefefefefeff00, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffefefefefefefeff00":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffefefefefefefeff00":0 mbedtls_mpi_core_sub #691: 0xfffffffffffffffffefefefefefefefe - 0xffffffffffffffff = 0xfffffffffffffffefefefefefefefeff/fffffffffffffffefefefefefefefeff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fffffffffffffffefefefefefefefeff":"fffffffffffffffefefefefefefefeff":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fffffffffffffffefefefefefefefeff":"fffffffffffffffefefefefefefefeff":0 mbedtls_mpi_core_sub #692: 0xfffffffffffffffffefefefefefefefe - 0x10000000000000000 = 0xfffffffffffffffefefefefefefefefe/fffffffffffffffefefefefefefefefe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fffffffffffffffefefefefefefefefe":"fffffffffffffffefefefefefefefefe":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fffffffffffffffefefefefefefefefe":"fffffffffffffffefefefefefefefefe":0 mbedtls_mpi_core_sub #693: 0xfffffffffffffffffefefefefefefefe - 0x1234567890abcdef0 = 0xfffffffffffffffedbb99775f442200e/fffffffffffffffedbb99775f442200e, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fffffffffffffffedbb99775f442200e":"fffffffffffffffedbb99775f442200e":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fffffffffffffffedbb99775f442200e":"fffffffffffffffedbb99775f442200e":0 mbedtls_mpi_core_sub #694: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffffefefefefefefefe = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"0":"0":0 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"0":"0":0 mbedtls_mpi_core_sub #695: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffe = 0xfffffffffffffffffefefefefefeff00/fffffffffffffffffefefefefefeff00, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefeff00":"fffffffffffffffffefefefefefeff00":1 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefeff00":"fffffffffffffffffefefefefefeff00":1 mbedtls_mpi_core_sub #696: 0xfffffffffffffffffefefefefefefefe - 0xffffffffffffffffffffffffffffffff = 0xfffffffffffffffffefefefefefefeff/fffffffffffffffffefefefefefefeff, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefeff":"fffffffffffffffffefefefefefefeff":1 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefeff":"fffffffffffffffffefefefefefefeff":1 mbedtls_mpi_core_sub #697: 0xfffffffffffffffffefefefefefefefe - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffefefefefefefefe/fffffffffffffffffffffffffffffffffefefefefefefefe, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffefefefefefefefe":1 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffefefefefefefefe":1 mbedtls_mpi_core_sub #698: 0xfffffffffffffffffefefefefefefefe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffeecba9876f543210fedbb99775f442200e/ffffffffffffffeecba9876f543210fedbb99775f442200e, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedbb99775f442200e":"ffffffffffffffeecba9876f543210fedbb99775f442200e":1 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedbb99775f442200e":"ffffffffffffffeecba9876f543210fedbb99775f442200e":1 mbedtls_mpi_core_sub #699: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x100000000000000000000000000000000/100000000000000000000000000000000, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"100000000000000000000000000000000":1 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"100000000000000000000000000000000":1 mbedtls_mpi_core_sub #700: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0xfffffffffffffffffefefefefefeff00/fffffffffffffffffefefefefefeff00, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefeff00":"fffffffffffffffffefefefefefeff00":1 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefeff00":"fffffffffffffffffefefefefefeff00":1 mbedtls_mpi_core_sub #701: 0xfffffffffffffffffefefefefefefefe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xfffffffffffffffffefefefefefefeff/fffffffffffffffffefefefefefefeff, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefeff":"fffffffffffffffffefefefefefefeff":1 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefeff":"fffffffffffffffffefefefefefefeff":1 mbedtls_mpi_core_sub #702: 0xfffffffffffffffffefefefefefefefe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe/ffffffffffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe":"ffffffffffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe":1 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe":"ffffffffffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe":1 mbedtls_mpi_core_sub #703: 0xfffffffffffffffffefefefefefefefe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e/ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e":1 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e":1 mbedtls_mpi_core_sub #704: 0xfffffffffffffffffefefefefefefefe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3":1 +mpi_core_sub:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3":1 mbedtls_mpi_core_sub #705: 0xfffffffffffffffffffffffffffffffe - 0x0 = 0xfffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"0":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"0":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":0 mbedtls_mpi_core_sub #706: 0xfffffffffffffffffffffffffffffffe - 0x1 = 0xfffffffffffffffffffffffffffffffd/fffffffffffffffffffffffffffffffd, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1":"fffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffd":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1":"fffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffd":0 mbedtls_mpi_core_sub #707: 0xfffffffffffffffffffffffffffffffe - 0x3 = 0xfffffffffffffffffffffffffffffffb/fffffffffffffffffffffffffffffffb, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"3":"fffffffffffffffffffffffffffffffb":"fffffffffffffffffffffffffffffffb":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"3":"fffffffffffffffffffffffffffffffb":"fffffffffffffffffffffffffffffffb":0 mbedtls_mpi_core_sub #708: 0xfffffffffffffffffffffffffffffffe - 0xf = 0xffffffffffffffffffffffffffffffef/ffffffffffffffffffffffffffffffef, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"f":"ffffffffffffffffffffffffffffffef":"ffffffffffffffffffffffffffffffef":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"f":"ffffffffffffffffffffffffffffffef":"ffffffffffffffffffffffffffffffef":0 mbedtls_mpi_core_sub #709: 0xfffffffffffffffffffffffffffffffe - 0xfe = 0xffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffff00, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fe":"ffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffff00":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fe":"ffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffff00":0 mbedtls_mpi_core_sub #710: 0xfffffffffffffffffffffffffffffffe - 0xff = 0xfffffffffffffffffffffffffffffeff/fffffffffffffffffffffffffffffeff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ff":"fffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffeff":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ff":"fffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffeff":0 mbedtls_mpi_core_sub #711: 0xfffffffffffffffffffffffffffffffe - 0x100 = 0xfffffffffffffffffffffffffffffefe/fffffffffffffffffffffffffffffefe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"100":"fffffffffffffffffffffffffffffefe":"fffffffffffffffffffffffffffffefe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"100":"fffffffffffffffffffffffffffffefe":"fffffffffffffffffffffffffffffefe":0 mbedtls_mpi_core_sub #712: 0xfffffffffffffffffffffffffffffffe - 0xff00 = 0xffffffffffffffffffffffffffff00fe/ffffffffffffffffffffffffffff00fe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ff00":"ffffffffffffffffffffffffffff00fe":"ffffffffffffffffffffffffffff00fe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ff00":"ffffffffffffffffffffffffffff00fe":"ffffffffffffffffffffffffffff00fe":0 mbedtls_mpi_core_sub #713: 0xfffffffffffffffffffffffffffffffe - 0xfffe = 0xffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffff0000, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffe":"ffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffff0000":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffe":"ffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffff0000":0 mbedtls_mpi_core_sub #714: 0xfffffffffffffffffffffffffffffffe - 0xffff = 0xfffffffffffffffffffffffffffeffff/fffffffffffffffffffffffffffeffff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffff":"fffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffeffff":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffff":"fffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffeffff":0 mbedtls_mpi_core_sub #715: 0xfffffffffffffffffffffffffffffffe - 0x10000 = 0xfffffffffffffffffffffffffffefffe/fffffffffffffffffffffffffffefffe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"10000":"fffffffffffffffffffffffffffefffe":"fffffffffffffffffffffffffffefffe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"10000":"fffffffffffffffffffffffffffefffe":"fffffffffffffffffffffffffffefffe":0 mbedtls_mpi_core_sub #716: 0xfffffffffffffffffffffffffffffffe - 0xfffffffe = 0xffffffffffffffffffffffff00000000/ffffffffffffffffffffffff00000000, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffe":"ffffffffffffffffffffffff00000000":"ffffffffffffffffffffffff00000000":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffe":"ffffffffffffffffffffffff00000000":"ffffffffffffffffffffffff00000000":0 mbedtls_mpi_core_sub #717: 0xfffffffffffffffffffffffffffffffe - 0xffffffff = 0xfffffffffffffffffffffffeffffffff/fffffffffffffffffffffffeffffffff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffff":"fffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffeffffffff":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffff":"fffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffeffffffff":0 mbedtls_mpi_core_sub #718: 0xfffffffffffffffffffffffffffffffe - 0x100000000 = 0xfffffffffffffffffffffffefffffffe/fffffffffffffffffffffffefffffffe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"100000000":"fffffffffffffffffffffffefffffffe":"fffffffffffffffffffffffefffffffe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"100000000":"fffffffffffffffffffffffefffffffe":"fffffffffffffffffffffffefffffffe":0 mbedtls_mpi_core_sub #719: 0xfffffffffffffffffffffffffffffffe - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffe080808080807f/ffffffffffffffffffe080808080807f, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7f":"ffffffffffffffffffe080808080807f":"ffffffffffffffffffe080808080807f":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7f":"ffffffffffffffffffe080808080807f":"ffffffffffffffffffe080808080807f":0 mbedtls_mpi_core_sub #720: 0xfffffffffffffffffffffffffffffffe - 0x8000000000000000 = 0xffffffffffffffff7ffffffffffffffe/ffffffffffffffff7ffffffffffffffe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"8000000000000000":"ffffffffffffffff7ffffffffffffffe":"ffffffffffffffff7ffffffffffffffe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"8000000000000000":"ffffffffffffffff7ffffffffffffffe":"ffffffffffffffff7ffffffffffffffe":0 mbedtls_mpi_core_sub #721: 0xfffffffffffffffffffffffffffffffe - 0xfefefefefefefefe = 0xffffffffffffffff0101010101010100/ffffffffffffffff0101010101010100, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fefefefefefefefe":"ffffffffffffffff0101010101010100":"ffffffffffffffff0101010101010100":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fefefefefefefefe":"ffffffffffffffff0101010101010100":"ffffffffffffffff0101010101010100":0 mbedtls_mpi_core_sub #722: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffe = 0xffffffffffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffe":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffe":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 mbedtls_mpi_core_sub #723: 0xfffffffffffffffffffffffffffffffe - 0xffffffffffffffff = 0xfffffffffffffffeffffffffffffffff/fffffffffffffffeffffffffffffffff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffffffffffff":"fffffffffffffffeffffffffffffffff":"fffffffffffffffeffffffffffffffff":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffffffffffff":"fffffffffffffffeffffffffffffffff":"fffffffffffffffeffffffffffffffff":0 mbedtls_mpi_core_sub #724: 0xfffffffffffffffffffffffffffffffe - 0x10000000000000000 = 0xfffffffffffffffefffffffffffffffe/fffffffffffffffefffffffffffffffe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"10000000000000000":"fffffffffffffffefffffffffffffffe":"fffffffffffffffefffffffffffffffe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"10000000000000000":"fffffffffffffffefffffffffffffffe":"fffffffffffffffefffffffffffffffe":0 mbedtls_mpi_core_sub #725: 0xfffffffffffffffffffffffffffffffe - 0x1234567890abcdef0 = 0xfffffffffffffffedcba9876f543210e/fffffffffffffffedcba9876f543210e, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1234567890abcdef0":"fffffffffffffffedcba9876f543210e":"fffffffffffffffedcba9876f543210e":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1234567890abcdef0":"fffffffffffffffedcba9876f543210e":"fffffffffffffffedcba9876f543210e":0 mbedtls_mpi_core_sub #726: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffffefefefefefefefe = 0x101010101010100/101010101010100, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefe":"101010101010100":"101010101010100":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefe":"101010101010100":"101010101010100":0 mbedtls_mpi_core_sub #727: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffe = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":"0":"0":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":"0":"0":0 mbedtls_mpi_core_sub #728: 0xfffffffffffffffffffffffffffffffe - 0xffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1 mbedtls_mpi_core_sub #729: 0xfffffffffffffffffffffffffffffffe - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffe, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffe":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffe":1 mbedtls_mpi_core_sub #730: 0xfffffffffffffffffffffffffffffffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffeecba9876f543210fedcba9876f543210e/ffffffffffffffeecba9876f543210fedcba9876f543210e, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedcba9876f543210e":"ffffffffffffffeecba9876f543210fedcba9876f543210e":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedcba9876f543210e":"ffffffffffffffeecba9876f543210fedcba9876f543210e":1 mbedtls_mpi_core_sub #731: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x100000000000000000101010101010100/100000000000000000101010101010100, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000101010101010100":"100000000000000000101010101010100":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000101010101010100":"100000000000000000101010101010100":1 mbedtls_mpi_core_sub #732: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000000000000000000000000000000/100000000000000000000000000000000, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"100000000000000000000000000000000":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"100000000000000000000000000000000":1 mbedtls_mpi_core_sub #733: 0xfffffffffffffffffffffffffffffffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1 mbedtls_mpi_core_sub #734: 0xfffffffffffffffffffffffffffffffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe/ffffffffffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe":"ffffffffffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe":"ffffffffffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe":1 mbedtls_mpi_core_sub #735: 0xfffffffffffffffffffffffffffffffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e/ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e":1 mbedtls_mpi_core_sub #736: 0xfffffffffffffffffffffffffffffffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3":1 mbedtls_mpi_core_sub #737: 0xffffffffffffffffffffffffffffffff - 0x0 = 0xffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":0 mbedtls_mpi_core_sub #738: 0xffffffffffffffffffffffffffffffff - 0x1 = 0xfffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffe, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":0 mbedtls_mpi_core_sub #739: 0xffffffffffffffffffffffffffffffff - 0x3 = 0xfffffffffffffffffffffffffffffffc/fffffffffffffffffffffffffffffffc, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffc":"fffffffffffffffffffffffffffffffc":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffc":"fffffffffffffffffffffffffffffffc":0 mbedtls_mpi_core_sub #740: 0xffffffffffffffffffffffffffffffff - 0xf = 0xfffffffffffffffffffffffffffffff0/fffffffffffffffffffffffffffffff0, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"f":"fffffffffffffffffffffffffffffff0":"fffffffffffffffffffffffffffffff0":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"f":"fffffffffffffffffffffffffffffff0":"fffffffffffffffffffffffffffffff0":0 mbedtls_mpi_core_sub #741: 0xffffffffffffffffffffffffffffffff - 0xfe = 0xffffffffffffffffffffffffffffff01/ffffffffffffffffffffffffffffff01, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffff01":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffff01":0 mbedtls_mpi_core_sub #742: 0xffffffffffffffffffffffffffffffff - 0xff = 0xffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffff00, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffff00":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffff00":0 mbedtls_mpi_core_sub #743: 0xffffffffffffffffffffffffffffffff - 0x100 = 0xfffffffffffffffffffffffffffffeff/fffffffffffffffffffffffffffffeff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"100":"fffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffeff":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"100":"fffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffeff":0 mbedtls_mpi_core_sub #744: 0xffffffffffffffffffffffffffffffff - 0xff00 = 0xffffffffffffffffffffffffffff00ff/ffffffffffffffffffffffffffff00ff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ff00":"ffffffffffffffffffffffffffff00ff":"ffffffffffffffffffffffffffff00ff":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ff00":"ffffffffffffffffffffffffffff00ff":"ffffffffffffffffffffffffffff00ff":0 mbedtls_mpi_core_sub #745: 0xffffffffffffffffffffffffffffffff - 0xfffe = 0xffffffffffffffffffffffffffff0001/ffffffffffffffffffffffffffff0001, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffe":"ffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffff0001":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffe":"ffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffff0001":0 mbedtls_mpi_core_sub #746: 0xffffffffffffffffffffffffffffffff - 0xffff = 0xffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffff0000, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffff0000":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffff0000":0 mbedtls_mpi_core_sub #747: 0xffffffffffffffffffffffffffffffff - 0x10000 = 0xfffffffffffffffffffffffffffeffff/fffffffffffffffffffffffffffeffff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffeffff":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffeffff":0 mbedtls_mpi_core_sub #748: 0xffffffffffffffffffffffffffffffff - 0xfffffffe = 0xffffffffffffffffffffffff00000001/ffffffffffffffffffffffff00000001, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffe":"ffffffffffffffffffffffff00000001":"ffffffffffffffffffffffff00000001":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffe":"ffffffffffffffffffffffff00000001":"ffffffffffffffffffffffff00000001":0 mbedtls_mpi_core_sub #749: 0xffffffffffffffffffffffffffffffff - 0xffffffff = 0xffffffffffffffffffffffff00000000/ffffffffffffffffffffffff00000000, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffff00000000":"ffffffffffffffffffffffff00000000":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffff00000000":"ffffffffffffffffffffffff00000000":0 mbedtls_mpi_core_sub #750: 0xffffffffffffffffffffffffffffffff - 0x100000000 = 0xfffffffffffffffffffffffeffffffff/fffffffffffffffffffffffeffffffff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffeffffffff":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffeffffffff":0 mbedtls_mpi_core_sub #751: 0xffffffffffffffffffffffffffffffff - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffe0808080808080/ffffffffffffffffffe0808080808080, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7f":"ffffffffffffffffffe0808080808080":"ffffffffffffffffffe0808080808080":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7f":"ffffffffffffffffffe0808080808080":"ffffffffffffffffffe0808080808080":0 mbedtls_mpi_core_sub #752: 0xffffffffffffffffffffffffffffffff - 0x8000000000000000 = 0xffffffffffffffff7fffffffffffffff/ffffffffffffffff7fffffffffffffff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff7fffffffffffffff":"ffffffffffffffff7fffffffffffffff":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff7fffffffffffffff":"ffffffffffffffff7fffffffffffffff":0 mbedtls_mpi_core_sub #753: 0xffffffffffffffffffffffffffffffff - 0xfefefefefefefefe = 0xffffffffffffffff0101010101010101/ffffffffffffffff0101010101010101, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fefefefefefefefe":"ffffffffffffffff0101010101010101":"ffffffffffffffff0101010101010101":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fefefefefefefefe":"ffffffffffffffff0101010101010101":"ffffffffffffffff0101010101010101":0 mbedtls_mpi_core_sub #754: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffe = 0xffffffffffffffff0000000000000001/ffffffffffffffff0000000000000001, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffff0000000000000001":"ffffffffffffffff0000000000000001":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffff0000000000000001":"ffffffffffffffff0000000000000001":0 mbedtls_mpi_core_sub #755: 0xffffffffffffffffffffffffffffffff - 0xffffffffffffffff = 0xffffffffffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 mbedtls_mpi_core_sub #756: 0xffffffffffffffffffffffffffffffff - 0x10000000000000000 = 0xfffffffffffffffeffffffffffffffff/fffffffffffffffeffffffffffffffff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"10000000000000000":"fffffffffffffffeffffffffffffffff":"fffffffffffffffeffffffffffffffff":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"10000000000000000":"fffffffffffffffeffffffffffffffff":"fffffffffffffffeffffffffffffffff":0 mbedtls_mpi_core_sub #757: 0xffffffffffffffffffffffffffffffff - 0x1234567890abcdef0 = 0xfffffffffffffffedcba9876f543210f/fffffffffffffffedcba9876f543210f, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fffffffffffffffedcba9876f543210f":"fffffffffffffffedcba9876f543210f":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fffffffffffffffedcba9876f543210f":"fffffffffffffffedcba9876f543210f":0 mbedtls_mpi_core_sub #758: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffffefefefefefefefe = 0x101010101010101/101010101010101, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"101010101010101":"101010101010101":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"101010101010101":"101010101010101":0 mbedtls_mpi_core_sub #759: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffe = 0x1/1, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":"1":"1":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":"1":"1":0 mbedtls_mpi_core_sub #760: 0xffffffffffffffffffffffffffffffff - 0xffffffffffffffffffffffffffffffff = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"0":"0":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"0":"0":0 mbedtls_mpi_core_sub #761: 0xffffffffffffffffffffffffffffffff - 0x100000000000000000000000000000000 = 0xffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff":1 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff":1 mbedtls_mpi_core_sub #762: 0xffffffffffffffffffffffffffffffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffeecba9876f543210fedcba9876f543210f/ffffffffffffffeecba9876f543210fedcba9876f543210f, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedcba9876f543210f":"ffffffffffffffeecba9876f543210fedcba9876f543210f":1 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedcba9876f543210f":"ffffffffffffffeecba9876f543210fedcba9876f543210f":1 mbedtls_mpi_core_sub #763: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x100000000000000000101010101010101/100000000000000000101010101010101, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000101010101010101":"100000000000000000101010101010101":1 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000101010101010101":"100000000000000000101010101010101":1 mbedtls_mpi_core_sub #764: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000000000000000000000000000001/100000000000000000000000000000001, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000001":"100000000000000000000000000000001":1 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000001":"100000000000000000000000000000001":1 mbedtls_mpi_core_sub #765: 0xffffffffffffffffffffffffffffffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100000000000000000000000000000000/100000000000000000000000000000000, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"100000000000000000000000000000000":1 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"100000000000000000000000000000000":1 mbedtls_mpi_core_sub #766: 0xffffffffffffffffffffffffffffffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff/ffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff":"ffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff":1 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff":"ffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff":1 mbedtls_mpi_core_sub #767: 0xffffffffffffffffffffffffffffffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f/ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f":1 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f":1 mbedtls_mpi_core_sub #768: 0xffffffffffffffffffffffffffffffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4":1 +mpi_core_sub:"ffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4":1 mbedtls_mpi_core_sub #769: 0x100000000000000000000000000000000 - 0x0 = 0x100000000000000000000000000000000/100000000000000000000000000000000, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"100000000000000000000000000000000":0 +mpi_core_sub:"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"100000000000000000000000000000000":0 mbedtls_mpi_core_sub #770: 0x100000000000000000000000000000000 - 0x1 = 0xffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"1":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":0 +mpi_core_sub:"100000000000000000000000000000000":"1":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":0 mbedtls_mpi_core_sub #771: 0x100000000000000000000000000000000 - 0x3 = 0xfffffffffffffffffffffffffffffffd/fffffffffffffffffffffffffffffffd, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"3":"fffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffd":0 +mpi_core_sub:"100000000000000000000000000000000":"3":"fffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffd":0 mbedtls_mpi_core_sub #772: 0x100000000000000000000000000000000 - 0xf = 0xfffffffffffffffffffffffffffffff1/fffffffffffffffffffffffffffffff1, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"f":"fffffffffffffffffffffffffffffff1":"fffffffffffffffffffffffffffffff1":0 +mpi_core_sub:"100000000000000000000000000000000":"f":"fffffffffffffffffffffffffffffff1":"fffffffffffffffffffffffffffffff1":0 mbedtls_mpi_core_sub #773: 0x100000000000000000000000000000000 - 0xfe = 0xffffffffffffffffffffffffffffff02/ffffffffffffffffffffffffffffff02, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fe":"ffffffffffffffffffffffffffffff02":"ffffffffffffffffffffffffffffff02":0 +mpi_core_sub:"100000000000000000000000000000000":"fe":"ffffffffffffffffffffffffffffff02":"ffffffffffffffffffffffffffffff02":0 mbedtls_mpi_core_sub #774: 0x100000000000000000000000000000000 - 0xff = 0xffffffffffffffffffffffffffffff01/ffffffffffffffffffffffffffffff01, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"ff":"ffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffff01":0 +mpi_core_sub:"100000000000000000000000000000000":"ff":"ffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffff01":0 mbedtls_mpi_core_sub #775: 0x100000000000000000000000000000000 - 0x100 = 0xffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffff00, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"100":"ffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffff00":0 +mpi_core_sub:"100000000000000000000000000000000":"100":"ffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffff00":0 mbedtls_mpi_core_sub #776: 0x100000000000000000000000000000000 - 0xff00 = 0xffffffffffffffffffffffffffff0100/ffffffffffffffffffffffffffff0100, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"ff00":"ffffffffffffffffffffffffffff0100":"ffffffffffffffffffffffffffff0100":0 +mpi_core_sub:"100000000000000000000000000000000":"ff00":"ffffffffffffffffffffffffffff0100":"ffffffffffffffffffffffffffff0100":0 mbedtls_mpi_core_sub #777: 0x100000000000000000000000000000000 - 0xfffe = 0xffffffffffffffffffffffffffff0002/ffffffffffffffffffffffffffff0002, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fffe":"ffffffffffffffffffffffffffff0002":"ffffffffffffffffffffffffffff0002":0 +mpi_core_sub:"100000000000000000000000000000000":"fffe":"ffffffffffffffffffffffffffff0002":"ffffffffffffffffffffffffffff0002":0 mbedtls_mpi_core_sub #778: 0x100000000000000000000000000000000 - 0xffff = 0xffffffffffffffffffffffffffff0001/ffffffffffffffffffffffffffff0001, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"ffff":"ffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffff0001":0 +mpi_core_sub:"100000000000000000000000000000000":"ffff":"ffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffff0001":0 mbedtls_mpi_core_sub #779: 0x100000000000000000000000000000000 - 0x10000 = 0xffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffff0000, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"10000":"ffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffff0000":0 +mpi_core_sub:"100000000000000000000000000000000":"10000":"ffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffff0000":0 mbedtls_mpi_core_sub #780: 0x100000000000000000000000000000000 - 0xfffffffe = 0xffffffffffffffffffffffff00000002/ffffffffffffffffffffffff00000002, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fffffffe":"ffffffffffffffffffffffff00000002":"ffffffffffffffffffffffff00000002":0 +mpi_core_sub:"100000000000000000000000000000000":"fffffffe":"ffffffffffffffffffffffff00000002":"ffffffffffffffffffffffff00000002":0 mbedtls_mpi_core_sub #781: 0x100000000000000000000000000000000 - 0xffffffff = 0xffffffffffffffffffffffff00000001/ffffffffffffffffffffffff00000001, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffffffffffffffffffff00000001":0 +mpi_core_sub:"100000000000000000000000000000000":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffffffffffffffffffff00000001":0 mbedtls_mpi_core_sub #782: 0x100000000000000000000000000000000 - 0x100000000 = 0xffffffffffffffffffffffff00000000/ffffffffffffffffffffffff00000000, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"100000000":"ffffffffffffffffffffffff00000000":"ffffffffffffffffffffffff00000000":0 +mpi_core_sub:"100000000000000000000000000000000":"100000000":"ffffffffffffffffffffffff00000000":"ffffffffffffffffffffffff00000000":0 mbedtls_mpi_core_sub #783: 0x100000000000000000000000000000000 - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffe0808080808081/ffffffffffffffffffe0808080808081, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"1f7f7f7f7f7f7f":"ffffffffffffffffffe0808080808081":"ffffffffffffffffffe0808080808081":0 +mpi_core_sub:"100000000000000000000000000000000":"1f7f7f7f7f7f7f":"ffffffffffffffffffe0808080808081":"ffffffffffffffffffe0808080808081":0 mbedtls_mpi_core_sub #784: 0x100000000000000000000000000000000 - 0x8000000000000000 = 0xffffffffffffffff8000000000000000/ffffffffffffffff8000000000000000, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"8000000000000000":"ffffffffffffffff8000000000000000":"ffffffffffffffff8000000000000000":0 +mpi_core_sub:"100000000000000000000000000000000":"8000000000000000":"ffffffffffffffff8000000000000000":"ffffffffffffffff8000000000000000":0 mbedtls_mpi_core_sub #785: 0x100000000000000000000000000000000 - 0xfefefefefefefefe = 0xffffffffffffffff0101010101010102/ffffffffffffffff0101010101010102, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fefefefefefefefe":"ffffffffffffffff0101010101010102":"ffffffffffffffff0101010101010102":0 +mpi_core_sub:"100000000000000000000000000000000":"fefefefefefefefe":"ffffffffffffffff0101010101010102":"ffffffffffffffff0101010101010102":0 mbedtls_mpi_core_sub #786: 0x100000000000000000000000000000000 - 0xfffffffffffffffe = 0xffffffffffffffff0000000000000002/ffffffffffffffff0000000000000002, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"ffffffffffffffff0000000000000002":0 +mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"ffffffffffffffff0000000000000002":0 mbedtls_mpi_core_sub #787: 0x100000000000000000000000000000000 - 0xffffffffffffffff = 0xffffffffffffffff0000000000000001/ffffffffffffffff0000000000000001, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"ffffffffffffffff":"ffffffffffffffff0000000000000001":"ffffffffffffffff0000000000000001":0 +mpi_core_sub:"100000000000000000000000000000000":"ffffffffffffffff":"ffffffffffffffff0000000000000001":"ffffffffffffffff0000000000000001":0 mbedtls_mpi_core_sub #788: 0x100000000000000000000000000000000 - 0x10000000000000000 = 0xffffffffffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"10000000000000000":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 +mpi_core_sub:"100000000000000000000000000000000":"10000000000000000":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 mbedtls_mpi_core_sub #789: 0x100000000000000000000000000000000 - 0x1234567890abcdef0 = 0xfffffffffffffffedcba9876f5432110/fffffffffffffffedcba9876f5432110, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"1234567890abcdef0":"fffffffffffffffedcba9876f5432110":"fffffffffffffffedcba9876f5432110":0 +mpi_core_sub:"100000000000000000000000000000000":"1234567890abcdef0":"fffffffffffffffedcba9876f5432110":"fffffffffffffffedcba9876f5432110":0 mbedtls_mpi_core_sub #790: 0x100000000000000000000000000000000 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010102/101010101010102, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":0 +mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":0 mbedtls_mpi_core_sub #791: 0x100000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffe = 0x2/2, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffe":"2":"2":0 +mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffe":"2":"2":0 mbedtls_mpi_core_sub #792: 0x100000000000000000000000000000000 - 0xffffffffffffffffffffffffffffffff = 0x1/1, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffff":"1":"1":0 +mpi_core_sub:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffff":"1":"1":0 mbedtls_mpi_core_sub #793: 0x100000000000000000000000000000000 - 0x100000000000000000000000000000000 = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"100000000000000000000000000000000":"0":"0":0 +mpi_core_sub:"100000000000000000000000000000000":"100000000000000000000000000000000":"0":"0":0 mbedtls_mpi_core_sub #794: 0x100000000000000000000000000000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffeecba9876f543210fedcba9876f5432110/ffffffffffffffeecba9876f543210fedcba9876f5432110, carry 1 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedcba9876f5432110":"ffffffffffffffeecba9876f543210fedcba9876f5432110":1 +mpi_core_sub:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedcba9876f5432110":"ffffffffffffffeecba9876f543210fedcba9876f5432110":1 mbedtls_mpi_core_sub #795: 0x100000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x100000000000000000101010101010102/100000000000000000101010101010102, carry 1 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000101010101010102":"100000000000000000101010101010102":1 +mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000101010101010102":"100000000000000000101010101010102":1 mbedtls_mpi_core_sub #796: 0x100000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000000000000000000000000000002/100000000000000000000000000000002, carry 1 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000002":"100000000000000000000000000000002":1 +mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000002":"100000000000000000000000000000002":1 mbedtls_mpi_core_sub #797: 0x100000000000000000000000000000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100000000000000000000000000000001/100000000000000000000000000000001, carry 1 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000001":"100000000000000000000000000000001":1 +mpi_core_sub:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000001":"100000000000000000000000000000001":1 mbedtls_mpi_core_sub #798: 0x100000000000000000000000000000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000100000000000000000000000000000000/ffffffffffffffff0000000000000000000000000000000100000000000000000000000000000000, carry 1 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000100000000000000000000000000000000":"ffffffffffffffff0000000000000000000000000000000100000000000000000000000000000000":1 +mpi_core_sub:"100000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000100000000000000000000000000000000":"ffffffffffffffff0000000000000000000000000000000100000000000000000000000000000000":1 mbedtls_mpi_core_sub #799: 0x100000000000000000000000000000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110/ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110, carry 1 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110":1 +mpi_core_sub:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110":1 mbedtls_mpi_core_sub #800: 0x100000000000000000000000000000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5, carry 1 -mbedtls_mpi_core_sub:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5":1 +mpi_core_sub:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5":1 mbedtls_mpi_core_sub #801: 0x1234567890abcdef01234567890abcdef0 - 0x0 = 0x1234567890abcdef01234567890abcdef0/1234567890abcdef01234567890abcdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":0 mbedtls_mpi_core_sub #802: 0x1234567890abcdef01234567890abcdef0 - 0x1 = 0x1234567890abcdef01234567890abcdeef/1234567890abcdef01234567890abcdeef, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1":"1234567890abcdef01234567890abcdeef":"1234567890abcdef01234567890abcdeef":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1":"1234567890abcdef01234567890abcdeef":"1234567890abcdef01234567890abcdeef":0 mbedtls_mpi_core_sub #803: 0x1234567890abcdef01234567890abcdef0 - 0x3 = 0x1234567890abcdef01234567890abcdeed/1234567890abcdef01234567890abcdeed, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"3":"1234567890abcdef01234567890abcdeed":"1234567890abcdef01234567890abcdeed":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"3":"1234567890abcdef01234567890abcdeed":"1234567890abcdef01234567890abcdeed":0 mbedtls_mpi_core_sub #804: 0x1234567890abcdef01234567890abcdef0 - 0xf = 0x1234567890abcdef01234567890abcdee1/1234567890abcdef01234567890abcdee1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"f":"1234567890abcdef01234567890abcdee1":"1234567890abcdef01234567890abcdee1":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"f":"1234567890abcdef01234567890abcdee1":"1234567890abcdef01234567890abcdee1":0 mbedtls_mpi_core_sub #805: 0x1234567890abcdef01234567890abcdef0 - 0xfe = 0x1234567890abcdef01234567890abcddf2/1234567890abcdef01234567890abcddf2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fe":"1234567890abcdef01234567890abcddf2":"1234567890abcdef01234567890abcddf2":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fe":"1234567890abcdef01234567890abcddf2":"1234567890abcdef01234567890abcddf2":0 mbedtls_mpi_core_sub #806: 0x1234567890abcdef01234567890abcdef0 - 0xff = 0x1234567890abcdef01234567890abcddf1/1234567890abcdef01234567890abcddf1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcddf1":"1234567890abcdef01234567890abcddf1":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcddf1":"1234567890abcdef01234567890abcddf1":0 mbedtls_mpi_core_sub #807: 0x1234567890abcdef01234567890abcdef0 - 0x100 = 0x1234567890abcdef01234567890abcddf0/1234567890abcdef01234567890abcddf0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"100":"1234567890abcdef01234567890abcddf0":"1234567890abcdef01234567890abcddf0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"100":"1234567890abcdef01234567890abcddf0":"1234567890abcdef01234567890abcddf0":0 mbedtls_mpi_core_sub #808: 0x1234567890abcdef01234567890abcdef0 - 0xff00 = 0x1234567890abcdef01234567890abbdff0/1234567890abcdef01234567890abbdff0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ff00":"1234567890abcdef01234567890abbdff0":"1234567890abcdef01234567890abbdff0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ff00":"1234567890abcdef01234567890abbdff0":"1234567890abcdef01234567890abbdff0":0 mbedtls_mpi_core_sub #809: 0x1234567890abcdef01234567890abcdef0 - 0xfffe = 0x1234567890abcdef01234567890abbdef2/1234567890abcdef01234567890abbdef2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffe":"1234567890abcdef01234567890abbdef2":"1234567890abcdef01234567890abbdef2":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffe":"1234567890abcdef01234567890abbdef2":"1234567890abcdef01234567890abbdef2":0 mbedtls_mpi_core_sub #810: 0x1234567890abcdef01234567890abcdef0 - 0xffff = 0x1234567890abcdef01234567890abbdef1/1234567890abcdef01234567890abbdef1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abbdef1":"1234567890abcdef01234567890abbdef1":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abbdef1":"1234567890abcdef01234567890abbdef1":0 mbedtls_mpi_core_sub #811: 0x1234567890abcdef01234567890abcdef0 - 0x10000 = 0x1234567890abcdef01234567890abbdef0/1234567890abcdef01234567890abbdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abbdef0":"1234567890abcdef01234567890abbdef0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abbdef0":"1234567890abcdef01234567890abbdef0":0 mbedtls_mpi_core_sub #812: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffe = 0x1234567890abcdef01234567880abcdef2/1234567890abcdef01234567880abcdef2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffe":"1234567890abcdef01234567880abcdef2":"1234567890abcdef01234567880abcdef2":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffe":"1234567890abcdef01234567880abcdef2":"1234567890abcdef01234567880abcdef2":0 mbedtls_mpi_core_sub #813: 0x1234567890abcdef01234567890abcdef0 - 0xffffffff = 0x1234567890abcdef01234567880abcdef1/1234567890abcdef01234567880abcdef1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffff":"1234567890abcdef01234567880abcdef1":"1234567890abcdef01234567880abcdef1":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffff":"1234567890abcdef01234567880abcdef1":"1234567890abcdef01234567880abcdef1":0 mbedtls_mpi_core_sub #814: 0x1234567890abcdef01234567890abcdef0 - 0x100000000 = 0x1234567890abcdef01234567880abcdef0/1234567890abcdef01234567880abcdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567880abcdef0":"1234567890abcdef01234567880abcdef0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567880abcdef0":"1234567890abcdef01234567880abcdef0":0 mbedtls_mpi_core_sub #815: 0x1234567890abcdef01234567890abcdef0 - 0x1f7f7f7f7f7f7f = 0x1234567890abcdef012325e8098b3d5f71/1234567890abcdef012325e8098b3d5f71, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1f7f7f7f7f7f7f":"1234567890abcdef012325e8098b3d5f71":"1234567890abcdef012325e8098b3d5f71":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1f7f7f7f7f7f7f":"1234567890abcdef012325e8098b3d5f71":"1234567890abcdef012325e8098b3d5f71":0 mbedtls_mpi_core_sub #816: 0x1234567890abcdef01234567890abcdef0 - 0x8000000000000000 = 0x1234567890abcdef00a34567890abcdef0/1234567890abcdef00a34567890abcdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"1234567890abcdef00a34567890abcdef0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"1234567890abcdef00a34567890abcdef0":0 mbedtls_mpi_core_sub #817: 0x1234567890abcdef01234567890abcdef0 - 0xfefefefefefefefe = 0x1234567890abcdef002446688a0bbddff2/1234567890abcdef002446688a0bbddff2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fefefefefefefefe":"1234567890abcdef002446688a0bbddff2":"1234567890abcdef002446688a0bbddff2":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fefefefefefefefe":"1234567890abcdef002446688a0bbddff2":"1234567890abcdef002446688a0bbddff2":0 mbedtls_mpi_core_sub #818: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffe = 0x1234567890abcdef00234567890abcdef2/1234567890abcdef00234567890abcdef2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"1234567890abcdef00234567890abcdef2":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"1234567890abcdef00234567890abcdef2":0 mbedtls_mpi_core_sub #819: 0x1234567890abcdef01234567890abcdef0 - 0xffffffffffffffff = 0x1234567890abcdef00234567890abcdef1/1234567890abcdef00234567890abcdef1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"1234567890abcdef00234567890abcdef1":"1234567890abcdef00234567890abcdef1":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"1234567890abcdef00234567890abcdef1":"1234567890abcdef00234567890abcdef1":0 mbedtls_mpi_core_sub #820: 0x1234567890abcdef01234567890abcdef0 - 0x10000000000000000 = 0x1234567890abcdef00234567890abcdef0/1234567890abcdef00234567890abcdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"10000000000000000":"1234567890abcdef00234567890abcdef0":"1234567890abcdef00234567890abcdef0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"10000000000000000":"1234567890abcdef00234567890abcdef0":"1234567890abcdef00234567890abcdef0":0 mbedtls_mpi_core_sub #821: 0x1234567890abcdef01234567890abcdef0 - 0x1234567890abcdef0 = 0x1234567890abcdef000000000000000000/1234567890abcdef000000000000000000, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"1234567890abcdef000000000000000000":"1234567890abcdef000000000000000000":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"1234567890abcdef000000000000000000":"1234567890abcdef000000000000000000":0 mbedtls_mpi_core_sub #822: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffefefefefefefefe = 0x1134567890abcdef012446688a0bbddff2/1134567890abcdef012446688a0bbddff2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"1134567890abcdef012446688a0bbddff2":"1134567890abcdef012446688a0bbddff2":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"1134567890abcdef012446688a0bbddff2":"1134567890abcdef012446688a0bbddff2":0 mbedtls_mpi_core_sub #823: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffe = 0x1134567890abcdef01234567890abcdef2/1134567890abcdef01234567890abcdef2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1134567890abcdef01234567890abcdef2":"1134567890abcdef01234567890abcdef2":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1134567890abcdef01234567890abcdef2":"1134567890abcdef01234567890abcdef2":0 mbedtls_mpi_core_sub #824: 0x1234567890abcdef01234567890abcdef0 - 0xffffffffffffffffffffffffffffffff = 0x1134567890abcdef01234567890abcdef1/1134567890abcdef01234567890abcdef1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1134567890abcdef01234567890abcdef1":"1134567890abcdef01234567890abcdef1":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1134567890abcdef01234567890abcdef1":"1134567890abcdef01234567890abcdef1":0 mbedtls_mpi_core_sub #825: 0x1234567890abcdef01234567890abcdef0 - 0x100000000000000000000000000000000 = 0x1134567890abcdef01234567890abcdef0/1134567890abcdef01234567890abcdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"1134567890abcdef01234567890abcdef0":"1134567890abcdef01234567890abcdef0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"1134567890abcdef01234567890abcdef0":"1134567890abcdef01234567890abcdef0":0 mbedtls_mpi_core_sub #826: 0x1234567890abcdef01234567890abcdef0 - 0x1234567890abcdef01234567890abcdef0 = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"0":0 mbedtls_mpi_core_sub #827: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x1234567890abcdef012446688a0bbddff2/1234567890abcdef012446688a0bbddff2, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef012446688a0bbddff2":"1234567890abcdef012446688a0bbddff2":1 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef012446688a0bbddff2":"1234567890abcdef012446688a0bbddff2":1 mbedtls_mpi_core_sub #828: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1234567890abcdef01234567890abcdef2/1234567890abcdef01234567890abcdef2, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef2":"1234567890abcdef01234567890abcdef2":1 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef2":"1234567890abcdef01234567890abcdef2":1 mbedtls_mpi_core_sub #829: 0x1234567890abcdef01234567890abcdef0 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1234567890abcdef01234567890abcdef1/1234567890abcdef01234567890abcdef1, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef1":"1234567890abcdef01234567890abcdef1":1 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef1":"1234567890abcdef01234567890abcdef1":1 mbedtls_mpi_core_sub #830: 0x1234567890abcdef01234567890abcdef0 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0/ffffffffffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0":"ffffffffffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0":1 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0":"ffffffffffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0":1 mbedtls_mpi_core_sub #831: 0x1234567890abcdef01234567890abcdef0 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000/ffffffffffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000":"ffffffffffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000":1 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000":"ffffffffffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000":1 mbedtls_mpi_core_sub #832: 0x1234567890abcdef01234567890abcdef0 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5":1 +mpi_core_sub:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5":1 mbedtls_mpi_core_sub #833: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0 mbedtls_mpi_core_sub #834: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":0 mbedtls_mpi_core_sub #835: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x3 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb":0 mbedtls_mpi_core_sub #836: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xf = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef":0 mbedtls_mpi_core_sub #837: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfe = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00":0 mbedtls_mpi_core_sub #838: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff":0 mbedtls_mpi_core_sub #839: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x100 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe":0 mbedtls_mpi_core_sub #840: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xff00 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe":0 mbedtls_mpi_core_sub #841: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffe = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00":0 mbedtls_mpi_core_sub #842: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff":0 mbedtls_mpi_core_sub #843: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x10000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe":0 mbedtls_mpi_core_sub #844: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffe = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00/fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00":0 mbedtls_mpi_core_sub #845: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff/fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff":0 mbedtls_mpi_core_sub #846: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x100000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe":0 mbedtls_mpi_core_sub #847: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1f7f7f7f7f7f7f = 0xfffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f/fffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f":0 mbedtls_mpi_core_sub #848: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x8000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe/ffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe":0 mbedtls_mpi_core_sub #849: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfefefefefefefefe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 mbedtls_mpi_core_sub #850: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffe = 0xfffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00/fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00":0 mbedtls_mpi_core_sub #851: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffffffffffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff/fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff":0 mbedtls_mpi_core_sub #852: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x10000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe/fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe":0 mbedtls_mpi_core_sub #853: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1234567890abcdef0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e/fffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e":"fffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e":"fffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e":0 mbedtls_mpi_core_sub #854: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffffefefefefefefefe = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000/ffffffffffffffffffffffffffffffff00000000000000000000000000000000, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 mbedtls_mpi_core_sub #855: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffe = 0xfffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00/fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00":0 mbedtls_mpi_core_sub #856: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffffffffffffffffffffffffffffffff = 0xfffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff/fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff":0 mbedtls_mpi_core_sub #857: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe/fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe":0 mbedtls_mpi_core_sub #858: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e/ffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e":"ffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e":"ffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e":0 mbedtls_mpi_core_sub #859: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"0":"0":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"0":"0":0 mbedtls_mpi_core_sub #860: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00":1 mbedtls_mpi_core_sub #861: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":1 mbedtls_mpi_core_sub #862: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":1 mbedtls_mpi_core_sub #863: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e/ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e":1 mbedtls_mpi_core_sub #864: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3":1 mbedtls_mpi_core_sub #865: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 mbedtls_mpi_core_sub #866: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":0 mbedtls_mpi_core_sub #867: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x3 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb":0 mbedtls_mpi_core_sub #868: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xf = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef":0 mbedtls_mpi_core_sub #869: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":0 mbedtls_mpi_core_sub #870: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":0 mbedtls_mpi_core_sub #871: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x100 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe":0 mbedtls_mpi_core_sub #872: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xff00 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe":0 mbedtls_mpi_core_sub #873: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":0 mbedtls_mpi_core_sub #874: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":0 mbedtls_mpi_core_sub #875: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x10000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe":0 mbedtls_mpi_core_sub #876: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":0 mbedtls_mpi_core_sub #877: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":0 mbedtls_mpi_core_sub #878: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x100000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe":0 mbedtls_mpi_core_sub #879: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f/ffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f":0 mbedtls_mpi_core_sub #880: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x8000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe/ffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe":0 mbedtls_mpi_core_sub #881: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfefefefefefefefe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100/ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100":0 mbedtls_mpi_core_sub #882: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 mbedtls_mpi_core_sub #883: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffffffffffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff/fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":0 mbedtls_mpi_core_sub #884: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x10000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe":0 mbedtls_mpi_core_sub #885: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1234567890abcdef0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e/fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e":0 mbedtls_mpi_core_sub #886: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffffefefefefefefefe = 0xffffffffffffffffffffffffffffffff00000000000000000101010101010100/ffffffffffffffffffffffffffffffff00000000000000000101010101010100, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000101010101010100":"ffffffffffffffffffffffffffffffff00000000000000000101010101010100":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000101010101010100":"ffffffffffffffffffffffffffffffff00000000000000000101010101010100":0 mbedtls_mpi_core_sub #887: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffe = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000/ffffffffffffffffffffffffffffffff00000000000000000000000000000000, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 mbedtls_mpi_core_sub #888: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffffffffffffffffffffffffffffffff = 0xfffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff/fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":0 mbedtls_mpi_core_sub #889: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe":0 mbedtls_mpi_core_sub #890: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e/ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e":0 mbedtls_mpi_core_sub #891: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010100/101010101010100, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010100":"101010101010100":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010100":"101010101010100":0 mbedtls_mpi_core_sub #892: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"0":"0":0 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"0":"0":0 mbedtls_mpi_core_sub #893: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":1 mbedtls_mpi_core_sub #894: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":1 mbedtls_mpi_core_sub #895: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e/ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e":1 mbedtls_mpi_core_sub #896: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3, carry 1 -mbedtls_mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3":1 +mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3":1 mbedtls_mpi_core_sub #897: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x0 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 mbedtls_mpi_core_sub #898: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 mbedtls_mpi_core_sub #899: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x3 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":0 mbedtls_mpi_core_sub #900: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xf = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0":0 mbedtls_mpi_core_sub #901: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":0 mbedtls_mpi_core_sub #902: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":0 mbedtls_mpi_core_sub #903: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x100 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":0 mbedtls_mpi_core_sub #904: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xff00 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff":0 mbedtls_mpi_core_sub #905: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":0 mbedtls_mpi_core_sub #906: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":0 mbedtls_mpi_core_sub #907: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x10000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":0 mbedtls_mpi_core_sub #908: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":0 mbedtls_mpi_core_sub #909: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":0 mbedtls_mpi_core_sub #910: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x100000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":0 mbedtls_mpi_core_sub #911: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080/ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080":0 mbedtls_mpi_core_sub #912: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x8000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":0 mbedtls_mpi_core_sub #913: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfefefefefefefefe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101/ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101":0 mbedtls_mpi_core_sub #914: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":0 mbedtls_mpi_core_sub #915: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffffffffffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 mbedtls_mpi_core_sub #916: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x10000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff/fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":0 mbedtls_mpi_core_sub #917: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1234567890abcdef0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f/fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f":0 mbedtls_mpi_core_sub #918: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffffefefefefefefefe = 0xffffffffffffffffffffffffffffffff00000000000000000101010101010101/ffffffffffffffffffffffffffffffff00000000000000000101010101010101, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000101010101010101":"ffffffffffffffffffffffffffffffff00000000000000000101010101010101":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000101010101010101":"ffffffffffffffffffffffffffffffff00000000000000000101010101010101":0 mbedtls_mpi_core_sub #919: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffe = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000001/ffffffffffffffffffffffffffffffff00000000000000000000000000000001, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":0 mbedtls_mpi_core_sub #920: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000/ffffffffffffffffffffffffffffffff00000000000000000000000000000000, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 mbedtls_mpi_core_sub #921: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff/fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":0 mbedtls_mpi_core_sub #922: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f/ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f":0 mbedtls_mpi_core_sub #923: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010101/101010101010101, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010101":"101010101010101":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010101":"101010101010101":0 mbedtls_mpi_core_sub #924: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1/1, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1":"1":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1":"1":0 mbedtls_mpi_core_sub #925: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":0 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":0 mbedtls_mpi_core_sub #926: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":1 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":1 mbedtls_mpi_core_sub #927: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f/ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f":1 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f":1 mbedtls_mpi_core_sub #928: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4, carry 1 -mbedtls_mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4":1 +mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4":1 mbedtls_mpi_core_sub #929: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x0 = 0x10000000000000000000000000000000000000000000000000000000000000000/10000000000000000000000000000000000000000000000000000000000000000, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"0":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"0":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":0 mbedtls_mpi_core_sub #930: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 mbedtls_mpi_core_sub #931: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x3 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":0 mbedtls_mpi_core_sub #932: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xf = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1":0 mbedtls_mpi_core_sub #933: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":0 mbedtls_mpi_core_sub #934: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":0 mbedtls_mpi_core_sub #935: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x100 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":0 mbedtls_mpi_core_sub #936: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xff00 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100":0 mbedtls_mpi_core_sub #937: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":0 mbedtls_mpi_core_sub #938: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":0 mbedtls_mpi_core_sub #939: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x10000 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":0 mbedtls_mpi_core_sub #940: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":0 mbedtls_mpi_core_sub #941: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":0 mbedtls_mpi_core_sub #942: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x100000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":0 mbedtls_mpi_core_sub #943: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081/ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081":0 mbedtls_mpi_core_sub #944: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x8000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":0 mbedtls_mpi_core_sub #945: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfefefefefefefefe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102/ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102":0 mbedtls_mpi_core_sub #946: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":0 mbedtls_mpi_core_sub #947: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffffffffffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":0 mbedtls_mpi_core_sub #948: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x10000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 mbedtls_mpi_core_sub #949: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1234567890abcdef0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110/fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110":0 mbedtls_mpi_core_sub #950: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffffefefefefefefefe = 0xffffffffffffffffffffffffffffffff00000000000000000101010101010102/ffffffffffffffffffffffffffffffff00000000000000000101010101010102, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000101010101010102":"ffffffffffffffffffffffffffffffff00000000000000000101010101010102":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000101010101010102":"ffffffffffffffffffffffffffffffff00000000000000000101010101010102":0 mbedtls_mpi_core_sub #951: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffe = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000002/ffffffffffffffffffffffffffffffff00000000000000000000000000000002, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000002":"ffffffffffffffffffffffffffffffff00000000000000000000000000000002":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000002":"ffffffffffffffffffffffffffffffff00000000000000000000000000000002":0 mbedtls_mpi_core_sub #952: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000001/ffffffffffffffffffffffffffffffff00000000000000000000000000000001, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":0 mbedtls_mpi_core_sub #953: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x100000000000000000000000000000000 = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000/ffffffffffffffffffffffffffffffff00000000000000000000000000000000, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 mbedtls_mpi_core_sub #954: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110/ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110":0 mbedtls_mpi_core_sub #955: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010102/101010101010102, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":0 mbedtls_mpi_core_sub #956: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x2/2, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2":"2":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2":"2":0 mbedtls_mpi_core_sub #957: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1/1, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"1":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"1":0 mbedtls_mpi_core_sub #958: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"0":"0":0 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"0":"0":0 mbedtls_mpi_core_sub #959: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110/ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110, carry 1 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":1 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":1 mbedtls_mpi_core_sub #960: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5, carry 1 -mbedtls_mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":1 +mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":1 mbedtls_mpi_core_sub #961: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x0 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 mbedtls_mpi_core_sub #962: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":0 mbedtls_mpi_core_sub #963: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x3 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":0 mbedtls_mpi_core_sub #964: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xf = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1":0 mbedtls_mpi_core_sub #965: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfe = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":0 mbedtls_mpi_core_sub #966: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xff = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":0 mbedtls_mpi_core_sub #967: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x100 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0":0 mbedtls_mpi_core_sub #968: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xff00 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff00":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff00":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0":0 mbedtls_mpi_core_sub #969: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffe = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2":0 mbedtls_mpi_core_sub #970: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffff = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":0 mbedtls_mpi_core_sub #971: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x10000 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":0 mbedtls_mpi_core_sub #972: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffe = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2/1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2":0 mbedtls_mpi_core_sub #973: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffffffff = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1/1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":0 mbedtls_mpi_core_sub #974: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x100000000 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0/1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":0 mbedtls_mpi_core_sub #975: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1f7f7f7f7f7f7f = 0x1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71/1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71":"1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71":"1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71":0 mbedtls_mpi_core_sub #976: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x8000000000000000 = 0x1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0/1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":0 mbedtls_mpi_core_sub #977: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfefefefefefefefe = 0x1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2/1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2":"1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2":"1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2":0 mbedtls_mpi_core_sub #978: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffe = 0x1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2/1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":0 mbedtls_mpi_core_sub #979: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffffffffffffffff = 0x1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1/1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1":0 mbedtls_mpi_core_sub #980: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x10000000000000000 = 0x1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0/1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0":0 mbedtls_mpi_core_sub #981: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1234567890abcdef0 = 0x1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000/1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000":0 mbedtls_mpi_core_sub #982: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffefefefefefefefe = 0x1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2/1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2":"1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2":"1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2":0 mbedtls_mpi_core_sub #983: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffe = 0x1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2/1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2":0 mbedtls_mpi_core_sub #984: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffffffffffffffffffffffffffffffff = 0x1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1/1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1":0 mbedtls_mpi_core_sub #985: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x100000000000000000000000000000000 = 0x1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0/1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0":0 mbedtls_mpi_core_sub #986: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1234567890abcdef01234567890abcdef0 = 0x1234567890abcdef01234567890abcdef00000000000000000000000000000000000/1234567890abcdef01234567890abcdef00000000000000000000000000000000000, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef00000000000000000000000000000000000":"1234567890abcdef01234567890abcdef00000000000000000000000000000000000":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef00000000000000000000000000000000000":"1234567890abcdef01234567890abcdef00000000000000000000000000000000000":0 mbedtls_mpi_core_sub #987: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2/1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2":"1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2":"1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2":0 mbedtls_mpi_core_sub #988: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2/1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2":0 mbedtls_mpi_core_sub #989: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1/1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":0 mbedtls_mpi_core_sub #990: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0x1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0/1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 mbedtls_mpi_core_sub #991: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":0 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":0 mbedtls_mpi_core_sub #992: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5, carry 1 -mbedtls_mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5":1 +mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5":1 mbedtls_mpi_core_sub #993: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x0 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 mbedtls_mpi_core_sub #994: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":0 mbedtls_mpi_core_sub #995: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x3 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":0 mbedtls_mpi_core_sub #996: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xf = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c":0 mbedtls_mpi_core_sub #997: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":0 mbedtls_mpi_core_sub #998: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":0 mbedtls_mpi_core_sub #999: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x100 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b":0 mbedtls_mpi_core_sub #1000: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xff00 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff00":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff00":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b":0 mbedtls_mpi_core_sub #1001: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d":0 mbedtls_mpi_core_sub #1002: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":0 mbedtls_mpi_core_sub #1003: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x10000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":0 mbedtls_mpi_core_sub #1004: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d":0 mbedtls_mpi_core_sub #1005: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffffffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":0 mbedtls_mpi_core_sub #1006: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x100000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":0 mbedtls_mpi_core_sub #1007: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1f7f7f7f7f7f7f = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac":0 mbedtls_mpi_core_sub #1008: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x8000000000000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":0 mbedtls_mpi_core_sub #1009: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfefefefefefefefe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d":0 mbedtls_mpi_core_sub #1010: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":0 mbedtls_mpi_core_sub #1011: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffffffffffffffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c":0 mbedtls_mpi_core_sub #1012: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x10000000000000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b":0 mbedtls_mpi_core_sub #1013: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1234567890abcdef0 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b":0 mbedtls_mpi_core_sub #1014: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffffefefefefefefefe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d":0 mbedtls_mpi_core_sub #1015: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffffffffffffffffffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d":0 mbedtls_mpi_core_sub #1016: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffffffffffffffffffffffffffffffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c":0 mbedtls_mpi_core_sub #1017: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x100000000000000000000000000000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b":0 mbedtls_mpi_core_sub #1018: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1234567890abcdef01234567890abcdef0 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b":0 mbedtls_mpi_core_sub #1019: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d":0 mbedtls_mpi_core_sub #1020: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d":0 mbedtls_mpi_core_sub #1021: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":0 mbedtls_mpi_core_sub #1022: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000000000000000000000000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000000000000000000000000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 mbedtls_mpi_core_sub #1023: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b":0 mbedtls_mpi_core_sub #1024: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0x0/0, carry 0 -mbedtls_mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":0 +mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":0 mbedtls_mpi_core_mla #1: 0x0 + 0x0 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) (for when sizeof(mbedtls_mpi_uint) == 4/8) -mbedtls_mpi_core_mla:"0":"0":"0":"0":"0":"0":"0" +mpi_core_mla:"0":"0":"0":"0":"0":"0":"0" mbedtls_mpi_core_mla #2: 0x0 + 0x0 * 0x3 = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"0":"3":"0":"0":"0":"0" +mpi_core_mla:"0":"0":"3":"0":"0":"0":"0" mbedtls_mpi_core_mla #3: 0x0 + 0x0 * 0xfe = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"0":"fe":"0":"0":"0":"0" +mpi_core_mla:"0":"0":"fe":"0":"0":"0":"0" mbedtls_mpi_core_mla #4: 0x0 + 0x0 * 0xff = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"0":"ff":"0":"0":"0":"0" +mpi_core_mla:"0":"0":"ff":"0":"0":"0":"0" mbedtls_mpi_core_mla #5: 0x0 + 0x0 * 0xffff = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"0":"ffff":"0":"0":"0":"0" +mpi_core_mla:"0":"0":"ffff":"0":"0":"0":"0" mbedtls_mpi_core_mla #6: 0x0 + 0x0 * 0x10000 = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"0":"10000":"0":"0":"0":"0" +mpi_core_mla:"0":"0":"10000":"0":"0":"0":"0" mbedtls_mpi_core_mla #7: 0x0 + 0x0 * 0xffffffff = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"0":"ffffffff":"0":"0":"0":"0" +mpi_core_mla:"0":"0":"ffffffff":"0":"0":"0":"0" mbedtls_mpi_core_mla #8: 0x0 + 0x0 * 0x100000000 = (0x0, carry 0x0)/(0x0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"0":"100000000":"0":"0":"0":"0" +mpi_core_mla:"0":"0":"100000000":"0":"0":"0":"0" mbedtls_mpi_core_mla #9: 0x0 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x0, carry 0x0)/(0x0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"0":"7f7f7f7f7f7f7f7f":"0":"0":"0":"0" +mpi_core_mla:"0":"0":"7f7f7f7f7f7f7f7f":"0":"0":"0":"0" mbedtls_mpi_core_mla #10: 0x0 + 0x0 * 0x8000000000000000 = (0x0, carry 0x0)/(0x0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"0":"8000000000000000":"0":"0":"0":"0" +mpi_core_mla:"0":"0":"8000000000000000":"0":"0":"0":"0" mbedtls_mpi_core_mla #11: 0x0 + 0x0 * 0xfffffffffffffffe = (0x0, carry 0x0)/(0x0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"0":"fffffffffffffffe":"0":"0":"0":"0" +mpi_core_mla:"0":"0":"fffffffffffffffe":"0":"0":"0":"0" mbedtls_mpi_core_mla #12: 0x0 + 0x1 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"1":"0":"0":"0":"0":"0" +mpi_core_mla:"0":"1":"0":"0":"0":"0":"0" mbedtls_mpi_core_mla #13: 0x0 + 0x1 * 0x3 = (0x3, carry 0x0)/(0x3, carry 0x0) -mbedtls_mpi_core_mla:"0":"1":"3":"3":"0":"3":"0" +mpi_core_mla:"0":"1":"3":"3":"0":"3":"0" mbedtls_mpi_core_mla #14: 0x0 + 0x1 * 0xfe = (0xfe, carry 0x0)/(0xfe, carry 0x0) -mbedtls_mpi_core_mla:"0":"1":"fe":"fe":"0":"fe":"0" +mpi_core_mla:"0":"1":"fe":"fe":"0":"fe":"0" mbedtls_mpi_core_mla #15: 0x0 + 0x1 * 0xff = (0xff, carry 0x0)/(0xff, carry 0x0) -mbedtls_mpi_core_mla:"0":"1":"ff":"ff":"0":"ff":"0" +mpi_core_mla:"0":"1":"ff":"ff":"0":"ff":"0" mbedtls_mpi_core_mla #16: 0x0 + 0x1 * 0xffff = (0xffff, carry 0x0)/(0xffff, carry 0x0) -mbedtls_mpi_core_mla:"0":"1":"ffff":"ffff":"0":"ffff":"0" +mpi_core_mla:"0":"1":"ffff":"ffff":"0":"ffff":"0" mbedtls_mpi_core_mla #17: 0x0 + 0x1 * 0x10000 = (0x10000, carry 0x0)/(0x10000, carry 0x0) -mbedtls_mpi_core_mla:"0":"1":"10000":"10000":"0":"10000":"0" +mpi_core_mla:"0":"1":"10000":"10000":"0":"10000":"0" mbedtls_mpi_core_mla #18: 0x0 + 0x1 * 0xffffffff = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"0":"1":"ffffffff":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"0":"1":"ffffffff":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #19: 0x0 + 0x1 * 0x100000000 = (0x0, carry 0x1)/(0x100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"1":"100000000":"0":"1":"100000000":"0" +mpi_core_mla:"0":"1":"100000000":"0":"1":"100000000":"0" mbedtls_mpi_core_mla #20: 0x0 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f":"7f7f7f7f":"7f7f7f7f7f7f7f7f":"0" +mpi_core_mla:"0":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f":"7f7f7f7f":"7f7f7f7f7f7f7f7f":"0" mbedtls_mpi_core_mla #21: 0x0 + 0x1 * 0x8000000000000000 = (0x0, carry 0x80000000)/(0x8000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"1":"8000000000000000":"0":"80000000":"8000000000000000":"0" +mpi_core_mla:"0":"1":"8000000000000000":"0":"80000000":"8000000000000000":"0" mbedtls_mpi_core_mla #22: 0x0 + 0x1 * 0xfffffffffffffffe = (0xfffffffe, carry 0xffffffff)/(0xfffffffffffffffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"1":"fffffffffffffffe":"fffffffe":"ffffffff":"fffffffffffffffe":"0" +mpi_core_mla:"0":"1":"fffffffffffffffe":"fffffffe":"ffffffff":"fffffffffffffffe":"0" mbedtls_mpi_core_mla #23: 0x0 + 0xfffe * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"fffe":"0":"0":"0":"0":"0" +mpi_core_mla:"0":"fffe":"0":"0":"0":"0":"0" mbedtls_mpi_core_mla #24: 0x0 + 0xfffe * 0x3 = (0x2fffa, carry 0x0)/(0x2fffa, carry 0x0) -mbedtls_mpi_core_mla:"0":"fffe":"3":"2fffa":"0":"2fffa":"0" +mpi_core_mla:"0":"fffe":"3":"2fffa":"0":"2fffa":"0" mbedtls_mpi_core_mla #25: 0x0 + 0xfffe * 0xfe = (0xfdfe04, carry 0x0)/(0xfdfe04, carry 0x0) -mbedtls_mpi_core_mla:"0":"fffe":"fe":"fdfe04":"0":"fdfe04":"0" +mpi_core_mla:"0":"fffe":"fe":"fdfe04":"0":"fdfe04":"0" mbedtls_mpi_core_mla #26: 0x0 + 0xfffe * 0xff = (0xfefe02, carry 0x0)/(0xfefe02, carry 0x0) -mbedtls_mpi_core_mla:"0":"fffe":"ff":"fefe02":"0":"fefe02":"0" +mpi_core_mla:"0":"fffe":"ff":"fefe02":"0":"fefe02":"0" mbedtls_mpi_core_mla #27: 0x0 + 0xfffe * 0xffff = (0xfffd0002, carry 0x0)/(0xfffd0002, carry 0x0) -mbedtls_mpi_core_mla:"0":"fffe":"ffff":"fffd0002":"0":"fffd0002":"0" +mpi_core_mla:"0":"fffe":"ffff":"fffd0002":"0":"fffd0002":"0" mbedtls_mpi_core_mla #28: 0x0 + 0xfffe * 0x10000 = (0xfffe0000, carry 0x0)/(0xfffe0000, carry 0x0) -mbedtls_mpi_core_mla:"0":"fffe":"10000":"fffe0000":"0":"fffe0000":"0" +mpi_core_mla:"0":"fffe":"10000":"fffe0000":"0":"fffe0000":"0" mbedtls_mpi_core_mla #29: 0x0 + 0xfffe * 0xffffffff = (0xffff0002, carry 0xfffd)/(0xfffdffff0002, carry 0x0) -mbedtls_mpi_core_mla:"0":"fffe":"ffffffff":"ffff0002":"fffd":"fffdffff0002":"0" +mpi_core_mla:"0":"fffe":"ffffffff":"ffff0002":"fffd":"fffdffff0002":"0" mbedtls_mpi_core_mla #30: 0x0 + 0xfffe * 0x100000000 = (0x0, carry 0xfffe)/(0xfffe00000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"fffe":"100000000":"0":"fffe":"fffe00000000":"0" +mpi_core_mla:"0":"fffe":"100000000":"0":"fffe":"fffe00000000":"0" mbedtls_mpi_core_mla #31: 0x0 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80800102, carry 0x7f7e80808080)/(0x8080808080800102, carry 0x7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"fffe":"7f7f7f7f7f7f7f7f":"80800102":"7f7e80808080":"8080808080800102":"7f7e" +mpi_core_mla:"0":"fffe":"7f7f7f7f7f7f7f7f":"80800102":"7f7e80808080":"8080808080800102":"7f7e" mbedtls_mpi_core_mla #32: 0x0 + 0xfffe * 0x8000000000000000 = (0x0, carry 0x7fff00000000)/(0x0, carry 0x7fff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"fffe":"8000000000000000":"0":"7fff00000000":"0":"7fff" +mpi_core_mla:"0":"fffe":"8000000000000000":"0":"7fff00000000":"0":"7fff" mbedtls_mpi_core_mla #33: 0x0 + 0xfffe * 0xfffffffffffffffe = (0xfffe0004, carry 0xfffdffffffff)/(0xfffffffffffe0004, carry 0xfffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"fffe":"fffffffffffffffe":"fffe0004":"fffdffffffff":"fffffffffffe0004":"fffd" +mpi_core_mla:"0":"fffe":"fffffffffffffffe":"fffe0004":"fffdffffffff":"fffffffffffe0004":"fffd" mbedtls_mpi_core_mla #34: 0x0 + 0xffffffff * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"ffffffff":"0":"0":"0":"0":"0" +mpi_core_mla:"0":"ffffffff":"0":"0":"0":"0":"0" mbedtls_mpi_core_mla #35: 0x0 + 0xffffffff * 0x3 = (0xfffffffd, carry 0x2)/(0x2fffffffd, carry 0x0) -mbedtls_mpi_core_mla:"0":"ffffffff":"3":"fffffffd":"2":"2fffffffd":"0" +mpi_core_mla:"0":"ffffffff":"3":"fffffffd":"2":"2fffffffd":"0" mbedtls_mpi_core_mla #36: 0x0 + 0xffffffff * 0xfe = (0xffffff02, carry 0xfd)/(0xfdffffff02, carry 0x0) -mbedtls_mpi_core_mla:"0":"ffffffff":"fe":"ffffff02":"fd":"fdffffff02":"0" +mpi_core_mla:"0":"ffffffff":"fe":"ffffff02":"fd":"fdffffff02":"0" mbedtls_mpi_core_mla #37: 0x0 + 0xffffffff * 0xff = (0xffffff01, carry 0xfe)/(0xfeffffff01, carry 0x0) -mbedtls_mpi_core_mla:"0":"ffffffff":"ff":"ffffff01":"fe":"feffffff01":"0" +mpi_core_mla:"0":"ffffffff":"ff":"ffffff01":"fe":"feffffff01":"0" mbedtls_mpi_core_mla #38: 0x0 + 0xffffffff * 0xffff = (0xffff0001, carry 0xfffe)/(0xfffeffff0001, carry 0x0) -mbedtls_mpi_core_mla:"0":"ffffffff":"ffff":"ffff0001":"fffe":"fffeffff0001":"0" +mpi_core_mla:"0":"ffffffff":"ffff":"ffff0001":"fffe":"fffeffff0001":"0" mbedtls_mpi_core_mla #39: 0x0 + 0xffffffff * 0x10000 = (0xffff0000, carry 0xffff)/(0xffffffff0000, carry 0x0) -mbedtls_mpi_core_mla:"0":"ffffffff":"10000":"ffff0000":"ffff":"ffffffff0000":"0" +mpi_core_mla:"0":"ffffffff":"10000":"ffff0000":"ffff":"ffffffff0000":"0" mbedtls_mpi_core_mla #40: 0x0 + 0xffffffff * 0xffffffff = (0x1, carry 0xfffffffe)/(0xfffffffe00000001, carry 0x0) -mbedtls_mpi_core_mla:"0":"ffffffff":"ffffffff":"1":"fffffffe":"fffffffe00000001":"0" +mpi_core_mla:"0":"ffffffff":"ffffffff":"1":"fffffffe":"fffffffe00000001":"0" mbedtls_mpi_core_mla #41: 0x0 + 0xffffffff * 0x100000000 = (0x0, carry 0xffffffff)/(0xffffffff00000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"ffffffff":"100000000":"0":"ffffffff":"ffffffff00000000":"0" +mpi_core_mla:"0":"ffffffff":"100000000":"0":"ffffffff":"ffffffff00000000":"0" mbedtls_mpi_core_mla #42: 0x0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x80808081, carry 0x7f7f7f7effffffff)/(0xffffffff80808081, carry 0x7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"ffffffff":"7f7f7f7f7f7f7f7f":"80808081":"7f7f7f7effffffff":"ffffffff80808081":"7f7f7f7e" +mpi_core_mla:"0":"ffffffff":"7f7f7f7f7f7f7f7f":"80808081":"7f7f7f7effffffff":"ffffffff80808081":"7f7f7f7e" mbedtls_mpi_core_mla #43: 0x0 + 0xffffffff * 0x8000000000000000 = (0x0, carry 0x7fffffff80000000)/(0x8000000000000000, carry 0x7fffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"ffffffff":"8000000000000000":"0":"7fffffff80000000":"8000000000000000":"7fffffff" +mpi_core_mla:"0":"ffffffff":"8000000000000000":"0":"7fffffff80000000":"8000000000000000":"7fffffff" mbedtls_mpi_core_mla #44: 0x0 + 0xffffffff * 0xfffffffffffffffe = (0x2, carry 0xfffffffefffffffe)/(0xfffffffe00000002, carry 0xfffffffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"ffffffff":"fffffffffffffffe":"2":"fffffffefffffffe":"fffffffe00000002":"fffffffe" +mpi_core_mla:"0":"ffffffff":"fffffffffffffffe":"2":"fffffffefffffffe":"fffffffe00000002":"fffffffe" mbedtls_mpi_core_mla #45: 0x0 + 0x100000000 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"100000000":"0":"0":"0":"0":"0" +mpi_core_mla:"0":"100000000":"0":"0":"0":"0":"0" mbedtls_mpi_core_mla #46: 0x0 + 0x100000000 * 0x3 = (0x300000000, carry 0x0)/(0x300000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"100000000":"3":"300000000":"0":"300000000":"0" +mpi_core_mla:"0":"100000000":"3":"300000000":"0":"300000000":"0" mbedtls_mpi_core_mla #47: 0x0 + 0x100000000 * 0xfe = (0xfe00000000, carry 0x0)/(0xfe00000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"100000000":"fe":"fe00000000":"0":"fe00000000":"0" +mpi_core_mla:"0":"100000000":"fe":"fe00000000":"0":"fe00000000":"0" mbedtls_mpi_core_mla #48: 0x0 + 0x100000000 * 0xff = (0xff00000000, carry 0x0)/(0xff00000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"100000000":"ff":"ff00000000":"0":"ff00000000":"0" +mpi_core_mla:"0":"100000000":"ff":"ff00000000":"0":"ff00000000":"0" mbedtls_mpi_core_mla #49: 0x0 + 0x100000000 * 0xffff = (0xffff00000000, carry 0x0)/(0xffff00000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"100000000":"ffff":"ffff00000000":"0":"ffff00000000":"0" +mpi_core_mla:"0":"100000000":"ffff":"ffff00000000":"0":"ffff00000000":"0" mbedtls_mpi_core_mla #50: 0x0 + 0x100000000 * 0x10000 = (0x1000000000000, carry 0x0)/(0x1000000000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"100000000":"10000":"1000000000000":"0":"1000000000000":"0" +mpi_core_mla:"0":"100000000":"10000":"1000000000000":"0":"1000000000000":"0" mbedtls_mpi_core_mla #51: 0x0 + 0x100000000 * 0xffffffff = (0xffffffff00000000, carry 0x0)/(0xffffffff00000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"100000000":"ffffffff":"ffffffff00000000":"0":"ffffffff00000000":"0" +mpi_core_mla:"0":"100000000":"ffffffff":"ffffffff00000000":"0":"ffffffff00000000":"0" mbedtls_mpi_core_mla #52: 0x0 + 0x100000000 * 0x100000000 = (0x0, carry 0x1)/(0x0, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"100000000":"100000000":"0":"1":"0":"1" +mpi_core_mla:"0":"100000000":"100000000":"0":"1":"0":"1" mbedtls_mpi_core_mla #53: 0x0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000, carry 0x7f7f7f7f)/(0x7f7f7f7f00000000, carry 0x7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000":"7f7f7f7f":"7f7f7f7f00000000":"7f7f7f7f" +mpi_core_mla:"0":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000":"7f7f7f7f":"7f7f7f7f00000000":"7f7f7f7f" mbedtls_mpi_core_mla #54: 0x0 + 0x100000000 * 0x8000000000000000 = (0x0, carry 0x80000000)/(0x0, carry 0x80000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"100000000":"8000000000000000":"0":"80000000":"0":"80000000" +mpi_core_mla:"0":"100000000":"8000000000000000":"0":"80000000":"0":"80000000" mbedtls_mpi_core_mla #55: 0x0 + 0x100000000 * 0xfffffffffffffffe = (0xfffffffe00000000, carry 0xffffffff)/(0xfffffffe00000000, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"100000000":"fffffffffffffffe":"fffffffe00000000":"ffffffff":"fffffffe00000000":"ffffffff" +mpi_core_mla:"0":"100000000":"fffffffffffffffe":"fffffffe00000000":"ffffffff":"fffffffe00000000":"ffffffff" mbedtls_mpi_core_mla #56: 0x0 + 0x20000000000000 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"20000000000000":"0":"0":"0":"0":"0" +mpi_core_mla:"0":"20000000000000":"0":"0":"0":"0":"0" mbedtls_mpi_core_mla #57: 0x0 + 0x20000000000000 * 0x3 = (0x60000000000000, carry 0x0)/(0x60000000000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"20000000000000":"3":"60000000000000":"0":"60000000000000":"0" +mpi_core_mla:"0":"20000000000000":"3":"60000000000000":"0":"60000000000000":"0" mbedtls_mpi_core_mla #58: 0x0 + 0x20000000000000 * 0xfe = (0x1fc0000000000000, carry 0x0)/(0x1fc0000000000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"20000000000000":"fe":"1fc0000000000000":"0":"1fc0000000000000":"0" +mpi_core_mla:"0":"20000000000000":"fe":"1fc0000000000000":"0":"1fc0000000000000":"0" mbedtls_mpi_core_mla #59: 0x0 + 0x20000000000000 * 0xff = (0x1fe0000000000000, carry 0x0)/(0x1fe0000000000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"20000000000000":"ff":"1fe0000000000000":"0":"1fe0000000000000":"0" +mpi_core_mla:"0":"20000000000000":"ff":"1fe0000000000000":"0":"1fe0000000000000":"0" mbedtls_mpi_core_mla #60: 0x0 + 0x20000000000000 * 0xffff = (0xffe0000000000000, carry 0x1f)/(0xffe0000000000000, carry 0x1f) -mbedtls_mpi_core_mla:"0":"20000000000000":"ffff":"ffe0000000000000":"1f":"ffe0000000000000":"1f" +mpi_core_mla:"0":"20000000000000":"ffff":"ffe0000000000000":"1f":"ffe0000000000000":"1f" mbedtls_mpi_core_mla #61: 0x0 + 0x20000000000000 * 0x10000 = (0x0, carry 0x20)/(0x0, carry 0x20) -mbedtls_mpi_core_mla:"0":"20000000000000":"10000":"0":"20":"0":"20" +mpi_core_mla:"0":"20000000000000":"10000":"0":"20":"0":"20" mbedtls_mpi_core_mla #62: 0x0 + 0x20000000000000 * 0xffffffff = (0xffe0000000000000, carry 0x1fffff)/(0xffe0000000000000, carry 0x1fffff) -mbedtls_mpi_core_mla:"0":"20000000000000":"ffffffff":"ffe0000000000000":"1fffff":"ffe0000000000000":"1fffff" +mpi_core_mla:"0":"20000000000000":"ffffffff":"ffe0000000000000":"1fffff":"ffe0000000000000":"1fffff" mbedtls_mpi_core_mla #63: 0x0 + 0x20000000000000 * 0x100000000 = (0x0, carry 0x200000)/(0x0, carry 0x200000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"20000000000000":"100000000":"0":"200000":"0":"200000" +mpi_core_mla:"0":"20000000000000":"100000000":"0":"200000":"0":"200000" mbedtls_mpi_core_mla #64: 0x0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe0000000000000, carry 0xfefefefefefef)/(0xefe0000000000000, carry 0xfefefefefefef) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000000000000":"fefefefefefef":"efe0000000000000":"fefefefefefef" +mpi_core_mla:"0":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000000000000":"fefefefefefef":"efe0000000000000":"fefefefefefef" mbedtls_mpi_core_mla #65: 0x0 + 0x20000000000000 * 0x8000000000000000 = (0x0, carry 0x10000000000000)/(0x0, carry 0x10000000000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"20000000000000":"8000000000000000":"0":"10000000000000":"0":"10000000000000" +mpi_core_mla:"0":"20000000000000":"8000000000000000":"0":"10000000000000":"0":"10000000000000" mbedtls_mpi_core_mla #66: 0x0 + 0x20000000000000 * 0xfffffffffffffffe = (0xffc0000000000000, carry 0x1fffffffffffff)/(0xffc0000000000000, carry 0x1fffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"20000000000000":"fffffffffffffffe":"ffc0000000000000":"1fffffffffffff":"ffc0000000000000":"1fffffffffffff" +mpi_core_mla:"0":"20000000000000":"fffffffffffffffe":"ffc0000000000000":"1fffffffffffff":"ffc0000000000000":"1fffffffffffff" mbedtls_mpi_core_mla #67: 0x0 + 0xffffffffffffffff * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"0":"0":"0":"0":"0" +mpi_core_mla:"0":"ffffffffffffffff":"0":"0":"0":"0":"0" mbedtls_mpi_core_mla #68: 0x0 + 0xffffffffffffffff * 0x3 = (0xfffffffffffffffd, carry 0x2)/(0xfffffffffffffffd, carry 0x2) -mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"3":"fffffffffffffffd":"2":"fffffffffffffffd":"2" +mpi_core_mla:"0":"ffffffffffffffff":"3":"fffffffffffffffd":"2":"fffffffffffffffd":"2" mbedtls_mpi_core_mla #69: 0x0 + 0xffffffffffffffff * 0xfe = (0xffffffffffffff02, carry 0xfd)/(0xffffffffffffff02, carry 0xfd) -mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"fe":"ffffffffffffff02":"fd":"ffffffffffffff02":"fd" +mpi_core_mla:"0":"ffffffffffffffff":"fe":"ffffffffffffff02":"fd":"ffffffffffffff02":"fd" mbedtls_mpi_core_mla #70: 0x0 + 0xffffffffffffffff * 0xff = (0xffffffffffffff01, carry 0xfe)/(0xffffffffffffff01, carry 0xfe) -mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"ff":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" +mpi_core_mla:"0":"ffffffffffffffff":"ff":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" mbedtls_mpi_core_mla #71: 0x0 + 0xffffffffffffffff * 0xffff = (0xffffffffffff0001, carry 0xfffe)/(0xffffffffffff0001, carry 0xfffe) -mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"ffff":"ffffffffffff0001":"fffe":"ffffffffffff0001":"fffe" +mpi_core_mla:"0":"ffffffffffffffff":"ffff":"ffffffffffff0001":"fffe":"ffffffffffff0001":"fffe" mbedtls_mpi_core_mla #72: 0x0 + 0xffffffffffffffff * 0x10000 = (0xffffffffffff0000, carry 0xffff)/(0xffffffffffff0000, carry 0xffff) -mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"10000":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" +mpi_core_mla:"0":"ffffffffffffffff":"10000":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" mbedtls_mpi_core_mla #73: 0x0 + 0xffffffffffffffff * 0xffffffff = (0xffffffff00000001, carry 0xfffffffe)/(0xffffffff00000001, carry 0xfffffffe) -mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"ffffffff":"ffffffff00000001":"fffffffe":"ffffffff00000001":"fffffffe" +mpi_core_mla:"0":"ffffffffffffffff":"ffffffff":"ffffffff00000001":"fffffffe":"ffffffff00000001":"fffffffe" mbedtls_mpi_core_mla #74: 0x0 + 0xffffffffffffffff * 0x100000000 = (0xffffffff00000000, carry 0xffffffff)/(0xffffffff00000000, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"100000000":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" +mpi_core_mla:"0":"ffffffffffffffff":"100000000":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" mbedtls_mpi_core_mla #75: 0x0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808081, carry 0x7f7f7f7f7f7f7f7e)/(0x8080808080808081, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7e":"8080808080808081":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7e":"8080808080808081":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #76: 0x0 + 0xffffffffffffffff * 0x8000000000000000 = (0x8000000000000000, carry 0x7fffffffffffffff)/(0x8000000000000000, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"8000000000000000":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff" +mpi_core_mla:"0":"ffffffffffffffff":"8000000000000000":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff" mbedtls_mpi_core_mla #77: 0x0 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x2, carry 0xfffffffffffffffd)/(0x2, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"ffffffffffffffff":"fffffffffffffffe":"2":"fffffffffffffffd":"2":"fffffffffffffffd" +mpi_core_mla:"0":"ffffffffffffffff":"fffffffffffffffe":"2":"fffffffffffffffd":"2":"fffffffffffffffd" mbedtls_mpi_core_mla #78: 0x0 + 0x10000000000000000 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"10000000000000000":"0":"0":"0":"0":"0" +mpi_core_mla:"0":"10000000000000000":"0":"0":"0":"0":"0" mbedtls_mpi_core_mla #79: 0x0 + 0x10000000000000000 * 0x3 = (0x30000000000000000, carry 0x0)/(0x30000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"10000000000000000":"3":"30000000000000000":"0":"30000000000000000":"0" +mpi_core_mla:"0":"10000000000000000":"3":"30000000000000000":"0":"30000000000000000":"0" mbedtls_mpi_core_mla #80: 0x0 + 0x10000000000000000 * 0xfe = (0xfe0000000000000000, carry 0x0)/(0xfe0000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"10000000000000000":"fe":"fe0000000000000000":"0":"fe0000000000000000":"0" +mpi_core_mla:"0":"10000000000000000":"fe":"fe0000000000000000":"0":"fe0000000000000000":"0" mbedtls_mpi_core_mla #81: 0x0 + 0x10000000000000000 * 0xff = (0xff0000000000000000, carry 0x0)/(0xff0000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"10000000000000000":"ff":"ff0000000000000000":"0":"ff0000000000000000":"0" +mpi_core_mla:"0":"10000000000000000":"ff":"ff0000000000000000":"0":"ff0000000000000000":"0" mbedtls_mpi_core_mla #82: 0x0 + 0x10000000000000000 * 0xffff = (0xffff0000000000000000, carry 0x0)/(0xffff0000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"10000000000000000":"ffff":"ffff0000000000000000":"0":"ffff0000000000000000":"0" +mpi_core_mla:"0":"10000000000000000":"ffff":"ffff0000000000000000":"0":"ffff0000000000000000":"0" mbedtls_mpi_core_mla #83: 0x0 + 0x10000000000000000 * 0x10000 = (0x100000000000000000000, carry 0x0)/(0x100000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"10000000000000000":"10000":"100000000000000000000":"0":"100000000000000000000":"0" +mpi_core_mla:"0":"10000000000000000":"10000":"100000000000000000000":"0":"100000000000000000000":"0" mbedtls_mpi_core_mla #84: 0x0 + 0x10000000000000000 * 0xffffffff = (0xffffffff0000000000000000, carry 0x0)/(0xffffffff0000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"10000000000000000":"ffffffff":"ffffffff0000000000000000":"0":"ffffffff0000000000000000":"0" +mpi_core_mla:"0":"10000000000000000":"ffffffff":"ffffffff0000000000000000":"0":"ffffffff0000000000000000":"0" mbedtls_mpi_core_mla #85: 0x0 + 0x10000000000000000 * 0x100000000 = (0x0, carry 0x1)/(0x1000000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"10000000000000000":"100000000":"0":"1":"1000000000000000000000000":"0" +mpi_core_mla:"0":"10000000000000000":"100000000":"0":"1":"1000000000000000000000000":"0" mbedtls_mpi_core_mla #86: 0x0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000":"0" +mpi_core_mla:"0":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000":"0" mbedtls_mpi_core_mla #87: 0x0 + 0x10000000000000000 * 0x8000000000000000 = (0x0, carry 0x80000000)/(0x80000000000000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"10000000000000000":"8000000000000000":"0":"80000000":"80000000000000000000000000000000":"0" +mpi_core_mla:"0":"10000000000000000":"8000000000000000":"0":"80000000":"80000000000000000000000000000000":"0" mbedtls_mpi_core_mla #88: 0x0 + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000000, carry 0xffffffff)/(0xfffffffffffffffe0000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"10000000000000000":"fffffffffffffffe":"fffffffe0000000000000000":"ffffffff":"fffffffffffffffe0000000000000000":"0" +mpi_core_mla:"0":"10000000000000000":"fffffffffffffffe":"fffffffe0000000000000000":"ffffffff":"fffffffffffffffe0000000000000000":"0" mbedtls_mpi_core_mla #89: 0x0 + 0x1234567890abcdef0 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"0":"0":"0":"0":"0" +mpi_core_mla:"0":"1234567890abcdef0":"0":"0":"0":"0":"0" mbedtls_mpi_core_mla #90: 0x0 + 0x1234567890abcdef0 * 0x3 = (0x369d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"3":"369d0369b20369cd0":"0":"369d0369b20369cd0":"0" +mpi_core_mla:"0":"1234567890abcdef0":"3":"369d0369b20369cd0":"0":"369d0369b20369cd0":"0" mbedtls_mpi_core_mla #91: 0x0 + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a7653220, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"fe":"120fedcb9f8a7653220":"0":"120fedcb9f8a7653220":"0" +mpi_core_mla:"0":"1234567890abcdef0":"fe":"120fedcb9f8a7653220":"0":"120fedcb9f8a7653220":"0" mbedtls_mpi_core_mla #92: 0x0 + 0x1234567890abcdef0 * 0xff = (0x12222222181b2221110, carry 0x0)/(0x12222222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"ff":"12222222181b2221110":"0":"12222222181b2221110":"0" +mpi_core_mla:"0":"1234567890abcdef0":"ff":"12222222181b2221110":"0":"12222222181b2221110":"0" mbedtls_mpi_core_mla #93: 0x0 + 0x1234567890abcdef0 * 0xffff = (0x123444443a333d4332110, carry 0x0)/(0x123444443a333d4332110, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"ffff":"123444443a333d4332110":"0":"123444443a333d4332110":"0" +mpi_core_mla:"0":"1234567890abcdef0":"ffff":"123444443a333d4332110":"0":"123444443a333d4332110":"0" mbedtls_mpi_core_mla #94: 0x0 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdef00000, carry 0x0)/(0x1234567890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"10000":"1234567890abcdef00000":"0":"1234567890abcdef00000":"0" +mpi_core_mla:"0":"1234567890abcdef0":"10000":"1234567890abcdef00000":"0":"1234567890abcdef00000":"0" mbedtls_mpi_core_mla #95: 0x0 + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777766f5432110, carry 0x1)/(0x123456787e7777766f5432110, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"ffffffff":"23456787e7777766f5432110":"1":"123456787e7777766f5432110":"0" +mpi_core_mla:"0":"1234567890abcdef0":"ffffffff":"23456787e7777766f5432110":"1":"123456787e7777766f5432110":"0" mbedtls_mpi_core_mla #96: 0x0 + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef000000000, carry 0x1)/(0x1234567890abcdef000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"100000000":"234567890abcdef000000000":"1":"1234567890abcdef000000000":"0" +mpi_core_mla:"0":"1234567890abcdef0":"100000000":"234567890abcdef000000000":"1":"1234567890abcdef000000000":"0" mbedtls_mpi_core_mla #97: 0x0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708abaf5ba910, carry 0x91107edb)/(0x91107edbd82bde76f67708abaf5ba910, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ba910":"91107edb":"91107edbd82bde76f67708abaf5ba910":"0" +mpi_core_mla:"0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ba910":"91107edb":"91107edbd82bde76f67708abaf5ba910":"0" mbedtls_mpi_core_mla #98: 0x0 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f780000000000000000, carry 0x91a2b3c4)/(0x91a2b3c4855e6f780000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"8000000000000000":"855e6f780000000000000000":"91a2b3c4":"91a2b3c4855e6f780000000000000000":"0" +mpi_core_mla:"0":"1234567890abcdef0":"8000000000000000":"855e6f780000000000000000":"91a2b3c4":"91a2b3c4855e6f780000000000000000":"0" mbedtls_mpi_core_mla #99: 0x0 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530edea864220, carry 0x123456789)/(0x234567890abcdeedb97530edea864220, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea864220":"123456789":"234567890abcdeedb97530edea864220":"1" +mpi_core_mla:"0":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea864220":"123456789":"234567890abcdeedb97530edea864220":"1" mbedtls_mpi_core_mla #100: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"0":"0":"0":"0":"0" +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"0":"0":"0":"0":"0" mbedtls_mpi_core_mla #101: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfcfcfcfcfa, carry 0x2)/(0xfffffffffffffffffcfcfcfcfcfcfcfa, carry 0x2) -mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfcfcfa":"2":"fffffffffffffffffcfcfcfcfcfcfcfa":"2" +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfcfcfa":"2":"fffffffffffffffffcfcfcfcfcfcfcfa":"2" mbedtls_mpi_core_mla #102: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010101010004, carry 0xfd)/(0xffffffffffffffff0101010101010004, carry 0xfd) -mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101010004":"fd":"ffffffffffffffff0101010101010004":"fd" +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101010004":"fd":"ffffffffffffffff0101010101010004":"fd" mbedtls_mpi_core_mla #103: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfffffffffffffffeffffffffffffff02, carry 0xfe)/(0xfffffffffffffffeffffffffffffff02, carry 0xfe) -mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffeffffffffffffff02":"fe":"fffffffffffffffeffffffffffffff02":"fe" +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffeffffffffffffff02":"fe":"fffffffffffffffeffffffffffffff02":"fe" mbedtls_mpi_core_mla #104: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffefeffffffffffff0102, carry 0xfffe)/(0xfffffffffffffefeffffffffffff0102, carry 0xfffe) -mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefeffffffffffff0102":"fffe":"fffffffffffffefeffffffffffff0102":"fffe" +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefeffffffffffff0102":"fffe":"fffffffffffffefeffffffffffff0102":"fffe" mbedtls_mpi_core_mla #105: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefefefe0000, carry 0xffff)/(0xfffffffffffffefefefefefefefe0000, carry 0xffff) -mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefe0000":"ffff":"fffffffffffffefefefefefefefe0000":"ffff" +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefe0000":"ffff":"fffffffffffffefefefefefefefe0000":"ffff" mbedtls_mpi_core_mla #106: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefefeffffffff01010102, carry 0xfffffffe)/(0xfffffffffefefefeffffffff01010102, carry 0xfffffffe) -mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01010102":"fffffffe":"fffffffffefefefeffffffff01010102":"fffffffe" +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01010102":"fffffffe":"fffffffffefefefeffffffff01010102":"fffffffe" mbedtls_mpi_core_mla #107: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefe00000000, carry 0xffffffff)/(0xfffffffffefefefefefefefe00000000, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000000":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff" +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000000":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff" mbedtls_mpi_core_mla #108: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840383028202, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840383028202, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383028202":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383028202":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #109: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0000000000000000, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f0000000000000000, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000000000000":"7fffffffffffffff" +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000000000000":"7fffffffffffffff" mbedtls_mpi_core_mla #110: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020202020204, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020202020204, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202020204":"fffffffffffffffd":"fefefefefefefefe0202020202020204":"fffffffffffffffd" +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202020204":"fffffffffffffffd":"fefefefefefefefe0202020202020204":"fffffffffffffffd" mbedtls_mpi_core_mla #111: 0x0 + 0x100000000000000000000000000000000 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"0":"0":"0":"0":"0" +mpi_core_mla:"0":"100000000000000000000000000000000":"0":"0":"0":"0":"0" mbedtls_mpi_core_mla #112: 0x0 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000000000000000000000, carry 0x0)/(0x300000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"3":"300000000000000000000000000000000":"0":"300000000000000000000000000000000":"0" +mpi_core_mla:"0":"100000000000000000000000000000000":"3":"300000000000000000000000000000000":"0":"300000000000000000000000000000000":"0" mbedtls_mpi_core_mla #113: 0x0 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000000000000000000000, carry 0x0)/(0xfe00000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"fe":"fe00000000000000000000000000000000":"0":"fe00000000000000000000000000000000":"0" +mpi_core_mla:"0":"100000000000000000000000000000000":"fe":"fe00000000000000000000000000000000":"0":"fe00000000000000000000000000000000":"0" mbedtls_mpi_core_mla #114: 0x0 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000000000000000000000, carry 0x0)/(0xff00000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"ff":"ff00000000000000000000000000000000":"0":"ff00000000000000000000000000000000":"0" +mpi_core_mla:"0":"100000000000000000000000000000000":"ff":"ff00000000000000000000000000000000":"0":"ff00000000000000000000000000000000":"0" mbedtls_mpi_core_mla #115: 0x0 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000000000000000000000, carry 0x0)/(0xffff00000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000000000000":"0":"ffff00000000000000000000000000000000":"0" +mpi_core_mla:"0":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000000000000":"0":"ffff00000000000000000000000000000000":"0" mbedtls_mpi_core_mla #116: 0x0 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000000000000000000000, carry 0x0)/(0x1000000000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"10000":"1000000000000000000000000000000000000":"0":"1000000000000000000000000000000000000":"0" +mpi_core_mla:"0":"100000000000000000000000000000000":"10000":"1000000000000000000000000000000000000":"0":"1000000000000000000000000000000000000":"0" mbedtls_mpi_core_mla #117: 0x0 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000000000000000000000, carry 0x0)/(0xffffffff00000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000000000000":"0":"ffffffff00000000000000000000000000000000":"0" +mpi_core_mla:"0":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000000000000":"0":"ffffffff00000000000000000000000000000000":"0" mbedtls_mpi_core_mla #118: 0x0 + 0x100000000000000000000000000000000 * 0x100000000 = (0x0, carry 0x1)/(0x10000000000000000000000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"100000000":"0":"1":"10000000000000000000000000000000000000000":"0" +mpi_core_mla:"0":"100000000000000000000000000000000":"100000000":"0":"1":"10000000000000000000000000000000000000000":"0" mbedtls_mpi_core_mla #119: 0x0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000000000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000000000000":"0" +mpi_core_mla:"0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000000000000":"0" mbedtls_mpi_core_mla #120: 0x0 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x0, carry 0x80000000)/(0x800000000000000000000000000000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"8000000000000000":"0":"80000000":"800000000000000000000000000000000000000000000000":"0" +mpi_core_mla:"0":"100000000000000000000000000000000":"8000000000000000":"0":"80000000":"800000000000000000000000000000000000000000000000":"0" mbedtls_mpi_core_mla #121: 0x0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000000000000000000000, carry 0xffffffff)/(0xfffffffffffffffe00000000000000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000000000000":"ffffffff":"fffffffffffffffe00000000000000000000000000000000":"0" +mpi_core_mla:"0":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000000000000":"ffffffff":"fffffffffffffffe00000000000000000000000000000000":"0" mbedtls_mpi_core_mla #122: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"0":"0":"0":"0":"0" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"0":"0":"0":"0":"0" mbedtls_mpi_core_mla #123: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0":"0" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0":"0" mbedtls_mpi_core_mla #124: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a7653220, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a7653220":"0" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a7653220":"0" mbedtls_mpi_core_mla #125: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221110":"0" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221110":"0" mbedtls_mpi_core_mla #126: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d4332110, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d4332110":"0" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d4332110":"0" mbedtls_mpi_core_mla #127: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef00000":"0" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef00000":"0" mbedtls_mpi_core_mla #128: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777766f5432110, carry 0x12)/(0x123456787e7777767077777887e7777766f5432110, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f5432110":"12":"123456787e7777767077777887e7777766f5432110":"0" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f5432110":"12":"123456787e7777767077777887e7777766f5432110":"0" mbedtls_mpi_core_mla #129: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef000000000, carry 0x12)/(0x1234567890abcdef01234567890abcdef000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef000000000":"12":"1234567890abcdef01234567890abcdef000000000":"0" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef000000000":"12":"1234567890abcdef01234567890abcdef000000000":"0" mbedtls_mpi_core_mla #130: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708abaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708abaf5ba910, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ba910":"9" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ba910":"9" mbedtls_mpi_core_mla #131: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f780000000000000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f780000000000000000, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"9" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"9" mbedtls_mpi_core_mla #132: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530edea864220, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530edea864220, carry 0x12) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea864220":"1234567890":"34567890abcdeedcba987667b32100edb97530edea864220":"12" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea864220":"1234567890":"34567890abcdeedcba987667b32100edb97530edea864220":"12" mbedtls_mpi_core_mla #133: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":"0":"0":"0" +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":"0":"0":"0" mbedtls_mpi_core_mla #134: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 0x2)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 0x2) -mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"2":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"2" +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"2":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"2" mbedtls_mpi_core_mla #135: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0xfd)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0xfd) -mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fd":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fd" +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fd":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fd" mbedtls_mpi_core_mla #136: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0xfe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0xfe) -mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe" +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe" mbedtls_mpi_core_mla #137: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0xfffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0xfffe) -mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"fffe" +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"fffe" mbedtls_mpi_core_mla #138: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0xffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0xffff) -mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff" +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff" mbedtls_mpi_core_mla #139: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0xfffffffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0xfffffffe) -mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"fffffffe" +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"fffffffe" mbedtls_mpi_core_mla #140: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff" +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff" mbedtls_mpi_core_mla #141: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #142: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"7fffffffffffffff" +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"7fffffffffffffff" mbedtls_mpi_core_mla #143: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"fffffffffffffffd" +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"fffffffffffffffd" mbedtls_mpi_core_mla #144: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":"0":"0":"0" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":"0":"0":"0" mbedtls_mpi_core_mla #145: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0":"0" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0":"0" mbedtls_mpi_core_mla #146: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220":"0" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220":"0" mbedtls_mpi_core_mla #147: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0" mbedtls_mpi_core_mla #148: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110":"0" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110":"0" mbedtls_mpi_core_mla #149: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0" mbedtls_mpi_core_mla #150: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110, carry 0x0) -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110":"0" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110":"0" mbedtls_mpi_core_mla #151: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"0" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"0" mbedtls_mpi_core_mla #152: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910, carry 0x911) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910":"911" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910":"911" mbedtls_mpi_core_mla #153: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000, carry 0x91a) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"91a" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"91a" mbedtls_mpi_core_mla #154: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220, carry 0x1234) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220":"1234" +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220":"1234" mbedtls_mpi_core_mla #155: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":"0":"0":"0" +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":"0":"0":"0" mbedtls_mpi_core_mla #156: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381, carry 0x0) -mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381":"0" +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381":"0" mbedtls_mpi_core_mla #157: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa, carry 0x0) -mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa":"0" +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa":"0" mbedtls_mpi_core_mla #158: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0) -mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0" +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0" mbedtls_mpi_core_mla #159: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5, carry 0x0) -mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5":"0" +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5":"0" mbedtls_mpi_core_mla #160: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000, carry 0x0) -mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0" +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0" mbedtls_mpi_core_mla #161: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5, carry 0x4) -mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5":"4" +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5":"4" mbedtls_mpi_core_mla #162: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000, carry 0x4) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4" +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4" mbedtls_mpi_core_mla #163: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955, carry 0x26d473ca9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955":"26d473ca9" +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955":"26d473ca9" mbedtls_mpi_core_mla #164: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000, carry 0x26fb9683d) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000":"26fb9683d" +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000":"26fb9683d" mbedtls_mpi_core_mla #165: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa, carry 0x4df72d07b) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b" +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b" mbedtls_mpi_core_mla #166: 0x1 + 0x0 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"0":"0":"1":"0":"1":"0" +mpi_core_mla:"1":"0":"0":"1":"0":"1":"0" mbedtls_mpi_core_mla #167: 0x1 + 0x0 * 0x3 = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"0":"3":"1":"0":"1":"0" +mpi_core_mla:"1":"0":"3":"1":"0":"1":"0" mbedtls_mpi_core_mla #168: 0x1 + 0x0 * 0xfe = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"0":"fe":"1":"0":"1":"0" +mpi_core_mla:"1":"0":"fe":"1":"0":"1":"0" mbedtls_mpi_core_mla #169: 0x1 + 0x0 * 0xff = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"0":"ff":"1":"0":"1":"0" +mpi_core_mla:"1":"0":"ff":"1":"0":"1":"0" mbedtls_mpi_core_mla #170: 0x1 + 0x0 * 0xffff = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"0":"ffff":"1":"0":"1":"0" +mpi_core_mla:"1":"0":"ffff":"1":"0":"1":"0" mbedtls_mpi_core_mla #171: 0x1 + 0x0 * 0x10000 = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"0":"10000":"1":"0":"1":"0" +mpi_core_mla:"1":"0":"10000":"1":"0":"1":"0" mbedtls_mpi_core_mla #172: 0x1 + 0x0 * 0xffffffff = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"0":"ffffffff":"1":"0":"1":"0" +mpi_core_mla:"1":"0":"ffffffff":"1":"0":"1":"0" mbedtls_mpi_core_mla #173: 0x1 + 0x0 * 0x100000000 = (0x1, carry 0x0)/(0x1, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"0":"100000000":"1":"0":"1":"0" +mpi_core_mla:"1":"0":"100000000":"1":"0":"1":"0" mbedtls_mpi_core_mla #174: 0x1 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x1, carry 0x0)/(0x1, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"0":"7f7f7f7f7f7f7f7f":"1":"0":"1":"0" +mpi_core_mla:"1":"0":"7f7f7f7f7f7f7f7f":"1":"0":"1":"0" mbedtls_mpi_core_mla #175: 0x1 + 0x0 * 0x8000000000000000 = (0x1, carry 0x0)/(0x1, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"0":"8000000000000000":"1":"0":"1":"0" +mpi_core_mla:"1":"0":"8000000000000000":"1":"0":"1":"0" mbedtls_mpi_core_mla #176: 0x1 + 0x0 * 0xfffffffffffffffe = (0x1, carry 0x0)/(0x1, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"0":"fffffffffffffffe":"1":"0":"1":"0" +mpi_core_mla:"1":"0":"fffffffffffffffe":"1":"0":"1":"0" mbedtls_mpi_core_mla #177: 0x1 + 0x1 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"1":"0":"1":"0":"1":"0" +mpi_core_mla:"1":"1":"0":"1":"0":"1":"0" mbedtls_mpi_core_mla #178: 0x1 + 0x1 * 0x3 = (0x4, carry 0x0)/(0x4, carry 0x0) -mbedtls_mpi_core_mla:"1":"1":"3":"4":"0":"4":"0" +mpi_core_mla:"1":"1":"3":"4":"0":"4":"0" mbedtls_mpi_core_mla #179: 0x1 + 0x1 * 0xfe = (0xff, carry 0x0)/(0xff, carry 0x0) -mbedtls_mpi_core_mla:"1":"1":"fe":"ff":"0":"ff":"0" +mpi_core_mla:"1":"1":"fe":"ff":"0":"ff":"0" mbedtls_mpi_core_mla #180: 0x1 + 0x1 * 0xff = (0x100, carry 0x0)/(0x100, carry 0x0) -mbedtls_mpi_core_mla:"1":"1":"ff":"100":"0":"100":"0" +mpi_core_mla:"1":"1":"ff":"100":"0":"100":"0" mbedtls_mpi_core_mla #181: 0x1 + 0x1 * 0xffff = (0x10000, carry 0x0)/(0x10000, carry 0x0) -mbedtls_mpi_core_mla:"1":"1":"ffff":"10000":"0":"10000":"0" +mpi_core_mla:"1":"1":"ffff":"10000":"0":"10000":"0" mbedtls_mpi_core_mla #182: 0x1 + 0x1 * 0x10000 = (0x10001, carry 0x0)/(0x10001, carry 0x0) -mbedtls_mpi_core_mla:"1":"1":"10000":"10001":"0":"10001":"0" +mpi_core_mla:"1":"1":"10000":"10001":"0":"10001":"0" mbedtls_mpi_core_mla #183: 0x1 + 0x1 * 0xffffffff = (0x0, carry 0x1)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"1":"1":"ffffffff":"0":"1":"100000000":"0" +mpi_core_mla:"1":"1":"ffffffff":"0":"1":"100000000":"0" mbedtls_mpi_core_mla #184: 0x1 + 0x1 * 0x100000000 = (0x1, carry 0x1)/(0x100000001, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"1":"100000000":"1":"1":"100000001":"0" +mpi_core_mla:"1":"1":"100000000":"1":"1":"100000001":"0" mbedtls_mpi_core_mla #185: 0x1 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f80, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f80, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"1":"7f7f7f7f7f7f7f7f":"7f7f7f80":"7f7f7f7f":"7f7f7f7f7f7f7f80":"0" +mpi_core_mla:"1":"1":"7f7f7f7f7f7f7f7f":"7f7f7f80":"7f7f7f7f":"7f7f7f7f7f7f7f80":"0" mbedtls_mpi_core_mla #186: 0x1 + 0x1 * 0x8000000000000000 = (0x1, carry 0x80000000)/(0x8000000000000001, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"1":"8000000000000000":"1":"80000000":"8000000000000001":"0" +mpi_core_mla:"1":"1":"8000000000000000":"1":"80000000":"8000000000000001":"0" mbedtls_mpi_core_mla #187: 0x1 + 0x1 * 0xfffffffffffffffe = (0xffffffff, carry 0xffffffff)/(0xffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"1":"fffffffffffffffe":"ffffffff":"ffffffff":"ffffffffffffffff":"0" +mpi_core_mla:"1":"1":"fffffffffffffffe":"ffffffff":"ffffffff":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #188: 0x1 + 0xfffe * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"fffe":"0":"1":"0":"1":"0" +mpi_core_mla:"1":"fffe":"0":"1":"0":"1":"0" mbedtls_mpi_core_mla #189: 0x1 + 0xfffe * 0x3 = (0x2fffb, carry 0x0)/(0x2fffb, carry 0x0) -mbedtls_mpi_core_mla:"1":"fffe":"3":"2fffb":"0":"2fffb":"0" +mpi_core_mla:"1":"fffe":"3":"2fffb":"0":"2fffb":"0" mbedtls_mpi_core_mla #190: 0x1 + 0xfffe * 0xfe = (0xfdfe05, carry 0x0)/(0xfdfe05, carry 0x0) -mbedtls_mpi_core_mla:"1":"fffe":"fe":"fdfe05":"0":"fdfe05":"0" +mpi_core_mla:"1":"fffe":"fe":"fdfe05":"0":"fdfe05":"0" mbedtls_mpi_core_mla #191: 0x1 + 0xfffe * 0xff = (0xfefe03, carry 0x0)/(0xfefe03, carry 0x0) -mbedtls_mpi_core_mla:"1":"fffe":"ff":"fefe03":"0":"fefe03":"0" +mpi_core_mla:"1":"fffe":"ff":"fefe03":"0":"fefe03":"0" mbedtls_mpi_core_mla #192: 0x1 + 0xfffe * 0xffff = (0xfffd0003, carry 0x0)/(0xfffd0003, carry 0x0) -mbedtls_mpi_core_mla:"1":"fffe":"ffff":"fffd0003":"0":"fffd0003":"0" +mpi_core_mla:"1":"fffe":"ffff":"fffd0003":"0":"fffd0003":"0" mbedtls_mpi_core_mla #193: 0x1 + 0xfffe * 0x10000 = (0xfffe0001, carry 0x0)/(0xfffe0001, carry 0x0) -mbedtls_mpi_core_mla:"1":"fffe":"10000":"fffe0001":"0":"fffe0001":"0" +mpi_core_mla:"1":"fffe":"10000":"fffe0001":"0":"fffe0001":"0" mbedtls_mpi_core_mla #194: 0x1 + 0xfffe * 0xffffffff = (0xffff0003, carry 0xfffd)/(0xfffdffff0003, carry 0x0) -mbedtls_mpi_core_mla:"1":"fffe":"ffffffff":"ffff0003":"fffd":"fffdffff0003":"0" +mpi_core_mla:"1":"fffe":"ffffffff":"ffff0003":"fffd":"fffdffff0003":"0" mbedtls_mpi_core_mla #195: 0x1 + 0xfffe * 0x100000000 = (0x1, carry 0xfffe)/(0xfffe00000001, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"fffe":"100000000":"1":"fffe":"fffe00000001":"0" +mpi_core_mla:"1":"fffe":"100000000":"1":"fffe":"fffe00000001":"0" mbedtls_mpi_core_mla #196: 0x1 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80800103, carry 0x7f7e80808080)/(0x8080808080800103, carry 0x7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"fffe":"7f7f7f7f7f7f7f7f":"80800103":"7f7e80808080":"8080808080800103":"7f7e" +mpi_core_mla:"1":"fffe":"7f7f7f7f7f7f7f7f":"80800103":"7f7e80808080":"8080808080800103":"7f7e" mbedtls_mpi_core_mla #197: 0x1 + 0xfffe * 0x8000000000000000 = (0x1, carry 0x7fff00000000)/(0x1, carry 0x7fff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"fffe":"8000000000000000":"1":"7fff00000000":"1":"7fff" +mpi_core_mla:"1":"fffe":"8000000000000000":"1":"7fff00000000":"1":"7fff" mbedtls_mpi_core_mla #198: 0x1 + 0xfffe * 0xfffffffffffffffe = (0xfffe0005, carry 0xfffdffffffff)/(0xfffffffffffe0005, carry 0xfffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"fffe":"fffffffffffffffe":"fffe0005":"fffdffffffff":"fffffffffffe0005":"fffd" +mpi_core_mla:"1":"fffe":"fffffffffffffffe":"fffe0005":"fffdffffffff":"fffffffffffe0005":"fffd" mbedtls_mpi_core_mla #199: 0x1 + 0xffffffff * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"ffffffff":"0":"1":"0":"1":"0" +mpi_core_mla:"1":"ffffffff":"0":"1":"0":"1":"0" mbedtls_mpi_core_mla #200: 0x1 + 0xffffffff * 0x3 = (0xfffffffe, carry 0x2)/(0x2fffffffe, carry 0x0) -mbedtls_mpi_core_mla:"1":"ffffffff":"3":"fffffffe":"2":"2fffffffe":"0" +mpi_core_mla:"1":"ffffffff":"3":"fffffffe":"2":"2fffffffe":"0" mbedtls_mpi_core_mla #201: 0x1 + 0xffffffff * 0xfe = (0xffffff03, carry 0xfd)/(0xfdffffff03, carry 0x0) -mbedtls_mpi_core_mla:"1":"ffffffff":"fe":"ffffff03":"fd":"fdffffff03":"0" +mpi_core_mla:"1":"ffffffff":"fe":"ffffff03":"fd":"fdffffff03":"0" mbedtls_mpi_core_mla #202: 0x1 + 0xffffffff * 0xff = (0xffffff02, carry 0xfe)/(0xfeffffff02, carry 0x0) -mbedtls_mpi_core_mla:"1":"ffffffff":"ff":"ffffff02":"fe":"feffffff02":"0" +mpi_core_mla:"1":"ffffffff":"ff":"ffffff02":"fe":"feffffff02":"0" mbedtls_mpi_core_mla #203: 0x1 + 0xffffffff * 0xffff = (0xffff0002, carry 0xfffe)/(0xfffeffff0002, carry 0x0) -mbedtls_mpi_core_mla:"1":"ffffffff":"ffff":"ffff0002":"fffe":"fffeffff0002":"0" +mpi_core_mla:"1":"ffffffff":"ffff":"ffff0002":"fffe":"fffeffff0002":"0" mbedtls_mpi_core_mla #204: 0x1 + 0xffffffff * 0x10000 = (0xffff0001, carry 0xffff)/(0xffffffff0001, carry 0x0) -mbedtls_mpi_core_mla:"1":"ffffffff":"10000":"ffff0001":"ffff":"ffffffff0001":"0" +mpi_core_mla:"1":"ffffffff":"10000":"ffff0001":"ffff":"ffffffff0001":"0" mbedtls_mpi_core_mla #205: 0x1 + 0xffffffff * 0xffffffff = (0x2, carry 0xfffffffe)/(0xfffffffe00000002, carry 0x0) -mbedtls_mpi_core_mla:"1":"ffffffff":"ffffffff":"2":"fffffffe":"fffffffe00000002":"0" +mpi_core_mla:"1":"ffffffff":"ffffffff":"2":"fffffffe":"fffffffe00000002":"0" mbedtls_mpi_core_mla #206: 0x1 + 0xffffffff * 0x100000000 = (0x1, carry 0xffffffff)/(0xffffffff00000001, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"ffffffff":"100000000":"1":"ffffffff":"ffffffff00000001":"0" +mpi_core_mla:"1":"ffffffff":"100000000":"1":"ffffffff":"ffffffff00000001":"0" mbedtls_mpi_core_mla #207: 0x1 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x80808082, carry 0x7f7f7f7effffffff)/(0xffffffff80808082, carry 0x7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"ffffffff":"7f7f7f7f7f7f7f7f":"80808082":"7f7f7f7effffffff":"ffffffff80808082":"7f7f7f7e" +mpi_core_mla:"1":"ffffffff":"7f7f7f7f7f7f7f7f":"80808082":"7f7f7f7effffffff":"ffffffff80808082":"7f7f7f7e" mbedtls_mpi_core_mla #208: 0x1 + 0xffffffff * 0x8000000000000000 = (0x1, carry 0x7fffffff80000000)/(0x8000000000000001, carry 0x7fffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"ffffffff":"8000000000000000":"1":"7fffffff80000000":"8000000000000001":"7fffffff" +mpi_core_mla:"1":"ffffffff":"8000000000000000":"1":"7fffffff80000000":"8000000000000001":"7fffffff" mbedtls_mpi_core_mla #209: 0x1 + 0xffffffff * 0xfffffffffffffffe = (0x3, carry 0xfffffffefffffffe)/(0xfffffffe00000003, carry 0xfffffffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"ffffffff":"fffffffffffffffe":"3":"fffffffefffffffe":"fffffffe00000003":"fffffffe" +mpi_core_mla:"1":"ffffffff":"fffffffffffffffe":"3":"fffffffefffffffe":"fffffffe00000003":"fffffffe" mbedtls_mpi_core_mla #210: 0x1 + 0x100000000 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"100000000":"0":"1":"0":"1":"0" +mpi_core_mla:"1":"100000000":"0":"1":"0":"1":"0" mbedtls_mpi_core_mla #211: 0x1 + 0x100000000 * 0x3 = (0x300000001, carry 0x0)/(0x300000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"100000000":"3":"300000001":"0":"300000001":"0" +mpi_core_mla:"1":"100000000":"3":"300000001":"0":"300000001":"0" mbedtls_mpi_core_mla #212: 0x1 + 0x100000000 * 0xfe = (0xfe00000001, carry 0x0)/(0xfe00000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"100000000":"fe":"fe00000001":"0":"fe00000001":"0" +mpi_core_mla:"1":"100000000":"fe":"fe00000001":"0":"fe00000001":"0" mbedtls_mpi_core_mla #213: 0x1 + 0x100000000 * 0xff = (0xff00000001, carry 0x0)/(0xff00000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"100000000":"ff":"ff00000001":"0":"ff00000001":"0" +mpi_core_mla:"1":"100000000":"ff":"ff00000001":"0":"ff00000001":"0" mbedtls_mpi_core_mla #214: 0x1 + 0x100000000 * 0xffff = (0xffff00000001, carry 0x0)/(0xffff00000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"100000000":"ffff":"ffff00000001":"0":"ffff00000001":"0" +mpi_core_mla:"1":"100000000":"ffff":"ffff00000001":"0":"ffff00000001":"0" mbedtls_mpi_core_mla #215: 0x1 + 0x100000000 * 0x10000 = (0x1000000000001, carry 0x0)/(0x1000000000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"100000000":"10000":"1000000000001":"0":"1000000000001":"0" +mpi_core_mla:"1":"100000000":"10000":"1000000000001":"0":"1000000000001":"0" mbedtls_mpi_core_mla #216: 0x1 + 0x100000000 * 0xffffffff = (0xffffffff00000001, carry 0x0)/(0xffffffff00000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"100000000":"ffffffff":"ffffffff00000001":"0":"ffffffff00000001":"0" +mpi_core_mla:"1":"100000000":"ffffffff":"ffffffff00000001":"0":"ffffffff00000001":"0" mbedtls_mpi_core_mla #217: 0x1 + 0x100000000 * 0x100000000 = (0x1, carry 0x1)/(0x1, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"100000000":"100000000":"1":"1":"1":"1" +mpi_core_mla:"1":"100000000":"100000000":"1":"1":"1":"1" mbedtls_mpi_core_mla #218: 0x1 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000001, carry 0x7f7f7f7f)/(0x7f7f7f7f00000001, carry 0x7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000001":"7f7f7f7f":"7f7f7f7f00000001":"7f7f7f7f" +mpi_core_mla:"1":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000001":"7f7f7f7f":"7f7f7f7f00000001":"7f7f7f7f" mbedtls_mpi_core_mla #219: 0x1 + 0x100000000 * 0x8000000000000000 = (0x1, carry 0x80000000)/(0x1, carry 0x80000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"100000000":"8000000000000000":"1":"80000000":"1":"80000000" +mpi_core_mla:"1":"100000000":"8000000000000000":"1":"80000000":"1":"80000000" mbedtls_mpi_core_mla #220: 0x1 + 0x100000000 * 0xfffffffffffffffe = (0xfffffffe00000001, carry 0xffffffff)/(0xfffffffe00000001, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"100000000":"fffffffffffffffe":"fffffffe00000001":"ffffffff":"fffffffe00000001":"ffffffff" +mpi_core_mla:"1":"100000000":"fffffffffffffffe":"fffffffe00000001":"ffffffff":"fffffffe00000001":"ffffffff" mbedtls_mpi_core_mla #221: 0x1 + 0x20000000000000 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"20000000000000":"0":"1":"0":"1":"0" +mpi_core_mla:"1":"20000000000000":"0":"1":"0":"1":"0" mbedtls_mpi_core_mla #222: 0x1 + 0x20000000000000 * 0x3 = (0x60000000000001, carry 0x0)/(0x60000000000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"20000000000000":"3":"60000000000001":"0":"60000000000001":"0" +mpi_core_mla:"1":"20000000000000":"3":"60000000000001":"0":"60000000000001":"0" mbedtls_mpi_core_mla #223: 0x1 + 0x20000000000000 * 0xfe = (0x1fc0000000000001, carry 0x0)/(0x1fc0000000000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"20000000000000":"fe":"1fc0000000000001":"0":"1fc0000000000001":"0" +mpi_core_mla:"1":"20000000000000":"fe":"1fc0000000000001":"0":"1fc0000000000001":"0" mbedtls_mpi_core_mla #224: 0x1 + 0x20000000000000 * 0xff = (0x1fe0000000000001, carry 0x0)/(0x1fe0000000000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"20000000000000":"ff":"1fe0000000000001":"0":"1fe0000000000001":"0" +mpi_core_mla:"1":"20000000000000":"ff":"1fe0000000000001":"0":"1fe0000000000001":"0" mbedtls_mpi_core_mla #225: 0x1 + 0x20000000000000 * 0xffff = (0xffe0000000000001, carry 0x1f)/(0xffe0000000000001, carry 0x1f) -mbedtls_mpi_core_mla:"1":"20000000000000":"ffff":"ffe0000000000001":"1f":"ffe0000000000001":"1f" +mpi_core_mla:"1":"20000000000000":"ffff":"ffe0000000000001":"1f":"ffe0000000000001":"1f" mbedtls_mpi_core_mla #226: 0x1 + 0x20000000000000 * 0x10000 = (0x1, carry 0x20)/(0x1, carry 0x20) -mbedtls_mpi_core_mla:"1":"20000000000000":"10000":"1":"20":"1":"20" +mpi_core_mla:"1":"20000000000000":"10000":"1":"20":"1":"20" mbedtls_mpi_core_mla #227: 0x1 + 0x20000000000000 * 0xffffffff = (0xffe0000000000001, carry 0x1fffff)/(0xffe0000000000001, carry 0x1fffff) -mbedtls_mpi_core_mla:"1":"20000000000000":"ffffffff":"ffe0000000000001":"1fffff":"ffe0000000000001":"1fffff" +mpi_core_mla:"1":"20000000000000":"ffffffff":"ffe0000000000001":"1fffff":"ffe0000000000001":"1fffff" mbedtls_mpi_core_mla #228: 0x1 + 0x20000000000000 * 0x100000000 = (0x1, carry 0x200000)/(0x1, carry 0x200000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"20000000000000":"100000000":"1":"200000":"1":"200000" +mpi_core_mla:"1":"20000000000000":"100000000":"1":"200000":"1":"200000" mbedtls_mpi_core_mla #229: 0x1 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe0000000000001, carry 0xfefefefefefef)/(0xefe0000000000001, carry 0xfefefefefefef) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000000000001":"fefefefefefef":"efe0000000000001":"fefefefefefef" +mpi_core_mla:"1":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000000000001":"fefefefefefef":"efe0000000000001":"fefefefefefef" mbedtls_mpi_core_mla #230: 0x1 + 0x20000000000000 * 0x8000000000000000 = (0x1, carry 0x10000000000000)/(0x1, carry 0x10000000000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"20000000000000":"8000000000000000":"1":"10000000000000":"1":"10000000000000" +mpi_core_mla:"1":"20000000000000":"8000000000000000":"1":"10000000000000":"1":"10000000000000" mbedtls_mpi_core_mla #231: 0x1 + 0x20000000000000 * 0xfffffffffffffffe = (0xffc0000000000001, carry 0x1fffffffffffff)/(0xffc0000000000001, carry 0x1fffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"20000000000000":"fffffffffffffffe":"ffc0000000000001":"1fffffffffffff":"ffc0000000000001":"1fffffffffffff" +mpi_core_mla:"1":"20000000000000":"fffffffffffffffe":"ffc0000000000001":"1fffffffffffff":"ffc0000000000001":"1fffffffffffff" mbedtls_mpi_core_mla #232: 0x1 + 0xffffffffffffffff * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"0":"1":"0":"1":"0" +mpi_core_mla:"1":"ffffffffffffffff":"0":"1":"0":"1":"0" mbedtls_mpi_core_mla #233: 0x1 + 0xffffffffffffffff * 0x3 = (0xfffffffffffffffe, carry 0x2)/(0xfffffffffffffffe, carry 0x2) -mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"3":"fffffffffffffffe":"2":"fffffffffffffffe":"2" +mpi_core_mla:"1":"ffffffffffffffff":"3":"fffffffffffffffe":"2":"fffffffffffffffe":"2" mbedtls_mpi_core_mla #234: 0x1 + 0xffffffffffffffff * 0xfe = (0xffffffffffffff03, carry 0xfd)/(0xffffffffffffff03, carry 0xfd) -mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"fe":"ffffffffffffff03":"fd":"ffffffffffffff03":"fd" +mpi_core_mla:"1":"ffffffffffffffff":"fe":"ffffffffffffff03":"fd":"ffffffffffffff03":"fd" mbedtls_mpi_core_mla #235: 0x1 + 0xffffffffffffffff * 0xff = (0xffffffffffffff02, carry 0xfe)/(0xffffffffffffff02, carry 0xfe) -mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"ff":"ffffffffffffff02":"fe":"ffffffffffffff02":"fe" +mpi_core_mla:"1":"ffffffffffffffff":"ff":"ffffffffffffff02":"fe":"ffffffffffffff02":"fe" mbedtls_mpi_core_mla #236: 0x1 + 0xffffffffffffffff * 0xffff = (0xffffffffffff0002, carry 0xfffe)/(0xffffffffffff0002, carry 0xfffe) -mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"ffff":"ffffffffffff0002":"fffe":"ffffffffffff0002":"fffe" +mpi_core_mla:"1":"ffffffffffffffff":"ffff":"ffffffffffff0002":"fffe":"ffffffffffff0002":"fffe" mbedtls_mpi_core_mla #237: 0x1 + 0xffffffffffffffff * 0x10000 = (0xffffffffffff0001, carry 0xffff)/(0xffffffffffff0001, carry 0xffff) -mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"10000":"ffffffffffff0001":"ffff":"ffffffffffff0001":"ffff" +mpi_core_mla:"1":"ffffffffffffffff":"10000":"ffffffffffff0001":"ffff":"ffffffffffff0001":"ffff" mbedtls_mpi_core_mla #238: 0x1 + 0xffffffffffffffff * 0xffffffff = (0xffffffff00000002, carry 0xfffffffe)/(0xffffffff00000002, carry 0xfffffffe) -mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"ffffffff":"ffffffff00000002":"fffffffe":"ffffffff00000002":"fffffffe" +mpi_core_mla:"1":"ffffffffffffffff":"ffffffff":"ffffffff00000002":"fffffffe":"ffffffff00000002":"fffffffe" mbedtls_mpi_core_mla #239: 0x1 + 0xffffffffffffffff * 0x100000000 = (0xffffffff00000001, carry 0xffffffff)/(0xffffffff00000001, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"100000000":"ffffffff00000001":"ffffffff":"ffffffff00000001":"ffffffff" +mpi_core_mla:"1":"ffffffffffffffff":"100000000":"ffffffff00000001":"ffffffff":"ffffffff00000001":"ffffffff" mbedtls_mpi_core_mla #240: 0x1 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808082, carry 0x7f7f7f7f7f7f7f7e)/(0x8080808080808082, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808082":"7f7f7f7f7f7f7f7e":"8080808080808082":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"1":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808082":"7f7f7f7f7f7f7f7e":"8080808080808082":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #241: 0x1 + 0xffffffffffffffff * 0x8000000000000000 = (0x8000000000000001, carry 0x7fffffffffffffff)/(0x8000000000000001, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"8000000000000000":"8000000000000001":"7fffffffffffffff":"8000000000000001":"7fffffffffffffff" +mpi_core_mla:"1":"ffffffffffffffff":"8000000000000000":"8000000000000001":"7fffffffffffffff":"8000000000000001":"7fffffffffffffff" mbedtls_mpi_core_mla #242: 0x1 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x3, carry 0xfffffffffffffffd)/(0x3, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"ffffffffffffffff":"fffffffffffffffe":"3":"fffffffffffffffd":"3":"fffffffffffffffd" +mpi_core_mla:"1":"ffffffffffffffff":"fffffffffffffffe":"3":"fffffffffffffffd":"3":"fffffffffffffffd" mbedtls_mpi_core_mla #243: 0x1 + 0x10000000000000000 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"10000000000000000":"0":"1":"0":"1":"0" +mpi_core_mla:"1":"10000000000000000":"0":"1":"0":"1":"0" mbedtls_mpi_core_mla #244: 0x1 + 0x10000000000000000 * 0x3 = (0x30000000000000001, carry 0x0)/(0x30000000000000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"10000000000000000":"3":"30000000000000001":"0":"30000000000000001":"0" +mpi_core_mla:"1":"10000000000000000":"3":"30000000000000001":"0":"30000000000000001":"0" mbedtls_mpi_core_mla #245: 0x1 + 0x10000000000000000 * 0xfe = (0xfe0000000000000001, carry 0x0)/(0xfe0000000000000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"10000000000000000":"fe":"fe0000000000000001":"0":"fe0000000000000001":"0" +mpi_core_mla:"1":"10000000000000000":"fe":"fe0000000000000001":"0":"fe0000000000000001":"0" mbedtls_mpi_core_mla #246: 0x1 + 0x10000000000000000 * 0xff = (0xff0000000000000001, carry 0x0)/(0xff0000000000000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"10000000000000000":"ff":"ff0000000000000001":"0":"ff0000000000000001":"0" +mpi_core_mla:"1":"10000000000000000":"ff":"ff0000000000000001":"0":"ff0000000000000001":"0" mbedtls_mpi_core_mla #247: 0x1 + 0x10000000000000000 * 0xffff = (0xffff0000000000000001, carry 0x0)/(0xffff0000000000000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"10000000000000000":"ffff":"ffff0000000000000001":"0":"ffff0000000000000001":"0" +mpi_core_mla:"1":"10000000000000000":"ffff":"ffff0000000000000001":"0":"ffff0000000000000001":"0" mbedtls_mpi_core_mla #248: 0x1 + 0x10000000000000000 * 0x10000 = (0x100000000000000000001, carry 0x0)/(0x100000000000000000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"10000000000000000":"10000":"100000000000000000001":"0":"100000000000000000001":"0" +mpi_core_mla:"1":"10000000000000000":"10000":"100000000000000000001":"0":"100000000000000000001":"0" mbedtls_mpi_core_mla #249: 0x1 + 0x10000000000000000 * 0xffffffff = (0xffffffff0000000000000001, carry 0x0)/(0xffffffff0000000000000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"10000000000000000":"ffffffff":"ffffffff0000000000000001":"0":"ffffffff0000000000000001":"0" +mpi_core_mla:"1":"10000000000000000":"ffffffff":"ffffffff0000000000000001":"0":"ffffffff0000000000000001":"0" mbedtls_mpi_core_mla #250: 0x1 + 0x10000000000000000 * 0x100000000 = (0x1, carry 0x1)/(0x1000000000000000000000001, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"10000000000000000":"100000000":"1":"1":"1000000000000000000000001":"0" +mpi_core_mla:"1":"10000000000000000":"100000000":"1":"1":"1000000000000000000000001":"0" mbedtls_mpi_core_mla #251: 0x1 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000001, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000001, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000001":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000001":"0" +mpi_core_mla:"1":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000001":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000001":"0" mbedtls_mpi_core_mla #252: 0x1 + 0x10000000000000000 * 0x8000000000000000 = (0x1, carry 0x80000000)/(0x80000000000000000000000000000001, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"10000000000000000":"8000000000000000":"1":"80000000":"80000000000000000000000000000001":"0" +mpi_core_mla:"1":"10000000000000000":"8000000000000000":"1":"80000000":"80000000000000000000000000000001":"0" mbedtls_mpi_core_mla #253: 0x1 + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000001, carry 0xffffffff)/(0xfffffffffffffffe0000000000000001, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"10000000000000000":"fffffffffffffffe":"fffffffe0000000000000001":"ffffffff":"fffffffffffffffe0000000000000001":"0" +mpi_core_mla:"1":"10000000000000000":"fffffffffffffffe":"fffffffe0000000000000001":"ffffffff":"fffffffffffffffe0000000000000001":"0" mbedtls_mpi_core_mla #254: 0x1 + 0x1234567890abcdef0 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"0":"1":"0":"1":"0" +mpi_core_mla:"1":"1234567890abcdef0":"0":"1":"0":"1":"0" mbedtls_mpi_core_mla #255: 0x1 + 0x1234567890abcdef0 * 0x3 = (0x369d0369b20369cd1, carry 0x0)/(0x369d0369b20369cd1, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"3":"369d0369b20369cd1":"0":"369d0369b20369cd1":"0" +mpi_core_mla:"1":"1234567890abcdef0":"3":"369d0369b20369cd1":"0":"369d0369b20369cd1":"0" mbedtls_mpi_core_mla #256: 0x1 + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f8a7653221, carry 0x0)/(0x120fedcb9f8a7653221, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"fe":"120fedcb9f8a7653221":"0":"120fedcb9f8a7653221":"0" +mpi_core_mla:"1":"1234567890abcdef0":"fe":"120fedcb9f8a7653221":"0":"120fedcb9f8a7653221":"0" mbedtls_mpi_core_mla #257: 0x1 + 0x1234567890abcdef0 * 0xff = (0x12222222181b2221111, carry 0x0)/(0x12222222181b2221111, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"ff":"12222222181b2221111":"0":"12222222181b2221111":"0" +mpi_core_mla:"1":"1234567890abcdef0":"ff":"12222222181b2221111":"0":"12222222181b2221111":"0" mbedtls_mpi_core_mla #258: 0x1 + 0x1234567890abcdef0 * 0xffff = (0x123444443a333d4332111, carry 0x0)/(0x123444443a333d4332111, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"ffff":"123444443a333d4332111":"0":"123444443a333d4332111":"0" +mpi_core_mla:"1":"1234567890abcdef0":"ffff":"123444443a333d4332111":"0":"123444443a333d4332111":"0" mbedtls_mpi_core_mla #259: 0x1 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdef00001, carry 0x0)/(0x1234567890abcdef00001, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"10000":"1234567890abcdef00001":"0":"1234567890abcdef00001":"0" +mpi_core_mla:"1":"1234567890abcdef0":"10000":"1234567890abcdef00001":"0":"1234567890abcdef00001":"0" mbedtls_mpi_core_mla #260: 0x1 + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777766f5432111, carry 0x1)/(0x123456787e7777766f5432111, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"ffffffff":"23456787e7777766f5432111":"1":"123456787e7777766f5432111":"0" +mpi_core_mla:"1":"1234567890abcdef0":"ffffffff":"23456787e7777766f5432111":"1":"123456787e7777766f5432111":"0" mbedtls_mpi_core_mla #261: 0x1 + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef000000001, carry 0x1)/(0x1234567890abcdef000000001, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"100000000":"234567890abcdef000000001":"1":"1234567890abcdef000000001":"0" +mpi_core_mla:"1":"1234567890abcdef0":"100000000":"234567890abcdef000000001":"1":"1234567890abcdef000000001":"0" mbedtls_mpi_core_mla #262: 0x1 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708abaf5ba911, carry 0x91107edb)/(0x91107edbd82bde76f67708abaf5ba911, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ba911":"91107edb":"91107edbd82bde76f67708abaf5ba911":"0" +mpi_core_mla:"1":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ba911":"91107edb":"91107edbd82bde76f67708abaf5ba911":"0" mbedtls_mpi_core_mla #263: 0x1 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f780000000000000001, carry 0x91a2b3c4)/(0x91a2b3c4855e6f780000000000000001, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"8000000000000000":"855e6f780000000000000001":"91a2b3c4":"91a2b3c4855e6f780000000000000001":"0" +mpi_core_mla:"1":"1234567890abcdef0":"8000000000000000":"855e6f780000000000000001":"91a2b3c4":"91a2b3c4855e6f780000000000000001":"0" mbedtls_mpi_core_mla #264: 0x1 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530edea864221, carry 0x123456789)/(0x234567890abcdeedb97530edea864221, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea864221":"123456789":"234567890abcdeedb97530edea864221":"1" +mpi_core_mla:"1":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea864221":"123456789":"234567890abcdeedb97530edea864221":"1" mbedtls_mpi_core_mla #265: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"0":"1":"0":"1":"0" +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"0":"1":"0":"1":"0" mbedtls_mpi_core_mla #266: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfcfcfcfcfb, carry 0x2)/(0xfffffffffffffffffcfcfcfcfcfcfcfb, carry 0x2) -mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfcfcfb":"2":"fffffffffffffffffcfcfcfcfcfcfcfb":"2" +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfcfcfb":"2":"fffffffffffffffffcfcfcfcfcfcfcfb":"2" mbedtls_mpi_core_mla #267: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010101010005, carry 0xfd)/(0xffffffffffffffff0101010101010005, carry 0xfd) -mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101010005":"fd":"ffffffffffffffff0101010101010005":"fd" +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101010005":"fd":"ffffffffffffffff0101010101010005":"fd" mbedtls_mpi_core_mla #268: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfffffffffffffffeffffffffffffff03, carry 0xfe)/(0xfffffffffffffffeffffffffffffff03, carry 0xfe) -mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffeffffffffffffff03":"fe":"fffffffffffffffeffffffffffffff03":"fe" +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffeffffffffffffff03":"fe":"fffffffffffffffeffffffffffffff03":"fe" mbedtls_mpi_core_mla #269: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffefeffffffffffff0103, carry 0xfffe)/(0xfffffffffffffefeffffffffffff0103, carry 0xfffe) -mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefeffffffffffff0103":"fffe":"fffffffffffffefeffffffffffff0103":"fffe" +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefeffffffffffff0103":"fffe":"fffffffffffffefeffffffffffff0103":"fffe" mbedtls_mpi_core_mla #270: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefefefe0001, carry 0xffff)/(0xfffffffffffffefefefefefefefe0001, carry 0xffff) -mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefe0001":"ffff":"fffffffffffffefefefefefefefe0001":"ffff" +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefe0001":"ffff":"fffffffffffffefefefefefefefe0001":"ffff" mbedtls_mpi_core_mla #271: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefefeffffffff01010103, carry 0xfffffffe)/(0xfffffffffefefefeffffffff01010103, carry 0xfffffffe) -mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01010103":"fffffffe":"fffffffffefefefeffffffff01010103":"fffffffe" +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01010103":"fffffffe":"fffffffffefefefeffffffff01010103":"fffffffe" mbedtls_mpi_core_mla #272: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefe00000001, carry 0xffffffff)/(0xfffffffffefefefefefefefe00000001, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000001":"ffffffff":"fffffffffefefefefefefefe00000001":"ffffffff" +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000001":"ffffffff":"fffffffffefefefefefefefe00000001":"ffffffff" mbedtls_mpi_core_mla #273: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840383028203, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840383028203, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383028203":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383028203":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383028203":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383028203":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #274: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0000000000000001, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f0000000000000001, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000001":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000000000001":"7fffffffffffffff" +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000001":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000000000001":"7fffffffffffffff" mbedtls_mpi_core_mla #275: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020202020205, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020202020205, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202020205":"fffffffffffffffd":"fefefefefefefefe0202020202020205":"fffffffffffffffd" +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202020205":"fffffffffffffffd":"fefefefefefefefe0202020202020205":"fffffffffffffffd" mbedtls_mpi_core_mla #276: 0x1 + 0x100000000000000000000000000000000 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"0":"1":"0":"1":"0" +mpi_core_mla:"1":"100000000000000000000000000000000":"0":"1":"0":"1":"0" mbedtls_mpi_core_mla #277: 0x1 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000000000000000000001, carry 0x0)/(0x300000000000000000000000000000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"3":"300000000000000000000000000000001":"0":"300000000000000000000000000000001":"0" +mpi_core_mla:"1":"100000000000000000000000000000000":"3":"300000000000000000000000000000001":"0":"300000000000000000000000000000001":"0" mbedtls_mpi_core_mla #278: 0x1 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000000000000000000001, carry 0x0)/(0xfe00000000000000000000000000000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"fe":"fe00000000000000000000000000000001":"0":"fe00000000000000000000000000000001":"0" +mpi_core_mla:"1":"100000000000000000000000000000000":"fe":"fe00000000000000000000000000000001":"0":"fe00000000000000000000000000000001":"0" mbedtls_mpi_core_mla #279: 0x1 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000000000000000000001, carry 0x0)/(0xff00000000000000000000000000000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"ff":"ff00000000000000000000000000000001":"0":"ff00000000000000000000000000000001":"0" +mpi_core_mla:"1":"100000000000000000000000000000000":"ff":"ff00000000000000000000000000000001":"0":"ff00000000000000000000000000000001":"0" mbedtls_mpi_core_mla #280: 0x1 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000000000000000000001, carry 0x0)/(0xffff00000000000000000000000000000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000000000001":"0":"ffff00000000000000000000000000000001":"0" +mpi_core_mla:"1":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000000000001":"0":"ffff00000000000000000000000000000001":"0" mbedtls_mpi_core_mla #281: 0x1 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000000000000000000001, carry 0x0)/(0x1000000000000000000000000000000000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"10000":"1000000000000000000000000000000000001":"0":"1000000000000000000000000000000000001":"0" +mpi_core_mla:"1":"100000000000000000000000000000000":"10000":"1000000000000000000000000000000000001":"0":"1000000000000000000000000000000000001":"0" mbedtls_mpi_core_mla #282: 0x1 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000000000000000000001, carry 0x0)/(0xffffffff00000000000000000000000000000001, carry 0x0) -mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000000000001":"0":"ffffffff00000000000000000000000000000001":"0" +mpi_core_mla:"1":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000000000001":"0":"ffffffff00000000000000000000000000000001":"0" mbedtls_mpi_core_mla #283: 0x1 + 0x100000000000000000000000000000000 * 0x100000000 = (0x1, carry 0x1)/(0x10000000000000000000000000000000000000001, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"100000000":"1":"1":"10000000000000000000000000000000000000001":"0" +mpi_core_mla:"1":"100000000000000000000000000000000":"100000000":"1":"1":"10000000000000000000000000000000000000001":"0" mbedtls_mpi_core_mla #284: 0x1 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000000000000000000001, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000000000000000000001, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000000000001":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000000000001":"0" +mpi_core_mla:"1":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000000000001":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000000000001":"0" mbedtls_mpi_core_mla #285: 0x1 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x1, carry 0x80000000)/(0x800000000000000000000000000000000000000000000001, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"8000000000000000":"1":"80000000":"800000000000000000000000000000000000000000000001":"0" +mpi_core_mla:"1":"100000000000000000000000000000000":"8000000000000000":"1":"80000000":"800000000000000000000000000000000000000000000001":"0" mbedtls_mpi_core_mla #286: 0x1 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000000000000000000001, carry 0xffffffff)/(0xfffffffffffffffe00000000000000000000000000000001, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000000000001":"ffffffff":"fffffffffffffffe00000000000000000000000000000001":"0" +mpi_core_mla:"1":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000000000001":"ffffffff":"fffffffffffffffe00000000000000000000000000000001":"0" mbedtls_mpi_core_mla #287: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"0":"1":"0":"1":"0" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"0":"1":"0":"1":"0" mbedtls_mpi_core_mla #288: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd1, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd1, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd1":"0":"369d0369b20369cd0369d0369b20369cd1":"0" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd1":"0":"369d0369b20369cd0369d0369b20369cd1":"0" mbedtls_mpi_core_mla #289: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a7653221, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a7653221, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653221":"0":"120fedcb9f8a76532320fedcb9f8a7653221":"0" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653221":"0":"120fedcb9f8a76532320fedcb9f8a7653221":"0" mbedtls_mpi_core_mla #290: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221111, carry 0x0)/(0x12222222181b2221122222222181b2221111, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221111":"0":"12222222181b2221122222222181b2221111":"0" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221111":"0":"12222222181b2221122222222181b2221111":"0" mbedtls_mpi_core_mla #291: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d4332111, carry 0x0)/(0x123444443a333d433334444443a333d4332111, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4332111":"0":"123444443a333d433334444443a333d4332111":"0" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4332111":"0":"123444443a333d433334444443a333d4332111":"0" mbedtls_mpi_core_mla #292: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef00001, carry 0x0)/(0x1234567890abcdef01234567890abcdef00001, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef00001":"0":"1234567890abcdef01234567890abcdef00001":"0" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef00001":"0":"1234567890abcdef01234567890abcdef00001":"0" mbedtls_mpi_core_mla #293: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777766f5432111, carry 0x12)/(0x123456787e7777767077777887e7777766f5432111, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f5432111":"12":"123456787e7777767077777887e7777766f5432111":"0" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f5432111":"12":"123456787e7777767077777887e7777766f5432111":"0" mbedtls_mpi_core_mla #294: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef000000001, carry 0x12)/(0x1234567890abcdef01234567890abcdef000000001, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef000000001":"12":"1234567890abcdef01234567890abcdef000000001":"0" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef000000001":"12":"1234567890abcdef01234567890abcdef000000001":"0" mbedtls_mpi_core_mla #295: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708abaf5ba911, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708abaf5ba911, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ba911":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ba911":"9" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ba911":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ba911":"9" mbedtls_mpi_core_mla #296: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f780000000000000001, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f780000000000000001, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000000000001":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"9" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000000000001":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"9" mbedtls_mpi_core_mla #297: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530edea864221, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530edea864221, carry 0x12) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea864221":"1234567890":"34567890abcdeedcba987667b32100edb97530edea864221":"12" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea864221":"1234567890":"34567890abcdeedcba987667b32100edb97530edea864221":"12" mbedtls_mpi_core_mla #298: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1":"0":"1":"0" +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1":"0":"1":"0" mbedtls_mpi_core_mla #299: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0x2)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0x2) -mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2" +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2" mbedtls_mpi_core_mla #300: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03, carry 0xfd)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03, carry 0xfd) -mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03":"fd":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03":"fd" +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03":"fd":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03":"fd" mbedtls_mpi_core_mla #301: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0xfe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0xfe) -mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fe" +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fe" mbedtls_mpi_core_mla #302: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002, carry 0xfffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002, carry 0xfffe) -mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"fffe" +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"fffe" mbedtls_mpi_core_mla #303: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0xffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0xffff) -mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffff" +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffff" mbedtls_mpi_core_mla #304: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002, carry 0xfffffffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002, carry 0xfffffffe) -mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"fffffffe" +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"fffffffe" mbedtls_mpi_core_mla #305: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffff" +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffff" mbedtls_mpi_core_mla #306: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #307: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001":"7fffffffffffffff" +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001":"7fffffffffffffff" mbedtls_mpi_core_mla #308: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003":"fffffffffffffffd" +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003":"fffffffffffffffd" mbedtls_mpi_core_mla #309: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1":"0":"1":"0" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1":"0":"1":"0" mbedtls_mpi_core_mla #310: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1":"0" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1":"0" mbedtls_mpi_core_mla #311: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221":"0" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221":"0" mbedtls_mpi_core_mla #312: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221111, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221111, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221111":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221111":"0" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221111":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221111":"0" mbedtls_mpi_core_mla #313: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111":"0" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111":"0" mbedtls_mpi_core_mla #314: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001":"0" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001":"0" mbedtls_mpi_core_mla #315: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111, carry 0x0) -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111":"0" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111":"0" mbedtls_mpi_core_mla #316: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001":"0" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001":"0" mbedtls_mpi_core_mla #317: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911, carry 0x911) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911":"911" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911":"911" mbedtls_mpi_core_mla #318: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001, carry 0x91a) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"91a" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"91a" mbedtls_mpi_core_mla #319: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221, carry 0x1234) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221":"1234" +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221":"1234" mbedtls_mpi_core_mla #320: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1":"0":"1":"0" +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1":"0":"1":"0" mbedtls_mpi_core_mla #321: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382, carry 0x0) -mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382":"0" +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382":"0" mbedtls_mpi_core_mla #322: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab, carry 0x0) -mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab":"0" +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab":"0" mbedtls_mpi_core_mla #323: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6, carry 0x0) -mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6":"0" +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6":"0" mbedtls_mpi_core_mla #324: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6, carry 0x0) -mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6":"0" +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6":"0" mbedtls_mpi_core_mla #325: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001, carry 0x0) -mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001":"0" +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001":"0" mbedtls_mpi_core_mla #326: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6, carry 0x4) -mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6":"4" +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6":"4" mbedtls_mpi_core_mla #327: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001, carry 0x4) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001":"4" +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001":"4" mbedtls_mpi_core_mla #328: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956, carry 0x26d473ca9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956":"26d473ca9" +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956":"26d473ca9" mbedtls_mpi_core_mla #329: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001, carry 0x26fb9683d) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001":"26fb9683d" +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001":"26fb9683d" mbedtls_mpi_core_mla #330: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab, carry 0x4df72d07b) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab":"4df72d07b" +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab":"4df72d07b" mbedtls_mpi_core_mla #331: 0xfffe + 0x0 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"0":"0":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"0":"0":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #332: 0xfffe + 0x0 * 0x3 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"0":"3":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"0":"3":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #333: 0xfffe + 0x0 * 0xfe = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"0":"fe":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"0":"fe":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #334: 0xfffe + 0x0 * 0xff = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"0":"ff":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"0":"ff":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #335: 0xfffe + 0x0 * 0xffff = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"0":"ffff":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"0":"ffff":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #336: 0xfffe + 0x0 * 0x10000 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"0":"10000":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"0":"10000":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #337: 0xfffe + 0x0 * 0xffffffff = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"0":"ffffffff":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"0":"ffffffff":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #338: 0xfffe + 0x0 * 0x100000000 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"0":"100000000":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"0":"100000000":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #339: 0xfffe + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"0":"7f7f7f7f7f7f7f7f":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"0":"7f7f7f7f7f7f7f7f":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #340: 0xfffe + 0x0 * 0x8000000000000000 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"0":"8000000000000000":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"0":"8000000000000000":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #341: 0xfffe + 0x0 * 0xfffffffffffffffe = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"0":"fffffffffffffffe":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"0":"fffffffffffffffe":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #342: 0xfffe + 0x1 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1":"0":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"1":"0":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #343: 0xfffe + 0x1 * 0x3 = (0x10001, carry 0x0)/(0x10001, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1":"3":"10001":"0":"10001":"0" +mpi_core_mla:"fffe":"1":"3":"10001":"0":"10001":"0" mbedtls_mpi_core_mla #344: 0xfffe + 0x1 * 0xfe = (0x100fc, carry 0x0)/(0x100fc, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1":"fe":"100fc":"0":"100fc":"0" +mpi_core_mla:"fffe":"1":"fe":"100fc":"0":"100fc":"0" mbedtls_mpi_core_mla #345: 0xfffe + 0x1 * 0xff = (0x100fd, carry 0x0)/(0x100fd, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1":"ff":"100fd":"0":"100fd":"0" +mpi_core_mla:"fffe":"1":"ff":"100fd":"0":"100fd":"0" mbedtls_mpi_core_mla #346: 0xfffe + 0x1 * 0xffff = (0x1fffd, carry 0x0)/(0x1fffd, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1":"ffff":"1fffd":"0":"1fffd":"0" +mpi_core_mla:"fffe":"1":"ffff":"1fffd":"0":"1fffd":"0" mbedtls_mpi_core_mla #347: 0xfffe + 0x1 * 0x10000 = (0x1fffe, carry 0x0)/(0x1fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1":"10000":"1fffe":"0":"1fffe":"0" +mpi_core_mla:"fffe":"1":"10000":"1fffe":"0":"1fffe":"0" mbedtls_mpi_core_mla #348: 0xfffe + 0x1 * 0xffffffff = (0xfffd, carry 0x1)/(0x10000fffd, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1":"ffffffff":"fffd":"1":"10000fffd":"0" +mpi_core_mla:"fffe":"1":"ffffffff":"fffd":"1":"10000fffd":"0" mbedtls_mpi_core_mla #349: 0xfffe + 0x1 * 0x100000000 = (0xfffe, carry 0x1)/(0x10000fffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"1":"100000000":"fffe":"1":"10000fffe":"0" +mpi_core_mla:"fffe":"1":"100000000":"fffe":"1":"10000fffe":"0" mbedtls_mpi_core_mla #350: 0xfffe + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f807f7d, carry 0x7f7f7f7f)/(0x7f7f7f7f7f807f7d, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"1":"7f7f7f7f7f7f7f7f":"7f807f7d":"7f7f7f7f":"7f7f7f7f7f807f7d":"0" +mpi_core_mla:"fffe":"1":"7f7f7f7f7f7f7f7f":"7f807f7d":"7f7f7f7f":"7f7f7f7f7f807f7d":"0" mbedtls_mpi_core_mla #351: 0xfffe + 0x1 * 0x8000000000000000 = (0xfffe, carry 0x80000000)/(0x800000000000fffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"1":"8000000000000000":"fffe":"80000000":"800000000000fffe":"0" +mpi_core_mla:"fffe":"1":"8000000000000000":"fffe":"80000000":"800000000000fffe":"0" mbedtls_mpi_core_mla #352: 0xfffe + 0x1 * 0xfffffffffffffffe = (0xfffc, carry 0x100000000)/(0xfffc, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"1":"fffffffffffffffe":"fffc":"100000000":"fffc":"1" +mpi_core_mla:"fffe":"1":"fffffffffffffffe":"fffc":"100000000":"fffc":"1" mbedtls_mpi_core_mla #353: 0xfffe + 0xfffe * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"fffe":"0":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"fffe":"0":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #354: 0xfffe + 0xfffe * 0x3 = (0x3fff8, carry 0x0)/(0x3fff8, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"fffe":"3":"3fff8":"0":"3fff8":"0" +mpi_core_mla:"fffe":"fffe":"3":"3fff8":"0":"3fff8":"0" mbedtls_mpi_core_mla #355: 0xfffe + 0xfffe * 0xfe = (0xfefe02, carry 0x0)/(0xfefe02, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"fffe":"fe":"fefe02":"0":"fefe02":"0" +mpi_core_mla:"fffe":"fffe":"fe":"fefe02":"0":"fefe02":"0" mbedtls_mpi_core_mla #356: 0xfffe + 0xfffe * 0xff = (0xfffe00, carry 0x0)/(0xfffe00, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"fffe":"ff":"fffe00":"0":"fffe00":"0" +mpi_core_mla:"fffe":"fffe":"ff":"fffe00":"0":"fffe00":"0" mbedtls_mpi_core_mla #357: 0xfffe + 0xfffe * 0xffff = (0xfffe0000, carry 0x0)/(0xfffe0000, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"fffe":"ffff":"fffe0000":"0":"fffe0000":"0" +mpi_core_mla:"fffe":"fffe":"ffff":"fffe0000":"0":"fffe0000":"0" mbedtls_mpi_core_mla #358: 0xfffe + 0xfffe * 0x10000 = (0xfffefffe, carry 0x0)/(0xfffefffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"fffe":"10000":"fffefffe":"0":"fffefffe":"0" +mpi_core_mla:"fffe":"fffe":"10000":"fffefffe":"0":"fffefffe":"0" mbedtls_mpi_core_mla #359: 0xfffe + 0xfffe * 0xffffffff = (0x0, carry 0xfffe)/(0xfffe00000000, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"fffe":"ffffffff":"0":"fffe":"fffe00000000":"0" +mpi_core_mla:"fffe":"fffe":"ffffffff":"0":"fffe":"fffe00000000":"0" mbedtls_mpi_core_mla #360: 0xfffe + 0xfffe * 0x100000000 = (0xfffe, carry 0xfffe)/(0xfffe0000fffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"fffe":"100000000":"fffe":"fffe":"fffe0000fffe":"0" +mpi_core_mla:"fffe":"fffe":"100000000":"fffe":"fffe":"fffe0000fffe":"0" mbedtls_mpi_core_mla #361: 0xfffe + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80810100, carry 0x7f7e80808080)/(0x8080808080810100, carry 0x7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"fffe":"7f7f7f7f7f7f7f7f":"80810100":"7f7e80808080":"8080808080810100":"7f7e" +mpi_core_mla:"fffe":"fffe":"7f7f7f7f7f7f7f7f":"80810100":"7f7e80808080":"8080808080810100":"7f7e" mbedtls_mpi_core_mla #362: 0xfffe + 0xfffe * 0x8000000000000000 = (0xfffe, carry 0x7fff00000000)/(0xfffe, carry 0x7fff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"fffe":"8000000000000000":"fffe":"7fff00000000":"fffe":"7fff" +mpi_core_mla:"fffe":"fffe":"8000000000000000":"fffe":"7fff00000000":"fffe":"7fff" mbedtls_mpi_core_mla #363: 0xfffe + 0xfffe * 0xfffffffffffffffe = (0xffff0002, carry 0xfffdffffffff)/(0xffffffffffff0002, carry 0xfffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"fffe":"fffffffffffffffe":"ffff0002":"fffdffffffff":"ffffffffffff0002":"fffd" +mpi_core_mla:"fffe":"fffe":"fffffffffffffffe":"ffff0002":"fffdffffffff":"ffffffffffff0002":"fffd" mbedtls_mpi_core_mla #364: 0xfffe + 0xffffffff * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"ffffffff":"0":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"ffffffff":"0":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #365: 0xfffe + 0xffffffff * 0x3 = (0xfffb, carry 0x3)/(0x30000fffb, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"ffffffff":"3":"fffb":"3":"30000fffb":"0" +mpi_core_mla:"fffe":"ffffffff":"3":"fffb":"3":"30000fffb":"0" mbedtls_mpi_core_mla #366: 0xfffe + 0xffffffff * 0xfe = (0xff00, carry 0xfe)/(0xfe0000ff00, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"ffffffff":"fe":"ff00":"fe":"fe0000ff00":"0" +mpi_core_mla:"fffe":"ffffffff":"fe":"ff00":"fe":"fe0000ff00":"0" mbedtls_mpi_core_mla #367: 0xfffe + 0xffffffff * 0xff = (0xfeff, carry 0xff)/(0xff0000feff, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"ffffffff":"ff":"feff":"ff":"ff0000feff":"0" +mpi_core_mla:"fffe":"ffffffff":"ff":"feff":"ff":"ff0000feff":"0" mbedtls_mpi_core_mla #368: 0xfffe + 0xffffffff * 0xffff = (0xffffffff, carry 0xfffe)/(0xfffeffffffff, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"ffffffff":"ffff":"ffffffff":"fffe":"fffeffffffff":"0" +mpi_core_mla:"fffe":"ffffffff":"ffff":"ffffffff":"fffe":"fffeffffffff":"0" mbedtls_mpi_core_mla #369: 0xfffe + 0xffffffff * 0x10000 = (0xfffffffe, carry 0xffff)/(0xfffffffffffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"ffffffff":"10000":"fffffffe":"ffff":"fffffffffffe":"0" +mpi_core_mla:"fffe":"ffffffff":"10000":"fffffffe":"ffff":"fffffffffffe":"0" mbedtls_mpi_core_mla #370: 0xfffe + 0xffffffff * 0xffffffff = (0xffff, carry 0xfffffffe)/(0xfffffffe0000ffff, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"ffffffff":"ffffffff":"ffff":"fffffffe":"fffffffe0000ffff":"0" +mpi_core_mla:"fffe":"ffffffff":"ffffffff":"ffff":"fffffffe":"fffffffe0000ffff":"0" mbedtls_mpi_core_mla #371: 0xfffe + 0xffffffff * 0x100000000 = (0xfffe, carry 0xffffffff)/(0xffffffff0000fffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"ffffffff":"100000000":"fffe":"ffffffff":"ffffffff0000fffe":"0" +mpi_core_mla:"fffe":"ffffffff":"100000000":"fffe":"ffffffff":"ffffffff0000fffe":"0" mbedtls_mpi_core_mla #372: 0xfffe + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x8081807f, carry 0x7f7f7f7effffffff)/(0xffffffff8081807f, carry 0x7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"ffffffff":"7f7f7f7f7f7f7f7f":"8081807f":"7f7f7f7effffffff":"ffffffff8081807f":"7f7f7f7e" +mpi_core_mla:"fffe":"ffffffff":"7f7f7f7f7f7f7f7f":"8081807f":"7f7f7f7effffffff":"ffffffff8081807f":"7f7f7f7e" mbedtls_mpi_core_mla #373: 0xfffe + 0xffffffff * 0x8000000000000000 = (0xfffe, carry 0x7fffffff80000000)/(0x800000000000fffe, carry 0x7fffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"ffffffff":"8000000000000000":"fffe":"7fffffff80000000":"800000000000fffe":"7fffffff" +mpi_core_mla:"fffe":"ffffffff":"8000000000000000":"fffe":"7fffffff80000000":"800000000000fffe":"7fffffff" mbedtls_mpi_core_mla #374: 0xfffe + 0xffffffff * 0xfffffffffffffffe = (0x10000, carry 0xfffffffefffffffe)/(0xfffffffe00010000, carry 0xfffffffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"ffffffff":"fffffffffffffffe":"10000":"fffffffefffffffe":"fffffffe00010000":"fffffffe" +mpi_core_mla:"fffe":"ffffffff":"fffffffffffffffe":"10000":"fffffffefffffffe":"fffffffe00010000":"fffffffe" mbedtls_mpi_core_mla #375: 0xfffe + 0x100000000 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"100000000":"0":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"100000000":"0":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #376: 0xfffe + 0x100000000 * 0x3 = (0x30000fffe, carry 0x0)/(0x30000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"100000000":"3":"30000fffe":"0":"30000fffe":"0" +mpi_core_mla:"fffe":"100000000":"3":"30000fffe":"0":"30000fffe":"0" mbedtls_mpi_core_mla #377: 0xfffe + 0x100000000 * 0xfe = (0xfe0000fffe, carry 0x0)/(0xfe0000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"100000000":"fe":"fe0000fffe":"0":"fe0000fffe":"0" +mpi_core_mla:"fffe":"100000000":"fe":"fe0000fffe":"0":"fe0000fffe":"0" mbedtls_mpi_core_mla #378: 0xfffe + 0x100000000 * 0xff = (0xff0000fffe, carry 0x0)/(0xff0000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"100000000":"ff":"ff0000fffe":"0":"ff0000fffe":"0" +mpi_core_mla:"fffe":"100000000":"ff":"ff0000fffe":"0":"ff0000fffe":"0" mbedtls_mpi_core_mla #379: 0xfffe + 0x100000000 * 0xffff = (0xffff0000fffe, carry 0x0)/(0xffff0000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"100000000":"ffff":"ffff0000fffe":"0":"ffff0000fffe":"0" +mpi_core_mla:"fffe":"100000000":"ffff":"ffff0000fffe":"0":"ffff0000fffe":"0" mbedtls_mpi_core_mla #380: 0xfffe + 0x100000000 * 0x10000 = (0x100000000fffe, carry 0x0)/(0x100000000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"100000000":"10000":"100000000fffe":"0":"100000000fffe":"0" +mpi_core_mla:"fffe":"100000000":"10000":"100000000fffe":"0":"100000000fffe":"0" mbedtls_mpi_core_mla #381: 0xfffe + 0x100000000 * 0xffffffff = (0xffffffff0000fffe, carry 0x0)/(0xffffffff0000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"100000000":"ffffffff":"ffffffff0000fffe":"0":"ffffffff0000fffe":"0" +mpi_core_mla:"fffe":"100000000":"ffffffff":"ffffffff0000fffe":"0":"ffffffff0000fffe":"0" mbedtls_mpi_core_mla #382: 0xfffe + 0x100000000 * 0x100000000 = (0xfffe, carry 0x1)/(0xfffe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"100000000":"100000000":"fffe":"1":"fffe":"1" +mpi_core_mla:"fffe":"100000000":"100000000":"fffe":"1":"fffe":"1" mbedtls_mpi_core_mla #383: 0xfffe + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000fffe, carry 0x7f7f7f7f)/(0x7f7f7f7f0000fffe, carry 0x7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000fffe":"7f7f7f7f":"7f7f7f7f0000fffe":"7f7f7f7f" +mpi_core_mla:"fffe":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000fffe":"7f7f7f7f":"7f7f7f7f0000fffe":"7f7f7f7f" mbedtls_mpi_core_mla #384: 0xfffe + 0x100000000 * 0x8000000000000000 = (0xfffe, carry 0x80000000)/(0xfffe, carry 0x80000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"100000000":"8000000000000000":"fffe":"80000000":"fffe":"80000000" +mpi_core_mla:"fffe":"100000000":"8000000000000000":"fffe":"80000000":"fffe":"80000000" mbedtls_mpi_core_mla #385: 0xfffe + 0x100000000 * 0xfffffffffffffffe = (0xfffffffe0000fffe, carry 0xffffffff)/(0xfffffffe0000fffe, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"100000000":"fffffffffffffffe":"fffffffe0000fffe":"ffffffff":"fffffffe0000fffe":"ffffffff" +mpi_core_mla:"fffe":"100000000":"fffffffffffffffe":"fffffffe0000fffe":"ffffffff":"fffffffe0000fffe":"ffffffff" mbedtls_mpi_core_mla #386: 0xfffe + 0x20000000000000 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"20000000000000":"0":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"20000000000000":"0":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #387: 0xfffe + 0x20000000000000 * 0x3 = (0x6000000000fffe, carry 0x0)/(0x6000000000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"20000000000000":"3":"6000000000fffe":"0":"6000000000fffe":"0" +mpi_core_mla:"fffe":"20000000000000":"3":"6000000000fffe":"0":"6000000000fffe":"0" mbedtls_mpi_core_mla #388: 0xfffe + 0x20000000000000 * 0xfe = (0x1fc000000000fffe, carry 0x0)/(0x1fc000000000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"20000000000000":"fe":"1fc000000000fffe":"0":"1fc000000000fffe":"0" +mpi_core_mla:"fffe":"20000000000000":"fe":"1fc000000000fffe":"0":"1fc000000000fffe":"0" mbedtls_mpi_core_mla #389: 0xfffe + 0x20000000000000 * 0xff = (0x1fe000000000fffe, carry 0x0)/(0x1fe000000000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"20000000000000":"ff":"1fe000000000fffe":"0":"1fe000000000fffe":"0" +mpi_core_mla:"fffe":"20000000000000":"ff":"1fe000000000fffe":"0":"1fe000000000fffe":"0" mbedtls_mpi_core_mla #390: 0xfffe + 0x20000000000000 * 0xffff = (0xffe000000000fffe, carry 0x1f)/(0xffe000000000fffe, carry 0x1f) -mbedtls_mpi_core_mla:"fffe":"20000000000000":"ffff":"ffe000000000fffe":"1f":"ffe000000000fffe":"1f" +mpi_core_mla:"fffe":"20000000000000":"ffff":"ffe000000000fffe":"1f":"ffe000000000fffe":"1f" mbedtls_mpi_core_mla #391: 0xfffe + 0x20000000000000 * 0x10000 = (0xfffe, carry 0x20)/(0xfffe, carry 0x20) -mbedtls_mpi_core_mla:"fffe":"20000000000000":"10000":"fffe":"20":"fffe":"20" +mpi_core_mla:"fffe":"20000000000000":"10000":"fffe":"20":"fffe":"20" mbedtls_mpi_core_mla #392: 0xfffe + 0x20000000000000 * 0xffffffff = (0xffe000000000fffe, carry 0x1fffff)/(0xffe000000000fffe, carry 0x1fffff) -mbedtls_mpi_core_mla:"fffe":"20000000000000":"ffffffff":"ffe000000000fffe":"1fffff":"ffe000000000fffe":"1fffff" +mpi_core_mla:"fffe":"20000000000000":"ffffffff":"ffe000000000fffe":"1fffff":"ffe000000000fffe":"1fffff" mbedtls_mpi_core_mla #393: 0xfffe + 0x20000000000000 * 0x100000000 = (0xfffe, carry 0x200000)/(0xfffe, carry 0x200000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"20000000000000":"100000000":"fffe":"200000":"fffe":"200000" +mpi_core_mla:"fffe":"20000000000000":"100000000":"fffe":"200000":"fffe":"200000" mbedtls_mpi_core_mla #394: 0xfffe + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe000000000fffe, carry 0xfefefefefefef)/(0xefe000000000fffe, carry 0xfefefefefefef) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"20000000000000":"7f7f7f7f7f7f7f7f":"efe000000000fffe":"fefefefefefef":"efe000000000fffe":"fefefefefefef" +mpi_core_mla:"fffe":"20000000000000":"7f7f7f7f7f7f7f7f":"efe000000000fffe":"fefefefefefef":"efe000000000fffe":"fefefefefefef" mbedtls_mpi_core_mla #395: 0xfffe + 0x20000000000000 * 0x8000000000000000 = (0xfffe, carry 0x10000000000000)/(0xfffe, carry 0x10000000000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"20000000000000":"8000000000000000":"fffe":"10000000000000":"fffe":"10000000000000" +mpi_core_mla:"fffe":"20000000000000":"8000000000000000":"fffe":"10000000000000":"fffe":"10000000000000" mbedtls_mpi_core_mla #396: 0xfffe + 0x20000000000000 * 0xfffffffffffffffe = (0xffc000000000fffe, carry 0x1fffffffffffff)/(0xffc000000000fffe, carry 0x1fffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"20000000000000":"fffffffffffffffe":"ffc000000000fffe":"1fffffffffffff":"ffc000000000fffe":"1fffffffffffff" +mpi_core_mla:"fffe":"20000000000000":"fffffffffffffffe":"ffc000000000fffe":"1fffffffffffff":"ffc000000000fffe":"1fffffffffffff" mbedtls_mpi_core_mla #397: 0xfffe + 0xffffffffffffffff * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"0":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"ffffffffffffffff":"0":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #398: 0xfffe + 0xffffffffffffffff * 0x3 = (0xfffb, carry 0x3)/(0xfffb, carry 0x3) -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"3":"fffb":"3":"fffb":"3" +mpi_core_mla:"fffe":"ffffffffffffffff":"3":"fffb":"3":"fffb":"3" mbedtls_mpi_core_mla #399: 0xfffe + 0xffffffffffffffff * 0xfe = (0xff00, carry 0xfe)/(0xff00, carry 0xfe) -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"fe":"ff00":"fe":"ff00":"fe" +mpi_core_mla:"fffe":"ffffffffffffffff":"fe":"ff00":"fe":"ff00":"fe" mbedtls_mpi_core_mla #400: 0xfffe + 0xffffffffffffffff * 0xff = (0xfeff, carry 0xff)/(0xfeff, carry 0xff) -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"ff":"feff":"ff":"feff":"ff" +mpi_core_mla:"fffe":"ffffffffffffffff":"ff":"feff":"ff":"feff":"ff" mbedtls_mpi_core_mla #401: 0xfffe + 0xffffffffffffffff * 0xffff = (0xffffffffffffffff, carry 0xfffe)/(0xffffffffffffffff, carry 0xfffe) -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"ffff":"ffffffffffffffff":"fffe":"ffffffffffffffff":"fffe" +mpi_core_mla:"fffe":"ffffffffffffffff":"ffff":"ffffffffffffffff":"fffe":"ffffffffffffffff":"fffe" mbedtls_mpi_core_mla #402: 0xfffe + 0xffffffffffffffff * 0x10000 = (0xfffffffffffffffe, carry 0xffff)/(0xfffffffffffffffe, carry 0xffff) -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"10000":"fffffffffffffffe":"ffff":"fffffffffffffffe":"ffff" +mpi_core_mla:"fffe":"ffffffffffffffff":"10000":"fffffffffffffffe":"ffff":"fffffffffffffffe":"ffff" mbedtls_mpi_core_mla #403: 0xfffe + 0xffffffffffffffff * 0xffffffff = (0xffffffff0000ffff, carry 0xfffffffe)/(0xffffffff0000ffff, carry 0xfffffffe) -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"ffffffff":"ffffffff0000ffff":"fffffffe":"ffffffff0000ffff":"fffffffe" +mpi_core_mla:"fffe":"ffffffffffffffff":"ffffffff":"ffffffff0000ffff":"fffffffe":"ffffffff0000ffff":"fffffffe" mbedtls_mpi_core_mla #404: 0xfffe + 0xffffffffffffffff * 0x100000000 = (0xffffffff0000fffe, carry 0xffffffff)/(0xffffffff0000fffe, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"100000000":"ffffffff0000fffe":"ffffffff":"ffffffff0000fffe":"ffffffff" +mpi_core_mla:"fffe":"ffffffffffffffff":"100000000":"ffffffff0000fffe":"ffffffff":"ffffffff0000fffe":"ffffffff" mbedtls_mpi_core_mla #405: 0xfffe + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x808080808081807f, carry 0x7f7f7f7f7f7f7f7e)/(0x808080808081807f, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"808080808081807f":"7f7f7f7f7f7f7f7e":"808080808081807f":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"fffe":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"808080808081807f":"7f7f7f7f7f7f7f7e":"808080808081807f":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #406: 0xfffe + 0xffffffffffffffff * 0x8000000000000000 = (0x800000000000fffe, carry 0x7fffffffffffffff)/(0x800000000000fffe, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"8000000000000000":"800000000000fffe":"7fffffffffffffff":"800000000000fffe":"7fffffffffffffff" +mpi_core_mla:"fffe":"ffffffffffffffff":"8000000000000000":"800000000000fffe":"7fffffffffffffff":"800000000000fffe":"7fffffffffffffff" mbedtls_mpi_core_mla #407: 0xfffe + 0xffffffffffffffff * 0xfffffffffffffffe = (0x10000, carry 0xfffffffffffffffd)/(0x10000, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffff":"fffffffffffffffe":"10000":"fffffffffffffffd":"10000":"fffffffffffffffd" +mpi_core_mla:"fffe":"ffffffffffffffff":"fffffffffffffffe":"10000":"fffffffffffffffd":"10000":"fffffffffffffffd" mbedtls_mpi_core_mla #408: 0xfffe + 0x10000000000000000 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"10000000000000000":"0":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"10000000000000000":"0":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #409: 0xfffe + 0x10000000000000000 * 0x3 = (0x3000000000000fffe, carry 0x0)/(0x3000000000000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"10000000000000000":"3":"3000000000000fffe":"0":"3000000000000fffe":"0" +mpi_core_mla:"fffe":"10000000000000000":"3":"3000000000000fffe":"0":"3000000000000fffe":"0" mbedtls_mpi_core_mla #410: 0xfffe + 0x10000000000000000 * 0xfe = (0xfe000000000000fffe, carry 0x0)/(0xfe000000000000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"10000000000000000":"fe":"fe000000000000fffe":"0":"fe000000000000fffe":"0" +mpi_core_mla:"fffe":"10000000000000000":"fe":"fe000000000000fffe":"0":"fe000000000000fffe":"0" mbedtls_mpi_core_mla #411: 0xfffe + 0x10000000000000000 * 0xff = (0xff000000000000fffe, carry 0x0)/(0xff000000000000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"10000000000000000":"ff":"ff000000000000fffe":"0":"ff000000000000fffe":"0" +mpi_core_mla:"fffe":"10000000000000000":"ff":"ff000000000000fffe":"0":"ff000000000000fffe":"0" mbedtls_mpi_core_mla #412: 0xfffe + 0x10000000000000000 * 0xffff = (0xffff000000000000fffe, carry 0x0)/(0xffff000000000000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"10000000000000000":"ffff":"ffff000000000000fffe":"0":"ffff000000000000fffe":"0" +mpi_core_mla:"fffe":"10000000000000000":"ffff":"ffff000000000000fffe":"0":"ffff000000000000fffe":"0" mbedtls_mpi_core_mla #413: 0xfffe + 0x10000000000000000 * 0x10000 = (0x10000000000000000fffe, carry 0x0)/(0x10000000000000000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"10000000000000000":"10000":"10000000000000000fffe":"0":"10000000000000000fffe":"0" +mpi_core_mla:"fffe":"10000000000000000":"10000":"10000000000000000fffe":"0":"10000000000000000fffe":"0" mbedtls_mpi_core_mla #414: 0xfffe + 0x10000000000000000 * 0xffffffff = (0xffffffff000000000000fffe, carry 0x0)/(0xffffffff000000000000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"10000000000000000":"ffffffff":"ffffffff000000000000fffe":"0":"ffffffff000000000000fffe":"0" +mpi_core_mla:"fffe":"10000000000000000":"ffffffff":"ffffffff000000000000fffe":"0":"ffffffff000000000000fffe":"0" mbedtls_mpi_core_mla #415: 0xfffe + 0x10000000000000000 * 0x100000000 = (0xfffe, carry 0x1)/(0x100000000000000000000fffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"10000000000000000":"100000000":"fffe":"1":"100000000000000000000fffe":"0" +mpi_core_mla:"fffe":"10000000000000000":"100000000":"fffe":"1":"100000000000000000000fffe":"0" mbedtls_mpi_core_mla #416: 0xfffe + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f000000000000fffe, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f000000000000fffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f000000000000fffe":"7f7f7f7f":"7f7f7f7f7f7f7f7f000000000000fffe":"0" +mpi_core_mla:"fffe":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f000000000000fffe":"7f7f7f7f":"7f7f7f7f7f7f7f7f000000000000fffe":"0" mbedtls_mpi_core_mla #417: 0xfffe + 0x10000000000000000 * 0x8000000000000000 = (0xfffe, carry 0x80000000)/(0x8000000000000000000000000000fffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"10000000000000000":"8000000000000000":"fffe":"80000000":"8000000000000000000000000000fffe":"0" +mpi_core_mla:"fffe":"10000000000000000":"8000000000000000":"fffe":"80000000":"8000000000000000000000000000fffe":"0" mbedtls_mpi_core_mla #418: 0xfffe + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe000000000000fffe, carry 0xffffffff)/(0xfffffffffffffffe000000000000fffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"10000000000000000":"fffffffffffffffe":"fffffffe000000000000fffe":"ffffffff":"fffffffffffffffe000000000000fffe":"0" +mpi_core_mla:"fffe":"10000000000000000":"fffffffffffffffe":"fffffffe000000000000fffe":"ffffffff":"fffffffffffffffe000000000000fffe":"0" mbedtls_mpi_core_mla #419: 0xfffe + 0x1234567890abcdef0 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"0":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"1234567890abcdef0":"0":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #420: 0xfffe + 0x1234567890abcdef0 * 0x3 = (0x369d0369b20379cce, carry 0x0)/(0x369d0369b20379cce, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"3":"369d0369b20379cce":"0":"369d0369b20379cce":"0" +mpi_core_mla:"fffe":"1234567890abcdef0":"3":"369d0369b20379cce":"0":"369d0369b20379cce":"0" mbedtls_mpi_core_mla #421: 0xfffe + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f8a766321e, carry 0x0)/(0x120fedcb9f8a766321e, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"fe":"120fedcb9f8a766321e":"0":"120fedcb9f8a766321e":"0" +mpi_core_mla:"fffe":"1234567890abcdef0":"fe":"120fedcb9f8a766321e":"0":"120fedcb9f8a766321e":"0" mbedtls_mpi_core_mla #422: 0xfffe + 0x1234567890abcdef0 * 0xff = (0x12222222181b223110e, carry 0x0)/(0x12222222181b223110e, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"ff":"12222222181b223110e":"0":"12222222181b223110e":"0" +mpi_core_mla:"fffe":"1234567890abcdef0":"ff":"12222222181b223110e":"0":"12222222181b223110e":"0" mbedtls_mpi_core_mla #423: 0xfffe + 0x1234567890abcdef0 * 0xffff = (0x123444443a333d434210e, carry 0x0)/(0x123444443a333d434210e, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"ffff":"123444443a333d434210e":"0":"123444443a333d434210e":"0" +mpi_core_mla:"fffe":"1234567890abcdef0":"ffff":"123444443a333d434210e":"0":"123444443a333d434210e":"0" mbedtls_mpi_core_mla #424: 0xfffe + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdef0fffe, carry 0x0)/(0x1234567890abcdef0fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"10000":"1234567890abcdef0fffe":"0":"1234567890abcdef0fffe":"0" +mpi_core_mla:"fffe":"1234567890abcdef0":"10000":"1234567890abcdef0fffe":"0":"1234567890abcdef0fffe":"0" mbedtls_mpi_core_mla #425: 0xfffe + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777766f544210e, carry 0x1)/(0x123456787e7777766f544210e, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"ffffffff":"23456787e7777766f544210e":"1":"123456787e7777766f544210e":"0" +mpi_core_mla:"fffe":"1234567890abcdef0":"ffffffff":"23456787e7777766f544210e":"1":"123456787e7777766f544210e":"0" mbedtls_mpi_core_mla #426: 0xfffe + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef00000fffe, carry 0x1)/(0x1234567890abcdef00000fffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"100000000":"234567890abcdef00000fffe":"1":"1234567890abcdef00000fffe":"0" +mpi_core_mla:"fffe":"1234567890abcdef0":"100000000":"234567890abcdef00000fffe":"1":"1234567890abcdef00000fffe":"0" mbedtls_mpi_core_mla #427: 0xfffe + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708abaf5ca90e, carry 0x91107edb)/(0x91107edbd82bde76f67708abaf5ca90e, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ca90e":"91107edb":"91107edbd82bde76f67708abaf5ca90e":"0" +mpi_core_mla:"fffe":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ca90e":"91107edb":"91107edbd82bde76f67708abaf5ca90e":"0" mbedtls_mpi_core_mla #428: 0xfffe + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f78000000000000fffe, carry 0x91a2b3c4)/(0x91a2b3c4855e6f78000000000000fffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"8000000000000000":"855e6f78000000000000fffe":"91a2b3c4":"91a2b3c4855e6f78000000000000fffe":"0" +mpi_core_mla:"fffe":"1234567890abcdef0":"8000000000000000":"855e6f78000000000000fffe":"91a2b3c4":"91a2b3c4855e6f78000000000000fffe":"0" mbedtls_mpi_core_mla #429: 0xfffe + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530edea87421e, carry 0x123456789)/(0x234567890abcdeedb97530edea87421e, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea87421e":"123456789":"234567890abcdeedb97530edea87421e":"1" +mpi_core_mla:"fffe":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea87421e":"123456789":"234567890abcdeedb97530edea87421e":"1" mbedtls_mpi_core_mla #430: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"0":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"0":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #431: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfcfcfdfcf8, carry 0x2)/(0xfffffffffffffffffcfcfcfcfcfdfcf8, carry 0x2) -mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfdfcf8":"2":"fffffffffffffffffcfcfcfcfcfdfcf8":"2" +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfdfcf8":"2":"fffffffffffffffffcfcfcfcfcfdfcf8":"2" mbedtls_mpi_core_mla #432: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010101020002, carry 0xfd)/(0xffffffffffffffff0101010101020002, carry 0xfd) -mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101020002":"fd":"ffffffffffffffff0101010101020002":"fd" +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101020002":"fd":"ffffffffffffffff0101010101020002":"fd" mbedtls_mpi_core_mla #433: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffff000000000000ff00, carry 0xfe)/(0xffffffffffffffff000000000000ff00, carry 0xfe) -mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff000000000000ff00":"fe":"ffffffffffffffff000000000000ff00":"fe" +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff000000000000ff00":"fe":"ffffffffffffffff000000000000ff00":"fe" mbedtls_mpi_core_mla #434: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeff0000000000000100, carry 0xfffe)/(0xfffffffffffffeff0000000000000100, carry 0xfffe) -mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff0000000000000100":"fffe":"fffffffffffffeff0000000000000100":"fffe" +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff0000000000000100":"fffe":"fffffffffffffeff0000000000000100":"fffe" mbedtls_mpi_core_mla #435: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefefefefffe, carry 0xffff)/(0xfffffffffffffefefefefefefefefffe, carry 0xffff) -mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefefffe":"ffff":"fffffffffffffefefefefefefefefffe":"ffff" +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefefffe":"ffff":"fffffffffffffefefefefefefefefffe":"ffff" mbedtls_mpi_core_mla #436: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefefeffffffff01020100, carry 0xfffffffe)/(0xfffffffffefefefeffffffff01020100, carry 0xfffffffe) -mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01020100":"fffffffe":"fffffffffefefefeffffffff01020100":"fffffffe" +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01020100":"fffffffe":"fffffffffefefefeffffffff01020100":"fffffffe" mbedtls_mpi_core_mla #437: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefe0000fffe, carry 0xffffffff)/(0xfffffffffefefefefefefefe0000fffe, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe0000fffe":"ffffffff":"fffffffffefefefefefefefe0000fffe":"ffffffff" +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe0000fffe":"ffffffff":"fffffffffefefefefefefefe0000fffe":"ffffffff" mbedtls_mpi_core_mla #438: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840383038200, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840383038200, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383038200":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383038200":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383038200":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383038200":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #439: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f000000000000fffe, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f000000000000fffe, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f000000000000fffe":"7fffffffffffffff":"ff7f7f7f7f7f7f7f000000000000fffe":"7fffffffffffffff" +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f000000000000fffe":"7fffffffffffffff":"ff7f7f7f7f7f7f7f000000000000fffe":"7fffffffffffffff" mbedtls_mpi_core_mla #440: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020202030202, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020202030202, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202030202":"fffffffffffffffd":"fefefefefefefefe0202020202030202":"fffffffffffffffd" +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202030202":"fffffffffffffffd":"fefefefefefefefe0202020202030202":"fffffffffffffffd" mbedtls_mpi_core_mla #441: 0xfffe + 0x100000000000000000000000000000000 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"0":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"100000000000000000000000000000000":"0":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #442: 0xfffe + 0x100000000000000000000000000000000 * 0x3 = (0x30000000000000000000000000000fffe, carry 0x0)/(0x30000000000000000000000000000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"3":"30000000000000000000000000000fffe":"0":"30000000000000000000000000000fffe":"0" +mpi_core_mla:"fffe":"100000000000000000000000000000000":"3":"30000000000000000000000000000fffe":"0":"30000000000000000000000000000fffe":"0" mbedtls_mpi_core_mla #443: 0xfffe + 0x100000000000000000000000000000000 * 0xfe = (0xfe0000000000000000000000000000fffe, carry 0x0)/(0xfe0000000000000000000000000000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"fe":"fe0000000000000000000000000000fffe":"0":"fe0000000000000000000000000000fffe":"0" +mpi_core_mla:"fffe":"100000000000000000000000000000000":"fe":"fe0000000000000000000000000000fffe":"0":"fe0000000000000000000000000000fffe":"0" mbedtls_mpi_core_mla #444: 0xfffe + 0x100000000000000000000000000000000 * 0xff = (0xff0000000000000000000000000000fffe, carry 0x0)/(0xff0000000000000000000000000000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"ff":"ff0000000000000000000000000000fffe":"0":"ff0000000000000000000000000000fffe":"0" +mpi_core_mla:"fffe":"100000000000000000000000000000000":"ff":"ff0000000000000000000000000000fffe":"0":"ff0000000000000000000000000000fffe":"0" mbedtls_mpi_core_mla #445: 0xfffe + 0x100000000000000000000000000000000 * 0xffff = (0xffff0000000000000000000000000000fffe, carry 0x0)/(0xffff0000000000000000000000000000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"ffff":"ffff0000000000000000000000000000fffe":"0":"ffff0000000000000000000000000000fffe":"0" +mpi_core_mla:"fffe":"100000000000000000000000000000000":"ffff":"ffff0000000000000000000000000000fffe":"0":"ffff0000000000000000000000000000fffe":"0" mbedtls_mpi_core_mla #446: 0xfffe + 0x100000000000000000000000000000000 * 0x10000 = (0x100000000000000000000000000000000fffe, carry 0x0)/(0x100000000000000000000000000000000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"10000":"100000000000000000000000000000000fffe":"0":"100000000000000000000000000000000fffe":"0" +mpi_core_mla:"fffe":"100000000000000000000000000000000":"10000":"100000000000000000000000000000000fffe":"0":"100000000000000000000000000000000fffe":"0" mbedtls_mpi_core_mla #447: 0xfffe + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff0000000000000000000000000000fffe, carry 0x0)/(0xffffffff0000000000000000000000000000fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000000000000000000fffe":"0":"ffffffff0000000000000000000000000000fffe":"0" +mpi_core_mla:"fffe":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000000000000000000fffe":"0":"ffffffff0000000000000000000000000000fffe":"0" mbedtls_mpi_core_mla #448: 0xfffe + 0x100000000000000000000000000000000 * 0x100000000 = (0xfffe, carry 0x1)/(0x1000000000000000000000000000000000000fffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"100000000":"fffe":"1":"1000000000000000000000000000000000000fffe":"0" +mpi_core_mla:"fffe":"100000000000000000000000000000000":"100000000":"fffe":"1":"1000000000000000000000000000000000000fffe":"0" mbedtls_mpi_core_mla #449: 0xfffe + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000000000000000000fffe, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000000000000000000fffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000000000000000fffe":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000000000000000fffe":"0" +mpi_core_mla:"fffe":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000000000000000fffe":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000000000000000fffe":"0" mbedtls_mpi_core_mla #450: 0xfffe + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0xfffe, carry 0x80000000)/(0x80000000000000000000000000000000000000000000fffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"8000000000000000":"fffe":"80000000":"80000000000000000000000000000000000000000000fffe":"0" +mpi_core_mla:"fffe":"100000000000000000000000000000000":"8000000000000000":"fffe":"80000000":"80000000000000000000000000000000000000000000fffe":"0" mbedtls_mpi_core_mla #451: 0xfffe + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000000000000000000fffe, carry 0xffffffff)/(0xfffffffffffffffe0000000000000000000000000000fffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000000000000000000fffe":"ffffffff":"fffffffffffffffe0000000000000000000000000000fffe":"0" +mpi_core_mla:"fffe":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000000000000000000fffe":"ffffffff":"fffffffffffffffe0000000000000000000000000000fffe":"0" mbedtls_mpi_core_mla #452: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"0":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"0":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #453: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20379cce, carry 0x0)/(0x369d0369b20369cd0369d0369b20379cce, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20379cce":"0":"369d0369b20369cd0369d0369b20379cce":"0" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20379cce":"0":"369d0369b20369cd0369d0369b20379cce":"0" mbedtls_mpi_core_mla #454: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a766321e, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a766321e, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a766321e":"0":"120fedcb9f8a76532320fedcb9f8a766321e":"0" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a766321e":"0":"120fedcb9f8a76532320fedcb9f8a766321e":"0" mbedtls_mpi_core_mla #455: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b223110e, carry 0x0)/(0x12222222181b2221122222222181b223110e, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b223110e":"0":"12222222181b2221122222222181b223110e":"0" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b223110e":"0":"12222222181b2221122222222181b223110e":"0" mbedtls_mpi_core_mla #456: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d434210e, carry 0x0)/(0x123444443a333d433334444443a333d434210e, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d434210e":"0":"123444443a333d433334444443a333d434210e":"0" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d434210e":"0":"123444443a333d433334444443a333d434210e":"0" mbedtls_mpi_core_mla #457: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef0fffe, carry 0x0)/(0x1234567890abcdef01234567890abcdef0fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef0fffe":"0":"1234567890abcdef01234567890abcdef0fffe":"0" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef0fffe":"0":"1234567890abcdef01234567890abcdef0fffe":"0" mbedtls_mpi_core_mla #458: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777766f544210e, carry 0x12)/(0x123456787e7777767077777887e7777766f544210e, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f544210e":"12":"123456787e7777767077777887e7777766f544210e":"0" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f544210e":"12":"123456787e7777767077777887e7777766f544210e":"0" mbedtls_mpi_core_mla #459: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef00000fffe, carry 0x12)/(0x1234567890abcdef01234567890abcdef00000fffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef00000fffe":"12":"1234567890abcdef01234567890abcdef00000fffe":"0" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef00000fffe":"12":"1234567890abcdef01234567890abcdef00000fffe":"0" mbedtls_mpi_core_mla #460: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708abaf5ca90e, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708abaf5ca90e, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ca90e":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ca90e":"9" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ca90e":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ca90e":"9" mbedtls_mpi_core_mla #461: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f78000000000000fffe, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f78000000000000fffe":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"9" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f78000000000000fffe":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"9" mbedtls_mpi_core_mla #462: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530edea87421e, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530edea87421e, carry 0x12) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea87421e":"1234567890":"34567890abcdeedcba987667b32100edb97530edea87421e":"12" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea87421e":"1234567890":"34567890abcdeedcba987667b32100edb97530edea87421e":"12" mbedtls_mpi_core_mla #463: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #464: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffb, carry 0x3)/(0xfffb, carry 0x3) -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffb":"3":"fffb":"3" +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffb":"3":"fffb":"3" mbedtls_mpi_core_mla #465: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xff00, carry 0xfe)/(0xff00, carry 0xfe) -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ff00":"fe":"ff00":"fe" +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ff00":"fe":"ff00":"fe" mbedtls_mpi_core_mla #466: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xfeff, carry 0xff)/(0xfeff, carry 0xff) -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"feff":"ff":"feff":"ff" +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"feff":"ff":"feff":"ff" mbedtls_mpi_core_mla #467: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0xfffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0xfffe) -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe" +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe" mbedtls_mpi_core_mla #468: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0xffff)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0xffff) -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff" +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff" mbedtls_mpi_core_mla #469: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff, carry 0xfffffffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff, carry 0xfffffffe) -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff":"fffffffe" +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff":"fffffffe" mbedtls_mpi_core_mla #470: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe":"ffffffff" +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe":"ffffffff" mbedtls_mpi_core_mla #471: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #472: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe":"7fffffffffffffff" +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe":"7fffffffffffffff" mbedtls_mpi_core_mla #473: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000":"fffffffffffffffd" +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000":"fffffffffffffffd" mbedtls_mpi_core_mla #474: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #475: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce":"0" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce":"0" mbedtls_mpi_core_mla #476: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e":"0" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e":"0" mbedtls_mpi_core_mla #477: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222181b223110e, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222181b223110e, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b223110e":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b223110e":"0" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b223110e":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b223110e":"0" mbedtls_mpi_core_mla #478: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e":"0" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e":"0" mbedtls_mpi_core_mla #479: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe":"0" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe":"0" mbedtls_mpi_core_mla #480: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e":"0" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e":"0" mbedtls_mpi_core_mla #481: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe":"0" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe":"0" mbedtls_mpi_core_mla #482: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e, carry 0x911) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e":"911" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e":"911" mbedtls_mpi_core_mla #483: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe, carry 0x91a) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"91a" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"91a" mbedtls_mpi_core_mla #484: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e, carry 0x1234) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e":"1234" +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e":"1234" mbedtls_mpi_core_mla #485: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffe":"0":"fffe":"0" +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffe":"0":"fffe":"0" mbedtls_mpi_core_mla #486: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f":"0" +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f":"0" mbedtls_mpi_core_mla #487: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8":"0" +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8":"0" mbedtls_mpi_core_mla #488: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3":"0" +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3":"0" mbedtls_mpi_core_mla #489: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3":"0" +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3":"0" mbedtls_mpi_core_mla #490: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe, carry 0x0) -mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe":"0" +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe":"0" mbedtls_mpi_core_mla #491: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3, carry 0x4) -mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3":"4" +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3":"4" mbedtls_mpi_core_mla #492: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe, carry 0x4) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe":"4" +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe":"4" mbedtls_mpi_core_mla #493: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953, carry 0x26d473ca9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953":"26d473ca9" +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953":"26d473ca9" mbedtls_mpi_core_mla #494: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe, carry 0x26fb9683d) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe":"26fb9683d" +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe":"26fb9683d" mbedtls_mpi_core_mla #495: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8, carry 0x4df72d07b) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8":"4df72d07b" +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8":"4df72d07b" mbedtls_mpi_core_mla #496: 0xffffffff + 0x0 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"0":"0":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"0":"0":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #497: 0xffffffff + 0x0 * 0x3 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"0":"3":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"0":"3":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #498: 0xffffffff + 0x0 * 0xfe = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"0":"fe":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"0":"fe":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #499: 0xffffffff + 0x0 * 0xff = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"0":"ff":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"0":"ff":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #500: 0xffffffff + 0x0 * 0xffff = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"0":"ffff":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"0":"ffff":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #501: 0xffffffff + 0x0 * 0x10000 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"0":"10000":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"0":"10000":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #502: 0xffffffff + 0x0 * 0xffffffff = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"0":"ffffffff":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"0":"ffffffff":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #503: 0xffffffff + 0x0 * 0x100000000 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"0":"100000000":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"0":"100000000":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #504: 0xffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #505: 0xffffffff + 0x0 * 0x8000000000000000 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"0":"8000000000000000":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"0":"8000000000000000":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #506: 0xffffffff + 0x0 * 0xfffffffffffffffe = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"0":"fffffffffffffffe":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"0":"fffffffffffffffe":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #507: 0xffffffff + 0x1 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1":"0":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"1":"0":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #508: 0xffffffff + 0x1 * 0x3 = (0x2, carry 0x1)/(0x100000002, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1":"3":"2":"1":"100000002":"0" +mpi_core_mla:"ffffffff":"1":"3":"2":"1":"100000002":"0" mbedtls_mpi_core_mla #509: 0xffffffff + 0x1 * 0xfe = (0xfd, carry 0x1)/(0x1000000fd, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1":"fe":"fd":"1":"1000000fd":"0" +mpi_core_mla:"ffffffff":"1":"fe":"fd":"1":"1000000fd":"0" mbedtls_mpi_core_mla #510: 0xffffffff + 0x1 * 0xff = (0xfe, carry 0x1)/(0x1000000fe, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1":"ff":"fe":"1":"1000000fe":"0" +mpi_core_mla:"ffffffff":"1":"ff":"fe":"1":"1000000fe":"0" mbedtls_mpi_core_mla #511: 0xffffffff + 0x1 * 0xffff = (0xfffe, carry 0x1)/(0x10000fffe, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1":"ffff":"fffe":"1":"10000fffe":"0" +mpi_core_mla:"ffffffff":"1":"ffff":"fffe":"1":"10000fffe":"0" mbedtls_mpi_core_mla #512: 0xffffffff + 0x1 * 0x10000 = (0xffff, carry 0x1)/(0x10000ffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1":"10000":"ffff":"1":"10000ffff":"0" +mpi_core_mla:"ffffffff":"1":"10000":"ffff":"1":"10000ffff":"0" mbedtls_mpi_core_mla #513: 0xffffffff + 0x1 * 0xffffffff = (0xfffffffe, carry 0x1)/(0x1fffffffe, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1":"ffffffff":"fffffffe":"1":"1fffffffe":"0" +mpi_core_mla:"ffffffff":"1":"ffffffff":"fffffffe":"1":"1fffffffe":"0" mbedtls_mpi_core_mla #514: 0xffffffff + 0x1 * 0x100000000 = (0xffffffff, carry 0x1)/(0x1ffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"1":"100000000":"ffffffff":"1":"1ffffffff":"0" +mpi_core_mla:"ffffffff":"1":"100000000":"ffffffff":"1":"1ffffffff":"0" mbedtls_mpi_core_mla #515: 0xffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7e, carry 0x7f7f7f80)/(0x7f7f7f807f7f7f7e, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7e":"7f7f7f80":"7f7f7f807f7f7f7e":"0" +mpi_core_mla:"ffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7e":"7f7f7f80":"7f7f7f807f7f7f7e":"0" mbedtls_mpi_core_mla #516: 0xffffffff + 0x1 * 0x8000000000000000 = (0xffffffff, carry 0x80000000)/(0x80000000ffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"1":"8000000000000000":"ffffffff":"80000000":"80000000ffffffff":"0" +mpi_core_mla:"ffffffff":"1":"8000000000000000":"ffffffff":"80000000":"80000000ffffffff":"0" mbedtls_mpi_core_mla #517: 0xffffffff + 0x1 * 0xfffffffffffffffe = (0xfffffffd, carry 0x100000000)/(0xfffffffd, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"1":"fffffffffffffffe":"fffffffd":"100000000":"fffffffd":"1" +mpi_core_mla:"ffffffff":"1":"fffffffffffffffe":"fffffffd":"100000000":"fffffffd":"1" mbedtls_mpi_core_mla #518: 0xffffffff + 0xfffe * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"fffe":"0":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"fffe":"0":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #519: 0xffffffff + 0xfffe * 0x3 = (0x2fff9, carry 0x1)/(0x10002fff9, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"fffe":"3":"2fff9":"1":"10002fff9":"0" +mpi_core_mla:"ffffffff":"fffe":"3":"2fff9":"1":"10002fff9":"0" mbedtls_mpi_core_mla #520: 0xffffffff + 0xfffe * 0xfe = (0xfdfe03, carry 0x1)/(0x100fdfe03, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"fffe":"fe":"fdfe03":"1":"100fdfe03":"0" +mpi_core_mla:"ffffffff":"fffe":"fe":"fdfe03":"1":"100fdfe03":"0" mbedtls_mpi_core_mla #521: 0xffffffff + 0xfffe * 0xff = (0xfefe01, carry 0x1)/(0x100fefe01, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"fffe":"ff":"fefe01":"1":"100fefe01":"0" +mpi_core_mla:"ffffffff":"fffe":"ff":"fefe01":"1":"100fefe01":"0" mbedtls_mpi_core_mla #522: 0xffffffff + 0xfffe * 0xffff = (0xfffd0001, carry 0x1)/(0x1fffd0001, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"fffe":"ffff":"fffd0001":"1":"1fffd0001":"0" +mpi_core_mla:"ffffffff":"fffe":"ffff":"fffd0001":"1":"1fffd0001":"0" mbedtls_mpi_core_mla #523: 0xffffffff + 0xfffe * 0x10000 = (0xfffdffff, carry 0x1)/(0x1fffdffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"fffe":"10000":"fffdffff":"1":"1fffdffff":"0" +mpi_core_mla:"ffffffff":"fffe":"10000":"fffdffff":"1":"1fffdffff":"0" mbedtls_mpi_core_mla #524: 0xffffffff + 0xfffe * 0xffffffff = (0xffff0001, carry 0xfffe)/(0xfffeffff0001, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"fffe":"ffffffff":"ffff0001":"fffe":"fffeffff0001":"0" +mpi_core_mla:"ffffffff":"fffe":"ffffffff":"ffff0001":"fffe":"fffeffff0001":"0" mbedtls_mpi_core_mla #525: 0xffffffff + 0xfffe * 0x100000000 = (0xffffffff, carry 0xfffe)/(0xfffeffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"fffe":"100000000":"ffffffff":"fffe":"fffeffffffff":"0" +mpi_core_mla:"ffffffff":"fffe":"100000000":"ffffffff":"fffe":"fffeffffffff":"0" mbedtls_mpi_core_mla #526: 0xffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80800101, carry 0x7f7e80808081)/(0x8080808180800101, carry 0x7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"fffe":"7f7f7f7f7f7f7f7f":"80800101":"7f7e80808081":"8080808180800101":"7f7e" +mpi_core_mla:"ffffffff":"fffe":"7f7f7f7f7f7f7f7f":"80800101":"7f7e80808081":"8080808180800101":"7f7e" mbedtls_mpi_core_mla #527: 0xffffffff + 0xfffe * 0x8000000000000000 = (0xffffffff, carry 0x7fff00000000)/(0xffffffff, carry 0x7fff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"fffe":"8000000000000000":"ffffffff":"7fff00000000":"ffffffff":"7fff" +mpi_core_mla:"ffffffff":"fffe":"8000000000000000":"ffffffff":"7fff00000000":"ffffffff":"7fff" mbedtls_mpi_core_mla #528: 0xffffffff + 0xfffe * 0xfffffffffffffffe = (0xfffe0003, carry 0xfffe00000000)/(0xfffe0003, carry 0xfffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"fffe":"fffffffffffffffe":"fffe0003":"fffe00000000":"fffe0003":"fffe" +mpi_core_mla:"ffffffff":"fffe":"fffffffffffffffe":"fffe0003":"fffe00000000":"fffe0003":"fffe" mbedtls_mpi_core_mla #529: 0xffffffff + 0xffffffff * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #530: 0xffffffff + 0xffffffff * 0x3 = (0xfffffffc, carry 0x3)/(0x3fffffffc, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"3":"fffffffc":"3":"3fffffffc":"0" +mpi_core_mla:"ffffffff":"ffffffff":"3":"fffffffc":"3":"3fffffffc":"0" mbedtls_mpi_core_mla #531: 0xffffffff + 0xffffffff * 0xfe = (0xffffff01, carry 0xfe)/(0xfeffffff01, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"fe":"ffffff01":"fe":"feffffff01":"0" +mpi_core_mla:"ffffffff":"ffffffff":"fe":"ffffff01":"fe":"feffffff01":"0" mbedtls_mpi_core_mla #532: 0xffffffff + 0xffffffff * 0xff = (0xffffff00, carry 0xff)/(0xffffffff00, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"ff":"ffffff00":"ff":"ffffffff00":"0" +mpi_core_mla:"ffffffff":"ffffffff":"ff":"ffffff00":"ff":"ffffffff00":"0" mbedtls_mpi_core_mla #533: 0xffffffff + 0xffffffff * 0xffff = (0xffff0000, carry 0xffff)/(0xffffffff0000, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"ffff":"ffff0000":"ffff":"ffffffff0000":"0" +mpi_core_mla:"ffffffff":"ffffffff":"ffff":"ffff0000":"ffff":"ffffffff0000":"0" mbedtls_mpi_core_mla #534: 0xffffffff + 0xffffffff * 0x10000 = (0xfffeffff, carry 0x10000)/(0x10000fffeffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"10000":"fffeffff":"10000":"10000fffeffff":"0" +mpi_core_mla:"ffffffff":"ffffffff":"10000":"fffeffff":"10000":"10000fffeffff":"0" mbedtls_mpi_core_mla #535: 0xffffffff + 0xffffffff * 0xffffffff = (0x0, carry 0xffffffff)/(0xffffffff00000000, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"ffffffff":"0":"ffffffff":"ffffffff00000000":"0" +mpi_core_mla:"ffffffff":"ffffffff":"ffffffff":"0":"ffffffff":"ffffffff00000000":"0" mbedtls_mpi_core_mla #536: 0xffffffff + 0xffffffff * 0x100000000 = (0xffffffff, carry 0xffffffff)/(0xffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"100000000":"ffffffff":"ffffffff":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffff":"ffffffff":"100000000":"ffffffff":"ffffffff":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #537: 0xffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x80808080, carry 0x7f7f7f7f00000000)/(0x80808080, carry 0x7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"80808080":"7f7f7f7f00000000":"80808080":"7f7f7f7f" +mpi_core_mla:"ffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"80808080":"7f7f7f7f00000000":"80808080":"7f7f7f7f" mbedtls_mpi_core_mla #538: 0xffffffff + 0xffffffff * 0x8000000000000000 = (0xffffffff, carry 0x7fffffff80000000)/(0x80000000ffffffff, carry 0x7fffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"8000000000000000":"ffffffff":"7fffffff80000000":"80000000ffffffff":"7fffffff" +mpi_core_mla:"ffffffff":"ffffffff":"8000000000000000":"ffffffff":"7fffffff80000000":"80000000ffffffff":"7fffffff" mbedtls_mpi_core_mla #539: 0xffffffff + 0xffffffff * 0xfffffffffffffffe = (0x1, carry 0xfffffffeffffffff)/(0xffffffff00000001, carry 0xfffffffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"ffffffff":"fffffffffffffffe":"1":"fffffffeffffffff":"ffffffff00000001":"fffffffe" +mpi_core_mla:"ffffffff":"ffffffff":"fffffffffffffffe":"1":"fffffffeffffffff":"ffffffff00000001":"fffffffe" mbedtls_mpi_core_mla #540: 0xffffffff + 0x100000000 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"100000000":"0":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"100000000":"0":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #541: 0xffffffff + 0x100000000 * 0x3 = (0x3ffffffff, carry 0x0)/(0x3ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"100000000":"3":"3ffffffff":"0":"3ffffffff":"0" +mpi_core_mla:"ffffffff":"100000000":"3":"3ffffffff":"0":"3ffffffff":"0" mbedtls_mpi_core_mla #542: 0xffffffff + 0x100000000 * 0xfe = (0xfeffffffff, carry 0x0)/(0xfeffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"100000000":"fe":"feffffffff":"0":"feffffffff":"0" +mpi_core_mla:"ffffffff":"100000000":"fe":"feffffffff":"0":"feffffffff":"0" mbedtls_mpi_core_mla #543: 0xffffffff + 0x100000000 * 0xff = (0xffffffffff, carry 0x0)/(0xffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"100000000":"ff":"ffffffffff":"0":"ffffffffff":"0" +mpi_core_mla:"ffffffff":"100000000":"ff":"ffffffffff":"0":"ffffffffff":"0" mbedtls_mpi_core_mla #544: 0xffffffff + 0x100000000 * 0xffff = (0xffffffffffff, carry 0x0)/(0xffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"100000000":"ffff":"ffffffffffff":"0":"ffffffffffff":"0" +mpi_core_mla:"ffffffff":"100000000":"ffff":"ffffffffffff":"0":"ffffffffffff":"0" mbedtls_mpi_core_mla #545: 0xffffffff + 0x100000000 * 0x10000 = (0x10000ffffffff, carry 0x0)/(0x10000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"100000000":"10000":"10000ffffffff":"0":"10000ffffffff":"0" +mpi_core_mla:"ffffffff":"100000000":"10000":"10000ffffffff":"0":"10000ffffffff":"0" mbedtls_mpi_core_mla #546: 0xffffffff + 0x100000000 * 0xffffffff = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"100000000":"ffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffff":"100000000":"ffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #547: 0xffffffff + 0x100000000 * 0x100000000 = (0xffffffff, carry 0x1)/(0xffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"100000000":"100000000":"ffffffff":"1":"ffffffff":"1" +mpi_core_mla:"ffffffff":"100000000":"100000000":"ffffffff":"1":"ffffffff":"1" mbedtls_mpi_core_mla #548: 0xffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7fffffffff, carry 0x7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffff":"7f7f7f7f":"7f7f7f7fffffffff":"7f7f7f7f" +mpi_core_mla:"ffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffff":"7f7f7f7f":"7f7f7f7fffffffff":"7f7f7f7f" mbedtls_mpi_core_mla #549: 0xffffffff + 0x100000000 * 0x8000000000000000 = (0xffffffff, carry 0x80000000)/(0xffffffff, carry 0x80000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"100000000":"8000000000000000":"ffffffff":"80000000":"ffffffff":"80000000" +mpi_core_mla:"ffffffff":"100000000":"8000000000000000":"ffffffff":"80000000":"ffffffff":"80000000" mbedtls_mpi_core_mla #550: 0xffffffff + 0x100000000 * 0xfffffffffffffffe = (0xfffffffeffffffff, carry 0xffffffff)/(0xfffffffeffffffff, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"100000000":"fffffffffffffffe":"fffffffeffffffff":"ffffffff":"fffffffeffffffff":"ffffffff" +mpi_core_mla:"ffffffff":"100000000":"fffffffffffffffe":"fffffffeffffffff":"ffffffff":"fffffffeffffffff":"ffffffff" mbedtls_mpi_core_mla #551: 0xffffffff + 0x20000000000000 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"0":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"20000000000000":"0":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #552: 0xffffffff + 0x20000000000000 * 0x3 = (0x600000ffffffff, carry 0x0)/(0x600000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"3":"600000ffffffff":"0":"600000ffffffff":"0" +mpi_core_mla:"ffffffff":"20000000000000":"3":"600000ffffffff":"0":"600000ffffffff":"0" mbedtls_mpi_core_mla #553: 0xffffffff + 0x20000000000000 * 0xfe = (0x1fc00000ffffffff, carry 0x0)/(0x1fc00000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"fe":"1fc00000ffffffff":"0":"1fc00000ffffffff":"0" +mpi_core_mla:"ffffffff":"20000000000000":"fe":"1fc00000ffffffff":"0":"1fc00000ffffffff":"0" mbedtls_mpi_core_mla #554: 0xffffffff + 0x20000000000000 * 0xff = (0x1fe00000ffffffff, carry 0x0)/(0x1fe00000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"ff":"1fe00000ffffffff":"0":"1fe00000ffffffff":"0" +mpi_core_mla:"ffffffff":"20000000000000":"ff":"1fe00000ffffffff":"0":"1fe00000ffffffff":"0" mbedtls_mpi_core_mla #555: 0xffffffff + 0x20000000000000 * 0xffff = (0xffe00000ffffffff, carry 0x1f)/(0xffe00000ffffffff, carry 0x1f) -mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"ffff":"ffe00000ffffffff":"1f":"ffe00000ffffffff":"1f" +mpi_core_mla:"ffffffff":"20000000000000":"ffff":"ffe00000ffffffff":"1f":"ffe00000ffffffff":"1f" mbedtls_mpi_core_mla #556: 0xffffffff + 0x20000000000000 * 0x10000 = (0xffffffff, carry 0x20)/(0xffffffff, carry 0x20) -mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"10000":"ffffffff":"20":"ffffffff":"20" +mpi_core_mla:"ffffffff":"20000000000000":"10000":"ffffffff":"20":"ffffffff":"20" mbedtls_mpi_core_mla #557: 0xffffffff + 0x20000000000000 * 0xffffffff = (0xffe00000ffffffff, carry 0x1fffff)/(0xffe00000ffffffff, carry 0x1fffff) -mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"ffffffff":"ffe00000ffffffff":"1fffff":"ffe00000ffffffff":"1fffff" +mpi_core_mla:"ffffffff":"20000000000000":"ffffffff":"ffe00000ffffffff":"1fffff":"ffe00000ffffffff":"1fffff" mbedtls_mpi_core_mla #558: 0xffffffff + 0x20000000000000 * 0x100000000 = (0xffffffff, carry 0x200000)/(0xffffffff, carry 0x200000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"100000000":"ffffffff":"200000":"ffffffff":"200000" +mpi_core_mla:"ffffffff":"20000000000000":"100000000":"ffffffff":"200000":"ffffffff":"200000" mbedtls_mpi_core_mla #559: 0xffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe00000ffffffff, carry 0xfefefefefefef)/(0xefe00000ffffffff, carry 0xfefefefefefef) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"efe00000ffffffff":"fefefefefefef":"efe00000ffffffff":"fefefefefefef" +mpi_core_mla:"ffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"efe00000ffffffff":"fefefefefefef":"efe00000ffffffff":"fefefefefefef" mbedtls_mpi_core_mla #560: 0xffffffff + 0x20000000000000 * 0x8000000000000000 = (0xffffffff, carry 0x10000000000000)/(0xffffffff, carry 0x10000000000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"8000000000000000":"ffffffff":"10000000000000":"ffffffff":"10000000000000" +mpi_core_mla:"ffffffff":"20000000000000":"8000000000000000":"ffffffff":"10000000000000":"ffffffff":"10000000000000" mbedtls_mpi_core_mla #561: 0xffffffff + 0x20000000000000 * 0xfffffffffffffffe = (0xffc00000ffffffff, carry 0x1fffffffffffff)/(0xffc00000ffffffff, carry 0x1fffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"20000000000000":"fffffffffffffffe":"ffc00000ffffffff":"1fffffffffffff":"ffc00000ffffffff":"1fffffffffffff" +mpi_core_mla:"ffffffff":"20000000000000":"fffffffffffffffe":"ffc00000ffffffff":"1fffffffffffff":"ffc00000ffffffff":"1fffffffffffff" mbedtls_mpi_core_mla #562: 0xffffffff + 0xffffffffffffffff * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"0":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"ffffffffffffffff":"0":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #563: 0xffffffff + 0xffffffffffffffff * 0x3 = (0xfffffffc, carry 0x3)/(0xfffffffc, carry 0x3) -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"3":"fffffffc":"3":"fffffffc":"3" +mpi_core_mla:"ffffffff":"ffffffffffffffff":"3":"fffffffc":"3":"fffffffc":"3" mbedtls_mpi_core_mla #564: 0xffffffff + 0xffffffffffffffff * 0xfe = (0xffffff01, carry 0xfe)/(0xffffff01, carry 0xfe) -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"fe":"ffffff01":"fe":"ffffff01":"fe" +mpi_core_mla:"ffffffff":"ffffffffffffffff":"fe":"ffffff01":"fe":"ffffff01":"fe" mbedtls_mpi_core_mla #565: 0xffffffff + 0xffffffffffffffff * 0xff = (0xffffff00, carry 0xff)/(0xffffff00, carry 0xff) -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"ff":"ffffff00":"ff":"ffffff00":"ff" +mpi_core_mla:"ffffffff":"ffffffffffffffff":"ff":"ffffff00":"ff":"ffffff00":"ff" mbedtls_mpi_core_mla #566: 0xffffffff + 0xffffffffffffffff * 0xffff = (0xffff0000, carry 0xffff)/(0xffff0000, carry 0xffff) -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"ffff":"ffff0000":"ffff":"ffff0000":"ffff" +mpi_core_mla:"ffffffff":"ffffffffffffffff":"ffff":"ffff0000":"ffff":"ffff0000":"ffff" mbedtls_mpi_core_mla #567: 0xffffffff + 0xffffffffffffffff * 0x10000 = (0xfffeffff, carry 0x10000)/(0xfffeffff, carry 0x10000) -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"10000":"fffeffff":"10000":"fffeffff":"10000" +mpi_core_mla:"ffffffff":"ffffffffffffffff":"10000":"fffeffff":"10000":"fffeffff":"10000" mbedtls_mpi_core_mla #568: 0xffffffff + 0xffffffffffffffff * 0xffffffff = (0x0, carry 0xffffffff)/(0x0, carry 0xffffffff) -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff" +mpi_core_mla:"ffffffff":"ffffffffffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff" mbedtls_mpi_core_mla #569: 0xffffffff + 0xffffffffffffffff * 0x100000000 = (0xffffffffffffffff, carry 0xffffffff)/(0xffffffffffffffff, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"100000000":"ffffffffffffffff":"ffffffff":"ffffffffffffffff":"ffffffff" +mpi_core_mla:"ffffffff":"ffffffffffffffff":"100000000":"ffffffffffffffff":"ffffffff":"ffffffffffffffff":"ffffffff" mbedtls_mpi_core_mla #570: 0xffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808180808080, carry 0x7f7f7f7f7f7f7f7e)/(0x8080808180808080, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808180808080":"7f7f7f7f7f7f7f7e":"8080808180808080":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"ffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808180808080":"7f7f7f7f7f7f7f7e":"8080808180808080":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #571: 0xffffffff + 0xffffffffffffffff * 0x8000000000000000 = (0x80000000ffffffff, carry 0x7fffffffffffffff)/(0x80000000ffffffff, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"8000000000000000":"80000000ffffffff":"7fffffffffffffff":"80000000ffffffff":"7fffffffffffffff" +mpi_core_mla:"ffffffff":"ffffffffffffffff":"8000000000000000":"80000000ffffffff":"7fffffffffffffff":"80000000ffffffff":"7fffffffffffffff" mbedtls_mpi_core_mla #572: 0xffffffff + 0xffffffffffffffff * 0xfffffffffffffffe = (0x100000001, carry 0xfffffffffffffffd)/(0x100000001, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffff":"fffffffffffffffe":"100000001":"fffffffffffffffd":"100000001":"fffffffffffffffd" +mpi_core_mla:"ffffffff":"ffffffffffffffff":"fffffffffffffffe":"100000001":"fffffffffffffffd":"100000001":"fffffffffffffffd" mbedtls_mpi_core_mla #573: 0xffffffff + 0x10000000000000000 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"0":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"10000000000000000":"0":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #574: 0xffffffff + 0x10000000000000000 * 0x3 = (0x300000000ffffffff, carry 0x0)/(0x300000000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"3":"300000000ffffffff":"0":"300000000ffffffff":"0" +mpi_core_mla:"ffffffff":"10000000000000000":"3":"300000000ffffffff":"0":"300000000ffffffff":"0" mbedtls_mpi_core_mla #575: 0xffffffff + 0x10000000000000000 * 0xfe = (0xfe00000000ffffffff, carry 0x0)/(0xfe00000000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"fe":"fe00000000ffffffff":"0":"fe00000000ffffffff":"0" +mpi_core_mla:"ffffffff":"10000000000000000":"fe":"fe00000000ffffffff":"0":"fe00000000ffffffff":"0" mbedtls_mpi_core_mla #576: 0xffffffff + 0x10000000000000000 * 0xff = (0xff00000000ffffffff, carry 0x0)/(0xff00000000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"ff":"ff00000000ffffffff":"0":"ff00000000ffffffff":"0" +mpi_core_mla:"ffffffff":"10000000000000000":"ff":"ff00000000ffffffff":"0":"ff00000000ffffffff":"0" mbedtls_mpi_core_mla #577: 0xffffffff + 0x10000000000000000 * 0xffff = (0xffff00000000ffffffff, carry 0x0)/(0xffff00000000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"ffff":"ffff00000000ffffffff":"0":"ffff00000000ffffffff":"0" +mpi_core_mla:"ffffffff":"10000000000000000":"ffff":"ffff00000000ffffffff":"0":"ffff00000000ffffffff":"0" mbedtls_mpi_core_mla #578: 0xffffffff + 0x10000000000000000 * 0x10000 = (0x1000000000000ffffffff, carry 0x0)/(0x1000000000000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"10000":"1000000000000ffffffff":"0":"1000000000000ffffffff":"0" +mpi_core_mla:"ffffffff":"10000000000000000":"10000":"1000000000000ffffffff":"0":"1000000000000ffffffff":"0" mbedtls_mpi_core_mla #579: 0xffffffff + 0x10000000000000000 * 0xffffffff = (0xffffffff00000000ffffffff, carry 0x0)/(0xffffffff00000000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"ffffffff":"ffffffff00000000ffffffff":"0":"ffffffff00000000ffffffff":"0" +mpi_core_mla:"ffffffff":"10000000000000000":"ffffffff":"ffffffff00000000ffffffff":"0":"ffffffff00000000ffffffff":"0" mbedtls_mpi_core_mla #580: 0xffffffff + 0x10000000000000000 * 0x100000000 = (0xffffffff, carry 0x1)/(0x10000000000000000ffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"100000000":"ffffffff":"1":"10000000000000000ffffffff":"0" +mpi_core_mla:"ffffffff":"10000000000000000":"100000000":"ffffffff":"1":"10000000000000000ffffffff":"0" mbedtls_mpi_core_mla #581: 0xffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000ffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000ffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000ffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000ffffffff":"0" +mpi_core_mla:"ffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000ffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000ffffffff":"0" mbedtls_mpi_core_mla #582: 0xffffffff + 0x10000000000000000 * 0x8000000000000000 = (0xffffffff, carry 0x80000000)/(0x800000000000000000000000ffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"8000000000000000":"ffffffff":"80000000":"800000000000000000000000ffffffff":"0" +mpi_core_mla:"ffffffff":"10000000000000000":"8000000000000000":"ffffffff":"80000000":"800000000000000000000000ffffffff":"0" mbedtls_mpi_core_mla #583: 0xffffffff + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000ffffffff, carry 0xffffffff)/(0xfffffffffffffffe00000000ffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"10000000000000000":"fffffffffffffffe":"fffffffe00000000ffffffff":"ffffffff":"fffffffffffffffe00000000ffffffff":"0" +mpi_core_mla:"ffffffff":"10000000000000000":"fffffffffffffffe":"fffffffe00000000ffffffff":"ffffffff":"fffffffffffffffe00000000ffffffff":"0" mbedtls_mpi_core_mla #584: 0xffffffff + 0x1234567890abcdef0 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #585: 0xffffffff + 0x1234567890abcdef0 * 0x3 = (0x369d0369c20369ccf, carry 0x0)/(0x369d0369c20369ccf, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"3":"369d0369c20369ccf":"0":"369d0369c20369ccf":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef0":"3":"369d0369c20369ccf":"0":"369d0369c20369ccf":"0" mbedtls_mpi_core_mla #586: 0xffffffff + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f9a765321f, carry 0x0)/(0x120fedcb9f9a765321f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"fe":"120fedcb9f9a765321f":"0":"120fedcb9f9a765321f":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef0":"fe":"120fedcb9f9a765321f":"0":"120fedcb9f9a765321f":"0" mbedtls_mpi_core_mla #587: 0xffffffff + 0x1234567890abcdef0 * 0xff = (0x12222222182b222110f, carry 0x0)/(0x12222222182b222110f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"ff":"12222222182b222110f":"0":"12222222182b222110f":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef0":"ff":"12222222182b222110f":"0":"12222222182b222110f":"0" mbedtls_mpi_core_mla #588: 0xffffffff + 0x1234567890abcdef0 * 0xffff = (0x123444443a334d433210f, carry 0x0)/(0x123444443a334d433210f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"ffff":"123444443a334d433210f":"0":"123444443a334d433210f":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef0":"ffff":"123444443a334d433210f":"0":"123444443a334d433210f":"0" mbedtls_mpi_core_mla #589: 0xffffffff + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abddeefffff, carry 0x0)/(0x1234567890abddeefffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"10000":"1234567890abddeefffff":"0":"1234567890abddeefffff":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef0":"10000":"1234567890abddeefffff":"0":"1234567890abddeefffff":"0" mbedtls_mpi_core_mla #590: 0xffffffff + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777767f543210f, carry 0x1)/(0x123456787e7777767f543210f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"ffffffff":"23456787e7777767f543210f":"1":"123456787e7777767f543210f":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef0":"ffffffff":"23456787e7777767f543210f":"1":"123456787e7777767f543210f":"0" mbedtls_mpi_core_mla #591: 0xffffffff + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef0ffffffff, carry 0x1)/(0x1234567890abcdef0ffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"100000000":"234567890abcdef0ffffffff":"1":"1234567890abcdef0ffffffff":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef0":"100000000":"234567890abcdef0ffffffff":"1":"1234567890abcdef0ffffffff":"0" mbedtls_mpi_core_mla #592: 0xffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708acaf5ba90f, carry 0x91107edb)/(0x91107edbd82bde76f67708acaf5ba90f, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708acaf5ba90f":"91107edb":"91107edbd82bde76f67708acaf5ba90f":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708acaf5ba90f":"91107edb":"91107edbd82bde76f67708acaf5ba90f":"0" mbedtls_mpi_core_mla #593: 0xffffffff + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f7800000000ffffffff, carry 0x91a2b3c4)/(0x91a2b3c4855e6f7800000000ffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"8000000000000000":"855e6f7800000000ffffffff":"91a2b3c4":"91a2b3c4855e6f7800000000ffffffff":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef0":"8000000000000000":"855e6f7800000000ffffffff":"91a2b3c4":"91a2b3c4855e6f7800000000ffffffff":"0" mbedtls_mpi_core_mla #594: 0xffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530eeea86421f, carry 0x123456789)/(0x234567890abcdeedb97530eeea86421f, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530eeea86421f":"123456789":"234567890abcdeedb97530eeea86421f":"1" +mpi_core_mla:"ffffffff":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530eeea86421f":"123456789":"234567890abcdeedb97530eeea86421f":"1" mbedtls_mpi_core_mla #595: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #596: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfdfcfcfcf9, carry 0x2)/(0xfffffffffffffffffcfcfcfdfcfcfcf9, carry 0x2) -mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfdfcfcfcf9":"2":"fffffffffffffffffcfcfcfdfcfcfcf9":"2" +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfdfcfcfcf9":"2":"fffffffffffffffffcfcfcfdfcfcfcf9":"2" mbedtls_mpi_core_mla #597: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010201010003, carry 0xfd)/(0xffffffffffffffff0101010201010003, carry 0xfd) -mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010201010003":"fd":"ffffffffffffffff0101010201010003":"fd" +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010201010003":"fd":"ffffffffffffffff0101010201010003":"fd" mbedtls_mpi_core_mla #598: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffff00000000ffffff01, carry 0xfe)/(0xffffffffffffffff00000000ffffff01, carry 0xfe) -mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff00000000ffffff01":"fe":"ffffffffffffffff00000000ffffff01":"fe" +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff00000000ffffff01":"fe":"ffffffffffffffff00000000ffffff01":"fe" mbedtls_mpi_core_mla #599: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeff00000000ffff0101, carry 0xfffe)/(0xfffffffffffffeff00000000ffff0101, carry 0xfffe) -mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff00000000ffff0101":"fffe":"fffffffffffffeff00000000ffff0101":"fffe" +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff00000000ffff0101":"fffe":"fffffffffffffeff00000000ffff0101":"fffe" mbedtls_mpi_core_mla #600: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefffefdffff, carry 0xffff)/(0xfffffffffffffefefefefefffefdffff, carry 0xffff) -mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefffefdffff":"ffff":"fffffffffffffefefefefefffefdffff":"ffff" +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefffefdffff":"ffff":"fffffffffffffefefefefefffefdffff":"ffff" mbedtls_mpi_core_mla #601: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeff0000000001010101, carry 0xfffffffe)/(0xfffffffffefefeff0000000001010101, carry 0xfffffffe) -mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff0000000001010101":"fffffffe":"fffffffffefefeff0000000001010101":"fffffffe" +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff0000000001010101":"fffffffe":"fffffffffefefeff0000000001010101":"fffffffe" mbedtls_mpi_core_mla #602: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefeffffffff, carry 0xffffffff)/(0xfffffffffefefefefefefefeffffffff, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefeffffffff":"ffffffff":"fffffffffefefefefefefefeffffffff":"ffffffff" +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefeffffffff":"ffffffff":"fffffffffefefefefefefefeffffffff":"ffffffff" mbedtls_mpi_core_mla #603: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840483028201, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840483028201, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840483028201":"7f7f7f7f7f7f7f7e":"ff800081018202828504840483028201":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840483028201":"7f7f7f7f7f7f7f7e":"ff800081018202828504840483028201":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #604: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f00000000ffffffff, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f00000000ffffffff, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f00000000ffffffff":"7fffffffffffffff":"ff7f7f7f7f7f7f7f00000000ffffffff":"7fffffffffffffff" +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f00000000ffffffff":"7fffffffffffffff":"ff7f7f7f7f7f7f7f00000000ffffffff":"7fffffffffffffff" mbedtls_mpi_core_mla #605: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020302020203, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020302020203, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020302020203":"fffffffffffffffd":"fefefefefefefefe0202020302020203":"fffffffffffffffd" +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020302020203":"fffffffffffffffd":"fefefefefefefefe0202020302020203":"fffffffffffffffd" mbedtls_mpi_core_mla #606: 0xffffffff + 0x100000000000000000000000000000000 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"0":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"0":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #607: 0xffffffff + 0x100000000000000000000000000000000 * 0x3 = (0x3000000000000000000000000ffffffff, carry 0x0)/(0x3000000000000000000000000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"3":"3000000000000000000000000ffffffff":"0":"3000000000000000000000000ffffffff":"0" +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"3":"3000000000000000000000000ffffffff":"0":"3000000000000000000000000ffffffff":"0" mbedtls_mpi_core_mla #608: 0xffffffff + 0x100000000000000000000000000000000 * 0xfe = (0xfe000000000000000000000000ffffffff, carry 0x0)/(0xfe000000000000000000000000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"fe":"fe000000000000000000000000ffffffff":"0":"fe000000000000000000000000ffffffff":"0" +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"fe":"fe000000000000000000000000ffffffff":"0":"fe000000000000000000000000ffffffff":"0" mbedtls_mpi_core_mla #609: 0xffffffff + 0x100000000000000000000000000000000 * 0xff = (0xff000000000000000000000000ffffffff, carry 0x0)/(0xff000000000000000000000000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ff":"ff000000000000000000000000ffffffff":"0":"ff000000000000000000000000ffffffff":"0" +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ff":"ff000000000000000000000000ffffffff":"0":"ff000000000000000000000000ffffffff":"0" mbedtls_mpi_core_mla #610: 0xffffffff + 0x100000000000000000000000000000000 * 0xffff = (0xffff000000000000000000000000ffffffff, carry 0x0)/(0xffff000000000000000000000000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ffff":"ffff000000000000000000000000ffffffff":"0":"ffff000000000000000000000000ffffffff":"0" +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ffff":"ffff000000000000000000000000ffffffff":"0":"ffff000000000000000000000000ffffffff":"0" mbedtls_mpi_core_mla #611: 0xffffffff + 0x100000000000000000000000000000000 * 0x10000 = (0x10000000000000000000000000000ffffffff, carry 0x0)/(0x10000000000000000000000000000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"10000":"10000000000000000000000000000ffffffff":"0":"10000000000000000000000000000ffffffff":"0" +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"10000":"10000000000000000000000000000ffffffff":"0":"10000000000000000000000000000ffffffff":"0" mbedtls_mpi_core_mla #612: 0xffffffff + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff000000000000000000000000ffffffff, carry 0x0)/(0xffffffff000000000000000000000000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ffffffff":"ffffffff000000000000000000000000ffffffff":"0":"ffffffff000000000000000000000000ffffffff":"0" +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ffffffff":"ffffffff000000000000000000000000ffffffff":"0":"ffffffff000000000000000000000000ffffffff":"0" mbedtls_mpi_core_mla #613: 0xffffffff + 0x100000000000000000000000000000000 * 0x100000000 = (0xffffffff, carry 0x1)/(0x100000000000000000000000000000000ffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"100000000":"ffffffff":"1":"100000000000000000000000000000000ffffffff":"0" +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"100000000":"ffffffff":"1":"100000000000000000000000000000000ffffffff":"0" mbedtls_mpi_core_mla #614: 0xffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f000000000000000000000000ffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f000000000000000000000000ffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f000000000000000000000000ffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f000000000000000000000000ffffffff":"0" +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f000000000000000000000000ffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f000000000000000000000000ffffffff":"0" mbedtls_mpi_core_mla #615: 0xffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0xffffffff, carry 0x80000000)/(0x8000000000000000000000000000000000000000ffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"8000000000000000":"ffffffff":"80000000":"8000000000000000000000000000000000000000ffffffff":"0" +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"8000000000000000":"ffffffff":"80000000":"8000000000000000000000000000000000000000ffffffff":"0" mbedtls_mpi_core_mla #616: 0xffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe000000000000000000000000ffffffff, carry 0xffffffff)/(0xfffffffffffffffe000000000000000000000000ffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe000000000000000000000000ffffffff":"ffffffff":"fffffffffffffffe000000000000000000000000ffffffff":"0" +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe000000000000000000000000ffffffff":"ffffffff":"fffffffffffffffe000000000000000000000000ffffffff":"0" mbedtls_mpi_core_mla #617: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #618: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369c20369ccf, carry 0x0)/(0x369d0369b20369cd0369d0369c20369ccf, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369c20369ccf":"0":"369d0369b20369cd0369d0369c20369ccf":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369c20369ccf":"0":"369d0369b20369cd0369d0369c20369ccf":"0" mbedtls_mpi_core_mla #619: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f9a765321f, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f9a765321f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f9a765321f":"0":"120fedcb9f8a76532320fedcb9f9a765321f":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f9a765321f":"0":"120fedcb9f8a76532320fedcb9f9a765321f":"0" mbedtls_mpi_core_mla #620: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222182b222110f, carry 0x0)/(0x12222222181b2221122222222182b222110f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222182b222110f":"0":"12222222181b2221122222222182b222110f":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222182b222110f":"0":"12222222181b2221122222222182b222110f":"0" mbedtls_mpi_core_mla #621: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a334d433210f, carry 0x0)/(0x123444443a333d433334444443a334d433210f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a334d433210f":"0":"123444443a333d433334444443a334d433210f":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a334d433210f":"0":"123444443a333d433334444443a334d433210f":"0" mbedtls_mpi_core_mla #622: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abddeefffff, carry 0x0)/(0x1234567890abcdef01234567890abddeefffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abddeefffff":"0":"1234567890abcdef01234567890abddeefffff":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abddeefffff":"0":"1234567890abcdef01234567890abddeefffff":"0" mbedtls_mpi_core_mla #623: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777767f543210f, carry 0x12)/(0x123456787e7777767077777887e7777767f543210f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777767f543210f":"12":"123456787e7777767077777887e7777767f543210f":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777767f543210f":"12":"123456787e7777767077777887e7777767f543210f":"0" mbedtls_mpi_core_mla #624: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef0ffffffff, carry 0x12)/(0x1234567890abcdef01234567890abcdef0ffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef0ffffffff":"12":"1234567890abcdef01234567890abcdef0ffffffff":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef0ffffffff":"12":"1234567890abcdef01234567890abcdef0ffffffff":"0" mbedtls_mpi_core_mla #625: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708acaf5ba90f, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708acaf5ba90f, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708acaf5ba90f":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708acaf5ba90f":"9" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708acaf5ba90f":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708acaf5ba90f":"9" mbedtls_mpi_core_mla #626: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f7800000000ffffffff, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f7800000000ffffffff":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"9" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f7800000000ffffffff":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"9" mbedtls_mpi_core_mla #627: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530eeea86421f, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530eeea86421f, carry 0x12) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530eeea86421f":"1234567890":"34567890abcdeedcba987667b32100edb97530eeea86421f":"12" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530eeea86421f":"1234567890":"34567890abcdeedcba987667b32100edb97530eeea86421f":"12" mbedtls_mpi_core_mla #628: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #629: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffc, carry 0x3)/(0xfffffffc, carry 0x3) -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffc":"3":"fffffffc":"3" +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffc":"3":"fffffffc":"3" mbedtls_mpi_core_mla #630: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffff01, carry 0xfe)/(0xffffff01, carry 0xfe) -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffff01":"fe":"ffffff01":"fe" +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffff01":"fe":"ffffff01":"fe" mbedtls_mpi_core_mla #631: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffff00, carry 0xff)/(0xffffff00, carry 0xff) -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffff00":"ff":"ffffff00":"ff" +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffff00":"ff":"ffffff00":"ff" mbedtls_mpi_core_mla #632: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffff0000, carry 0xffff)/(0xffff0000, carry 0xffff) -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff0000":"ffff":"ffff0000":"ffff" +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff0000":"ffff":"ffff0000":"ffff" mbedtls_mpi_core_mla #633: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffeffff, carry 0x10000)/(0xfffeffff, carry 0x10000) -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffeffff":"10000":"fffeffff":"10000" +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffeffff":"10000":"fffeffff":"10000" mbedtls_mpi_core_mla #634: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x0, carry 0xffffffff)/(0x0, carry 0xffffffff) -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff" +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff" mbedtls_mpi_core_mla #635: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff" +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff" mbedtls_mpi_core_mla #636: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #637: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff":"7fffffffffffffff" +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff":"7fffffffffffffff" mbedtls_mpi_core_mla #638: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001":"fffffffffffffffd" +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001":"fffffffffffffffd" mbedtls_mpi_core_mla #639: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #640: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf":"0" mbedtls_mpi_core_mla #641: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f":"0" mbedtls_mpi_core_mla #642: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222182b222110f, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222182b222110f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222182b222110f":"0":"12222222181b2221122222222181b2221122222222181b2221122222222182b222110f":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222182b222110f":"0":"12222222181b2221122222222181b2221122222222181b2221122222222182b222110f":"0" mbedtls_mpi_core_mla #643: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f":"0" mbedtls_mpi_core_mla #644: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff":"0" mbedtls_mpi_core_mla #645: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f":"0" mbedtls_mpi_core_mla #646: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff":"0" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff":"0" mbedtls_mpi_core_mla #647: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f, carry 0x911) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f":"911" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f":"911" mbedtls_mpi_core_mla #648: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff, carry 0x91a) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"91a" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"91a" mbedtls_mpi_core_mla #649: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f, carry 0x1234) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f":"1234" +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f":"1234" mbedtls_mpi_core_mla #650: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffff":"0":"ffffffff":"0" +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffff":"0":"ffffffff":"0" mbedtls_mpi_core_mla #651: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380":"0" +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380":"0" mbedtls_mpi_core_mla #652: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9":"0" +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9":"0" mbedtls_mpi_core_mla #653: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4":"0" +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4":"0" mbedtls_mpi_core_mla #654: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4":"0" +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4":"0" mbedtls_mpi_core_mla #655: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff":"0" +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff":"0" mbedtls_mpi_core_mla #656: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4, carry 0x4) -mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4":"4" +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4":"4" mbedtls_mpi_core_mla #657: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff, carry 0x4) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff":"4" +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff":"4" mbedtls_mpi_core_mla #658: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954, carry 0x26d473ca9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954":"26d473ca9" +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954":"26d473ca9" mbedtls_mpi_core_mla #659: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff, carry 0x26fb9683d) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff":"26fb9683d" +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff":"26fb9683d" mbedtls_mpi_core_mla #660: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9, carry 0x4df72d07b) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9":"4df72d07b" +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9":"4df72d07b" mbedtls_mpi_core_mla #661: 0x100000000 + 0x0 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"0":"0":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"0":"0":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #662: 0x100000000 + 0x0 * 0x3 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"0":"3":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"0":"3":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #663: 0x100000000 + 0x0 * 0xfe = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"0":"fe":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"0":"fe":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #664: 0x100000000 + 0x0 * 0xff = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"0":"ff":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"0":"ff":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #665: 0x100000000 + 0x0 * 0xffff = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"0":"ffff":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"0":"ffff":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #666: 0x100000000 + 0x0 * 0x10000 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"0":"10000":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"0":"10000":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #667: 0x100000000 + 0x0 * 0xffffffff = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"0":"ffffffff":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"0":"ffffffff":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #668: 0x100000000 + 0x0 * 0x100000000 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"0":"100000000":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"0":"100000000":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #669: 0x100000000 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"0":"7f7f7f7f7f7f7f7f":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"0":"7f7f7f7f7f7f7f7f":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #670: 0x100000000 + 0x0 * 0x8000000000000000 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"0":"8000000000000000":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"0":"8000000000000000":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #671: 0x100000000 + 0x0 * 0xfffffffffffffffe = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"0":"fffffffffffffffe":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"0":"fffffffffffffffe":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #672: 0x100000000 + 0x1 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1":"0":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"1":"0":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #673: 0x100000000 + 0x1 * 0x3 = (0x100000003, carry 0x0)/(0x100000003, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1":"3":"100000003":"0":"100000003":"0" +mpi_core_mla:"100000000":"1":"3":"100000003":"0":"100000003":"0" mbedtls_mpi_core_mla #674: 0x100000000 + 0x1 * 0xfe = (0x1000000fe, carry 0x0)/(0x1000000fe, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1":"fe":"1000000fe":"0":"1000000fe":"0" +mpi_core_mla:"100000000":"1":"fe":"1000000fe":"0":"1000000fe":"0" mbedtls_mpi_core_mla #675: 0x100000000 + 0x1 * 0xff = (0x1000000ff, carry 0x0)/(0x1000000ff, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1":"ff":"1000000ff":"0":"1000000ff":"0" +mpi_core_mla:"100000000":"1":"ff":"1000000ff":"0":"1000000ff":"0" mbedtls_mpi_core_mla #676: 0x100000000 + 0x1 * 0xffff = (0x10000ffff, carry 0x0)/(0x10000ffff, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1":"ffff":"10000ffff":"0":"10000ffff":"0" +mpi_core_mla:"100000000":"1":"ffff":"10000ffff":"0":"10000ffff":"0" mbedtls_mpi_core_mla #677: 0x100000000 + 0x1 * 0x10000 = (0x100010000, carry 0x0)/(0x100010000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1":"10000":"100010000":"0":"100010000":"0" +mpi_core_mla:"100000000":"1":"10000":"100010000":"0":"100010000":"0" mbedtls_mpi_core_mla #678: 0x100000000 + 0x1 * 0xffffffff = (0x1ffffffff, carry 0x0)/(0x1ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1":"ffffffff":"1ffffffff":"0":"1ffffffff":"0" +mpi_core_mla:"100000000":"1":"ffffffff":"1ffffffff":"0":"1ffffffff":"0" mbedtls_mpi_core_mla #679: 0x100000000 + 0x1 * 0x100000000 = (0x200000000, carry 0x0)/(0x200000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"1":"100000000":"200000000":"0":"200000000":"0" +mpi_core_mla:"100000000":"1":"100000000":"200000000":"0":"200000000":"0" mbedtls_mpi_core_mla #680: 0x100000000 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f807f7f7f7f, carry 0x0)/(0x7f7f7f807f7f7f7f, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"1":"7f7f7f7f7f7f7f7f":"7f7f7f807f7f7f7f":"0":"7f7f7f807f7f7f7f":"0" +mpi_core_mla:"100000000":"1":"7f7f7f7f7f7f7f7f":"7f7f7f807f7f7f7f":"0":"7f7f7f807f7f7f7f":"0" mbedtls_mpi_core_mla #681: 0x100000000 + 0x1 * 0x8000000000000000 = (0x8000000100000000, carry 0x0)/(0x8000000100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"1":"8000000000000000":"8000000100000000":"0":"8000000100000000":"0" +mpi_core_mla:"100000000":"1":"8000000000000000":"8000000100000000":"0":"8000000100000000":"0" mbedtls_mpi_core_mla #682: 0x100000000 + 0x1 * 0xfffffffffffffffe = (0xfffffffe, carry 0x1)/(0xfffffffe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"1":"fffffffffffffffe":"fffffffe":"1":"fffffffe":"1" +mpi_core_mla:"100000000":"1":"fffffffffffffffe":"fffffffe":"1":"fffffffe":"1" mbedtls_mpi_core_mla #683: 0x100000000 + 0xfffe * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"fffe":"0":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"fffe":"0":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #684: 0x100000000 + 0xfffe * 0x3 = (0x10002fffa, carry 0x0)/(0x10002fffa, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"fffe":"3":"10002fffa":"0":"10002fffa":"0" +mpi_core_mla:"100000000":"fffe":"3":"10002fffa":"0":"10002fffa":"0" mbedtls_mpi_core_mla #685: 0x100000000 + 0xfffe * 0xfe = (0x100fdfe04, carry 0x0)/(0x100fdfe04, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"fffe":"fe":"100fdfe04":"0":"100fdfe04":"0" +mpi_core_mla:"100000000":"fffe":"fe":"100fdfe04":"0":"100fdfe04":"0" mbedtls_mpi_core_mla #686: 0x100000000 + 0xfffe * 0xff = (0x100fefe02, carry 0x0)/(0x100fefe02, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"fffe":"ff":"100fefe02":"0":"100fefe02":"0" +mpi_core_mla:"100000000":"fffe":"ff":"100fefe02":"0":"100fefe02":"0" mbedtls_mpi_core_mla #687: 0x100000000 + 0xfffe * 0xffff = (0x1fffd0002, carry 0x0)/(0x1fffd0002, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"fffe":"ffff":"1fffd0002":"0":"1fffd0002":"0" +mpi_core_mla:"100000000":"fffe":"ffff":"1fffd0002":"0":"1fffd0002":"0" mbedtls_mpi_core_mla #688: 0x100000000 + 0xfffe * 0x10000 = (0x1fffe0000, carry 0x0)/(0x1fffe0000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"fffe":"10000":"1fffe0000":"0":"1fffe0000":"0" +mpi_core_mla:"100000000":"fffe":"10000":"1fffe0000":"0":"1fffe0000":"0" mbedtls_mpi_core_mla #689: 0x100000000 + 0xfffe * 0xffffffff = (0xfffeffff0002, carry 0x0)/(0xfffeffff0002, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"fffe":"ffffffff":"fffeffff0002":"0":"fffeffff0002":"0" +mpi_core_mla:"100000000":"fffe":"ffffffff":"fffeffff0002":"0":"fffeffff0002":"0" mbedtls_mpi_core_mla #690: 0x100000000 + 0xfffe * 0x100000000 = (0xffff00000000, carry 0x0)/(0xffff00000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"fffe":"100000000":"ffff00000000":"0":"ffff00000000":"0" +mpi_core_mla:"100000000":"fffe":"100000000":"ffff00000000":"0":"ffff00000000":"0" mbedtls_mpi_core_mla #691: 0x100000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x8080808180800102, carry 0x7f7e)/(0x8080808180800102, carry 0x7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"fffe":"7f7f7f7f7f7f7f7f":"8080808180800102":"7f7e":"8080808180800102":"7f7e" +mpi_core_mla:"100000000":"fffe":"7f7f7f7f7f7f7f7f":"8080808180800102":"7f7e":"8080808180800102":"7f7e" mbedtls_mpi_core_mla #692: 0x100000000 + 0xfffe * 0x8000000000000000 = (0x100000000, carry 0x7fff)/(0x100000000, carry 0x7fff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"fffe":"8000000000000000":"100000000":"7fff":"100000000":"7fff" +mpi_core_mla:"100000000":"fffe":"8000000000000000":"100000000":"7fff":"100000000":"7fff" mbedtls_mpi_core_mla #693: 0x100000000 + 0xfffe * 0xfffffffffffffffe = (0xfffe0004, carry 0xfffe)/(0xfffe0004, carry 0xfffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"fffe":"fffffffffffffffe":"fffe0004":"fffe":"fffe0004":"fffe" +mpi_core_mla:"100000000":"fffe":"fffffffffffffffe":"fffe0004":"fffe":"fffe0004":"fffe" mbedtls_mpi_core_mla #694: 0x100000000 + 0xffffffff * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"ffffffff":"0":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"ffffffff":"0":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #695: 0x100000000 + 0xffffffff * 0x3 = (0x3fffffffd, carry 0x0)/(0x3fffffffd, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"ffffffff":"3":"3fffffffd":"0":"3fffffffd":"0" +mpi_core_mla:"100000000":"ffffffff":"3":"3fffffffd":"0":"3fffffffd":"0" mbedtls_mpi_core_mla #696: 0x100000000 + 0xffffffff * 0xfe = (0xfeffffff02, carry 0x0)/(0xfeffffff02, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"ffffffff":"fe":"feffffff02":"0":"feffffff02":"0" +mpi_core_mla:"100000000":"ffffffff":"fe":"feffffff02":"0":"feffffff02":"0" mbedtls_mpi_core_mla #697: 0x100000000 + 0xffffffff * 0xff = (0xffffffff01, carry 0x0)/(0xffffffff01, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"ffffffff":"ff":"ffffffff01":"0":"ffffffff01":"0" +mpi_core_mla:"100000000":"ffffffff":"ff":"ffffffff01":"0":"ffffffff01":"0" mbedtls_mpi_core_mla #698: 0x100000000 + 0xffffffff * 0xffff = (0xffffffff0001, carry 0x0)/(0xffffffff0001, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"ffffffff":"ffff":"ffffffff0001":"0":"ffffffff0001":"0" +mpi_core_mla:"100000000":"ffffffff":"ffff":"ffffffff0001":"0":"ffffffff0001":"0" mbedtls_mpi_core_mla #699: 0x100000000 + 0xffffffff * 0x10000 = (0x10000ffff0000, carry 0x0)/(0x10000ffff0000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"ffffffff":"10000":"10000ffff0000":"0":"10000ffff0000":"0" +mpi_core_mla:"100000000":"ffffffff":"10000":"10000ffff0000":"0":"10000ffff0000":"0" mbedtls_mpi_core_mla #700: 0x100000000 + 0xffffffff * 0xffffffff = (0xffffffff00000001, carry 0x0)/(0xffffffff00000001, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"ffffffff":"ffffffff":"ffffffff00000001":"0":"ffffffff00000001":"0" +mpi_core_mla:"100000000":"ffffffff":"ffffffff":"ffffffff00000001":"0":"ffffffff00000001":"0" mbedtls_mpi_core_mla #701: 0x100000000 + 0xffffffff * 0x100000000 = (0x0, carry 0x1)/(0x0, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"ffffffff":"100000000":"0":"1":"0":"1" +mpi_core_mla:"100000000":"ffffffff":"100000000":"0":"1":"0":"1" mbedtls_mpi_core_mla #702: 0x100000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x80808081, carry 0x7f7f7f7f)/(0x80808081, carry 0x7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"ffffffff":"7f7f7f7f7f7f7f7f":"80808081":"7f7f7f7f":"80808081":"7f7f7f7f" +mpi_core_mla:"100000000":"ffffffff":"7f7f7f7f7f7f7f7f":"80808081":"7f7f7f7f":"80808081":"7f7f7f7f" mbedtls_mpi_core_mla #703: 0x100000000 + 0xffffffff * 0x8000000000000000 = (0x8000000100000000, carry 0x7fffffff)/(0x8000000100000000, carry 0x7fffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"ffffffff":"8000000000000000":"8000000100000000":"7fffffff":"8000000100000000":"7fffffff" +mpi_core_mla:"100000000":"ffffffff":"8000000000000000":"8000000100000000":"7fffffff":"8000000100000000":"7fffffff" mbedtls_mpi_core_mla #704: 0x100000000 + 0xffffffff * 0xfffffffffffffffe = (0xffffffff00000002, carry 0xfffffffe)/(0xffffffff00000002, carry 0xfffffffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"ffffffff":"fffffffffffffffe":"ffffffff00000002":"fffffffe":"ffffffff00000002":"fffffffe" +mpi_core_mla:"100000000":"ffffffff":"fffffffffffffffe":"ffffffff00000002":"fffffffe":"ffffffff00000002":"fffffffe" mbedtls_mpi_core_mla #705: 0x100000000 + 0x100000000 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"100000000":"0":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"100000000":"0":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #706: 0x100000000 + 0x100000000 * 0x3 = (0x400000000, carry 0x0)/(0x400000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"100000000":"3":"400000000":"0":"400000000":"0" +mpi_core_mla:"100000000":"100000000":"3":"400000000":"0":"400000000":"0" mbedtls_mpi_core_mla #707: 0x100000000 + 0x100000000 * 0xfe = (0xff00000000, carry 0x0)/(0xff00000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"100000000":"fe":"ff00000000":"0":"ff00000000":"0" +mpi_core_mla:"100000000":"100000000":"fe":"ff00000000":"0":"ff00000000":"0" mbedtls_mpi_core_mla #708: 0x100000000 + 0x100000000 * 0xff = (0x10000000000, carry 0x0)/(0x10000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"100000000":"ff":"10000000000":"0":"10000000000":"0" +mpi_core_mla:"100000000":"100000000":"ff":"10000000000":"0":"10000000000":"0" mbedtls_mpi_core_mla #709: 0x100000000 + 0x100000000 * 0xffff = (0x1000000000000, carry 0x0)/(0x1000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"100000000":"ffff":"1000000000000":"0":"1000000000000":"0" +mpi_core_mla:"100000000":"100000000":"ffff":"1000000000000":"0":"1000000000000":"0" mbedtls_mpi_core_mla #710: 0x100000000 + 0x100000000 * 0x10000 = (0x1000100000000, carry 0x0)/(0x1000100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"100000000":"10000":"1000100000000":"0":"1000100000000":"0" +mpi_core_mla:"100000000":"100000000":"10000":"1000100000000":"0":"1000100000000":"0" mbedtls_mpi_core_mla #711: 0x100000000 + 0x100000000 * 0xffffffff = (0x0, carry 0x1)/(0x0, carry 0x1) -mbedtls_mpi_core_mla:"100000000":"100000000":"ffffffff":"0":"1":"0":"1" +mpi_core_mla:"100000000":"100000000":"ffffffff":"0":"1":"0":"1" mbedtls_mpi_core_mla #712: 0x100000000 + 0x100000000 * 0x100000000 = (0x100000000, carry 0x1)/(0x100000000, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"100000000":"100000000":"100000000":"1":"100000000":"1" +mpi_core_mla:"100000000":"100000000":"100000000":"100000000":"1":"100000000":"1" mbedtls_mpi_core_mla #713: 0x100000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f8000000000, carry 0x7f7f7f7f)/(0x7f7f7f8000000000, carry 0x7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f8000000000":"7f7f7f7f":"7f7f7f8000000000":"7f7f7f7f" +mpi_core_mla:"100000000":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f8000000000":"7f7f7f7f":"7f7f7f8000000000":"7f7f7f7f" mbedtls_mpi_core_mla #714: 0x100000000 + 0x100000000 * 0x8000000000000000 = (0x100000000, carry 0x80000000)/(0x100000000, carry 0x80000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"100000000":"8000000000000000":"100000000":"80000000":"100000000":"80000000" +mpi_core_mla:"100000000":"100000000":"8000000000000000":"100000000":"80000000":"100000000":"80000000" mbedtls_mpi_core_mla #715: 0x100000000 + 0x100000000 * 0xfffffffffffffffe = (0xffffffff00000000, carry 0xffffffff)/(0xffffffff00000000, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"100000000":"fffffffffffffffe":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" +mpi_core_mla:"100000000":"100000000":"fffffffffffffffe":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" mbedtls_mpi_core_mla #716: 0x100000000 + 0x20000000000000 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"20000000000000":"0":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"20000000000000":"0":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #717: 0x100000000 + 0x20000000000000 * 0x3 = (0x60000100000000, carry 0x0)/(0x60000100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"20000000000000":"3":"60000100000000":"0":"60000100000000":"0" +mpi_core_mla:"100000000":"20000000000000":"3":"60000100000000":"0":"60000100000000":"0" mbedtls_mpi_core_mla #718: 0x100000000 + 0x20000000000000 * 0xfe = (0x1fc0000100000000, carry 0x0)/(0x1fc0000100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"20000000000000":"fe":"1fc0000100000000":"0":"1fc0000100000000":"0" +mpi_core_mla:"100000000":"20000000000000":"fe":"1fc0000100000000":"0":"1fc0000100000000":"0" mbedtls_mpi_core_mla #719: 0x100000000 + 0x20000000000000 * 0xff = (0x1fe0000100000000, carry 0x0)/(0x1fe0000100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"20000000000000":"ff":"1fe0000100000000":"0":"1fe0000100000000":"0" +mpi_core_mla:"100000000":"20000000000000":"ff":"1fe0000100000000":"0":"1fe0000100000000":"0" mbedtls_mpi_core_mla #720: 0x100000000 + 0x20000000000000 * 0xffff = (0xffe0000100000000, carry 0x1f)/(0xffe0000100000000, carry 0x1f) -mbedtls_mpi_core_mla:"100000000":"20000000000000":"ffff":"ffe0000100000000":"1f":"ffe0000100000000":"1f" +mpi_core_mla:"100000000":"20000000000000":"ffff":"ffe0000100000000":"1f":"ffe0000100000000":"1f" mbedtls_mpi_core_mla #721: 0x100000000 + 0x20000000000000 * 0x10000 = (0x100000000, carry 0x20)/(0x100000000, carry 0x20) -mbedtls_mpi_core_mla:"100000000":"20000000000000":"10000":"100000000":"20":"100000000":"20" +mpi_core_mla:"100000000":"20000000000000":"10000":"100000000":"20":"100000000":"20" mbedtls_mpi_core_mla #722: 0x100000000 + 0x20000000000000 * 0xffffffff = (0xffe0000100000000, carry 0x1fffff)/(0xffe0000100000000, carry 0x1fffff) -mbedtls_mpi_core_mla:"100000000":"20000000000000":"ffffffff":"ffe0000100000000":"1fffff":"ffe0000100000000":"1fffff" +mpi_core_mla:"100000000":"20000000000000":"ffffffff":"ffe0000100000000":"1fffff":"ffe0000100000000":"1fffff" mbedtls_mpi_core_mla #723: 0x100000000 + 0x20000000000000 * 0x100000000 = (0x100000000, carry 0x200000)/(0x100000000, carry 0x200000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"20000000000000":"100000000":"100000000":"200000":"100000000":"200000" +mpi_core_mla:"100000000":"20000000000000":"100000000":"100000000":"200000":"100000000":"200000" mbedtls_mpi_core_mla #724: 0x100000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe0000100000000, carry 0xfefefefefefef)/(0xefe0000100000000, carry 0xfefefefefefef) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000100000000":"fefefefefefef":"efe0000100000000":"fefefefefefef" +mpi_core_mla:"100000000":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000100000000":"fefefefefefef":"efe0000100000000":"fefefefefefef" mbedtls_mpi_core_mla #725: 0x100000000 + 0x20000000000000 * 0x8000000000000000 = (0x100000000, carry 0x10000000000000)/(0x100000000, carry 0x10000000000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"20000000000000":"8000000000000000":"100000000":"10000000000000":"100000000":"10000000000000" +mpi_core_mla:"100000000":"20000000000000":"8000000000000000":"100000000":"10000000000000":"100000000":"10000000000000" mbedtls_mpi_core_mla #726: 0x100000000 + 0x20000000000000 * 0xfffffffffffffffe = (0xffc0000100000000, carry 0x1fffffffffffff)/(0xffc0000100000000, carry 0x1fffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"20000000000000":"fffffffffffffffe":"ffc0000100000000":"1fffffffffffff":"ffc0000100000000":"1fffffffffffff" +mpi_core_mla:"100000000":"20000000000000":"fffffffffffffffe":"ffc0000100000000":"1fffffffffffff":"ffc0000100000000":"1fffffffffffff" mbedtls_mpi_core_mla #727: 0x100000000 + 0xffffffffffffffff * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"0":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"ffffffffffffffff":"0":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #728: 0x100000000 + 0xffffffffffffffff * 0x3 = (0xfffffffd, carry 0x3)/(0xfffffffd, carry 0x3) -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"3":"fffffffd":"3":"fffffffd":"3" +mpi_core_mla:"100000000":"ffffffffffffffff":"3":"fffffffd":"3":"fffffffd":"3" mbedtls_mpi_core_mla #729: 0x100000000 + 0xffffffffffffffff * 0xfe = (0xffffff02, carry 0xfe)/(0xffffff02, carry 0xfe) -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"fe":"ffffff02":"fe":"ffffff02":"fe" +mpi_core_mla:"100000000":"ffffffffffffffff":"fe":"ffffff02":"fe":"ffffff02":"fe" mbedtls_mpi_core_mla #730: 0x100000000 + 0xffffffffffffffff * 0xff = (0xffffff01, carry 0xff)/(0xffffff01, carry 0xff) -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"ff":"ffffff01":"ff":"ffffff01":"ff" +mpi_core_mla:"100000000":"ffffffffffffffff":"ff":"ffffff01":"ff":"ffffff01":"ff" mbedtls_mpi_core_mla #731: 0x100000000 + 0xffffffffffffffff * 0xffff = (0xffff0001, carry 0xffff)/(0xffff0001, carry 0xffff) -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"ffff":"ffff0001":"ffff":"ffff0001":"ffff" +mpi_core_mla:"100000000":"ffffffffffffffff":"ffff":"ffff0001":"ffff":"ffff0001":"ffff" mbedtls_mpi_core_mla #732: 0x100000000 + 0xffffffffffffffff * 0x10000 = (0xffff0000, carry 0x10000)/(0xffff0000, carry 0x10000) -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"10000":"ffff0000":"10000":"ffff0000":"10000" +mpi_core_mla:"100000000":"ffffffffffffffff":"10000":"ffff0000":"10000":"ffff0000":"10000" mbedtls_mpi_core_mla #733: 0x100000000 + 0xffffffffffffffff * 0xffffffff = (0x1, carry 0xffffffff)/(0x1, carry 0xffffffff) -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"ffffffff":"1":"ffffffff":"1":"ffffffff" +mpi_core_mla:"100000000":"ffffffffffffffff":"ffffffff":"1":"ffffffff":"1":"ffffffff" mbedtls_mpi_core_mla #734: 0x100000000 + 0xffffffffffffffff * 0x100000000 = (0x0, carry 0x100000000)/(0x0, carry 0x100000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"100000000":"0":"100000000":"0":"100000000" +mpi_core_mla:"100000000":"ffffffffffffffff":"100000000":"0":"100000000":"0":"100000000" mbedtls_mpi_core_mla #735: 0x100000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808180808081, carry 0x7f7f7f7f7f7f7f7e)/(0x8080808180808081, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808180808081":"7f7f7f7f7f7f7f7e":"8080808180808081":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"100000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808180808081":"7f7f7f7f7f7f7f7e":"8080808180808081":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #736: 0x100000000 + 0xffffffffffffffff * 0x8000000000000000 = (0x8000000100000000, carry 0x7fffffffffffffff)/(0x8000000100000000, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"8000000000000000":"8000000100000000":"7fffffffffffffff":"8000000100000000":"7fffffffffffffff" +mpi_core_mla:"100000000":"ffffffffffffffff":"8000000000000000":"8000000100000000":"7fffffffffffffff":"8000000100000000":"7fffffffffffffff" mbedtls_mpi_core_mla #737: 0x100000000 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x100000002, carry 0xfffffffffffffffd)/(0x100000002, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffff":"fffffffffffffffe":"100000002":"fffffffffffffffd":"100000002":"fffffffffffffffd" +mpi_core_mla:"100000000":"ffffffffffffffff":"fffffffffffffffe":"100000002":"fffffffffffffffd":"100000002":"fffffffffffffffd" mbedtls_mpi_core_mla #738: 0x100000000 + 0x10000000000000000 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"10000000000000000":"0":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"10000000000000000":"0":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #739: 0x100000000 + 0x10000000000000000 * 0x3 = (0x30000000100000000, carry 0x0)/(0x30000000100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"10000000000000000":"3":"30000000100000000":"0":"30000000100000000":"0" +mpi_core_mla:"100000000":"10000000000000000":"3":"30000000100000000":"0":"30000000100000000":"0" mbedtls_mpi_core_mla #740: 0x100000000 + 0x10000000000000000 * 0xfe = (0xfe0000000100000000, carry 0x0)/(0xfe0000000100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"10000000000000000":"fe":"fe0000000100000000":"0":"fe0000000100000000":"0" +mpi_core_mla:"100000000":"10000000000000000":"fe":"fe0000000100000000":"0":"fe0000000100000000":"0" mbedtls_mpi_core_mla #741: 0x100000000 + 0x10000000000000000 * 0xff = (0xff0000000100000000, carry 0x0)/(0xff0000000100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"10000000000000000":"ff":"ff0000000100000000":"0":"ff0000000100000000":"0" +mpi_core_mla:"100000000":"10000000000000000":"ff":"ff0000000100000000":"0":"ff0000000100000000":"0" mbedtls_mpi_core_mla #742: 0x100000000 + 0x10000000000000000 * 0xffff = (0xffff0000000100000000, carry 0x0)/(0xffff0000000100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"10000000000000000":"ffff":"ffff0000000100000000":"0":"ffff0000000100000000":"0" +mpi_core_mla:"100000000":"10000000000000000":"ffff":"ffff0000000100000000":"0":"ffff0000000100000000":"0" mbedtls_mpi_core_mla #743: 0x100000000 + 0x10000000000000000 * 0x10000 = (0x100000000000100000000, carry 0x0)/(0x100000000000100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"10000000000000000":"10000":"100000000000100000000":"0":"100000000000100000000":"0" +mpi_core_mla:"100000000":"10000000000000000":"10000":"100000000000100000000":"0":"100000000000100000000":"0" mbedtls_mpi_core_mla #744: 0x100000000 + 0x10000000000000000 * 0xffffffff = (0xffffffff0000000100000000, carry 0x0)/(0xffffffff0000000100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"10000000000000000":"ffffffff":"ffffffff0000000100000000":"0":"ffffffff0000000100000000":"0" +mpi_core_mla:"100000000":"10000000000000000":"ffffffff":"ffffffff0000000100000000":"0":"ffffffff0000000100000000":"0" mbedtls_mpi_core_mla #745: 0x100000000 + 0x10000000000000000 * 0x100000000 = (0x100000000, carry 0x1)/(0x1000000000000000100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"10000000000000000":"100000000":"100000000":"1":"1000000000000000100000000":"0" +mpi_core_mla:"100000000":"10000000000000000":"100000000":"100000000":"1":"1000000000000000100000000":"0" mbedtls_mpi_core_mla #746: 0x100000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000100000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000100000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000100000000":"0" +mpi_core_mla:"100000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000100000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000100000000":"0" mbedtls_mpi_core_mla #747: 0x100000000 + 0x10000000000000000 * 0x8000000000000000 = (0x100000000, carry 0x80000000)/(0x80000000000000000000000100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"10000000000000000":"8000000000000000":"100000000":"80000000":"80000000000000000000000100000000":"0" +mpi_core_mla:"100000000":"10000000000000000":"8000000000000000":"100000000":"80000000":"80000000000000000000000100000000":"0" mbedtls_mpi_core_mla #748: 0x100000000 + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000100000000, carry 0xffffffff)/(0xfffffffffffffffe0000000100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"10000000000000000":"fffffffffffffffe":"fffffffe0000000100000000":"ffffffff":"fffffffffffffffe0000000100000000":"0" +mpi_core_mla:"100000000":"10000000000000000":"fffffffffffffffe":"fffffffe0000000100000000":"ffffffff":"fffffffffffffffe0000000100000000":"0" mbedtls_mpi_core_mla #749: 0x100000000 + 0x1234567890abcdef0 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"0":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"1234567890abcdef0":"0":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #750: 0x100000000 + 0x1234567890abcdef0 * 0x3 = (0x369d0369c20369cd0, carry 0x0)/(0x369d0369c20369cd0, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"3":"369d0369c20369cd0":"0":"369d0369c20369cd0":"0" +mpi_core_mla:"100000000":"1234567890abcdef0":"3":"369d0369c20369cd0":"0":"369d0369c20369cd0":"0" mbedtls_mpi_core_mla #751: 0x100000000 + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f9a7653220, carry 0x0)/(0x120fedcb9f9a7653220, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"fe":"120fedcb9f9a7653220":"0":"120fedcb9f9a7653220":"0" +mpi_core_mla:"100000000":"1234567890abcdef0":"fe":"120fedcb9f9a7653220":"0":"120fedcb9f9a7653220":"0" mbedtls_mpi_core_mla #752: 0x100000000 + 0x1234567890abcdef0 * 0xff = (0x12222222182b2221110, carry 0x0)/(0x12222222182b2221110, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"ff":"12222222182b2221110":"0":"12222222182b2221110":"0" +mpi_core_mla:"100000000":"1234567890abcdef0":"ff":"12222222182b2221110":"0":"12222222182b2221110":"0" mbedtls_mpi_core_mla #753: 0x100000000 + 0x1234567890abcdef0 * 0xffff = (0x123444443a334d4332110, carry 0x0)/(0x123444443a334d4332110, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"ffff":"123444443a334d4332110":"0":"123444443a334d4332110":"0" +mpi_core_mla:"100000000":"1234567890abcdef0":"ffff":"123444443a334d4332110":"0":"123444443a334d4332110":"0" mbedtls_mpi_core_mla #754: 0x100000000 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abddef00000, carry 0x0)/(0x1234567890abddef00000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"10000":"1234567890abddef00000":"0":"1234567890abddef00000":"0" +mpi_core_mla:"100000000":"1234567890abcdef0":"10000":"1234567890abddef00000":"0":"1234567890abddef00000":"0" mbedtls_mpi_core_mla #755: 0x100000000 + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777767f5432110, carry 0x1)/(0x123456787e7777767f5432110, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"ffffffff":"23456787e7777767f5432110":"1":"123456787e7777767f5432110":"0" +mpi_core_mla:"100000000":"1234567890abcdef0":"ffffffff":"23456787e7777767f5432110":"1":"123456787e7777767f5432110":"0" mbedtls_mpi_core_mla #756: 0x100000000 + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef100000000, carry 0x1)/(0x1234567890abcdef100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"100000000":"234567890abcdef100000000":"1":"1234567890abcdef100000000":"0" +mpi_core_mla:"100000000":"1234567890abcdef0":"100000000":"234567890abcdef100000000":"1":"1234567890abcdef100000000":"0" mbedtls_mpi_core_mla #757: 0x100000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708acaf5ba910, carry 0x91107edb)/(0x91107edbd82bde76f67708acaf5ba910, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708acaf5ba910":"91107edb":"91107edbd82bde76f67708acaf5ba910":"0" +mpi_core_mla:"100000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708acaf5ba910":"91107edb":"91107edbd82bde76f67708acaf5ba910":"0" mbedtls_mpi_core_mla #758: 0x100000000 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f780000000100000000, carry 0x91a2b3c4)/(0x91a2b3c4855e6f780000000100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"8000000000000000":"855e6f780000000100000000":"91a2b3c4":"91a2b3c4855e6f780000000100000000":"0" +mpi_core_mla:"100000000":"1234567890abcdef0":"8000000000000000":"855e6f780000000100000000":"91a2b3c4":"91a2b3c4855e6f780000000100000000":"0" mbedtls_mpi_core_mla #759: 0x100000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530eeea864220, carry 0x123456789)/(0x234567890abcdeedb97530eeea864220, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530eeea864220":"123456789":"234567890abcdeedb97530eeea864220":"1" +mpi_core_mla:"100000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530eeea864220":"123456789":"234567890abcdeedb97530eeea864220":"1" mbedtls_mpi_core_mla #760: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"0":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"0":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #761: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfdfcfcfcfa, carry 0x2)/(0xfffffffffffffffffcfcfcfdfcfcfcfa, carry 0x2) -mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfdfcfcfcfa":"2":"fffffffffffffffffcfcfcfdfcfcfcfa":"2" +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfdfcfcfcfa":"2":"fffffffffffffffffcfcfcfdfcfcfcfa":"2" mbedtls_mpi_core_mla #762: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010201010004, carry 0xfd)/(0xffffffffffffffff0101010201010004, carry 0xfd) -mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010201010004":"fd":"ffffffffffffffff0101010201010004":"fd" +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010201010004":"fd":"ffffffffffffffff0101010201010004":"fd" mbedtls_mpi_core_mla #763: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffff00000000ffffff02, carry 0xfe)/(0xffffffffffffffff00000000ffffff02, carry 0xfe) -mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff00000000ffffff02":"fe":"ffffffffffffffff00000000ffffff02":"fe" +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff00000000ffffff02":"fe":"ffffffffffffffff00000000ffffff02":"fe" mbedtls_mpi_core_mla #764: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeff00000000ffff0102, carry 0xfffe)/(0xfffffffffffffeff00000000ffff0102, carry 0xfffe) -mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff00000000ffff0102":"fffe":"fffffffffffffeff00000000ffff0102":"fffe" +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff00000000ffff0102":"fffe":"fffffffffffffeff00000000ffff0102":"fffe" mbedtls_mpi_core_mla #765: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefffefe0000, carry 0xffff)/(0xfffffffffffffefefefefefffefe0000, carry 0xffff) -mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefffefe0000":"ffff":"fffffffffffffefefefefefffefe0000":"ffff" +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefffefe0000":"ffff":"fffffffffffffefefefefefffefe0000":"ffff" mbedtls_mpi_core_mla #766: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeff0000000001010102, carry 0xfffffffe)/(0xfffffffffefefeff0000000001010102, carry 0xfffffffe) -mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff0000000001010102":"fffffffe":"fffffffffefefeff0000000001010102":"fffffffe" +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff0000000001010102":"fffffffe":"fffffffffefefeff0000000001010102":"fffffffe" mbedtls_mpi_core_mla #767: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefeff00000000, carry 0xffffffff)/(0xfffffffffefefefefefefeff00000000, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefeff00000000":"ffffffff":"fffffffffefefefefefefeff00000000":"ffffffff" +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefeff00000000":"ffffffff":"fffffffffefefefefefefeff00000000":"ffffffff" mbedtls_mpi_core_mla #768: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840483028202, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840483028202, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840483028202":"7f7f7f7f7f7f7f7e":"ff800081018202828504840483028202":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840483028202":"7f7f7f7f7f7f7f7e":"ff800081018202828504840483028202":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #769: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0000000100000000, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f0000000100000000, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000100000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000100000000":"7fffffffffffffff" +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000100000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000100000000":"7fffffffffffffff" mbedtls_mpi_core_mla #770: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020302020204, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020302020204, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020302020204":"fffffffffffffffd":"fefefefefefefefe0202020302020204":"fffffffffffffffd" +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020302020204":"fffffffffffffffd":"fefefefefefefefe0202020302020204":"fffffffffffffffd" mbedtls_mpi_core_mla #771: 0x100000000 + 0x100000000000000000000000000000000 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"0":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"100000000000000000000000000000000":"0":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #772: 0x100000000 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000000000000100000000, carry 0x0)/(0x300000000000000000000000100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"3":"300000000000000000000000100000000":"0":"300000000000000000000000100000000":"0" +mpi_core_mla:"100000000":"100000000000000000000000000000000":"3":"300000000000000000000000100000000":"0":"300000000000000000000000100000000":"0" mbedtls_mpi_core_mla #773: 0x100000000 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000000000000100000000, carry 0x0)/(0xfe00000000000000000000000100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"fe":"fe00000000000000000000000100000000":"0":"fe00000000000000000000000100000000":"0" +mpi_core_mla:"100000000":"100000000000000000000000000000000":"fe":"fe00000000000000000000000100000000":"0":"fe00000000000000000000000100000000":"0" mbedtls_mpi_core_mla #774: 0x100000000 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000000000000100000000, carry 0x0)/(0xff00000000000000000000000100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"ff":"ff00000000000000000000000100000000":"0":"ff00000000000000000000000100000000":"0" +mpi_core_mla:"100000000":"100000000000000000000000000000000":"ff":"ff00000000000000000000000100000000":"0":"ff00000000000000000000000100000000":"0" mbedtls_mpi_core_mla #775: 0x100000000 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000000000000100000000, carry 0x0)/(0xffff00000000000000000000000100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000100000000":"0":"ffff00000000000000000000000100000000":"0" +mpi_core_mla:"100000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000100000000":"0":"ffff00000000000000000000000100000000":"0" mbedtls_mpi_core_mla #776: 0x100000000 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000000000000100000000, carry 0x0)/(0x1000000000000000000000000000100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"10000":"1000000000000000000000000000100000000":"0":"1000000000000000000000000000100000000":"0" +mpi_core_mla:"100000000":"100000000000000000000000000000000":"10000":"1000000000000000000000000000100000000":"0":"1000000000000000000000000000100000000":"0" mbedtls_mpi_core_mla #777: 0x100000000 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000000000000100000000, carry 0x0)/(0xffffffff00000000000000000000000100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000100000000":"0":"ffffffff00000000000000000000000100000000":"0" +mpi_core_mla:"100000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000100000000":"0":"ffffffff00000000000000000000000100000000":"0" mbedtls_mpi_core_mla #778: 0x100000000 + 0x100000000000000000000000000000000 * 0x100000000 = (0x100000000, carry 0x1)/(0x10000000000000000000000000000000100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"100000000":"100000000":"1":"10000000000000000000000000000000100000000":"0" +mpi_core_mla:"100000000":"100000000000000000000000000000000":"100000000":"100000000":"1":"10000000000000000000000000000000100000000":"0" mbedtls_mpi_core_mla #779: 0x100000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000000000000100000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000000000000100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000100000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000100000000":"0" +mpi_core_mla:"100000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000100000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000100000000":"0" mbedtls_mpi_core_mla #780: 0x100000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x100000000, carry 0x80000000)/(0x800000000000000000000000000000000000000100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"8000000000000000":"100000000":"80000000":"800000000000000000000000000000000000000100000000":"0" +mpi_core_mla:"100000000":"100000000000000000000000000000000":"8000000000000000":"100000000":"80000000":"800000000000000000000000000000000000000100000000":"0" mbedtls_mpi_core_mla #781: 0x100000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000000000000100000000, carry 0xffffffff)/(0xfffffffffffffffe00000000000000000000000100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000100000000":"ffffffff":"fffffffffffffffe00000000000000000000000100000000":"0" +mpi_core_mla:"100000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000100000000":"ffffffff":"fffffffffffffffe00000000000000000000000100000000":"0" mbedtls_mpi_core_mla #782: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"0":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"0":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #783: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369c20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369c20369cd0, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369c20369cd0":"0":"369d0369b20369cd0369d0369c20369cd0":"0" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369c20369cd0":"0":"369d0369b20369cd0369d0369c20369cd0":"0" mbedtls_mpi_core_mla #784: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f9a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f9a7653220, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f9a7653220":"0":"120fedcb9f8a76532320fedcb9f9a7653220":"0" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f9a7653220":"0":"120fedcb9f8a76532320fedcb9f9a7653220":"0" mbedtls_mpi_core_mla #785: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222182b2221110, carry 0x0)/(0x12222222181b2221122222222182b2221110, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222182b2221110":"0":"12222222181b2221122222222182b2221110":"0" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222182b2221110":"0":"12222222181b2221122222222182b2221110":"0" mbedtls_mpi_core_mla #786: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a334d4332110, carry 0x0)/(0x123444443a333d433334444443a334d4332110, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a334d4332110":"0":"123444443a333d433334444443a334d4332110":"0" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a334d4332110":"0":"123444443a333d433334444443a334d4332110":"0" mbedtls_mpi_core_mla #787: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abddef00000, carry 0x0)/(0x1234567890abcdef01234567890abddef00000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abddef00000":"0":"1234567890abcdef01234567890abddef00000":"0" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abddef00000":"0":"1234567890abcdef01234567890abddef00000":"0" mbedtls_mpi_core_mla #788: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777767f5432110, carry 0x12)/(0x123456787e7777767077777887e7777767f5432110, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777767f5432110":"12":"123456787e7777767077777887e7777767f5432110":"0" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777767f5432110":"12":"123456787e7777767077777887e7777767f5432110":"0" mbedtls_mpi_core_mla #789: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef100000000, carry 0x12)/(0x1234567890abcdef01234567890abcdef100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef100000000":"12":"1234567890abcdef01234567890abcdef100000000":"0" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef100000000":"12":"1234567890abcdef01234567890abcdef100000000":"0" mbedtls_mpi_core_mla #790: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708acaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708acaf5ba910, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708acaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708acaf5ba910":"9" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708acaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708acaf5ba910":"9" mbedtls_mpi_core_mla #791: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f780000000100000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f780000000100000000, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000100000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"9" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000100000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"9" mbedtls_mpi_core_mla #792: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530eeea864220, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530eeea864220, carry 0x12) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530eeea864220":"1234567890":"34567890abcdeedcba987667b32100edb97530eeea864220":"12" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530eeea864220":"1234567890":"34567890abcdeedcba987667b32100edb97530eeea864220":"12" mbedtls_mpi_core_mla #793: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #794: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffd, carry 0x3)/(0xfffffffd, carry 0x3) -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffd":"3":"fffffffd":"3" +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffd":"3":"fffffffd":"3" mbedtls_mpi_core_mla #795: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffff02, carry 0xfe)/(0xffffff02, carry 0xfe) -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffff02":"fe":"ffffff02":"fe" +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffff02":"fe":"ffffff02":"fe" mbedtls_mpi_core_mla #796: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffff01, carry 0xff)/(0xffffff01, carry 0xff) -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffff01":"ff":"ffffff01":"ff" +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffff01":"ff":"ffffff01":"ff" mbedtls_mpi_core_mla #797: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffff0001, carry 0xffff)/(0xffff0001, carry 0xffff) -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff0001":"ffff":"ffff0001":"ffff" +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff0001":"ffff":"ffff0001":"ffff" mbedtls_mpi_core_mla #798: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffff0000, carry 0x10000)/(0xffff0000, carry 0x10000) -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffff0000":"10000":"ffff0000":"10000" +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffff0000":"10000":"ffff0000":"10000" mbedtls_mpi_core_mla #799: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1, carry 0xffffffff)/(0x1, carry 0xffffffff) -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1":"ffffffff":"1":"ffffffff" +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1":"ffffffff":"1":"ffffffff" mbedtls_mpi_core_mla #800: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x0, carry 0x100000000)/(0x0, carry 0x100000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"0":"100000000":"0":"100000000" +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"0":"100000000":"0":"100000000" mbedtls_mpi_core_mla #801: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #802: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000":"7fffffffffffffff" +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000":"7fffffffffffffff" mbedtls_mpi_core_mla #803: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002":"fffffffffffffffd" +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002":"fffffffffffffffd" mbedtls_mpi_core_mla #804: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #805: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0":"0" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0":"0" mbedtls_mpi_core_mla #806: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220":"0" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220":"0" mbedtls_mpi_core_mla #807: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222182b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222182b2221110, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222182b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222182b2221110":"0" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222182b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222182b2221110":"0" mbedtls_mpi_core_mla #808: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110":"0" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110":"0" mbedtls_mpi_core_mla #809: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000":"0" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000":"0" mbedtls_mpi_core_mla #810: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110":"0" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110":"0" mbedtls_mpi_core_mla #811: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000":"0" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000":"0" mbedtls_mpi_core_mla #812: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910, carry 0x911) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910":"911" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910":"911" mbedtls_mpi_core_mla #813: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000, carry 0x91a) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"91a" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"91a" mbedtls_mpi_core_mla #814: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220, carry 0x1234) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220":"1234" +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220":"1234" mbedtls_mpi_core_mla #815: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000":"0":"100000000":"0" +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000":"0":"100000000":"0" mbedtls_mpi_core_mla #816: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381":"0" +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381":"0" mbedtls_mpi_core_mla #817: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa":"0" +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa":"0" mbedtls_mpi_core_mla #818: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5":"0" +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5":"0" mbedtls_mpi_core_mla #819: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5":"0" +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5":"0" mbedtls_mpi_core_mla #820: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000, carry 0x0) -mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000":"0" +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000":"0" mbedtls_mpi_core_mla #821: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5, carry 0x4) -mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5":"4" +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5":"4" mbedtls_mpi_core_mla #822: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000, carry 0x4) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000":"4" +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000":"4" mbedtls_mpi_core_mla #823: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955, carry 0x26d473ca9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955":"26d473ca9" +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955":"26d473ca9" mbedtls_mpi_core_mla #824: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000, carry 0x26fb9683d) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000":"26fb9683d" +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000":"26fb9683d" mbedtls_mpi_core_mla #825: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa, carry 0x4df72d07b) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa":"4df72d07b" +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa":"4df72d07b" mbedtls_mpi_core_mla #826: 0x20000000000000 + 0x0 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"0":"0":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"0":"0":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #827: 0x20000000000000 + 0x0 * 0x3 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"0":"3":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"0":"3":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #828: 0x20000000000000 + 0x0 * 0xfe = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"0":"fe":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"0":"fe":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #829: 0x20000000000000 + 0x0 * 0xff = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"0":"ff":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"0":"ff":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #830: 0x20000000000000 + 0x0 * 0xffff = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"0":"ffff":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"0":"ffff":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #831: 0x20000000000000 + 0x0 * 0x10000 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"0":"10000":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"0":"10000":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #832: 0x20000000000000 + 0x0 * 0xffffffff = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"0":"ffffffff":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"0":"ffffffff":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #833: 0x20000000000000 + 0x0 * 0x100000000 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"0":"100000000":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"0":"100000000":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #834: 0x20000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"0":"7f7f7f7f7f7f7f7f":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"0":"7f7f7f7f7f7f7f7f":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #835: 0x20000000000000 + 0x0 * 0x8000000000000000 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"0":"8000000000000000":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"0":"8000000000000000":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #836: 0x20000000000000 + 0x0 * 0xfffffffffffffffe = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"0":"fffffffffffffffe":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"0":"fffffffffffffffe":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #837: 0x20000000000000 + 0x1 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1":"0":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"1":"0":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #838: 0x20000000000000 + 0x1 * 0x3 = (0x20000000000003, carry 0x0)/(0x20000000000003, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1":"3":"20000000000003":"0":"20000000000003":"0" +mpi_core_mla:"20000000000000":"1":"3":"20000000000003":"0":"20000000000003":"0" mbedtls_mpi_core_mla #839: 0x20000000000000 + 0x1 * 0xfe = (0x200000000000fe, carry 0x0)/(0x200000000000fe, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1":"fe":"200000000000fe":"0":"200000000000fe":"0" +mpi_core_mla:"20000000000000":"1":"fe":"200000000000fe":"0":"200000000000fe":"0" mbedtls_mpi_core_mla #840: 0x20000000000000 + 0x1 * 0xff = (0x200000000000ff, carry 0x0)/(0x200000000000ff, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1":"ff":"200000000000ff":"0":"200000000000ff":"0" +mpi_core_mla:"20000000000000":"1":"ff":"200000000000ff":"0":"200000000000ff":"0" mbedtls_mpi_core_mla #841: 0x20000000000000 + 0x1 * 0xffff = (0x2000000000ffff, carry 0x0)/(0x2000000000ffff, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1":"ffff":"2000000000ffff":"0":"2000000000ffff":"0" +mpi_core_mla:"20000000000000":"1":"ffff":"2000000000ffff":"0":"2000000000ffff":"0" mbedtls_mpi_core_mla #842: 0x20000000000000 + 0x1 * 0x10000 = (0x20000000010000, carry 0x0)/(0x20000000010000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1":"10000":"20000000010000":"0":"20000000010000":"0" +mpi_core_mla:"20000000000000":"1":"10000":"20000000010000":"0":"20000000010000":"0" mbedtls_mpi_core_mla #843: 0x20000000000000 + 0x1 * 0xffffffff = (0x200000ffffffff, carry 0x0)/(0x200000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1":"ffffffff":"200000ffffffff":"0":"200000ffffffff":"0" +mpi_core_mla:"20000000000000":"1":"ffffffff":"200000ffffffff":"0":"200000ffffffff":"0" mbedtls_mpi_core_mla #844: 0x20000000000000 + 0x1 * 0x100000000 = (0x20000100000000, carry 0x0)/(0x20000100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"1":"100000000":"20000100000000":"0":"20000100000000":"0" +mpi_core_mla:"20000000000000":"1":"100000000":"20000100000000":"0":"20000100000000":"0" mbedtls_mpi_core_mla #845: 0x20000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f9f7f7f7f7f7f7f, carry 0x0)/(0x7f9f7f7f7f7f7f7f, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"1":"7f7f7f7f7f7f7f7f":"7f9f7f7f7f7f7f7f":"0":"7f9f7f7f7f7f7f7f":"0" +mpi_core_mla:"20000000000000":"1":"7f7f7f7f7f7f7f7f":"7f9f7f7f7f7f7f7f":"0":"7f9f7f7f7f7f7f7f":"0" mbedtls_mpi_core_mla #846: 0x20000000000000 + 0x1 * 0x8000000000000000 = (0x8020000000000000, carry 0x0)/(0x8020000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"1":"8000000000000000":"8020000000000000":"0":"8020000000000000":"0" +mpi_core_mla:"20000000000000":"1":"8000000000000000":"8020000000000000":"0":"8020000000000000":"0" mbedtls_mpi_core_mla #847: 0x20000000000000 + 0x1 * 0xfffffffffffffffe = (0x1ffffffffffffe, carry 0x1)/(0x1ffffffffffffe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"1":"fffffffffffffffe":"1ffffffffffffe":"1":"1ffffffffffffe":"1" +mpi_core_mla:"20000000000000":"1":"fffffffffffffffe":"1ffffffffffffe":"1":"1ffffffffffffe":"1" mbedtls_mpi_core_mla #848: 0x20000000000000 + 0xfffe * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"fffe":"0":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"fffe":"0":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #849: 0x20000000000000 + 0xfffe * 0x3 = (0x2000000002fffa, carry 0x0)/(0x2000000002fffa, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"fffe":"3":"2000000002fffa":"0":"2000000002fffa":"0" +mpi_core_mla:"20000000000000":"fffe":"3":"2000000002fffa":"0":"2000000002fffa":"0" mbedtls_mpi_core_mla #850: 0x20000000000000 + 0xfffe * 0xfe = (0x20000000fdfe04, carry 0x0)/(0x20000000fdfe04, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"fffe":"fe":"20000000fdfe04":"0":"20000000fdfe04":"0" +mpi_core_mla:"20000000000000":"fffe":"fe":"20000000fdfe04":"0":"20000000fdfe04":"0" mbedtls_mpi_core_mla #851: 0x20000000000000 + 0xfffe * 0xff = (0x20000000fefe02, carry 0x0)/(0x20000000fefe02, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"fffe":"ff":"20000000fefe02":"0":"20000000fefe02":"0" +mpi_core_mla:"20000000000000":"fffe":"ff":"20000000fefe02":"0":"20000000fefe02":"0" mbedtls_mpi_core_mla #852: 0x20000000000000 + 0xfffe * 0xffff = (0x200000fffd0002, carry 0x0)/(0x200000fffd0002, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"fffe":"ffff":"200000fffd0002":"0":"200000fffd0002":"0" +mpi_core_mla:"20000000000000":"fffe":"ffff":"200000fffd0002":"0":"200000fffd0002":"0" mbedtls_mpi_core_mla #853: 0x20000000000000 + 0xfffe * 0x10000 = (0x200000fffe0000, carry 0x0)/(0x200000fffe0000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"fffe":"10000":"200000fffe0000":"0":"200000fffe0000":"0" +mpi_core_mla:"20000000000000":"fffe":"10000":"200000fffe0000":"0":"200000fffe0000":"0" mbedtls_mpi_core_mla #854: 0x20000000000000 + 0xfffe * 0xffffffff = (0x20fffdffff0002, carry 0x0)/(0x20fffdffff0002, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"fffe":"ffffffff":"20fffdffff0002":"0":"20fffdffff0002":"0" +mpi_core_mla:"20000000000000":"fffe":"ffffffff":"20fffdffff0002":"0":"20fffdffff0002":"0" mbedtls_mpi_core_mla #855: 0x20000000000000 + 0xfffe * 0x100000000 = (0x20fffe00000000, carry 0x0)/(0x20fffe00000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"fffe":"100000000":"20fffe00000000":"0":"20fffe00000000":"0" +mpi_core_mla:"20000000000000":"fffe":"100000000":"20fffe00000000":"0":"20fffe00000000":"0" mbedtls_mpi_core_mla #856: 0x20000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80a0808080800102, carry 0x7f7e)/(0x80a0808080800102, carry 0x7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"fffe":"7f7f7f7f7f7f7f7f":"80a0808080800102":"7f7e":"80a0808080800102":"7f7e" +mpi_core_mla:"20000000000000":"fffe":"7f7f7f7f7f7f7f7f":"80a0808080800102":"7f7e":"80a0808080800102":"7f7e" mbedtls_mpi_core_mla #857: 0x20000000000000 + 0xfffe * 0x8000000000000000 = (0x20000000000000, carry 0x7fff)/(0x20000000000000, carry 0x7fff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"fffe":"8000000000000000":"20000000000000":"7fff":"20000000000000":"7fff" +mpi_core_mla:"20000000000000":"fffe":"8000000000000000":"20000000000000":"7fff":"20000000000000":"7fff" mbedtls_mpi_core_mla #858: 0x20000000000000 + 0xfffe * 0xfffffffffffffffe = (0x1ffffffffe0004, carry 0xfffe)/(0x1ffffffffe0004, carry 0xfffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"fffe":"fffffffffffffffe":"1ffffffffe0004":"fffe":"1ffffffffe0004":"fffe" +mpi_core_mla:"20000000000000":"fffe":"fffffffffffffffe":"1ffffffffe0004":"fffe":"1ffffffffe0004":"fffe" mbedtls_mpi_core_mla #859: 0x20000000000000 + 0xffffffff * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"0":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"ffffffff":"0":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #860: 0x20000000000000 + 0xffffffff * 0x3 = (0x200002fffffffd, carry 0x0)/(0x200002fffffffd, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"3":"200002fffffffd":"0":"200002fffffffd":"0" +mpi_core_mla:"20000000000000":"ffffffff":"3":"200002fffffffd":"0":"200002fffffffd":"0" mbedtls_mpi_core_mla #861: 0x20000000000000 + 0xffffffff * 0xfe = (0x2000fdffffff02, carry 0x0)/(0x2000fdffffff02, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"fe":"2000fdffffff02":"0":"2000fdffffff02":"0" +mpi_core_mla:"20000000000000":"ffffffff":"fe":"2000fdffffff02":"0":"2000fdffffff02":"0" mbedtls_mpi_core_mla #862: 0x20000000000000 + 0xffffffff * 0xff = (0x2000feffffff01, carry 0x0)/(0x2000feffffff01, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"ff":"2000feffffff01":"0":"2000feffffff01":"0" +mpi_core_mla:"20000000000000":"ffffffff":"ff":"2000feffffff01":"0":"2000feffffff01":"0" mbedtls_mpi_core_mla #863: 0x20000000000000 + 0xffffffff * 0xffff = (0x20fffeffff0001, carry 0x0)/(0x20fffeffff0001, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"ffff":"20fffeffff0001":"0":"20fffeffff0001":"0" +mpi_core_mla:"20000000000000":"ffffffff":"ffff":"20fffeffff0001":"0":"20fffeffff0001":"0" mbedtls_mpi_core_mla #864: 0x20000000000000 + 0xffffffff * 0x10000 = (0x20ffffffff0000, carry 0x0)/(0x20ffffffff0000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"10000":"20ffffffff0000":"0":"20ffffffff0000":"0" +mpi_core_mla:"20000000000000":"ffffffff":"10000":"20ffffffff0000":"0":"20ffffffff0000":"0" mbedtls_mpi_core_mla #865: 0x20000000000000 + 0xffffffff * 0xffffffff = (0x1ffffe00000001, carry 0x1)/(0x1ffffe00000001, carry 0x1) -mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"ffffffff":"1ffffe00000001":"1":"1ffffe00000001":"1" +mpi_core_mla:"20000000000000":"ffffffff":"ffffffff":"1ffffe00000001":"1":"1ffffe00000001":"1" mbedtls_mpi_core_mla #866: 0x20000000000000 + 0xffffffff * 0x100000000 = (0x1fffff00000000, carry 0x1)/(0x1fffff00000000, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"100000000":"1fffff00000000":"1":"1fffff00000000":"1" +mpi_core_mla:"20000000000000":"ffffffff":"100000000":"1fffff00000000":"1":"1fffff00000000":"1" mbedtls_mpi_core_mla #867: 0x20000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x1fffff80808081, carry 0x7f7f7f7f)/(0x1fffff80808081, carry 0x7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"1fffff80808081":"7f7f7f7f":"1fffff80808081":"7f7f7f7f" +mpi_core_mla:"20000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"1fffff80808081":"7f7f7f7f":"1fffff80808081":"7f7f7f7f" mbedtls_mpi_core_mla #868: 0x20000000000000 + 0xffffffff * 0x8000000000000000 = (0x8020000000000000, carry 0x7fffffff)/(0x8020000000000000, carry 0x7fffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"8000000000000000":"8020000000000000":"7fffffff":"8020000000000000":"7fffffff" +mpi_core_mla:"20000000000000":"ffffffff":"8000000000000000":"8020000000000000":"7fffffff":"8020000000000000":"7fffffff" mbedtls_mpi_core_mla #869: 0x20000000000000 + 0xffffffff * 0xfffffffffffffffe = (0x1ffffe00000002, carry 0xffffffff)/(0x1ffffe00000002, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"ffffffff":"fffffffffffffffe":"1ffffe00000002":"ffffffff":"1ffffe00000002":"ffffffff" +mpi_core_mla:"20000000000000":"ffffffff":"fffffffffffffffe":"1ffffe00000002":"ffffffff":"1ffffe00000002":"ffffffff" mbedtls_mpi_core_mla #870: 0x20000000000000 + 0x100000000 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"100000000":"0":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"100000000":"0":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #871: 0x20000000000000 + 0x100000000 * 0x3 = (0x20000300000000, carry 0x0)/(0x20000300000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"100000000":"3":"20000300000000":"0":"20000300000000":"0" +mpi_core_mla:"20000000000000":"100000000":"3":"20000300000000":"0":"20000300000000":"0" mbedtls_mpi_core_mla #872: 0x20000000000000 + 0x100000000 * 0xfe = (0x2000fe00000000, carry 0x0)/(0x2000fe00000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"100000000":"fe":"2000fe00000000":"0":"2000fe00000000":"0" +mpi_core_mla:"20000000000000":"100000000":"fe":"2000fe00000000":"0":"2000fe00000000":"0" mbedtls_mpi_core_mla #873: 0x20000000000000 + 0x100000000 * 0xff = (0x2000ff00000000, carry 0x0)/(0x2000ff00000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"100000000":"ff":"2000ff00000000":"0":"2000ff00000000":"0" +mpi_core_mla:"20000000000000":"100000000":"ff":"2000ff00000000":"0":"2000ff00000000":"0" mbedtls_mpi_core_mla #874: 0x20000000000000 + 0x100000000 * 0xffff = (0x20ffff00000000, carry 0x0)/(0x20ffff00000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"100000000":"ffff":"20ffff00000000":"0":"20ffff00000000":"0" +mpi_core_mla:"20000000000000":"100000000":"ffff":"20ffff00000000":"0":"20ffff00000000":"0" mbedtls_mpi_core_mla #875: 0x20000000000000 + 0x100000000 * 0x10000 = (0x21000000000000, carry 0x0)/(0x21000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"100000000":"10000":"21000000000000":"0":"21000000000000":"0" +mpi_core_mla:"20000000000000":"100000000":"10000":"21000000000000":"0":"21000000000000":"0" mbedtls_mpi_core_mla #876: 0x20000000000000 + 0x100000000 * 0xffffffff = (0x1fffff00000000, carry 0x1)/(0x1fffff00000000, carry 0x1) -mbedtls_mpi_core_mla:"20000000000000":"100000000":"ffffffff":"1fffff00000000":"1":"1fffff00000000":"1" +mpi_core_mla:"20000000000000":"100000000":"ffffffff":"1fffff00000000":"1":"1fffff00000000":"1" mbedtls_mpi_core_mla #877: 0x20000000000000 + 0x100000000 * 0x100000000 = (0x20000000000000, carry 0x1)/(0x20000000000000, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"100000000":"100000000":"20000000000000":"1":"20000000000000":"1" +mpi_core_mla:"20000000000000":"100000000":"100000000":"20000000000000":"1":"20000000000000":"1" mbedtls_mpi_core_mla #878: 0x20000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f9f7f7f00000000, carry 0x7f7f7f7f)/(0x7f9f7f7f00000000, carry 0x7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"100000000":"7f7f7f7f7f7f7f7f":"7f9f7f7f00000000":"7f7f7f7f":"7f9f7f7f00000000":"7f7f7f7f" +mpi_core_mla:"20000000000000":"100000000":"7f7f7f7f7f7f7f7f":"7f9f7f7f00000000":"7f7f7f7f":"7f9f7f7f00000000":"7f7f7f7f" mbedtls_mpi_core_mla #879: 0x20000000000000 + 0x100000000 * 0x8000000000000000 = (0x20000000000000, carry 0x80000000)/(0x20000000000000, carry 0x80000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"100000000":"8000000000000000":"20000000000000":"80000000":"20000000000000":"80000000" +mpi_core_mla:"20000000000000":"100000000":"8000000000000000":"20000000000000":"80000000":"20000000000000":"80000000" mbedtls_mpi_core_mla #880: 0x20000000000000 + 0x100000000 * 0xfffffffffffffffe = (0x1ffffe00000000, carry 0x100000000)/(0x1ffffe00000000, carry 0x100000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"100000000":"fffffffffffffffe":"1ffffe00000000":"100000000":"1ffffe00000000":"100000000" +mpi_core_mla:"20000000000000":"100000000":"fffffffffffffffe":"1ffffe00000000":"100000000":"1ffffe00000000":"100000000" mbedtls_mpi_core_mla #881: 0x20000000000000 + 0x20000000000000 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"0":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"20000000000000":"0":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #882: 0x20000000000000 + 0x20000000000000 * 0x3 = (0x80000000000000, carry 0x0)/(0x80000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"3":"80000000000000":"0":"80000000000000":"0" +mpi_core_mla:"20000000000000":"20000000000000":"3":"80000000000000":"0":"80000000000000":"0" mbedtls_mpi_core_mla #883: 0x20000000000000 + 0x20000000000000 * 0xfe = (0x1fe0000000000000, carry 0x0)/(0x1fe0000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"fe":"1fe0000000000000":"0":"1fe0000000000000":"0" +mpi_core_mla:"20000000000000":"20000000000000":"fe":"1fe0000000000000":"0":"1fe0000000000000":"0" mbedtls_mpi_core_mla #884: 0x20000000000000 + 0x20000000000000 * 0xff = (0x2000000000000000, carry 0x0)/(0x2000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"ff":"2000000000000000":"0":"2000000000000000":"0" +mpi_core_mla:"20000000000000":"20000000000000":"ff":"2000000000000000":"0":"2000000000000000":"0" mbedtls_mpi_core_mla #885: 0x20000000000000 + 0x20000000000000 * 0xffff = (0x0, carry 0x20)/(0x0, carry 0x20) -mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"ffff":"0":"20":"0":"20" +mpi_core_mla:"20000000000000":"20000000000000":"ffff":"0":"20":"0":"20" mbedtls_mpi_core_mla #886: 0x20000000000000 + 0x20000000000000 * 0x10000 = (0x20000000000000, carry 0x20)/(0x20000000000000, carry 0x20) -mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"10000":"20000000000000":"20":"20000000000000":"20" +mpi_core_mla:"20000000000000":"20000000000000":"10000":"20000000000000":"20":"20000000000000":"20" mbedtls_mpi_core_mla #887: 0x20000000000000 + 0x20000000000000 * 0xffffffff = (0x0, carry 0x200000)/(0x0, carry 0x200000) -mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"ffffffff":"0":"200000":"0":"200000" +mpi_core_mla:"20000000000000":"20000000000000":"ffffffff":"0":"200000":"0":"200000" mbedtls_mpi_core_mla #888: 0x20000000000000 + 0x20000000000000 * 0x100000000 = (0x20000000000000, carry 0x200000)/(0x20000000000000, carry 0x200000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"100000000":"20000000000000":"200000":"20000000000000":"200000" +mpi_core_mla:"20000000000000":"20000000000000":"100000000":"20000000000000":"200000":"20000000000000":"200000" mbedtls_mpi_core_mla #889: 0x20000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xf000000000000000, carry 0xfefefefefefef)/(0xf000000000000000, carry 0xfefefefefefef) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"f000000000000000":"fefefefefefef":"f000000000000000":"fefefefefefef" +mpi_core_mla:"20000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"f000000000000000":"fefefefefefef":"f000000000000000":"fefefefefefef" mbedtls_mpi_core_mla #890: 0x20000000000000 + 0x20000000000000 * 0x8000000000000000 = (0x20000000000000, carry 0x10000000000000)/(0x20000000000000, carry 0x10000000000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"8000000000000000":"20000000000000":"10000000000000":"20000000000000":"10000000000000" +mpi_core_mla:"20000000000000":"20000000000000":"8000000000000000":"20000000000000":"10000000000000":"20000000000000":"10000000000000" mbedtls_mpi_core_mla #891: 0x20000000000000 + 0x20000000000000 * 0xfffffffffffffffe = (0xffe0000000000000, carry 0x1fffffffffffff)/(0xffe0000000000000, carry 0x1fffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"20000000000000":"fffffffffffffffe":"ffe0000000000000":"1fffffffffffff":"ffe0000000000000":"1fffffffffffff" +mpi_core_mla:"20000000000000":"20000000000000":"fffffffffffffffe":"ffe0000000000000":"1fffffffffffff":"ffe0000000000000":"1fffffffffffff" mbedtls_mpi_core_mla #892: 0x20000000000000 + 0xffffffffffffffff * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"0":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"ffffffffffffffff":"0":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #893: 0x20000000000000 + 0xffffffffffffffff * 0x3 = (0x1ffffffffffffd, carry 0x3)/(0x1ffffffffffffd, carry 0x3) -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"3":"1ffffffffffffd":"3":"1ffffffffffffd":"3" +mpi_core_mla:"20000000000000":"ffffffffffffffff":"3":"1ffffffffffffd":"3":"1ffffffffffffd":"3" mbedtls_mpi_core_mla #894: 0x20000000000000 + 0xffffffffffffffff * 0xfe = (0x1fffffffffff02, carry 0xfe)/(0x1fffffffffff02, carry 0xfe) -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"fe":"1fffffffffff02":"fe":"1fffffffffff02":"fe" +mpi_core_mla:"20000000000000":"ffffffffffffffff":"fe":"1fffffffffff02":"fe":"1fffffffffff02":"fe" mbedtls_mpi_core_mla #895: 0x20000000000000 + 0xffffffffffffffff * 0xff = (0x1fffffffffff01, carry 0xff)/(0x1fffffffffff01, carry 0xff) -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"ff":"1fffffffffff01":"ff":"1fffffffffff01":"ff" +mpi_core_mla:"20000000000000":"ffffffffffffffff":"ff":"1fffffffffff01":"ff":"1fffffffffff01":"ff" mbedtls_mpi_core_mla #896: 0x20000000000000 + 0xffffffffffffffff * 0xffff = (0x1fffffffff0001, carry 0xffff)/(0x1fffffffff0001, carry 0xffff) -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"ffff":"1fffffffff0001":"ffff":"1fffffffff0001":"ffff" +mpi_core_mla:"20000000000000":"ffffffffffffffff":"ffff":"1fffffffff0001":"ffff":"1fffffffff0001":"ffff" mbedtls_mpi_core_mla #897: 0x20000000000000 + 0xffffffffffffffff * 0x10000 = (0x1fffffffff0000, carry 0x10000)/(0x1fffffffff0000, carry 0x10000) -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"10000":"1fffffffff0000":"10000":"1fffffffff0000":"10000" +mpi_core_mla:"20000000000000":"ffffffffffffffff":"10000":"1fffffffff0000":"10000":"1fffffffff0000":"10000" mbedtls_mpi_core_mla #898: 0x20000000000000 + 0xffffffffffffffff * 0xffffffff = (0x1fffff00000001, carry 0xffffffff)/(0x1fffff00000001, carry 0xffffffff) -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"ffffffff":"1fffff00000001":"ffffffff":"1fffff00000001":"ffffffff" +mpi_core_mla:"20000000000000":"ffffffffffffffff":"ffffffff":"1fffff00000001":"ffffffff":"1fffff00000001":"ffffffff" mbedtls_mpi_core_mla #899: 0x20000000000000 + 0xffffffffffffffff * 0x100000000 = (0x1fffff00000000, carry 0x100000000)/(0x1fffff00000000, carry 0x100000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"100000000":"1fffff00000000":"100000000":"1fffff00000000":"100000000" +mpi_core_mla:"20000000000000":"ffffffffffffffff":"100000000":"1fffff00000000":"100000000":"1fffff00000000":"100000000" mbedtls_mpi_core_mla #900: 0x20000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x80a0808080808081, carry 0x7f7f7f7f7f7f7f7e)/(0x80a0808080808081, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"80a0808080808081":"7f7f7f7f7f7f7f7e":"80a0808080808081":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"20000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"80a0808080808081":"7f7f7f7f7f7f7f7e":"80a0808080808081":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #901: 0x20000000000000 + 0xffffffffffffffff * 0x8000000000000000 = (0x8020000000000000, carry 0x7fffffffffffffff)/(0x8020000000000000, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"8000000000000000":"8020000000000000":"7fffffffffffffff":"8020000000000000":"7fffffffffffffff" +mpi_core_mla:"20000000000000":"ffffffffffffffff":"8000000000000000":"8020000000000000":"7fffffffffffffff":"8020000000000000":"7fffffffffffffff" mbedtls_mpi_core_mla #902: 0x20000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x20000000000002, carry 0xfffffffffffffffd)/(0x20000000000002, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffff":"fffffffffffffffe":"20000000000002":"fffffffffffffffd":"20000000000002":"fffffffffffffffd" +mpi_core_mla:"20000000000000":"ffffffffffffffff":"fffffffffffffffe":"20000000000002":"fffffffffffffffd":"20000000000002":"fffffffffffffffd" mbedtls_mpi_core_mla #903: 0x20000000000000 + 0x10000000000000000 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"0":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"10000000000000000":"0":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #904: 0x20000000000000 + 0x10000000000000000 * 0x3 = (0x30020000000000000, carry 0x0)/(0x30020000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"3":"30020000000000000":"0":"30020000000000000":"0" +mpi_core_mla:"20000000000000":"10000000000000000":"3":"30020000000000000":"0":"30020000000000000":"0" mbedtls_mpi_core_mla #905: 0x20000000000000 + 0x10000000000000000 * 0xfe = (0xfe0020000000000000, carry 0x0)/(0xfe0020000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"fe":"fe0020000000000000":"0":"fe0020000000000000":"0" +mpi_core_mla:"20000000000000":"10000000000000000":"fe":"fe0020000000000000":"0":"fe0020000000000000":"0" mbedtls_mpi_core_mla #906: 0x20000000000000 + 0x10000000000000000 * 0xff = (0xff0020000000000000, carry 0x0)/(0xff0020000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"ff":"ff0020000000000000":"0":"ff0020000000000000":"0" +mpi_core_mla:"20000000000000":"10000000000000000":"ff":"ff0020000000000000":"0":"ff0020000000000000":"0" mbedtls_mpi_core_mla #907: 0x20000000000000 + 0x10000000000000000 * 0xffff = (0xffff0020000000000000, carry 0x0)/(0xffff0020000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"ffff":"ffff0020000000000000":"0":"ffff0020000000000000":"0" +mpi_core_mla:"20000000000000":"10000000000000000":"ffff":"ffff0020000000000000":"0":"ffff0020000000000000":"0" mbedtls_mpi_core_mla #908: 0x20000000000000 + 0x10000000000000000 * 0x10000 = (0x100000020000000000000, carry 0x0)/(0x100000020000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"10000":"100000020000000000000":"0":"100000020000000000000":"0" +mpi_core_mla:"20000000000000":"10000000000000000":"10000":"100000020000000000000":"0":"100000020000000000000":"0" mbedtls_mpi_core_mla #909: 0x20000000000000 + 0x10000000000000000 * 0xffffffff = (0xffffffff0020000000000000, carry 0x0)/(0xffffffff0020000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"ffffffff":"ffffffff0020000000000000":"0":"ffffffff0020000000000000":"0" +mpi_core_mla:"20000000000000":"10000000000000000":"ffffffff":"ffffffff0020000000000000":"0":"ffffffff0020000000000000":"0" mbedtls_mpi_core_mla #910: 0x20000000000000 + 0x10000000000000000 * 0x100000000 = (0x20000000000000, carry 0x1)/(0x1000000000020000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"100000000":"20000000000000":"1":"1000000000020000000000000":"0" +mpi_core_mla:"20000000000000":"10000000000000000":"100000000":"20000000000000":"1":"1000000000020000000000000":"0" mbedtls_mpi_core_mla #911: 0x20000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0020000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0020000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0020000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0020000000000000":"0" +mpi_core_mla:"20000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0020000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0020000000000000":"0" mbedtls_mpi_core_mla #912: 0x20000000000000 + 0x10000000000000000 * 0x8000000000000000 = (0x20000000000000, carry 0x80000000)/(0x80000000000000000020000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"8000000000000000":"20000000000000":"80000000":"80000000000000000020000000000000":"0" +mpi_core_mla:"20000000000000":"10000000000000000":"8000000000000000":"20000000000000":"80000000":"80000000000000000020000000000000":"0" mbedtls_mpi_core_mla #913: 0x20000000000000 + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe0020000000000000, carry 0xffffffff)/(0xfffffffffffffffe0020000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"10000000000000000":"fffffffffffffffe":"fffffffe0020000000000000":"ffffffff":"fffffffffffffffe0020000000000000":"0" +mpi_core_mla:"20000000000000":"10000000000000000":"fffffffffffffffe":"fffffffe0020000000000000":"ffffffff":"fffffffffffffffe0020000000000000":"0" mbedtls_mpi_core_mla #914: 0x20000000000000 + 0x1234567890abcdef0 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #915: 0x20000000000000 + 0x1234567890abcdef0 * 0x3 = (0x369f0369b20369cd0, carry 0x0)/(0x369f0369b20369cd0, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"3":"369f0369b20369cd0":"0":"369f0369b20369cd0":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef0":"3":"369f0369b20369cd0":"0":"369f0369b20369cd0":"0" mbedtls_mpi_core_mla #916: 0x20000000000000 + 0x1234567890abcdef0 * 0xfe = (0x120fefcb9f8a7653220, carry 0x0)/(0x120fefcb9f8a7653220, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"fe":"120fefcb9f8a7653220":"0":"120fefcb9f8a7653220":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef0":"fe":"120fefcb9f8a7653220":"0":"120fefcb9f8a7653220":"0" mbedtls_mpi_core_mla #917: 0x20000000000000 + 0x1234567890abcdef0 * 0xff = (0x12222422181b2221110, carry 0x0)/(0x12222422181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"ff":"12222422181b2221110":"0":"12222422181b2221110":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef0":"ff":"12222422181b2221110":"0":"12222422181b2221110":"0" mbedtls_mpi_core_mla #918: 0x20000000000000 + 0x1234567890abcdef0 * 0xffff = (0x123444463a333d4332110, carry 0x0)/(0x123444463a333d4332110, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"ffff":"123444463a333d4332110":"0":"123444463a333d4332110":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef0":"ffff":"123444463a333d4332110":"0":"123444463a333d4332110":"0" mbedtls_mpi_core_mla #919: 0x20000000000000 + 0x1234567890abcdef0 * 0x10000 = (0x1234567a90abcdef00000, carry 0x0)/(0x1234567a90abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"10000":"1234567a90abcdef00000":"0":"1234567a90abcdef00000":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef0":"10000":"1234567a90abcdef00000":"0":"1234567a90abcdef00000":"0" mbedtls_mpi_core_mla #920: 0x20000000000000 + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7977766f5432110, carry 0x1)/(0x123456787e7977766f5432110, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"ffffffff":"23456787e7977766f5432110":"1":"123456787e7977766f5432110":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef0":"ffffffff":"23456787e7977766f5432110":"1":"123456787e7977766f5432110":"0" mbedtls_mpi_core_mla #921: 0x20000000000000 + 0x1234567890abcdef0 * 0x100000000 = (0x234567890adcdef000000000, carry 0x1)/(0x1234567890adcdef000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"100000000":"234567890adcdef000000000":"1":"1234567890adcdef000000000":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef0":"100000000":"234567890adcdef000000000":"1":"1234567890adcdef000000000":"0" mbedtls_mpi_core_mla #922: 0x20000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f69708abaf5ba910, carry 0x91107edb)/(0x91107edbd82bde76f69708abaf5ba910, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f69708abaf5ba910":"91107edb":"91107edbd82bde76f69708abaf5ba910":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f69708abaf5ba910":"91107edb":"91107edbd82bde76f69708abaf5ba910":"0" mbedtls_mpi_core_mla #923: 0x20000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f780020000000000000, carry 0x91a2b3c4)/(0x91a2b3c4855e6f780020000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"8000000000000000":"855e6f780020000000000000":"91a2b3c4":"91a2b3c4855e6f780020000000000000":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef0":"8000000000000000":"855e6f780020000000000000":"91a2b3c4":"91a2b3c4855e6f780020000000000000":"0" mbedtls_mpi_core_mla #924: 0x20000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb99530edea864220, carry 0x123456789)/(0x234567890abcdeedb99530edea864220, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb99530edea864220":"123456789":"234567890abcdeedb99530edea864220":"1" +mpi_core_mla:"20000000000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb99530edea864220":"123456789":"234567890abcdeedb99530edea864220":"1" mbedtls_mpi_core_mla #925: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"0":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"0":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #926: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffd1cfcfcfcfcfcfa, carry 0x2)/(0xfffffffffffffffffd1cfcfcfcfcfcfa, carry 0x2) -mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffd1cfcfcfcfcfcfa":"2":"fffffffffffffffffd1cfcfcfcfcfcfa":"2" +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffd1cfcfcfcfcfcfa":"2":"fffffffffffffffffd1cfcfcfcfcfcfa":"2" mbedtls_mpi_core_mla #927: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0121010101010004, carry 0xfd)/(0xffffffffffffffff0121010101010004, carry 0xfd) -mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0121010101010004":"fd":"ffffffffffffffff0121010101010004":"fd" +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0121010101010004":"fd":"ffffffffffffffff0121010101010004":"fd" mbedtls_mpi_core_mla #928: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffff001fffffffffff02, carry 0xfe)/(0xffffffffffffffff001fffffffffff02, carry 0xfe) -mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff001fffffffffff02":"fe":"ffffffffffffffff001fffffffffff02":"fe" +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff001fffffffffff02":"fe":"ffffffffffffffff001fffffffffff02":"fe" mbedtls_mpi_core_mla #929: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeff001fffffffff0102, carry 0xfffe)/(0xfffffffffffffeff001fffffffff0102, carry 0xfffe) -mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff001fffffffff0102":"fffe":"fffffffffffffeff001fffffffff0102":"fffe" +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff001fffffffff0102":"fffe":"fffffffffffffeff001fffffffff0102":"fffe" mbedtls_mpi_core_mla #930: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefeff1efefefefe0000, carry 0xffff)/(0xfffffffffffffefeff1efefefefe0000, carry 0xffff) -mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefeff1efefefefe0000":"ffff":"fffffffffffffefeff1efefefefe0000":"ffff" +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefeff1efefefefe0000":"ffff":"fffffffffffffefeff1efefefefe0000":"ffff" mbedtls_mpi_core_mla #931: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeff001fffff01010102, carry 0xfffffffe)/(0xfffffffffefefeff001fffff01010102, carry 0xfffffffe) -mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff001fffff01010102":"fffffffe":"fffffffffefefeff001fffff01010102":"fffffffe" +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff001fffff01010102":"fffffffe":"fffffffffefefeff001fffff01010102":"fffffffe" mbedtls_mpi_core_mla #932: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefeff1efefe00000000, carry 0xffffffff)/(0xfffffffffefefefeff1efefe00000000, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefeff1efefe00000000":"ffffffff":"fffffffffefefefeff1efefe00000000":"ffffffff" +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefeff1efefe00000000":"ffffffff":"fffffffffefefefeff1efefe00000000":"ffffffff" mbedtls_mpi_core_mla #933: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828524840383028202, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828524840383028202, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828524840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202828524840383028202":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828524840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202828524840383028202":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #934: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0020000000000000, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f0020000000000000, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0020000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0020000000000000":"7fffffffffffffff" +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0020000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0020000000000000":"7fffffffffffffff" mbedtls_mpi_core_mla #935: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0222020202020204, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0222020202020204, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0222020202020204":"fffffffffffffffd":"fefefefefefefefe0222020202020204":"fffffffffffffffd" +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0222020202020204":"fffffffffffffffd":"fefefefefefefefe0222020202020204":"fffffffffffffffd" mbedtls_mpi_core_mla #936: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"0":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"0":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #937: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000000020000000000000, carry 0x0)/(0x300000000000000000020000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"3":"300000000000000000020000000000000":"0":"300000000000000000020000000000000":"0" +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"3":"300000000000000000020000000000000":"0":"300000000000000000020000000000000":"0" mbedtls_mpi_core_mla #938: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000000020000000000000, carry 0x0)/(0xfe00000000000000000020000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"fe":"fe00000000000000000020000000000000":"0":"fe00000000000000000020000000000000":"0" +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"fe":"fe00000000000000000020000000000000":"0":"fe00000000000000000020000000000000":"0" mbedtls_mpi_core_mla #939: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000000020000000000000, carry 0x0)/(0xff00000000000000000020000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ff":"ff00000000000000000020000000000000":"0":"ff00000000000000000020000000000000":"0" +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ff":"ff00000000000000000020000000000000":"0":"ff00000000000000000020000000000000":"0" mbedtls_mpi_core_mla #940: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000000020000000000000, carry 0x0)/(0xffff00000000000000000020000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000000020000000000000":"0":"ffff00000000000000000020000000000000":"0" +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000000020000000000000":"0":"ffff00000000000000000020000000000000":"0" mbedtls_mpi_core_mla #941: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000000020000000000000, carry 0x0)/(0x1000000000000000000000020000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"10000":"1000000000000000000000020000000000000":"0":"1000000000000000000000020000000000000":"0" +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"10000":"1000000000000000000000020000000000000":"0":"1000000000000000000000020000000000000":"0" mbedtls_mpi_core_mla #942: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000000020000000000000, carry 0x0)/(0xffffffff00000000000000000020000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000020000000000000":"0":"ffffffff00000000000000000020000000000000":"0" +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000020000000000000":"0":"ffffffff00000000000000000020000000000000":"0" mbedtls_mpi_core_mla #943: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x100000000 = (0x20000000000000, carry 0x1)/(0x10000000000000000000000000020000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"100000000":"20000000000000":"1":"10000000000000000000000000020000000000000":"0" +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"100000000":"20000000000000":"1":"10000000000000000000000000020000000000000":"0" mbedtls_mpi_core_mla #944: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000000020000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000000020000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000020000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000020000000000000":"0" +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000020000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000020000000000000":"0" mbedtls_mpi_core_mla #945: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x20000000000000, carry 0x80000000)/(0x800000000000000000000000000000000020000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"8000000000000000":"20000000000000":"80000000":"800000000000000000000000000000000020000000000000":"0" +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"8000000000000000":"20000000000000":"80000000":"800000000000000000000000000000000020000000000000":"0" mbedtls_mpi_core_mla #946: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000000020000000000000, carry 0xffffffff)/(0xfffffffffffffffe00000000000000000020000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000020000000000000":"ffffffff":"fffffffffffffffe00000000000000000020000000000000":"0" +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000020000000000000":"ffffffff":"fffffffffffffffe00000000000000000020000000000000":"0" mbedtls_mpi_core_mla #947: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #948: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369f0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369f0369b20369cd0, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369f0369b20369cd0":"0":"369d0369b20369cd0369f0369b20369cd0":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369f0369b20369cd0":"0":"369d0369b20369cd0369f0369b20369cd0":"0" mbedtls_mpi_core_mla #949: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fefcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fefcb9f8a7653220, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fefcb9f8a7653220":"0":"120fedcb9f8a76532320fefcb9f8a7653220":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fefcb9f8a7653220":"0":"120fedcb9f8a76532320fefcb9f8a7653220":"0" mbedtls_mpi_core_mla #950: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222422181b2221110, carry 0x0)/(0x12222222181b2221122222422181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222422181b2221110":"0":"12222222181b2221122222422181b2221110":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222422181b2221110":"0":"12222222181b2221122222422181b2221110":"0" mbedtls_mpi_core_mla #951: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444463a333d4332110, carry 0x0)/(0x123444443a333d433334444463a333d4332110, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444463a333d4332110":"0":"123444443a333d433334444463a333d4332110":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444463a333d4332110":"0":"123444443a333d433334444463a333d4332110":"0" mbedtls_mpi_core_mla #952: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567a90abcdef00000, carry 0x0)/(0x1234567890abcdef01234567a90abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567a90abcdef00000":"0":"1234567890abcdef01234567a90abcdef00000":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567a90abcdef00000":"0":"1234567890abcdef01234567a90abcdef00000":"0" mbedtls_mpi_core_mla #953: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7977766f5432110, carry 0x12)/(0x123456787e7777767077777887e7977766f5432110, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7977766f5432110":"12":"123456787e7777767077777887e7977766f5432110":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7977766f5432110":"12":"123456787e7777767077777887e7977766f5432110":"0" mbedtls_mpi_core_mla #954: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890adcdef000000000, carry 0x12)/(0x1234567890abcdef01234567890adcdef000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890adcdef000000000":"12":"1234567890abcdef01234567890adcdef000000000":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890adcdef000000000":"12":"1234567890abcdef01234567890adcdef000000000":"0" mbedtls_mpi_core_mla #955: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f69708abaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f69708abaf5ba910, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f69708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f69708abaf5ba910":"9" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f69708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f69708abaf5ba910":"9" mbedtls_mpi_core_mla #956: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f780020000000000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f780020000000000000, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780020000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"9" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780020000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"9" mbedtls_mpi_core_mla #957: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb99530edea864220, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb99530edea864220, carry 0x12) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb99530edea864220":"1234567890":"34567890abcdeedcba987667b32100edb99530edea864220":"12" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb99530edea864220":"1234567890":"34567890abcdeedcba987667b32100edb99530edea864220":"12" mbedtls_mpi_core_mla #958: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #959: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x1ffffffffffffd, carry 0x3)/(0x1ffffffffffffd, carry 0x3) -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1ffffffffffffd":"3":"1ffffffffffffd":"3" +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1ffffffffffffd":"3":"1ffffffffffffd":"3" mbedtls_mpi_core_mla #960: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x1fffffffffff02, carry 0xfe)/(0x1fffffffffff02, carry 0xfe) -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1fffffffffff02":"fe":"1fffffffffff02":"fe" +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1fffffffffff02":"fe":"1fffffffffff02":"fe" mbedtls_mpi_core_mla #961: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x1fffffffffff01, carry 0xff)/(0x1fffffffffff01, carry 0xff) -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1fffffffffff01":"ff":"1fffffffffff01":"ff" +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1fffffffffff01":"ff":"1fffffffffff01":"ff" mbedtls_mpi_core_mla #962: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x1fffffffff0001, carry 0xffff)/(0x1fffffffff0001, carry 0xffff) -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1fffffffff0001":"ffff":"1fffffffff0001":"ffff" +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1fffffffff0001":"ffff":"1fffffffff0001":"ffff" mbedtls_mpi_core_mla #963: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x1fffffffff0000, carry 0x10000)/(0x1fffffffff0000, carry 0x10000) -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1fffffffff0000":"10000":"1fffffffff0000":"10000" +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1fffffffff0000":"10000":"1fffffffff0000":"10000" mbedtls_mpi_core_mla #964: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1fffff00000001, carry 0xffffffff)/(0x1fffff00000001, carry 0xffffffff) -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1fffff00000001":"ffffffff":"1fffff00000001":"ffffffff" +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1fffff00000001":"ffffffff":"1fffff00000001":"ffffffff" mbedtls_mpi_core_mla #965: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x1fffff00000000, carry 0x100000000)/(0x1fffff00000000, carry 0x100000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1fffff00000000":"100000000":"1fffff00000000":"100000000" +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1fffff00000000":"100000000":"1fffff00000000":"100000000" mbedtls_mpi_core_mla #966: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #967: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000":"7fffffffffffffff" +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000":"7fffffffffffffff" mbedtls_mpi_core_mla #968: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002":"fffffffffffffffd" +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002":"fffffffffffffffd" mbedtls_mpi_core_mla #969: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #970: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0":"0" mbedtls_mpi_core_mla #971: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220":"0" mbedtls_mpi_core_mla #972: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222422181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222422181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222422181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222422181b2221110":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222422181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222422181b2221110":"0" mbedtls_mpi_core_mla #973: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110":"0" mbedtls_mpi_core_mla #974: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000":"0" mbedtls_mpi_core_mla #975: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110":"0" mbedtls_mpi_core_mla #976: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000":"0" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000":"0" mbedtls_mpi_core_mla #977: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910, carry 0x911) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910":"911" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910":"911" mbedtls_mpi_core_mla #978: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000, carry 0x91a) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"91a" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"91a" mbedtls_mpi_core_mla #979: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220, carry 0x1234) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220":"1234" +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220":"1234" mbedtls_mpi_core_mla #980: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"20000000000000":"0":"20000000000000":"0" +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"20000000000000":"0":"20000000000000":"0" mbedtls_mpi_core_mla #981: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381":"0" +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381":"0" mbedtls_mpi_core_mla #982: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa":"0" +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa":"0" mbedtls_mpi_core_mla #983: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5":"0" +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5":"0" mbedtls_mpi_core_mla #984: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5":"0" +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5":"0" mbedtls_mpi_core_mla #985: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000, carry 0x0) -mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000":"0" +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000":"0" mbedtls_mpi_core_mla #986: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5, carry 0x4) -mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5":"4" +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5":"4" mbedtls_mpi_core_mla #987: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000, carry 0x4) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000":"4" +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000":"4" mbedtls_mpi_core_mla #988: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955, carry 0x26d473ca9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955":"26d473ca9" +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955":"26d473ca9" mbedtls_mpi_core_mla #989: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000, carry 0x26fb9683d) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000":"26fb9683d" +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000":"26fb9683d" mbedtls_mpi_core_mla #990: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa, carry 0x4df72d07b) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa":"4df72d07b" +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa":"4df72d07b" mbedtls_mpi_core_mla #991: 0xffffffffffffffff + 0x0 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #992: 0xffffffffffffffff + 0x0 * 0x3 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"3":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"0":"3":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #993: 0xffffffffffffffff + 0x0 * 0xfe = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"fe":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"0":"fe":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #994: 0xffffffffffffffff + 0x0 * 0xff = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"ff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"0":"ff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #995: 0xffffffffffffffff + 0x0 * 0xffff = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"ffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"0":"ffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #996: 0xffffffffffffffff + 0x0 * 0x10000 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"10000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"0":"10000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #997: 0xffffffffffffffff + 0x0 * 0xffffffff = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"ffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"0":"ffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #998: 0xffffffffffffffff + 0x0 * 0x100000000 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"100000000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"0":"100000000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #999: 0xffffffffffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #1000: 0xffffffffffffffff + 0x0 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"8000000000000000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"0":"8000000000000000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #1001: 0xffffffffffffffff + 0x0 * 0xfffffffffffffffe = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"0":"fffffffffffffffe":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"0":"fffffffffffffffe":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #1002: 0xffffffffffffffff + 0x1 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"1":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #1003: 0xffffffffffffffff + 0x1 * 0x3 = (0x2, carry 0x1)/(0x2, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"3":"2":"1":"2":"1" +mpi_core_mla:"ffffffffffffffff":"1":"3":"2":"1":"2":"1" mbedtls_mpi_core_mla #1004: 0xffffffffffffffff + 0x1 * 0xfe = (0xfd, carry 0x1)/(0xfd, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"fe":"fd":"1":"fd":"1" +mpi_core_mla:"ffffffffffffffff":"1":"fe":"fd":"1":"fd":"1" mbedtls_mpi_core_mla #1005: 0xffffffffffffffff + 0x1 * 0xff = (0xfe, carry 0x1)/(0xfe, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"ff":"fe":"1":"fe":"1" +mpi_core_mla:"ffffffffffffffff":"1":"ff":"fe":"1":"fe":"1" mbedtls_mpi_core_mla #1006: 0xffffffffffffffff + 0x1 * 0xffff = (0xfffe, carry 0x1)/(0xfffe, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"ffff":"fffe":"1":"fffe":"1" +mpi_core_mla:"ffffffffffffffff":"1":"ffff":"fffe":"1":"fffe":"1" mbedtls_mpi_core_mla #1007: 0xffffffffffffffff + 0x1 * 0x10000 = (0xffff, carry 0x1)/(0xffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"10000":"ffff":"1":"ffff":"1" +mpi_core_mla:"ffffffffffffffff":"1":"10000":"ffff":"1":"ffff":"1" mbedtls_mpi_core_mla #1008: 0xffffffffffffffff + 0x1 * 0xffffffff = (0xfffffffe, carry 0x1)/(0xfffffffe, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"ffffffff":"fffffffe":"1":"fffffffe":"1" +mpi_core_mla:"ffffffffffffffff":"1":"ffffffff":"fffffffe":"1":"fffffffe":"1" mbedtls_mpi_core_mla #1009: 0xffffffffffffffff + 0x1 * 0x100000000 = (0xffffffff, carry 0x1)/(0xffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"100000000":"ffffffff":"1":"ffffffff":"1" +mpi_core_mla:"ffffffffffffffff":"1":"100000000":"ffffffff":"1":"ffffffff":"1" mbedtls_mpi_core_mla #1010: 0xffffffffffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7e, carry 0x1)/(0x7f7f7f7f7f7f7f7e, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e":"1":"7f7f7f7f7f7f7f7e":"1" +mpi_core_mla:"ffffffffffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e":"1":"7f7f7f7f7f7f7f7e":"1" mbedtls_mpi_core_mla #1011: 0xffffffffffffffff + 0x1 * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x1)/(0x7fffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"8000000000000000":"7fffffffffffffff":"1":"7fffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffff":"1":"8000000000000000":"7fffffffffffffff":"1":"7fffffffffffffff":"1" mbedtls_mpi_core_mla #1012: 0xffffffffffffffff + 0x1 * 0xfffffffffffffffe = (0xfffffffffffffffd, carry 0x1)/(0xfffffffffffffffd, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffd":"1":"fffffffffffffffd":"1" +mpi_core_mla:"ffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffd":"1":"fffffffffffffffd":"1" mbedtls_mpi_core_mla #1013: 0xffffffffffffffff + 0xfffe * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"fffe":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #1014: 0xffffffffffffffff + 0xfffe * 0x3 = (0x2fff9, carry 0x1)/(0x2fff9, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"3":"2fff9":"1":"2fff9":"1" +mpi_core_mla:"ffffffffffffffff":"fffe":"3":"2fff9":"1":"2fff9":"1" mbedtls_mpi_core_mla #1015: 0xffffffffffffffff + 0xfffe * 0xfe = (0xfdfe03, carry 0x1)/(0xfdfe03, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"fe":"fdfe03":"1":"fdfe03":"1" +mpi_core_mla:"ffffffffffffffff":"fffe":"fe":"fdfe03":"1":"fdfe03":"1" mbedtls_mpi_core_mla #1016: 0xffffffffffffffff + 0xfffe * 0xff = (0xfefe01, carry 0x1)/(0xfefe01, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"ff":"fefe01":"1":"fefe01":"1" +mpi_core_mla:"ffffffffffffffff":"fffe":"ff":"fefe01":"1":"fefe01":"1" mbedtls_mpi_core_mla #1017: 0xffffffffffffffff + 0xfffe * 0xffff = (0xfffd0001, carry 0x1)/(0xfffd0001, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"ffff":"fffd0001":"1":"fffd0001":"1" +mpi_core_mla:"ffffffffffffffff":"fffe":"ffff":"fffd0001":"1":"fffd0001":"1" mbedtls_mpi_core_mla #1018: 0xffffffffffffffff + 0xfffe * 0x10000 = (0xfffdffff, carry 0x1)/(0xfffdffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"10000":"fffdffff":"1":"fffdffff":"1" +mpi_core_mla:"ffffffffffffffff":"fffe":"10000":"fffdffff":"1":"fffdffff":"1" mbedtls_mpi_core_mla #1019: 0xffffffffffffffff + 0xfffe * 0xffffffff = (0xfffdffff0001, carry 0x1)/(0xfffdffff0001, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"ffffffff":"fffdffff0001":"1":"fffdffff0001":"1" +mpi_core_mla:"ffffffffffffffff":"fffe":"ffffffff":"fffdffff0001":"1":"fffdffff0001":"1" mbedtls_mpi_core_mla #1020: 0xffffffffffffffff + 0xfffe * 0x100000000 = (0xfffdffffffff, carry 0x1)/(0xfffdffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"100000000":"fffdffffffff":"1":"fffdffffffff":"1" +mpi_core_mla:"ffffffffffffffff":"fffe":"100000000":"fffdffffffff":"1":"fffdffffffff":"1" mbedtls_mpi_core_mla #1021: 0xffffffffffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x8080808080800101, carry 0x7f7f)/(0x8080808080800101, carry 0x7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"7f7f7f7f7f7f7f7f":"8080808080800101":"7f7f":"8080808080800101":"7f7f" +mpi_core_mla:"ffffffffffffffff":"fffe":"7f7f7f7f7f7f7f7f":"8080808080800101":"7f7f":"8080808080800101":"7f7f" mbedtls_mpi_core_mla #1022: 0xffffffffffffffff + 0xfffe * 0x8000000000000000 = (0xffffffffffffffff, carry 0x7fff)/(0xffffffffffffffff, carry 0x7fff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"8000000000000000":"ffffffffffffffff":"7fff":"ffffffffffffffff":"7fff" +mpi_core_mla:"ffffffffffffffff":"fffe":"8000000000000000":"ffffffffffffffff":"7fff":"ffffffffffffffff":"7fff" mbedtls_mpi_core_mla #1023: 0xffffffffffffffff + 0xfffe * 0xfffffffffffffffe = (0xfffffffffffe0003, carry 0xfffe)/(0xfffffffffffe0003, carry 0xfffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffe":"fffffffffffffffe":"fffffffffffe0003":"fffe":"fffffffffffe0003":"fffe" +mpi_core_mla:"ffffffffffffffff":"fffe":"fffffffffffffffe":"fffffffffffe0003":"fffe":"fffffffffffe0003":"fffe" mbedtls_mpi_core_mla #1024: 0xffffffffffffffff + 0xffffffff * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"ffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #1025: 0xffffffffffffffff + 0xffffffff * 0x3 = (0x2fffffffc, carry 0x1)/(0x2fffffffc, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"3":"2fffffffc":"1":"2fffffffc":"1" +mpi_core_mla:"ffffffffffffffff":"ffffffff":"3":"2fffffffc":"1":"2fffffffc":"1" mbedtls_mpi_core_mla #1026: 0xffffffffffffffff + 0xffffffff * 0xfe = (0xfdffffff01, carry 0x1)/(0xfdffffff01, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"fe":"fdffffff01":"1":"fdffffff01":"1" +mpi_core_mla:"ffffffffffffffff":"ffffffff":"fe":"fdffffff01":"1":"fdffffff01":"1" mbedtls_mpi_core_mla #1027: 0xffffffffffffffff + 0xffffffff * 0xff = (0xfeffffff00, carry 0x1)/(0xfeffffff00, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"ff":"feffffff00":"1":"feffffff00":"1" +mpi_core_mla:"ffffffffffffffff":"ffffffff":"ff":"feffffff00":"1":"feffffff00":"1" mbedtls_mpi_core_mla #1028: 0xffffffffffffffff + 0xffffffff * 0xffff = (0xfffeffff0000, carry 0x1)/(0xfffeffff0000, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"ffff":"fffeffff0000":"1":"fffeffff0000":"1" +mpi_core_mla:"ffffffffffffffff":"ffffffff":"ffff":"fffeffff0000":"1":"fffeffff0000":"1" mbedtls_mpi_core_mla #1029: 0xffffffffffffffff + 0xffffffff * 0x10000 = (0xfffffffeffff, carry 0x1)/(0xfffffffeffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"10000":"fffffffeffff":"1":"fffffffeffff":"1" +mpi_core_mla:"ffffffffffffffff":"ffffffff":"10000":"fffffffeffff":"1":"fffffffeffff":"1" mbedtls_mpi_core_mla #1030: 0xffffffffffffffff + 0xffffffff * 0xffffffff = (0xfffffffe00000000, carry 0x1)/(0xfffffffe00000000, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"ffffffff":"fffffffe00000000":"1":"fffffffe00000000":"1" +mpi_core_mla:"ffffffffffffffff":"ffffffff":"ffffffff":"fffffffe00000000":"1":"fffffffe00000000":"1" mbedtls_mpi_core_mla #1031: 0xffffffffffffffff + 0xffffffff * 0x100000000 = (0xfffffffeffffffff, carry 0x1)/(0xfffffffeffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"100000000":"fffffffeffffffff":"1":"fffffffeffffffff":"1" +mpi_core_mla:"ffffffffffffffff":"ffffffff":"100000000":"fffffffeffffffff":"1":"fffffffeffffffff":"1" mbedtls_mpi_core_mla #1032: 0xffffffffffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffff80808080, carry 0x7f7f7f7f)/(0xffffffff80808080, carry 0x7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"ffffffff80808080":"7f7f7f7f":"ffffffff80808080":"7f7f7f7f" +mpi_core_mla:"ffffffffffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"ffffffff80808080":"7f7f7f7f":"ffffffff80808080":"7f7f7f7f" mbedtls_mpi_core_mla #1033: 0xffffffffffffffff + 0xffffffff * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x80000000)/(0x7fffffffffffffff, carry 0x80000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"8000000000000000":"7fffffffffffffff":"80000000":"7fffffffffffffff":"80000000" +mpi_core_mla:"ffffffffffffffff":"ffffffff":"8000000000000000":"7fffffffffffffff":"80000000":"7fffffffffffffff":"80000000" mbedtls_mpi_core_mla #1034: 0xffffffffffffffff + 0xffffffff * 0xfffffffffffffffe = (0xfffffffe00000001, carry 0xffffffff)/(0xfffffffe00000001, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffff":"fffffffffffffffe":"fffffffe00000001":"ffffffff":"fffffffe00000001":"ffffffff" +mpi_core_mla:"ffffffffffffffff":"ffffffff":"fffffffffffffffe":"fffffffe00000001":"ffffffff":"fffffffe00000001":"ffffffff" mbedtls_mpi_core_mla #1035: 0xffffffffffffffff + 0x100000000 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"100000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #1036: 0xffffffffffffffff + 0x100000000 * 0x3 = (0x2ffffffff, carry 0x1)/(0x2ffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"3":"2ffffffff":"1":"2ffffffff":"1" +mpi_core_mla:"ffffffffffffffff":"100000000":"3":"2ffffffff":"1":"2ffffffff":"1" mbedtls_mpi_core_mla #1037: 0xffffffffffffffff + 0x100000000 * 0xfe = (0xfdffffffff, carry 0x1)/(0xfdffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"fe":"fdffffffff":"1":"fdffffffff":"1" +mpi_core_mla:"ffffffffffffffff":"100000000":"fe":"fdffffffff":"1":"fdffffffff":"1" mbedtls_mpi_core_mla #1038: 0xffffffffffffffff + 0x100000000 * 0xff = (0xfeffffffff, carry 0x1)/(0xfeffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"ff":"feffffffff":"1":"feffffffff":"1" +mpi_core_mla:"ffffffffffffffff":"100000000":"ff":"feffffffff":"1":"feffffffff":"1" mbedtls_mpi_core_mla #1039: 0xffffffffffffffff + 0x100000000 * 0xffff = (0xfffeffffffff, carry 0x1)/(0xfffeffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"ffff":"fffeffffffff":"1":"fffeffffffff":"1" +mpi_core_mla:"ffffffffffffffff":"100000000":"ffff":"fffeffffffff":"1":"fffeffffffff":"1" mbedtls_mpi_core_mla #1040: 0xffffffffffffffff + 0x100000000 * 0x10000 = (0xffffffffffff, carry 0x1)/(0xffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"10000":"ffffffffffff":"1":"ffffffffffff":"1" +mpi_core_mla:"ffffffffffffffff":"100000000":"10000":"ffffffffffff":"1":"ffffffffffff":"1" mbedtls_mpi_core_mla #1041: 0xffffffffffffffff + 0x100000000 * 0xffffffff = (0xfffffffeffffffff, carry 0x1)/(0xfffffffeffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"ffffffff":"fffffffeffffffff":"1":"fffffffeffffffff":"1" +mpi_core_mla:"ffffffffffffffff":"100000000":"ffffffff":"fffffffeffffffff":"1":"fffffffeffffffff":"1" mbedtls_mpi_core_mla #1042: 0xffffffffffffffff + 0x100000000 * 0x100000000 = (0xffffffffffffffff, carry 0x1)/(0xffffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"100000000":"ffffffffffffffff":"1":"ffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffff":"100000000":"100000000":"ffffffffffffffff":"1":"ffffffffffffffff":"1" mbedtls_mpi_core_mla #1043: 0xffffffffffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7effffffff, carry 0x7f7f7f80)/(0x7f7f7f7effffffff, carry 0x7f7f7f80) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7effffffff":"7f7f7f80":"7f7f7f7effffffff":"7f7f7f80" +mpi_core_mla:"ffffffffffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7effffffff":"7f7f7f80":"7f7f7f7effffffff":"7f7f7f80" mbedtls_mpi_core_mla #1044: 0xffffffffffffffff + 0x100000000 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x80000000)/(0xffffffffffffffff, carry 0x80000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"8000000000000000":"ffffffffffffffff":"80000000":"ffffffffffffffff":"80000000" +mpi_core_mla:"ffffffffffffffff":"100000000":"8000000000000000":"ffffffffffffffff":"80000000":"ffffffffffffffff":"80000000" mbedtls_mpi_core_mla #1045: 0xffffffffffffffff + 0x100000000 * 0xfffffffffffffffe = (0xfffffffdffffffff, carry 0x100000000)/(0xfffffffdffffffff, carry 0x100000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000":"fffffffffffffffe":"fffffffdffffffff":"100000000":"fffffffdffffffff":"100000000" +mpi_core_mla:"ffffffffffffffff":"100000000":"fffffffffffffffe":"fffffffdffffffff":"100000000":"fffffffdffffffff":"100000000" mbedtls_mpi_core_mla #1046: 0xffffffffffffffff + 0x20000000000000 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"20000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #1047: 0xffffffffffffffff + 0x20000000000000 * 0x3 = (0x5fffffffffffff, carry 0x1)/(0x5fffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"3":"5fffffffffffff":"1":"5fffffffffffff":"1" +mpi_core_mla:"ffffffffffffffff":"20000000000000":"3":"5fffffffffffff":"1":"5fffffffffffff":"1" mbedtls_mpi_core_mla #1048: 0xffffffffffffffff + 0x20000000000000 * 0xfe = (0x1fbfffffffffffff, carry 0x1)/(0x1fbfffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"fe":"1fbfffffffffffff":"1":"1fbfffffffffffff":"1" +mpi_core_mla:"ffffffffffffffff":"20000000000000":"fe":"1fbfffffffffffff":"1":"1fbfffffffffffff":"1" mbedtls_mpi_core_mla #1049: 0xffffffffffffffff + 0x20000000000000 * 0xff = (0x1fdfffffffffffff, carry 0x1)/(0x1fdfffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"ff":"1fdfffffffffffff":"1":"1fdfffffffffffff":"1" +mpi_core_mla:"ffffffffffffffff":"20000000000000":"ff":"1fdfffffffffffff":"1":"1fdfffffffffffff":"1" mbedtls_mpi_core_mla #1050: 0xffffffffffffffff + 0x20000000000000 * 0xffff = (0xffdfffffffffffff, carry 0x20)/(0xffdfffffffffffff, carry 0x20) -mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"ffff":"ffdfffffffffffff":"20":"ffdfffffffffffff":"20" +mpi_core_mla:"ffffffffffffffff":"20000000000000":"ffff":"ffdfffffffffffff":"20":"ffdfffffffffffff":"20" mbedtls_mpi_core_mla #1051: 0xffffffffffffffff + 0x20000000000000 * 0x10000 = (0xffffffffffffffff, carry 0x20)/(0xffffffffffffffff, carry 0x20) -mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"10000":"ffffffffffffffff":"20":"ffffffffffffffff":"20" +mpi_core_mla:"ffffffffffffffff":"20000000000000":"10000":"ffffffffffffffff":"20":"ffffffffffffffff":"20" mbedtls_mpi_core_mla #1052: 0xffffffffffffffff + 0x20000000000000 * 0xffffffff = (0xffdfffffffffffff, carry 0x200000)/(0xffdfffffffffffff, carry 0x200000) -mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"ffffffff":"ffdfffffffffffff":"200000":"ffdfffffffffffff":"200000" +mpi_core_mla:"ffffffffffffffff":"20000000000000":"ffffffff":"ffdfffffffffffff":"200000":"ffdfffffffffffff":"200000" mbedtls_mpi_core_mla #1053: 0xffffffffffffffff + 0x20000000000000 * 0x100000000 = (0xffffffffffffffff, carry 0x200000)/(0xffffffffffffffff, carry 0x200000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"100000000":"ffffffffffffffff":"200000":"ffffffffffffffff":"200000" +mpi_core_mla:"ffffffffffffffff":"20000000000000":"100000000":"ffffffffffffffff":"200000":"ffffffffffffffff":"200000" mbedtls_mpi_core_mla #1054: 0xffffffffffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefdfffffffffffff, carry 0xfefefefefeff0)/(0xefdfffffffffffff, carry 0xfefefefefeff0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"efdfffffffffffff":"fefefefefeff0":"efdfffffffffffff":"fefefefefeff0" +mpi_core_mla:"ffffffffffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"efdfffffffffffff":"fefefefefeff0":"efdfffffffffffff":"fefefefefeff0" mbedtls_mpi_core_mla #1055: 0xffffffffffffffff + 0x20000000000000 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x10000000000000)/(0xffffffffffffffff, carry 0x10000000000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"8000000000000000":"ffffffffffffffff":"10000000000000":"ffffffffffffffff":"10000000000000" +mpi_core_mla:"ffffffffffffffff":"20000000000000":"8000000000000000":"ffffffffffffffff":"10000000000000":"ffffffffffffffff":"10000000000000" mbedtls_mpi_core_mla #1056: 0xffffffffffffffff + 0x20000000000000 * 0xfffffffffffffffe = (0xffbfffffffffffff, carry 0x20000000000000)/(0xffbfffffffffffff, carry 0x20000000000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"20000000000000":"fffffffffffffffe":"ffbfffffffffffff":"20000000000000":"ffbfffffffffffff":"20000000000000" +mpi_core_mla:"ffffffffffffffff":"20000000000000":"fffffffffffffffe":"ffbfffffffffffff":"20000000000000":"ffbfffffffffffff":"20000000000000" mbedtls_mpi_core_mla #1057: 0xffffffffffffffff + 0xffffffffffffffff * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #1058: 0xffffffffffffffff + 0xffffffffffffffff * 0x3 = (0xfffffffffffffffc, carry 0x3)/(0xfffffffffffffffc, carry 0x3) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"3":"fffffffffffffffc":"3":"fffffffffffffffc":"3" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"3":"fffffffffffffffc":"3":"fffffffffffffffc":"3" mbedtls_mpi_core_mla #1059: 0xffffffffffffffff + 0xffffffffffffffff * 0xfe = (0xffffffffffffff01, carry 0xfe)/(0xffffffffffffff01, carry 0xfe) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"fe":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"fe":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" mbedtls_mpi_core_mla #1060: 0xffffffffffffffff + 0xffffffffffffffff * 0xff = (0xffffffffffffff00, carry 0xff)/(0xffffffffffffff00, carry 0xff) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ff":"ffffffffffffff00":"ff":"ffffffffffffff00":"ff" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ff":"ffffffffffffff00":"ff":"ffffffffffffff00":"ff" mbedtls_mpi_core_mla #1061: 0xffffffffffffffff + 0xffffffffffffffff * 0xffff = (0xffffffffffff0000, carry 0xffff)/(0xffffffffffff0000, carry 0xffff) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ffff":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ffff":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" mbedtls_mpi_core_mla #1062: 0xffffffffffffffff + 0xffffffffffffffff * 0x10000 = (0xfffffffffffeffff, carry 0x10000)/(0xfffffffffffeffff, carry 0x10000) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"10000":"fffffffffffeffff":"10000":"fffffffffffeffff":"10000" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"10000":"fffffffffffeffff":"10000":"fffffffffffeffff":"10000" mbedtls_mpi_core_mla #1063: 0xffffffffffffffff + 0xffffffffffffffff * 0xffffffff = (0xffffffff00000000, carry 0xffffffff)/(0xffffffff00000000, carry 0xffffffff) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" mbedtls_mpi_core_mla #1064: 0xffffffffffffffff + 0xffffffffffffffff * 0x100000000 = (0xfffffffeffffffff, carry 0x100000000)/(0xfffffffeffffffff, carry 0x100000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"100000000":"fffffffeffffffff":"100000000":"fffffffeffffffff":"100000000" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"100000000":"fffffffeffffffff":"100000000":"fffffffeffffffff":"100000000" mbedtls_mpi_core_mla #1065: 0xffffffffffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808080, carry 0x7f7f7f7f7f7f7f7f)/(0x8080808080808080, carry 0x7f7f7f7f7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f" mbedtls_mpi_core_mla #1066: 0xffffffffffffffff + 0xffffffffffffffff * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x8000000000000000)/(0x7fffffffffffffff, carry 0x8000000000000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000" mbedtls_mpi_core_mla #1067: 0xffffffffffffffff + 0xffffffffffffffff * 0xfffffffffffffffe = (0x1, carry 0xfffffffffffffffe)/(0x1, carry 0xfffffffffffffffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":"1":"fffffffffffffffe":"1":"fffffffffffffffe" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":"1":"fffffffffffffffe":"1":"fffffffffffffffe" mbedtls_mpi_core_mla #1068: 0xffffffffffffffff + 0x10000000000000000 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #1069: 0xffffffffffffffff + 0x10000000000000000 * 0x3 = (0x3ffffffffffffffff, carry 0x0)/(0x3ffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"3":"3ffffffffffffffff":"0":"3ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"3":"3ffffffffffffffff":"0":"3ffffffffffffffff":"0" mbedtls_mpi_core_mla #1070: 0xffffffffffffffff + 0x10000000000000000 * 0xfe = (0xfeffffffffffffffff, carry 0x0)/(0xfeffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"fe":"feffffffffffffffff":"0":"feffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"fe":"feffffffffffffffff":"0":"feffffffffffffffff":"0" mbedtls_mpi_core_mla #1071: 0xffffffffffffffff + 0x10000000000000000 * 0xff = (0xffffffffffffffffff, carry 0x0)/(0xffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ff":"ffffffffffffffffff":"0":"ffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ff":"ffffffffffffffffff":"0":"ffffffffffffffffff":"0" mbedtls_mpi_core_mla #1072: 0xffffffffffffffff + 0x10000000000000000 * 0xffff = (0xffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ffff":"ffffffffffffffffffff":"0":"ffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ffff":"ffffffffffffffffffff":"0":"ffffffffffffffffffff":"0" mbedtls_mpi_core_mla #1073: 0xffffffffffffffff + 0x10000000000000000 * 0x10000 = (0x10000ffffffffffffffff, carry 0x0)/(0x10000ffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"10000":"10000ffffffffffffffff":"0":"10000ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"10000":"10000ffffffffffffffff":"0":"10000ffffffffffffffff":"0" mbedtls_mpi_core_mla #1074: 0xffffffffffffffff + 0x10000000000000000 * 0xffffffff = (0xffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ffffffff":"ffffffffffffffffffffffff":"0":"ffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ffffffff":"ffffffffffffffffffffffff":"0":"ffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #1075: 0xffffffffffffffff + 0x10000000000000000 * 0x100000000 = (0xffffffffffffffff, carry 0x1)/(0x100000000ffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"100000000":"ffffffffffffffff":"1":"100000000ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"100000000":"ffffffffffffffff":"1":"100000000ffffffffffffffff":"0" mbedtls_mpi_core_mla #1076: 0xffffffffffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fffffffffffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7fffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffffffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7fffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffffffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7fffffffffffffffff":"0" mbedtls_mpi_core_mla #1077: 0xffffffffffffffff + 0x10000000000000000 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x80000000)/(0x8000000000000000ffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"8000000000000000":"ffffffffffffffff":"80000000":"8000000000000000ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"8000000000000000":"ffffffffffffffff":"80000000":"8000000000000000ffffffffffffffff":"0" mbedtls_mpi_core_mla #1078: 0xffffffffffffffff + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffeffffffffffffffff, carry 0xffffffff)/(0xfffffffffffffffeffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"10000000000000000":"fffffffffffffffe":"fffffffeffffffffffffffff":"ffffffff":"fffffffffffffffeffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"fffffffffffffffe":"fffffffeffffffffffffffff":"ffffffff":"fffffffffffffffeffffffffffffffff":"0" mbedtls_mpi_core_mla #1079: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #1080: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x3 = (0x469d0369b20369ccf, carry 0x0)/(0x469d0369b20369ccf, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"3":"469d0369b20369ccf":"0":"469d0369b20369ccf":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"3":"469d0369b20369ccf":"0":"469d0369b20369ccf":"0" mbedtls_mpi_core_mla #1081: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xfe = (0x121fedcb9f8a765321f, carry 0x0)/(0x121fedcb9f8a765321f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"fe":"121fedcb9f8a765321f":"0":"121fedcb9f8a765321f":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"fe":"121fedcb9f8a765321f":"0":"121fedcb9f8a765321f":"0" mbedtls_mpi_core_mla #1082: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xff = (0x12322222181b222110f, carry 0x0)/(0x12322222181b222110f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ff":"12322222181b222110f":"0":"12322222181b222110f":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ff":"12322222181b222110f":"0":"12322222181b222110f":"0" mbedtls_mpi_core_mla #1083: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xffff = (0x123454443a333d433210f, carry 0x0)/(0x123454443a333d433210f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ffff":"123454443a333d433210f":"0":"123454443a333d433210f":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ffff":"123454443a333d433210f":"0":"123454443a333d433210f":"0" mbedtls_mpi_core_mla #1084: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x10000 = (0x1234667890abcdeefffff, carry 0x0)/(0x1234667890abcdeefffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"10000":"1234667890abcdeefffff":"0":"1234667890abcdeefffff":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"10000":"1234667890abcdeefffff":"0":"1234667890abcdeefffff":"0" mbedtls_mpi_core_mla #1085: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xffffffff = (0x23456788e7777766f543210f, carry 0x1)/(0x123456788e7777766f543210f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ffffffff":"23456788e7777766f543210f":"1":"123456788e7777766f543210f":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ffffffff":"23456788e7777766f543210f":"1":"123456788e7777766f543210f":"0" mbedtls_mpi_core_mla #1086: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x100000000 = (0x2345678a0abcdeefffffffff, carry 0x1)/(0x12345678a0abcdeefffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"100000000":"2345678a0abcdeefffffffff":"1":"12345678a0abcdeefffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"100000000":"2345678a0abcdeefffffffff":"1":"12345678a0abcdeefffffffff":"0" mbedtls_mpi_core_mla #1087: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde77f67708abaf5ba90f, carry 0x91107edb)/(0x91107edbd82bde77f67708abaf5ba90f, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde77f67708abaf5ba90f":"91107edb":"91107edbd82bde77f67708abaf5ba90f":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde77f67708abaf5ba90f":"91107edb":"91107edbd82bde77f67708abaf5ba90f":"0" mbedtls_mpi_core_mla #1088: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f78ffffffffffffffff, carry 0x91a2b3c4)/(0x91a2b3c4855e6f78ffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"8000000000000000":"855e6f78ffffffffffffffff":"91a2b3c4":"91a2b3c4855e6f78ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"8000000000000000":"855e6f78ffffffffffffffff":"91a2b3c4":"91a2b3c4855e6f78ffffffffffffffff":"0" mbedtls_mpi_core_mla #1089: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeeb97530edea86421f, carry 0x123456789)/(0x234567890abcdeeeb97530edea86421f, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"fffffffffffffffe":"abcdeeeb97530edea86421f":"123456789":"234567890abcdeeeb97530edea86421f":"1" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"fffffffffffffffe":"abcdeeeb97530edea86421f":"123456789":"234567890abcdeeeb97530edea86421f":"1" mbedtls_mpi_core_mla #1090: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #1091: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfcfcfcfcfcfcfcf9, carry 0x3)/(0xfcfcfcfcfcfcfcf9, carry 0x3) -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"3":"fcfcfcfcfcfcfcf9":"3":"fcfcfcfcfcfcfcf9":"3" +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"3":"fcfcfcfcfcfcfcf9":"3":"fcfcfcfcfcfcfcf9":"3" mbedtls_mpi_core_mla #1092: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x101010101010003, carry 0xfe)/(0x101010101010003, carry 0xfe) -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fe":"101010101010003":"fe":"101010101010003":"fe" +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fe":"101010101010003":"fe":"101010101010003":"fe" mbedtls_mpi_core_mla #1093: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffffffffffffffffff01, carry 0xfe)/(0xffffffffffffffffffffffffffffff01, carry 0xfe) -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffff01":"fe" +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffff01":"fe" mbedtls_mpi_core_mla #1094: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeffffffffffffff0101, carry 0xfffe)/(0xfffffffffffffeffffffffffffff0101, carry 0xfffe) -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeffffffffffffff0101":"fffe":"fffffffffffffeffffffffffffff0101":"fffe" +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeffffffffffffff0101":"fffe":"fffffffffffffeffffffffffffff0101":"fffe" mbedtls_mpi_core_mla #1095: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefffefefefefefdffff, carry 0xffff)/(0xfffffffffffffefffefefefefefdffff, carry 0xffff) -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefffefefefefefdffff":"ffff":"fffffffffffffefffefefefefefdffff":"ffff" +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefffefefefefefdffff":"ffff":"fffffffffffffefffefefefefefdffff":"ffff" mbedtls_mpi_core_mla #1096: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeffffffffff01010101, carry 0xfffffffe)/(0xfffffffffefefeffffffffff01010101, carry 0xfffffffe) -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeffffffffff01010101":"fffffffe":"fffffffffefefeffffffffff01010101":"fffffffe" +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeffffffffff01010101":"fffffffe":"fffffffffefefeffffffffff01010101":"fffffffe" mbedtls_mpi_core_mla #1097: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefffefefefdffffffff, carry 0xffffffff)/(0xfffffffffefefefffefefefdffffffff, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefffefefefdffffffff":"ffffffff":"fffffffffefefefffefefefdffffffff":"ffffffff" +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefffefefefdffffffff":"ffffffff":"fffffffffefefefffefefefdffffffff":"ffffffff" mbedtls_mpi_core_mla #1098: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202838504840383028201, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202838504840383028201, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202838504840383028201":"7f7f7f7f7f7f7f7e":"ff800081018202838504840383028201":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202838504840383028201":"7f7f7f7f7f7f7f7e":"ff800081018202838504840383028201":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #1099: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7fffffffffffffffff, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7fffffffffffffffff, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7fffffffffffffffff":"7fffffffffffffff":"ff7f7f7f7f7f7f7fffffffffffffffff":"7fffffffffffffff" +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7fffffffffffffffff":"7fffffffffffffff":"ff7f7f7f7f7f7f7fffffffffffffffff":"7fffffffffffffff" mbedtls_mpi_core_mla #1100: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefeff0202020202020203, carry 0xfffffffffffffffd)/(0xfefefefefefefeff0202020202020203, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff0202020202020203":"fffffffffffffffd":"fefefefefefefeff0202020202020203":"fffffffffffffffd" +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff0202020202020203":"fffffffffffffffd":"fefefefefefefeff0202020202020203":"fffffffffffffffd" mbedtls_mpi_core_mla #1101: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #1102: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x3 = (0x30000000000000000ffffffffffffffff, carry 0x0)/(0x30000000000000000ffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"3":"30000000000000000ffffffffffffffff":"0":"30000000000000000ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"3":"30000000000000000ffffffffffffffff":"0":"30000000000000000ffffffffffffffff":"0" mbedtls_mpi_core_mla #1103: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xfe = (0xfe0000000000000000ffffffffffffffff, carry 0x0)/(0xfe0000000000000000ffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"fe":"fe0000000000000000ffffffffffffffff":"0":"fe0000000000000000ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"fe":"fe0000000000000000ffffffffffffffff":"0":"fe0000000000000000ffffffffffffffff":"0" mbedtls_mpi_core_mla #1104: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xff = (0xff0000000000000000ffffffffffffffff, carry 0x0)/(0xff0000000000000000ffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ff":"ff0000000000000000ffffffffffffffff":"0":"ff0000000000000000ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ff":"ff0000000000000000ffffffffffffffff":"0":"ff0000000000000000ffffffffffffffff":"0" mbedtls_mpi_core_mla #1105: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xffff = (0xffff0000000000000000ffffffffffffffff, carry 0x0)/(0xffff0000000000000000ffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ffff":"ffff0000000000000000ffffffffffffffff":"0":"ffff0000000000000000ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ffff":"ffff0000000000000000ffffffffffffffff":"0":"ffff0000000000000000ffffffffffffffff":"0" mbedtls_mpi_core_mla #1106: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x10000 = (0x100000000000000000000ffffffffffffffff, carry 0x0)/(0x100000000000000000000ffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"10000":"100000000000000000000ffffffffffffffff":"0":"100000000000000000000ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"10000":"100000000000000000000ffffffffffffffff":"0":"100000000000000000000ffffffffffffffff":"0" mbedtls_mpi_core_mla #1107: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff0000000000000000ffffffffffffffff, carry 0x0)/(0xffffffff0000000000000000ffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000000ffffffffffffffff":"0":"ffffffff0000000000000000ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000000ffffffffffffffff":"0":"ffffffff0000000000000000ffffffffffffffff":"0" mbedtls_mpi_core_mla #1108: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x100000000 = (0xffffffffffffffff, carry 0x1)/(0x1000000000000000000000000ffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"100000000":"ffffffffffffffff":"1":"1000000000000000000000000ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"100000000":"ffffffffffffffff":"1":"1000000000000000000000000ffffffffffffffff":"0" mbedtls_mpi_core_mla #1109: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000000ffffffffffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000000ffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000ffffffffffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000ffffffffffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000ffffffffffffffff":"0" mbedtls_mpi_core_mla #1110: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x80000000)/(0x80000000000000000000000000000000ffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"8000000000000000":"ffffffffffffffff":"80000000":"80000000000000000000000000000000ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"8000000000000000":"ffffffffffffffff":"80000000":"80000000000000000000000000000000ffffffffffffffff":"0" mbedtls_mpi_core_mla #1111: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000000ffffffffffffffff, carry 0xffffffff)/(0xfffffffffffffffe0000000000000000ffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000000ffffffffffffffff":"ffffffff":"fffffffffffffffe0000000000000000ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000000ffffffffffffffff":"ffffffff":"fffffffffffffffe0000000000000000ffffffffffffffff":"0" mbedtls_mpi_core_mla #1112: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #1113: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0469d0369b20369ccf, carry 0x0)/(0x369d0369b20369cd0469d0369b20369ccf, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0469d0369b20369ccf":"0":"369d0369b20369cd0469d0369b20369ccf":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0469d0369b20369ccf":"0":"369d0369b20369cd0469d0369b20369ccf":"0" mbedtls_mpi_core_mla #1114: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532321fedcb9f8a765321f, carry 0x0)/(0x120fedcb9f8a76532321fedcb9f8a765321f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532321fedcb9f8a765321f":"0":"120fedcb9f8a76532321fedcb9f8a765321f":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532321fedcb9f8a765321f":"0":"120fedcb9f8a76532321fedcb9f8a765321f":"0" mbedtls_mpi_core_mla #1115: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122322222181b222110f, carry 0x0)/(0x12222222181b2221122322222181b222110f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122322222181b222110f":"0":"12222222181b2221122322222181b222110f":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122322222181b222110f":"0":"12222222181b2221122322222181b222110f":"0" mbedtls_mpi_core_mla #1116: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334454443a333d433210f, carry 0x0)/(0x123444443a333d433334454443a333d433210f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334454443a333d433210f":"0":"123444443a333d433334454443a333d433210f":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334454443a333d433210f":"0":"123444443a333d433334454443a333d433210f":"0" mbedtls_mpi_core_mla #1117: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234667890abcdeefffff, carry 0x0)/(0x1234567890abcdef01234667890abcdeefffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234667890abcdeefffff":"0":"1234567890abcdef01234667890abcdeefffff":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234667890abcdeefffff":"0":"1234567890abcdef01234667890abcdeefffff":"0" mbedtls_mpi_core_mla #1118: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777888e7777766f543210f, carry 0x12)/(0x123456787e7777767077777888e7777766f543210f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777888e7777766f543210f":"12":"123456787e7777767077777888e7777766f543210f":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777888e7777766f543210f":"12":"123456787e7777767077777888e7777766f543210f":"0" mbedtls_mpi_core_mla #1119: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef012345678a0abcdeefffffffff, carry 0x12)/(0x1234567890abcdef012345678a0abcdeefffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a0abcdeefffffffff":"12":"1234567890abcdef012345678a0abcdeefffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a0abcdeefffffffff":"12":"1234567890abcdef012345678a0abcdeefffffffff":"0" mbedtls_mpi_core_mla #1120: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f77f67708abaf5ba90f, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f77f67708abaf5ba90f, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f77f67708abaf5ba90f":"91107edbd":"1107edbd82bde76ff8810996cde66f77f67708abaf5ba90f":"9" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f77f67708abaf5ba90f":"91107edbd":"1107edbd82bde76ff8810996cde66f77f67708abaf5ba90f":"9" mbedtls_mpi_core_mla #1121: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f78ffffffffffffffff, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f78ffffffffffffffff":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"9" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f78ffffffffffffffff":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"9" mbedtls_mpi_core_mla #1122: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100eeb97530edea86421f, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100eeb97530edea86421f, carry 0x12) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eeb97530edea86421f":"1234567890":"34567890abcdeedcba987667b32100eeb97530edea86421f":"12" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eeb97530edea86421f":"1234567890":"34567890abcdeedcba987667b32100eeb97530edea86421f":"12" mbedtls_mpi_core_mla #1123: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #1124: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffc, carry 0x3)/(0xfffffffffffffffc, carry 0x3) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffc":"3":"fffffffffffffffc":"3" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffc":"3":"fffffffffffffffc":"3" mbedtls_mpi_core_mla #1125: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffff01, carry 0xfe)/(0xffffffffffffff01, carry 0xfe) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" mbedtls_mpi_core_mla #1126: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffff00, carry 0xff)/(0xffffffffffffff00, carry 0xff) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffff00":"ff":"ffffffffffffff00":"ff" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffff00":"ff":"ffffffffffffff00":"ff" mbedtls_mpi_core_mla #1127: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffff0000, carry 0xffff)/(0xffffffffffff0000, carry 0xffff) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" mbedtls_mpi_core_mla #1128: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffffffffffeffff, carry 0x10000)/(0xfffffffffffeffff, carry 0x10000) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffeffff":"10000":"fffffffffffeffff":"10000" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffeffff":"10000":"fffffffffffeffff":"10000" mbedtls_mpi_core_mla #1129: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffff00000000, carry 0xffffffff)/(0xffffffff00000000, carry 0xffffffff) -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" mbedtls_mpi_core_mla #1130: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xfffffffeffffffff, carry 0x100000000)/(0xfffffffeffffffff, carry 0x100000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffeffffffff":"100000000":"fffffffeffffffff":"100000000" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffeffffffff":"100000000":"fffffffeffffffff":"100000000" mbedtls_mpi_core_mla #1131: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808080, carry 0x7f7f7f7f7f7f7f7f)/(0x8080808080808080, carry 0x7f7f7f7f7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f" mbedtls_mpi_core_mla #1132: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x8000000000000000)/(0x7fffffffffffffff, carry 0x8000000000000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000" mbedtls_mpi_core_mla #1133: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x1, carry 0xfffffffffffffffe)/(0x1, carry 0xfffffffffffffffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1":"fffffffffffffffe":"1":"fffffffffffffffe" +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1":"fffffffffffffffe":"1":"fffffffffffffffe" mbedtls_mpi_core_mla #1134: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #1135: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf":"0" mbedtls_mpi_core_mla #1136: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f":"0" mbedtls_mpi_core_mla #1137: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122322222181b222110f, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122322222181b222110f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122322222181b222110f":"0":"12222222181b2221122222222181b2221122222222181b2221122322222181b222110f":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122322222181b222110f":"0":"12222222181b2221122222222181b2221122222222181b2221122322222181b222110f":"0" mbedtls_mpi_core_mla #1138: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f":"0":"123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f":"0":"123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f":"0" mbedtls_mpi_core_mla #1139: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff":"0" mbedtls_mpi_core_mla #1140: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f":"1234":"123456787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f":"1234":"123456787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f":"0" mbedtls_mpi_core_mla #1141: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff":"0" mbedtls_mpi_core_mla #1142: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f, carry 0x911) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f":"911" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f":"911" mbedtls_mpi_core_mla #1143: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff, carry 0x91a) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"91a" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"91a" mbedtls_mpi_core_mla #1144: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f, carry 0x1234) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f":"1234" +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f":"1234" mbedtls_mpi_core_mla #1145: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" mbedtls_mpi_core_mla #1146: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380":"0" +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380":"0" mbedtls_mpi_core_mla #1147: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9":"0" +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9":"0" mbedtls_mpi_core_mla #1148: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4":"0" +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4":"0" mbedtls_mpi_core_mla #1149: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4":"0" +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4":"0" mbedtls_mpi_core_mla #1150: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff":"0" +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff":"0" mbedtls_mpi_core_mla #1151: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4, carry 0x4) -mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4":"4" +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4":"4" mbedtls_mpi_core_mla #1152: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff, carry 0x4) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff":"4" +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff":"4" mbedtls_mpi_core_mla #1153: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954, carry 0x26d473ca9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954":"26d473ca9" +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954":"26d473ca9" mbedtls_mpi_core_mla #1154: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff, carry 0x26fb9683d) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff":"26fb9683d" +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff":"26fb9683d" mbedtls_mpi_core_mla #1155: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9, carry 0x4df72d07b) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9":"4df72d07b" +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9":"4df72d07b" mbedtls_mpi_core_mla #1156: 0x10000000000000000 + 0x0 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"0":"0":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"0":"0":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1157: 0x10000000000000000 + 0x0 * 0x3 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"0":"3":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"0":"3":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1158: 0x10000000000000000 + 0x0 * 0xfe = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"0":"fe":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"0":"fe":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1159: 0x10000000000000000 + 0x0 * 0xff = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"0":"ff":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"0":"ff":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1160: 0x10000000000000000 + 0x0 * 0xffff = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"0":"ffff":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"0":"ffff":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1161: 0x10000000000000000 + 0x0 * 0x10000 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"0":"10000":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"0":"10000":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1162: 0x10000000000000000 + 0x0 * 0xffffffff = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"0":"ffffffff":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"0":"ffffffff":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1163: 0x10000000000000000 + 0x0 * 0x100000000 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"0":"100000000":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"0":"100000000":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1164: 0x10000000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"0":"7f7f7f7f7f7f7f7f":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"0":"7f7f7f7f7f7f7f7f":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1165: 0x10000000000000000 + 0x0 * 0x8000000000000000 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"0":"8000000000000000":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"0":"8000000000000000":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1166: 0x10000000000000000 + 0x0 * 0xfffffffffffffffe = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"0":"fffffffffffffffe":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"0":"fffffffffffffffe":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1167: 0x10000000000000000 + 0x1 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1":"0":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"1":"0":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1168: 0x10000000000000000 + 0x1 * 0x3 = (0x10000000000000003, carry 0x0)/(0x10000000000000003, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1":"3":"10000000000000003":"0":"10000000000000003":"0" +mpi_core_mla:"10000000000000000":"1":"3":"10000000000000003":"0":"10000000000000003":"0" mbedtls_mpi_core_mla #1169: 0x10000000000000000 + 0x1 * 0xfe = (0x100000000000000fe, carry 0x0)/(0x100000000000000fe, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1":"fe":"100000000000000fe":"0":"100000000000000fe":"0" +mpi_core_mla:"10000000000000000":"1":"fe":"100000000000000fe":"0":"100000000000000fe":"0" mbedtls_mpi_core_mla #1170: 0x10000000000000000 + 0x1 * 0xff = (0x100000000000000ff, carry 0x0)/(0x100000000000000ff, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1":"ff":"100000000000000ff":"0":"100000000000000ff":"0" +mpi_core_mla:"10000000000000000":"1":"ff":"100000000000000ff":"0":"100000000000000ff":"0" mbedtls_mpi_core_mla #1171: 0x10000000000000000 + 0x1 * 0xffff = (0x1000000000000ffff, carry 0x0)/(0x1000000000000ffff, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1":"ffff":"1000000000000ffff":"0":"1000000000000ffff":"0" +mpi_core_mla:"10000000000000000":"1":"ffff":"1000000000000ffff":"0":"1000000000000ffff":"0" mbedtls_mpi_core_mla #1172: 0x10000000000000000 + 0x1 * 0x10000 = (0x10000000000010000, carry 0x0)/(0x10000000000010000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1":"10000":"10000000000010000":"0":"10000000000010000":"0" +mpi_core_mla:"10000000000000000":"1":"10000":"10000000000010000":"0":"10000000000010000":"0" mbedtls_mpi_core_mla #1173: 0x10000000000000000 + 0x1 * 0xffffffff = (0x100000000ffffffff, carry 0x0)/(0x100000000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1":"ffffffff":"100000000ffffffff":"0":"100000000ffffffff":"0" +mpi_core_mla:"10000000000000000":"1":"ffffffff":"100000000ffffffff":"0":"100000000ffffffff":"0" mbedtls_mpi_core_mla #1174: 0x10000000000000000 + 0x1 * 0x100000000 = (0x10000000100000000, carry 0x0)/(0x10000000100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"1":"100000000":"10000000100000000":"0":"10000000100000000":"0" +mpi_core_mla:"10000000000000000":"1":"100000000":"10000000100000000":"0":"10000000100000000":"0" mbedtls_mpi_core_mla #1175: 0x10000000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x17f7f7f7f7f7f7f7f, carry 0x0)/(0x17f7f7f7f7f7f7f7f, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"1":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7f":"0":"17f7f7f7f7f7f7f7f":"0" +mpi_core_mla:"10000000000000000":"1":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7f":"0":"17f7f7f7f7f7f7f7f":"0" mbedtls_mpi_core_mla #1176: 0x10000000000000000 + 0x1 * 0x8000000000000000 = (0x18000000000000000, carry 0x0)/(0x18000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"1":"8000000000000000":"18000000000000000":"0":"18000000000000000":"0" +mpi_core_mla:"10000000000000000":"1":"8000000000000000":"18000000000000000":"0":"18000000000000000":"0" mbedtls_mpi_core_mla #1177: 0x10000000000000000 + 0x1 * 0xfffffffffffffffe = (0x1fffffffffffffffe, carry 0x0)/(0x1fffffffffffffffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"1":"fffffffffffffffe":"1fffffffffffffffe":"0":"1fffffffffffffffe":"0" +mpi_core_mla:"10000000000000000":"1":"fffffffffffffffe":"1fffffffffffffffe":"0":"1fffffffffffffffe":"0" mbedtls_mpi_core_mla #1178: 0x10000000000000000 + 0xfffe * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"fffe":"0":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"fffe":"0":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1179: 0x10000000000000000 + 0xfffe * 0x3 = (0x1000000000002fffa, carry 0x0)/(0x1000000000002fffa, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"fffe":"3":"1000000000002fffa":"0":"1000000000002fffa":"0" +mpi_core_mla:"10000000000000000":"fffe":"3":"1000000000002fffa":"0":"1000000000002fffa":"0" mbedtls_mpi_core_mla #1180: 0x10000000000000000 + 0xfffe * 0xfe = (0x10000000000fdfe04, carry 0x0)/(0x10000000000fdfe04, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"fffe":"fe":"10000000000fdfe04":"0":"10000000000fdfe04":"0" +mpi_core_mla:"10000000000000000":"fffe":"fe":"10000000000fdfe04":"0":"10000000000fdfe04":"0" mbedtls_mpi_core_mla #1181: 0x10000000000000000 + 0xfffe * 0xff = (0x10000000000fefe02, carry 0x0)/(0x10000000000fefe02, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"fffe":"ff":"10000000000fefe02":"0":"10000000000fefe02":"0" +mpi_core_mla:"10000000000000000":"fffe":"ff":"10000000000fefe02":"0":"10000000000fefe02":"0" mbedtls_mpi_core_mla #1182: 0x10000000000000000 + 0xfffe * 0xffff = (0x100000000fffd0002, carry 0x0)/(0x100000000fffd0002, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"fffe":"ffff":"100000000fffd0002":"0":"100000000fffd0002":"0" +mpi_core_mla:"10000000000000000":"fffe":"ffff":"100000000fffd0002":"0":"100000000fffd0002":"0" mbedtls_mpi_core_mla #1183: 0x10000000000000000 + 0xfffe * 0x10000 = (0x100000000fffe0000, carry 0x0)/(0x100000000fffe0000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"fffe":"10000":"100000000fffe0000":"0":"100000000fffe0000":"0" +mpi_core_mla:"10000000000000000":"fffe":"10000":"100000000fffe0000":"0":"100000000fffe0000":"0" mbedtls_mpi_core_mla #1184: 0x10000000000000000 + 0xfffe * 0xffffffff = (0x10000fffdffff0002, carry 0x0)/(0x10000fffdffff0002, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"fffe":"ffffffff":"10000fffdffff0002":"0":"10000fffdffff0002":"0" +mpi_core_mla:"10000000000000000":"fffe":"ffffffff":"10000fffdffff0002":"0":"10000fffdffff0002":"0" mbedtls_mpi_core_mla #1185: 0x10000000000000000 + 0xfffe * 0x100000000 = (0x10000fffe00000000, carry 0x0)/(0x10000fffe00000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"fffe":"100000000":"10000fffe00000000":"0":"10000fffe00000000":"0" +mpi_core_mla:"10000000000000000":"fffe":"100000000":"10000fffe00000000":"0":"10000fffe00000000":"0" mbedtls_mpi_core_mla #1186: 0x10000000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x7f7f8080808080800102, carry 0x0)/(0x7f7f8080808080800102, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"fffe":"7f7f7f7f7f7f7f7f":"7f7f8080808080800102":"0":"7f7f8080808080800102":"0" +mpi_core_mla:"10000000000000000":"fffe":"7f7f7f7f7f7f7f7f":"7f7f8080808080800102":"0":"7f7f8080808080800102":"0" mbedtls_mpi_core_mla #1187: 0x10000000000000000 + 0xfffe * 0x8000000000000000 = (0x80000000000000000000, carry 0x0)/(0x80000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"fffe":"8000000000000000":"80000000000000000000":"0":"80000000000000000000":"0" +mpi_core_mla:"10000000000000000":"fffe":"8000000000000000":"80000000000000000000":"0":"80000000000000000000":"0" mbedtls_mpi_core_mla #1188: 0x10000000000000000 + 0xfffe * 0xfffffffffffffffe = (0xfffefffffffffffe0004, carry 0x0)/(0xfffefffffffffffe0004, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"fffe":"fffffffffffffffe":"fffefffffffffffe0004":"0":"fffefffffffffffe0004":"0" +mpi_core_mla:"10000000000000000":"fffe":"fffffffffffffffe":"fffefffffffffffe0004":"0":"fffefffffffffffe0004":"0" mbedtls_mpi_core_mla #1189: 0x10000000000000000 + 0xffffffff * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"ffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1190: 0x10000000000000000 + 0xffffffff * 0x3 = (0x100000002fffffffd, carry 0x0)/(0x100000002fffffffd, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"3":"100000002fffffffd":"0":"100000002fffffffd":"0" +mpi_core_mla:"10000000000000000":"ffffffff":"3":"100000002fffffffd":"0":"100000002fffffffd":"0" mbedtls_mpi_core_mla #1191: 0x10000000000000000 + 0xffffffff * 0xfe = (0x1000000fdffffff02, carry 0x0)/(0x1000000fdffffff02, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"fe":"1000000fdffffff02":"0":"1000000fdffffff02":"0" +mpi_core_mla:"10000000000000000":"ffffffff":"fe":"1000000fdffffff02":"0":"1000000fdffffff02":"0" mbedtls_mpi_core_mla #1192: 0x10000000000000000 + 0xffffffff * 0xff = (0x1000000feffffff01, carry 0x0)/(0x1000000feffffff01, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"ff":"1000000feffffff01":"0":"1000000feffffff01":"0" +mpi_core_mla:"10000000000000000":"ffffffff":"ff":"1000000feffffff01":"0":"1000000feffffff01":"0" mbedtls_mpi_core_mla #1193: 0x10000000000000000 + 0xffffffff * 0xffff = (0x10000fffeffff0001, carry 0x0)/(0x10000fffeffff0001, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"ffff":"10000fffeffff0001":"0":"10000fffeffff0001":"0" +mpi_core_mla:"10000000000000000":"ffffffff":"ffff":"10000fffeffff0001":"0":"10000fffeffff0001":"0" mbedtls_mpi_core_mla #1194: 0x10000000000000000 + 0xffffffff * 0x10000 = (0x10000ffffffff0000, carry 0x0)/(0x10000ffffffff0000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"10000":"10000ffffffff0000":"0":"10000ffffffff0000":"0" +mpi_core_mla:"10000000000000000":"ffffffff":"10000":"10000ffffffff0000":"0":"10000ffffffff0000":"0" mbedtls_mpi_core_mla #1195: 0x10000000000000000 + 0xffffffff * 0xffffffff = (0x1fffffffe00000001, carry 0x0)/(0x1fffffffe00000001, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"ffffffff":"1fffffffe00000001":"0":"1fffffffe00000001":"0" +mpi_core_mla:"10000000000000000":"ffffffff":"ffffffff":"1fffffffe00000001":"0":"1fffffffe00000001":"0" mbedtls_mpi_core_mla #1196: 0x10000000000000000 + 0xffffffff * 0x100000000 = (0x1ffffffff00000000, carry 0x0)/(0x1ffffffff00000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"100000000":"1ffffffff00000000":"0":"1ffffffff00000000":"0" +mpi_core_mla:"10000000000000000":"ffffffff":"100000000":"1ffffffff00000000":"0":"1ffffffff00000000":"0" mbedtls_mpi_core_mla #1197: 0x10000000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fffffffff80808081, carry 0x0)/(0x7f7f7f7fffffffff80808081, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffff80808081":"0":"7f7f7f7fffffffff80808081":"0" +mpi_core_mla:"10000000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffff80808081":"0":"7f7f7f7fffffffff80808081":"0" mbedtls_mpi_core_mla #1198: 0x10000000000000000 + 0xffffffff * 0x8000000000000000 = (0x800000008000000000000000, carry 0x0)/(0x800000008000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"8000000000000000":"800000008000000000000000":"0":"800000008000000000000000":"0" +mpi_core_mla:"10000000000000000":"ffffffff":"8000000000000000":"800000008000000000000000":"0":"800000008000000000000000":"0" mbedtls_mpi_core_mla #1199: 0x10000000000000000 + 0xffffffff * 0xfffffffffffffffe = (0xfffffffffffffffe00000002, carry 0x0)/(0xfffffffffffffffe00000002, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"ffffffff":"fffffffffffffffe":"fffffffffffffffe00000002":"0":"fffffffffffffffe00000002":"0" +mpi_core_mla:"10000000000000000":"ffffffff":"fffffffffffffffe":"fffffffffffffffe00000002":"0":"fffffffffffffffe00000002":"0" mbedtls_mpi_core_mla #1200: 0x10000000000000000 + 0x100000000 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"100000000":"0":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"100000000":"0":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1201: 0x10000000000000000 + 0x100000000 * 0x3 = (0x10000000300000000, carry 0x0)/(0x10000000300000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"100000000":"3":"10000000300000000":"0":"10000000300000000":"0" +mpi_core_mla:"10000000000000000":"100000000":"3":"10000000300000000":"0":"10000000300000000":"0" mbedtls_mpi_core_mla #1202: 0x10000000000000000 + 0x100000000 * 0xfe = (0x1000000fe00000000, carry 0x0)/(0x1000000fe00000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"100000000":"fe":"1000000fe00000000":"0":"1000000fe00000000":"0" +mpi_core_mla:"10000000000000000":"100000000":"fe":"1000000fe00000000":"0":"1000000fe00000000":"0" mbedtls_mpi_core_mla #1203: 0x10000000000000000 + 0x100000000 * 0xff = (0x1000000ff00000000, carry 0x0)/(0x1000000ff00000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"100000000":"ff":"1000000ff00000000":"0":"1000000ff00000000":"0" +mpi_core_mla:"10000000000000000":"100000000":"ff":"1000000ff00000000":"0":"1000000ff00000000":"0" mbedtls_mpi_core_mla #1204: 0x10000000000000000 + 0x100000000 * 0xffff = (0x10000ffff00000000, carry 0x0)/(0x10000ffff00000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"100000000":"ffff":"10000ffff00000000":"0":"10000ffff00000000":"0" +mpi_core_mla:"10000000000000000":"100000000":"ffff":"10000ffff00000000":"0":"10000ffff00000000":"0" mbedtls_mpi_core_mla #1205: 0x10000000000000000 + 0x100000000 * 0x10000 = (0x10001000000000000, carry 0x0)/(0x10001000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"100000000":"10000":"10001000000000000":"0":"10001000000000000":"0" +mpi_core_mla:"10000000000000000":"100000000":"10000":"10001000000000000":"0":"10001000000000000":"0" mbedtls_mpi_core_mla #1206: 0x10000000000000000 + 0x100000000 * 0xffffffff = (0x1ffffffff00000000, carry 0x0)/(0x1ffffffff00000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"100000000":"ffffffff":"1ffffffff00000000":"0":"1ffffffff00000000":"0" +mpi_core_mla:"10000000000000000":"100000000":"ffffffff":"1ffffffff00000000":"0":"1ffffffff00000000":"0" mbedtls_mpi_core_mla #1207: 0x10000000000000000 + 0x100000000 * 0x100000000 = (0x20000000000000000, carry 0x0)/(0x20000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"100000000":"100000000":"20000000000000000":"0":"20000000000000000":"0" +mpi_core_mla:"10000000000000000":"100000000":"100000000":"20000000000000000":"0":"20000000000000000":"0" mbedtls_mpi_core_mla #1208: 0x10000000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f807f7f7f7f00000000, carry 0x0)/(0x7f7f7f807f7f7f7f00000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f807f7f7f7f00000000":"0":"7f7f7f807f7f7f7f00000000":"0" +mpi_core_mla:"10000000000000000":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f807f7f7f7f00000000":"0":"7f7f7f807f7f7f7f00000000":"0" mbedtls_mpi_core_mla #1209: 0x10000000000000000 + 0x100000000 * 0x8000000000000000 = (0x800000010000000000000000, carry 0x0)/(0x800000010000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"100000000":"8000000000000000":"800000010000000000000000":"0":"800000010000000000000000":"0" +mpi_core_mla:"10000000000000000":"100000000":"8000000000000000":"800000010000000000000000":"0":"800000010000000000000000":"0" mbedtls_mpi_core_mla #1210: 0x10000000000000000 + 0x100000000 * 0xfffffffffffffffe = (0xfffffffe00000000, carry 0x1)/(0x100000000fffffffe00000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"100000000":"fffffffffffffffe":"fffffffe00000000":"1":"100000000fffffffe00000000":"0" +mpi_core_mla:"10000000000000000":"100000000":"fffffffffffffffe":"fffffffe00000000":"1":"100000000fffffffe00000000":"0" mbedtls_mpi_core_mla #1211: 0x10000000000000000 + 0x20000000000000 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"20000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1212: 0x10000000000000000 + 0x20000000000000 * 0x3 = (0x10060000000000000, carry 0x0)/(0x10060000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"3":"10060000000000000":"0":"10060000000000000":"0" +mpi_core_mla:"10000000000000000":"20000000000000":"3":"10060000000000000":"0":"10060000000000000":"0" mbedtls_mpi_core_mla #1213: 0x10000000000000000 + 0x20000000000000 * 0xfe = (0x11fc0000000000000, carry 0x0)/(0x11fc0000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"fe":"11fc0000000000000":"0":"11fc0000000000000":"0" +mpi_core_mla:"10000000000000000":"20000000000000":"fe":"11fc0000000000000":"0":"11fc0000000000000":"0" mbedtls_mpi_core_mla #1214: 0x10000000000000000 + 0x20000000000000 * 0xff = (0x11fe0000000000000, carry 0x0)/(0x11fe0000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"ff":"11fe0000000000000":"0":"11fe0000000000000":"0" +mpi_core_mla:"10000000000000000":"20000000000000":"ff":"11fe0000000000000":"0":"11fe0000000000000":"0" mbedtls_mpi_core_mla #1215: 0x10000000000000000 + 0x20000000000000 * 0xffff = (0x20ffe0000000000000, carry 0x0)/(0x20ffe0000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"ffff":"20ffe0000000000000":"0":"20ffe0000000000000":"0" +mpi_core_mla:"10000000000000000":"20000000000000":"ffff":"20ffe0000000000000":"0":"20ffe0000000000000":"0" mbedtls_mpi_core_mla #1216: 0x10000000000000000 + 0x20000000000000 * 0x10000 = (0x210000000000000000, carry 0x0)/(0x210000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"10000":"210000000000000000":"0":"210000000000000000":"0" +mpi_core_mla:"10000000000000000":"20000000000000":"10000":"210000000000000000":"0":"210000000000000000":"0" mbedtls_mpi_core_mla #1217: 0x10000000000000000 + 0x20000000000000 * 0xffffffff = (0x200000ffe0000000000000, carry 0x0)/(0x200000ffe0000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"ffffffff":"200000ffe0000000000000":"0":"200000ffe0000000000000":"0" +mpi_core_mla:"10000000000000000":"20000000000000":"ffffffff":"200000ffe0000000000000":"0":"200000ffe0000000000000":"0" mbedtls_mpi_core_mla #1218: 0x10000000000000000 + 0x20000000000000 * 0x100000000 = (0x2000010000000000000000, carry 0x0)/(0x2000010000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"100000000":"2000010000000000000000":"0":"2000010000000000000000":"0" +mpi_core_mla:"10000000000000000":"20000000000000":"100000000":"2000010000000000000000":"0":"2000010000000000000000":"0" mbedtls_mpi_core_mla #1219: 0x10000000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefefeff0efe0000000000000, carry 0xfefef)/(0xfefefefefeff0efe0000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"efefeff0efe0000000000000":"fefef":"fefefefefeff0efe0000000000000":"0" +mpi_core_mla:"10000000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"efefeff0efe0000000000000":"fefef":"fefefefefeff0efe0000000000000":"0" mbedtls_mpi_core_mla #1220: 0x10000000000000000 + 0x20000000000000 * 0x8000000000000000 = (0x10000000000000000, carry 0x100000)/(0x100000000000010000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"8000000000000000":"10000000000000000":"100000":"100000000000010000000000000000":"0" +mpi_core_mla:"10000000000000000":"20000000000000":"8000000000000000":"10000000000000000":"100000":"100000000000010000000000000000":"0" mbedtls_mpi_core_mla #1221: 0x10000000000000000 + 0x20000000000000 * 0xfffffffffffffffe = (0xffc0000000000000, carry 0x200000)/(0x20000000000000ffc0000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"20000000000000":"fffffffffffffffe":"ffc0000000000000":"200000":"20000000000000ffc0000000000000":"0" +mpi_core_mla:"10000000000000000":"20000000000000":"fffffffffffffffe":"ffc0000000000000":"200000":"20000000000000ffc0000000000000":"0" mbedtls_mpi_core_mla #1222: 0x10000000000000000 + 0xffffffffffffffff * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1223: 0x10000000000000000 + 0xffffffffffffffff * 0x3 = (0x3fffffffffffffffd, carry 0x0)/(0x3fffffffffffffffd, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"3":"3fffffffffffffffd":"0":"3fffffffffffffffd":"0" +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"3":"3fffffffffffffffd":"0":"3fffffffffffffffd":"0" mbedtls_mpi_core_mla #1224: 0x10000000000000000 + 0xffffffffffffffff * 0xfe = (0xfeffffffffffffff02, carry 0x0)/(0xfeffffffffffffff02, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"fe":"feffffffffffffff02":"0":"feffffffffffffff02":"0" +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"fe":"feffffffffffffff02":"0":"feffffffffffffff02":"0" mbedtls_mpi_core_mla #1225: 0x10000000000000000 + 0xffffffffffffffff * 0xff = (0xffffffffffffffff01, carry 0x0)/(0xffffffffffffffff01, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ff":"ffffffffffffffff01":"0":"ffffffffffffffff01":"0" +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ff":"ffffffffffffffff01":"0":"ffffffffffffffff01":"0" mbedtls_mpi_core_mla #1226: 0x10000000000000000 + 0xffffffffffffffff * 0xffff = (0xffffffffffffffff0001, carry 0x0)/(0xffffffffffffffff0001, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ffff":"ffffffffffffffff0001":"0":"ffffffffffffffff0001":"0" +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ffff":"ffffffffffffffff0001":"0":"ffffffffffffffff0001":"0" mbedtls_mpi_core_mla #1227: 0x10000000000000000 + 0xffffffffffffffff * 0x10000 = (0x10000ffffffffffff0000, carry 0x0)/(0x10000ffffffffffff0000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"10000":"10000ffffffffffff0000":"0":"10000ffffffffffff0000":"0" +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"10000":"10000ffffffffffff0000":"0":"10000ffffffffffff0000":"0" mbedtls_mpi_core_mla #1228: 0x10000000000000000 + 0xffffffffffffffff * 0xffffffff = (0xffffffffffffffff00000001, carry 0x0)/(0xffffffffffffffff00000001, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ffffffff":"ffffffffffffffff00000001":"0":"ffffffffffffffff00000001":"0" +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ffffffff":"ffffffffffffffff00000001":"0":"ffffffffffffffff00000001":"0" mbedtls_mpi_core_mla #1229: 0x10000000000000000 + 0xffffffffffffffff * 0x100000000 = (0xffffffff00000000, carry 0x1)/(0x100000000ffffffff00000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"100000000":"ffffffff00000000":"1":"100000000ffffffff00000000":"0" +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"100000000":"ffffffff00000000":"1":"100000000ffffffff00000000":"0" mbedtls_mpi_core_mla #1230: 0x10000000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f8080808080808081, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f8080808080808081, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f8080808080808081":"7f7f7f7f":"7f7f7f7f7f7f7f7f8080808080808081":"0" +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f8080808080808081":"7f7f7f7f":"7f7f7f7f7f7f7f7f8080808080808081":"0" mbedtls_mpi_core_mla #1231: 0x10000000000000000 + 0xffffffffffffffff * 0x8000000000000000 = (0x8000000000000000, carry 0x80000000)/(0x80000000000000008000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"8000000000000000":"8000000000000000":"80000000":"80000000000000008000000000000000":"0" +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"8000000000000000":"8000000000000000":"80000000":"80000000000000008000000000000000":"0" mbedtls_mpi_core_mla #1232: 0x10000000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe = (0xfffffffe0000000000000002, carry 0xffffffff)/(0xfffffffffffffffe0000000000000002, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffff":"fffffffffffffffe":"fffffffe0000000000000002":"ffffffff":"fffffffffffffffe0000000000000002":"0" +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"fffffffffffffffe":"fffffffe0000000000000002":"ffffffff":"fffffffffffffffe0000000000000002":"0" mbedtls_mpi_core_mla #1233: 0x10000000000000000 + 0x10000000000000000 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"10000000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1234: 0x10000000000000000 + 0x10000000000000000 * 0x3 = (0x40000000000000000, carry 0x0)/(0x40000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"3":"40000000000000000":"0":"40000000000000000":"0" +mpi_core_mla:"10000000000000000":"10000000000000000":"3":"40000000000000000":"0":"40000000000000000":"0" mbedtls_mpi_core_mla #1235: 0x10000000000000000 + 0x10000000000000000 * 0xfe = (0xff0000000000000000, carry 0x0)/(0xff0000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"fe":"ff0000000000000000":"0":"ff0000000000000000":"0" +mpi_core_mla:"10000000000000000":"10000000000000000":"fe":"ff0000000000000000":"0":"ff0000000000000000":"0" mbedtls_mpi_core_mla #1236: 0x10000000000000000 + 0x10000000000000000 * 0xff = (0x1000000000000000000, carry 0x0)/(0x1000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"ff":"1000000000000000000":"0":"1000000000000000000":"0" +mpi_core_mla:"10000000000000000":"10000000000000000":"ff":"1000000000000000000":"0":"1000000000000000000":"0" mbedtls_mpi_core_mla #1237: 0x10000000000000000 + 0x10000000000000000 * 0xffff = (0x100000000000000000000, carry 0x0)/(0x100000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"ffff":"100000000000000000000":"0":"100000000000000000000":"0" +mpi_core_mla:"10000000000000000":"10000000000000000":"ffff":"100000000000000000000":"0":"100000000000000000000":"0" mbedtls_mpi_core_mla #1238: 0x10000000000000000 + 0x10000000000000000 * 0x10000 = (0x100010000000000000000, carry 0x0)/(0x100010000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"10000":"100010000000000000000":"0":"100010000000000000000":"0" +mpi_core_mla:"10000000000000000":"10000000000000000":"10000":"100010000000000000000":"0":"100010000000000000000":"0" mbedtls_mpi_core_mla #1239: 0x10000000000000000 + 0x10000000000000000 * 0xffffffff = (0x0, carry 0x1)/(0x1000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"ffffffff":"0":"1":"1000000000000000000000000":"0" +mpi_core_mla:"10000000000000000":"10000000000000000":"ffffffff":"0":"1":"1000000000000000000000000":"0" mbedtls_mpi_core_mla #1240: 0x10000000000000000 + 0x10000000000000000 * 0x100000000 = (0x10000000000000000, carry 0x1)/(0x1000000010000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"100000000":"10000000000000000":"1":"1000000010000000000000000":"0" +mpi_core_mla:"10000000000000000":"10000000000000000":"100000000":"10000000000000000":"1":"1000000010000000000000000":"0" mbedtls_mpi_core_mla #1241: 0x10000000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f800000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f800000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f800000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f800000000000000000":"0" +mpi_core_mla:"10000000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f800000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f800000000000000000":"0" mbedtls_mpi_core_mla #1242: 0x10000000000000000 + 0x10000000000000000 * 0x8000000000000000 = (0x10000000000000000, carry 0x80000000)/(0x80000000000000010000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"8000000000000000":"10000000000000000":"80000000":"80000000000000010000000000000000":"0" +mpi_core_mla:"10000000000000000":"10000000000000000":"8000000000000000":"10000000000000000":"80000000":"80000000000000010000000000000000":"0" mbedtls_mpi_core_mla #1243: 0x10000000000000000 + 0x10000000000000000 * 0xfffffffffffffffe = (0xffffffff0000000000000000, carry 0xffffffff)/(0xffffffffffffffff0000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"10000000000000000":"fffffffffffffffe":"ffffffff0000000000000000":"ffffffff":"ffffffffffffffff0000000000000000":"0" +mpi_core_mla:"10000000000000000":"10000000000000000":"fffffffffffffffe":"ffffffff0000000000000000":"ffffffff":"ffffffffffffffff0000000000000000":"0" mbedtls_mpi_core_mla #1244: 0x10000000000000000 + 0x1234567890abcdef0 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1245: 0x10000000000000000 + 0x1234567890abcdef0 * 0x3 = (0x469d0369b20369cd0, carry 0x0)/(0x469d0369b20369cd0, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"3":"469d0369b20369cd0":"0":"469d0369b20369cd0":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"3":"469d0369b20369cd0":"0":"469d0369b20369cd0":"0" mbedtls_mpi_core_mla #1246: 0x10000000000000000 + 0x1234567890abcdef0 * 0xfe = (0x121fedcb9f8a7653220, carry 0x0)/(0x121fedcb9f8a7653220, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"fe":"121fedcb9f8a7653220":"0":"121fedcb9f8a7653220":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"fe":"121fedcb9f8a7653220":"0":"121fedcb9f8a7653220":"0" mbedtls_mpi_core_mla #1247: 0x10000000000000000 + 0x1234567890abcdef0 * 0xff = (0x12322222181b2221110, carry 0x0)/(0x12322222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ff":"12322222181b2221110":"0":"12322222181b2221110":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ff":"12322222181b2221110":"0":"12322222181b2221110":"0" mbedtls_mpi_core_mla #1248: 0x10000000000000000 + 0x1234567890abcdef0 * 0xffff = (0x123454443a333d4332110, carry 0x0)/(0x123454443a333d4332110, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ffff":"123454443a333d4332110":"0":"123454443a333d4332110":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ffff":"123454443a333d4332110":"0":"123454443a333d4332110":"0" mbedtls_mpi_core_mla #1249: 0x10000000000000000 + 0x1234567890abcdef0 * 0x10000 = (0x1234667890abcdef00000, carry 0x0)/(0x1234667890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"10000":"1234667890abcdef00000":"0":"1234667890abcdef00000":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"10000":"1234667890abcdef00000":"0":"1234667890abcdef00000":"0" mbedtls_mpi_core_mla #1250: 0x10000000000000000 + 0x1234567890abcdef0 * 0xffffffff = (0x23456788e7777766f5432110, carry 0x1)/(0x123456788e7777766f5432110, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ffffffff":"23456788e7777766f5432110":"1":"123456788e7777766f5432110":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ffffffff":"23456788e7777766f5432110":"1":"123456788e7777766f5432110":"0" mbedtls_mpi_core_mla #1251: 0x10000000000000000 + 0x1234567890abcdef0 * 0x100000000 = (0x2345678a0abcdef000000000, carry 0x1)/(0x12345678a0abcdef000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"100000000":"2345678a0abcdef000000000":"1":"12345678a0abcdef000000000":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"100000000":"2345678a0abcdef000000000":"1":"12345678a0abcdef000000000":"0" mbedtls_mpi_core_mla #1252: 0x10000000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde77f67708abaf5ba910, carry 0x91107edb)/(0x91107edbd82bde77f67708abaf5ba910, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde77f67708abaf5ba910":"91107edb":"91107edbd82bde77f67708abaf5ba910":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde77f67708abaf5ba910":"91107edb":"91107edbd82bde77f67708abaf5ba910":"0" mbedtls_mpi_core_mla #1253: 0x10000000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f790000000000000000, carry 0x91a2b3c4)/(0x91a2b3c4855e6f790000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"8000000000000000":"855e6f790000000000000000":"91a2b3c4":"91a2b3c4855e6f790000000000000000":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"8000000000000000":"855e6f790000000000000000":"91a2b3c4":"91a2b3c4855e6f790000000000000000":"0" mbedtls_mpi_core_mla #1254: 0x10000000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeeb97530edea864220, carry 0x123456789)/(0x234567890abcdeeeb97530edea864220, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeeeb97530edea864220":"123456789":"234567890abcdeeeb97530edea864220":"1" +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeeeb97530edea864220":"123456789":"234567890abcdeeeb97530edea864220":"1" mbedtls_mpi_core_mla #1255: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"0":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"0":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1256: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfcfcfcfcfcfcfcfa, carry 0x3)/(0xfcfcfcfcfcfcfcfa, carry 0x3) -mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"3":"fcfcfcfcfcfcfcfa":"3":"fcfcfcfcfcfcfcfa":"3" +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"3":"fcfcfcfcfcfcfcfa":"3":"fcfcfcfcfcfcfcfa":"3" mbedtls_mpi_core_mla #1257: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x101010101010004, carry 0xfe)/(0x101010101010004, carry 0xfe) -mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fe":"101010101010004":"fe":"101010101010004":"fe" +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fe":"101010101010004":"fe":"101010101010004":"fe" mbedtls_mpi_core_mla #1258: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffffffffffffffffff02, carry 0xfe)/(0xffffffffffffffffffffffffffffff02, carry 0xfe) -mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffff02":"fe" +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffff02":"fe" mbedtls_mpi_core_mla #1259: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeffffffffffffff0102, carry 0xfffe)/(0xfffffffffffffeffffffffffffff0102, carry 0xfffe) -mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeffffffffffffff0102":"fffe":"fffffffffffffeffffffffffffff0102":"fffe" +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeffffffffffffff0102":"fffe":"fffffffffffffeffffffffffffff0102":"fffe" mbedtls_mpi_core_mla #1260: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefffefefefefefe0000, carry 0xffff)/(0xfffffffffffffefffefefefefefe0000, carry 0xffff) -mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefffefefefefefe0000":"ffff":"fffffffffffffefffefefefefefe0000":"ffff" +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefffefefefefefe0000":"ffff":"fffffffffffffefffefefefefefe0000":"ffff" mbedtls_mpi_core_mla #1261: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeffffffffff01010102, carry 0xfffffffe)/(0xfffffffffefefeffffffffff01010102, carry 0xfffffffe) -mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeffffffffff01010102":"fffffffe":"fffffffffefefeffffffffff01010102":"fffffffe" +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeffffffffff01010102":"fffffffe":"fffffffffefefeffffffffff01010102":"fffffffe" mbedtls_mpi_core_mla #1262: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefffefefefe00000000, carry 0xffffffff)/(0xfffffffffefefefffefefefe00000000, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefffefefefe00000000":"ffffffff":"fffffffffefefefffefefefe00000000":"ffffffff" +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefffefefefe00000000":"ffffffff":"fffffffffefefefffefefefe00000000":"ffffffff" mbedtls_mpi_core_mla #1263: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202838504840383028202, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202838504840383028202, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202838504840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202838504840383028202":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202838504840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202838504840383028202":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #1264: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f800000000000000000, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f800000000000000000, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f800000000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f800000000000000000":"7fffffffffffffff" +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f800000000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f800000000000000000":"7fffffffffffffff" mbedtls_mpi_core_mla #1265: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefeff0202020202020204, carry 0xfffffffffffffffd)/(0xfefefefefefefeff0202020202020204, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff0202020202020204":"fffffffffffffffd":"fefefefefefefeff0202020202020204":"fffffffffffffffd" +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff0202020202020204":"fffffffffffffffd":"fefefefefefefeff0202020202020204":"fffffffffffffffd" mbedtls_mpi_core_mla #1266: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1267: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000010000000000000000, carry 0x0)/(0x300000000000000010000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"3":"300000000000000010000000000000000":"0":"300000000000000010000000000000000":"0" +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"3":"300000000000000010000000000000000":"0":"300000000000000010000000000000000":"0" mbedtls_mpi_core_mla #1268: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000010000000000000000, carry 0x0)/(0xfe00000000000000010000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"fe":"fe00000000000000010000000000000000":"0":"fe00000000000000010000000000000000":"0" +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"fe":"fe00000000000000010000000000000000":"0":"fe00000000000000010000000000000000":"0" mbedtls_mpi_core_mla #1269: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000010000000000000000, carry 0x0)/(0xff00000000000000010000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ff":"ff00000000000000010000000000000000":"0":"ff00000000000000010000000000000000":"0" +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ff":"ff00000000000000010000000000000000":"0":"ff00000000000000010000000000000000":"0" mbedtls_mpi_core_mla #1270: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000010000000000000000, carry 0x0)/(0xffff00000000000000010000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000010000000000000000":"0":"ffff00000000000000010000000000000000":"0" +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000010000000000000000":"0":"ffff00000000000000010000000000000000":"0" mbedtls_mpi_core_mla #1271: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000010000000000000000, carry 0x0)/(0x1000000000000000000010000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"10000":"1000000000000000000010000000000000000":"0":"1000000000000000000010000000000000000":"0" +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"10000":"1000000000000000000010000000000000000":"0":"1000000000000000000010000000000000000":"0" mbedtls_mpi_core_mla #1272: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000010000000000000000, carry 0x0)/(0xffffffff00000000000000010000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000010000000000000000":"0":"ffffffff00000000000000010000000000000000":"0" +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000010000000000000000":"0":"ffffffff00000000000000010000000000000000":"0" mbedtls_mpi_core_mla #1273: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x100000000 = (0x10000000000000000, carry 0x1)/(0x10000000000000000000000010000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"100000000":"10000000000000000":"1":"10000000000000000000000010000000000000000":"0" +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"100000000":"10000000000000000":"1":"10000000000000000000000010000000000000000":"0" mbedtls_mpi_core_mla #1274: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000010000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000010000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000010000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000010000000000000000":"0" +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000010000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000010000000000000000":"0" mbedtls_mpi_core_mla #1275: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x10000000000000000, carry 0x80000000)/(0x800000000000000000000000000000010000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"8000000000000000":"10000000000000000":"80000000":"800000000000000000000000000000010000000000000000":"0" +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"8000000000000000":"10000000000000000":"80000000":"800000000000000000000000000000010000000000000000":"0" mbedtls_mpi_core_mla #1276: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000010000000000000000, carry 0xffffffff)/(0xfffffffffffffffe00000000000000010000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000010000000000000000":"ffffffff":"fffffffffffffffe00000000000000010000000000000000":"0" +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000010000000000000000":"ffffffff":"fffffffffffffffe00000000000000010000000000000000":"0" mbedtls_mpi_core_mla #1277: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1278: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0469d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0469d0369b20369cd0, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0469d0369b20369cd0":"0":"369d0369b20369cd0469d0369b20369cd0":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0469d0369b20369cd0":"0":"369d0369b20369cd0469d0369b20369cd0":"0" mbedtls_mpi_core_mla #1279: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532321fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532321fedcb9f8a7653220, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532321fedcb9f8a7653220":"0":"120fedcb9f8a76532321fedcb9f8a7653220":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532321fedcb9f8a7653220":"0":"120fedcb9f8a76532321fedcb9f8a7653220":"0" mbedtls_mpi_core_mla #1280: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122322222181b2221110, carry 0x0)/(0x12222222181b2221122322222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122322222181b2221110":"0":"12222222181b2221122322222181b2221110":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122322222181b2221110":"0":"12222222181b2221122322222181b2221110":"0" mbedtls_mpi_core_mla #1281: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334454443a333d4332110, carry 0x0)/(0x123444443a333d433334454443a333d4332110, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334454443a333d4332110":"0":"123444443a333d433334454443a333d4332110":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334454443a333d4332110":"0":"123444443a333d433334454443a333d4332110":"0" mbedtls_mpi_core_mla #1282: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234667890abcdef00000, carry 0x0)/(0x1234567890abcdef01234667890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234667890abcdef00000":"0":"1234567890abcdef01234667890abcdef00000":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234667890abcdef00000":"0":"1234567890abcdef01234667890abcdef00000":"0" mbedtls_mpi_core_mla #1283: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777888e7777766f5432110, carry 0x12)/(0x123456787e7777767077777888e7777766f5432110, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777888e7777766f5432110":"12":"123456787e7777767077777888e7777766f5432110":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777888e7777766f5432110":"12":"123456787e7777767077777888e7777766f5432110":"0" mbedtls_mpi_core_mla #1284: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef012345678a0abcdef000000000, carry 0x12)/(0x1234567890abcdef012345678a0abcdef000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a0abcdef000000000":"12":"1234567890abcdef012345678a0abcdef000000000":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a0abcdef000000000":"12":"1234567890abcdef012345678a0abcdef000000000":"0" mbedtls_mpi_core_mla #1285: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f77f67708abaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f77f67708abaf5ba910, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f77f67708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f77f67708abaf5ba910":"9" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f77f67708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f77f67708abaf5ba910":"9" mbedtls_mpi_core_mla #1286: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f790000000000000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f790000000000000000, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f790000000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"9" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f790000000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"9" mbedtls_mpi_core_mla #1287: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100eeb97530edea864220, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100eeb97530edea864220, carry 0x12) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eeb97530edea864220":"1234567890":"34567890abcdeedcba987667b32100eeb97530edea864220":"12" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eeb97530edea864220":"1234567890":"34567890abcdeedcba987667b32100eeb97530edea864220":"12" mbedtls_mpi_core_mla #1288: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1289: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffd, carry 0x3)/(0xfffffffffffffffd, carry 0x3) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffd":"3":"fffffffffffffffd":"3" +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffd":"3":"fffffffffffffffd":"3" mbedtls_mpi_core_mla #1290: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffff02, carry 0xfe)/(0xffffffffffffff02, carry 0xfe) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffff02":"fe":"ffffffffffffff02":"fe" +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffff02":"fe":"ffffffffffffff02":"fe" mbedtls_mpi_core_mla #1291: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffff01, carry 0xff)/(0xffffffffffffff01, carry 0xff) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffff01":"ff":"ffffffffffffff01":"ff" +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffff01":"ff":"ffffffffffffff01":"ff" mbedtls_mpi_core_mla #1292: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffff0001, carry 0xffff)/(0xffffffffffff0001, carry 0xffff) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffff0001":"ffff":"ffffffffffff0001":"ffff" +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffff0001":"ffff":"ffffffffffff0001":"ffff" mbedtls_mpi_core_mla #1293: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffffffffffff0000, carry 0x10000)/(0xffffffffffff0000, carry 0x10000) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffff0000":"10000":"ffffffffffff0000":"10000" +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffff0000":"10000":"ffffffffffff0000":"10000" mbedtls_mpi_core_mla #1294: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffff00000001, carry 0xffffffff)/(0xffffffff00000001, carry 0xffffffff) -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff00000001":"ffffffff":"ffffffff00000001":"ffffffff" +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff00000001":"ffffffff":"ffffffff00000001":"ffffffff" mbedtls_mpi_core_mla #1295: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffff00000000, carry 0x100000000)/(0xffffffff00000000, carry 0x100000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffff00000000":"100000000":"ffffffff00000000":"100000000" +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffff00000000":"100000000":"ffffffff00000000":"100000000" mbedtls_mpi_core_mla #1296: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808081, carry 0x7f7f7f7f7f7f7f7f)/(0x8080808080808081, carry 0x7f7f7f7f7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7f" +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7f" mbedtls_mpi_core_mla #1297: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x8000000000000000, carry 0x8000000000000000)/(0x8000000000000000, carry 0x8000000000000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"8000000000000000":"8000000000000000":"8000000000000000":"8000000000000000" +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"8000000000000000":"8000000000000000":"8000000000000000":"8000000000000000" mbedtls_mpi_core_mla #1298: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x2, carry 0xfffffffffffffffe)/(0x2, carry 0xfffffffffffffffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"2":"fffffffffffffffe":"2":"fffffffffffffffe" +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"2":"fffffffffffffffe":"2":"fffffffffffffffe" mbedtls_mpi_core_mla #1299: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1300: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0":"0" mbedtls_mpi_core_mla #1301: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220":"0" mbedtls_mpi_core_mla #1302: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122322222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122322222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122322222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122322222181b2221110":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122322222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122322222181b2221110":"0" mbedtls_mpi_core_mla #1303: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110":"0" mbedtls_mpi_core_mla #1304: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000":"0" mbedtls_mpi_core_mla #1305: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110":"0" mbedtls_mpi_core_mla #1306: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000":"0" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000":"0" mbedtls_mpi_core_mla #1307: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910, carry 0x911) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910":"911" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910":"911" mbedtls_mpi_core_mla #1308: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000, carry 0x91a) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"91a" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"91a" mbedtls_mpi_core_mla #1309: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220, carry 0x1234) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220":"1234" +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220":"1234" mbedtls_mpi_core_mla #1310: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"10000000000000000":"0":"10000000000000000":"0" +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"10000000000000000":"0":"10000000000000000":"0" mbedtls_mpi_core_mla #1311: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381":"0" +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381":"0" mbedtls_mpi_core_mla #1312: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa":"0" +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa":"0" mbedtls_mpi_core_mla #1313: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5":"0" +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5":"0" mbedtls_mpi_core_mla #1314: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5":"0" +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5":"0" mbedtls_mpi_core_mla #1315: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000, carry 0x0) -mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000":"0" +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000":"0" mbedtls_mpi_core_mla #1316: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5, carry 0x4) -mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5":"4" +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5":"4" mbedtls_mpi_core_mla #1317: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000, carry 0x4) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000":"4" +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000":"4" mbedtls_mpi_core_mla #1318: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955, carry 0x26d473ca9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955":"26d473ca9" +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955":"26d473ca9" mbedtls_mpi_core_mla #1319: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000, carry 0x26fb9683d) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000":"26fb9683d" +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000":"26fb9683d" mbedtls_mpi_core_mla #1320: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa, carry 0x4df72d07b) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa":"4df72d07b" +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa":"4df72d07b" mbedtls_mpi_core_mla #1321: 0x1234567890abcdef0 + 0x0 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1322: 0x1234567890abcdef0 + 0x0 * 0x3 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"3":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"0":"3":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1323: 0x1234567890abcdef0 + 0x0 * 0xfe = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"fe":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"0":"fe":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1324: 0x1234567890abcdef0 + 0x0 * 0xff = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"ff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"0":"ff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1325: 0x1234567890abcdef0 + 0x0 * 0xffff = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"ffff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"0":"ffff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1326: 0x1234567890abcdef0 + 0x0 * 0x10000 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"10000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"0":"10000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1327: 0x1234567890abcdef0 + 0x0 * 0xffffffff = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"ffffffff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"0":"ffffffff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1328: 0x1234567890abcdef0 + 0x0 * 0x100000000 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"100000000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"0":"100000000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1329: 0x1234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1330: 0x1234567890abcdef0 + 0x0 * 0x8000000000000000 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"8000000000000000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"0":"8000000000000000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1331: 0x1234567890abcdef0 + 0x0 * 0xfffffffffffffffe = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1332: 0x1234567890abcdef0 + 0x1 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"1":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1333: 0x1234567890abcdef0 + 0x1 * 0x3 = (0x1234567890abcdef3, carry 0x0)/(0x1234567890abcdef3, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"3":"1234567890abcdef3":"0":"1234567890abcdef3":"0" +mpi_core_mla:"1234567890abcdef0":"1":"3":"1234567890abcdef3":"0":"1234567890abcdef3":"0" mbedtls_mpi_core_mla #1334: 0x1234567890abcdef0 + 0x1 * 0xfe = (0x1234567890abcdfee, carry 0x0)/(0x1234567890abcdfee, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"fe":"1234567890abcdfee":"0":"1234567890abcdfee":"0" +mpi_core_mla:"1234567890abcdef0":"1":"fe":"1234567890abcdfee":"0":"1234567890abcdfee":"0" mbedtls_mpi_core_mla #1335: 0x1234567890abcdef0 + 0x1 * 0xff = (0x1234567890abcdfef, carry 0x0)/(0x1234567890abcdfef, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"ff":"1234567890abcdfef":"0":"1234567890abcdfef":"0" +mpi_core_mla:"1234567890abcdef0":"1":"ff":"1234567890abcdfef":"0":"1234567890abcdfef":"0" mbedtls_mpi_core_mla #1336: 0x1234567890abcdef0 + 0x1 * 0xffff = (0x1234567890abddeef, carry 0x0)/(0x1234567890abddeef, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"ffff":"1234567890abddeef":"0":"1234567890abddeef":"0" +mpi_core_mla:"1234567890abcdef0":"1":"ffff":"1234567890abddeef":"0":"1234567890abddeef":"0" mbedtls_mpi_core_mla #1337: 0x1234567890abcdef0 + 0x1 * 0x10000 = (0x1234567890abddef0, carry 0x0)/(0x1234567890abddef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"10000":"1234567890abddef0":"0":"1234567890abddef0":"0" +mpi_core_mla:"1234567890abcdef0":"1":"10000":"1234567890abddef0":"0":"1234567890abddef0":"0" mbedtls_mpi_core_mla #1338: 0x1234567890abcdef0 + 0x1 * 0xffffffff = (0x12345678a0abcdeef, carry 0x0)/(0x12345678a0abcdeef, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"ffffffff":"12345678a0abcdeef":"0":"12345678a0abcdeef":"0" +mpi_core_mla:"1234567890abcdef0":"1":"ffffffff":"12345678a0abcdeef":"0":"12345678a0abcdeef":"0" mbedtls_mpi_core_mla #1339: 0x1234567890abcdef0 + 0x1 * 0x100000000 = (0x12345678a0abcdef0, carry 0x0)/(0x12345678a0abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"100000000":"12345678a0abcdef0":"0":"12345678a0abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"1":"100000000":"12345678a0abcdef0":"0":"12345678a0abcdef0":"0" mbedtls_mpi_core_mla #1340: 0x1234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x1a2c4e7088a3c5e6f, carry 0x0)/(0x1a2c4e7088a3c5e6f, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1a2c4e7088a3c5e6f":"0":"1a2c4e7088a3c5e6f":"0" +mpi_core_mla:"1234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1a2c4e7088a3c5e6f":"0":"1a2c4e7088a3c5e6f":"0" mbedtls_mpi_core_mla #1341: 0x1234567890abcdef0 + 0x1 * 0x8000000000000000 = (0x1a34567890abcdef0, carry 0x0)/(0x1a34567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"8000000000000000":"1a34567890abcdef0":"0":"1a34567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"1":"8000000000000000":"1a34567890abcdef0":"0":"1a34567890abcdef0":"0" mbedtls_mpi_core_mla #1342: 0x1234567890abcdef0 + 0x1 * 0xfffffffffffffffe = (0x2234567890abcdeee, carry 0x0)/(0x2234567890abcdeee, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"1":"fffffffffffffffe":"2234567890abcdeee":"0":"2234567890abcdeee":"0" +mpi_core_mla:"1234567890abcdef0":"1":"fffffffffffffffe":"2234567890abcdeee":"0":"2234567890abcdeee":"0" mbedtls_mpi_core_mla #1343: 0x1234567890abcdef0 + 0xfffe * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"fffe":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1344: 0x1234567890abcdef0 + 0xfffe * 0x3 = (0x1234567890abfdeea, carry 0x0)/(0x1234567890abfdeea, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"3":"1234567890abfdeea":"0":"1234567890abfdeea":"0" +mpi_core_mla:"1234567890abcdef0":"fffe":"3":"1234567890abfdeea":"0":"1234567890abfdeea":"0" mbedtls_mpi_core_mla #1345: 0x1234567890abcdef0 + 0xfffe * 0xfe = (0x1234567890bbadcf4, carry 0x0)/(0x1234567890bbadcf4, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"fe":"1234567890bbadcf4":"0":"1234567890bbadcf4":"0" +mpi_core_mla:"1234567890abcdef0":"fffe":"fe":"1234567890bbadcf4":"0":"1234567890bbadcf4":"0" mbedtls_mpi_core_mla #1346: 0x1234567890abcdef0 + 0xfffe * 0xff = (0x1234567890bbbdcf2, carry 0x0)/(0x1234567890bbbdcf2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"ff":"1234567890bbbdcf2":"0":"1234567890bbbdcf2":"0" +mpi_core_mla:"1234567890abcdef0":"fffe":"ff":"1234567890bbbdcf2":"0":"1234567890bbbdcf2":"0" mbedtls_mpi_core_mla #1347: 0x1234567890abcdef0 + 0xfffe * 0xffff = (0x12345678a0ab9def2, carry 0x0)/(0x12345678a0ab9def2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"ffff":"12345678a0ab9def2":"0":"12345678a0ab9def2":"0" +mpi_core_mla:"1234567890abcdef0":"fffe":"ffff":"12345678a0ab9def2":"0":"12345678a0ab9def2":"0" mbedtls_mpi_core_mla #1348: 0x1234567890abcdef0 + 0xfffe * 0x10000 = (0x12345678a0abadef0, carry 0x0)/(0x12345678a0abadef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"10000":"12345678a0abadef0":"0":"12345678a0abadef0":"0" +mpi_core_mla:"1234567890abcdef0":"fffe":"10000":"12345678a0abadef0":"0":"12345678a0abadef0":"0" mbedtls_mpi_core_mla #1349: 0x1234567890abcdef0 + 0xfffe * 0xffffffff = (0x1234667870abbdef2, carry 0x0)/(0x1234667870abbdef2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"ffffffff":"1234667870abbdef2":"0":"1234667870abbdef2":"0" +mpi_core_mla:"1234567890abcdef0":"fffe":"ffffffff":"1234667870abbdef2":"0":"1234667870abbdef2":"0" mbedtls_mpi_core_mla #1350: 0x1234567890abcdef0 + 0xfffe * 0x100000000 = (0x1234667870abcdef0, carry 0x0)/(0x1234667870abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"100000000":"1234667870abcdef0":"0":"1234667870abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"fffe":"100000000":"1234667870abcdef0":"0":"1234667870abcdef0":"0" mbedtls_mpi_core_mla #1351: 0x1234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x7f7fa3c5e8098b3cdff2, carry 0x0)/(0x7f7fa3c5e8098b3cdff2, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"7f7fa3c5e8098b3cdff2":"0":"7f7fa3c5e8098b3cdff2":"0" +mpi_core_mla:"1234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"7f7fa3c5e8098b3cdff2":"0":"7f7fa3c5e8098b3cdff2":"0" mbedtls_mpi_core_mla #1352: 0x1234567890abcdef0 + 0xfffe * 0x8000000000000000 = (0x8000234567890abcdef0, carry 0x0)/(0x8000234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"8000000000000000":"8000234567890abcdef0":"0":"8000234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"fffe":"8000000000000000":"8000234567890abcdef0":"0":"8000234567890abcdef0":"0" mbedtls_mpi_core_mla #1353: 0x1234567890abcdef0 + 0xfffe * 0xfffffffffffffffe = (0xffff234567890abadef4, carry 0x0)/(0xffff234567890abadef4, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffe":"fffffffffffffffe":"ffff234567890abadef4":"0":"ffff234567890abadef4":"0" +mpi_core_mla:"1234567890abcdef0":"fffe":"fffffffffffffffe":"ffff234567890abadef4":"0":"ffff234567890abadef4":"0" mbedtls_mpi_core_mla #1354: 0x1234567890abcdef0 + 0xffffffff * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1355: 0x1234567890abcdef0 + 0xffffffff * 0x3 = (0x12345678c0abcdeed, carry 0x0)/(0x12345678c0abcdeed, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"3":"12345678c0abcdeed":"0":"12345678c0abcdeed":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffff":"3":"12345678c0abcdeed":"0":"12345678c0abcdeed":"0" mbedtls_mpi_core_mla #1356: 0x1234567890abcdef0 + 0xffffffff * 0xfe = (0x1234568870abcddf2, carry 0x0)/(0x1234568870abcddf2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"fe":"1234568870abcddf2":"0":"1234568870abcddf2":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffff":"fe":"1234568870abcddf2":"0":"1234568870abcddf2":"0" mbedtls_mpi_core_mla #1357: 0x1234567890abcdef0 + 0xffffffff * 0xff = (0x1234568880abcddf1, carry 0x0)/(0x1234568880abcddf1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"ff":"1234568880abcddf1":"0":"1234568880abcddf1":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffff":"ff":"1234568880abcddf1":"0":"1234568880abcddf1":"0" mbedtls_mpi_core_mla #1358: 0x1234567890abcdef0 + 0xffffffff * 0xffff = (0x1234667880abbdef1, carry 0x0)/(0x1234667880abbdef1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"ffff":"1234667880abbdef1":"0":"1234667880abbdef1":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffff":"ffff":"1234667880abbdef1":"0":"1234667880abbdef1":"0" mbedtls_mpi_core_mla #1359: 0x1234567890abcdef0 + 0xffffffff * 0x10000 = (0x1234667890abbdef0, carry 0x0)/(0x1234667890abbdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"10000":"1234667890abbdef0":"0":"1234667890abbdef0":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffff":"10000":"1234667890abbdef0":"0":"1234667890abbdef0":"0" mbedtls_mpi_core_mla #1360: 0x1234567890abcdef0 + 0xffffffff * 0xffffffff = (0x2234567870abcdef1, carry 0x0)/(0x2234567870abcdef1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"ffffffff":"2234567870abcdef1":"0":"2234567870abcdef1":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffff":"ffffffff":"2234567870abcdef1":"0":"2234567870abcdef1":"0" mbedtls_mpi_core_mla #1361: 0x1234567890abcdef0 + 0xffffffff * 0x100000000 = (0x2234567880abcdef0, carry 0x0)/(0x2234567880abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"100000000":"2234567880abcdef0":"0":"2234567880abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffff":"100000000":"2234567880abcdef0":"0":"2234567880abcdef0":"0" mbedtls_mpi_core_mla #1362: 0x1234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f80234567888b3d5f71, carry 0x0)/(0x7f7f7f80234567888b3d5f71, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f80234567888b3d5f71":"0":"7f7f7f80234567888b3d5f71":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f80234567888b3d5f71":"0":"7f7f7f80234567888b3d5f71":"0" mbedtls_mpi_core_mla #1363: 0x1234567890abcdef0 + 0xffffffff * 0x8000000000000000 = (0x80000000a34567890abcdef0, carry 0x0)/(0x80000000a34567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"8000000000000000":"80000000a34567890abcdef0":"0":"80000000a34567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffff":"8000000000000000":"80000000a34567890abcdef0":"0":"80000000a34567890abcdef0":"0" mbedtls_mpi_core_mla #1364: 0x1234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe = (0x234567870abcdef2, carry 0x1)/(0x100000000234567870abcdef2, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffff":"fffffffffffffffe":"234567870abcdef2":"1":"100000000234567870abcdef2":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffff":"fffffffffffffffe":"234567870abcdef2":"1":"100000000234567870abcdef2":"0" mbedtls_mpi_core_mla #1365: 0x1234567890abcdef0 + 0x100000000 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1366: 0x1234567890abcdef0 + 0x100000000 * 0x3 = (0x12345678c0abcdef0, carry 0x0)/(0x12345678c0abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"3":"12345678c0abcdef0":"0":"12345678c0abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000":"3":"12345678c0abcdef0":"0":"12345678c0abcdef0":"0" mbedtls_mpi_core_mla #1367: 0x1234567890abcdef0 + 0x100000000 * 0xfe = (0x1234568870abcdef0, carry 0x0)/(0x1234568870abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"fe":"1234568870abcdef0":"0":"1234568870abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000":"fe":"1234568870abcdef0":"0":"1234568870abcdef0":"0" mbedtls_mpi_core_mla #1368: 0x1234567890abcdef0 + 0x100000000 * 0xff = (0x1234568880abcdef0, carry 0x0)/(0x1234568880abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"ff":"1234568880abcdef0":"0":"1234568880abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000":"ff":"1234568880abcdef0":"0":"1234568880abcdef0":"0" mbedtls_mpi_core_mla #1369: 0x1234567890abcdef0 + 0x100000000 * 0xffff = (0x1234667880abcdef0, carry 0x0)/(0x1234667880abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"ffff":"1234667880abcdef0":"0":"1234667880abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000":"ffff":"1234667880abcdef0":"0":"1234667880abcdef0":"0" mbedtls_mpi_core_mla #1370: 0x1234567890abcdef0 + 0x100000000 * 0x10000 = (0x1234667890abcdef0, carry 0x0)/(0x1234667890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"10000":"1234667890abcdef0":"0":"1234667890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000":"10000":"1234667890abcdef0":"0":"1234667890abcdef0":"0" mbedtls_mpi_core_mla #1371: 0x1234567890abcdef0 + 0x100000000 * 0xffffffff = (0x2234567880abcdef0, carry 0x0)/(0x2234567880abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"ffffffff":"2234567880abcdef0":"0":"2234567880abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000":"ffffffff":"2234567880abcdef0":"0":"2234567880abcdef0":"0" mbedtls_mpi_core_mla #1372: 0x1234567890abcdef0 + 0x100000000 * 0x100000000 = (0x2234567890abcdef0, carry 0x0)/(0x2234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"100000000":"2234567890abcdef0":"0":"2234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000":"100000000":"2234567890abcdef0":"0":"2234567890abcdef0":"0" mbedtls_mpi_core_mla #1373: 0x1234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f80a2c4e7080abcdef0, carry 0x0)/(0x7f7f7f80a2c4e7080abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f80a2c4e7080abcdef0":"0":"7f7f7f80a2c4e7080abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f80a2c4e7080abcdef0":"0":"7f7f7f80a2c4e7080abcdef0":"0" mbedtls_mpi_core_mla #1374: 0x1234567890abcdef0 + 0x100000000 * 0x8000000000000000 = (0x80000001234567890abcdef0, carry 0x0)/(0x80000001234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"8000000000000000":"80000001234567890abcdef0":"0":"80000001234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000":"8000000000000000":"80000001234567890abcdef0":"0":"80000001234567890abcdef0":"0" mbedtls_mpi_core_mla #1375: 0x1234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe = (0x1234567870abcdef0, carry 0x1)/(0x100000001234567870abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000":"fffffffffffffffe":"1234567870abcdef0":"1":"100000001234567870abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000":"fffffffffffffffe":"1234567870abcdef0":"1":"100000001234567870abcdef0":"0" mbedtls_mpi_core_mla #1376: 0x1234567890abcdef0 + 0x20000000000000 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"20000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1377: 0x1234567890abcdef0 + 0x20000000000000 * 0x3 = (0x123a567890abcdef0, carry 0x0)/(0x123a567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"3":"123a567890abcdef0":"0":"123a567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"20000000000000":"3":"123a567890abcdef0":"0":"123a567890abcdef0":"0" mbedtls_mpi_core_mla #1378: 0x1234567890abcdef0 + 0x20000000000000 * 0xfe = (0x1430567890abcdef0, carry 0x0)/(0x1430567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"fe":"1430567890abcdef0":"0":"1430567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"20000000000000":"fe":"1430567890abcdef0":"0":"1430567890abcdef0":"0" mbedtls_mpi_core_mla #1379: 0x1234567890abcdef0 + 0x20000000000000 * 0xff = (0x1432567890abcdef0, carry 0x0)/(0x1432567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"ff":"1432567890abcdef0":"0":"1432567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"20000000000000":"ff":"1432567890abcdef0":"0":"1432567890abcdef0":"0" mbedtls_mpi_core_mla #1380: 0x1234567890abcdef0 + 0x20000000000000 * 0xffff = (0x21232567890abcdef0, carry 0x0)/(0x21232567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"ffff":"21232567890abcdef0":"0":"21232567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"20000000000000":"ffff":"21232567890abcdef0":"0":"21232567890abcdef0":"0" mbedtls_mpi_core_mla #1381: 0x1234567890abcdef0 + 0x20000000000000 * 0x10000 = (0x21234567890abcdef0, carry 0x0)/(0x21234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"10000":"21234567890abcdef0":"0":"21234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"20000000000000":"10000":"21234567890abcdef0":"0":"21234567890abcdef0":"0" mbedtls_mpi_core_mla #1382: 0x1234567890abcdef0 + 0x20000000000000 * 0xffffffff = (0x200001232567890abcdef0, carry 0x0)/(0x200001232567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"ffffffff":"200001232567890abcdef0":"0":"200001232567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"20000000000000":"ffffffff":"200001232567890abcdef0":"0":"200001232567890abcdef0":"0" mbedtls_mpi_core_mla #1383: 0x1234567890abcdef0 + 0x20000000000000 * 0x100000000 = (0x200001234567890abcdef0, carry 0x0)/(0x200001234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"100000000":"200001234567890abcdef0":"0":"200001234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"20000000000000":"100000000":"200001234567890abcdef0":"0":"200001234567890abcdef0":"0" mbedtls_mpi_core_mla #1384: 0x1234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefefeff1132567890abcdef0, carry 0xfefef)/(0xfefefefefeff1132567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"efefeff1132567890abcdef0":"fefef":"fefefefefeff1132567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"efefeff1132567890abcdef0":"fefef":"fefefefefeff1132567890abcdef0":"0" mbedtls_mpi_core_mla #1385: 0x1234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 = (0x1234567890abcdef0, carry 0x100000)/(0x10000000000001234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"8000000000000000":"1234567890abcdef0":"100000":"10000000000001234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"20000000000000":"8000000000000000":"1234567890abcdef0":"100000":"10000000000001234567890abcdef0":"0" mbedtls_mpi_core_mla #1386: 0x1234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe = (0x1230567890abcdef0, carry 0x200000)/(0x20000000000001230567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"20000000000000":"fffffffffffffffe":"1230567890abcdef0":"200000":"20000000000001230567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"20000000000000":"fffffffffffffffe":"1230567890abcdef0":"200000":"20000000000001230567890abcdef0":"0" mbedtls_mpi_core_mla #1387: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1388: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x3 = (0x4234567890abcdeed, carry 0x0)/(0x4234567890abcdeed, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"3":"4234567890abcdeed":"0":"4234567890abcdeed":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"3":"4234567890abcdeed":"0":"4234567890abcdeed":"0" mbedtls_mpi_core_mla #1389: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xfe = (0xff234567890abcddf2, carry 0x0)/(0xff234567890abcddf2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"fe":"ff234567890abcddf2":"0":"ff234567890abcddf2":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"fe":"ff234567890abcddf2":"0":"ff234567890abcddf2":"0" mbedtls_mpi_core_mla #1390: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xff = (0x100234567890abcddf1, carry 0x0)/(0x100234567890abcddf1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ff":"100234567890abcddf1":"0":"100234567890abcddf1":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ff":"100234567890abcddf1":"0":"100234567890abcddf1":"0" mbedtls_mpi_core_mla #1391: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xffff = (0x10000234567890abbdef1, carry 0x0)/(0x10000234567890abbdef1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ffff":"10000234567890abbdef1":"0":"10000234567890abbdef1":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ffff":"10000234567890abbdef1":"0":"10000234567890abbdef1":"0" mbedtls_mpi_core_mla #1392: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x10000 = (0x10001234567890abbdef0, carry 0x0)/(0x10001234567890abbdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"10000":"10001234567890abbdef0":"0":"10001234567890abbdef0":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"10000":"10001234567890abbdef0":"0":"10001234567890abbdef0":"0" mbedtls_mpi_core_mla #1393: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xffffffff = (0x234567880abcdef1, carry 0x1)/(0x100000000234567880abcdef1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ffffffff":"234567880abcdef1":"1":"100000000234567880abcdef1":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ffffffff":"234567880abcdef1":"1":"100000000234567880abcdef1":"0" mbedtls_mpi_core_mla #1394: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x100000000 = (0x1234567880abcdef0, carry 0x1)/(0x100000001234567880abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"100000000":"1234567880abcdef0":"1":"100000001234567880abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"100000000":"1234567880abcdef0":"1":"100000001234567880abcdef0":"0" mbedtls_mpi_core_mla #1395: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fa3c5e8098b3d5f71, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7fa3c5e8098b3d5f71, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7fa3c5e8098b3d5f71":"7f7f7f7f":"7f7f7f7f7f7f7f7fa3c5e8098b3d5f71":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7fa3c5e8098b3d5f71":"7f7f7f7f":"7f7f7f7f7f7f7f7fa3c5e8098b3d5f71":"0" mbedtls_mpi_core_mla #1396: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 = (0xa34567890abcdef0, carry 0x80000000)/(0x8000000000000000a34567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"8000000000000000":"a34567890abcdef0":"80000000":"8000000000000000a34567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"8000000000000000":"a34567890abcdef0":"80000000":"8000000000000000a34567890abcdef0":"0" mbedtls_mpi_core_mla #1397: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe = (0xfffffffe234567890abcdef2, carry 0xffffffff)/(0xfffffffffffffffe234567890abcdef2, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"fffffffe234567890abcdef2":"ffffffff":"fffffffffffffffe234567890abcdef2":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"fffffffe234567890abcdef2":"ffffffff":"fffffffffffffffe234567890abcdef2":"0" mbedtls_mpi_core_mla #1398: 0x1234567890abcdef0 + 0x10000000000000000 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1399: 0x1234567890abcdef0 + 0x10000000000000000 * 0x3 = (0x4234567890abcdef0, carry 0x0)/(0x4234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"3":"4234567890abcdef0":"0":"4234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"3":"4234567890abcdef0":"0":"4234567890abcdef0":"0" mbedtls_mpi_core_mla #1400: 0x1234567890abcdef0 + 0x10000000000000000 * 0xfe = (0xff234567890abcdef0, carry 0x0)/(0xff234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"fe":"ff234567890abcdef0":"0":"ff234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"fe":"ff234567890abcdef0":"0":"ff234567890abcdef0":"0" mbedtls_mpi_core_mla #1401: 0x1234567890abcdef0 + 0x10000000000000000 * 0xff = (0x100234567890abcdef0, carry 0x0)/(0x100234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ff":"100234567890abcdef0":"0":"100234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ff":"100234567890abcdef0":"0":"100234567890abcdef0":"0" mbedtls_mpi_core_mla #1402: 0x1234567890abcdef0 + 0x10000000000000000 * 0xffff = (0x10000234567890abcdef0, carry 0x0)/(0x10000234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ffff":"10000234567890abcdef0":"0":"10000234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ffff":"10000234567890abcdef0":"0":"10000234567890abcdef0":"0" mbedtls_mpi_core_mla #1403: 0x1234567890abcdef0 + 0x10000000000000000 * 0x10000 = (0x10001234567890abcdef0, carry 0x0)/(0x10001234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"10000":"10001234567890abcdef0":"0":"10001234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"10000":"10001234567890abcdef0":"0":"10001234567890abcdef0":"0" mbedtls_mpi_core_mla #1404: 0x1234567890abcdef0 + 0x10000000000000000 * 0xffffffff = (0x234567890abcdef0, carry 0x1)/(0x100000000234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ffffffff":"234567890abcdef0":"1":"100000000234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ffffffff":"234567890abcdef0":"1":"100000000234567890abcdef0":"0" mbedtls_mpi_core_mla #1405: 0x1234567890abcdef0 + 0x10000000000000000 * 0x100000000 = (0x1234567890abcdef0, carry 0x1)/(0x100000001234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"100000000":"1234567890abcdef0":"1":"100000001234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"100000000":"1234567890abcdef0":"1":"100000001234567890abcdef0":"0" mbedtls_mpi_core_mla #1406: 0x1234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f80234567890abcdef0, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f80234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f80234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f80234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f80234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f80234567890abcdef0":"0" mbedtls_mpi_core_mla #1407: 0x1234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 = (0x1234567890abcdef0, carry 0x80000000)/(0x8000000000000001234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"8000000000000000":"1234567890abcdef0":"80000000":"8000000000000001234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"8000000000000000":"1234567890abcdef0":"80000000":"8000000000000001234567890abcdef0":"0" mbedtls_mpi_core_mla #1408: 0x1234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe = (0xffffffff234567890abcdef0, carry 0xffffffff)/(0xffffffffffffffff234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"10000000000000000":"fffffffffffffffe":"ffffffff234567890abcdef0":"ffffffff":"ffffffffffffffff234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"fffffffffffffffe":"ffffffff234567890abcdef0":"ffffffff":"ffffffffffffffff234567890abcdef0":"0" mbedtls_mpi_core_mla #1409: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1410: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x3 = (0x48d159e242af37bc0, carry 0x0)/(0x48d159e242af37bc0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"3":"48d159e242af37bc0":"0":"48d159e242af37bc0":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"3":"48d159e242af37bc0":"0":"48d159e242af37bc0":"0" mbedtls_mpi_core_mla #1411: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xfe = (0x12222222181b2221110, carry 0x0)/(0x12222222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"fe":"12222222181b2221110":"0":"12222222181b2221110":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"fe":"12222222181b2221110":"0":"12222222181b2221110":"0" mbedtls_mpi_core_mla #1412: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xff = (0x1234567890abcdef000, carry 0x0)/(0x1234567890abcdef000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdef000":"0":"1234567890abcdef000":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdef000":"0":"1234567890abcdef000":"0" mbedtls_mpi_core_mla #1413: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xffff = (0x1234567890abcdef00000, carry 0x0)/(0x1234567890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcdef00000":"0":"1234567890abcdef00000":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcdef00000":"0":"1234567890abcdef00000":"0" mbedtls_mpi_core_mla #1414: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 = (0x123468ace7245e9acdef0, carry 0x0)/(0x123468ace7245e9acdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"10000":"123468ace7245e9acdef0":"0":"123468ace7245e9acdef0":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"10000":"123468ace7245e9acdef0":"0":"123468ace7245e9acdef0":"0" mbedtls_mpi_core_mla #1415: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff = (0x234567890abcdef000000000, carry 0x1)/(0x1234567890abcdef000000000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ffffffff":"234567890abcdef000000000":"1":"1234567890abcdef000000000":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ffffffff":"234567890abcdef000000000":"1":"1234567890abcdef000000000":"0" mbedtls_mpi_core_mla #1416: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 = (0x2345678a2e0246790abcdef0, carry 0x1)/(0x12345678a2e0246790abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"100000000":"2345678a2e0246790abcdef0":"1":"12345678a2e0246790abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"100000000":"2345678a2e0246790abcdef0":"1":"12345678a2e0246790abcdef0":"0" mbedtls_mpi_core_mla #1417: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde7819bc7034ba188800, carry 0x91107edb)/(0x91107edbd82bde7819bc7034ba188800, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde7819bc7034ba188800":"91107edb":"91107edbd82bde7819bc7034ba188800":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde7819bc7034ba188800":"91107edb":"91107edbd82bde7819bc7034ba188800":"0" mbedtls_mpi_core_mla #1418: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f79234567890abcdef0, carry 0x91a2b3c4)/(0x91a2b3c4855e6f79234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"8000000000000000":"855e6f79234567890abcdef0":"91a2b3c4":"91a2b3c4855e6f79234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"8000000000000000":"855e6f79234567890abcdef0":"91a2b3c4":"91a2b3c4855e6f79234567890abcdef0":"0" mbedtls_mpi_core_mla #1419: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeedcba9876f5432110, carry 0x123456789)/(0x234567890abcdeeedcba9876f5432110, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"abcdeeedcba9876f5432110":"123456789":"234567890abcdeeedcba9876f5432110":"1" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"abcdeeedcba9876f5432110":"123456789":"234567890abcdeeedcba9876f5432110":"1" mbedtls_mpi_core_mla #1420: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1421: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x12042648607b9dbea, carry 0x3)/(0x12042648607b9dbea, carry 0x3) -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"12042648607b9dbea":"3":"12042648607b9dbea":"3" +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"12042648607b9dbea":"3":"12042648607b9dbea":"3" mbedtls_mpi_core_mla #1422: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x2446688a0bbddef4, carry 0xfe)/(0x2446688a0bbddef4, carry 0xfe) -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"2446688a0bbddef4":"fe":"2446688a0bbddef4":"fe" +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"2446688a0bbddef4":"fe":"2446688a0bbddef4":"fe" mbedtls_mpi_core_mla #1423: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0x234567890abcddf2, carry 0xff)/(0x234567890abcddf2, carry 0xff) -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"234567890abcddf2":"ff":"234567890abcddf2":"ff" +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"234567890abcddf2":"ff":"234567890abcddf2":"ff" mbedtls_mpi_core_mla #1424: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xffffffffffffff00234567890abbdff2, carry 0xfffe)/(0xffffffffffffff00234567890abbdff2, carry 0xfffe) -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"ffffffffffffff00234567890abbdff2":"fffe":"ffffffffffffff00234567890abbdff2":"fffe" +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"ffffffffffffff00234567890abbdff2":"fffe":"ffffffffffffff00234567890abbdff2":"fffe" mbedtls_mpi_core_mla #1425: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xffffffffffffff002244668809badef0, carry 0xffff)/(0xffffffffffffff002244668809badef0, carry 0xffff) -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"ffffffffffffff002244668809badef0":"ffff":"ffffffffffffff002244668809badef0":"ffff" +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"ffffffffffffff002244668809badef0":"ffff":"ffffffffffffff002244668809badef0":"ffff" mbedtls_mpi_core_mla #1426: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefeff00234567880bbddff2, carry 0xfffffffe)/(0xfffffffffefeff00234567880bbddff2, carry 0xfffffffe) -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefeff00234567880bbddff2":"fffffffe":"fffffffffefeff00234567880bbddff2":"fffffffe" +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefeff00234567880bbddff2":"fffffffe":"fffffffffefeff00234567880bbddff2":"fffffffe" mbedtls_mpi_core_mla #1427: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefeff00224466870abcdef0, carry 0xffffffff)/(0xfffffffffefeff00224466870abcdef0, carry 0xffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefeff00224466870abcdef0":"ffffffff":"fffffffffefeff00224466870abcdef0":"ffffffff" +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefeff00224466870abcdef0":"ffffffff":"fffffffffefeff00224466870abcdef0":"ffffffff" mbedtls_mpi_core_mla #1428: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff80008101820283a849eb8c8dbf60f2, carry 0x7f7f7f7f7f7f7f7e)/(0xff80008101820283a849eb8c8dbf60f2, carry 0x7f7f7f7f7f7f7f7e) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff80008101820283a849eb8c8dbf60f2":"7f7f7f7f7f7f7f7e":"ff80008101820283a849eb8c8dbf60f2":"7f7f7f7f7f7f7f7e" +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff80008101820283a849eb8c8dbf60f2":"7f7f7f7f7f7f7f7e":"ff80008101820283a849eb8c8dbf60f2":"7f7f7f7f7f7f7f7e" mbedtls_mpi_core_mla #1429: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f80234567890abcdef0, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f80234567890abcdef0, carry 0x7fffffffffffffff) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f80234567890abcdef0":"7fffffffffffffff":"ff7f7f7f7f7f7f80234567890abcdef0":"7fffffffffffffff" +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f80234567890abcdef0":"7fffffffffffffff":"ff7f7f7f7f7f7f80234567890abcdef0":"7fffffffffffffff" mbedtls_mpi_core_mla #1430: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefeff2547698b0cbee0f4, carry 0xfffffffffffffffd)/(0xfefefefefefefeff2547698b0cbee0f4, carry 0xfffffffffffffffd) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff2547698b0cbee0f4":"fffffffffffffffd":"fefefefefefefeff2547698b0cbee0f4":"fffffffffffffffd" +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff2547698b0cbee0f4":"fffffffffffffffd":"fefefefefefefeff2547698b0cbee0f4":"fffffffffffffffd" mbedtls_mpi_core_mla #1431: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1432: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 = (0x30000000000000001234567890abcdef0, carry 0x0)/(0x30000000000000001234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"3":"30000000000000001234567890abcdef0":"0":"30000000000000001234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"3":"30000000000000001234567890abcdef0":"0":"30000000000000001234567890abcdef0":"0" mbedtls_mpi_core_mla #1433: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe = (0xfe0000000000000001234567890abcdef0, carry 0x0)/(0xfe0000000000000001234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"fe":"fe0000000000000001234567890abcdef0":"0":"fe0000000000000001234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"fe":"fe0000000000000001234567890abcdef0":"0":"fe0000000000000001234567890abcdef0":"0" mbedtls_mpi_core_mla #1434: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff = (0xff0000000000000001234567890abcdef0, carry 0x0)/(0xff0000000000000001234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ff":"ff0000000000000001234567890abcdef0":"0":"ff0000000000000001234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ff":"ff0000000000000001234567890abcdef0":"0":"ff0000000000000001234567890abcdef0":"0" mbedtls_mpi_core_mla #1435: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff = (0xffff0000000000000001234567890abcdef0, carry 0x0)/(0xffff0000000000000001234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ffff":"ffff0000000000000001234567890abcdef0":"0":"ffff0000000000000001234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ffff":"ffff0000000000000001234567890abcdef0":"0":"ffff0000000000000001234567890abcdef0":"0" mbedtls_mpi_core_mla #1436: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 = (0x100000000000000000001234567890abcdef0, carry 0x0)/(0x100000000000000000001234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"10000":"100000000000000000001234567890abcdef0":"0":"100000000000000000001234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"10000":"100000000000000000001234567890abcdef0":"0":"100000000000000000001234567890abcdef0":"0" mbedtls_mpi_core_mla #1437: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff0000000000000001234567890abcdef0, carry 0x0)/(0xffffffff0000000000000001234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000001234567890abcdef0":"0":"ffffffff0000000000000001234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000001234567890abcdef0":"0":"ffffffff0000000000000001234567890abcdef0":"0" mbedtls_mpi_core_mla #1438: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 = (0x1234567890abcdef0, carry 0x1)/(0x1000000000000000000000001234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef0":"1":"1000000000000000000000001234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef0":"1":"1000000000000000000000001234567890abcdef0":"0" mbedtls_mpi_core_mla #1439: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000001234567890abcdef0, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000001234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000001234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000001234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000001234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000001234567890abcdef0":"0" mbedtls_mpi_core_mla #1440: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x1234567890abcdef0, carry 0x80000000)/(0x80000000000000000000000000000001234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef0":"80000000":"80000000000000000000000000000001234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef0":"80000000":"80000000000000000000000000000001234567890abcdef0":"0" mbedtls_mpi_core_mla #1441: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000001234567890abcdef0, carry 0xffffffff)/(0xfffffffffffffffe0000000000000001234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000001234567890abcdef0":"ffffffff":"fffffffffffffffe0000000000000001234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000001234567890abcdef0":"ffffffff":"fffffffffffffffe0000000000000001234567890abcdef0":"0" mbedtls_mpi_core_mla #1442: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1443: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd048d159e242af37bc0, carry 0x0)/(0x369d0369b20369cd048d159e242af37bc0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd048d159e242af37bc0":"0":"369d0369b20369cd048d159e242af37bc0":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd048d159e242af37bc0":"0":"369d0369b20369cd048d159e242af37bc0":"0" mbedtls_mpi_core_mla #1444: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a7653232222222181b2221110, carry 0x0)/(0x120fedcb9f8a7653232222222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a7653232222222181b2221110":"0":"120fedcb9f8a7653232222222181b2221110":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a7653232222222181b2221110":"0":"120fedcb9f8a7653232222222181b2221110":"0" mbedtls_mpi_core_mla #1445: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b222112234567890abcdef000, carry 0x0)/(0x12222222181b222112234567890abcdef000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b222112234567890abcdef000":"0":"12222222181b222112234567890abcdef000":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b222112234567890abcdef000":"0":"12222222181b222112234567890abcdef000":"0" mbedtls_mpi_core_mla #1446: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d4333344567890abcdef00000, carry 0x0)/(0x123444443a333d4333344567890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d4333344567890abcdef00000":"0":"123444443a333d4333344567890abcdef00000":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d4333344567890abcdef00000":"0":"123444443a333d4333344567890abcdef00000":"0" mbedtls_mpi_core_mla #1447: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef0123468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef0123468ace7245e9acdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef0123468ace7245e9acdef0":"0":"1234567890abcdef0123468ace7245e9acdef0":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef0123468ace7245e9acdef0":"0":"1234567890abcdef0123468ace7245e9acdef0":"0" mbedtls_mpi_core_mla #1448: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e77777670777778890abcdef000000000, carry 0x12)/(0x123456787e77777670777778890abcdef000000000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e77777670777778890abcdef000000000":"12":"123456787e77777670777778890abcdef000000000":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e77777670777778890abcdef000000000":"12":"123456787e77777670777778890abcdef000000000":"0" mbedtls_mpi_core_mla #1449: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef012345678a2e0246790abcdef0, carry 0x12)/(0x1234567890abcdef012345678a2e0246790abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a2e0246790abcdef0":"12":"1234567890abcdef012345678a2e0246790abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a2e0246790abcdef0":"12":"1234567890abcdef012345678a2e0246790abcdef0":"0" mbedtls_mpi_core_mla #1450: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f7819bc7034ba188800, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f7819bc7034ba188800, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f7819bc7034ba188800":"91107edbd":"1107edbd82bde76ff8810996cde66f7819bc7034ba188800":"9" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f7819bc7034ba188800":"91107edbd":"1107edbd82bde76ff8810996cde66f7819bc7034ba188800":"9" mbedtls_mpi_core_mla #1451: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f79234567890abcdef0, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f79234567890abcdef0":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"9" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f79234567890abcdef0":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"9" mbedtls_mpi_core_mla #1452: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100eedcba9876f5432110, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100eedcba9876f5432110, carry 0x12) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eedcba9876f5432110":"1234567890":"34567890abcdeedcba987667b32100eedcba9876f5432110":"12" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eedcba9876f5432110":"1234567890":"34567890abcdeedcba987667b32100eedcba9876f5432110":"12" mbedtls_mpi_core_mla #1453: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1454: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x1234567890abcdeed, carry 0x3)/(0x1234567890abcdeed, carry 0x3) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1234567890abcdeed":"3":"1234567890abcdeed":"3" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1234567890abcdeed":"3":"1234567890abcdeed":"3" mbedtls_mpi_core_mla #1455: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x1234567890abcddf2, carry 0xfe)/(0x1234567890abcddf2, carry 0xfe) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1234567890abcddf2":"fe":"1234567890abcddf2":"fe" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1234567890abcddf2":"fe":"1234567890abcddf2":"fe" mbedtls_mpi_core_mla #1456: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x1234567890abcddf1, carry 0xff)/(0x1234567890abcddf1, carry 0xff) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1234567890abcddf1":"ff":"1234567890abcddf1":"ff" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1234567890abcddf1":"ff":"1234567890abcddf1":"ff" mbedtls_mpi_core_mla #1457: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x1234567890abbdef1, carry 0xffff)/(0x1234567890abbdef1, carry 0xffff) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1234567890abbdef1":"ffff":"1234567890abbdef1":"ffff" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1234567890abbdef1":"ffff":"1234567890abbdef1":"ffff" mbedtls_mpi_core_mla #1458: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x1234567890abbdef0, carry 0x10000)/(0x1234567890abbdef0, carry 0x10000) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1234567890abbdef0":"10000":"1234567890abbdef0":"10000" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1234567890abbdef0":"10000":"1234567890abbdef0":"10000" mbedtls_mpi_core_mla #1459: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1234567880abcdef1, carry 0xffffffff)/(0x1234567880abcdef1, carry 0xffffffff) -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1234567880abcdef1":"ffffffff":"1234567880abcdef1":"ffffffff" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1234567880abcdef1":"ffffffff":"1234567880abcdef1":"ffffffff" mbedtls_mpi_core_mla #1460: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x1234567880abcdef0, carry 0x100000000)/(0x1234567880abcdef0, carry 0x100000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567880abcdef0":"100000000":"1234567880abcdef0":"100000000" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567880abcdef0":"100000000":"1234567880abcdef0":"100000000" mbedtls_mpi_core_mla #1461: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xa3c5e8098b3d5f71, carry 0x7f7f7f7f7f7f7f7f)/(0xa3c5e8098b3d5f71, carry 0x7f7f7f7f7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f":"a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f":"a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f" mbedtls_mpi_core_mla #1462: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xa34567890abcdef0, carry 0x8000000000000000)/(0xa34567890abcdef0, carry 0x8000000000000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"a34567890abcdef0":"8000000000000000":"a34567890abcdef0":"8000000000000000" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"a34567890abcdef0":"8000000000000000":"a34567890abcdef0":"8000000000000000" mbedtls_mpi_core_mla #1463: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x234567890abcdef2, carry 0xfffffffffffffffe)/(0x234567890abcdef2, carry 0xfffffffffffffffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"234567890abcdef2":"fffffffffffffffe":"234567890abcdef2":"fffffffffffffffe" +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"234567890abcdef2":"fffffffffffffffe":"234567890abcdef2":"fffffffffffffffe" mbedtls_mpi_core_mla #1464: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1465: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0":"0" mbedtls_mpi_core_mla #1466: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110":"0" mbedtls_mpi_core_mla #1467: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b222112234567890abcdef000, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b222112234567890abcdef000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b222112234567890abcdef000":"0":"12222222181b2221122222222181b2221122222222181b222112234567890abcdef000":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b222112234567890abcdef000":"0":"12222222181b2221122222222181b2221122222222181b222112234567890abcdef000":"0" mbedtls_mpi_core_mla #1468: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000":"0":"123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000":"0":"123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000":"0" mbedtls_mpi_core_mla #1469: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0":"0" mbedtls_mpi_core_mla #1470: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e77777670777778890abcdef000000000, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e77777670777778890abcdef000000000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e77777670777778890abcdef000000000":"1234":"123456787e7777767077777887e7777767077777887e77777670777778890abcdef000000000":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e77777670777778890abcdef000000000":"1234":"123456787e7777767077777887e7777767077777887e77777670777778890abcdef000000000":"0" mbedtls_mpi_core_mla #1471: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0":"0" mbedtls_mpi_core_mla #1472: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800, carry 0x911) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800":"911" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800":"911" mbedtls_mpi_core_mla #1473: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0, carry 0x91a) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"91a" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"91a" mbedtls_mpi_core_mla #1474: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110, carry 0x1234) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110":"1234" +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110":"1234" mbedtls_mpi_core_mla #1475: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" mbedtls_mpi_core_mla #1476: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271":"0" +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271":"0" mbedtls_mpi_core_mla #1477: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a":"0" +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a":"0" mbedtls_mpi_core_mla #1478: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5":"0" +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5":"0" mbedtls_mpi_core_mla #1479: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5":"0" +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5":"0" mbedtls_mpi_core_mla #1480: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0":"0" +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0":"0" mbedtls_mpi_core_mla #1481: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5, carry 0x4) -mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5":"4" +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5":"4" mbedtls_mpi_core_mla #1482: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0, carry 0x4) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0":"4" +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0":"4" mbedtls_mpi_core_mla #1483: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845, carry 0x26d473ca9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845":"26d473ca9" +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845":"26d473ca9" mbedtls_mpi_core_mla #1484: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0, carry 0x26fb9683d) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0":"26fb9683d" +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0":"26fb9683d" mbedtls_mpi_core_mla #1485: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a, carry 0x4df72d07b) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a":"4df72d07b" +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a":"4df72d07b" mbedtls_mpi_core_mla #1486: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1487: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x3 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"3":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"3":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1488: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xfe = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"fe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"fe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1489: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xff = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1490: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xffff = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ffff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ffff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1491: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x10000 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"10000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"10000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1492: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xffffffff = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ffffffff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ffffffff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1493: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x100000000 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"100000000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"100000000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1494: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"7f7f7f7f7f7f7f7f":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"7f7f7f7f7f7f7f7f":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1495: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x8000000000000000 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"8000000000000000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"8000000000000000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1496: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xfffffffffffffffe = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1497: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1498: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x3 = (0xfffffffffffffffffefefefefefeff01, carry 0x0)/(0xfffffffffffffffffefefefefefeff01, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"3":"fffffffffffffffffefefefefefeff01":"0":"fffffffffffffffffefefefefefeff01":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"3":"fffffffffffffffffefefefefefeff01":"0":"fffffffffffffffffefefefefefeff01":"0" mbedtls_mpi_core_mla #1499: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xfe = (0xfffffffffffffffffefefefefefefffc, carry 0x0)/(0xfffffffffffffffffefefefefefefffc, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"fe":"fffffffffffffffffefefefefefefffc":"0":"fffffffffffffffffefefefefefefffc":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"fe":"fffffffffffffffffefefefefefefffc":"0":"fffffffffffffffffefefefefefefffc":"0" mbedtls_mpi_core_mla #1500: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xff = (0xfffffffffffffffffefefefefefefffd, carry 0x0)/(0xfffffffffffffffffefefefefefefffd, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ff":"fffffffffffffffffefefefefefefffd":"0":"fffffffffffffffffefefefefefefffd":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ff":"fffffffffffffffffefefefefefefffd":"0":"fffffffffffffffffefefefefefefffd":"0" mbedtls_mpi_core_mla #1501: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xffff = (0xfffffffffffffffffefefefefefffefd, carry 0x0)/(0xfffffffffffffffffefefefefefffefd, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ffff":"fffffffffffffffffefefefefefffefd":"0":"fffffffffffffffffefefefefefffefd":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ffff":"fffffffffffffffffefefefefefffefd":"0":"fffffffffffffffffefefefefefffefd":"0" mbedtls_mpi_core_mla #1502: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x10000 = (0xfffffffffffffffffefefefefefffefe, carry 0x0)/(0xfffffffffffffffffefefefefefffefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"10000":"fffffffffffffffffefefefefefffefe":"0":"fffffffffffffffffefefefefefffefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"10000":"fffffffffffffffffefefefefefffefe":"0":"fffffffffffffffffefefefefefffefe":"0" mbedtls_mpi_core_mla #1503: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xffffffff = (0xfffffffffffffffffefefefffefefefd, carry 0x0)/(0xfffffffffffffffffefefefffefefefd, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ffffffff":"fffffffffffffffffefefefffefefefd":"0":"fffffffffffffffffefefefffefefefd":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ffffffff":"fffffffffffffffffefefefffefefefd":"0":"fffffffffffffffffefefefffefefefd":"0" mbedtls_mpi_core_mla #1504: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x100000000 = (0xfffffffffffffffffefefefffefefefe, carry 0x0)/(0xfffffffffffffffffefefefffefefefe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"100000000":"fffffffffffffffffefefefffefefefe":"0":"fffffffffffffffffefefefffefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"100000000":"fffffffffffffffffefefefffefefefe":"0":"fffffffffffffffffefefefffefefefe":"0" mbedtls_mpi_core_mla #1505: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7e7e7e7e7e7e7e7d, carry 0x1)/(0x7e7e7e7e7e7e7e7d, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"7f7f7f7f7f7f7f7f":"7e7e7e7e7e7e7e7d":"1":"7e7e7e7e7e7e7e7d":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"7f7f7f7f7f7f7f7f":"7e7e7e7e7e7e7e7d":"1":"7e7e7e7e7e7e7e7d":"1" mbedtls_mpi_core_mla #1506: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x8000000000000000 = (0x7efefefefefefefe, carry 0x1)/(0x7efefefefefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"8000000000000000":"7efefefefefefefe":"1":"7efefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"8000000000000000":"7efefefefefefefe":"1":"7efefefefefefefe":"1" mbedtls_mpi_core_mla #1507: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xfffffffffffffffe = (0xfefefefefefefefc, carry 0x1)/(0xfefefefefefefefc, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"fffffffffffffffe":"fefefefefefefefc":"1":"fefefefefefefefc":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"fffffffffffffffe":"fefefefefefefefc":"1":"fefefefefefefefc":"1" mbedtls_mpi_core_mla #1508: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1509: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x3 = (0xfffffffffffffffffefefefeff01fef8, carry 0x0)/(0xfffffffffffffffffefefefeff01fef8, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"3":"fffffffffffffffffefefefeff01fef8":"0":"fffffffffffffffffefefefeff01fef8":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"3":"fffffffffffffffffefefefeff01fef8":"0":"fffffffffffffffffefefefeff01fef8":"0" mbedtls_mpi_core_mla #1510: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xfe = (0xfffffffffffffffffefefefefffcfd02, carry 0x0)/(0xfffffffffffffffffefefefefffcfd02, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"fe":"fffffffffffffffffefefefefffcfd02":"0":"fffffffffffffffffefefefefffcfd02":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"fe":"fffffffffffffffffefefefefffcfd02":"0":"fffffffffffffffffefefefefffcfd02":"0" mbedtls_mpi_core_mla #1511: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xff = (0xfffffffffffffffffefefefefffdfd00, carry 0x0)/(0xfffffffffffffffffefefefefffdfd00, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ff":"fffffffffffffffffefefefefffdfd00":"0":"fffffffffffffffffefefefefffdfd00":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ff":"fffffffffffffffffefefefefffdfd00":"0":"fffffffffffffffffefefefefffdfd00":"0" mbedtls_mpi_core_mla #1512: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xffff = (0xfffffffffffffffffefefefffefbff00, carry 0x0)/(0xfffffffffffffffffefefefffefbff00, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ffff":"fffffffffffffffffefefefffefbff00":"0":"fffffffffffffffffefefefffefbff00":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ffff":"fffffffffffffffffefefefffefbff00":"0":"fffffffffffffffffefefefffefbff00":"0" mbedtls_mpi_core_mla #1513: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x10000 = (0xfffffffffffffffffefefefffefcfefe, carry 0x0)/(0xfffffffffffffffffefefefffefcfefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"10000":"fffffffffffffffffefefefffefcfefe":"0":"fffffffffffffffffefefefffefcfefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"10000":"fffffffffffffffffefefefffefcfefe":"0":"fffffffffffffffffefefefffefcfefe":"0" mbedtls_mpi_core_mla #1514: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xffffffff = (0xfffffffffffffffffefffefcfefdff00, carry 0x0)/(0xfffffffffffffffffefffefcfefdff00, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ffffffff":"fffffffffffffffffefffefcfefdff00":"0":"fffffffffffffffffefffefcfefdff00":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ffffffff":"fffffffffffffffffefffefcfefdff00":"0":"fffffffffffffffffefffefcfefdff00":"0" mbedtls_mpi_core_mla #1515: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x100000000 = (0xfffffffffffffffffefffefcfefefefe, carry 0x0)/(0xfffffffffffffffffefffefcfefefefe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"100000000":"fffffffffffffffffefffefcfefefefe":"0":"fffffffffffffffffefffefcfefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"100000000":"fffffffffffffffffefffefcfefefefe":"0":"fffffffffffffffffefffefcfefefefe":"0" mbedtls_mpi_core_mla #1516: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x7f7e7f7f7f7f7f7f0000, carry 0x1)/(0x7f7e7f7f7f7f7f7f0000, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"7f7f7f7f7f7f7f7f":"7f7e7f7f7f7f7f7f0000":"1":"7f7e7f7f7f7f7f7f0000":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"7f7f7f7f7f7f7f7f":"7f7e7f7f7f7f7f7f0000":"1":"7f7e7f7f7f7f7f7f0000":"1" mbedtls_mpi_core_mla #1517: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x8000000000000000 = (0x7ffefefefefefefefefe, carry 0x1)/(0x7ffefefefefefefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"8000000000000000":"7ffefefefefefefefefe":"1":"7ffefefefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"8000000000000000":"7ffefefefefefefefefe":"1":"7ffefefefefefefefefe":"1" mbedtls_mpi_core_mla #1518: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xfffffffffffffffe = (0xfffdfefefefefefcff02, carry 0x1)/(0xfffdfefefefefefcff02, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"fffffffffffffffe":"fffdfefefefefefcff02":"1":"fffdfefefefefefcff02":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"fffffffffffffffe":"fffdfefefefefefcff02":"1":"fffdfefefefefefcff02":"1" mbedtls_mpi_core_mla #1519: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1520: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x3 = (0xfffffffffffffffffefeff01fefefefb, carry 0x0)/(0xfffffffffffffffffefeff01fefefefb, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"3":"fffffffffffffffffefeff01fefefefb":"0":"fffffffffffffffffefeff01fefefefb":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"3":"fffffffffffffffffefeff01fefefefb":"0":"fffffffffffffffffefeff01fefefefb":"0" mbedtls_mpi_core_mla #1521: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xfe = (0xfffffffffffffffffefefffcfefefe00, carry 0x0)/(0xfffffffffffffffffefefffcfefefe00, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"fe":"fffffffffffffffffefefffcfefefe00":"0":"fffffffffffffffffefefffcfefefe00":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"fe":"fffffffffffffffffefefffcfefefe00":"0":"fffffffffffffffffefefffcfefefe00":"0" mbedtls_mpi_core_mla #1522: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xff = (0xfffffffffffffffffefefffdfefefdff, carry 0x0)/(0xfffffffffffffffffefefffdfefefdff, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ff":"fffffffffffffffffefefffdfefefdff":"0":"fffffffffffffffffefefffdfefefdff":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ff":"fffffffffffffffffefefffdfefefdff":"0":"fffffffffffffffffefefffdfefefdff":"0" mbedtls_mpi_core_mla #1523: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xffff = (0xfffffffffffffffffefffefdfefdfeff, carry 0x0)/(0xfffffffffffffffffefffefdfefdfeff, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ffff":"fffffffffffffffffefffefdfefdfeff":"0":"fffffffffffffffffefffefdfefdfeff":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ffff":"fffffffffffffffffefffefdfefdfeff":"0":"fffffffffffffffffefffefdfefdfeff":"0" mbedtls_mpi_core_mla #1524: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x10000 = (0xfffffffffffffffffefffefefefdfefe, carry 0x0)/(0xfffffffffffffffffefffefefefdfefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"10000":"fffffffffffffffffefffefefefdfefe":"0":"fffffffffffffffffefffefefefdfefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"10000":"fffffffffffffffffefffefefefdfefe":"0":"fffffffffffffffffefffefefefdfefe":"0" mbedtls_mpi_core_mla #1525: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xffffffff = (0xfefefefcfefefeff, carry 0x1)/(0xfefefefcfefefeff, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ffffffff":"fefefefcfefefeff":"1":"fefefefcfefefeff":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ffffffff":"fefefefcfefefeff":"1":"fefefefcfefefeff":"1" mbedtls_mpi_core_mla #1526: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x100000000 = (0xfefefefdfefefefe, carry 0x1)/(0xfefefefdfefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"100000000":"fefefefdfefefefe":"1":"fefefefdfefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"100000000":"fefefefdfefefefe":"1":"fefefefdfefefefe":"1" mbedtls_mpi_core_mla #1527: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7efefefefe7f7f7f7f, carry 0x1)/(0x7f7f7f7efefefefe7f7f7f7f, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7efefefefe7f7f7f7f":"1":"7f7f7f7efefefefe7f7f7f7f":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7efefefefe7f7f7f7f":"1":"7f7f7f7efefefefe7f7f7f7f":"1" mbedtls_mpi_core_mla #1528: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x8000000000000000 = (0x7fffffff7efefefefefefefe, carry 0x1)/(0x7fffffff7efefefefefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"8000000000000000":"7fffffff7efefefefefefefe":"1":"7fffffff7efefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"8000000000000000":"7fffffff7efefefefefefefe":"1":"7fffffff7efefefefefefefe":"1" mbedtls_mpi_core_mla #1529: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xfffffffffffffffe = (0xfffffffefefefefcfefeff00, carry 0x1)/(0xfffffffefefefefcfefeff00, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffe":"fffffffefefefefcfefeff00":"1":"fffffffefefefefcfefeff00":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffe":"fffffffefefefefcfefeff00":"1":"fffffffefefefefcfefeff00":"1" mbedtls_mpi_core_mla #1530: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1531: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x3 = (0xfffffffffffffffffefeff01fefefefe, carry 0x0)/(0xfffffffffffffffffefeff01fefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"3":"fffffffffffffffffefeff01fefefefe":"0":"fffffffffffffffffefeff01fefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"3":"fffffffffffffffffefeff01fefefefe":"0":"fffffffffffffffffefeff01fefefefe":"0" mbedtls_mpi_core_mla #1532: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xfe = (0xfffffffffffffffffefefffcfefefefe, carry 0x0)/(0xfffffffffffffffffefefffcfefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"fe":"fffffffffffffffffefefffcfefefefe":"0":"fffffffffffffffffefefffcfefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"fe":"fffffffffffffffffefefffcfefefefe":"0":"fffffffffffffffffefefffcfefefefe":"0" mbedtls_mpi_core_mla #1533: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xff = (0xfffffffffffffffffefefffdfefefefe, carry 0x0)/(0xfffffffffffffffffefefffdfefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ff":"fffffffffffffffffefefffdfefefefe":"0":"fffffffffffffffffefefffdfefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ff":"fffffffffffffffffefefffdfefefefe":"0":"fffffffffffffffffefefffdfefefefe":"0" mbedtls_mpi_core_mla #1534: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xffff = (0xfffffffffffffffffefffefdfefefefe, carry 0x0)/(0xfffffffffffffffffefffefdfefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ffff":"fffffffffffffffffefffefdfefefefe":"0":"fffffffffffffffffefffefdfefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ffff":"fffffffffffffffffefffefdfefefefe":"0":"fffffffffffffffffefffefdfefefefe":"0" mbedtls_mpi_core_mla #1535: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x10000 = (0xfffffffffffffffffefffefefefefefe, carry 0x0)/(0xfffffffffffffffffefffefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"10000":"fffffffffffffffffefffefefefefefe":"0":"fffffffffffffffffefffefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"10000":"fffffffffffffffffefffefefefefefe":"0":"fffffffffffffffffefffefefefefefe":"0" mbedtls_mpi_core_mla #1536: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xffffffff = (0xfefefefdfefefefe, carry 0x1)/(0xfefefefdfefefefe, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ffffffff":"fefefefdfefefefe":"1":"fefefefdfefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ffffffff":"fefefefdfefefefe":"1":"fefefefdfefefefe":"1" mbedtls_mpi_core_mla #1537: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x100000000 = (0xfefefefefefefefe, carry 0x1)/(0xfefefefefefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"100000000":"fefefefefefefefe":"1":"fefefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"100000000":"fefefefefefefefe":"1":"fefefefefefefefe":"1" mbedtls_mpi_core_mla #1538: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7e7e7e7dfefefefe, carry 0x1)/(0x7f7f7f7f7e7e7e7dfefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7e7e7e7dfefefefe":"1":"7f7f7f7f7e7e7e7dfefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7e7e7e7dfefefefe":"1":"7f7f7f7f7e7e7e7dfefefefe":"1" mbedtls_mpi_core_mla #1539: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x8000000000000000 = (0x7ffffffffefefefefefefefe, carry 0x1)/(0x7ffffffffefefefefefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"8000000000000000":"7ffffffffefefefefefefefe":"1":"7ffffffffefefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"8000000000000000":"7ffffffffefefefefefefefe":"1":"7ffffffffefefefefefefefe":"1" mbedtls_mpi_core_mla #1540: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xfffffffffffffffe = (0xfffffffffefefefcfefefefe, carry 0x1)/(0xfffffffffefefefcfefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffe":"fffffffffefefefcfefefefe":"1":"fffffffffefefefcfefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffe":"fffffffffefefefcfefefefe":"1":"fffffffffefefefcfefefefe":"1" mbedtls_mpi_core_mla #1541: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1542: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x3 = (0xffffffffffffffffff5efefefefefefe, carry 0x0)/(0xffffffffffffffffff5efefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"3":"ffffffffffffffffff5efefefefefefe":"0":"ffffffffffffffffff5efefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"3":"ffffffffffffffffff5efefefefefefe":"0":"ffffffffffffffffff5efefefefefefe":"0" mbedtls_mpi_core_mla #1543: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xfe = (0x1ebefefefefefefe, carry 0x1)/(0x1ebefefefefefefe, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"fe":"1ebefefefefefefe":"1":"1ebefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"fe":"1ebefefefefefefe":"1":"1ebefefefefefefe":"1" mbedtls_mpi_core_mla #1544: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xff = (0x1edefefefefefefe, carry 0x1)/(0x1edefefefefefefe, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ff":"1edefefefefefefe":"1":"1edefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ff":"1edefefefefefefe":"1":"1edefefefefefefe":"1" mbedtls_mpi_core_mla #1545: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xffff = (0x1ffedefefefefefefe, carry 0x1)/(0x1ffedefefefefefefe, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ffff":"1ffedefefefefefefe":"1":"1ffedefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ffff":"1ffedefefefefefefe":"1":"1ffedefefefefefefe":"1" mbedtls_mpi_core_mla #1546: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x10000 = (0x1ffefefefefefefefe, carry 0x1)/(0x1ffefefefefefefefe, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"10000":"1ffefefefefefefefe":"1":"1ffefefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"10000":"1ffefefefefefefefe":"1":"1ffefefefefefefefe":"1" mbedtls_mpi_core_mla #1547: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xffffffff = (0x1ffffffedefefefefefefe, carry 0x1)/(0x1ffffffedefefefefefefe, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ffffffff":"1ffffffedefefefefefefe":"1":"1ffffffedefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ffffffff":"1ffffffedefefefefefefe":"1":"1ffffffedefefefefefefe":"1" mbedtls_mpi_core_mla #1548: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x100000000 = (0x1ffffffefefefefefefefe, carry 0x1)/(0x1ffffffefefefefefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"100000000":"1ffffffefefefefefefefe":"1":"1ffffffefefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"100000000":"1ffffffefefefefefefefe":"1":"1ffffffefefefefefefefe":"1" mbedtls_mpi_core_mla #1549: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xfefefefefefefeedefefefefefefe, carry 0x1)/(0xfefefefefefefeedefefefefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"7f7f7f7f7f7f7f7f":"fefefefefefefeedefefefefefefe":"1":"fefefefefefefeedefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"7f7f7f7f7f7f7f7f":"fefefefefefefeedefefefefefefe":"1":"fefefefefefefeedefefefefefefe":"1" mbedtls_mpi_core_mla #1550: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x8000000000000000 = (0xffffffffffffffefefefefefefefe, carry 0x1)/(0xffffffffffffffefefefefefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"8000000000000000":"ffffffffffffffefefefefefefefe":"1":"ffffffffffffffefefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"8000000000000000":"ffffffffffffffefefefefefefefe":"1":"ffffffffffffffefefefefefefefe":"1" mbedtls_mpi_core_mla #1551: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xfffffffffffffffe = (0x1ffffffffffffffebefefefefefefe, carry 0x1)/(0x1ffffffffffffffebefefefefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"fffffffffffffffe":"1ffffffffffffffebefefefefefefe":"1":"1ffffffffffffffebefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"fffffffffffffffe":"1ffffffffffffffebefefefefefefe":"1":"1ffffffffffffffebefefefefefefe":"1" mbedtls_mpi_core_mla #1552: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1553: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x3 = (0x2fefefefefefefefb, carry 0x1)/(0x2fefefefefefefefb, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"3":"2fefefefefefefefb":"1":"2fefefefefefefefb":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"3":"2fefefefefefefefb":"1":"2fefefefefefefefb":"1" mbedtls_mpi_core_mla #1554: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xfe = (0xfdfefefefefefefe00, carry 0x1)/(0xfdfefefefefefefe00, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fe":"fdfefefefefefefe00":"1":"fdfefefefefefefe00":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fe":"fdfefefefefefefe00":"1":"fdfefefefefefefe00":"1" mbedtls_mpi_core_mla #1555: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xff = (0xfefefefefefefefdff, carry 0x1)/(0xfefefefefefefefdff, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ff":"fefefefefefefefdff":"1":"fefefefefefefefdff":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ff":"fefefefefefefefdff":"1":"fefefefefefefefdff":"1" mbedtls_mpi_core_mla #1556: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xffff = (0xfffefefefefefefdfeff, carry 0x1)/(0xfffefefefefefefdfeff, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ffff":"fffefefefefefefdfeff":"1":"fffefefefefefefdfeff":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ffff":"fffefefefefefefdfeff":"1":"fffefefefefefefdfeff":"1" mbedtls_mpi_core_mla #1557: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x10000 = (0xfffffefefefefefdfefe, carry 0x1)/(0xfffffefefefefefdfefe, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"10000":"fffffefefefefefdfefe":"1":"fffffefefefefefdfefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"10000":"fffffefefefefefdfefe":"1":"fffffefefefefefdfefe":"1" mbedtls_mpi_core_mla #1558: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xffffffff = (0xfffffffefefefefdfefefeff, carry 0x1)/(0xfffffffefefefefdfefefeff, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ffffffff":"fffffffefefefefdfefefeff":"1":"fffffffefefefefdfefefeff":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ffffffff":"fffffffefefefefdfefefeff":"1":"fffffffefefefefdfefefeff":"1" mbedtls_mpi_core_mla #1559: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x100000000 = (0xfffffffffefefefdfefefefe, carry 0x1)/(0xfffffffffefefefdfefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"100000000":"fffffffffefefefdfefefefe":"1":"fffffffffefefefdfefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"100000000":"fffffffffefefefdfefefefe":"1":"fffffffffefefefdfefefefe":"1" mbedtls_mpi_core_mla #1560: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f, carry 0x1)/(0x7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f":"1":"7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f":"1":"7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f":"1" mbedtls_mpi_core_mla #1561: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x8000000000000000 = (0x7fffffffffffffff7efefefefefefefe, carry 0x1)/(0x7fffffffffffffff7efefefefefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff7efefefefefefefe":"1":"7fffffffffffffff7efefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff7efefefefefefefe":"1":"7fffffffffffffff7efefefefefefefe":"1" mbedtls_mpi_core_mla #1562: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xfffffffffffffffe = (0xfffffffffffffffcfefefefefefeff00, carry 0x1)/(0xfffffffffffffffcfefefefefefeff00, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fffffffffffffffe":"fffffffffffffffcfefefefefefeff00":"1":"fffffffffffffffcfefefefefefeff00":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fffffffffffffffe":"fffffffffffffffcfefefefefefeff00":"1":"fffffffffffffffcfefefefefefeff00":"1" mbedtls_mpi_core_mla #1563: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1564: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x3 = (0x2fefefefefefefefe, carry 0x1)/(0x2fefefefefefefefe, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"3":"2fefefefefefefefe":"1":"2fefefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"3":"2fefefefefefefefe":"1":"2fefefefefefefefe":"1" mbedtls_mpi_core_mla #1565: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xfe = (0xfdfefefefefefefefe, carry 0x1)/(0xfdfefefefefefefefe, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fe":"fdfefefefefefefefe":"1":"fdfefefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fe":"fdfefefefefefefefe":"1":"fdfefefefefefefefe":"1" mbedtls_mpi_core_mla #1566: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xff = (0xfefefefefefefefefe, carry 0x1)/(0xfefefefefefefefefe, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ff":"fefefefefefefefefe":"1":"fefefefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ff":"fefefefefefefefefe":"1":"fefefefefefefefefe":"1" mbedtls_mpi_core_mla #1567: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xffff = (0xfffefefefefefefefefe, carry 0x1)/(0xfffefefefefefefefefe, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ffff":"fffefefefefefefefefe":"1":"fffefefefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ffff":"fffefefefefefefefefe":"1":"fffefefefefefefefefe":"1" mbedtls_mpi_core_mla #1568: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x10000 = (0xfffffefefefefefefefe, carry 0x1)/(0xfffffefefefefefefefe, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"10000":"fffffefefefefefefefe":"1":"fffffefefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"10000":"fffffefefefefefefefe":"1":"fffffefefefefefefefe":"1" mbedtls_mpi_core_mla #1569: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xffffffff = (0xfffffffefefefefefefefefe, carry 0x1)/(0xfffffffefefefefefefefefe, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ffffffff":"fffffffefefefefefefefefe":"1":"fffffffefefefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ffffffff":"fffffffefefefefefefefefe":"1":"fffffffefefefefefefefefe":"1" mbedtls_mpi_core_mla #1570: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x100000000 = (0xfffffffffefefefefefefefe, carry 0x1)/(0xfffffffffefefefefefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"100000000":"fffffffffefefefefefefefe":"1":"fffffffffefefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"100000000":"fffffffffefefefefefefefe":"1":"fffffffffefefefefefefefe":"1" mbedtls_mpi_core_mla #1571: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7efefefefefefefefe, carry 0x1)/(0x7f7f7f7f7f7f7f7efefefefefefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7efefefefefefefefe":"1":"7f7f7f7f7f7f7f7efefefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7efefefefefefefefe":"1":"7f7f7f7f7f7f7f7efefefefefefefefe":"1" mbedtls_mpi_core_mla #1572: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x8000000000000000 = (0x7ffffffffffffffffefefefefefefefe, carry 0x1)/(0x7ffffffffffffffffefefefefefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"8000000000000000":"7ffffffffffffffffefefefefefefefe":"1":"7ffffffffffffffffefefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"8000000000000000":"7ffffffffffffffffefefefefefefefe":"1":"7ffffffffffffffffefefefefefefefe":"1" mbedtls_mpi_core_mla #1573: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffffffffffdfefefefefefefefe, carry 0x1)/(0xfffffffffffffffdfefefefefefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fffffffffffffffe":"fffffffffffffffdfefefefefefefefe":"1":"fffffffffffffffdfefefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fffffffffffffffe":"fffffffffffffffdfefefefefefefefe":"1":"fffffffffffffffdfefefefefefefefe":"1" mbedtls_mpi_core_mla #1574: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1575: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x3 = (0x368cf359a1f359bce, carry 0x1)/(0x368cf359a1f359bce, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"3":"368cf359a1f359bce":"1":"368cf359a1f359bce":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"3":"368cf359a1f359bce":"1":"368cf359a1f359bce":"1" mbedtls_mpi_core_mla #1576: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xfe = (0x120fddbb8f7a664311e, carry 0x1)/(0x120fddbb8f7a664311e, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fe":"120fddbb8f7a664311e":"1":"120fddbb8f7a664311e":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fe":"120fddbb8f7a664311e":"1":"120fddbb8f7a664311e":"1" mbedtls_mpi_core_mla #1577: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xff = (0x12221212080b121100e, carry 0x1)/(0x12221212080b121100e, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ff":"12221212080b121100e":"1":"12221212080b121100e":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ff":"12221212080b121100e":"1":"12221212080b121100e":"1" mbedtls_mpi_core_mla #1578: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xffff = (0x123444342a232d332200e, carry 0x1)/(0x123444342a232d332200e, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ffff":"123444342a232d332200e":"1":"123444342a232d332200e":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ffff":"123444342a232d332200e":"1":"123444342a232d332200e":"1" mbedtls_mpi_core_mla #1579: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x10000 = (0x12345668809bbddeefefe, carry 0x1)/(0x12345668809bbddeefefe, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"10000":"12345668809bbddeefefe":"1":"12345668809bbddeefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"10000":"12345668809bbddeefefe":"1":"12345668809bbddeefefe":"1" mbedtls_mpi_core_mla #1580: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xffffffff = (0x123456787e6767665f442200e, carry 0x1)/(0x123456787e6767665f442200e, carry 0x1) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ffffffff":"123456787e6767665f442200e":"1":"123456787e6767665f442200e":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ffffffff":"123456787e6767665f442200e":"1":"123456787e6767665f442200e":"1" mbedtls_mpi_core_mla #1581: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x100000000 = (0x12345678909bbddeefefefefe, carry 0x1)/(0x12345678909bbddeefefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"100000000":"12345678909bbddeefefefefe":"1":"12345678909bbddeefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"100000000":"12345678909bbddeefefefefe":"1":"12345678909bbddeefefefefe":"1" mbedtls_mpi_core_mla #1582: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x91107edbd82bde76f57607aaae5aa80e, carry 0x1)/(0x91107edbd82bde76f57607aaae5aa80e, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76f57607aaae5aa80e":"1":"91107edbd82bde76f57607aaae5aa80e":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76f57607aaae5aa80e":"1":"91107edbd82bde76f57607aaae5aa80e":"1" mbedtls_mpi_core_mla #1583: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x8000000000000000 = (0x91a2b3c4855e6f77fefefefefefefefe, carry 0x1)/(0x91a2b3c4855e6f77fefefefefefefefe, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"8000000000000000":"91a2b3c4855e6f77fefefefefefefefe":"1":"91a2b3c4855e6f77fefefefefefefefe":"1" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"8000000000000000":"91a2b3c4855e6f77fefefefefefefefe":"1":"91a2b3c4855e6f77fefefefefefefefe":"1" mbedtls_mpi_core_mla #1584: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x234567890abcdeedb8742fece985411e, carry 0x2)/(0x234567890abcdeedb8742fece985411e, carry 0x2) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fffffffffffffffe":"234567890abcdeedb8742fece985411e":"2":"234567890abcdeedb8742fece985411e":"2" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fffffffffffffffe":"234567890abcdeedb8742fece985411e":"2":"234567890abcdeedb8742fece985411e":"2" mbedtls_mpi_core_mla #1585: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1586: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffbfbfbfbfbfbfbf8, carry 0x3)/(0xfffffffffffffffffbfbfbfbfbfbfbf8, carry 0x3) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffbfbfbfbfbfbfbf8":"3":"fffffffffffffffffbfbfbfbfbfbfbf8":"3" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffbfbfbfbfbfbfbf8":"3":"fffffffffffffffffbfbfbfbfbfbfbf8":"3" mbedtls_mpi_core_mla #1587: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xfffffffffffffffeffffffffffffff02, carry 0xfe)/(0xfffffffffffffffeffffffffffffff02, carry 0xfe) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fe":"fffffffffffffffeffffffffffffff02":"fe":"fffffffffffffffeffffffffffffff02":"fe" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fe":"fffffffffffffffeffffffffffffff02":"fe":"fffffffffffffffeffffffffffffff02":"fe" mbedtls_mpi_core_mla #1588: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfffffffffffffffefefefefefefefe00, carry 0xff)/(0xfffffffffffffffefefefefefefefe00, carry 0xff) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffefefefefefefefe00":"ff":"fffffffffffffffefefefefefefefe00":"ff" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffefefefefefefefe00":"ff":"fffffffffffffffefefefefefefefe00":"ff" mbedtls_mpi_core_mla #1589: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffefefefefefefefe0000, carry 0xffff)/(0xfffffffffffffefefefefefefefe0000, carry 0xffff) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefefefefefefefe0000":"ffff":"fffffffffffffefefefefefefefe0000":"ffff" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefefefefefefefe0000":"ffff":"fffffffffffffefefefefefefefe0000":"ffff" mbedtls_mpi_core_mla #1590: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefdfdfdfdfdfcfefe, carry 0x10000)/(0xfffffffffffffefefdfdfdfdfdfcfefe, carry 0x10000) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefdfdfdfdfdfcfefe":"10000":"fffffffffffffefefdfdfdfdfdfcfefe":"10000" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefdfdfdfdfdfcfefe":"10000":"fffffffffffffefefdfdfdfdfdfcfefe":"10000" mbedtls_mpi_core_mla #1591: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefefefefefefe00000000, carry 0xffffffff)/(0xfffffffffefefefefefefefe00000000, carry 0xffffffff) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff" mbedtls_mpi_core_mla #1592: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefdfdfdfcfefefefe, carry 0x100000000)/(0xfffffffffefefefefdfdfdfcfefefefe, carry 0x100000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefdfdfdfcfefefefe":"100000000":"fffffffffefefefefdfdfdfcfefefefe":"100000000" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefdfdfdfcfefefefe":"100000000":"fffffffffefefefefdfdfdfcfefefefe":"100000000" mbedtls_mpi_core_mla #1593: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828403830282018100, carry 0x7f7f7f7f7f7f7f7f)/(0xff800081018202828403830282018100, carry 0x7f7f7f7f7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828403830282018100":"7f7f7f7f7f7f7f7f":"ff800081018202828403830282018100":"7f7f7f7f7f7f7f7f" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828403830282018100":"7f7f7f7f7f7f7f7f":"ff800081018202828403830282018100":"7f7f7f7f7f7f7f7f" mbedtls_mpi_core_mla #1594: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7efefefefefefefefe, carry 0x8000000000000000)/(0xff7f7f7f7f7f7f7efefefefefefefefe, carry 0x8000000000000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7efefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7efefefefefefefefe":"8000000000000000" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7efefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7efefefefefefefefe":"8000000000000000" mbedtls_mpi_core_mla #1595: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0101010101010102, carry 0xfffffffffffffffe)/(0xfefefefefefefefe0101010101010102, carry 0xfffffffffffffffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0101010101010102":"fffffffffffffffe":"fefefefefefefefe0101010101010102":"fffffffffffffffe" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0101010101010102":"fffffffffffffffe":"fefefefefefefefe0101010101010102":"fffffffffffffffe" mbedtls_mpi_core_mla #1596: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1597: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x3 = (0x3fffffffffffffffffefefefefefefefe, carry 0x0)/(0x3fffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"3":"3fffffffffffffffffefefefefefefefe":"0":"3fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"3":"3fffffffffffffffffefefefefefefefe":"0":"3fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1598: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xfe = (0xfefffffffffffffffffefefefefefefefe, carry 0x0)/(0xfefffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fe":"fefffffffffffffffffefefefefefefefe":"0":"fefffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fe":"fefffffffffffffffffefefefefefefefe":"0":"fefffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1599: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xff = (0xfffffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ff":"fffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ff":"fffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1600: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xffff = (0xfffffffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ffff":"fffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ffff":"fffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1601: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x10000 = (0x10000fffffffffffffffffefefefefefefefe, carry 0x0)/(0x10000fffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"10000":"10000fffffffffffffffffefefefefefefefe":"0":"10000fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"10000":"10000fffffffffffffffffefefefefefefefe":"0":"10000fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1602: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xffffffff = (0xfffffffffffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ffffffff":"fffffffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ffffffff":"fffffffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1603: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x100000000 = (0xfffffffffffffffffefefefefefefefe, carry 0x1)/(0x100000000fffffffffffffffffefefefefefefefe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"100000000":"fffffffffffffffffefefefefefefefe":"1":"100000000fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"100000000":"fffffffffffffffffefefefefefefefe":"1":"100000000fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1604: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7ffffffffffffffffffefefefefefefefe, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7ffffffffffffffffffefefefefefefefe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7ffffffffffffffffffefefefefefefefe":"7f7f7f7f":"7f7f7f7f7f7f7f7ffffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7ffffffffffffffffffefefefefefefefe":"7f7f7f7f":"7f7f7f7f7f7f7f7ffffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1605: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0xfffffffffffffffffefefefefefefefe, carry 0x80000000)/(0x8000000000000000fffffffffffffffffefefefefefefefe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"8000000000000000":"fffffffffffffffffefefefefefefefe":"80000000":"8000000000000000fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"8000000000000000":"fffffffffffffffffefefefefefefefe":"80000000":"8000000000000000fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1606: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffefffffffffffffffffefefefefefefefe, carry 0xffffffff)/(0xfffffffffffffffefffffffffffffffffefefefefefefefe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffefffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffefffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffefffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffefffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1607: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1608: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x379d0369b20369cd0368cf359a1f359bce, carry 0x0)/(0x379d0369b20369cd0368cf359a1f359bce, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"3":"379d0369b20369cd0368cf359a1f359bce":"0":"379d0369b20369cd0368cf359a1f359bce":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"3":"379d0369b20369cd0368cf359a1f359bce":"0":"379d0369b20369cd0368cf359a1f359bce":"0" mbedtls_mpi_core_mla #1609: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x1210edcb9f8a76532320fddbb8f7a664311e, carry 0x0)/(0x1210edcb9f8a76532320fddbb8f7a664311e, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"fe":"1210edcb9f8a76532320fddbb8f7a664311e":"0":"1210edcb9f8a76532320fddbb8f7a664311e":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"fe":"1210edcb9f8a76532320fddbb8f7a664311e":"0":"1210edcb9f8a76532320fddbb8f7a664311e":"0" mbedtls_mpi_core_mla #1610: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12232222181b2221122221212080b121100e, carry 0x0)/(0x12232222181b2221122221212080b121100e, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ff":"12232222181b2221122221212080b121100e":"0":"12232222181b2221122221212080b121100e":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ff":"12232222181b2221122221212080b121100e":"0":"12232222181b2221122221212080b121100e":"0" mbedtls_mpi_core_mla #1611: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123445443a333d433334444342a232d332200e, carry 0x0)/(0x123445443a333d433334444342a232d332200e, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffff":"123445443a333d433334444342a232d332200e":"0":"123445443a333d433334444342a232d332200e":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffff":"123445443a333d433334444342a232d332200e":"0":"123445443a333d433334444342a232d332200e":"0" mbedtls_mpi_core_mla #1612: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234577890abcdef012345668809bbddeefefe, carry 0x0)/(0x1234577890abcdef012345668809bbddeefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"10000":"1234577890abcdef012345668809bbddeefefe":"0":"1234577890abcdef012345668809bbddeefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"10000":"1234577890abcdef012345668809bbddeefefe":"0":"1234577890abcdef012345668809bbddeefefe":"0" mbedtls_mpi_core_mla #1613: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787f7777767077777887e6767665f442200e, carry 0x12)/(0x123456787f7777767077777887e6767665f442200e, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787f7777767077777887e6767665f442200e":"12":"123456787f7777767077777887e6767665f442200e":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787f7777767077777887e6767665f442200e":"12":"123456787f7777767077777887e6767665f442200e":"0" mbedtls_mpi_core_mla #1614: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567891abcdef012345678909bbddeefefefefe, carry 0x12)/(0x1234567891abcdef012345678909bbddeefefefefe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"100000000":"34567891abcdef012345678909bbddeefefefefe":"12":"1234567891abcdef012345678909bbddeefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"100000000":"34567891abcdef012345678909bbddeefefefefe":"12":"1234567891abcdef012345678909bbddeefefefefe":"0" mbedtls_mpi_core_mla #1615: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde770f8810996cde66f76f57607aaae5aa80e, carry 0x91107edbd)/(0x1107edbd82bde770f8810996cde66f76f57607aaae5aa80e, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde770f8810996cde66f76f57607aaae5aa80e":"91107edbd":"1107edbd82bde770f8810996cde66f76f57607aaae5aa80e":"9" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde770f8810996cde66f76f57607aaae5aa80e":"91107edbd":"1107edbd82bde770f8810996cde66f76f57607aaae5aa80e":"9" mbedtls_mpi_core_mla #1616: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78191a2b3c4855e6f77fefefefefefefefe, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78191a2b3c4855e6f77fefefefefefefefe":"91a2b3c48":"1a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"9" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78191a2b3c4855e6f77fefefefefefefefe":"91a2b3c48":"1a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"9" mbedtls_mpi_core_mla #1617: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeddba987667b32100edb8742fece985411e, carry 0x1234567890)/(0x34567890abcdeeddba987667b32100edb8742fece985411e, carry 0x12) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeddba987667b32100edb8742fece985411e":"1234567890":"34567890abcdeeddba987667b32100edb8742fece985411e":"12" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeddba987667b32100edb8742fece985411e":"1234567890":"34567890abcdeeddba987667b32100edb8742fece985411e":"12" mbedtls_mpi_core_mla #1618: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1619: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffefefefefefefefb, carry 0x3)/(0xfffffffffffffffffefefefefefefefb, carry 0x3) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffefefefefefefefb":"3":"fffffffffffffffffefefefefefefefb":"3" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffefefefefefefefb":"3":"fffffffffffffffffefefefefefefefb":"3" mbedtls_mpi_core_mla #1620: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xfffffffffffffffffefefefefefefe00, carry 0xfe)/(0xfffffffffffffffffefefefefefefe00, carry 0xfe) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"fffffffffffffffffefefefefefefe00":"fe":"fffffffffffffffffefefefefefefe00":"fe" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"fffffffffffffffffefefefefefefe00":"fe":"fffffffffffffffffefefefefefefe00":"fe" mbedtls_mpi_core_mla #1621: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xfffffffffffffffffefefefefefefdff, carry 0xff)/(0xfffffffffffffffffefefefefefefdff, carry 0xff) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"fffffffffffffffffefefefefefefdff":"ff":"fffffffffffffffffefefefefefefdff":"ff" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"fffffffffffffffffefefefefefefdff":"ff":"fffffffffffffffffefefefefefefdff":"ff" mbedtls_mpi_core_mla #1622: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xfffffffffffffffffefefefefefdfeff, carry 0xffff)/(0xfffffffffffffffffefefefefefdfeff, carry 0xffff) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"fffffffffffffffffefefefefefdfeff":"ffff":"fffffffffffffffffefefefefefdfeff":"ffff" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"fffffffffffffffffefefefefefdfeff":"ffff":"fffffffffffffffffefefefefefdfeff":"ffff" mbedtls_mpi_core_mla #1623: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffffffffffffffffefefefefefdfefe, carry 0x10000)/(0xfffffffffffffffffefefefefefdfefe, carry 0x10000) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffefefefefefdfefe":"10000":"fffffffffffffffffefefefefefdfefe":"10000" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffefefefefefdfefe":"10000":"fffffffffffffffffefefefefefdfefe":"10000" mbedtls_mpi_core_mla #1624: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xfffffffffffffffffefefefdfefefeff, carry 0xffffffff)/(0xfffffffffffffffffefefefdfefefeff, carry 0xffffffff) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fffffffffffffffffefefefdfefefeff":"ffffffff":"fffffffffffffffffefefefdfefefeff":"ffffffff" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fffffffffffffffffefefefdfefefeff":"ffffffff":"fffffffffffffffffefefefdfefefeff":"ffffffff" mbedtls_mpi_core_mla #1625: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xfffffffffffffffffefefefdfefefefe, carry 0x100000000)/(0xfffffffffffffffffefefefdfefefefe, carry 0x100000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffefefefdfefefefe":"100000000":"fffffffffffffffffefefefdfefefefe":"100000000" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffefefefdfefefefe":"100000000":"fffffffffffffffffefefefdfefefefe":"100000000" mbedtls_mpi_core_mla #1626: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffff7f7f7f7f7f7f7f7f, carry 0x7f7f7f7f7f7f7f7f)/(0xffffffffffffffff7f7f7f7f7f7f7f7f, carry 0x7f7f7f7f7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffff7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7f":"ffffffffffffffff7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7f" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffff7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7f":"ffffffffffffffff7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7f" mbedtls_mpi_core_mla #1627: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffff7efefefefefefefe, carry 0x8000000000000000)/(0xffffffffffffffff7efefefefefefefe, carry 0x8000000000000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"8000000000000000" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"8000000000000000" mbedtls_mpi_core_mla #1628: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xfffffffffffffffefefefefefefeff00, carry 0xfffffffffffffffe)/(0xfffffffffffffffefefefefefefeff00, carry 0xfffffffffffffffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffe" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffe" mbedtls_mpi_core_mla #1629: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1630: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce":"0":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce":"0":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce":"0" mbedtls_mpi_core_mla #1631: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e":"0":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e":"0":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e":"0" mbedtls_mpi_core_mla #1632: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122232222181b2221122221212080b121100e, carry 0x0)/(0x12222222181b2221122222222181b2221122232222181b2221122221212080b121100e, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122232222181b2221122221212080b121100e":"0":"12222222181b2221122222222181b2221122232222181b2221122221212080b121100e":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122232222181b2221122221212080b121100e":"0":"12222222181b2221122222222181b2221122232222181b2221122221212080b121100e":"0" mbedtls_mpi_core_mla #1633: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e, carry 0x0)/(0x123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e":"0":"123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e":"0":"123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e":"0" mbedtls_mpi_core_mla #1634: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe":"0":"1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe":"0":"1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe":"0" mbedtls_mpi_core_mla #1635: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e":"1234":"123456787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e":"1234":"123456787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e":"0" mbedtls_mpi_core_mla #1636: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe":"1234":"1234567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe":"1234":"1234567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe":"0" mbedtls_mpi_core_mla #1637: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e, carry 0x911) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e":"911" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e":"911" mbedtls_mpi_core_mla #1638: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe, carry 0x91a) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"91a" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"91a" mbedtls_mpi_core_mla #1639: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e, carry 0x1234) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e":"1234" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e":"1234" mbedtls_mpi_core_mla #1640: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" mbedtls_mpi_core_mla #1641: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f":"0" mbedtls_mpi_core_mla #1642: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8":"0" mbedtls_mpi_core_mla #1643: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3":"0" mbedtls_mpi_core_mla #1644: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3":"0" mbedtls_mpi_core_mla #1645: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe, carry 0x0) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe":"0" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe":"0" mbedtls_mpi_core_mla #1646: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3, carry 0x4) -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3":"4" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3":"4" mbedtls_mpi_core_mla #1647: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe, carry 0x4) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe":"4" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe":"4" mbedtls_mpi_core_mla #1648: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853, carry 0x26d473ca9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853":"26d473ca9" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853":"26d473ca9" mbedtls_mpi_core_mla #1649: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe, carry 0x26fb9683d) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe":"26fb9683d" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe":"26fb9683d" mbedtls_mpi_core_mla #1650: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8, carry 0x4df72d07b) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8":"4df72d07b" +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8":"4df72d07b" mbedtls_mpi_core_mla #1651: 0x100000000000000000000000000000000 + 0x0 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1652: 0x100000000000000000000000000000000 + 0x0 * 0x3 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"3":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"0":"3":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1653: 0x100000000000000000000000000000000 + 0x0 * 0xfe = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"fe":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"0":"fe":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1654: 0x100000000000000000000000000000000 + 0x0 * 0xff = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"ff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"0":"ff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1655: 0x100000000000000000000000000000000 + 0x0 * 0xffff = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"ffff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"0":"ffff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1656: 0x100000000000000000000000000000000 + 0x0 * 0x10000 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"10000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"0":"10000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1657: 0x100000000000000000000000000000000 + 0x0 * 0xffffffff = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"ffffffff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"0":"ffffffff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1658: 0x100000000000000000000000000000000 + 0x0 * 0x100000000 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"100000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"0":"100000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1659: 0x100000000000000000000000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"7f7f7f7f7f7f7f7f":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"0":"7f7f7f7f7f7f7f7f":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1660: 0x100000000000000000000000000000000 + 0x0 * 0x8000000000000000 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"8000000000000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"0":"8000000000000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1661: 0x100000000000000000000000000000000 + 0x0 * 0xfffffffffffffffe = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"0":"fffffffffffffffe":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"0":"fffffffffffffffe":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1662: 0x100000000000000000000000000000000 + 0x1 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"1":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1663: 0x100000000000000000000000000000000 + 0x1 * 0x3 = (0x100000000000000000000000000000003, carry 0x0)/(0x100000000000000000000000000000003, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"3":"100000000000000000000000000000003":"0":"100000000000000000000000000000003":"0" +mpi_core_mla:"100000000000000000000000000000000":"1":"3":"100000000000000000000000000000003":"0":"100000000000000000000000000000003":"0" mbedtls_mpi_core_mla #1664: 0x100000000000000000000000000000000 + 0x1 * 0xfe = (0x1000000000000000000000000000000fe, carry 0x0)/(0x1000000000000000000000000000000fe, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"fe":"1000000000000000000000000000000fe":"0":"1000000000000000000000000000000fe":"0" +mpi_core_mla:"100000000000000000000000000000000":"1":"fe":"1000000000000000000000000000000fe":"0":"1000000000000000000000000000000fe":"0" mbedtls_mpi_core_mla #1665: 0x100000000000000000000000000000000 + 0x1 * 0xff = (0x1000000000000000000000000000000ff, carry 0x0)/(0x1000000000000000000000000000000ff, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"ff":"1000000000000000000000000000000ff":"0":"1000000000000000000000000000000ff":"0" +mpi_core_mla:"100000000000000000000000000000000":"1":"ff":"1000000000000000000000000000000ff":"0":"1000000000000000000000000000000ff":"0" mbedtls_mpi_core_mla #1666: 0x100000000000000000000000000000000 + 0x1 * 0xffff = (0x10000000000000000000000000000ffff, carry 0x0)/(0x10000000000000000000000000000ffff, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"ffff":"10000000000000000000000000000ffff":"0":"10000000000000000000000000000ffff":"0" +mpi_core_mla:"100000000000000000000000000000000":"1":"ffff":"10000000000000000000000000000ffff":"0":"10000000000000000000000000000ffff":"0" mbedtls_mpi_core_mla #1667: 0x100000000000000000000000000000000 + 0x1 * 0x10000 = (0x100000000000000000000000000010000, carry 0x0)/(0x100000000000000000000000000010000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"10000":"100000000000000000000000000010000":"0":"100000000000000000000000000010000":"0" +mpi_core_mla:"100000000000000000000000000000000":"1":"10000":"100000000000000000000000000010000":"0":"100000000000000000000000000010000":"0" mbedtls_mpi_core_mla #1668: 0x100000000000000000000000000000000 + 0x1 * 0xffffffff = (0x1000000000000000000000000ffffffff, carry 0x0)/(0x1000000000000000000000000ffffffff, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"ffffffff":"1000000000000000000000000ffffffff":"0":"1000000000000000000000000ffffffff":"0" +mpi_core_mla:"100000000000000000000000000000000":"1":"ffffffff":"1000000000000000000000000ffffffff":"0":"1000000000000000000000000ffffffff":"0" mbedtls_mpi_core_mla #1669: 0x100000000000000000000000000000000 + 0x1 * 0x100000000 = (0x100000000000000000000000100000000, carry 0x0)/(0x100000000000000000000000100000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"100000000":"100000000000000000000000100000000":"0":"100000000000000000000000100000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"1":"100000000":"100000000000000000000000100000000":"0":"100000000000000000000000100000000":"0" mbedtls_mpi_core_mla #1670: 0x100000000000000000000000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x100000000000000007f7f7f7f7f7f7f7f, carry 0x0)/(0x100000000000000007f7f7f7f7f7f7f7f, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"7f7f7f7f7f7f7f7f":"100000000000000007f7f7f7f7f7f7f7f":"0":"100000000000000007f7f7f7f7f7f7f7f":"0" +mpi_core_mla:"100000000000000000000000000000000":"1":"7f7f7f7f7f7f7f7f":"100000000000000007f7f7f7f7f7f7f7f":"0":"100000000000000007f7f7f7f7f7f7f7f":"0" mbedtls_mpi_core_mla #1671: 0x100000000000000000000000000000000 + 0x1 * 0x8000000000000000 = (0x100000000000000008000000000000000, carry 0x0)/(0x100000000000000008000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"8000000000000000":"100000000000000008000000000000000":"0":"100000000000000008000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"1":"8000000000000000":"100000000000000008000000000000000":"0":"100000000000000008000000000000000":"0" mbedtls_mpi_core_mla #1672: 0x100000000000000000000000000000000 + 0x1 * 0xfffffffffffffffe = (0x10000000000000000fffffffffffffffe, carry 0x0)/(0x10000000000000000fffffffffffffffe, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1":"fffffffffffffffe":"10000000000000000fffffffffffffffe":"0":"10000000000000000fffffffffffffffe":"0" +mpi_core_mla:"100000000000000000000000000000000":"1":"fffffffffffffffe":"10000000000000000fffffffffffffffe":"0":"10000000000000000fffffffffffffffe":"0" mbedtls_mpi_core_mla #1673: 0x100000000000000000000000000000000 + 0xfffe * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffe":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1674: 0x100000000000000000000000000000000 + 0xfffe * 0x3 = (0x10000000000000000000000000002fffa, carry 0x0)/(0x10000000000000000000000000002fffa, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"3":"10000000000000000000000000002fffa":"0":"10000000000000000000000000002fffa":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffe":"3":"10000000000000000000000000002fffa":"0":"10000000000000000000000000002fffa":"0" mbedtls_mpi_core_mla #1675: 0x100000000000000000000000000000000 + 0xfffe * 0xfe = (0x100000000000000000000000000fdfe04, carry 0x0)/(0x100000000000000000000000000fdfe04, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"fe":"100000000000000000000000000fdfe04":"0":"100000000000000000000000000fdfe04":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffe":"fe":"100000000000000000000000000fdfe04":"0":"100000000000000000000000000fdfe04":"0" mbedtls_mpi_core_mla #1676: 0x100000000000000000000000000000000 + 0xfffe * 0xff = (0x100000000000000000000000000fefe02, carry 0x0)/(0x100000000000000000000000000fefe02, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"ff":"100000000000000000000000000fefe02":"0":"100000000000000000000000000fefe02":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffe":"ff":"100000000000000000000000000fefe02":"0":"100000000000000000000000000fefe02":"0" mbedtls_mpi_core_mla #1677: 0x100000000000000000000000000000000 + 0xfffe * 0xffff = (0x1000000000000000000000000fffd0002, carry 0x0)/(0x1000000000000000000000000fffd0002, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"ffff":"1000000000000000000000000fffd0002":"0":"1000000000000000000000000fffd0002":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffe":"ffff":"1000000000000000000000000fffd0002":"0":"1000000000000000000000000fffd0002":"0" mbedtls_mpi_core_mla #1678: 0x100000000000000000000000000000000 + 0xfffe * 0x10000 = (0x1000000000000000000000000fffe0000, carry 0x0)/(0x1000000000000000000000000fffe0000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"10000":"1000000000000000000000000fffe0000":"0":"1000000000000000000000000fffe0000":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffe":"10000":"1000000000000000000000000fffe0000":"0":"1000000000000000000000000fffe0000":"0" mbedtls_mpi_core_mla #1679: 0x100000000000000000000000000000000 + 0xfffe * 0xffffffff = (0x100000000000000000000fffdffff0002, carry 0x0)/(0x100000000000000000000fffdffff0002, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"ffffffff":"100000000000000000000fffdffff0002":"0":"100000000000000000000fffdffff0002":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffe":"ffffffff":"100000000000000000000fffdffff0002":"0":"100000000000000000000fffdffff0002":"0" mbedtls_mpi_core_mla #1680: 0x100000000000000000000000000000000 + 0xfffe * 0x100000000 = (0x100000000000000000000fffe00000000, carry 0x0)/(0x100000000000000000000fffe00000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"100000000":"100000000000000000000fffe00000000":"0":"100000000000000000000fffe00000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffe":"100000000":"100000000000000000000fffe00000000":"0":"100000000000000000000fffe00000000":"0" mbedtls_mpi_core_mla #1681: 0x100000000000000000000000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x10000000000007f7e8080808080800102, carry 0x0)/(0x10000000000007f7e8080808080800102, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"7f7f7f7f7f7f7f7f":"10000000000007f7e8080808080800102":"0":"10000000000007f7e8080808080800102":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffe":"7f7f7f7f7f7f7f7f":"10000000000007f7e8080808080800102":"0":"10000000000007f7e8080808080800102":"0" mbedtls_mpi_core_mla #1682: 0x100000000000000000000000000000000 + 0xfffe * 0x8000000000000000 = (0x10000000000007fff0000000000000000, carry 0x0)/(0x10000000000007fff0000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"8000000000000000":"10000000000007fff0000000000000000":"0":"10000000000007fff0000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffe":"8000000000000000":"10000000000007fff0000000000000000":"0":"10000000000007fff0000000000000000":"0" mbedtls_mpi_core_mla #1683: 0x100000000000000000000000000000000 + 0xfffe * 0xfffffffffffffffe = (0x1000000000000fffdfffffffffffe0004, carry 0x0)/(0x1000000000000fffdfffffffffffe0004, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffe":"fffffffffffffffe":"1000000000000fffdfffffffffffe0004":"0":"1000000000000fffdfffffffffffe0004":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffe":"fffffffffffffffe":"1000000000000fffdfffffffffffe0004":"0":"1000000000000fffdfffffffffffe0004":"0" mbedtls_mpi_core_mla #1684: 0x100000000000000000000000000000000 + 0xffffffff * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1685: 0x100000000000000000000000000000000 + 0xffffffff * 0x3 = (0x1000000000000000000000002fffffffd, carry 0x0)/(0x1000000000000000000000002fffffffd, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"3":"1000000000000000000000002fffffffd":"0":"1000000000000000000000002fffffffd":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"3":"1000000000000000000000002fffffffd":"0":"1000000000000000000000002fffffffd":"0" mbedtls_mpi_core_mla #1686: 0x100000000000000000000000000000000 + 0xffffffff * 0xfe = (0x10000000000000000000000fdffffff02, carry 0x0)/(0x10000000000000000000000fdffffff02, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"fe":"10000000000000000000000fdffffff02":"0":"10000000000000000000000fdffffff02":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"fe":"10000000000000000000000fdffffff02":"0":"10000000000000000000000fdffffff02":"0" mbedtls_mpi_core_mla #1687: 0x100000000000000000000000000000000 + 0xffffffff * 0xff = (0x10000000000000000000000feffffff01, carry 0x0)/(0x10000000000000000000000feffffff01, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ff":"10000000000000000000000feffffff01":"0":"10000000000000000000000feffffff01":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ff":"10000000000000000000000feffffff01":"0":"10000000000000000000000feffffff01":"0" mbedtls_mpi_core_mla #1688: 0x100000000000000000000000000000000 + 0xffffffff * 0xffff = (0x100000000000000000000fffeffff0001, carry 0x0)/(0x100000000000000000000fffeffff0001, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ffff":"100000000000000000000fffeffff0001":"0":"100000000000000000000fffeffff0001":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ffff":"100000000000000000000fffeffff0001":"0":"100000000000000000000fffeffff0001":"0" mbedtls_mpi_core_mla #1689: 0x100000000000000000000000000000000 + 0xffffffff * 0x10000 = (0x100000000000000000000ffffffff0000, carry 0x0)/(0x100000000000000000000ffffffff0000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"10000":"100000000000000000000ffffffff0000":"0":"100000000000000000000ffffffff0000":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"10000":"100000000000000000000ffffffff0000":"0":"100000000000000000000ffffffff0000":"0" mbedtls_mpi_core_mla #1690: 0x100000000000000000000000000000000 + 0xffffffff * 0xffffffff = (0x10000000000000000fffffffe00000001, carry 0x0)/(0x10000000000000000fffffffe00000001, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ffffffff":"10000000000000000fffffffe00000001":"0":"10000000000000000fffffffe00000001":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ffffffff":"10000000000000000fffffffe00000001":"0":"10000000000000000fffffffe00000001":"0" mbedtls_mpi_core_mla #1691: 0x100000000000000000000000000000000 + 0xffffffff * 0x100000000 = (0x10000000000000000ffffffff00000000, carry 0x0)/(0x10000000000000000ffffffff00000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"100000000":"10000000000000000ffffffff00000000":"0":"10000000000000000ffffffff00000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"100000000":"10000000000000000ffffffff00000000":"0":"10000000000000000ffffffff00000000":"0" mbedtls_mpi_core_mla #1692: 0x100000000000000000000000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x1000000007f7f7f7effffffff80808081, carry 0x0)/(0x1000000007f7f7f7effffffff80808081, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"1000000007f7f7f7effffffff80808081":"0":"1000000007f7f7f7effffffff80808081":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"1000000007f7f7f7effffffff80808081":"0":"1000000007f7f7f7effffffff80808081":"0" mbedtls_mpi_core_mla #1693: 0x100000000000000000000000000000000 + 0xffffffff * 0x8000000000000000 = (0x1000000007fffffff8000000000000000, carry 0x0)/(0x1000000007fffffff8000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"8000000000000000":"1000000007fffffff8000000000000000":"0":"1000000007fffffff8000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"8000000000000000":"1000000007fffffff8000000000000000":"0":"1000000007fffffff8000000000000000":"0" mbedtls_mpi_core_mla #1694: 0x100000000000000000000000000000000 + 0xffffffff * 0xfffffffffffffffe = (0x100000000fffffffefffffffe00000002, carry 0x0)/(0x100000000fffffffefffffffe00000002, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"fffffffffffffffe":"100000000fffffffefffffffe00000002":"0":"100000000fffffffefffffffe00000002":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"fffffffffffffffe":"100000000fffffffefffffffe00000002":"0":"100000000fffffffefffffffe00000002":"0" mbedtls_mpi_core_mla #1695: 0x100000000000000000000000000000000 + 0x100000000 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1696: 0x100000000000000000000000000000000 + 0x100000000 * 0x3 = (0x100000000000000000000000300000000, carry 0x0)/(0x100000000000000000000000300000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"3":"100000000000000000000000300000000":"0":"100000000000000000000000300000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000":"3":"100000000000000000000000300000000":"0":"100000000000000000000000300000000":"0" mbedtls_mpi_core_mla #1697: 0x100000000000000000000000000000000 + 0x100000000 * 0xfe = (0x10000000000000000000000fe00000000, carry 0x0)/(0x10000000000000000000000fe00000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"fe":"10000000000000000000000fe00000000":"0":"10000000000000000000000fe00000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000":"fe":"10000000000000000000000fe00000000":"0":"10000000000000000000000fe00000000":"0" mbedtls_mpi_core_mla #1698: 0x100000000000000000000000000000000 + 0x100000000 * 0xff = (0x10000000000000000000000ff00000000, carry 0x0)/(0x10000000000000000000000ff00000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"ff":"10000000000000000000000ff00000000":"0":"10000000000000000000000ff00000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000":"ff":"10000000000000000000000ff00000000":"0":"10000000000000000000000ff00000000":"0" mbedtls_mpi_core_mla #1699: 0x100000000000000000000000000000000 + 0x100000000 * 0xffff = (0x100000000000000000000ffff00000000, carry 0x0)/(0x100000000000000000000ffff00000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"ffff":"100000000000000000000ffff00000000":"0":"100000000000000000000ffff00000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000":"ffff":"100000000000000000000ffff00000000":"0":"100000000000000000000ffff00000000":"0" mbedtls_mpi_core_mla #1700: 0x100000000000000000000000000000000 + 0x100000000 * 0x10000 = (0x100000000000000000001000000000000, carry 0x0)/(0x100000000000000000001000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"10000":"100000000000000000001000000000000":"0":"100000000000000000001000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000":"10000":"100000000000000000001000000000000":"0":"100000000000000000001000000000000":"0" mbedtls_mpi_core_mla #1701: 0x100000000000000000000000000000000 + 0x100000000 * 0xffffffff = (0x10000000000000000ffffffff00000000, carry 0x0)/(0x10000000000000000ffffffff00000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"ffffffff":"10000000000000000ffffffff00000000":"0":"10000000000000000ffffffff00000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000":"ffffffff":"10000000000000000ffffffff00000000":"0":"10000000000000000ffffffff00000000":"0" mbedtls_mpi_core_mla #1702: 0x100000000000000000000000000000000 + 0x100000000 * 0x100000000 = (0x100000000000000010000000000000000, carry 0x0)/(0x100000000000000010000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"100000000":"100000000000000010000000000000000":"0":"100000000000000010000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000":"100000000":"100000000000000010000000000000000":"0":"100000000000000010000000000000000":"0" mbedtls_mpi_core_mla #1703: 0x100000000000000000000000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x1000000007f7f7f7f7f7f7f7f00000000, carry 0x0)/(0x1000000007f7f7f7f7f7f7f7f00000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"7f7f7f7f7f7f7f7f":"1000000007f7f7f7f7f7f7f7f00000000":"0":"1000000007f7f7f7f7f7f7f7f00000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000":"7f7f7f7f7f7f7f7f":"1000000007f7f7f7f7f7f7f7f00000000":"0":"1000000007f7f7f7f7f7f7f7f00000000":"0" mbedtls_mpi_core_mla #1704: 0x100000000000000000000000000000000 + 0x100000000 * 0x8000000000000000 = (0x100000000800000000000000000000000, carry 0x0)/(0x100000000800000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"8000000000000000":"100000000800000000000000000000000":"0":"100000000800000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000":"8000000000000000":"100000000800000000000000000000000":"0":"100000000800000000000000000000000":"0" mbedtls_mpi_core_mla #1705: 0x100000000000000000000000000000000 + 0x100000000 * 0xfffffffffffffffe = (0x100000000fffffffffffffffe00000000, carry 0x0)/(0x100000000fffffffffffffffe00000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000":"fffffffffffffffe":"100000000fffffffffffffffe00000000":"0":"100000000fffffffffffffffe00000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000":"fffffffffffffffe":"100000000fffffffffffffffe00000000":"0":"100000000fffffffffffffffe00000000":"0" mbedtls_mpi_core_mla #1706: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1707: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x3 = (0x100000000000000000060000000000000, carry 0x0)/(0x100000000000000000060000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"3":"100000000000000000060000000000000":"0":"100000000000000000060000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"3":"100000000000000000060000000000000":"0":"100000000000000000060000000000000":"0" mbedtls_mpi_core_mla #1708: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xfe = (0x100000000000000001fc0000000000000, carry 0x0)/(0x100000000000000001fc0000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"fe":"100000000000000001fc0000000000000":"0":"100000000000000001fc0000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"fe":"100000000000000001fc0000000000000":"0":"100000000000000001fc0000000000000":"0" mbedtls_mpi_core_mla #1709: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xff = (0x100000000000000001fe0000000000000, carry 0x0)/(0x100000000000000001fe0000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ff":"100000000000000001fe0000000000000":"0":"100000000000000001fe0000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ff":"100000000000000001fe0000000000000":"0":"100000000000000001fe0000000000000":"0" mbedtls_mpi_core_mla #1710: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xffff = (0x1000000000000001fffe0000000000000, carry 0x0)/(0x1000000000000001fffe0000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ffff":"1000000000000001fffe0000000000000":"0":"1000000000000001fffe0000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ffff":"1000000000000001fffe0000000000000":"0":"1000000000000001fffe0000000000000":"0" mbedtls_mpi_core_mla #1711: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x10000 = (0x100000000000000200000000000000000, carry 0x0)/(0x100000000000000200000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"10000":"100000000000000200000000000000000":"0":"100000000000000200000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"10000":"100000000000000200000000000000000":"0":"100000000000000200000000000000000":"0" mbedtls_mpi_core_mla #1712: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xffffffff = (0x100000000001fffffffe0000000000000, carry 0x0)/(0x100000000001fffffffe0000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ffffffff":"100000000001fffffffe0000000000000":"0":"100000000001fffffffe0000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ffffffff":"100000000001fffffffe0000000000000":"0":"100000000001fffffffe0000000000000":"0" mbedtls_mpi_core_mla #1713: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x100000000 = (0x100000000002000000000000000000000, carry 0x0)/(0x100000000002000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"100000000":"100000000002000000000000000000000":"0":"100000000002000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"100000000":"100000000002000000000000000000000":"0":"100000000002000000000000000000000":"0" mbedtls_mpi_core_mla #1714: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0x1000fefefefefefefefe0000000000000, carry 0x0)/(0x1000fefefefefefefefe0000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"1000fefefefefefefefe0000000000000":"0":"1000fefefefefefefefe0000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"1000fefefefefefefefe0000000000000":"0":"1000fefefefefefefefe0000000000000":"0" mbedtls_mpi_core_mla #1715: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x8000000000000000 = (0x100100000000000000000000000000000, carry 0x0)/(0x100100000000000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"8000000000000000":"100100000000000000000000000000000":"0":"100100000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"8000000000000000":"100100000000000000000000000000000":"0":"100100000000000000000000000000000":"0" mbedtls_mpi_core_mla #1716: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xfffffffffffffffe = (0x1001fffffffffffffffc0000000000000, carry 0x0)/(0x1001fffffffffffffffc0000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"fffffffffffffffe":"1001fffffffffffffffc0000000000000":"0":"1001fffffffffffffffc0000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"fffffffffffffffe":"1001fffffffffffffffc0000000000000":"0":"1001fffffffffffffffc0000000000000":"0" mbedtls_mpi_core_mla #1717: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1718: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x3 = (0x10000000000000002fffffffffffffffd, carry 0x0)/(0x10000000000000002fffffffffffffffd, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"3":"10000000000000002fffffffffffffffd":"0":"10000000000000002fffffffffffffffd":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"3":"10000000000000002fffffffffffffffd":"0":"10000000000000002fffffffffffffffd":"0" mbedtls_mpi_core_mla #1719: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xfe = (0x100000000000000fdffffffffffffff02, carry 0x0)/(0x100000000000000fdffffffffffffff02, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"fe":"100000000000000fdffffffffffffff02":"0":"100000000000000fdffffffffffffff02":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"fe":"100000000000000fdffffffffffffff02":"0":"100000000000000fdffffffffffffff02":"0" mbedtls_mpi_core_mla #1720: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xff = (0x100000000000000feffffffffffffff01, carry 0x0)/(0x100000000000000feffffffffffffff01, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ff":"100000000000000feffffffffffffff01":"0":"100000000000000feffffffffffffff01":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ff":"100000000000000feffffffffffffff01":"0":"100000000000000feffffffffffffff01":"0" mbedtls_mpi_core_mla #1721: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xffff = (0x1000000000000fffeffffffffffff0001, carry 0x0)/(0x1000000000000fffeffffffffffff0001, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ffff":"1000000000000fffeffffffffffff0001":"0":"1000000000000fffeffffffffffff0001":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ffff":"1000000000000fffeffffffffffff0001":"0":"1000000000000fffeffffffffffff0001":"0" mbedtls_mpi_core_mla #1722: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x10000 = (0x1000000000000ffffffffffffffff0000, carry 0x0)/(0x1000000000000ffffffffffffffff0000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"10000":"1000000000000ffffffffffffffff0000":"0":"1000000000000ffffffffffffffff0000":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"10000":"1000000000000ffffffffffffffff0000":"0":"1000000000000ffffffffffffffff0000":"0" mbedtls_mpi_core_mla #1723: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xffffffff = (0x100000000fffffffeffffffff00000001, carry 0x0)/(0x100000000fffffffeffffffff00000001, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ffffffff":"100000000fffffffeffffffff00000001":"0":"100000000fffffffeffffffff00000001":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ffffffff":"100000000fffffffeffffffff00000001":"0":"100000000fffffffeffffffff00000001":"0" mbedtls_mpi_core_mla #1724: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x100000000 = (0x100000000ffffffffffffffff00000000, carry 0x0)/(0x100000000ffffffffffffffff00000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"100000000":"100000000ffffffffffffffff00000000":"0":"100000000ffffffffffffffff00000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"100000000":"100000000ffffffffffffffff00000000":"0":"100000000ffffffffffffffff00000000":"0" mbedtls_mpi_core_mla #1725: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x17f7f7f7f7f7f7f7e8080808080808081, carry 0x0)/(0x17f7f7f7f7f7f7f7e8080808080808081, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7e8080808080808081":"0":"17f7f7f7f7f7f7f7e8080808080808081":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7e8080808080808081":"0":"17f7f7f7f7f7f7f7e8080808080808081":"0" mbedtls_mpi_core_mla #1726: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x8000000000000000 = (0x17fffffffffffffff8000000000000000, carry 0x0)/(0x17fffffffffffffff8000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"8000000000000000":"17fffffffffffffff8000000000000000":"0":"17fffffffffffffff8000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"8000000000000000":"17fffffffffffffff8000000000000000":"0":"17fffffffffffffff8000000000000000":"0" mbedtls_mpi_core_mla #1727: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x1fffffffffffffffd0000000000000002, carry 0x0)/(0x1fffffffffffffffd0000000000000002, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"fffffffffffffffe":"1fffffffffffffffd0000000000000002":"0":"1fffffffffffffffd0000000000000002":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"fffffffffffffffe":"1fffffffffffffffd0000000000000002":"0":"1fffffffffffffffd0000000000000002":"0" mbedtls_mpi_core_mla #1728: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1729: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x3 = (0x100000000000000030000000000000000, carry 0x0)/(0x100000000000000030000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"3":"100000000000000030000000000000000":"0":"100000000000000030000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"3":"100000000000000030000000000000000":"0":"100000000000000030000000000000000":"0" mbedtls_mpi_core_mla #1730: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xfe = (0x100000000000000fe0000000000000000, carry 0x0)/(0x100000000000000fe0000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"fe":"100000000000000fe0000000000000000":"0":"100000000000000fe0000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"fe":"100000000000000fe0000000000000000":"0":"100000000000000fe0000000000000000":"0" mbedtls_mpi_core_mla #1731: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xff = (0x100000000000000ff0000000000000000, carry 0x0)/(0x100000000000000ff0000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ff":"100000000000000ff0000000000000000":"0":"100000000000000ff0000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ff":"100000000000000ff0000000000000000":"0":"100000000000000ff0000000000000000":"0" mbedtls_mpi_core_mla #1732: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xffff = (0x1000000000000ffff0000000000000000, carry 0x0)/(0x1000000000000ffff0000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ffff":"1000000000000ffff0000000000000000":"0":"1000000000000ffff0000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ffff":"1000000000000ffff0000000000000000":"0":"1000000000000ffff0000000000000000":"0" mbedtls_mpi_core_mla #1733: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x10000 = (0x100000000000100000000000000000000, carry 0x0)/(0x100000000000100000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"10000":"100000000000100000000000000000000":"0":"100000000000100000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"10000":"100000000000100000000000000000000":"0":"100000000000100000000000000000000":"0" mbedtls_mpi_core_mla #1734: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xffffffff = (0x100000000ffffffff0000000000000000, carry 0x0)/(0x100000000ffffffff0000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ffffffff":"100000000ffffffff0000000000000000":"0":"100000000ffffffff0000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ffffffff":"100000000ffffffff0000000000000000":"0":"100000000ffffffff0000000000000000":"0" mbedtls_mpi_core_mla #1735: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x100000000 = (0x100000001000000000000000000000000, carry 0x0)/(0x100000001000000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"100000000":"100000001000000000000000000000000":"0":"100000001000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"100000000":"100000001000000000000000000000000":"0":"100000001000000000000000000000000":"0" mbedtls_mpi_core_mla #1736: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x17f7f7f7f7f7f7f7f0000000000000000, carry 0x0)/(0x17f7f7f7f7f7f7f7f0000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7f0000000000000000":"0":"17f7f7f7f7f7f7f7f0000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7f0000000000000000":"0":"17f7f7f7f7f7f7f7f0000000000000000":"0" mbedtls_mpi_core_mla #1737: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x8000000000000000 = (0x180000000000000000000000000000000, carry 0x0)/(0x180000000000000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"8000000000000000":"180000000000000000000000000000000":"0":"180000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"8000000000000000":"180000000000000000000000000000000":"0":"180000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1738: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xfffffffffffffffe = (0x1fffffffffffffffe0000000000000000, carry 0x0)/(0x1fffffffffffffffe0000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"fffffffffffffffe":"1fffffffffffffffe0000000000000000":"0":"1fffffffffffffffe0000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"fffffffffffffffe":"1fffffffffffffffe0000000000000000":"0":"1fffffffffffffffe0000000000000000":"0" mbedtls_mpi_core_mla #1739: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1740: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x3 = (0x1000000000000000369d0369b20369cd0, carry 0x0)/(0x1000000000000000369d0369b20369cd0, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"3":"1000000000000000369d0369b20369cd0":"0":"1000000000000000369d0369b20369cd0":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"3":"1000000000000000369d0369b20369cd0":"0":"1000000000000000369d0369b20369cd0":"0" mbedtls_mpi_core_mla #1741: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xfe = (0x10000000000000120fedcb9f8a7653220, carry 0x0)/(0x10000000000000120fedcb9f8a7653220, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"fe":"10000000000000120fedcb9f8a7653220":"0":"10000000000000120fedcb9f8a7653220":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"fe":"10000000000000120fedcb9f8a7653220":"0":"10000000000000120fedcb9f8a7653220":"0" mbedtls_mpi_core_mla #1742: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xff = (0x1000000000000012222222181b2221110, carry 0x0)/(0x1000000000000012222222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ff":"1000000000000012222222181b2221110":"0":"1000000000000012222222181b2221110":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ff":"1000000000000012222222181b2221110":"0":"1000000000000012222222181b2221110":"0" mbedtls_mpi_core_mla #1743: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xffff = (0x100000000000123444443a333d4332110, carry 0x0)/(0x100000000000123444443a333d4332110, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ffff":"100000000000123444443a333d4332110":"0":"100000000000123444443a333d4332110":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ffff":"100000000000123444443a333d4332110":"0":"100000000000123444443a333d4332110":"0" mbedtls_mpi_core_mla #1744: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x10000 = (0x1000000000001234567890abcdef00000, carry 0x0)/(0x1000000000001234567890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"10000":"1000000000001234567890abcdef00000":"0":"1000000000001234567890abcdef00000":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"10000":"1000000000001234567890abcdef00000":"0":"1000000000001234567890abcdef00000":"0" mbedtls_mpi_core_mla #1745: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xffffffff = (0x10000000123456787e7777766f5432110, carry 0x0)/(0x10000000123456787e7777766f5432110, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ffffffff":"10000000123456787e7777766f5432110":"0":"10000000123456787e7777766f5432110":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ffffffff":"10000000123456787e7777766f5432110":"0":"10000000123456787e7777766f5432110":"0" mbedtls_mpi_core_mla #1746: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x100000000 = (0x100000001234567890abcdef000000000, carry 0x0)/(0x100000001234567890abcdef000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"100000000":"100000001234567890abcdef000000000":"0":"100000001234567890abcdef000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"100000000":"100000001234567890abcdef000000000":"0":"100000001234567890abcdef000000000":"0" mbedtls_mpi_core_mla #1747: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x191107edbd82bde76f67708abaf5ba910, carry 0x0)/(0x191107edbd82bde76f67708abaf5ba910, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"191107edbd82bde76f67708abaf5ba910":"0":"191107edbd82bde76f67708abaf5ba910":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"191107edbd82bde76f67708abaf5ba910":"0":"191107edbd82bde76f67708abaf5ba910":"0" mbedtls_mpi_core_mla #1748: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x191a2b3c4855e6f780000000000000000, carry 0x0)/(0x191a2b3c4855e6f780000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"8000000000000000":"191a2b3c4855e6f780000000000000000":"0":"191a2b3c4855e6f780000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"8000000000000000":"191a2b3c4855e6f780000000000000000":"0":"191a2b3c4855e6f780000000000000000":"0" mbedtls_mpi_core_mla #1749: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x2234567890abcdeedb97530edea864220, carry 0x0)/(0x2234567890abcdeedb97530edea864220, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"fffffffffffffffe":"2234567890abcdeedb97530edea864220":"0":"2234567890abcdeedb97530edea864220":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"fffffffffffffffe":"2234567890abcdeedb97530edea864220":"0":"2234567890abcdeedb97530edea864220":"0" mbedtls_mpi_core_mla #1750: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1751: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x3fffffffffffffffffcfcfcfcfcfcfcfa, carry 0x0)/(0x3fffffffffffffffffcfcfcfcfcfcfcfa, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"3":"3fffffffffffffffffcfcfcfcfcfcfcfa":"0":"3fffffffffffffffffcfcfcfcfcfcfcfa":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"3":"3fffffffffffffffffcfcfcfcfcfcfcfa":"0":"3fffffffffffffffffcfcfcfcfcfcfcfa":"0" mbedtls_mpi_core_mla #1752: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xfeffffffffffffffff0101010101010004, carry 0x0)/(0xfeffffffffffffffff0101010101010004, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"fe":"feffffffffffffffff0101010101010004":"0":"feffffffffffffffff0101010101010004":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"fe":"feffffffffffffffff0101010101010004":"0":"feffffffffffffffff0101010101010004":"0" mbedtls_mpi_core_mla #1753: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfffffffffffffffffeffffffffffffff02, carry 0x0)/(0xfffffffffffffffffeffffffffffffff02, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffffeffffffffffffff02":"0":"fffffffffffffffffeffffffffffffff02":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffffeffffffffffffff02":"0":"fffffffffffffffffeffffffffffffff02":"0" mbedtls_mpi_core_mla #1754: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffffffefeffffffffffff0102, carry 0x0)/(0xfffffffffffffffffefeffffffffffff0102, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffffffefeffffffffffff0102":"0":"fffffffffffffffffefeffffffffffff0102":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffffffefeffffffffffff0102":"0":"fffffffffffffffffefeffffffffffff0102":"0" mbedtls_mpi_core_mla #1755: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0x10000fffffffffffffefefefefefefefe0000, carry 0x0)/(0x10000fffffffffffffefefefefefefefe0000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"10000":"10000fffffffffffffefefefefefefefe0000":"0":"10000fffffffffffffefefefefefefefe0000":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"10000":"10000fffffffffffffefefefefefefefe0000":"0":"10000fffffffffffffefefefefefefefe0000":"0" mbedtls_mpi_core_mla #1756: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffffffffffefefefeffffffff01010102, carry 0x0)/(0xfffffffffffffffffefefefeffffffff01010102, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffffefefefeffffffff01010102":"0":"fffffffffffffffffefefefeffffffff01010102":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffffefefefeffffffff01010102":"0":"fffffffffffffffffefefefeffffffff01010102":"0" mbedtls_mpi_core_mla #1757: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefe00000000, carry 0x1)/(0x100000000fffffffffefefefefefefefe00000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000000":"1":"100000000fffffffffefefefefefefefe00000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000000":"1":"100000000fffffffffefefefefefefefe00000000":"0" mbedtls_mpi_core_mla #1758: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fff800081018202828504840383028202, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7fff800081018202828504840383028202, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f7fff800081018202828504840383028202":"7f7f7f7f":"7f7f7f7f7f7f7f7fff800081018202828504840383028202":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f7fff800081018202828504840383028202":"7f7f7f7f":"7f7f7f7f7f7f7f7fff800081018202828504840383028202":"0" mbedtls_mpi_core_mla #1759: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0000000000000000, carry 0x80000000)/(0x8000000000000000ff7f7f7f7f7f7f7f0000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000000":"80000000":"8000000000000000ff7f7f7f7f7f7f7f0000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000000":"80000000":"8000000000000000ff7f7f7f7f7f7f7f0000000000000000":"0" mbedtls_mpi_core_mla #1760: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfffffffefefefefefefefefe0202020202020204, carry 0xffffffff)/(0xfffffffffffffffefefefefefefefefe0202020202020204, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffefefefefefefefefe0202020202020204":"ffffffff":"fffffffffffffffefefefefefefefefe0202020202020204":"0" +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffefefefefefefefefe0202020202020204":"ffffffff":"fffffffffffffffefefefefefefefefe0202020202020204":"0" mbedtls_mpi_core_mla #1761: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1762: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x3 = (0x400000000000000000000000000000000, carry 0x0)/(0x400000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"3":"400000000000000000000000000000000":"0":"400000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"3":"400000000000000000000000000000000":"0":"400000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1763: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xfe = (0xff00000000000000000000000000000000, carry 0x0)/(0xff00000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"fe":"ff00000000000000000000000000000000":"0":"ff00000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"fe":"ff00000000000000000000000000000000":"0":"ff00000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1764: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xff = (0x10000000000000000000000000000000000, carry 0x0)/(0x10000000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ff":"10000000000000000000000000000000000":"0":"10000000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ff":"10000000000000000000000000000000000":"0":"10000000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1765: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xffff = (0x1000000000000000000000000000000000000, carry 0x0)/(0x1000000000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ffff":"1000000000000000000000000000000000000":"0":"1000000000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ffff":"1000000000000000000000000000000000000":"0":"1000000000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1766: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000100000000000000000000000000000000, carry 0x0)/(0x1000100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"10000":"1000100000000000000000000000000000000":"0":"1000100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"10000":"1000100000000000000000000000000000000":"0":"1000100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1767: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xffffffff = (0x0, carry 0x1)/(0x10000000000000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ffffffff":"0":"1":"10000000000000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ffffffff":"0":"1":"10000000000000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1768: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x100000000 = (0x100000000000000000000000000000000, carry 0x1)/(0x10000000100000000000000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"100000000":"100000000000000000000000000000000":"1":"10000000100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"100000000":"100000000000000000000000000000000":"1":"10000000100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1769: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f8000000000000000000000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f8000000000000000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f8000000000000000000000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f8000000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f8000000000000000000000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f8000000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1770: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x100000000000000000000000000000000, carry 0x80000000)/(0x800000000000000100000000000000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"8000000000000000":"100000000000000000000000000000000":"80000000":"800000000000000100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"8000000000000000":"100000000000000000000000000000000":"80000000":"800000000000000100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1771: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xffffffff00000000000000000000000000000000, carry 0xffffffff)/(0xffffffffffffffff00000000000000000000000000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"ffffffff00000000000000000000000000000000":"ffffffff":"ffffffffffffffff00000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"ffffffff00000000000000000000000000000000":"ffffffff":"ffffffffffffffff00000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1772: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1773: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x379d0369b20369cd0369d0369b20369cd0, carry 0x0)/(0x379d0369b20369cd0369d0369b20369cd0, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"3":"379d0369b20369cd0369d0369b20369cd0":"0":"379d0369b20369cd0369d0369b20369cd0":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"3":"379d0369b20369cd0369d0369b20369cd0":"0":"379d0369b20369cd0369d0369b20369cd0":"0" mbedtls_mpi_core_mla #1774: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x1210edcb9f8a76532320fedcb9f8a7653220, carry 0x0)/(0x1210edcb9f8a76532320fedcb9f8a7653220, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"fe":"1210edcb9f8a76532320fedcb9f8a7653220":"0":"1210edcb9f8a76532320fedcb9f8a7653220":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"fe":"1210edcb9f8a76532320fedcb9f8a7653220":"0":"1210edcb9f8a76532320fedcb9f8a7653220":"0" mbedtls_mpi_core_mla #1775: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12232222181b2221122222222181b2221110, carry 0x0)/(0x12232222181b2221122222222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12232222181b2221122222222181b2221110":"0":"12232222181b2221122222222181b2221110":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12232222181b2221122222222181b2221110":"0":"12232222181b2221122222222181b2221110":"0" mbedtls_mpi_core_mla #1776: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123445443a333d433334444443a333d4332110, carry 0x0)/(0x123445443a333d433334444443a333d4332110, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123445443a333d433334444443a333d4332110":"0":"123445443a333d433334444443a333d4332110":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123445443a333d433334444443a333d4332110":"0":"123445443a333d433334444443a333d4332110":"0" mbedtls_mpi_core_mla #1777: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234577890abcdef01234567890abcdef00000, carry 0x0)/(0x1234577890abcdef01234567890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234577890abcdef01234567890abcdef00000":"0":"1234577890abcdef01234567890abcdef00000":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234577890abcdef01234567890abcdef00000":"0":"1234577890abcdef01234567890abcdef00000":"0" mbedtls_mpi_core_mla #1778: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787f7777767077777887e7777766f5432110, carry 0x12)/(0x123456787f7777767077777887e7777766f5432110, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787f7777767077777887e7777766f5432110":"12":"123456787f7777767077777887e7777766f5432110":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787f7777767077777887e7777766f5432110":"12":"123456787f7777767077777887e7777766f5432110":"0" mbedtls_mpi_core_mla #1779: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567891abcdef01234567890abcdef000000000, carry 0x12)/(0x1234567891abcdef01234567890abcdef000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567891abcdef01234567890abcdef000000000":"12":"1234567891abcdef01234567890abcdef000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567891abcdef01234567890abcdef000000000":"12":"1234567891abcdef01234567890abcdef000000000":"0" mbedtls_mpi_core_mla #1780: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde770f8810996cde66f76f67708abaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde770f8810996cde66f76f67708abaf5ba910, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde770f8810996cde66f76f67708abaf5ba910":"91107edbd":"1107edbd82bde770f8810996cde66f76f67708abaf5ba910":"9" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde770f8810996cde66f76f67708abaf5ba910":"91107edbd":"1107edbd82bde770f8810996cde66f76f67708abaf5ba910":"9" mbedtls_mpi_core_mla #1781: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78191a2b3c4855e6f780000000000000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78191a2b3c4855e6f780000000000000000, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78191a2b3c4855e6f780000000000000000":"91a2b3c48":"1a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"9" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78191a2b3c4855e6f780000000000000000":"91a2b3c48":"1a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"9" mbedtls_mpi_core_mla #1782: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeddba987667b32100edb97530edea864220, carry 0x1234567890)/(0x34567890abcdeeddba987667b32100edb97530edea864220, carry 0x12) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeddba987667b32100edb97530edea864220":"1234567890":"34567890abcdeeddba987667b32100edb97530edea864220":"12" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeddba987667b32100edb97530edea864220":"1234567890":"34567890abcdeeddba987667b32100edb97530edea864220":"12" mbedtls_mpi_core_mla #1783: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1784: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffffffffffffffffd, carry 0x3)/(0xfffffffffffffffffffffffffffffffd, carry 0x3) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffd":"3":"fffffffffffffffffffffffffffffffd":"3" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffd":"3":"fffffffffffffffffffffffffffffffd":"3" mbedtls_mpi_core_mla #1785: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffffffffffffffffffff02, carry 0xfe)/(0xffffffffffffffffffffffffffffff02, carry 0xfe) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffff02":"fe" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffff02":"fe" mbedtls_mpi_core_mla #1786: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffffffffffffffffffff01, carry 0xff)/(0xffffffffffffffffffffffffffffff01, carry 0xff) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffff01":"ff":"ffffffffffffffffffffffffffffff01":"ff" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffff01":"ff":"ffffffffffffffffffffffffffffff01":"ff" mbedtls_mpi_core_mla #1787: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffff0001, carry 0xffff)/(0xffffffffffffffffffffffffffff0001, carry 0xffff) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffff0001":"ffff":"ffffffffffffffffffffffffffff0001":"ffff" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffff0001":"ffff":"ffffffffffffffffffffffffffff0001":"ffff" mbedtls_mpi_core_mla #1788: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffffffffffffffffffffffffffff0000, carry 0x10000)/(0xffffffffffffffffffffffffffff0000, carry 0x10000) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffff0000":"10000":"ffffffffffffffffffffffffffff0000":"10000" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffff0000":"10000":"ffffffffffffffffffffffffffff0000":"10000" mbedtls_mpi_core_mla #1789: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffff00000001, carry 0xffffffff)/(0xffffffffffffffffffffffff00000001, carry 0xffffffff) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffff" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffff" mbedtls_mpi_core_mla #1790: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffff00000000, carry 0x100000000)/(0xffffffffffffffffffffffff00000000, carry 0x100000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffff00000000":"100000000":"ffffffffffffffffffffffff00000000":"100000000" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffff00000000":"100000000":"ffffffffffffffffffffffff00000000":"100000000" mbedtls_mpi_core_mla #1791: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffff8080808080808081, carry 0x7f7f7f7f7f7f7f7f)/(0xffffffffffffffff8080808080808081, carry 0x7f7f7f7f7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7f":"ffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7f" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7f":"ffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7f" mbedtls_mpi_core_mla #1792: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffff8000000000000000, carry 0x8000000000000000)/(0xffffffffffffffff8000000000000000, carry 0x8000000000000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff8000000000000000":"8000000000000000":"ffffffffffffffff8000000000000000":"8000000000000000" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff8000000000000000":"8000000000000000":"ffffffffffffffff8000000000000000":"8000000000000000" mbedtls_mpi_core_mla #1793: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffff0000000000000002, carry 0xfffffffffffffffe)/(0xffffffffffffffff0000000000000002, carry 0xfffffffffffffffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"fffffffffffffffe" +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"fffffffffffffffe" mbedtls_mpi_core_mla #1794: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1795: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0":"0" mbedtls_mpi_core_mla #1796: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220":"0" mbedtls_mpi_core_mla #1797: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122232222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122232222181b2221122222222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122232222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122232222181b2221122222222181b2221110":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122232222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122232222181b2221122222222181b2221110":"0" mbedtls_mpi_core_mla #1798: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110":"0" mbedtls_mpi_core_mla #1799: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000":"0" mbedtls_mpi_core_mla #1800: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110":"0" mbedtls_mpi_core_mla #1801: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000":"0" mbedtls_mpi_core_mla #1802: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910, carry 0x911) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910":"911" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910":"911" mbedtls_mpi_core_mla #1803: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000, carry 0x91a) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"91a" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"91a" mbedtls_mpi_core_mla #1804: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220, carry 0x1234) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220":"1234" +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220":"1234" mbedtls_mpi_core_mla #1805: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" mbedtls_mpi_core_mla #1806: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381":"0" +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381":"0" mbedtls_mpi_core_mla #1807: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa":"0" +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa":"0" mbedtls_mpi_core_mla #1808: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5":"0" +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5":"0" mbedtls_mpi_core_mla #1809: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5":"0" +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5":"0" mbedtls_mpi_core_mla #1810: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000, carry 0x0) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000":"0" +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000":"0" mbedtls_mpi_core_mla #1811: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5, carry 0x4) -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5":"4" +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5":"4" mbedtls_mpi_core_mla #1812: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000, carry 0x4) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000":"4" +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000":"4" mbedtls_mpi_core_mla #1813: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955, carry 0x26d473ca9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955":"26d473ca9" +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955":"26d473ca9" mbedtls_mpi_core_mla #1814: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000, carry 0x26fb9683d) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000":"26fb9683d" +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000":"26fb9683d" mbedtls_mpi_core_mla #1815: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa, carry 0x4df72d07b) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b" +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b" mbedtls_mpi_core_mla #1816: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1817: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x3 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"3":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"3":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1818: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xfe = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"fe":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"fe":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1819: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xff = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1820: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xffff = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ffff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ffff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1821: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x10000 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"10000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"10000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1822: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xffffffff = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ffffffff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ffffffff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1823: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x100000000 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"100000000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"100000000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1824: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1825: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"8000000000000000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"8000000000000000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1826: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1827: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1828: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x3 = (0x1234567890abcdef01234567890abcdef3, carry 0x0)/(0x1234567890abcdef01234567890abcdef3, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"3":"1234567890abcdef01234567890abcdef3":"0":"1234567890abcdef01234567890abcdef3":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"3":"1234567890abcdef01234567890abcdef3":"0":"1234567890abcdef01234567890abcdef3":"0" mbedtls_mpi_core_mla #1829: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xfe = (0x1234567890abcdef01234567890abcdfee, carry 0x0)/(0x1234567890abcdef01234567890abcdfee, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"fe":"1234567890abcdef01234567890abcdfee":"0":"1234567890abcdef01234567890abcdfee":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"fe":"1234567890abcdef01234567890abcdfee":"0":"1234567890abcdef01234567890abcdfee":"0" mbedtls_mpi_core_mla #1830: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xff = (0x1234567890abcdef01234567890abcdfef, carry 0x0)/(0x1234567890abcdef01234567890abcdfef, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ff":"1234567890abcdef01234567890abcdfef":"0":"1234567890abcdef01234567890abcdfef":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ff":"1234567890abcdef01234567890abcdfef":"0":"1234567890abcdef01234567890abcdfef":"0" mbedtls_mpi_core_mla #1831: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xffff = (0x1234567890abcdef01234567890abddeef, carry 0x0)/(0x1234567890abcdef01234567890abddeef, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ffff":"1234567890abcdef01234567890abddeef":"0":"1234567890abcdef01234567890abddeef":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ffff":"1234567890abcdef01234567890abddeef":"0":"1234567890abcdef01234567890abddeef":"0" mbedtls_mpi_core_mla #1832: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x10000 = (0x1234567890abcdef01234567890abddef0, carry 0x0)/(0x1234567890abcdef01234567890abddef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"10000":"1234567890abcdef01234567890abddef0":"0":"1234567890abcdef01234567890abddef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"10000":"1234567890abcdef01234567890abddef0":"0":"1234567890abcdef01234567890abddef0":"0" mbedtls_mpi_core_mla #1833: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xffffffff = (0x1234567890abcdef012345678a0abcdeef, carry 0x0)/(0x1234567890abcdef012345678a0abcdeef, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ffffffff":"1234567890abcdef012345678a0abcdeef":"0":"1234567890abcdef012345678a0abcdeef":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ffffffff":"1234567890abcdef012345678a0abcdeef":"0":"1234567890abcdef012345678a0abcdeef":"0" mbedtls_mpi_core_mla #1834: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x100000000 = (0x1234567890abcdef012345678a0abcdef0, carry 0x0)/(0x1234567890abcdef012345678a0abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"100000000":"1234567890abcdef012345678a0abcdef0":"0":"1234567890abcdef012345678a0abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"100000000":"1234567890abcdef012345678a0abcdef0":"0":"1234567890abcdef012345678a0abcdef0":"0" mbedtls_mpi_core_mla #1835: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01a2c4e7088a3c5e6f, carry 0x0)/(0x1234567890abcdef01a2c4e7088a3c5e6f, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1234567890abcdef01a2c4e7088a3c5e6f":"0":"1234567890abcdef01a2c4e7088a3c5e6f":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1234567890abcdef01a2c4e7088a3c5e6f":"0":"1234567890abcdef01a2c4e7088a3c5e6f":"0" mbedtls_mpi_core_mla #1836: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x8000000000000000 = (0x1234567890abcdef01a34567890abcdef0, carry 0x0)/(0x1234567890abcdef01a34567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"8000000000000000":"1234567890abcdef01a34567890abcdef0":"0":"1234567890abcdef01a34567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"8000000000000000":"1234567890abcdef01a34567890abcdef0":"0":"1234567890abcdef01a34567890abcdef0":"0" mbedtls_mpi_core_mla #1837: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xfffffffffffffffe = (0x1234567890abcdef02234567890abcdeee, carry 0x0)/(0x1234567890abcdef02234567890abcdeee, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"fffffffffffffffe":"1234567890abcdef02234567890abcdeee":"0":"1234567890abcdef02234567890abcdeee":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"fffffffffffffffe":"1234567890abcdef02234567890abcdeee":"0":"1234567890abcdef02234567890abcdeee":"0" mbedtls_mpi_core_mla #1838: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1839: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x3 = (0x1234567890abcdef01234567890abfdeea, carry 0x0)/(0x1234567890abcdef01234567890abfdeea, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"3":"1234567890abcdef01234567890abfdeea":"0":"1234567890abcdef01234567890abfdeea":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"3":"1234567890abcdef01234567890abfdeea":"0":"1234567890abcdef01234567890abfdeea":"0" mbedtls_mpi_core_mla #1840: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xfe = (0x1234567890abcdef01234567890bbadcf4, carry 0x0)/(0x1234567890abcdef01234567890bbadcf4, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"fe":"1234567890abcdef01234567890bbadcf4":"0":"1234567890abcdef01234567890bbadcf4":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"fe":"1234567890abcdef01234567890bbadcf4":"0":"1234567890abcdef01234567890bbadcf4":"0" mbedtls_mpi_core_mla #1841: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xff = (0x1234567890abcdef01234567890bbbdcf2, carry 0x0)/(0x1234567890abcdef01234567890bbbdcf2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ff":"1234567890abcdef01234567890bbbdcf2":"0":"1234567890abcdef01234567890bbbdcf2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ff":"1234567890abcdef01234567890bbbdcf2":"0":"1234567890abcdef01234567890bbbdcf2":"0" mbedtls_mpi_core_mla #1842: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xffff = (0x1234567890abcdef012345678a0ab9def2, carry 0x0)/(0x1234567890abcdef012345678a0ab9def2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ffff":"1234567890abcdef012345678a0ab9def2":"0":"1234567890abcdef012345678a0ab9def2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ffff":"1234567890abcdef012345678a0ab9def2":"0":"1234567890abcdef012345678a0ab9def2":"0" mbedtls_mpi_core_mla #1843: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x10000 = (0x1234567890abcdef012345678a0abadef0, carry 0x0)/(0x1234567890abcdef012345678a0abadef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"10000":"1234567890abcdef012345678a0abadef0":"0":"1234567890abcdef012345678a0abadef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"10000":"1234567890abcdef012345678a0abadef0":"0":"1234567890abcdef012345678a0abadef0":"0" mbedtls_mpi_core_mla #1844: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xffffffff = (0x1234567890abcdef01234667870abbdef2, carry 0x0)/(0x1234567890abcdef01234667870abbdef2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ffffffff":"1234567890abcdef01234667870abbdef2":"0":"1234567890abcdef01234667870abbdef2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ffffffff":"1234567890abcdef01234667870abbdef2":"0":"1234567890abcdef01234667870abbdef2":"0" mbedtls_mpi_core_mla #1845: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x100000000 = (0x1234567890abcdef01234667870abcdef0, carry 0x0)/(0x1234567890abcdef01234667870abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"100000000":"1234567890abcdef01234667870abcdef0":"0":"1234567890abcdef01234667870abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"100000000":"1234567890abcdef01234667870abcdef0":"0":"1234567890abcdef01234667870abcdef0":"0" mbedtls_mpi_core_mla #1846: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x1234567890abce6e7fa3c5e8098b3cdff2, carry 0x0)/(0x1234567890abce6e7fa3c5e8098b3cdff2, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"1234567890abce6e7fa3c5e8098b3cdff2":"0":"1234567890abce6e7fa3c5e8098b3cdff2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"1234567890abce6e7fa3c5e8098b3cdff2":"0":"1234567890abce6e7fa3c5e8098b3cdff2":"0" mbedtls_mpi_core_mla #1847: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x8000000000000000 = (0x1234567890abce6f00234567890abcdef0, carry 0x0)/(0x1234567890abce6f00234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"8000000000000000":"1234567890abce6f00234567890abcdef0":"0":"1234567890abce6f00234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"8000000000000000":"1234567890abce6f00234567890abcdef0":"0":"1234567890abce6f00234567890abcdef0":"0" mbedtls_mpi_core_mla #1848: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xfffffffffffffffe = (0x1234567890abceeeff234567890abadef4, carry 0x0)/(0x1234567890abceeeff234567890abadef4, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"fffffffffffffffe":"1234567890abceeeff234567890abadef4":"0":"1234567890abceeeff234567890abadef4":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"fffffffffffffffe":"1234567890abceeeff234567890abadef4":"0":"1234567890abceeeff234567890abadef4":"0" mbedtls_mpi_core_mla #1849: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1850: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x3 = (0x1234567890abcdef012345678c0abcdeed, carry 0x0)/(0x1234567890abcdef012345678c0abcdeed, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"3":"1234567890abcdef012345678c0abcdeed":"0":"1234567890abcdef012345678c0abcdeed":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"3":"1234567890abcdef012345678c0abcdeed":"0":"1234567890abcdef012345678c0abcdeed":"0" mbedtls_mpi_core_mla #1851: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfe = (0x1234567890abcdef01234568870abcddf2, carry 0x0)/(0x1234567890abcdef01234568870abcddf2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"fe":"1234567890abcdef01234568870abcddf2":"0":"1234567890abcdef01234568870abcddf2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"fe":"1234567890abcdef01234568870abcddf2":"0":"1234567890abcdef01234568870abcddf2":"0" mbedtls_mpi_core_mla #1852: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xff = (0x1234567890abcdef01234568880abcddf1, carry 0x0)/(0x1234567890abcdef01234568880abcddf1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ff":"1234567890abcdef01234568880abcddf1":"0":"1234567890abcdef01234568880abcddf1":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ff":"1234567890abcdef01234568880abcddf1":"0":"1234567890abcdef01234568880abcddf1":"0" mbedtls_mpi_core_mla #1853: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffff = (0x1234567890abcdef01234667880abbdef1, carry 0x0)/(0x1234567890abcdef01234667880abbdef1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ffff":"1234567890abcdef01234667880abbdef1":"0":"1234567890abcdef01234667880abbdef1":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ffff":"1234567890abcdef01234667880abbdef1":"0":"1234567890abcdef01234667880abbdef1":"0" mbedtls_mpi_core_mla #1854: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x10000 = (0x1234567890abcdef01234667890abbdef0, carry 0x0)/(0x1234567890abcdef01234667890abbdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"10000":"1234567890abcdef01234667890abbdef0":"0":"1234567890abcdef01234667890abbdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"10000":"1234567890abcdef01234667890abbdef0":"0":"1234567890abcdef01234667890abbdef0":"0" mbedtls_mpi_core_mla #1855: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffffffff = (0x1234567890abcdef02234567870abcdef1, carry 0x0)/(0x1234567890abcdef02234567870abcdef1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ffffffff":"1234567890abcdef02234567870abcdef1":"0":"1234567890abcdef02234567870abcdef1":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ffffffff":"1234567890abcdef02234567870abcdef1":"0":"1234567890abcdef02234567870abcdef1":"0" mbedtls_mpi_core_mla #1856: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x100000000 = (0x1234567890abcdef02234567880abcdef0, carry 0x0)/(0x1234567890abcdef02234567880abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"100000000":"1234567890abcdef02234567880abcdef0":"0":"1234567890abcdef02234567880abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"100000000":"1234567890abcdef02234567880abcdef0":"0":"1234567890abcdef02234567880abcdef0":"0" mbedtls_mpi_core_mla #1857: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x12345678912b4d6e80234567888b3d5f71, carry 0x0)/(0x12345678912b4d6e80234567888b3d5f71, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"12345678912b4d6e80234567888b3d5f71":"0":"12345678912b4d6e80234567888b3d5f71":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"12345678912b4d6e80234567888b3d5f71":"0":"12345678912b4d6e80234567888b3d5f71":"0" mbedtls_mpi_core_mla #1858: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x8000000000000000 = (0x12345678912bcdef00a34567890abcdef0, carry 0x0)/(0x12345678912bcdef00a34567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"8000000000000000":"12345678912bcdef00a34567890abcdef0":"0":"12345678912bcdef00a34567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"8000000000000000":"12345678912bcdef00a34567890abcdef0":"0":"12345678912bcdef00a34567890abcdef0":"0" mbedtls_mpi_core_mla #1859: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe = (0x1234567891abcdef00234567870abcdef2, carry 0x0)/(0x1234567891abcdef00234567870abcdef2, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"fffffffffffffffe":"1234567891abcdef00234567870abcdef2":"0":"1234567891abcdef00234567870abcdef2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"fffffffffffffffe":"1234567891abcdef00234567870abcdef2":"0":"1234567891abcdef00234567870abcdef2":"0" mbedtls_mpi_core_mla #1860: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1861: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x3 = (0x1234567890abcdef012345678c0abcdef0, carry 0x0)/(0x1234567890abcdef012345678c0abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"3":"1234567890abcdef012345678c0abcdef0":"0":"1234567890abcdef012345678c0abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"3":"1234567890abcdef012345678c0abcdef0":"0":"1234567890abcdef012345678c0abcdef0":"0" mbedtls_mpi_core_mla #1862: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfe = (0x1234567890abcdef01234568870abcdef0, carry 0x0)/(0x1234567890abcdef01234568870abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"fe":"1234567890abcdef01234568870abcdef0":"0":"1234567890abcdef01234568870abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"fe":"1234567890abcdef01234568870abcdef0":"0":"1234567890abcdef01234568870abcdef0":"0" mbedtls_mpi_core_mla #1863: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xff = (0x1234567890abcdef01234568880abcdef0, carry 0x0)/(0x1234567890abcdef01234568880abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ff":"1234567890abcdef01234568880abcdef0":"0":"1234567890abcdef01234568880abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ff":"1234567890abcdef01234568880abcdef0":"0":"1234567890abcdef01234568880abcdef0":"0" mbedtls_mpi_core_mla #1864: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffff = (0x1234567890abcdef01234667880abcdef0, carry 0x0)/(0x1234567890abcdef01234667880abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ffff":"1234567890abcdef01234667880abcdef0":"0":"1234567890abcdef01234667880abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ffff":"1234567890abcdef01234667880abcdef0":"0":"1234567890abcdef01234667880abcdef0":"0" mbedtls_mpi_core_mla #1865: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x10000 = (0x1234567890abcdef01234667890abcdef0, carry 0x0)/(0x1234567890abcdef01234667890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"10000":"1234567890abcdef01234667890abcdef0":"0":"1234567890abcdef01234667890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"10000":"1234567890abcdef01234667890abcdef0":"0":"1234567890abcdef01234667890abcdef0":"0" mbedtls_mpi_core_mla #1866: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffffffff = (0x1234567890abcdef02234567880abcdef0, carry 0x0)/(0x1234567890abcdef02234567880abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ffffffff":"1234567890abcdef02234567880abcdef0":"0":"1234567890abcdef02234567880abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ffffffff":"1234567890abcdef02234567880abcdef0":"0":"1234567890abcdef02234567880abcdef0":"0" mbedtls_mpi_core_mla #1867: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x100000000 = (0x1234567890abcdef02234567890abcdef0, carry 0x0)/(0x1234567890abcdef02234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"100000000":"1234567890abcdef02234567890abcdef0":"0":"1234567890abcdef02234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"100000000":"1234567890abcdef02234567890abcdef0":"0":"1234567890abcdef02234567890abcdef0":"0" mbedtls_mpi_core_mla #1868: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x12345678912b4d6e80a2c4e7080abcdef0, carry 0x0)/(0x12345678912b4d6e80a2c4e7080abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"12345678912b4d6e80a2c4e7080abcdef0":"0":"12345678912b4d6e80a2c4e7080abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"12345678912b4d6e80a2c4e7080abcdef0":"0":"12345678912b4d6e80a2c4e7080abcdef0":"0" mbedtls_mpi_core_mla #1869: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x8000000000000000 = (0x12345678912bcdef01234567890abcdef0, carry 0x0)/(0x12345678912bcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"8000000000000000":"12345678912bcdef01234567890abcdef0":"0":"12345678912bcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"8000000000000000":"12345678912bcdef01234567890abcdef0":"0":"12345678912bcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1870: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe = (0x1234567891abcdef01234567870abcdef0, carry 0x0)/(0x1234567891abcdef01234567870abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"fffffffffffffffe":"1234567891abcdef01234567870abcdef0":"0":"1234567891abcdef01234567870abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"fffffffffffffffe":"1234567891abcdef01234567870abcdef0":"0":"1234567891abcdef01234567870abcdef0":"0" mbedtls_mpi_core_mla #1871: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1872: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x3 = (0x1234567890abcdef0123a567890abcdef0, carry 0x0)/(0x1234567890abcdef0123a567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"3":"1234567890abcdef0123a567890abcdef0":"0":"1234567890abcdef0123a567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"3":"1234567890abcdef0123a567890abcdef0":"0":"1234567890abcdef0123a567890abcdef0":"0" mbedtls_mpi_core_mla #1873: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfe = (0x1234567890abcdef01430567890abcdef0, carry 0x0)/(0x1234567890abcdef01430567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"fe":"1234567890abcdef01430567890abcdef0":"0":"1234567890abcdef01430567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"fe":"1234567890abcdef01430567890abcdef0":"0":"1234567890abcdef01430567890abcdef0":"0" mbedtls_mpi_core_mla #1874: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xff = (0x1234567890abcdef01432567890abcdef0, carry 0x0)/(0x1234567890abcdef01432567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ff":"1234567890abcdef01432567890abcdef0":"0":"1234567890abcdef01432567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ff":"1234567890abcdef01432567890abcdef0":"0":"1234567890abcdef01432567890abcdef0":"0" mbedtls_mpi_core_mla #1875: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffff = (0x1234567890abcdef21232567890abcdef0, carry 0x0)/(0x1234567890abcdef21232567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ffff":"1234567890abcdef21232567890abcdef0":"0":"1234567890abcdef21232567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ffff":"1234567890abcdef21232567890abcdef0":"0":"1234567890abcdef21232567890abcdef0":"0" mbedtls_mpi_core_mla #1876: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x10000 = (0x1234567890abcdef21234567890abcdef0, carry 0x0)/(0x1234567890abcdef21234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"10000":"1234567890abcdef21234567890abcdef0":"0":"1234567890abcdef21234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"10000":"1234567890abcdef21234567890abcdef0":"0":"1234567890abcdef21234567890abcdef0":"0" mbedtls_mpi_core_mla #1877: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffffffff = (0x1234567890abedef01232567890abcdef0, carry 0x0)/(0x1234567890abedef01232567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ffffffff":"1234567890abedef01232567890abcdef0":"0":"1234567890abedef01232567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ffffffff":"1234567890abedef01232567890abcdef0":"0":"1234567890abedef01232567890abcdef0":"0" mbedtls_mpi_core_mla #1878: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x100000000 = (0x1234567890abedef01234567890abcdef0, carry 0x0)/(0x1234567890abedef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"100000000":"1234567890abedef01234567890abcdef0":"0":"1234567890abedef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"100000000":"1234567890abedef01234567890abcdef0":"0":"1234567890abedef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1879: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0x12346668809bbddef1132567890abcdef0, carry 0x0)/(0x12346668809bbddef1132567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"12346668809bbddef1132567890abcdef0":"0":"12346668809bbddef1132567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"12346668809bbddef1132567890abcdef0":"0":"12346668809bbddef1132567890abcdef0":"0" mbedtls_mpi_core_mla #1880: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 = (0x1234667890abcdef01234567890abcdef0, carry 0x0)/(0x1234667890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"8000000000000000":"1234667890abcdef01234567890abcdef0":"0":"1234667890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"8000000000000000":"1234667890abcdef01234567890abcdef0":"0":"1234667890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1881: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe = (0x1234767890abcdef01230567890abcdef0, carry 0x0)/(0x1234767890abcdef01230567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"fffffffffffffffe":"1234767890abcdef01230567890abcdef0":"0":"1234767890abcdef01230567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"fffffffffffffffe":"1234767890abcdef01230567890abcdef0":"0":"1234767890abcdef01230567890abcdef0":"0" mbedtls_mpi_core_mla #1882: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1883: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x3 = (0x1234567890abcdef04234567890abcdeed, carry 0x0)/(0x1234567890abcdef04234567890abcdeed, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"3":"1234567890abcdef04234567890abcdeed":"0":"1234567890abcdef04234567890abcdeed":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"3":"1234567890abcdef04234567890abcdeed":"0":"1234567890abcdef04234567890abcdeed":"0" mbedtls_mpi_core_mla #1884: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfe = (0x1234567890abcdefff234567890abcddf2, carry 0x0)/(0x1234567890abcdefff234567890abcddf2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fe":"1234567890abcdefff234567890abcddf2":"0":"1234567890abcdefff234567890abcddf2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fe":"1234567890abcdefff234567890abcddf2":"0":"1234567890abcdefff234567890abcddf2":"0" mbedtls_mpi_core_mla #1885: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xff = (0x1234567890abcdf000234567890abcddf1, carry 0x0)/(0x1234567890abcdf000234567890abcddf1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ff":"1234567890abcdf000234567890abcddf1":"0":"1234567890abcdf000234567890abcddf1":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ff":"1234567890abcdf000234567890abcddf1":"0":"1234567890abcdf000234567890abcddf1":"0" mbedtls_mpi_core_mla #1886: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffff = (0x1234567890abceef00234567890abbdef1, carry 0x0)/(0x1234567890abceef00234567890abbdef1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffff":"1234567890abceef00234567890abbdef1":"0":"1234567890abceef00234567890abbdef1":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffff":"1234567890abceef00234567890abbdef1":"0":"1234567890abceef00234567890abbdef1":"0" mbedtls_mpi_core_mla #1887: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x10000 = (0x1234567890abceef01234567890abbdef0, carry 0x0)/(0x1234567890abceef01234567890abbdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"10000":"1234567890abceef01234567890abbdef0":"0":"1234567890abceef01234567890abbdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"10000":"1234567890abceef01234567890abbdef0":"0":"1234567890abceef01234567890abbdef0":"0" mbedtls_mpi_core_mla #1888: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffffffff = (0x1234567891abcdef00234567880abcdef1, carry 0x0)/(0x1234567891abcdef00234567880abcdef1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffffffff":"1234567891abcdef00234567880abcdef1":"0":"1234567891abcdef00234567880abcdef1":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffffffff":"1234567891abcdef00234567880abcdef1":"0":"1234567891abcdef00234567880abcdef1":"0" mbedtls_mpi_core_mla #1889: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x100000000 = (0x1234567891abcdef01234567880abcdef0, carry 0x0)/(0x1234567891abcdef01234567880abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"100000000":"1234567891abcdef01234567880abcdef0":"0":"1234567891abcdef01234567880abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"100000000":"1234567891abcdef01234567880abcdef0":"0":"1234567891abcdef01234567880abcdef0":"0" mbedtls_mpi_core_mla #1890: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x12b3d5f8102b4d6e7fa3c5e8098b3d5f71, carry 0x0)/(0x12b3d5f8102b4d6e7fa3c5e8098b3d5f71, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"12b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0":"12b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"12b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0":"12b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0" mbedtls_mpi_core_mla #1891: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 = (0x12b4567890abcdef00a34567890abcdef0, carry 0x0)/(0x12b4567890abcdef00a34567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"8000000000000000":"12b4567890abcdef00a34567890abcdef0":"0":"12b4567890abcdef00a34567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"8000000000000000":"12b4567890abcdef00a34567890abcdef0":"0":"12b4567890abcdef00a34567890abcdef0":"0" mbedtls_mpi_core_mla #1892: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x1334567890abcdeefe234567890abcdef2, carry 0x0)/(0x1334567890abcdeefe234567890abcdef2, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"1334567890abcdeefe234567890abcdef2":"0":"1334567890abcdeefe234567890abcdef2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"1334567890abcdeefe234567890abcdef2":"0":"1334567890abcdeefe234567890abcdef2":"0" mbedtls_mpi_core_mla #1893: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1894: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x3 = (0x1234567890abcdef04234567890abcdef0, carry 0x0)/(0x1234567890abcdef04234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"3":"1234567890abcdef04234567890abcdef0":"0":"1234567890abcdef04234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"3":"1234567890abcdef04234567890abcdef0":"0":"1234567890abcdef04234567890abcdef0":"0" mbedtls_mpi_core_mla #1895: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfe = (0x1234567890abcdefff234567890abcdef0, carry 0x0)/(0x1234567890abcdefff234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"fe":"1234567890abcdefff234567890abcdef0":"0":"1234567890abcdefff234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"fe":"1234567890abcdefff234567890abcdef0":"0":"1234567890abcdefff234567890abcdef0":"0" mbedtls_mpi_core_mla #1896: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xff = (0x1234567890abcdf000234567890abcdef0, carry 0x0)/(0x1234567890abcdf000234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ff":"1234567890abcdf000234567890abcdef0":"0":"1234567890abcdf000234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ff":"1234567890abcdf000234567890abcdef0":"0":"1234567890abcdf000234567890abcdef0":"0" mbedtls_mpi_core_mla #1897: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffff = (0x1234567890abceef00234567890abcdef0, carry 0x0)/(0x1234567890abceef00234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ffff":"1234567890abceef00234567890abcdef0":"0":"1234567890abceef00234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ffff":"1234567890abceef00234567890abcdef0":"0":"1234567890abceef00234567890abcdef0":"0" mbedtls_mpi_core_mla #1898: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x10000 = (0x1234567890abceef01234567890abcdef0, carry 0x0)/(0x1234567890abceef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"10000":"1234567890abceef01234567890abcdef0":"0":"1234567890abceef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"10000":"1234567890abceef01234567890abcdef0":"0":"1234567890abceef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1899: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffffffff = (0x1234567891abcdef00234567890abcdef0, carry 0x0)/(0x1234567891abcdef00234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ffffffff":"1234567891abcdef00234567890abcdef0":"0":"1234567891abcdef00234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ffffffff":"1234567891abcdef00234567890abcdef0":"0":"1234567891abcdef00234567890abcdef0":"0" mbedtls_mpi_core_mla #1900: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x100000000 = (0x1234567891abcdef01234567890abcdef0, carry 0x0)/(0x1234567891abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"100000000":"1234567891abcdef01234567890abcdef0":"0":"1234567891abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"100000000":"1234567891abcdef01234567890abcdef0":"0":"1234567891abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1901: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x12b3d5f8102b4d6e80234567890abcdef0, carry 0x0)/(0x12b3d5f8102b4d6e80234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"12b3d5f8102b4d6e80234567890abcdef0":"0":"12b3d5f8102b4d6e80234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"12b3d5f8102b4d6e80234567890abcdef0":"0":"12b3d5f8102b4d6e80234567890abcdef0":"0" mbedtls_mpi_core_mla #1902: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 = (0x12b4567890abcdef01234567890abcdef0, carry 0x0)/(0x12b4567890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"8000000000000000":"12b4567890abcdef01234567890abcdef0":"0":"12b4567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"8000000000000000":"12b4567890abcdef01234567890abcdef0":"0":"12b4567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1903: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe = (0x1334567890abcdeeff234567890abcdef0, carry 0x0)/(0x1334567890abcdeeff234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"fffffffffffffffe":"1334567890abcdeeff234567890abcdef0":"0":"1334567890abcdeeff234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"fffffffffffffffe":"1334567890abcdeeff234567890abcdef0":"0":"1334567890abcdeeff234567890abcdef0":"0" mbedtls_mpi_core_mla #1904: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1905: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x3 = (0x1234567890abcdef048d159e242af37bc0, carry 0x0)/(0x1234567890abcdef048d159e242af37bc0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"3":"1234567890abcdef048d159e242af37bc0":"0":"1234567890abcdef048d159e242af37bc0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"3":"1234567890abcdef048d159e242af37bc0":"0":"1234567890abcdef048d159e242af37bc0":"0" mbedtls_mpi_core_mla #1906: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfe = (0x1234567890abcdf02222222181b2221110, carry 0x0)/(0x1234567890abcdf02222222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fe":"1234567890abcdf02222222181b2221110":"0":"1234567890abcdf02222222181b2221110":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fe":"1234567890abcdf02222222181b2221110":"0":"1234567890abcdf02222222181b2221110":"0" mbedtls_mpi_core_mla #1907: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xff = (0x1234567890abcdf0234567890abcdef000, carry 0x0)/(0x1234567890abcdf0234567890abcdef000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdf0234567890abcdef000":"0":"1234567890abcdf0234567890abcdef000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdf0234567890abcdef000":"0":"1234567890abcdf0234567890abcdef000":"0" mbedtls_mpi_core_mla #1908: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffff = (0x1234567890abcf124567890abcdef00000, carry 0x0)/(0x1234567890abcf124567890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcf124567890abcdef00000":"0":"1234567890abcf124567890abcdef00000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcf124567890abcdef00000":"0":"1234567890abcf124567890abcdef00000":"0" mbedtls_mpi_core_mla #1909: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcf12468ace7245e9acdef0, carry 0x0)/(0x1234567890abcf12468ace7245e9acdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"10000":"1234567890abcf12468ace7245e9acdef0":"0":"1234567890abcf12468ace7245e9acdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"10000":"1234567890abcf12468ace7245e9acdef0":"0":"1234567890abcf12468ace7245e9acdef0":"0" mbedtls_mpi_core_mla #1910: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff = (0x1234567891cf1356890abcdef000000000, carry 0x0)/(0x1234567891cf1356890abcdef000000000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffffffff":"1234567891cf1356890abcdef000000000":"0":"1234567891cf1356890abcdef000000000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffffffff":"1234567891cf1356890abcdef000000000":"0":"1234567891cf1356890abcdef000000000":"0" mbedtls_mpi_core_mla #1911: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 = (0x1234567891cf13568a2e0246790abcdef0, carry 0x0)/(0x1234567891cf13568a2e0246790abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"100000000":"1234567891cf13568a2e0246790abcdef0":"0":"1234567891cf13568a2e0246790abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"100000000":"1234567891cf13568a2e0246790abcdef0":"0":"1234567891cf13568a2e0246790abcdef0":"0" mbedtls_mpi_core_mla #1912: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x12c566f76c83f9cd7819bc7034ba188800, carry 0x0)/(0x12c566f76c83f9cd7819bc7034ba188800, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"12c566f76c83f9cd7819bc7034ba188800":"0":"12c566f76c83f9cd7819bc7034ba188800":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"12c566f76c83f9cd7819bc7034ba188800":"0":"12c566f76c83f9cd7819bc7034ba188800":"0" mbedtls_mpi_core_mla #1913: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x12c5f92c55312c5e79234567890abcdef0, carry 0x0)/(0x12c5f92c55312c5e79234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"8000000000000000":"12c5f92c55312c5e79234567890abcdef0":"0":"12c5f92c55312c5e79234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"8000000000000000":"12c5f92c55312c5e79234567890abcdef0":"0":"12c5f92c55312c5e79234567890abcdef0":"0" mbedtls_mpi_core_mla #1914: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x13579be019b68acdeedcba9876f5432110, carry 0x0)/(0x13579be019b68acdeedcba9876f5432110, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"13579be019b68acdeedcba9876f5432110":"0":"13579be019b68acdeedcba9876f5432110":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"13579be019b68acdeedcba9876f5432110":"0":"13579be019b68acdeedcba9876f5432110":"0" mbedtls_mpi_core_mla #1915: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1916: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x1534567890abcdef012042648607b9dbea, carry 0x0)/(0x1534567890abcdef012042648607b9dbea, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"1534567890abcdef012042648607b9dbea":"0":"1534567890abcdef012042648607b9dbea":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"1534567890abcdef012042648607b9dbea":"0":"1534567890abcdef012042648607b9dbea":"0" mbedtls_mpi_core_mla #1917: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x11034567890abcdef002446688a0bbddef4, carry 0x0)/(0x11034567890abcdef002446688a0bbddef4, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"11034567890abcdef002446688a0bbddef4":"0":"11034567890abcdef002446688a0bbddef4":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"11034567890abcdef002446688a0bbddef4":"0":"11034567890abcdef002446688a0bbddef4":"0" mbedtls_mpi_core_mla #1918: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0x11134567890abcdef00234567890abcddf2, carry 0x0)/(0x11134567890abcdef00234567890abcddf2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"11134567890abcdef00234567890abcddf2":"0":"11134567890abcdef00234567890abcddf2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"11134567890abcdef00234567890abcddf2":"0":"11134567890abcdef00234567890abcddf2":"0" mbedtls_mpi_core_mla #1919: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0x1001134567890abcdee00234567890abbdff2, carry 0x0)/(0x1001134567890abcdee00234567890abbdff2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"1001134567890abcdee00234567890abbdff2":"0":"1001134567890abcdee00234567890abbdff2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"1001134567890abcdee00234567890abbdff2":"0":"1001134567890abcdee00234567890abbdff2":"0" mbedtls_mpi_core_mla #1920: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0x1001234567890abcdee002244668809badef0, carry 0x0)/(0x1001234567890abcdee002244668809badef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"1001234567890abcdee002244668809badef0":"0":"1001234567890abcdee002244668809badef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"1001234567890abcdee002244668809badef0":"0":"1001234567890abcdee002244668809badef0":"0" mbedtls_mpi_core_mla #1921: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0x1134567890aaccee00234567880bbddff2, carry 0x1)/(0x10000001134567890aaccee00234567880bbddff2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"1134567890aaccee00234567880bbddff2":"1":"10000001134567890aaccee00234567880bbddff2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"1134567890aaccee00234567880bbddff2":"1":"10000001134567890aaccee00234567880bbddff2":"0" mbedtls_mpi_core_mla #1922: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0x1234567890aaccee00224466870abcdef0, carry 0x1)/(0x10000001234567890aaccee00224466870abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"1234567890aaccee00224466870abcdef0":"1":"10000001234567890aaccee00224466870abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"1234567890aaccee00224466870abcdef0":"1":"10000001234567890aaccee00224466870abcdef0":"0" mbedtls_mpi_core_mla #1923: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2":"7f7f7f7f":"7f7f7f7f7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2":"7f7f7f7f":"7f7f7f7f7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2":"0" mbedtls_mpi_core_mla #1924: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0x1233d5f8102b4d6e80234567890abcdef0, carry 0x80000000)/(0x800000000000001233d5f8102b4d6e80234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"1233d5f8102b4d6e80234567890abcdef0":"80000000":"800000000000001233d5f8102b4d6e80234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"1233d5f8102b4d6e80234567890abcdef0":"80000000":"800000000000001233d5f8102b4d6e80234567890abcdef0":"0" mbedtls_mpi_core_mla #1925: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0x103355778faaccedff2547698b0cbee0f4, carry 0x100000000)/(0x103355778faaccedff2547698b0cbee0f4, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"103355778faaccedff2547698b0cbee0f4":"100000000":"103355778faaccedff2547698b0cbee0f4":"1" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"103355778faaccedff2547698b0cbee0f4":"100000000":"103355778faaccedff2547698b0cbee0f4":"1" mbedtls_mpi_core_mla #1926: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1927: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 = (0x1534567890abcdef01234567890abcdef0, carry 0x0)/(0x1534567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"3":"1534567890abcdef01234567890abcdef0":"0":"1534567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"3":"1534567890abcdef01234567890abcdef0":"0":"1534567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1928: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe = (0x11034567890abcdef01234567890abcdef0, carry 0x0)/(0x11034567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fe":"11034567890abcdef01234567890abcdef0":"0":"11034567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fe":"11034567890abcdef01234567890abcdef0":"0":"11034567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1929: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff = (0x11134567890abcdef01234567890abcdef0, carry 0x0)/(0x11134567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ff":"11134567890abcdef01234567890abcdef0":"0":"11134567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ff":"11134567890abcdef01234567890abcdef0":"0":"11134567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1930: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff = (0x1001134567890abcdef01234567890abcdef0, carry 0x0)/(0x1001134567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffff":"1001134567890abcdef01234567890abcdef0":"0":"1001134567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffff":"1001134567890abcdef01234567890abcdef0":"0":"1001134567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1931: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 = (0x1001234567890abcdef01234567890abcdef0, carry 0x0)/(0x1001234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"10000":"1001234567890abcdef01234567890abcdef0":"0":"1001234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"10000":"1001234567890abcdef01234567890abcdef0":"0":"1001234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1932: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff = (0x1134567890abcdef01234567890abcdef0, carry 0x1)/(0x10000001134567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"1134567890abcdef01234567890abcdef0":"1":"10000001134567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"1134567890abcdef01234567890abcdef0":"1":"10000001134567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1933: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 = (0x1234567890abcdef01234567890abcdef0, carry 0x1)/(0x10000001234567890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef01234567890abcdef0":"1":"10000001234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef01234567890abcdef0":"1":"10000001234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1934: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f9134567890abcdef01234567890abcdef0, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f9134567890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f9134567890abcdef01234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f9134567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f9134567890abcdef01234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f9134567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1935: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef0, carry 0x80000000)/(0x800000000000001234567890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef0":"80000000":"800000000000001234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef0":"80000000":"800000000000001234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1936: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0x1034567890abcdef01234567890abcdef0, carry 0x100000000)/(0x1034567890abcdef01234567890abcdef0, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"1034567890abcdef01234567890abcdef0":"100000000":"1034567890abcdef01234567890abcdef0":"1" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"1034567890abcdef01234567890abcdef0":"100000000":"1034567890abcdef01234567890abcdef0":"1" mbedtls_mpi_core_mla #1937: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1938: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x48d159e242af37bc048d159e242af37bc0, carry 0x0)/(0x48d159e242af37bc048d159e242af37bc0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"48d159e242af37bc048d159e242af37bc0":"0":"48d159e242af37bc048d159e242af37bc0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"48d159e242af37bc048d159e242af37bc0":"0":"48d159e242af37bc048d159e242af37bc0":"0" mbedtls_mpi_core_mla #1939: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x12222222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"12222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221110":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"12222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221110":"0" mbedtls_mpi_core_mla #1940: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x1234567890abcdef01234567890abcdef000, carry 0x0)/(0x1234567890abcdef01234567890abcdef000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdef000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdef000":"0" mbedtls_mpi_core_mla #1941: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x1234567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef00000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef00000":"0" mbedtls_mpi_core_mla #1942: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x123468ace7245e9acf12468ace7245e9acdef0, carry 0x0)/(0x123468ace7245e9acf12468ace7245e9acdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"123468ace7245e9acf12468ace7245e9acdef0":"0":"123468ace7245e9acf12468ace7245e9acdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"123468ace7245e9acf12468ace7245e9acdef0":"0":"123468ace7245e9acf12468ace7245e9acdef0":"0" mbedtls_mpi_core_mla #1943: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x34567890abcdef01234567890abcdef000000000, carry 0x12)/(0x1234567890abcdef01234567890abcdef000000000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"34567890abcdef01234567890abcdef000000000":"12":"1234567890abcdef01234567890abcdef000000000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"34567890abcdef01234567890abcdef000000000":"12":"1234567890abcdef01234567890abcdef000000000":"0" mbedtls_mpi_core_mla #1944: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x345678a2e0246791cf13568a2e0246790abcdef0, carry 0x12)/(0x12345678a2e0246791cf13568a2e0246790abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"345678a2e0246791cf13568a2e0246790abcdef0":"12":"12345678a2e0246791cf13568a2e0246790abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"345678a2e0246791cf13568a2e0246790abcdef0":"12":"12345678a2e0246791cf13568a2e0246790abcdef0":"0" mbedtls_mpi_core_mla #1945: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde7822cd7822779b45e7819bc7034ba188800, carry 0x91107edbd)/(0x1107edbd82bde7822cd7822779b45e7819bc7034ba188800, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde7822cd7822779b45e7819bc7034ba188800":"91107edbd":"1107edbd82bde7822cd7822779b45e7819bc7034ba188800":"9" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde7822cd7822779b45e7819bc7034ba188800":"91107edbd":"1107edbd82bde7822cd7822779b45e7819bc7034ba188800":"9" mbedtls_mpi_core_mla #1946: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f792c5f92c55312c5e79234567890abcdef0, carry 0x91a2b3c48)/(0x1a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0, carry 0x9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f792c5f92c55312c5e79234567890abcdef0":"91a2b3c48":"1a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"9" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f792c5f92c55312c5e79234567890abcdef0":"91a2b3c48":"1a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"9" mbedtls_mpi_core_mla #1947: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234567890)/(0x34567890abcdeeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x12) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeeeeeeeeef85eeeefeedcba9876f5432110":"1234567890":"34567890abcdeeeeeeeeeef85eeeefeedcba9876f5432110":"12" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeeeeeeeeef85eeeefeedcba9876f5432110":"1234567890":"34567890abcdeeeeeeeeeef85eeeefeedcba9876f5432110":"12" mbedtls_mpi_core_mla #1948: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1949: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x1234567890abcdef01234567890abcdeed, carry 0x3)/(0x1234567890abcdef01234567890abcdeed, carry 0x3) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1234567890abcdef01234567890abcdeed":"3":"1234567890abcdef01234567890abcdeed":"3" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1234567890abcdef01234567890abcdeed":"3":"1234567890abcdef01234567890abcdeed":"3" mbedtls_mpi_core_mla #1950: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x1234567890abcdef01234567890abcddf2, carry 0xfe)/(0x1234567890abcdef01234567890abcddf2, carry 0xfe) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1234567890abcdef01234567890abcddf2":"fe":"1234567890abcdef01234567890abcddf2":"fe" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1234567890abcdef01234567890abcddf2":"fe":"1234567890abcdef01234567890abcddf2":"fe" mbedtls_mpi_core_mla #1951: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x1234567890abcdef01234567890abcddf1, carry 0xff)/(0x1234567890abcdef01234567890abcddf1, carry 0xff) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1234567890abcdef01234567890abcddf1":"ff":"1234567890abcdef01234567890abcddf1":"ff" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1234567890abcdef01234567890abcddf1":"ff":"1234567890abcdef01234567890abcddf1":"ff" mbedtls_mpi_core_mla #1952: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x1234567890abcdef01234567890abbdef1, carry 0xffff)/(0x1234567890abcdef01234567890abbdef1, carry 0xffff) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1234567890abcdef01234567890abbdef1":"ffff":"1234567890abcdef01234567890abbdef1":"ffff" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1234567890abcdef01234567890abbdef1":"ffff":"1234567890abcdef01234567890abbdef1":"ffff" mbedtls_mpi_core_mla #1953: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x1234567890abcdef01234567890abbdef0, carry 0x10000)/(0x1234567890abcdef01234567890abbdef0, carry 0x10000) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1234567890abcdef01234567890abbdef0":"10000":"1234567890abcdef01234567890abbdef0":"10000" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1234567890abcdef01234567890abbdef0":"10000":"1234567890abcdef01234567890abbdef0":"10000" mbedtls_mpi_core_mla #1954: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1234567890abcdef01234567880abcdef1, carry 0xffffffff)/(0x1234567890abcdef01234567880abcdef1, carry 0xffffffff) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1234567890abcdef01234567880abcdef1":"ffffffff":"1234567890abcdef01234567880abcdef1":"ffffffff" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1234567890abcdef01234567880abcdef1":"ffffffff":"1234567890abcdef01234567880abcdef1":"ffffffff" mbedtls_mpi_core_mla #1955: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x1234567890abcdef01234567880abcdef0, carry 0x100000000)/(0x1234567890abcdef01234567880abcdef0, carry 0x100000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567890abcdef01234567880abcdef0":"100000000":"1234567890abcdef01234567880abcdef0":"100000000" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567890abcdef01234567880abcdef0":"100000000":"1234567890abcdef01234567880abcdef0":"100000000" mbedtls_mpi_core_mla #1956: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef00a3c5e8098b3d5f71, carry 0x7f7f7f7f7f7f7f7f)/(0x1234567890abcdef00a3c5e8098b3d5f71, carry 0x7f7f7f7f7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f":"1234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f":"1234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f" mbedtls_mpi_core_mla #1957: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x1234567890abcdef00a34567890abcdef0, carry 0x8000000000000000)/(0x1234567890abcdef00a34567890abcdef0, carry 0x8000000000000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"8000000000000000" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"8000000000000000" mbedtls_mpi_core_mla #1958: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x1234567890abcdef00234567890abcdef2, carry 0xfffffffffffffffe)/(0x1234567890abcdef00234567890abcdef2, carry 0xfffffffffffffffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"fffffffffffffffe" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"fffffffffffffffe" mbedtls_mpi_core_mla #1959: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1960: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0":"0":"369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0":"0":"369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0":"0" mbedtls_mpi_core_mla #1961: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110":"0":"120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110":"0":"120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110":"0" mbedtls_mpi_core_mla #1962: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000, carry 0x0)/(0x12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000":"0":"12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000":"0":"12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000":"0" mbedtls_mpi_core_mla #1963: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000, carry 0x0)/(0x123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000":"0":"123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000":"0":"123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000":"0" mbedtls_mpi_core_mla #1964: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0":"0" mbedtls_mpi_core_mla #1965: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000, carry 0x1234)/(0x123456787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000":"1234":"123456787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000":"1234":"123456787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000":"0" mbedtls_mpi_core_mla #1966: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0, carry 0x1234)/(0x1234567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0":"1234":"1234567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0":"1234":"1234567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0":"0" mbedtls_mpi_core_mla #1967: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800, carry 0x911) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800":"911" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800":"911" mbedtls_mpi_core_mla #1968: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0, carry 0x91a) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"91a" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"91a" mbedtls_mpi_core_mla #1969: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110":"1234" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110":"1234" mbedtls_mpi_core_mla #1970: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #1971: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271":"0" mbedtls_mpi_core_mla #1972: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a":"0" mbedtls_mpi_core_mla #1973: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5":"0" mbedtls_mpi_core_mla #1974: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5":"0" mbedtls_mpi_core_mla #1975: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0":"0" mbedtls_mpi_core_mla #1976: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5, carry 0x4) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5":"4" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5":"4" mbedtls_mpi_core_mla #1977: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0, carry 0x4) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0":"4" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0":"4" mbedtls_mpi_core_mla #1978: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845, carry 0x26d473ca9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845":"26d473ca9" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845":"26d473ca9" mbedtls_mpi_core_mla #1979: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0, carry 0x26fb9683d) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0":"26fb9683d" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0":"26fb9683d" mbedtls_mpi_core_mla #1980: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a, carry 0x4df72d07b) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a":"4df72d07b" +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a":"4df72d07b" mbedtls_mpi_core_mla #1981: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #1982: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x3 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"3":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"3":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #1983: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xfe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #1984: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #1985: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #1986: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x10000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #1987: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #1988: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #1989: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #1990: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #1991: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #1992: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #1993: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x3 = (0x2, carry 0x1)/(0x2, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"3":"2":"1":"2":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"3":"2":"1":"2":"1" mbedtls_mpi_core_mla #1994: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xfe = (0xfd, carry 0x1)/(0xfd, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fe":"fd":"1":"fd":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fe":"fd":"1":"fd":"1" mbedtls_mpi_core_mla #1995: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xff = (0xfe, carry 0x1)/(0xfe, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ff":"fe":"1":"fe":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ff":"fe":"1":"fe":"1" mbedtls_mpi_core_mla #1996: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xffff = (0xfffe, carry 0x1)/(0xfffe, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ffff":"fffe":"1":"fffe":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ffff":"fffe":"1":"fffe":"1" mbedtls_mpi_core_mla #1997: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x10000 = (0xffff, carry 0x1)/(0xffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"10000":"ffff":"1":"ffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"10000":"ffff":"1":"ffff":"1" mbedtls_mpi_core_mla #1998: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xffffffff = (0xfffffffe, carry 0x1)/(0xfffffffe, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ffffffff":"fffffffe":"1":"fffffffe":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ffffffff":"fffffffe":"1":"fffffffe":"1" mbedtls_mpi_core_mla #1999: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x100000000 = (0xffffffff, carry 0x1)/(0xffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"100000000":"ffffffff":"1":"ffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"100000000":"ffffffff":"1":"ffffffff":"1" mbedtls_mpi_core_mla #2000: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7e, carry 0x1)/(0x7f7f7f7f7f7f7f7e, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e":"1":"7f7f7f7f7f7f7f7e":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e":"1":"7f7f7f7f7f7f7f7e":"1" mbedtls_mpi_core_mla #2001: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x1)/(0x7fffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"8000000000000000":"7fffffffffffffff":"1":"7fffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"8000000000000000":"7fffffffffffffff":"1":"7fffffffffffffff":"1" mbedtls_mpi_core_mla #2002: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xfffffffffffffffe = (0xfffffffffffffffd, carry 0x1)/(0xfffffffffffffffd, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffd":"1":"fffffffffffffffd":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffd":"1":"fffffffffffffffd":"1" mbedtls_mpi_core_mla #2003: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #2004: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x3 = (0x2fff9, carry 0x1)/(0x2fff9, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"3":"2fff9":"1":"2fff9":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"3":"2fff9":"1":"2fff9":"1" mbedtls_mpi_core_mla #2005: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xfe = (0xfdfe03, carry 0x1)/(0xfdfe03, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"fe":"fdfe03":"1":"fdfe03":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"fe":"fdfe03":"1":"fdfe03":"1" mbedtls_mpi_core_mla #2006: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xff = (0xfefe01, carry 0x1)/(0xfefe01, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ff":"fefe01":"1":"fefe01":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ff":"fefe01":"1":"fefe01":"1" mbedtls_mpi_core_mla #2007: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xffff = (0xfffd0001, carry 0x1)/(0xfffd0001, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffff":"fffd0001":"1":"fffd0001":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffff":"fffd0001":"1":"fffd0001":"1" mbedtls_mpi_core_mla #2008: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x10000 = (0xfffdffff, carry 0x1)/(0xfffdffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"10000":"fffdffff":"1":"fffdffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"10000":"fffdffff":"1":"fffdffff":"1" mbedtls_mpi_core_mla #2009: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xffffffff = (0xfffdffff0001, carry 0x1)/(0xfffdffff0001, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffff":"fffdffff0001":"1":"fffdffff0001":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffff":"fffdffff0001":"1":"fffdffff0001":"1" mbedtls_mpi_core_mla #2010: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x100000000 = (0xfffdffffffff, carry 0x1)/(0xfffdffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"100000000":"fffdffffffff":"1":"fffdffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"100000000":"fffdffffffff":"1":"fffdffffffff":"1" mbedtls_mpi_core_mla #2011: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x7f7e8080808080800101, carry 0x1)/(0x7f7e8080808080800101, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"7f7f7f7f7f7f7f7f":"7f7e8080808080800101":"1":"7f7e8080808080800101":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"7f7f7f7f7f7f7f7f":"7f7e8080808080800101":"1":"7f7e8080808080800101":"1" mbedtls_mpi_core_mla #2012: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x8000000000000000 = (0x7ffeffffffffffffffff, carry 0x1)/(0x7ffeffffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"8000000000000000":"7ffeffffffffffffffff":"1":"7ffeffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"8000000000000000":"7ffeffffffffffffffff":"1":"7ffeffffffffffffffff":"1" mbedtls_mpi_core_mla #2013: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xfffffffffffffffe = (0xfffdfffffffffffe0003, carry 0x1)/(0xfffdfffffffffffe0003, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"fffffffffffffffe":"fffdfffffffffffe0003":"1":"fffdfffffffffffe0003":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"fffffffffffffffe":"fffdfffffffffffe0003":"1":"fffdfffffffffffe0003":"1" mbedtls_mpi_core_mla #2014: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #2015: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x3 = (0x2fffffffc, carry 0x1)/(0x2fffffffc, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"3":"2fffffffc":"1":"2fffffffc":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"3":"2fffffffc":"1":"2fffffffc":"1" mbedtls_mpi_core_mla #2016: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xfe = (0xfdffffff01, carry 0x1)/(0xfdffffff01, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fe":"fdffffff01":"1":"fdffffff01":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fe":"fdffffff01":"1":"fdffffff01":"1" mbedtls_mpi_core_mla #2017: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xff = (0xfeffffff00, carry 0x1)/(0xfeffffff00, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ff":"feffffff00":"1":"feffffff00":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ff":"feffffff00":"1":"feffffff00":"1" mbedtls_mpi_core_mla #2018: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xffff = (0xfffeffff0000, carry 0x1)/(0xfffeffff0000, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffff":"fffeffff0000":"1":"fffeffff0000":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffff":"fffeffff0000":"1":"fffeffff0000":"1" mbedtls_mpi_core_mla #2019: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x10000 = (0xfffffffeffff, carry 0x1)/(0xfffffffeffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"10000":"fffffffeffff":"1":"fffffffeffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"10000":"fffffffeffff":"1":"fffffffeffff":"1" mbedtls_mpi_core_mla #2020: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xffffffff = (0xfffffffe00000000, carry 0x1)/(0xfffffffe00000000, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff":"fffffffe00000000":"1":"fffffffe00000000":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff":"fffffffe00000000":"1":"fffffffe00000000":"1" mbedtls_mpi_core_mla #2021: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x100000000 = (0xfffffffeffffffff, carry 0x1)/(0xfffffffeffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"100000000":"fffffffeffffffff":"1":"fffffffeffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"100000000":"fffffffeffffffff":"1":"fffffffeffffffff":"1" mbedtls_mpi_core_mla #2022: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7effffffff80808080, carry 0x1)/(0x7f7f7f7effffffff80808080, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7effffffff80808080":"1":"7f7f7f7effffffff80808080":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7effffffff80808080":"1":"7f7f7f7effffffff80808080":"1" mbedtls_mpi_core_mla #2023: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x8000000000000000 = (0x7fffffff7fffffffffffffff, carry 0x1)/(0x7fffffff7fffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"8000000000000000":"7fffffff7fffffffffffffff":"1":"7fffffff7fffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"8000000000000000":"7fffffff7fffffffffffffff":"1":"7fffffff7fffffffffffffff":"1" mbedtls_mpi_core_mla #2024: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xfffffffffffffffe = (0xfffffffefffffffe00000001, carry 0x1)/(0xfffffffefffffffe00000001, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fffffffffffffffe":"fffffffefffffffe00000001":"1":"fffffffefffffffe00000001":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fffffffffffffffe":"fffffffefffffffe00000001":"1":"fffffffefffffffe00000001":"1" mbedtls_mpi_core_mla #2025: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #2026: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x3 = (0x2ffffffff, carry 0x1)/(0x2ffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"3":"2ffffffff":"1":"2ffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"3":"2ffffffff":"1":"2ffffffff":"1" mbedtls_mpi_core_mla #2027: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xfe = (0xfdffffffff, carry 0x1)/(0xfdffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fe":"fdffffffff":"1":"fdffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fe":"fdffffffff":"1":"fdffffffff":"1" mbedtls_mpi_core_mla #2028: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xff = (0xfeffffffff, carry 0x1)/(0xfeffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ff":"feffffffff":"1":"feffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ff":"feffffffff":"1":"feffffffff":"1" mbedtls_mpi_core_mla #2029: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xffff = (0xfffeffffffff, carry 0x1)/(0xfffeffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffff":"fffeffffffff":"1":"fffeffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffff":"fffeffffffff":"1":"fffeffffffff":"1" mbedtls_mpi_core_mla #2030: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x10000 = (0xffffffffffff, carry 0x1)/(0xffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"10000":"ffffffffffff":"1":"ffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"10000":"ffffffffffff":"1":"ffffffffffff":"1" mbedtls_mpi_core_mla #2031: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xffffffff = (0xfffffffeffffffff, carry 0x1)/(0xfffffffeffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffff":"fffffffeffffffff":"1":"fffffffeffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffff":"fffffffeffffffff":"1":"fffffffeffffffff":"1" mbedtls_mpi_core_mla #2032: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x100000000 = (0xffffffffffffffff, carry 0x1)/(0xffffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"100000000":"ffffffffffffffff":"1":"ffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"100000000":"ffffffffffffffff":"1":"ffffffffffffffff":"1" mbedtls_mpi_core_mla #2033: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7effffffff, carry 0x1)/(0x7f7f7f7f7f7f7f7effffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffff":"1":"7f7f7f7f7f7f7f7effffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffff":"1":"7f7f7f7f7f7f7f7effffffff":"1" mbedtls_mpi_core_mla #2034: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x8000000000000000 = (0x7fffffffffffffffffffffff, carry 0x1)/(0x7fffffffffffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"8000000000000000":"7fffffffffffffffffffffff":"1":"7fffffffffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"8000000000000000":"7fffffffffffffffffffffff":"1":"7fffffffffffffffffffffff":"1" mbedtls_mpi_core_mla #2035: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xfffffffffffffffe = (0xfffffffffffffffdffffffff, carry 0x1)/(0xfffffffffffffffdffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffe":"fffffffffffffffdffffffff":"1":"fffffffffffffffdffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffe":"fffffffffffffffdffffffff":"1":"fffffffffffffffdffffffff":"1" mbedtls_mpi_core_mla #2036: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #2037: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x3 = (0x5fffffffffffff, carry 0x1)/(0x5fffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"3":"5fffffffffffff":"1":"5fffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"3":"5fffffffffffff":"1":"5fffffffffffff":"1" mbedtls_mpi_core_mla #2038: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xfe = (0x1fbfffffffffffff, carry 0x1)/(0x1fbfffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"fe":"1fbfffffffffffff":"1":"1fbfffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"fe":"1fbfffffffffffff":"1":"1fbfffffffffffff":"1" mbedtls_mpi_core_mla #2039: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xff = (0x1fdfffffffffffff, carry 0x1)/(0x1fdfffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ff":"1fdfffffffffffff":"1":"1fdfffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ff":"1fdfffffffffffff":"1":"1fdfffffffffffff":"1" mbedtls_mpi_core_mla #2040: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xffff = (0x1fffdfffffffffffff, carry 0x1)/(0x1fffdfffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ffff":"1fffdfffffffffffff":"1":"1fffdfffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ffff":"1fffdfffffffffffff":"1":"1fffdfffffffffffff":"1" mbedtls_mpi_core_mla #2041: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x10000 = (0x1fffffffffffffffff, carry 0x1)/(0x1fffffffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"10000":"1fffffffffffffffff":"1":"1fffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"10000":"1fffffffffffffffff":"1":"1fffffffffffffffff":"1" mbedtls_mpi_core_mla #2042: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xffffffff = (0x1fffffffdfffffffffffff, carry 0x1)/(0x1fffffffdfffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ffffffff":"1fffffffdfffffffffffff":"1":"1fffffffdfffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ffffffff":"1fffffffdfffffffffffff":"1":"1fffffffdfffffffffffff":"1" mbedtls_mpi_core_mla #2043: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x100000000 = (0x1fffffffffffffffffffff, carry 0x1)/(0x1fffffffffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"100000000":"1fffffffffffffffffffff":"1":"1fffffffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"100000000":"1fffffffffffffffffffff":"1":"1fffffffffffffffffffff":"1" mbedtls_mpi_core_mla #2044: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xfefefefefefefefdfffffffffffff, carry 0x1)/(0xfefefefefefefefdfffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"fefefefefefefefdfffffffffffff":"1":"fefefefefefefefdfffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"fefefefefefefefdfffffffffffff":"1":"fefefefefefefefdfffffffffffff":"1" mbedtls_mpi_core_mla #2045: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x8000000000000000 = (0xfffffffffffffffffffffffffffff, carry 0x1)/(0xfffffffffffffffffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"8000000000000000":"fffffffffffffffffffffffffffff":"1":"fffffffffffffffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"8000000000000000":"fffffffffffffffffffffffffffff":"1":"fffffffffffffffffffffffffffff":"1" mbedtls_mpi_core_mla #2046: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xfffffffffffffffe = (0x1fffffffffffffffbfffffffffffff, carry 0x1)/(0x1fffffffffffffffbfffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"fffffffffffffffe":"1fffffffffffffffbfffffffffffff":"1":"1fffffffffffffffbfffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"fffffffffffffffe":"1fffffffffffffffbfffffffffffff":"1":"1fffffffffffffffbfffffffffffff":"1" mbedtls_mpi_core_mla #2047: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #2048: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x3 = (0x2fffffffffffffffc, carry 0x1)/(0x2fffffffffffffffc, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"3":"2fffffffffffffffc":"1":"2fffffffffffffffc":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"3":"2fffffffffffffffc":"1":"2fffffffffffffffc":"1" mbedtls_mpi_core_mla #2049: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xfe = (0xfdffffffffffffff01, carry 0x1)/(0xfdffffffffffffff01, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"fe":"fdffffffffffffff01":"1":"fdffffffffffffff01":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"fe":"fdffffffffffffff01":"1":"fdffffffffffffff01":"1" mbedtls_mpi_core_mla #2050: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xff = (0xfeffffffffffffff00, carry 0x1)/(0xfeffffffffffffff00, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ff":"feffffffffffffff00":"1":"feffffffffffffff00":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ff":"feffffffffffffff00":"1":"feffffffffffffff00":"1" mbedtls_mpi_core_mla #2051: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xffff = (0xfffeffffffffffff0000, carry 0x1)/(0xfffeffffffffffff0000, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffff":"fffeffffffffffff0000":"1":"fffeffffffffffff0000":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffff":"fffeffffffffffff0000":"1":"fffeffffffffffff0000":"1" mbedtls_mpi_core_mla #2052: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x10000 = (0xfffffffffffffffeffff, carry 0x1)/(0xfffffffffffffffeffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"10000":"fffffffffffffffeffff":"1":"fffffffffffffffeffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"10000":"fffffffffffffffeffff":"1":"fffffffffffffffeffff":"1" mbedtls_mpi_core_mla #2053: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xffffffff = (0xfffffffeffffffff00000000, carry 0x1)/(0xfffffffeffffffff00000000, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffff":"fffffffeffffffff00000000":"1":"fffffffeffffffff00000000":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffff":"fffffffeffffffff00000000":"1":"fffffffeffffffff00000000":"1" mbedtls_mpi_core_mla #2054: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x100000000 = (0xfffffffffffffffeffffffff, carry 0x1)/(0xfffffffffffffffeffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"100000000":"fffffffffffffffeffffffff":"1":"fffffffffffffffeffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"100000000":"fffffffffffffffeffffffff":"1":"fffffffffffffffeffffffff":"1" mbedtls_mpi_core_mla #2055: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7e8080808080808080, carry 0x1)/(0x7f7f7f7f7f7f7f7e8080808080808080, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e8080808080808080":"1":"7f7f7f7f7f7f7f7e8080808080808080":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e8080808080808080":"1":"7f7f7f7f7f7f7f7e8080808080808080":"1" mbedtls_mpi_core_mla #2056: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x8000000000000000 = (0x7fffffffffffffff7fffffffffffffff, carry 0x1)/(0x7fffffffffffffff7fffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff7fffffffffffffff":"1":"7fffffffffffffff7fffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff7fffffffffffffff":"1":"7fffffffffffffff7fffffffffffffff":"1" mbedtls_mpi_core_mla #2057: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xfffffffffffffffe = (0xfffffffffffffffd0000000000000001, carry 0x1)/(0xfffffffffffffffd0000000000000001, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":"fffffffffffffffd0000000000000001":"1":"fffffffffffffffd0000000000000001":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":"fffffffffffffffd0000000000000001":"1":"fffffffffffffffd0000000000000001":"1" mbedtls_mpi_core_mla #2058: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #2059: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x3 = (0x2ffffffffffffffff, carry 0x1)/(0x2ffffffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"3":"2ffffffffffffffff":"1":"2ffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"3":"2ffffffffffffffff":"1":"2ffffffffffffffff":"1" mbedtls_mpi_core_mla #2060: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xfe = (0xfdffffffffffffffff, carry 0x1)/(0xfdffffffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fe":"fdffffffffffffffff":"1":"fdffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fe":"fdffffffffffffffff":"1":"fdffffffffffffffff":"1" mbedtls_mpi_core_mla #2061: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xff = (0xfeffffffffffffffff, carry 0x1)/(0xfeffffffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ff":"feffffffffffffffff":"1":"feffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ff":"feffffffffffffffff":"1":"feffffffffffffffff":"1" mbedtls_mpi_core_mla #2062: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xffff = (0xfffeffffffffffffffff, carry 0x1)/(0xfffeffffffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ffff":"fffeffffffffffffffff":"1":"fffeffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ffff":"fffeffffffffffffffff":"1":"fffeffffffffffffffff":"1" mbedtls_mpi_core_mla #2063: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x10000 = (0xffffffffffffffffffff, carry 0x1)/(0xffffffffffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"10000":"ffffffffffffffffffff":"1":"ffffffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"10000":"ffffffffffffffffffff":"1":"ffffffffffffffffffff":"1" mbedtls_mpi_core_mla #2064: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xffffffff = (0xfffffffeffffffffffffffff, carry 0x1)/(0xfffffffeffffffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ffffffff":"fffffffeffffffffffffffff":"1":"fffffffeffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ffffffff":"fffffffeffffffffffffffff":"1":"fffffffeffffffffffffffff":"1" mbedtls_mpi_core_mla #2065: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x100000000 = (0xffffffffffffffffffffffff, carry 0x1)/(0xffffffffffffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"100000000":"ffffffffffffffffffffffff":"1":"ffffffffffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"100000000":"ffffffffffffffffffffffff":"1":"ffffffffffffffffffffffff":"1" mbedtls_mpi_core_mla #2066: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7effffffffffffffff, carry 0x1)/(0x7f7f7f7f7f7f7f7effffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffffffffffff":"1":"7f7f7f7f7f7f7f7effffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffffffffffff":"1":"7f7f7f7f7f7f7f7effffffffffffffff":"1" mbedtls_mpi_core_mla #2067: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x8000000000000000 = (0x7fffffffffffffffffffffffffffffff, carry 0x1)/(0x7fffffffffffffffffffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"8000000000000000":"7fffffffffffffffffffffffffffffff":"1":"7fffffffffffffffffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"8000000000000000":"7fffffffffffffffffffffffffffffff":"1":"7fffffffffffffffffffffffffffffff":"1" mbedtls_mpi_core_mla #2068: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffffffffffdffffffffffffffff, carry 0x1)/(0xfffffffffffffffdffffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fffffffffffffffe":"fffffffffffffffdffffffffffffffff":"1":"fffffffffffffffdffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fffffffffffffffe":"fffffffffffffffdffffffffffffffff":"1":"fffffffffffffffdffffffffffffffff":"1" mbedtls_mpi_core_mla #2069: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #2070: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x3 = (0x369d0369b20369ccf, carry 0x1)/(0x369d0369b20369ccf, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"3":"369d0369b20369ccf":"1":"369d0369b20369ccf":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"3":"369d0369b20369ccf":"1":"369d0369b20369ccf":"1" mbedtls_mpi_core_mla #2071: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f8a765321f, carry 0x1)/(0x120fedcb9f8a765321f, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fe":"120fedcb9f8a765321f":"1":"120fedcb9f8a765321f":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fe":"120fedcb9f8a765321f":"1":"120fedcb9f8a765321f":"1" mbedtls_mpi_core_mla #2072: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xff = (0x12222222181b222110f, carry 0x1)/(0x12222222181b222110f, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ff":"12222222181b222110f":"1":"12222222181b222110f":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ff":"12222222181b222110f":"1":"12222222181b222110f":"1" mbedtls_mpi_core_mla #2073: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xffff = (0x123444443a333d433210f, carry 0x1)/(0x123444443a333d433210f, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ffff":"123444443a333d433210f":"1":"123444443a333d433210f":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ffff":"123444443a333d433210f":"1":"123444443a333d433210f":"1" mbedtls_mpi_core_mla #2074: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdeefffff, carry 0x1)/(0x1234567890abcdeefffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"10000":"1234567890abcdeefffff":"1":"1234567890abcdeefffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"10000":"1234567890abcdeefffff":"1":"1234567890abcdeefffff":"1" mbedtls_mpi_core_mla #2075: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xffffffff = (0x123456787e7777766f543210f, carry 0x1)/(0x123456787e7777766f543210f, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ffffffff":"123456787e7777766f543210f":"1":"123456787e7777766f543210f":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ffffffff":"123456787e7777766f543210f":"1":"123456787e7777766f543210f":"1" mbedtls_mpi_core_mla #2076: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x100000000 = (0x1234567890abcdeefffffffff, carry 0x1)/(0x1234567890abcdeefffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"100000000":"1234567890abcdeefffffffff":"1":"1234567890abcdeefffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"100000000":"1234567890abcdeefffffffff":"1":"1234567890abcdeefffffffff":"1" mbedtls_mpi_core_mla #2077: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x91107edbd82bde76f67708abaf5ba90f, carry 0x1)/(0x91107edbd82bde76f67708abaf5ba90f, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76f67708abaf5ba90f":"1":"91107edbd82bde76f67708abaf5ba90f":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76f67708abaf5ba90f":"1":"91107edbd82bde76f67708abaf5ba90f":"1" mbedtls_mpi_core_mla #2078: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x8000000000000000 = (0x91a2b3c4855e6f77ffffffffffffffff, carry 0x1)/(0x91a2b3c4855e6f77ffffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"8000000000000000":"91a2b3c4855e6f77ffffffffffffffff":"1":"91a2b3c4855e6f77ffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"8000000000000000":"91a2b3c4855e6f77ffffffffffffffff":"1":"91a2b3c4855e6f77ffffffffffffffff":"1" mbedtls_mpi_core_mla #2079: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x1234567890abcdeedb97530edea86421f, carry 0x1)/(0x1234567890abcdeedb97530edea86421f, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fffffffffffffffe":"1234567890abcdeedb97530edea86421f":"1":"1234567890abcdeedb97530edea86421f":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fffffffffffffffe":"1234567890abcdeedb97530edea86421f":"1":"1234567890abcdeedb97530edea86421f":"1" mbedtls_mpi_core_mla #2080: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #2081: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x2fffffffffffffffffcfcfcfcfcfcfcf9, carry 0x1)/(0x2fffffffffffffffffcfcfcfcfcfcfcf9, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"3":"2fffffffffffffffffcfcfcfcfcfcfcf9":"1":"2fffffffffffffffffcfcfcfcfcfcfcf9":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"3":"2fffffffffffffffffcfcfcfcfcfcfcf9":"1":"2fffffffffffffffffcfcfcfcfcfcfcf9":"1" mbedtls_mpi_core_mla #2082: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xfdffffffffffffffff0101010101010003, carry 0x1)/(0xfdffffffffffffffff0101010101010003, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fe":"fdffffffffffffffff0101010101010003":"1":"fdffffffffffffffff0101010101010003":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fe":"fdffffffffffffffff0101010101010003":"1":"fdffffffffffffffff0101010101010003":"1" mbedtls_mpi_core_mla #2083: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfefffffffffffffffeffffffffffffff01, carry 0x1)/(0xfefffffffffffffffeffffffffffffff01, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ff":"fefffffffffffffffeffffffffffffff01":"1":"fefffffffffffffffeffffffffffffff01":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ff":"fefffffffffffffffeffffffffffffff01":"1":"fefffffffffffffffeffffffffffffff01":"1" mbedtls_mpi_core_mla #2084: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffefffffffffffffefeffffffffffff0101, carry 0x1)/(0xfffefffffffffffffefeffffffffffff0101, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffefffffffffffffefeffffffffffff0101":"1":"fffefffffffffffffefeffffffffffff0101":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffefffffffffffffefeffffffffffff0101":"1":"fffefffffffffffffefeffffffffffff0101":"1" mbedtls_mpi_core_mla #2085: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffffffefefefefefefefdffff, carry 0x1)/(0xfffffffffffffffffefefefefefefefdffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffffffefefefefefefefdffff":"1":"fffffffffffffffffefefefefefefefdffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffffffefefefefefefefdffff":"1":"fffffffffffffffffefefefefefefefdffff":"1" mbedtls_mpi_core_mla #2086: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffefffffffffefefefeffffffff01010101, carry 0x1)/(0xfffffffefffffffffefefefeffffffff01010101, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffefffffffffefefefeffffffff01010101":"1":"fffffffefffffffffefefefeffffffff01010101":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffefffffffffefefefeffffffff01010101":"1":"fffffffefffffffffefefefeffffffff01010101":"1" mbedtls_mpi_core_mla #2087: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffffffffffefefefefefefefdffffffff, carry 0x1)/(0xfffffffffffffffffefefefefefefefdffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffffefefefefefefefdffffffff":"1":"fffffffffffffffffefefefefefefefdffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffffefefefefefefefdffffffff":"1":"fffffffffffffffffefefefefefefefdffffffff":"1" mbedtls_mpi_core_mla #2088: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7eff800081018202828504840383028201, carry 0x1)/(0x7f7f7f7f7f7f7f7eff800081018202828504840383028201, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7eff800081018202828504840383028201":"1":"7f7f7f7f7f7f7f7eff800081018202828504840383028201":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7eff800081018202828504840383028201":"1":"7f7f7f7f7f7f7f7eff800081018202828504840383028201":"1" mbedtls_mpi_core_mla #2089: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0x7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff, carry 0x1)/(0x7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff":"1":"7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff":"1":"7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff":"1" mbedtls_mpi_core_mla #2090: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfffffffffffffffdfefefefefefefefe0202020202020203, carry 0x1)/(0xfffffffffffffffdfefefefefefefefe0202020202020203, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffffffffffdfefefefefefefefe0202020202020203":"1":"fffffffffffffffdfefefefefefefefe0202020202020203":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffffffffffdfefefefefefefefe0202020202020203":"1":"fffffffffffffffdfefefefefefefefe0202020202020203":"1" mbedtls_mpi_core_mla #2091: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #2092: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x3 = (0x2ffffffffffffffffffffffffffffffff, carry 0x1)/(0x2ffffffffffffffffffffffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"3":"2ffffffffffffffffffffffffffffffff":"1":"2ffffffffffffffffffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"3":"2ffffffffffffffffffffffffffffffff":"1":"2ffffffffffffffffffffffffffffffff":"1" mbedtls_mpi_core_mla #2093: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xfe = (0xfdffffffffffffffffffffffffffffffff, carry 0x1)/(0xfdffffffffffffffffffffffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fe":"fdffffffffffffffffffffffffffffffff":"1":"fdffffffffffffffffffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fe":"fdffffffffffffffffffffffffffffffff":"1":"fdffffffffffffffffffffffffffffffff":"1" mbedtls_mpi_core_mla #2094: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xff = (0xfeffffffffffffffffffffffffffffffff, carry 0x1)/(0xfeffffffffffffffffffffffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ff":"feffffffffffffffffffffffffffffffff":"1":"feffffffffffffffffffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ff":"feffffffffffffffffffffffffffffffff":"1":"feffffffffffffffffffffffffffffffff":"1" mbedtls_mpi_core_mla #2095: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xffff = (0xfffeffffffffffffffffffffffffffffffff, carry 0x1)/(0xfffeffffffffffffffffffffffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffff":"fffeffffffffffffffffffffffffffffffff":"1":"fffeffffffffffffffffffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffff":"fffeffffffffffffffffffffffffffffffff":"1":"fffeffffffffffffffffffffffffffffffff":"1" mbedtls_mpi_core_mla #2096: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x10000 = (0xffffffffffffffffffffffffffffffffffff, carry 0x1)/(0xffffffffffffffffffffffffffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"10000":"ffffffffffffffffffffffffffffffffffff":"1":"ffffffffffffffffffffffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"10000":"ffffffffffffffffffffffffffffffffffff":"1":"ffffffffffffffffffffffffffffffffffff":"1" mbedtls_mpi_core_mla #2097: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xffffffff = (0xfffffffeffffffffffffffffffffffffffffffff, carry 0x1)/(0xfffffffeffffffffffffffffffffffffffffffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffffffff":"fffffffeffffffffffffffffffffffffffffffff":"1":"fffffffeffffffffffffffffffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffffffff":"fffffffeffffffffffffffffffffffffffffffff":"1":"fffffffeffffffffffffffffffffffffffffffff":"1" mbedtls_mpi_core_mla #2098: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffff, carry 0x1)/(0xffffffffffffffffffffffffffffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"100000000":"ffffffffffffffffffffffffffffffffffffffff":"1":"ffffffffffffffffffffffffffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"100000000":"ffffffffffffffffffffffffffffffffffffffff":"1":"ffffffffffffffffffffffffffffffffffffffff":"1" mbedtls_mpi_core_mla #2099: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff, carry 0x1)/(0x7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff":"1":"7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff":"1":"7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff":"1" mbedtls_mpi_core_mla #2100: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x7fffffffffffffffffffffffffffffffffffffffffffffff, carry 0x1)/(0x7fffffffffffffffffffffffffffffffffffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"8000000000000000":"7fffffffffffffffffffffffffffffffffffffffffffffff":"1":"7fffffffffffffffffffffffffffffffffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"8000000000000000":"7fffffffffffffffffffffffffffffffffffffffffffffff":"1":"7fffffffffffffffffffffffffffffffffffffffffffffff":"1" mbedtls_mpi_core_mla #2101: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffffffffffdffffffffffffffffffffffffffffffff, carry 0x1)/(0xfffffffffffffffdffffffffffffffffffffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffffffffffdffffffffffffffffffffffffffffffff":"1":"fffffffffffffffdffffffffffffffffffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffffffffffdffffffffffffffffffffffffffffffff":"1":"fffffffffffffffdffffffffffffffffffffffffffffffff":"1" mbedtls_mpi_core_mla #2102: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #2103: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369ccf, carry 0x1)/(0x369d0369b20369cd0369d0369b20369ccf, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369ccf":"1":"369d0369b20369cd0369d0369b20369ccf":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369ccf":"1":"369d0369b20369cd0369d0369b20369ccf":"1" mbedtls_mpi_core_mla #2104: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a765321f, carry 0x1)/(0x120fedcb9f8a76532320fedcb9f8a765321f, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765321f":"1":"120fedcb9f8a76532320fedcb9f8a765321f":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765321f":"1":"120fedcb9f8a76532320fedcb9f8a765321f":"1" mbedtls_mpi_core_mla #2105: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b222110f, carry 0x1)/(0x12222222181b2221122222222181b222110f, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b222110f":"1":"12222222181b2221122222222181b222110f":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b222110f":"1":"12222222181b2221122222222181b222110f":"1" mbedtls_mpi_core_mla #2106: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433210f, carry 0x1)/(0x123444443a333d433334444443a333d433210f, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433210f":"1":"123444443a333d433334444443a333d433210f":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433210f":"1":"123444443a333d433334444443a333d433210f":"1" mbedtls_mpi_core_mla #2107: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdeefffff, carry 0x1)/(0x1234567890abcdef01234567890abcdeefffff, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdeefffff":"1":"1234567890abcdef01234567890abcdeefffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdeefffff":"1":"1234567890abcdef01234567890abcdeefffff":"1" mbedtls_mpi_core_mla #2108: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x123456787e7777767077777887e7777766f543210f, carry 0x1)/(0x123456787e7777767077777887e7777766f543210f, carry 0x1) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"123456787e7777767077777887e7777766f543210f":"1":"123456787e7777767077777887e7777766f543210f":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"123456787e7777767077777887e7777766f543210f":"1":"123456787e7777767077777887e7777766f543210f":"1" mbedtls_mpi_core_mla #2109: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x1234567890abcdef01234567890abcdeefffffffff, carry 0x1)/(0x1234567890abcdef01234567890abcdeefffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdeefffffffff":"1":"1234567890abcdef01234567890abcdeefffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdeefffffffff":"1":"1234567890abcdef01234567890abcdeefffffffff":"1" mbedtls_mpi_core_mla #2110: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f, carry 0x1)/(0x91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f":"1":"91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f":"1":"91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f":"1" mbedtls_mpi_core_mla #2111: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff, carry 0x1)/(0x91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"1":"91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"1":"91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"1" mbedtls_mpi_core_mla #2112: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0x1234567890abcdeedcba987667b32100edb97530edea86421f, carry 0x1)/(0x1234567890abcdeedcba987667b32100edb97530edea86421f, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdeedcba987667b32100edb97530edea86421f":"1":"1234567890abcdeedcba987667b32100edb97530edea86421f":"1" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdeedcba987667b32100edb97530edea86421f":"1":"1234567890abcdeedcba987667b32100edb97530edea86421f":"1" mbedtls_mpi_core_mla #2113: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #2114: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 0x3)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 0x3) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"3" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"3" mbedtls_mpi_core_mla #2115: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0xfe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0xfe) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe" mbedtls_mpi_core_mla #2116: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0xff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0xff) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ff" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ff" mbedtls_mpi_core_mla #2117: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0xffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0xffff) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff" mbedtls_mpi_core_mla #2118: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff, carry 0x10000)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff, carry 0x10000) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"10000" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"10000" mbedtls_mpi_core_mla #2119: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0xffffffff) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff" mbedtls_mpi_core_mla #2120: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff, carry 0x100000000)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff, carry 0x100000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"100000000" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"100000000" mbedtls_mpi_core_mla #2121: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080, carry 0x7f7f7f7f7f7f7f7f)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080, carry 0x7f7f7f7f7f7f7f7f) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080":"7f7f7f7f7f7f7f7f" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080":"7f7f7f7f7f7f7f7f" mbedtls_mpi_core_mla #2122: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff, carry 0x8000000000000000)/(0xffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff, carry 0x8000000000000000) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"8000000000000000" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"8000000000000000" mbedtls_mpi_core_mla #2123: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001, carry 0xfffffffffffffffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001, carry 0xfffffffffffffffe) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"fffffffffffffffe" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"fffffffffffffffe" mbedtls_mpi_core_mla #2124: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #2125: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf, carry 0x0)/(0x369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf":"0":"369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf":"0":"369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf":"0" mbedtls_mpi_core_mla #2126: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f, carry 0x0)/(0x120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f":"0":"120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f":"0":"120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f":"0" mbedtls_mpi_core_mla #2127: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222322181b2221122222222181b2221122222222181b2221122222222181b222110f, carry 0x0)/(0x12222322181b2221122222222181b2221122222222181b2221122222222181b222110f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222322181b2221122222222181b2221122222222181b2221122222222181b222110f":"0":"12222322181b2221122222222181b2221122222222181b2221122222222181b222110f":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222322181b2221122222222181b2221122222222181b2221122222222181b222110f":"0":"12222322181b2221122222222181b2221122222222181b2221122222222181b222110f":"0" mbedtls_mpi_core_mla #2128: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f, carry 0x0)/(0x123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f":"0":"123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f":"0":"123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f":"0" mbedtls_mpi_core_mla #2129: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff, carry 0x0)/(0x1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff":"0":"1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff":"0":"1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff":"0" mbedtls_mpi_core_mla #2130: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f, carry 0x1234)/(0x123456787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f":"1234":"123456787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f":"1234":"123456787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f":"0" mbedtls_mpi_core_mla #2131: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff, carry 0x1234)/(0x1234567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff":"1234":"1234567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff":"1234":"1234567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff":"0" mbedtls_mpi_core_mla #2132: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f, carry 0x91107edbd82)/(0x7edbd82bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f, carry 0x911) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f":"91107edbd82":"7edbd82bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f":"911" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f":"91107edbd82":"7edbd82bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f":"911" mbedtls_mpi_core_mla #2133: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff, carry 0x91a2b3c4855)/(0x2b3c4855e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff, carry 0x91a) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"91a2b3c4855":"2b3c4855e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"91a" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"91a2b3c4855":"2b3c4855e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"91a" mbedtls_mpi_core_mla #2134: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f, carry 0x1234567890ab)/(0x567890abcdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f, carry 0x1234) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f":"1234567890ab":"567890abcdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f":"1234" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f":"1234567890ab":"567890abcdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f":"1234" mbedtls_mpi_core_mla #2135: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" mbedtls_mpi_core_mla #2136: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380":"0" mbedtls_mpi_core_mla #2137: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9":"0" mbedtls_mpi_core_mla #2138: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4":"0" mbedtls_mpi_core_mla #2139: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4":"0" mbedtls_mpi_core_mla #2140: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff, carry 0x0) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff":"0" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff":"0" mbedtls_mpi_core_mla #2141: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4, carry 0x4) -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4":"4" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4":"4" mbedtls_mpi_core_mla #2142: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff, carry 0x4) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff":"4" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff":"4" mbedtls_mpi_core_mla #2143: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954, carry 0x26d473ca9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954":"26d473ca9" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954":"26d473ca9" mbedtls_mpi_core_mla #2144: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff, carry 0x26fb9683d) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff":"26fb9683d" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff":"26fb9683d" mbedtls_mpi_core_mla #2145: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9, carry 0x4df72d07b) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9":"4df72d07b" +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9":"4df72d07b" mbedtls_mpi_core_mla #2146: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2147: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2148: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2149: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2150: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2151: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2152: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2153: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2154: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2155: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2156: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2157: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2158: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":"0" mbedtls_mpi_core_mla #2159: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":"0" mbedtls_mpi_core_mla #2160: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":"0" mbedtls_mpi_core_mla #2161: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":"0" mbedtls_mpi_core_mla #2162: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":"0" mbedtls_mpi_core_mla #2163: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":"0" mbedtls_mpi_core_mla #2164: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":"0" mbedtls_mpi_core_mla #2165: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f":"0" mbedtls_mpi_core_mla #2166: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":"0" mbedtls_mpi_core_mla #2167: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":"0" mbedtls_mpi_core_mla #2168: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2169: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea":"0" mbedtls_mpi_core_mla #2170: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4":"0" mbedtls_mpi_core_mla #2171: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2":"0" mbedtls_mpi_core_mla #2172: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2":"0" mbedtls_mpi_core_mla #2173: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0":"0" mbedtls_mpi_core_mla #2174: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2":"0" mbedtls_mpi_core_mla #2175: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0":"0" mbedtls_mpi_core_mla #2176: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2":"0":"1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2":"0":"1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2":"0" mbedtls_mpi_core_mla #2177: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0":"0" mbedtls_mpi_core_mla #2178: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4":"0":"1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4":"0":"1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4":"0" mbedtls_mpi_core_mla #2179: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2180: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"3":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"3":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed":"0" mbedtls_mpi_core_mla #2181: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2":"0" mbedtls_mpi_core_mla #2182: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1":"0" mbedtls_mpi_core_mla #2183: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1":"0" mbedtls_mpi_core_mla #2184: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0":"0" mbedtls_mpi_core_mla #2185: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1":"0" mbedtls_mpi_core_mla #2186: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0" mbedtls_mpi_core_mla #2187: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71, carry 0x0)/(0x1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71":"0":"1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71":"0":"1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71":"0" mbedtls_mpi_core_mla #2188: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0":"0" mbedtls_mpi_core_mla #2189: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2":"0" mbedtls_mpi_core_mla #2190: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2191: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0":"0" mbedtls_mpi_core_mla #2192: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0":"0" mbedtls_mpi_core_mla #2193: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0":"0" mbedtls_mpi_core_mla #2194: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0":"0" mbedtls_mpi_core_mla #2195: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0":"0" mbedtls_mpi_core_mla #2196: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0" mbedtls_mpi_core_mla #2197: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":"0" mbedtls_mpi_core_mla #2198: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0":"0" mbedtls_mpi_core_mla #2199: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"8000000000000000":"1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"8000000000000000":"1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2200: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0":"0" mbedtls_mpi_core_mla #2201: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2202: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0":"0" mbedtls_mpi_core_mla #2203: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0":"0" mbedtls_mpi_core_mla #2204: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0":"0" mbedtls_mpi_core_mla #2205: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0":"0" mbedtls_mpi_core_mla #2206: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0":"0" mbedtls_mpi_core_mla #2207: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0":"0" mbedtls_mpi_core_mla #2208: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"100000000":"1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"100000000":"1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2209: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0":"0":"1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0":"0":"1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0":"0" mbedtls_mpi_core_mla #2210: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2211: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0":"0" mbedtls_mpi_core_mla #2212: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2213: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"3":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed":"0":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"3":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed":"0":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed":"0" mbedtls_mpi_core_mla #2214: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fe":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fe":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2":"0" mbedtls_mpi_core_mla #2215: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1":"0":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1":"0":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1":"0" mbedtls_mpi_core_mla #2216: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffff":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1":"0":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffff":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1":"0":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1":"0" mbedtls_mpi_core_mla #2217: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"10000":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"10000":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0":"0" mbedtls_mpi_core_mla #2218: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffffffff":"1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffffffff":"1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1":"0" mbedtls_mpi_core_mla #2219: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0":"0" mbedtls_mpi_core_mla #2220: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71, carry 0x0)/(0x1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0" mbedtls_mpi_core_mla #2221: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0":"0" mbedtls_mpi_core_mla #2222: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2":"0":"1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2":"0":"1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2":"0" mbedtls_mpi_core_mla #2223: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2224: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0":"0" mbedtls_mpi_core_mla #2225: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0":"0" mbedtls_mpi_core_mla #2226: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0":"0" mbedtls_mpi_core_mla #2227: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0":"0" mbedtls_mpi_core_mla #2228: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"10000":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"10000":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2229: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0":"0" mbedtls_mpi_core_mla #2230: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"100000000":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"100000000":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2231: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0":"0" mbedtls_mpi_core_mla #2232: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2233: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0":"0" mbedtls_mpi_core_mla #2234: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2235: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0":"0" mbedtls_mpi_core_mla #2236: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110":"0":"1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110":"0":"1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110":"0" mbedtls_mpi_core_mla #2237: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000":"0":"1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000":"0":"1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000":"0" mbedtls_mpi_core_mla #2238: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000":"0" mbedtls_mpi_core_mla #2239: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0":"0" mbedtls_mpi_core_mla #2240: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffffffff":"1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000":"0":"1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffffffff":"1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000":"0":"1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000":"0" mbedtls_mpi_core_mla #2241: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0":"0" mbedtls_mpi_core_mla #2242: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800, carry 0x0)/(0x1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800":"0":"1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800":"0":"1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800":"0" mbedtls_mpi_core_mla #2243: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"8000000000000000":"1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"8000000000000000":"1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0":"0" mbedtls_mpi_core_mla #2244: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110, carry 0x0)/(0x1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110":"0":"1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110":"0":"1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110":"0" mbedtls_mpi_core_mla #2245: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2246: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea, carry 0x0)/(0x1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea":"0":"1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea":"0":"1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea":"0" mbedtls_mpi_core_mla #2247: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4, carry 0x0)/(0x1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4":"0":"1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4":"0":"1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4":"0" mbedtls_mpi_core_mla #2248: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0x1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2, carry 0x0)/(0x1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2":"0":"1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2":"0":"1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2":"0" mbedtls_mpi_core_mla #2249: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0x1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2, carry 0x0)/(0x1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2":"0":"1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2":"0":"1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2":"0" mbedtls_mpi_core_mla #2250: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0x1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0, carry 0x0)/(0x1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0":"0":"1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0":"0":"1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0":"0" mbedtls_mpi_core_mla #2251: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0x1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2, carry 0x0)/(0x1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2":"0":"1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2":"0":"1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2":"0" mbedtls_mpi_core_mla #2252: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0x1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0, carry 0x0)/(0x1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0":"0":"1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0":"0":"1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0":"0" mbedtls_mpi_core_mla #2253: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2, carry 0x0)/(0x1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2":"0":"1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2":"0":"1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2":"0" mbedtls_mpi_core_mla #2254: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0x1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0, carry 0x0)/(0x1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0":"0":"1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0":"0":"1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0":"0" mbedtls_mpi_core_mla #2255: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0x1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4, carry 0x0)/(0x1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4":"0":"1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4":"0":"1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4":"0" mbedtls_mpi_core_mla #2256: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2257: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 = (0x1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"3":"1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"3":"1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2258: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe = (0x1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fe":"1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fe":"1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2259: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff = (0x1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ff":"1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ff":"1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2260: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff = (0x1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffff":"1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffff":"1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2261: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 = (0x1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"10000":"1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"10000":"1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2262: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff = (0x1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2263: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 = (0x1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2264: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0":"0":"1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0":"0":"1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2265: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2266: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0x1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0":"0":"1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0":"0":"1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2267: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2268: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0, carry 0x0)/(0x1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0":"0":"1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0":"0":"1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0":"0" mbedtls_mpi_core_mla #2269: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110, carry 0x0)/(0x1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110":"0":"1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110":"0":"1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110":"0" mbedtls_mpi_core_mla #2270: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000, carry 0x0)/(0x1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000":"0" mbedtls_mpi_core_mla #2271: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000":"0" mbedtls_mpi_core_mla #2272: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0":"0" mbedtls_mpi_core_mla #2273: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000, carry 0x0)/(0x1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000":"0":"1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000":"0":"1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000":"0" mbedtls_mpi_core_mla #2274: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0, carry 0x0)/(0x1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0":"0":"1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0":"0":"1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0":"0" mbedtls_mpi_core_mla #2275: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800, carry 0x0)/(0x1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800":"0":"1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800":"0":"1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800":"0" mbedtls_mpi_core_mla #2276: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0, carry 0x0)/(0x1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"0":"1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"0":"1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"0" mbedtls_mpi_core_mla #2277: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0x1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x0)/(0x1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110":"0":"1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110":"0":"1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110":"0" mbedtls_mpi_core_mla #2278: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2279: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed, carry 0x0)/(0x1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"0":"1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"0":"1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"0" mbedtls_mpi_core_mla #2280: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2, carry 0x0)/(0x1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"0":"1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"0":"1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"0" mbedtls_mpi_core_mla #2281: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1, carry 0x0)/(0x1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"0":"1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"0":"1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"0" mbedtls_mpi_core_mla #2282: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1, carry 0x0)/(0x11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"0":"11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"0":"11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"0" mbedtls_mpi_core_mla #2283: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0, carry 0x0)/(0x11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"0":"11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"0":"11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"0" mbedtls_mpi_core_mla #2284: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1, carry 0x1)/(0x100001233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"1":"100001233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"1":"100001233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"0" mbedtls_mpi_core_mla #2285: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0, carry 0x1)/(0x100001234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"1":"100001234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"1":"100001234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"0" mbedtls_mpi_core_mla #2286: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f":"7f7f7f7f7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f":"7f7f7f7f7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71":"0" mbedtls_mpi_core_mla #2287: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0, carry 0x80000000)/(0x8000000000001234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"80000000":"8000000000001234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"80000000":"8000000000001234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"0" mbedtls_mpi_core_mla #2288: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2, carry 0x100000000)/(0x1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2, carry 0x1) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"100000000":"1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"1" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"100000000":"1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"1" mbedtls_mpi_core_mla #2289: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2290: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0, carry 0x0)/(0x48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0":"0":"48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0":"0":"48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0":"0" mbedtls_mpi_core_mla #2291: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221110, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0" mbedtls_mpi_core_mla #2292: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000":"0" mbedtls_mpi_core_mla #2293: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0" mbedtls_mpi_core_mla #2294: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0, carry 0x0)/(0x123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0":"0":"123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0":"0":"123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0":"0" mbedtls_mpi_core_mla #2295: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"0" mbedtls_mpi_core_mla #2296: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x5678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0, carry 0x1234)/(0x12345678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"5678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0":"1234":"12345678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"5678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0":"1234":"12345678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0":"0" mbedtls_mpi_core_mla #2297: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800, carry 0x91107edbd82)/(0x7edbd82bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800, carry 0x911) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800":"91107edbd82":"7edbd82bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800":"911" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800":"91107edbd82":"7edbd82bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800":"911" mbedtls_mpi_core_mla #2298: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0, carry 0x91a2b3c4855)/(0x2b3c4855e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0, carry 0x91a) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"91a" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"91a" mbedtls_mpi_core_mla #2299: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234567890ab)/(0x567890abcdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110":"1234567890ab":"567890abcdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110":"1234" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110":"1234567890ab":"567890abcdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110":"1234" mbedtls_mpi_core_mla #2300: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" mbedtls_mpi_core_mla #2301: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271":"0" mbedtls_mpi_core_mla #2302: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a":"0" mbedtls_mpi_core_mla #2303: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5":"0" mbedtls_mpi_core_mla #2304: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5":"0" mbedtls_mpi_core_mla #2305: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0, carry 0x0) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0":"0" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0":"0" mbedtls_mpi_core_mla #2306: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5, carry 0x4) -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5":"4" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5":"4" mbedtls_mpi_core_mla #2307: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0, carry 0x4) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0":"4" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0":"4" mbedtls_mpi_core_mla #2308: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845, carry 0x26d473ca9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845":"26d473ca9" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845":"26d473ca9" mbedtls_mpi_core_mla #2309: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0, carry 0x26fb9683d) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0":"26fb9683d" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0":"26fb9683d" mbedtls_mpi_core_mla #2310: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a, carry 0x4df72d07b) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a":"4df72d07b" +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a":"4df72d07b" mbedtls_mpi_core_mla #2311: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2312: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2313: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2314: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2315: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2316: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2317: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2318: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2319: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2320: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2321: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2322: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2323: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":"0" mbedtls_mpi_core_mla #2324: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":"0" mbedtls_mpi_core_mla #2325: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":"0" mbedtls_mpi_core_mla #2326: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":"0" mbedtls_mpi_core_mla #2327: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":"0" mbedtls_mpi_core_mla #2328: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":"0" mbedtls_mpi_core_mla #2329: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":"0" mbedtls_mpi_core_mla #2330: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa":"0" mbedtls_mpi_core_mla #2331: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":"0" mbedtls_mpi_core_mla #2332: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":"0" mbedtls_mpi_core_mla #2333: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2334: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125":"0" mbedtls_mpi_core_mla #2335: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f":"0" mbedtls_mpi_core_mla #2336: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d":"0" mbedtls_mpi_core_mla #2337: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d":"0" mbedtls_mpi_core_mla #2338: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b":"0" mbedtls_mpi_core_mla #2339: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d":"0" mbedtls_mpi_core_mla #2340: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b":"0" mbedtls_mpi_core_mla #2341: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d":"0" mbedtls_mpi_core_mla #2342: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b":"0" mbedtls_mpi_core_mla #2343: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f":"0" mbedtls_mpi_core_mla #2344: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2345: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128":"0" mbedtls_mpi_core_mla #2346: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d":"0" mbedtls_mpi_core_mla #2347: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c":"0" mbedtls_mpi_core_mla #2348: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c":"0" mbedtls_mpi_core_mla #2349: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b":"0" mbedtls_mpi_core_mla #2350: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c":"0" mbedtls_mpi_core_mla #2351: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0" mbedtls_mpi_core_mla #2352: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac":"0" mbedtls_mpi_core_mla #2353: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b":"0" mbedtls_mpi_core_mla #2354: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d":"0" mbedtls_mpi_core_mla #2355: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2356: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b":"0" mbedtls_mpi_core_mla #2357: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b":"0" mbedtls_mpi_core_mla #2358: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b":"0" mbedtls_mpi_core_mla #2359: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b":"0" mbedtls_mpi_core_mla #2360: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b":"0" mbedtls_mpi_core_mla #2361: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0" mbedtls_mpi_core_mla #2362: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":"0" mbedtls_mpi_core_mla #2363: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b":"0" mbedtls_mpi_core_mla #2364: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2365: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b":"0" mbedtls_mpi_core_mla #2366: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2367: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b":"0" mbedtls_mpi_core_mla #2368: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b":"0" mbedtls_mpi_core_mla #2369: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b":"0" mbedtls_mpi_core_mla #2370: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b":"0" mbedtls_mpi_core_mla #2371: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b":"0" mbedtls_mpi_core_mla #2372: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b":"0" mbedtls_mpi_core_mla #2373: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2374: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b":"0" mbedtls_mpi_core_mla #2375: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2376: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b":"0" mbedtls_mpi_core_mla #2377: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2378: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128":"0" mbedtls_mpi_core_mla #2379: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d":"0" mbedtls_mpi_core_mla #2380: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c":"0" mbedtls_mpi_core_mla #2381: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c":"0" mbedtls_mpi_core_mla #2382: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b":"0" mbedtls_mpi_core_mla #2383: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c":"0" mbedtls_mpi_core_mla #2384: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b":"0" mbedtls_mpi_core_mla #2385: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac":"0" mbedtls_mpi_core_mla #2386: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b":"0" mbedtls_mpi_core_mla #2387: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d":"0" mbedtls_mpi_core_mla #2388: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2389: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b":"0" mbedtls_mpi_core_mla #2390: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b":"0" mbedtls_mpi_core_mla #2391: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b":"0" mbedtls_mpi_core_mla #2392: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b":"0" mbedtls_mpi_core_mla #2393: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b":"0" mbedtls_mpi_core_mla #2394: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b":"0" mbedtls_mpi_core_mla #2395: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2396: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b":"0" mbedtls_mpi_core_mla #2397: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2398: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b":"0" mbedtls_mpi_core_mla #2399: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2400: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb":"0" mbedtls_mpi_core_mla #2401: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b":"0" mbedtls_mpi_core_mla #2402: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b":"0" mbedtls_mpi_core_mla #2403: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b":"0" mbedtls_mpi_core_mla #2404: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b":"0" mbedtls_mpi_core_mla #2405: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b":"0" mbedtls_mpi_core_mla #2406: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b":"0" mbedtls_mpi_core_mla #2407: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b":"0" mbedtls_mpi_core_mla #2408: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b":"0" mbedtls_mpi_core_mla #2409: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b":"0" mbedtls_mpi_core_mla #2410: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2411: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25":"0" mbedtls_mpi_core_mla #2412: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f":"0" mbedtls_mpi_core_mla #2413: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d":"0" mbedtls_mpi_core_mla #2414: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d":"0" mbedtls_mpi_core_mla #2415: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b":"0" mbedtls_mpi_core_mla #2416: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d":"0" mbedtls_mpi_core_mla #2417: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b":"0" mbedtls_mpi_core_mla #2418: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d":"0" mbedtls_mpi_core_mla #2419: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b":"0" mbedtls_mpi_core_mla #2420: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f":"0" mbedtls_mpi_core_mla #2421: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2422: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2423: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2424: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2425: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2426: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2427: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2428: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2429: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2430: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2431: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2432: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2433: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb":"0" mbedtls_mpi_core_mla #2434: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b":"0" mbedtls_mpi_core_mla #2435: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b":"0" mbedtls_mpi_core_mla #2436: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b":"0" mbedtls_mpi_core_mla #2437: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0" mbedtls_mpi_core_mla #2438: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b":"0" mbedtls_mpi_core_mla #2439: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0" mbedtls_mpi_core_mla #2440: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b":"0" mbedtls_mpi_core_mla #2441: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0" mbedtls_mpi_core_mla #2442: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b":"0" mbedtls_mpi_core_mla #2443: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2444: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"0" mbedtls_mpi_core_mla #2445: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"0" mbedtls_mpi_core_mla #2446: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"0" mbedtls_mpi_core_mla #2447: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"0" mbedtls_mpi_core_mla #2448: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"0" mbedtls_mpi_core_mla #2449: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"0" mbedtls_mpi_core_mla #2450: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"0" mbedtls_mpi_core_mla #2451: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac":"0" mbedtls_mpi_core_mla #2452: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"0" mbedtls_mpi_core_mla #2453: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"0" mbedtls_mpi_core_mla #2454: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2455: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb":"0" mbedtls_mpi_core_mla #2456: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b":"0" mbedtls_mpi_core_mla #2457: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b":"0" mbedtls_mpi_core_mla #2458: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b":"0" mbedtls_mpi_core_mla #2459: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0" mbedtls_mpi_core_mla #2460: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b":"0" mbedtls_mpi_core_mla #2461: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0" mbedtls_mpi_core_mla #2462: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b":"0" mbedtls_mpi_core_mla #2463: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0" mbedtls_mpi_core_mla #2464: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b, carry 0x0) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b":"0" mbedtls_mpi_core_mla #2465: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" mbedtls_mpi_core_mla #2466: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0x137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac, carry 0x0)/(0x137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac":"0":"137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac":"0":"137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac":"0" mbedtls_mpi_core_mla #2467: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0" mbedtls_mpi_core_mla #2468: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00":"0" mbedtls_mpi_core_mla #2469: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0" mbedtls_mpi_core_mla #2470: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b, carry 0x0)/(0x4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b, carry 0x0) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b":"0":"4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b":"0" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b":"0":"4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b":"0" mbedtls_mpi_core_mla #2471: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000, carry 0x4) -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4" mbedtls_mpi_core_mla #2472: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b, carry 0x4)/(0xdf72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b, carry 0x4) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b":"4":"df72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b":"4" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b":"4":"df72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b":"4" mbedtls_mpi_core_mla #2473: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80, carry 0x26d473ca9)/(0xd441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80, carry 0x26d473ca9) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80":"26d473ca9":"d441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80":"26d473ca9" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80":"26d473ca9":"d441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80":"26d473ca9" mbedtls_mpi_core_mla #2474: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b, carry 0x26fb9683d)/(0xa5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b, carry 0x26fb9683d) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b":"26fb9683d":"a5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b":"26fb9683d" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b":"26fb9683d":"a5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b":"26fb9683d" mbedtls_mpi_core_mla #2475: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5, carry 0x4df72d07b)/(0x4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5, carry 0x4df72d07b) depends_on:MBEDTLS_HAVE_INT64 -mbedtls_mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5":"4df72d07b":"4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5":"4df72d07b" +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5":"4df72d07b":"4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5":"4df72d07b" mbedtls_mpi_montg_init #1 -mbedtls_mpi_montg_init:"000000000000001d":"cb08d3dcb08d3dcb" +mpi_montg_init:"000000000000001d":"cb08d3dcb08d3dcb" mbedtls_mpi_montg_init #2 -mbedtls_mpi_montg_init:"0000000000000009":"71c71c71c71c71c7" +mpi_montg_init:"0000000000000009":"71c71c71c71c71c7" mbedtls_mpi_montg_init #3 -mbedtls_mpi_montg_init:"000000000001869f":"34d76bc8e5e3eaa1" +mpi_montg_init:"000000000001869f":"34d76bc8e5e3eaa1" mbedtls_mpi_montg_init #4 -mbedtls_mpi_montg_init:"00000000000080000000000000000001":"ffffffffffffffff" +mpi_montg_init:"00000000000080000000000000000001":"ffffffffffffffff" mbedtls_mpi_montg_init #5 -mbedtls_mpi_montg_init:"0000000000a1ffffffffffffffffffff":"0000000000000001" +mpi_montg_init:"0000000000a1ffffffffffffffffffff":"0000000000000001" mbedtls_mpi_montg_init #6 -mbedtls_mpi_montg_init:"00000000000257ffffffffffffffffff":"0000000000000001" +mpi_montg_init:"00000000000257ffffffffffffffffff":"0000000000000001" mbedtls_mpi_montg_init #7 -mbedtls_mpi_montg_init:"b91ba63180c726fbd57786f27f1ede97a3b40c59a7fcfb5898f076e9af57028d":"32edc7e1ac2e6fbb" +mpi_montg_init:"b91ba63180c726fbd57786f27f1ede97a3b40c59a7fcfb5898f076e9af57028d":"32edc7e1ac2e6fbb" mbedtls_mpi_montg_init #8 -mbedtls_mpi_montg_init:"b3a119602ee213cde28581ecd892e0f592a338655dce4ca88054b3d124d0e561":"e41cfb909805815f" +mpi_montg_init:"b3a119602ee213cde28581ecd892e0f592a338655dce4ca88054b3d124d0e561":"e41cfb909805815f" mbedtls_mpi_montg_init #9 -mbedtls_mpi_montg_init:"0284139ea19c139ebe09a8111926aaa39a2c2be12ed487a809d3cb5bc55854725b4cdcb5734c58f90b2f60d99cc1950cdbc8d651793e93c9c6f0ead752500a32c56c62082912b66132b2a6aa42ada923e1ad22ceb7ba0123":"c02e2164b293c975" +mpi_montg_init:"0284139ea19c139ebe09a8111926aaa39a2c2be12ed487a809d3cb5bc55854725b4cdcb5734c58f90b2f60d99cc1950cdbc8d651793e93c9c6f0ead752500a32c56c62082912b66132b2a6aa42ada923e1ad22ceb7ba0123":"c02e2164b293c975" mbedtls_mpi_montg_init #10 -mbedtls_mpi_montg_init:"00000000000000011a9351d2d32ccd568e75bf8b4ebbb2a36be691b55832edac662ff79803df8af525fba453068be16ac3920bcc1b468f8f7fe786e0fa4ecbabcad31e5e3b05def802eb8600deaf11ef452487db878df20a80606e4bb6a163b83895d034cc8b53dbcd005be42ffdd2ce99bed06089a0b79d":"ffec8978c055794b" +mpi_montg_init:"00000000000000011a9351d2d32ccd568e75bf8b4ebbb2a36be691b55832edac662ff79803df8af525fba453068be16ac3920bcc1b468f8f7fe786e0fa4ecbabcad31e5e3b05def802eb8600deaf11ef452487db878df20a80606e4bb6a163b83895d034cc8b53dbcd005be42ffdd2ce99bed06089a0b79d":"ffec8978c055794b" mbedtls_mpi_montg_init #11 -mbedtls_mpi_montg_init:"eeaf0ab9adb38dd69c33f80afa8fc5e86072618775ff3c0b9ea2314c9c256576d674df7496ea81d3383b4813d692c6e0e0d5d8e250b98be48e495c1d6089dad15dc7d7b46154d6b6ce8ef4ad69b15d4982559b297bcf1885c529f566660e57ec68edbc3c05726cc02fd4cbf4976eaa9afd5138fe8376435b9fc61d2fc0eb06e3":"7b07a0b0379b9135" +mpi_montg_init:"eeaf0ab9adb38dd69c33f80afa8fc5e86072618775ff3c0b9ea2314c9c256576d674df7496ea81d3383b4813d692c6e0e0d5d8e250b98be48e495c1d6089dad15dc7d7b46154d6b6ce8ef4ad69b15d4982559b297bcf1885c529f566660e57ec68edbc3c05726cc02fd4cbf4976eaa9afd5138fe8376435b9fc61d2fc0eb06e3":"7b07a0b0379b9135" mbedtls_mpi_montg_init #12 -mbedtls_mpi_montg_init:"00000007a364ab3de755f924642bd5273524234f78395da1ed9098f39af4fe248288b0cb7f1c27214588969479d7dc9f0d327b5544dd4c095aa1fa271df421fe9ee460855cc8423d223e2c85dc793f6babdca7fc804ea1f408f867db053bfd98c45085ea5d805c78d2863bacdfcaf4c6147ebb74a9056045074785714c0b84ed":"8f54b233c070871b" +mpi_montg_init:"00000007a364ab3de755f924642bd5273524234f78395da1ed9098f39af4fe248288b0cb7f1c27214588969479d7dc9f0d327b5544dd4c095aa1fa271df421fe9ee460855cc8423d223e2c85dc793f6babdca7fc804ea1f408f867db053bfd98c45085ea5d805c78d2863bacdfcaf4c6147ebb74a9056045074785714c0b84ed":"8f54b233c070871b" mbedtls_mpi_montg_init #13 -mbedtls_mpi_montg_init:"e2df85c83ee8463b3af26805791cc0b1ba1af89564e887a63d5ba18ea72fb593b664cf8ace78241ea3109b7644510e02324a5c1e9a85daada3c383759d7678ce8d8886b51a3237dc84b543de4f843c77fc77ba08ef90e7e96ba622478f6b96daa3e9b8511f36279fb0120ef93bad2090e7878346fe4ae29ad61be48b6835e8407d0849422e05c7a4d1e02322f2675056d73d4c5a1ab376bfaccfd61ff7d64b715c9525a7ed8dcda1144f8722c30d12ba3d95221d897edc825a1598a645e2c457":"b777a905d9239899" +mpi_montg_init:"e2df85c83ee8463b3af26805791cc0b1ba1af89564e887a63d5ba18ea72fb593b664cf8ace78241ea3109b7644510e02324a5c1e9a85daada3c383759d7678ce8d8886b51a3237dc84b543de4f843c77fc77ba08ef90e7e96ba622478f6b96daa3e9b8511f36279fb0120ef93bad2090e7878346fe4ae29ad61be48b6835e8407d0849422e05c7a4d1e02322f2675056d73d4c5a1ab376bfaccfd61ff7d64b715c9525a7ed8dcda1144f8722c30d12ba3d95221d897edc825a1598a645e2c457":"b777a905d9239899" mbedtls_mpi_montg_init #14 -mbedtls_mpi_montg_init:"baea2d65939296fc2536f18f2a4042a741f33088ecd5000e76c67a466e7a1e696f8ee9a15497168b3a2b597799dc9475909ebbc64b96f233430c6aa3e4a86e9352b0230081502da09ef41dc0a164a1c6a31bd1338e359a28c78ef50c89f06a46b46a27d7245bba7468334625687201d62ef084de4c5190dfe70c14a318204492de6edd138e14e9337fda739dcadd0212302db7770de28d8c5c79b6a6b5f927e656e157cd7e41204ec39731fe3608ecd4b885a194647fe7f02b74639cc76cdf03":"827ef0810f71fc55" +mpi_montg_init:"baea2d65939296fc2536f18f2a4042a741f33088ecd5000e76c67a466e7a1e696f8ee9a15497168b3a2b597799dc9475909ebbc64b96f233430c6aa3e4a86e9352b0230081502da09ef41dc0a164a1c6a31bd1338e359a28c78ef50c89f06a46b46a27d7245bba7468334625687201d62ef084de4c5190dfe70c14a318204492de6edd138e14e9337fda739dcadd0212302db7770de28d8c5c79b6a6b5f927e656e157cd7e41204ec39731fe3608ecd4b885a194647fe7f02b74639cc76cdf03":"827ef0810f71fc55" mbedtls_mpi_montg_init #15 -mbedtls_mpi_montg_init:"bf741f75e28a44e271cf43e68dbadd23c72d2f2e1fc78a6d6aaaadf2ccbf26c9a232aff5b3f3f29323b114f3018144ed9438943e07820e222137d3bb229b61671e61f75f6021a26436df9e669929fa392df021f105d2fce0717468a522018721ccde541b9a7b558128419f457ef33a5753f00c20c2d709727eef6278c55b278b10abe1d13e538514128b5dcb7bfd015e0fdcb081555071813974135d5ab5000630a94f5b0f4021a504ab4f3df2403e6140b9939f8bbe714635f5cff10744be03":"aab901da57bba355" +mpi_montg_init:"bf741f75e28a44e271cf43e68dbadd23c72d2f2e1fc78a6d6aaaadf2ccbf26c9a232aff5b3f3f29323b114f3018144ed9438943e07820e222137d3bb229b61671e61f75f6021a26436df9e669929fa392df021f105d2fce0717468a522018721ccde541b9a7b558128419f457ef33a5753f00c20c2d709727eef6278c55b278b10abe1d13e538514128b5dcb7bfd015e0fdcb081555071813974135d5ab5000630a94f5b0f4021a504ab4f3df2403e6140b9939f8bbe714635f5cff10744be03":"aab901da57bba355" mbedtls_mpi_core_montmul #1 (replay) -mbedtls_mpi_core_montmul:2:1:1:1:"19":"1":"1D":"18":"18" +mpi_core_montmul:2:1:1:1:"19":"1":"1D":"18":"18" mbedtls_mpi_core_montmul #2 (replay) -mbedtls_mpi_core_montmul:2:1:1:1:"7":"1":"9":"1":"1" +mpi_core_montmul:2:1:1:1:"7":"1":"9":"1":"1" mbedtls_mpi_core_montmul #3 (replay) -mbedtls_mpi_core_montmul:2:1:1:1:"4":"1":"9":"7":"7" +mpi_core_montmul:2:1:1:1:"4":"1":"9":"7":"7" mbedtls_mpi_core_montmul #4 (replay) -mbedtls_mpi_core_montmul:12:1:6:1:"3C246D0E059A93A266288A7718419EC741661B474C58C032C5EDAF92709402B07CC8C7CE0B781C641A1EA8DB2F4343":"1":"66A198186C18C10B2F5ED9B522752A9830B69916E535C8F047518A889A43A594B6BED27A168D31D4A52F88925AA8F5":"36E139AEA55215609D2816998ED020BBBD96C37890F65171D948E9BC7CBAA4D9325D24D6A3C12710F10A09FA08AB87":"36E139AEA55215609D2816998ED020BBBD96C37890F65171D948E9BC7CBAA4D9325D24D6A3C12710F10A09FA08AB87" +mpi_core_montmul:12:1:6:1:"3C246D0E059A93A266288A7718419EC741661B474C58C032C5EDAF92709402B07CC8C7CE0B781C641A1EA8DB2F4343":"1":"66A198186C18C10B2F5ED9B522752A9830B69916E535C8F047518A889A43A594B6BED27A168D31D4A52F88925AA8F5":"36E139AEA55215609D2816998ED020BBBD96C37890F65171D948E9BC7CBAA4D9325D24D6A3C12710F10A09FA08AB87":"36E139AEA55215609D2816998ED020BBBD96C37890F65171D948E9BC7CBAA4D9325D24D6A3C12710F10A09FA08AB87" mbedtls_mpi_core_montmul #5 (replay) -mbedtls_mpi_core_montmul:8:1:4:1:"1E442976B0E63D64FCCE74B999E470CA9888165CB75BFA1F340E918CE03C6211":"1":"B3A119602EE213CDE28581ECD892E0F592A338655DCE4CA88054B3D124D0E561":"38EB7749F4A5DA80F23BC08FD0801C55B103B17A2EEF84E60E65383B59F8CA5B":"38EB7749F4A5DA80F23BC08FD0801C55B103B17A2EEF84E60E65383B59F8CA5B" +mpi_core_montmul:8:1:4:1:"1E442976B0E63D64FCCE74B999E470CA9888165CB75BFA1F340E918CE03C6211":"1":"B3A119602EE213CDE28581ECD892E0F592A338655DCE4CA88054B3D124D0E561":"38EB7749F4A5DA80F23BC08FD0801C55B103B17A2EEF84E60E65383B59F8CA5B":"38EB7749F4A5DA80F23BC08FD0801C55B103B17A2EEF84E60E65383B59F8CA5B" mbedtls_mpi_core_montmul #6 (replay) -mbedtls_mpi_core_montmul:22:1:11:1:"7CF5AC97304E0B63C65413F57249F59994B0FED1D2A8D3D83ED5FA38560FFB82392870D6D08F87D711917FD7537E13B7E125BE407E74157776839B0AC9DB23CBDFC696104353E4D2780B2B4968F8D8542306BCA7A2366E":"1":"284139EA19C139EBE09A8111926AAA39A2C2BE12ED487A809D3CB5BC55854725B4CDCB5734C58F90B2F60D99CC1950CDBC8D651793E93C9C6F0EAD752500A32C56C62082912B66132B2A6AA42ADA923E1AD22CEB7BA0123":"1E4426A3D6C425F0630B14113BEAD742C92B02886267AB41F70C4CB2426AEE1FAACEC6982E0E5BE964ECA2527A031ED49C371DB2A4FB16482F3590C866BF9F81C3D52C7CB9E0BA6FF843ED3B17C44D7F6B14471839D8D31":"1E4426A3D6C425F0630B14113BEAD742C92B02886267AB41F70C4CB2426AEE1FAACEC6982E0E5BE964ECA2527A031ED49C371DB2A4FB16482F3590C866BF9F81C3D52C7CB9E0BA6FF843ED3B17C44D7F6B14471839D8D31" +mpi_core_montmul:22:1:11:1:"7CF5AC97304E0B63C65413F57249F59994B0FED1D2A8D3D83ED5FA38560FFB82392870D6D08F87D711917FD7537E13B7E125BE407E74157776839B0AC9DB23CBDFC696104353E4D2780B2B4968F8D8542306BCA7A2366E":"1":"284139EA19C139EBE09A8111926AAA39A2C2BE12ED487A809D3CB5BC55854725B4CDCB5734C58F90B2F60D99CC1950CDBC8D651793E93C9C6F0EAD752500A32C56C62082912B66132B2A6AA42ADA923E1AD22CEB7BA0123":"1E4426A3D6C425F0630B14113BEAD742C92B02886267AB41F70C4CB2426AEE1FAACEC6982E0E5BE964ECA2527A031ED49C371DB2A4FB16482F3590C866BF9F81C3D52C7CB9E0BA6FF843ED3B17C44D7F6B14471839D8D31":"1E4426A3D6C425F0630B14113BEAD742C92B02886267AB41F70C4CB2426AEE1FAACEC6982E0E5BE964ECA2527A031ED49C371DB2A4FB16482F3590C866BF9F81C3D52C7CB9E0BA6FF843ED3B17C44D7F6B14471839D8D31" mbedtls_mpi_core_montmul #7 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"2":"2":"3":"1":"1" +mpi_core_montmul:1:1:1:1:"2":"2":"3":"1":"1" mbedtls_mpi_core_montmul #8 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"1":"2":"3":"2":"2" +mpi_core_montmul:1:1:1:1:"1":"2":"3":"2":"2" mbedtls_mpi_core_montmul #9 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"2":"1":"3":"2":"2" +mpi_core_montmul:1:1:1:1:"2":"1":"3":"2":"2" mbedtls_mpi_core_montmul #10 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"6":"5":"7":"4":"1" +mpi_core_montmul:1:1:1:1:"6":"5":"7":"4":"1" mbedtls_mpi_core_montmul #11 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"3":"4":"7":"3":"6" +mpi_core_montmul:1:1:1:1:"3":"4":"7":"3":"6" mbedtls_mpi_core_montmul #12 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"1":"6":"7":"5":"3" +mpi_core_montmul:1:1:1:1:"1":"6":"7":"5":"3" mbedtls_mpi_core_montmul #13 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"5":"6":"7":"4":"1" +mpi_core_montmul:1:1:1:1:"5":"6":"7":"4":"1" mbedtls_mpi_core_montmul #14 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"3":"4":"B":"3":"9" +mpi_core_montmul:1:1:1:1:"3":"4":"B":"3":"9" mbedtls_mpi_core_montmul #15 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"7":"4":"B":"7":"a" +mpi_core_montmul:1:1:1:1:"7":"4":"B":"7":"a" mbedtls_mpi_core_montmul #16 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"9":"7":"B":"2":"6" +mpi_core_montmul:1:1:1:1:"9":"7":"B":"2":"6" mbedtls_mpi_core_montmul #17 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"2":"a":"B":"5":"4" +mpi_core_montmul:1:1:1:1:"2":"a":"B":"5":"4" mbedtls_mpi_core_montmul #18 (gen) (0x29 is prime) -mbedtls_mpi_core_montmul:1:1:1:1:"25":"16":"29":"16":"f" +mpi_core_montmul:1:1:1:1:"25":"16":"29":"16":"f" mbedtls_mpi_core_montmul #19 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"8":"28":"29":"2":"14" +mpi_core_montmul:1:1:1:1:"8":"28":"29":"2":"14" mbedtls_mpi_core_montmul #20 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"18":"21":"29":"7":"1d" +mpi_core_montmul:1:1:1:1:"18":"21":"29":"7":"1d" mbedtls_mpi_core_montmul #21 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"15":"f":"29":"22":"c" +mpi_core_montmul:1:1:1:1:"15":"f":"29":"22":"c" mbedtls_mpi_core_montmul #22 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"e2":"ea":"FF":"63":"63" +mpi_core_montmul:1:1:1:1:"e2":"ea":"FF":"63":"63" mbedtls_mpi_core_montmul #23 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"43":"72":"FF":"f3":"f3" +mpi_core_montmul:1:1:1:1:"43":"72":"FF":"f3":"f3" mbedtls_mpi_core_montmul #24 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"d8":"70":"FF":"de":"de" +mpi_core_montmul:1:1:1:1:"d8":"70":"FF":"de":"de" mbedtls_mpi_core_montmul #25 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"3c":"7c":"FF":"2d":"2d" +mpi_core_montmul:1:1:1:1:"3c":"7c":"FF":"2d":"2d" mbedtls_mpi_core_montmul #26 (gen) (0x101 is prime) -mbedtls_mpi_core_montmul:1:1:1:1:"99":"b9":"101":"23":"23" +mpi_core_montmul:1:1:1:1:"99":"b9":"101":"23":"23" mbedtls_mpi_core_montmul #27 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"65":"b2":"101":"f5":"f5" +mpi_core_montmul:1:1:1:1:"65":"b2":"101":"f5":"f5" mbedtls_mpi_core_montmul #28 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"81":"32":"101":"19":"19" +mpi_core_montmul:1:1:1:1:"81":"32":"101":"19":"19" mbedtls_mpi_core_montmul #29 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"51":"dd":"101":"a8":"a8" +mpi_core_montmul:1:1:1:1:"51":"dd":"101":"a8":"a8" mbedtls_mpi_core_montmul #30 (gen) (0x38B is prime) -mbedtls_mpi_core_montmul:1:1:1:1:"d5":"143":"38B":"313":"14f" +mpi_core_montmul:1:1:1:1:"d5":"143":"38B":"313":"14f" mbedtls_mpi_core_montmul #31 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"3d":"387":"38B":"212":"19a" +mpi_core_montmul:1:1:1:1:"3d":"387":"38B":"212":"19a" mbedtls_mpi_core_montmul #32 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"160":"2e5":"38B":"a5":"14d" +mpi_core_montmul:1:1:1:1:"160":"2e5":"38B":"a5":"14d" mbedtls_mpi_core_montmul #33 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"10f":"137":"38B":"10f":"19f" +mpi_core_montmul:1:1:1:1:"10f":"137":"38B":"10f":"19f" mbedtls_mpi_core_montmul #34 (gen) (0x8003 is prime) -mbedtls_mpi_core_montmul:1:1:1:1:"7dac":"25a":"8003":"5fff":"29c8" +mpi_core_montmul:1:1:1:1:"7dac":"25a":"8003":"5fff":"29c8" mbedtls_mpi_core_montmul #35 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"6f1c":"3286":"8003":"245e":"79e9" +mpi_core_montmul:1:1:1:1:"6f1c":"3286":"8003":"245e":"79e9" mbedtls_mpi_core_montmul #36 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"59ed":"2f3f":"8003":"7008":"5874" +mpi_core_montmul:1:1:1:1:"59ed":"2f3f":"8003":"7008":"5874" mbedtls_mpi_core_montmul #37 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"6893":"736d":"8003":"3178":"f99" +mpi_core_montmul:1:1:1:1:"6893":"736d":"8003":"3178":"f99" mbedtls_mpi_core_montmul #38 (gen) (0x10001 is prime) -mbedtls_mpi_core_montmul:1:1:1:1:"d199":"2832":"10001":"b6fa":"b6fa" +mpi_core_montmul:1:1:1:1:"d199":"2832":"10001":"b6fa":"b6fa" mbedtls_mpi_core_montmul #39 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"c3b2":"3e5b":"10001":"7c9c":"7c9c" +mpi_core_montmul:1:1:1:1:"c3b2":"3e5b":"10001":"7c9c":"7c9c" mbedtls_mpi_core_montmul #40 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"abe4":"214e":"10001":"ad1c":"ad1c" +mpi_core_montmul:1:1:1:1:"abe4":"214e":"10001":"ad1c":"ad1c" mbedtls_mpi_core_montmul #41 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"4360":"a05d":"10001":"4fac":"4fac" +mpi_core_montmul:1:1:1:1:"4360":"a05d":"10001":"4fac":"4fac" mbedtls_mpi_core_montmul #42 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"3f5a1":"165b2":"7F7F7":"63052":"71254" +mpi_core_montmul:1:1:1:1:"3f5a1":"165b2":"7F7F7":"63052":"71254" mbedtls_mpi_core_montmul #43 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"3bd29":"37863":"7F7F7":"34ff8":"40755" +mpi_core_montmul:1:1:1:1:"3bd29":"37863":"7F7F7":"34ff8":"40755" mbedtls_mpi_core_montmul #44 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"60c47":"64819":"7F7F7":"34967":"3a83e" +mpi_core_montmul:1:1:1:1:"60c47":"64819":"7F7F7":"34967":"3a83e" mbedtls_mpi_core_montmul #45 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"16584":"12c49":"7F7F7":"283b9":"14991" +mpi_core_montmul:1:1:1:1:"16584":"12c49":"7F7F7":"283b9":"14991" mbedtls_mpi_core_montmul #46 (gen) (0x800009 is prime) -mbedtls_mpi_core_montmul:1:1:1:1:"1ff03f":"610347":"800009":"1cef09":"4e3e6a" +mpi_core_montmul:1:1:1:1:"1ff03f":"610347":"800009":"1cef09":"4e3e6a" mbedtls_mpi_core_montmul #47 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"340fd5":"19812e":"800009":"5c1fc2":"64ecb0" +mpi_core_montmul:1:1:1:1:"340fd5":"19812e":"800009":"5c1fc2":"64ecb0" mbedtls_mpi_core_montmul #48 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"3fe2e8":"4d0dc7":"800009":"2c4c9f":"5112e5" +mpi_core_montmul:1:1:1:1:"3fe2e8":"4d0dc7":"800009":"2c4c9f":"5112e5" mbedtls_mpi_core_montmul #49 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"40356":"e6392":"800009":"1dc356":"5661ed" +mpi_core_montmul:1:1:1:1:"40356":"e6392":"800009":"1dc356":"5661ed" mbedtls_mpi_core_montmul #50 (gen) (0x100002B is prime) -mbedtls_mpi_core_montmul:1:1:1:1:"dd8a1d":"266c0e":"100002B":"e6cfeb":"66b342" +mpi_core_montmul:1:1:1:1:"dd8a1d":"266c0e":"100002B":"e6cfeb":"66b342" mbedtls_mpi_core_montmul #51 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"3fa1cb":"847fd6":"100002B":"5679d":"ea359c" +mpi_core_montmul:1:1:1:1:"3fa1cb":"847fd6":"100002B":"5679d":"ea359c" mbedtls_mpi_core_montmul #52 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"5f439d":"5c3196":"100002B":"72985e":"89865b" +mpi_core_montmul:1:1:1:1:"5f439d":"5c3196":"100002B":"72985e":"89865b" mbedtls_mpi_core_montmul #53 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"18d645":"f72dc6":"100002B":"11807c":"442f44" +mpi_core_montmul:1:1:1:1:"18d645":"f72dc6":"100002B":"11807c":"442f44" mbedtls_mpi_core_montmul #54 (gen) (0x37EEE9D is prime) -mbedtls_mpi_core_montmul:1:1:1:1:"20051ad":"37def6e":"37EEE9D":"126b1f8":"639bef" +mpi_core_montmul:1:1:1:1:"20051ad":"37def6e":"37EEE9D":"126b1f8":"639bef" mbedtls_mpi_core_montmul #55 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"2ec140b":"3580dbf":"37EEE9D":"182364a":"265b419" +mpi_core_montmul:1:1:1:1:"2ec140b":"3580dbf":"37EEE9D":"182364a":"265b419" mbedtls_mpi_core_montmul #56 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"1d91b46":"190d4fc":"37EEE9D":"f501a4":"2c06311" +mpi_core_montmul:1:1:1:1:"1d91b46":"190d4fc":"37EEE9D":"f501a4":"2c06311" mbedtls_mpi_core_montmul #57 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"34e488d":"1224d24":"37EEE9D":"3097def":"1c134c4" +mpi_core_montmul:1:1:1:1:"34e488d":"1224d24":"37EEE9D":"3097def":"1c134c4" mbedtls_mpi_core_montmul #58 (gen) (0x8000000B is prime) -mbedtls_mpi_core_montmul:1:1:1:1:"2a4fe2cb":"263466a9":"8000000B":"2f7b2c6b":"551d4f77" +mpi_core_montmul:1:1:1:1:"2a4fe2cb":"263466a9":"8000000B":"2f7b2c6b":"551d4f77" mbedtls_mpi_core_montmul #59 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"5643fe94":"29a1aefa":"8000000B":"7f473a3d":"86615" +mpi_core_montmul:1:1:1:1:"5643fe94":"29a1aefa":"8000000B":"7f473a3d":"86615" mbedtls_mpi_core_montmul #60 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"29633513":"7b007ac4":"8000000B":"589a07cd":"d6d5cbe" +mpi_core_montmul:1:1:1:1:"29633513":"7b007ac4":"8000000B":"589a07cd":"d6d5cbe" mbedtls_mpi_core_montmul #61 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"2439cef5":"5c9d5a47":"8000000B":"77b1ca47":"691ad3ef" +mpi_core_montmul:1:1:1:1:"2439cef5":"5c9d5a47":"8000000B":"77b1ca47":"691ad3ef" mbedtls_mpi_core_montmul #62 (gen) (0x8CD626B9 is prime) -mbedtls_mpi_core_montmul:1:1:1:1:"4de3cfaa":"50dea178":"8CD626B9":"5d6c70fe":"1017c1af" +mpi_core_montmul:1:1:1:1:"4de3cfaa":"50dea178":"8CD626B9":"5d6c70fe":"1017c1af" mbedtls_mpi_core_montmul #63 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"b8b8563":"10dbbbac":"8CD626B9":"1ebb1ae4":"3abf8696" +mpi_core_montmul:1:1:1:1:"b8b8563":"10dbbbac":"8CD626B9":"1ebb1ae4":"3abf8696" mbedtls_mpi_core_montmul #64 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"4e8a6151":"5574ec19":"8CD626B9":"88c056da":"5ff76076" +mpi_core_montmul:1:1:1:1:"4e8a6151":"5574ec19":"8CD626B9":"88c056da":"5ff76076" mbedtls_mpi_core_montmul #65 (gen) -mbedtls_mpi_core_montmul:1:1:1:1:"69224878":"309cfc23":"8CD626B9":"14f5037d":"2ab92db7" +mpi_core_montmul:1:1:1:1:"69224878":"309cfc23":"8CD626B9":"14f5037d":"2ab92db7" mbedtls_mpi_core_montmul #66 (gen) (start of 2-MPI 4-byte bignums) (0x10000000F is prime) -mbedtls_mpi_core_montmul:2:1:1:1:"fb6f7fb6":"afb05423":"10000000F":"1b61c4f8":"1b61c4f8" +mpi_core_montmul:2:1:1:1:"fb6f7fb6":"afb05423":"10000000F":"1b61c4f8":"1b61c4f8" mbedtls_mpi_core_montmul #67 (gen) -mbedtls_mpi_core_montmul:2:1:1:1:"8391a243":"26034dcd":"10000000F":"c5d18a1f":"c5d18a1f" +mpi_core_montmul:2:1:1:1:"8391a243":"26034dcd":"10000000F":"c5d18a1f":"c5d18a1f" mbedtls_mpi_core_montmul #68 (gen) -mbedtls_mpi_core_montmul:2:1:1:1:"d26b98c":"14b2d6aa":"10000000F":"4e7fad06":"4e7fad06" +mpi_core_montmul:2:1:1:1:"d26b98c":"14b2d6aa":"10000000F":"4e7fad06":"4e7fad06" mbedtls_mpi_core_montmul #69 (gen) -mbedtls_mpi_core_montmul:2:1:1:1:"6b9f1371":"a21daf1d":"10000000F":"c6b6f98b":"c6b6f98b" +mpi_core_montmul:2:1:1:1:"6b9f1371":"a21daf1d":"10000000F":"c6b6f98b":"c6b6f98b" mbedtls_mpi_core_montmul #70 (gen) 0x174876E7E9 is prime (dec) 99999999977 -mbedtls_mpi_core_montmul:2:2:1:1:"9f49435ad":"c8264ade8":"174876E7E9":"6f386b4ce":"6f386b4ce" +mpi_core_montmul:2:2:1:1:"9f49435ad":"c8264ade8":"174876E7E9":"6f386b4ce":"6f386b4ce" mbedtls_mpi_core_montmul #71 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"c402da434":"1fb427acf":"174876E7E9":"271c9b457":"271c9b457" +mpi_core_montmul:2:2:1:1:"c402da434":"1fb427acf":"174876E7E9":"271c9b457":"271c9b457" mbedtls_mpi_core_montmul #72 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"f6ebc2bb1":"1096d39f2a":"174876E7E9":"78a3ebdad":"78a3ebdad" +mpi_core_montmul:2:2:1:1:"f6ebc2bb1":"1096d39f2a":"174876E7E9":"78a3ebdad":"78a3ebdad" mbedtls_mpi_core_montmul #73 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"153b7f7b6b":"878fda8ff":"174876E7E9":"81843925c":"81843925c" +mpi_core_montmul:2:2:1:1:"153b7f7b6b":"878fda8ff":"174876E7E9":"81843925c":"81843925c" mbedtls_mpi_core_montmul #74 (gen) (0x8000000017 is prime) -mbedtls_mpi_core_montmul:2:2:1:1:"2c1adbb8d6":"4384d2d3c6":"8000000017":"7ee47165db":"7ee47165db" +mpi_core_montmul:2:2:1:1:"2c1adbb8d6":"4384d2d3c6":"8000000017":"7ee47165db":"7ee47165db" mbedtls_mpi_core_montmul #75 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"2e4f9cf5fb":"794f3443d9":"8000000017":"79446995ec":"79446995ec" +mpi_core_montmul:2:2:1:1:"2e4f9cf5fb":"794f3443d9":"8000000017":"79446995ec":"79446995ec" mbedtls_mpi_core_montmul #76 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"149e495582":"3802b8f7b7":"8000000017":"1e4ef00e22":"1e4ef00e22" +mpi_core_montmul:2:2:1:1:"149e495582":"3802b8f7b7":"8000000017":"1e4ef00e22":"1e4ef00e22" mbedtls_mpi_core_montmul #77 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"7b9d49df82":"69c68a442a":"8000000017":"74dee0f58a":"74dee0f58a" +mpi_core_montmul:2:2:1:1:"7b9d49df82":"69c68a442a":"8000000017":"74dee0f58a":"74dee0f58a" mbedtls_mpi_core_montmul #78 (gen) (0x864CB9076D is prime) -mbedtls_mpi_core_montmul:2:2:1:1:"683a134600":"6dd80ea9f6":"864CB9076D":"5c3f421e55":"5c3f421e55" +mpi_core_montmul:2:2:1:1:"683a134600":"6dd80ea9f6":"864CB9076D":"5c3f421e55":"5c3f421e55" mbedtls_mpi_core_montmul #79 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"13a870ff0d":"59b099694a":"864CB9076D":"615b45edcf":"615b45edcf" +mpi_core_montmul:2:2:1:1:"13a870ff0d":"59b099694a":"864CB9076D":"615b45edcf":"615b45edcf" mbedtls_mpi_core_montmul #80 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"37d06b0e63":"4d2147e46f":"864CB9076D":"6e47e78c45":"6e47e78c45" +mpi_core_montmul:2:2:1:1:"37d06b0e63":"4d2147e46f":"864CB9076D":"6e47e78c45":"6e47e78c45" mbedtls_mpi_core_montmul #81 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"661714f8f4":"22e55df507":"864CB9076D":"63f7b7766d":"63f7b7766d" +mpi_core_montmul:2:2:1:1:"661714f8f4":"22e55df507":"864CB9076D":"63f7b7766d":"63f7b7766d" mbedtls_mpi_core_montmul #82 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"2f0a96363":"52693307b4":"F7F7F7F7F7":"99e7b7a2f6":"99e7b7a2f6" +mpi_core_montmul:2:2:1:1:"2f0a96363":"52693307b4":"F7F7F7F7F7":"99e7b7a2f6":"99e7b7a2f6" mbedtls_mpi_core_montmul #83 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"3c85078e64":"f2275ecb6d":"F7F7F7F7F7":"5b30b7ecd8":"5b30b7ecd8" +mpi_core_montmul:2:2:1:1:"3c85078e64":"f2275ecb6d":"F7F7F7F7F7":"5b30b7ecd8":"5b30b7ecd8" mbedtls_mpi_core_montmul #84 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"352dae68d1":"707775b4c6":"F7F7F7F7F7":"922215581":"922215581" +mpi_core_montmul:2:2:1:1:"352dae68d1":"707775b4c6":"F7F7F7F7F7":"922215581":"922215581" mbedtls_mpi_core_montmul #85 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"37ae0f3e0b":"912113040f":"F7F7F7F7F7":"9724ae9827":"9724ae9827" +mpi_core_montmul:2:2:1:1:"37ae0f3e0b":"912113040f":"F7F7F7F7F7":"9724ae9827":"9724ae9827" mbedtls_mpi_core_montmul #86 (gen) (0x1000000000F is prime) -mbedtls_mpi_core_montmul:2:2:1:1:"6dada15e31":"f58ed9eff7":"1000000000F":"a11a0b6bd4":"a11a0b6bd4" +mpi_core_montmul:2:2:1:1:"6dada15e31":"f58ed9eff7":"1000000000F":"a11a0b6bd4":"a11a0b6bd4" mbedtls_mpi_core_montmul #87 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"69627a7c89":"cfb5ebd13d":"1000000000F":"bdd403e1e8":"bdd403e1e8" +mpi_core_montmul:2:2:1:1:"69627a7c89":"cfb5ebd13d":"1000000000F":"bdd403e1e8":"bdd403e1e8" mbedtls_mpi_core_montmul #88 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"a5e1ad239b":"afc030c731":"1000000000F":"d9159b287c":"d9159b287c" +mpi_core_montmul:2:2:1:1:"a5e1ad239b":"afc030c731":"1000000000F":"d9159b287c":"d9159b287c" mbedtls_mpi_core_montmul #89 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"f1cc45f4c5":"c64ad607c8":"1000000000F":"fdaa868e":"fdaa868e" +mpi_core_montmul:2:2:1:1:"f1cc45f4c5":"c64ad607c8":"1000000000F":"fdaa868e":"fdaa868e" mbedtls_mpi_core_montmul #90 (gen) (0x800000000005 is prime) -mbedtls_mpi_core_montmul:2:2:1:1:"2ebad87d2e31":"4c72d90bca78":"800000000005":"102277c75b46":"102277c75b46" +mpi_core_montmul:2:2:1:1:"2ebad87d2e31":"4c72d90bca78":"800000000005":"102277c75b46":"102277c75b46" mbedtls_mpi_core_montmul #91 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"a30b3cc50d":"29ac4fe59490":"800000000005":"7a0bb5e477ca":"7a0bb5e477ca" +mpi_core_montmul:2:2:1:1:"a30b3cc50d":"29ac4fe59490":"800000000005":"7a0bb5e477ca":"7a0bb5e477ca" mbedtls_mpi_core_montmul #92 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"33674e9647b4":"5ec7ee7e72d3":"800000000005":"431f6a298b9f":"431f6a298b9f" +mpi_core_montmul:2:2:1:1:"33674e9647b4":"5ec7ee7e72d3":"800000000005":"431f6a298b9f":"431f6a298b9f" mbedtls_mpi_core_montmul #93 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"3d956f474f61":"74070040257d":"800000000005":"1bf1cc423f85":"1bf1cc423f85" +mpi_core_montmul:2:2:1:1:"3d956f474f61":"74070040257d":"800000000005":"1bf1cc423f85":"1bf1cc423f85" mbedtls_mpi_core_montmul #94 (gen) (0x800795D9BA47 is prime) -mbedtls_mpi_core_montmul:2:2:1:1:"48348e3717d6":"43fcb4399571":"800795D9BA47":"be7aa205fdd":"be7aa205fdd" +mpi_core_montmul:2:2:1:1:"48348e3717d6":"43fcb4399571":"800795D9BA47":"be7aa205fdd":"be7aa205fdd" mbedtls_mpi_core_montmul #95 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"5234c03cc99b":"2f3cccb87803":"800795D9BA47":"38c915c43e15":"38c915c43e15" +mpi_core_montmul:2:2:1:1:"5234c03cc99b":"2f3cccb87803":"800795D9BA47":"38c915c43e15":"38c915c43e15" mbedtls_mpi_core_montmul #96 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"3ed13db194ab":"44b8f4ba7030":"800795D9BA47":"37052e8c2720":"37052e8c2720" +mpi_core_montmul:2:2:1:1:"3ed13db194ab":"44b8f4ba7030":"800795D9BA47":"37052e8c2720":"37052e8c2720" mbedtls_mpi_core_montmul #97 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"1c11e843bfdb":"95bd1b47b08":"800795D9BA47":"57783cead5bc":"57783cead5bc" +mpi_core_montmul:2:2:1:1:"1c11e843bfdb":"95bd1b47b08":"800795D9BA47":"57783cead5bc":"57783cead5bc" mbedtls_mpi_core_montmul #98 (gen) (0x1000000000015 is prime) -mbedtls_mpi_core_montmul:2:2:1:1:"a81d11cb81fd":"1e5753a3f33d":"1000000000015":"1524843bbe60":"1524843bbe60" +mpi_core_montmul:2:2:1:1:"a81d11cb81fd":"1e5753a3f33d":"1000000000015":"1524843bbe60":"1524843bbe60" mbedtls_mpi_core_montmul #99 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"688c4db99232":"36fc0cf7ed":"1000000000015":"d987f015f9c8":"d987f015f9c8" +mpi_core_montmul:2:2:1:1:"688c4db99232":"36fc0cf7ed":"1000000000015":"d987f015f9c8":"d987f015f9c8" mbedtls_mpi_core_montmul #100 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"f0720cc07e07":"fc76140ed903":"1000000000015":"c0a15846d9ab":"c0a15846d9ab" +mpi_core_montmul:2:2:1:1:"f0720cc07e07":"fc76140ed903":"1000000000015":"c0a15846d9ab":"c0a15846d9ab" mbedtls_mpi_core_montmul #101 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"2ec61f8d17d1":"d270c85e36d2":"1000000000015":"b25b655a6234":"b25b655a6234" +mpi_core_montmul:2:2:1:1:"2ec61f8d17d1":"d270c85e36d2":"1000000000015":"b25b655a6234":"b25b655a6234" mbedtls_mpi_core_montmul #102 (gen) (0x100000000000051 is prime) -mbedtls_mpi_core_montmul:2:2:1:1:"6a24cd3ab63820":"ed4aad55e5e348":"100000000000051":"f4fb80f56821d9":"f4fb80f56821d9" +mpi_core_montmul:2:2:1:1:"6a24cd3ab63820":"ed4aad55e5e348":"100000000000051":"f4fb80f56821d9":"f4fb80f56821d9" mbedtls_mpi_core_montmul #103 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"e680c160d3b248":"31e0d8840ed510":"100000000000051":"aa5e1c3bb30ab8":"aa5e1c3bb30ab8" +mpi_core_montmul:2:2:1:1:"e680c160d3b248":"31e0d8840ed510":"100000000000051":"aa5e1c3bb30ab8":"aa5e1c3bb30ab8" mbedtls_mpi_core_montmul #104 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"a80637e9aebc38":"bb81decc4e1738":"100000000000051":"14a17c662fb3fd":"14a17c662fb3fd" +mpi_core_montmul:2:2:1:1:"a80637e9aebc38":"bb81decc4e1738":"100000000000051":"14a17c662fb3fd":"14a17c662fb3fd" mbedtls_mpi_core_montmul #105 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"9afa5a59e9d630":"be9e65a6d42938":"100000000000051":"1fa880b76c7bbf":"1fa880b76c7bbf" +mpi_core_montmul:2:2:1:1:"9afa5a59e9d630":"be9e65a6d42938":"100000000000051":"1fa880b76c7bbf":"1fa880b76c7bbf" mbedtls_mpi_core_montmul #106 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"ab5e104eeb71c000":"2cffbd639e9fea00":"ABCDEF0123456789":"a7bd05d2ad72bbac":"a7bd05d2ad72bbac" +mpi_core_montmul:2:2:1:1:"ab5e104eeb71c000":"2cffbd639e9fea00":"ABCDEF0123456789":"a7bd05d2ad72bbac":"a7bd05d2ad72bbac" mbedtls_mpi_core_montmul #107 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"197b867547f68a00":"44b796cf94654800":"ABCDEF0123456789":"94683e1ac1068cfc":"94683e1ac1068cfc" +mpi_core_montmul:2:2:1:1:"197b867547f68a00":"44b796cf94654800":"ABCDEF0123456789":"94683e1ac1068cfc":"94683e1ac1068cfc" mbedtls_mpi_core_montmul #108 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"329f9483a04f2c00":"9892f76961d0f000":"ABCDEF0123456789":"12ca7ba6189f5080":"12ca7ba6189f5080" +mpi_core_montmul:2:2:1:1:"329f9483a04f2c00":"9892f76961d0f000":"ABCDEF0123456789":"12ca7ba6189f5080":"12ca7ba6189f5080" mbedtls_mpi_core_montmul #109 (gen) -mbedtls_mpi_core_montmul:2:2:1:1:"4a2e12dfb4545000":"1aa3e89a69794500":"ABCDEF0123456789":"591fced0c97f7916":"591fced0c97f7916" +mpi_core_montmul:2:2:1:1:"4a2e12dfb4545000":"1aa3e89a69794500":"ABCDEF0123456789":"591fced0c97f7916":"591fced0c97f7916" mbedtls_mpi_core_montmul #110 (gen) (start of 2-MPI 8-byte bignums) 0x25A55A46E5DA99C71C7 is the 3rd repunit prime (dec) 11111111111111111111111 -mbedtls_mpi_core_montmul:3:3:2:2:"8b9acdf013d140f000":"12e4ceaefabdf2b2f00":"25A55A46E5DA99C71C7":"145e13d825f558e1528":"5965c1bea1c065c1f9" +mpi_core_montmul:3:3:2:2:"8b9acdf013d140f000":"12e4ceaefabdf2b2f00":"25A55A46E5DA99C71C7":"145e13d825f558e1528":"5965c1bea1c065c1f9" mbedtls_mpi_core_montmul #111 (gen) -mbedtls_mpi_core_montmul:3:3:2:2:"1b8d960ea277e3f5500":"14418aa980e37dd000":"25A55A46E5DA99C71C7":"3296eca7d29742119d":"e62a0288b09791369c" +mpi_core_montmul:3:3:2:2:"1b8d960ea277e3f5500":"14418aa980e37dd000":"25A55A46E5DA99C71C7":"3296eca7d29742119d":"e62a0288b09791369c" mbedtls_mpi_core_montmul #112 (gen) -mbedtls_mpi_core_montmul:3:3:2:2:"7314524977e8075980":"8172fa45618ccd0d80":"25A55A46E5DA99C71C7":"16ce65e208c75d6959b":"20f256de8b8761f07a1" +mpi_core_montmul:3:3:2:2:"7314524977e8075980":"8172fa45618ccd0d80":"25A55A46E5DA99C71C7":"16ce65e208c75d6959b":"20f256de8b8761f07a1" mbedtls_mpi_core_montmul #113 (gen) -mbedtls_mpi_core_montmul:3:3:2:2:"ca14f031769be63580":"147a2f3cf2964ca9400":"25A55A46E5DA99C71C7":"1b33a89ac4a750a245d":"209a484f1216347030" +mpi_core_montmul:3:3:2:2:"ca14f031769be63580":"147a2f3cf2964ca9400":"25A55A46E5DA99C71C7":"1b33a89ac4a750a245d":"209a484f1216347030" mbedtls_mpi_core_montmul #114 (gen) 0x314DC643FB763F2B8C0E2DE00879 is (dec)99999999977^3 -mbedtls_mpi_core_montmul:4:4:2:2:"18532ba119d5cd0cf39735c0000":"25f9838e31634844924733000000":"314DC643FB763F2B8C0E2DE00879":"e7b248b17e952a3b5bf96467c9e":"e7b248b17e952a3b5bf96467c9e" +mpi_core_montmul:4:4:2:2:"18532ba119d5cd0cf39735c0000":"25f9838e31634844924733000000":"314DC643FB763F2B8C0E2DE00879":"e7b248b17e952a3b5bf96467c9e":"e7b248b17e952a3b5bf96467c9e" mbedtls_mpi_core_montmul #115 (gen) -mbedtls_mpi_core_montmul:4:4:2:2:"a56e2d2517519e3970e70c40000":"ec27428d4bb380458588fa80000":"314DC643FB763F2B8C0E2DE00879":"26c158897a56747970ce53723ab0":"26c158897a56747970ce53723ab0" +mpi_core_montmul:4:4:2:2:"a56e2d2517519e3970e70c40000":"ec27428d4bb380458588fa80000":"314DC643FB763F2B8C0E2DE00879":"26c158897a56747970ce53723ab0":"26c158897a56747970ce53723ab0" mbedtls_mpi_core_montmul #116 (gen) -mbedtls_mpi_core_montmul:4:4:2:2:"1cb5e8257710e8653fff33a00000":"15fdd42fe440fd3a1d121380000":"314DC643FB763F2B8C0E2DE00879":"2bbf68c08200acd799df33fb6cf3":"2bbf68c08200acd799df33fb6cf3" +mpi_core_montmul:4:4:2:2:"1cb5e8257710e8653fff33a00000":"15fdd42fe440fd3a1d121380000":"314DC643FB763F2B8C0E2DE00879":"2bbf68c08200acd799df33fb6cf3":"2bbf68c08200acd799df33fb6cf3" mbedtls_mpi_core_montmul #117 (gen) -mbedtls_mpi_core_montmul:4:4:2:2:"e50d07a65fc6f93e538ce040000":"1f4b059ca609f3ce597f61240000":"314DC643FB763F2B8C0E2DE00879":"27ce5f2c1819fe02f4335558de21":"27ce5f2c1819fe02f4335558de21" +mpi_core_montmul:4:4:2:2:"e50d07a65fc6f93e538ce040000":"1f4b059ca609f3ce597f61240000":"314DC643FB763F2B8C0E2DE00879":"27ce5f2c1819fe02f4335558de21":"27ce5f2c1819fe02f4335558de21" mbedtls_mpi_core_montmul #118 (gen) 0x47BF19662275FA2F6845C74942ED1D852E521 is (dec) 99999999977^4 -mbedtls_mpi_core_montmul:5:5:3:3:"1ea3ade786a095d978d387f30df9f20000000":"127c448575f04af5a367a7be06c7da0000000":"47BF19662275FA2F6845C74942ED1D852E521":"42c40f627a678ddf5ba6f27baedae85022b83":"24ee52f9383c9213f6641ca1a1293f6c90c28" +mpi_core_montmul:5:5:3:3:"1ea3ade786a095d978d387f30df9f20000000":"127c448575f04af5a367a7be06c7da0000000":"47BF19662275FA2F6845C74942ED1D852E521":"42c40f627a678ddf5ba6f27baedae85022b83":"24ee52f9383c9213f6641ca1a1293f6c90c28" mbedtls_mpi_core_montmul #119 (gen) -mbedtls_mpi_core_montmul:5:5:3:3:"16e15b0ca82764e72e38357b1f10a20000000":"43e2355d8514bbe22b0838fdc3983a0000000":"47BF19662275FA2F6845C74942ED1D852E521":"2cfd2125bb4d48f9d38a1d1dc9e546463eb62":"c96be8fa4c2a1981847403e0c45da464ea83" +mpi_core_montmul:5:5:3:3:"16e15b0ca82764e72e38357b1f10a20000000":"43e2355d8514bbe22b0838fdc3983a0000000":"47BF19662275FA2F6845C74942ED1D852E521":"2cfd2125bb4d48f9d38a1d1dc9e546463eb62":"c96be8fa4c2a1981847403e0c45da464ea83" mbedtls_mpi_core_montmul #120 (gen) -mbedtls_mpi_core_montmul:5:5:3:3:"be39332529d93f25c3d116c004c620000000":"5cccec42370a0a2c89c6772da801a0000000":"47BF19662275FA2F6845C74942ED1D852E521":"29081a3513837bdb55dfdab9de4d31dfe4bc4":"1b543f0226cdc674fc60c0822d275954530cf" +mpi_core_montmul:5:5:3:3:"be39332529d93f25c3d116c004c620000000":"5cccec42370a0a2c89c6772da801a0000000":"47BF19662275FA2F6845C74942ED1D852E521":"29081a3513837bdb55dfdab9de4d31dfe4bc4":"1b543f0226cdc674fc60c0822d275954530cf" mbedtls_mpi_core_montmul #121 (gen) -mbedtls_mpi_core_montmul:5:5:3:3:"ecaa468d90de0eeda474d39b3e1fc0000000":"1e714554018de6dc0fe576bfd3b5660000000":"47BF19662275FA2F6845C74942ED1D852E521":"18eb78f9fe89aaf4f32968af4d64627be81fe":"439b0325171f87ba20ddf220d61bc0f1e5865" +mpi_core_montmul:5:5:3:3:"ecaa468d90de0eeda474d39b3e1fc0000000":"1e714554018de6dc0fe576bfd3b5660000000":"47BF19662275FA2F6845C74942ED1D852E521":"18eb78f9fe89aaf4f32968af4d64627be81fe":"439b0325171f87ba20ddf220d61bc0f1e5865" mbedtls_mpi_core_montmul #122 (gen) 0x97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931 is (dec) 99999999977^6 -mbedtls_mpi_core_montmul:7:7:4:4:"32298816711c5dce46f9ba06e775c4bedfc770e6700000000000000":"8ee751fd5fb24f0b4a653cb3a0c8b7d9e724574d168000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"d20edd4f6c266489796ac74b96dde9bdffcb5131de686f9cac736c":"496a11382c5396c40b8e146b31fd98b8bc53648f93d04ff21b31725" +mpi_core_montmul:7:7:4:4:"32298816711c5dce46f9ba06e775c4bedfc770e6700000000000000":"8ee751fd5fb24f0b4a653cb3a0c8b7d9e724574d168000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"d20edd4f6c266489796ac74b96dde9bdffcb5131de686f9cac736c":"496a11382c5396c40b8e146b31fd98b8bc53648f93d04ff21b31725" mbedtls_mpi_core_montmul #123 (gen) -mbedtls_mpi_core_montmul:7:7:4:4:"29213b9df3cfd15f4b428645b67b677c29d1378d810000000000000":"6cbb732c65e10a28872394dfdd1936d5171c3c3aac0000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"29b3e797ff5104e01323f855aaccdbe9740facd77c04abda1c52bd5":"602b40d7c1feff4cfa2d4061046e4178c38e51172a5ca4326ebbb80" +mpi_core_montmul:7:7:4:4:"29213b9df3cfd15f4b428645b67b677c29d1378d810000000000000":"6cbb732c65e10a28872394dfdd1936d5171c3c3aac0000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"29b3e797ff5104e01323f855aaccdbe9740facd77c04abda1c52bd5":"602b40d7c1feff4cfa2d4061046e4178c38e51172a5ca4326ebbb80" mbedtls_mpi_core_montmul #124 (gen) -mbedtls_mpi_core_montmul:7:7:4:4:"6f18db06ad4abc52c0c50643dd13098abccd4a232f0000000000000":"7e6bf41f2a86098ad51f98dfc10490ba3e8081bc830000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"74c0a781f976ae0781fa4c408f3aca6290ed7c926ea4972d8cbd00e":"1134ccaea14ab4de865b0abce56638d4ca1e948d963389003cdcf5a" +mpi_core_montmul:7:7:4:4:"6f18db06ad4abc52c0c50643dd13098abccd4a232f0000000000000":"7e6bf41f2a86098ad51f98dfc10490ba3e8081bc830000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"74c0a781f976ae0781fa4c408f3aca6290ed7c926ea4972d8cbd00e":"1134ccaea14ab4de865b0abce56638d4ca1e948d963389003cdcf5a" mbedtls_mpi_core_montmul #125 (gen) -mbedtls_mpi_core_montmul:7:7:4:4:"62d3286cd706ad9d73caff63f1722775d7e8c731208000000000000":"530f7ba02ae2b04c2fe3e3d27ec095925631a6c2528000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"40e7f208928702cdfd45a1e085668af52f634d7ca0db34dfb161fc5":"8510d78927c62b26f1965ce5f2d6b5978566b608bfdd02dfb450d43" +mpi_core_montmul:7:7:4:4:"62d3286cd706ad9d73caff63f1722775d7e8c731208000000000000":"530f7ba02ae2b04c2fe3e3d27ec095925631a6c2528000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"40e7f208928702cdfd45a1e085668af52f634d7ca0db34dfb161fc5":"8510d78927c62b26f1965ce5f2d6b5978566b608bfdd02dfb450d43" mbedtls_mpi_core_montmul #126 (gen) 0xDD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499 is (dec) 99999999977^7 -mbedtls_mpi_core_montmul:8:8:4:4:"a6c6503e3c031fdbf6009a89ed60582b7233c5a85de28b16000000000000000":"75c8ed18270b583f16d442a467d32bf95c5e491e9b8523798000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"73cdf58f541b4a4b200d163b82d60488207147401ce5e9e87e4c8743734fc115":"73cdf58f541b4a4b200d163b82d60488207147401ce5e9e87e4c8743734fc115" +mpi_core_montmul:8:8:4:4:"a6c6503e3c031fdbf6009a89ed60582b7233c5a85de28b16000000000000000":"75c8ed18270b583f16d442a467d32bf95c5e491e9b8523798000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"73cdf58f541b4a4b200d163b82d60488207147401ce5e9e87e4c8743734fc115":"73cdf58f541b4a4b200d163b82d60488207147401ce5e9e87e4c8743734fc115" mbedtls_mpi_core_montmul #127 (gen) -mbedtls_mpi_core_montmul:8:8:4:4:"bf84d1f85cf6b51e04d2c8f4ffd03532d852053cf99b387d4000000000000000":"397ba5a743c349f4f28bc583ecd5f06e0a25f9c6d98f09134000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"7aee85838cad05594c16c0f8dc37dcedbfc5cabd535243d1f6e9a72597421b16":"7aee85838cad05594c16c0f8dc37dcedbfc5cabd535243d1f6e9a72597421b16" +mpi_core_montmul:8:8:4:4:"bf84d1f85cf6b51e04d2c8f4ffd03532d852053cf99b387d4000000000000000":"397ba5a743c349f4f28bc583ecd5f06e0a25f9c6d98f09134000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"7aee85838cad05594c16c0f8dc37dcedbfc5cabd535243d1f6e9a72597421b16":"7aee85838cad05594c16c0f8dc37dcedbfc5cabd535243d1f6e9a72597421b16" mbedtls_mpi_core_montmul #128 (gen) -mbedtls_mpi_core_montmul:8:8:4:4:"6db11c3a4152ed1a2aa6fa34b0903ec82ea1b88908dcb482000000000000000":"ac8ac576a74ad6ca48f201bf89f77350ce86e821358d85920000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"543bb63086c17abcfb027fac0e173b0661225ce534fc035f4c571168704f3562":"543bb63086c17abcfb027fac0e173b0661225ce534fc035f4c571168704f3562" +mpi_core_montmul:8:8:4:4:"6db11c3a4152ed1a2aa6fa34b0903ec82ea1b88908dcb482000000000000000":"ac8ac576a74ad6ca48f201bf89f77350ce86e821358d85920000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"543bb63086c17abcfb027fac0e173b0661225ce534fc035f4c571168704f3562":"543bb63086c17abcfb027fac0e173b0661225ce534fc035f4c571168704f3562" mbedtls_mpi_core_montmul #129 (gen) -mbedtls_mpi_core_montmul:8:8:4:4:"3001d96d7fe8b733f33687646fc3017e3ac417eb32e0ec708000000000000000":"925ddbdac4174e8321a48a32f79640e8cf7ec6f46ea235a80000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"9af46358ac6898dd3a4668f58748be748a93c45dae8309756a85c25f3370ea1e":"9af46358ac6898dd3a4668f58748be748a93c45dae8309756a85c25f3370ea1e" +mpi_core_montmul:8:8:4:4:"3001d96d7fe8b733f33687646fc3017e3ac417eb32e0ec708000000000000000":"925ddbdac4174e8321a48a32f79640e8cf7ec6f46ea235a80000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"9af46358ac6898dd3a4668f58748be748a93c45dae8309756a85c25f3370ea1e":"9af46358ac6898dd3a4668f58748be748a93c45dae8309756a85c25f3370ea1e" mbedtls_mpi_core_montmul #130 (gen) 0x141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41 is 99999999977^8 -mbedtls_mpi_core_montmul:10:10:5:5:"1029048755f2e60dd98c8de6d9989226b6bb4f0db8e46bd1939de560000000000000000000":"51bb7270b2e25cec0301a03e8275213bb6c2f6e6ec93d4d46d36ca0000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"bc135600e66e2f35482f257a39153e5a2313bb34fdf678a7768ef68baf4eb4af7950db678":"bc135600e66e2f35482f257a39153e5a2313bb34fdf678a7768ef68baf4eb4af7950db678" +mpi_core_montmul:10:10:5:5:"1029048755f2e60dd98c8de6d9989226b6bb4f0db8e46bd1939de560000000000000000000":"51bb7270b2e25cec0301a03e8275213bb6c2f6e6ec93d4d46d36ca0000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"bc135600e66e2f35482f257a39153e5a2313bb34fdf678a7768ef68baf4eb4af7950db678":"bc135600e66e2f35482f257a39153e5a2313bb34fdf678a7768ef68baf4eb4af7950db678" mbedtls_mpi_core_montmul #131 (gen) -mbedtls_mpi_core_montmul:10:10:5:5:"1c5337ff982b3ad6611257dbff5bbd7a9920ba2d4f5838a0cc681ce000000000000000000":"520c5d049ca4702031ba728591b665c4d4ccd3b2b86864d4c160fd2000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"a4041530bd752163a32ad6e21605d43621783491c739cc5b8426ed5c013c8f1874f4c33cf":"a4041530bd752163a32ad6e21605d43621783491c739cc5b8426ed5c013c8f1874f4c33cf" +mpi_core_montmul:10:10:5:5:"1c5337ff982b3ad6611257dbff5bbd7a9920ba2d4f5838a0cc681ce000000000000000000":"520c5d049ca4702031ba728591b665c4d4ccd3b2b86864d4c160fd2000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"a4041530bd752163a32ad6e21605d43621783491c739cc5b8426ed5c013c8f1874f4c33cf":"a4041530bd752163a32ad6e21605d43621783491c739cc5b8426ed5c013c8f1874f4c33cf" mbedtls_mpi_core_montmul #132 (gen) -mbedtls_mpi_core_montmul:10:9:5:5:"57074dfa00e42f6555bae624b7f0209f218adf57f73ed34ab0ff90c000000000000000000":"41eb14b6c07bfd3d1fe4f4a610c17cc44fcfcda695db040e011065000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"50035f4ad135181424da54e119e7b6c2d8563e4237d5c636457489fdcad2c98974f4d6986":"50035f4ad135181424da54e119e7b6c2d8563e4237d5c636457489fdcad2c98974f4d6986" +mpi_core_montmul:10:9:5:5:"57074dfa00e42f6555bae624b7f0209f218adf57f73ed34ab0ff90c000000000000000000":"41eb14b6c07bfd3d1fe4f4a610c17cc44fcfcda695db040e011065000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"50035f4ad135181424da54e119e7b6c2d8563e4237d5c636457489fdcad2c98974f4d6986":"50035f4ad135181424da54e119e7b6c2d8563e4237d5c636457489fdcad2c98974f4d6986" mbedtls_mpi_core_montmul #133 (gen) -mbedtls_mpi_core_montmul:10:10:5:5:"d8ed7feed2fe855e6997ad6397f776158573d425031bf085a615784000000000000000000":"6f121dcd18c578ab5e229881006007bb6d319b179f11015fe958b9c000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"ec6c4ef84cdba8b8fb0e23834f954b74f695da3a7036afd2b8bda4cf1969a22a2703f4810":"ec6c4ef84cdba8b8fb0e23834f954b74f695da3a7036afd2b8bda4cf1969a22a2703f4810" +mpi_core_montmul:10:10:5:5:"d8ed7feed2fe855e6997ad6397f776158573d425031bf085a615784000000000000000000":"6f121dcd18c578ab5e229881006007bb6d319b179f11015fe958b9c000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"ec6c4ef84cdba8b8fb0e23834f954b74f695da3a7036afd2b8bda4cf1969a22a2703f4810":"ec6c4ef84cdba8b8fb0e23834f954b74f695da3a7036afd2b8bda4cf1969a22a2703f4810" mbedtls_mpi_core_montmul #134 (gen) 0x2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451 is (dec) 99999999977^10 -mbedtls_mpi_core_montmul:12:12:6:6:"2a462b156180ea5fe550d3758c764e06fae54e626b5f503265a09df76edbdfbfa1e6000000000000000000000000":"1136f41d1879fd4fb9e49e0943a46b6704d77c068ee237c3121f9071cfd3e6a00315800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"204e2ee5416bf5cdc9d983d92ec60d5df79e331272efa041f3cdb2a172361806ba048bd578108d717dd29c38dc1e":"204e2ee5416bf5cdc9d983d92ec60d5df79e331272efa041f3cdb2a172361806ba048bd578108d717dd29c38dc1e" +mpi_core_montmul:12:12:6:6:"2a462b156180ea5fe550d3758c764e06fae54e626b5f503265a09df76edbdfbfa1e6000000000000000000000000":"1136f41d1879fd4fb9e49e0943a46b6704d77c068ee237c3121f9071cfd3e6a00315800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"204e2ee5416bf5cdc9d983d92ec60d5df79e331272efa041f3cdb2a172361806ba048bd578108d717dd29c38dc1e":"204e2ee5416bf5cdc9d983d92ec60d5df79e331272efa041f3cdb2a172361806ba048bd578108d717dd29c38dc1e" mbedtls_mpi_core_montmul #135 (gen) -mbedtls_mpi_core_montmul:12:12:6:6:"c1ac3800dfb3c6954dea391d206200cf3c47f795bf4a5603b4cb88ae7e574de4740800000000000000000000000":"c0d16eda0549ede42fa0deb4635f7b7ce061fadea02ee4d85cba4c4f7096034193c800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"e61059c9d6aff1b0c8d1fae7c880b9491a7e8e7715283f9d27b17423c282ada6016362d610f7a2509c859b4e2c3":"e61059c9d6aff1b0c8d1fae7c880b9491a7e8e7715283f9d27b17423c282ada6016362d610f7a2509c859b4e2c3" +mpi_core_montmul:12:12:6:6:"c1ac3800dfb3c6954dea391d206200cf3c47f795bf4a5603b4cb88ae7e574de4740800000000000000000000000":"c0d16eda0549ede42fa0deb4635f7b7ce061fadea02ee4d85cba4c4f7096034193c800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"e61059c9d6aff1b0c8d1fae7c880b9491a7e8e7715283f9d27b17423c282ada6016362d610f7a2509c859b4e2c3":"e61059c9d6aff1b0c8d1fae7c880b9491a7e8e7715283f9d27b17423c282ada6016362d610f7a2509c859b4e2c3" mbedtls_mpi_core_montmul #136 (gen) -mbedtls_mpi_core_montmul:12:12:6:6:"19e45bb7633094d272588ad2e43bcb3ee341991c6731b6fa9d47c4018d7ce7bba5ee800000000000000000000000":"1e4f83166ae59f6b9cc8fd3e7677ed8bfc01bb99c98bd3eb084246b64c1e18c3365b800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"14dfcf79e82a33b504f887088c66d85abb43e4eb93ae643e6413a655c48fa6643fc9032c5e7dbfbb6291d707abc8":"14dfcf79e82a33b504f887088c66d85abb43e4eb93ae643e6413a655c48fa6643fc9032c5e7dbfbb6291d707abc8" +mpi_core_montmul:12:12:6:6:"19e45bb7633094d272588ad2e43bcb3ee341991c6731b6fa9d47c4018d7ce7bba5ee800000000000000000000000":"1e4f83166ae59f6b9cc8fd3e7677ed8bfc01bb99c98bd3eb084246b64c1e18c3365b800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"14dfcf79e82a33b504f887088c66d85abb43e4eb93ae643e6413a655c48fa6643fc9032c5e7dbfbb6291d707abc8":"14dfcf79e82a33b504f887088c66d85abb43e4eb93ae643e6413a655c48fa6643fc9032c5e7dbfbb6291d707abc8" mbedtls_mpi_core_montmul #137 (gen) -mbedtls_mpi_core_montmul:12:12:6:6:"1aa93395fad5f9b7f20b8f9028a054c0bb7c11bb8520e6a95e5a34f06cb70bcdd01a800000000000000000000000":"54b45afa5d4310192f8d224634242dd7dcfb342318df3d9bd37b4c614788ba13b8b000000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"1c56a73d8698564b51a42613a20c07f7fda723cbada776bebdb075b349a19b588345e9930dcf12178400d7fb32e6":"1c56a73d8698564b51a42613a20c07f7fda723cbada776bebdb075b349a19b588345e9930dcf12178400d7fb32e6" +mpi_core_montmul:12:12:6:6:"1aa93395fad5f9b7f20b8f9028a054c0bb7c11bb8520e6a95e5a34f06cb70bcdd01a800000000000000000000000":"54b45afa5d4310192f8d224634242dd7dcfb342318df3d9bd37b4c614788ba13b8b000000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"1c56a73d8698564b51a42613a20c07f7fda723cbada776bebdb075b349a19b588345e9930dcf12178400d7fb32e6":"1c56a73d8698564b51a42613a20c07f7fda723cbada776bebdb075b349a19b588345e9930dcf12178400d7fb32e6" mbedtls_mpi_core_montmul #138 (gen) 0x8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051 is prime, (dec) 10^143 + 3^4 -mbedtls_mpi_core_montmul:15:15:8:8:"544f2628a28cfb5ce0a1b7180ee66b49716f1d9476c466c57f0c4b2308991784306d48f78686115ee19e25400000000000000000000000000000000":"677eb31ef8d66c120fa872a60cd47f6e10cbfdf94f90501bd7883cba03d185be0a0148d1625745e9c4c827300000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"1c17879ba8ffaf6e01f145b954e6f2d1da9b5e91b0cd41324228e0da4e2d8c8b7de9be8533452f0420d1c21e2b91ce6a47be8a154b70ab8e3afa0e2":"45d5439e49004056f25a7af76fa1fa0b2f41c6ac4da7d960f3c8619eabafe0f9637e4d0551442a732d4bc3832e01c21e2b91ce6a47be8a154b70ae4" +mpi_core_montmul:15:15:8:8:"544f2628a28cfb5ce0a1b7180ee66b49716f1d9476c466c57f0c4b2308991784306d48f78686115ee19e25400000000000000000000000000000000":"677eb31ef8d66c120fa872a60cd47f6e10cbfdf94f90501bd7883cba03d185be0a0148d1625745e9c4c827300000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"1c17879ba8ffaf6e01f145b954e6f2d1da9b5e91b0cd41324228e0da4e2d8c8b7de9be8533452f0420d1c21e2b91ce6a47be8a154b70ab8e3afa0e2":"45d5439e49004056f25a7af76fa1fa0b2f41c6ac4da7d960f3c8619eabafe0f9637e4d0551442a732d4bc3832e01c21e2b91ce6a47be8a154b70ae4" mbedtls_mpi_core_montmul #139 (gen) -mbedtls_mpi_core_montmul:15:15:8:8:"76bb3470985174915e9993522aec989666908f9e8cf5cb9f037bf4aee33d8865cb6464174795d07e30015b80000000000000000000000000000000":"6aaaf60d5784dcef612d133613b179a317532ecca0eed40b8ad0c01e6d4a6d8c79a52af190abd51739009a900000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"10676de6ef5976bb3d0e91e01ad3de619c1c4d60644c38d061da315f0d11f81a961a8fe63625bb4ccd9f963765a89f46e88c73fc02d8f16af74bef5":"2f7c4c22707c864397f9905b3f7f6a558cd793e56bda9a594600a895b62581d391c9f98b91e9ef02b94c9befa097963765a89f46e88c73fc02d8f34" +mpi_core_montmul:15:15:8:8:"76bb3470985174915e9993522aec989666908f9e8cf5cb9f037bf4aee33d8865cb6464174795d07e30015b80000000000000000000000000000000":"6aaaf60d5784dcef612d133613b179a317532ecca0eed40b8ad0c01e6d4a6d8c79a52af190abd51739009a900000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"10676de6ef5976bb3d0e91e01ad3de619c1c4d60644c38d061da315f0d11f81a961a8fe63625bb4ccd9f963765a89f46e88c73fc02d8f16af74bef5":"2f7c4c22707c864397f9905b3f7f6a558cd793e56bda9a594600a895b62581d391c9f98b91e9ef02b94c9befa097963765a89f46e88c73fc02d8f34" mbedtls_mpi_core_montmul #140 (gen) -mbedtls_mpi_core_montmul:15:15:8:8:"6cfdd6e60912e441d2d1fc88f421b533f0103a5322ccd3f4db84861643ad63fd63d1d8cfbc1d498162786ba00000000000000000000000000000000":"1177246ec5e93814816465e7f8f248b350d954439d35b2b5d75d917218e7fd5fb4c2f6d0667f9467fdcf33400000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"485cca6586b0540eceb3ef8644bd400f3c32a9e38dfe4f4513945895808d648cfa45a3a2e9691b6111ddef29103fa8981dd8a3bbc52c9b768034ac5":"43603ad0efccbc0db5981c2cc75573d32dc0c0d94a8a2f6a67bb003e769f421626e68bdf1ff7d809a8b9ebddc055ef29103fa8981dd8a3bbc52c9e1" +mpi_core_montmul:15:15:8:8:"6cfdd6e60912e441d2d1fc88f421b533f0103a5322ccd3f4db84861643ad63fd63d1d8cfbc1d498162786ba00000000000000000000000000000000":"1177246ec5e93814816465e7f8f248b350d954439d35b2b5d75d917218e7fd5fb4c2f6d0667f9467fdcf33400000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"485cca6586b0540eceb3ef8644bd400f3c32a9e38dfe4f4513945895808d648cfa45a3a2e9691b6111ddef29103fa8981dd8a3bbc52c9b768034ac5":"43603ad0efccbc0db5981c2cc75573d32dc0c0d94a8a2f6a67bb003e769f421626e68bdf1ff7d809a8b9ebddc055ef29103fa8981dd8a3bbc52c9e1" mbedtls_mpi_core_montmul #141 (gen) -mbedtls_mpi_core_montmul:15:15:8:8:"7a09a0b0f8bbf8057116fb0277a9bdf3a91b5eaa8830d448081510d8973888be5a9f0ad04facb69aa3715f00000000000000000000000000000000":"764dec6c05a1c0d87b649efa5fd94c91ea28bffb4725d4ab4b33f1a3e8e3b314d799020e244a835a145ec9800000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"36a534b574adac80dfea3dabdf0a8c95f47511ff202eab325e5a6edfb7e3ab28ddc15b2f6023240939ba5b7339f7ada7225376a817263464cfba89d":"7a9f42a7ed20ab041b748b5594d63e5aa5c890cd88826a4120bec4c43a90bfb8c7f78ad9cd91756a5f0f5a9154725b7339f7ada7225376a81726392" +mpi_core_montmul:15:15:8:8:"7a09a0b0f8bbf8057116fb0277a9bdf3a91b5eaa8830d448081510d8973888be5a9f0ad04facb69aa3715f00000000000000000000000000000000":"764dec6c05a1c0d87b649efa5fd94c91ea28bffb4725d4ab4b33f1a3e8e3b314d799020e244a835a145ec9800000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"36a534b574adac80dfea3dabdf0a8c95f47511ff202eab325e5a6edfb7e3ab28ddc15b2f6023240939ba5b7339f7ada7225376a817263464cfba89d":"7a9f42a7ed20ab041b748b5594d63e5aa5c890cd88826a4120bec4c43a90bfb8c7f78ad9cd91756a5f0f5a9154725b7339f7ada7225376a81726392" MPI Selftest depends_on:MBEDTLS_SELF_TEST diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index cb8f9fb948..7ca21fa06e 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -182,7 +182,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_read_binary( data_t * buf, char * input_A ) +void mpi_read_binary( data_t * buf, char * input_A ) { mbedtls_mpi X; char str[1000]; @@ -202,7 +202,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_core_io_null() +void mpi_core_io_null() { mbedtls_mpi_uint X = 0; int ret; @@ -233,8 +233,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_core_io_be( data_t *input, int nb_int, int nx_32_int, int iret, - int oret ) +void mpi_core_io_be( data_t *input, int nb_int, int nx_32_int, int iret, + int oret ) { if( iret != 0 ) TEST_ASSERT( oret == 0 ); @@ -290,8 +290,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_core_io_le( data_t *input, int nb_int, int nx_32_int, int iret, - int oret ) +void mpi_core_io_le( data_t *input, int nb_int, int nx_32_int, int iret, + int oret ) { if( iret != 0 ) TEST_ASSERT( oret == 0 ); @@ -345,7 +345,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_mod_setup( int ext_rep, int int_rep, int iret ) +void mpi_mod_setup( int ext_rep, int int_rep, int iret ) { #define MLIMBS 8 mbedtls_mpi_uint mp[MLIMBS]; @@ -374,8 +374,8 @@ exit: /* BEGIN_CASE */ -void mbedtls_mpi_mod_raw_io( data_t *input, int nb_int, int nx_32_int, - int iendian, int iret, int oret ) +void mpi_mod_raw_io( data_t *input, int nb_int, int nx_32_int, + int iendian, int iret, int oret ) { if( iret != 0 ) TEST_ASSERT( oret == 0 ); @@ -469,7 +469,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_read_binary_le( data_t * buf, char * input_A ) +void mpi_read_binary_le( data_t * buf, char * input_A ) { mbedtls_mpi X; char str[1000]; @@ -489,8 +489,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_write_binary( char * input_X, data_t * input_A, - int output_size, int result ) +void mpi_write_binary( char * input_X, data_t * input_A, + int output_size, int result ) { mbedtls_mpi X; unsigned char buf[1000]; @@ -520,8 +520,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_write_binary_le( char * input_X, data_t * input_A, - int output_size, int result ) +void mpi_write_binary_le( char * input_X, data_t * input_A, + int output_size, int result ) { mbedtls_mpi X; unsigned char buf[1000]; @@ -551,7 +551,7 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO */ -void mbedtls_mpi_read_file( char * input_file, data_t * input_A, int result ) +void mpi_read_file( char * input_file, data_t * input_A, int result ) { mbedtls_mpi X; unsigned char buf[1000]; @@ -586,7 +586,7 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO */ -void mbedtls_mpi_write_file( char * input_X, char * output_file ) +void mpi_write_file( char * input_X, char * output_file ) { mbedtls_mpi X, Y; FILE *file_out, *file_in; @@ -616,7 +616,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_get_bit( char * input_X, int pos, int val ) +void mpi_get_bit( char * input_X, int pos, int val ) { mbedtls_mpi X; mbedtls_mpi_init( &X ); @@ -629,8 +629,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_set_bit( char * input_X, int pos, int val, - char * output_Y, int result ) +void mpi_set_bit( char * input_X, int pos, int val, + char * output_Y, int result ) { mbedtls_mpi X, Y; mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); @@ -651,7 +651,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_lsb( char * input_X, int nr_bits ) +void mpi_lsb( char * input_X, int nr_bits ) { mbedtls_mpi X; mbedtls_mpi_init( &X ); @@ -665,7 +665,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_bitlen( char * input_X, int nr_bits ) +void mpi_bitlen( char * input_X, int nr_bits ) { mbedtls_mpi X; mbedtls_mpi_init( &X ); @@ -679,8 +679,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_gcd( char * input_X, char * input_Y, - char * input_A ) +void mpi_gcd( char * input_X, char * input_Y, + char * input_A ) { mbedtls_mpi A, X, Y, Z; mbedtls_mpi_init( &A ); mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &Z ); @@ -698,7 +698,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_cmp_int( int input_X, int input_A, int result_CMP ) +void mpi_cmp_int( int input_X, int input_A, int result_CMP ) { mbedtls_mpi X; mbedtls_mpi_init( &X ); @@ -712,8 +712,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_cmp_mpi( char * input_X, char * input_Y, - int input_A ) +void mpi_cmp_mpi( char * input_X, char * input_Y, + int input_A ) { mbedtls_mpi X, Y; mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); @@ -764,9 +764,9 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_lt_mpi_ct( int size_X, char * input_X, - int size_Y, char * input_Y, - int input_ret, int input_err ) +void mpi_lt_mpi_ct( int size_X, char * input_X, + int size_Y, char * input_Y, + int input_ret, int input_err ) { unsigned ret = -1; unsigned input_uret = input_ret; @@ -789,8 +789,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_cmp_abs( char * input_X, char * input_Y, - int input_A ) +void mpi_cmp_abs( char * input_X, char * input_Y, + int input_A ) { mbedtls_mpi X, Y; mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); @@ -805,7 +805,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_copy( char *src_hex, char *dst_hex ) +void mpi_copy( char *src_hex, char *dst_hex ) { mbedtls_mpi src, dst, ref; mbedtls_mpi_init( &src ); @@ -863,7 +863,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_swap( char *X_hex, char *Y_hex ) +void mpi_swap( char *X_hex, char *Y_hex ) { mbedtls_mpi X, Y, X0, Y0; mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); @@ -928,7 +928,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_shrink( int before, int used, int min, int after ) +void mpi_shrink( int before, int used, int min, int after ) { mbedtls_mpi X; mbedtls_mpi_init( &X ); @@ -949,8 +949,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_add_mpi( char * input_X, char * input_Y, - char * input_A ) +void mpi_add_mpi( char * input_X, char * input_Y, + char * input_A ) { mbedtls_mpi X, Y, Z, A; mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &Z ); mbedtls_mpi_init( &A ); @@ -979,7 +979,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_add_mpi_inplace( char * input_X, char * input_A ) +void mpi_add_mpi_inplace( char * input_X, char * input_A ) { mbedtls_mpi X, A; mbedtls_mpi_init( &X ); mbedtls_mpi_init( &A ); @@ -1008,8 +1008,8 @@ exit: /* BEGIN_CASE */ -void mbedtls_mpi_add_abs( char * input_X, char * input_Y, - char * input_A ) +void mpi_add_abs( char * input_X, char * input_Y, + char * input_A ) { mbedtls_mpi X, Y, Z, A; mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &Z ); mbedtls_mpi_init( &A ); @@ -1038,8 +1038,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_add_int( char * input_X, int input_Y, - char * input_A ) +void mpi_add_int( char * input_X, int input_Y, + char * input_A ) { mbedtls_mpi X, Z, A; mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Z ); mbedtls_mpi_init( &A ); @@ -1056,8 +1056,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_sub_mpi( char * input_X, char * input_Y, - char * input_A ) +void mpi_sub_mpi( char * input_X, char * input_Y, + char * input_A ) { mbedtls_mpi X, Y, Z, A; mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &Z ); mbedtls_mpi_init( &A ); @@ -1086,8 +1086,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_sub_abs( char * input_X, char * input_Y, - char * input_A, int sub_result ) +void mpi_sub_abs( char * input_X, char * input_Y, + char * input_A, int sub_result ) { mbedtls_mpi X, Y, Z, A; int res; @@ -1122,8 +1122,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_sub_int( char * input_X, int input_Y, - char * input_A ) +void mpi_sub_int( char * input_X, int input_Y, + char * input_A ) { mbedtls_mpi X, Z, A; mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Z ); mbedtls_mpi_init( &A ); @@ -1140,8 +1140,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_mul_mpi( char * input_X, char * input_Y, - char * input_A ) +void mpi_mul_mpi( char * input_X, char * input_Y, + char * input_A ) { mbedtls_mpi X, Y, Z, A; mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &Z ); mbedtls_mpi_init( &A ); @@ -1159,8 +1159,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_mul_int( char * input_X, int input_Y, - char * input_A, char * result_comparison ) +void mpi_mul_int( char * input_X, int input_Y, + char * input_A, char * result_comparison ) { mbedtls_mpi X, Z, A; mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Z ); mbedtls_mpi_init( &A ); @@ -1182,9 +1182,9 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_div_mpi( char * input_X, char * input_Y, - char * input_A, char * input_B, - int div_result ) +void mpi_div_mpi( char * input_X, char * input_Y, + char * input_A, char * input_B, + int div_result ) { mbedtls_mpi X, Y, Q, R, A, B; int res; @@ -1212,9 +1212,9 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_div_int( char * input_X, int input_Y, - char * input_A, char * input_B, - int div_result ) +void mpi_div_int( char * input_X, int input_Y, + char * input_A, char * input_B, + int div_result ) { mbedtls_mpi X, Q, R, A, B; int res; @@ -1241,8 +1241,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_mod_mpi( char * input_X, char * input_Y, - char * input_A, int div_result ) +void mpi_mod_mpi( char * input_X, char * input_Y, + char * input_A, int div_result ) { mbedtls_mpi X, Y, A; int res; @@ -1265,8 +1265,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_mod_int( char * input_X, int input_Y, - int input_A, int div_result ) +void mpi_mod_int( char * input_X, int input_Y, + int input_A, int div_result ) { mbedtls_mpi X; int res; @@ -1287,9 +1287,9 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_exp_mod( char * input_A, char * input_E, - char * input_N, char * input_X, - int exp_result ) +void mpi_exp_mod( char * input_A, char * input_E, + char * input_N, char * input_X, + int exp_result ) { mbedtls_mpi A, E, N, RR, Z, X; int res; @@ -1334,8 +1334,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_exp_mod_size( int A_bytes, int E_bytes, int N_bytes, - char * input_RR, int exp_result ) +void mpi_exp_mod_size( int A_bytes, int E_bytes, int N_bytes, + char * input_RR, int exp_result ) { mbedtls_mpi A, E, N, RR, Z; mbedtls_mpi_init( &A ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &N ); @@ -1368,8 +1368,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_inv_mod( char * input_X, char * input_Y, - char * input_A, int div_result ) +void mpi_inv_mod( char * input_X, char * input_Y, + char * input_A, int div_result ) { mbedtls_mpi X, Y, Z, A; int res; @@ -1392,7 +1392,7 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_GENPRIME */ -void mbedtls_mpi_is_prime( char * input_X, int div_result ) +void mpi_is_prime( char * input_X, int div_result ) { mbedtls_mpi X; int res; @@ -1408,8 +1408,8 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_GENPRIME */ -void mbedtls_mpi_is_prime_det( data_t * input_X, data_t * witnesses, - int chunk_len, int rounds ) +void mpi_is_prime_det( data_t * input_X, data_t * witnesses, + int chunk_len, int rounds ) { mbedtls_mpi X; int res; @@ -1441,7 +1441,7 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_GENPRIME */ -void mbedtls_mpi_gen_prime( int bits, int flags, int ref_ret ) +void mpi_gen_prime( int bits, int flags, int ref_ret ) { mbedtls_mpi X; int my_ret; @@ -1479,8 +1479,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_shift_l( char * input_X, int shift_X, - char * input_A ) +void mpi_shift_l( char * input_X, int shift_X, + char * input_A ) { mbedtls_mpi X, A; mbedtls_mpi_init( &X ); mbedtls_mpi_init( &A ); @@ -1497,8 +1497,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_shift_r( char * input_X, int shift_X, - char * input_A ) +void mpi_shift_r( char * input_X, int shift_X, + char * input_A ) { mbedtls_mpi X, A; mbedtls_mpi_init( &X ); mbedtls_mpi_init( &A ); @@ -1721,9 +1721,9 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_core_add_if( char * input_l, char * input_r, - char * input_X4, int carry4, - char * input_X8, int carry8 ) +void mpi_core_add_if( char * input_l, char * input_r, + char * input_X4, int carry4, + char * input_X8, int carry8 ) { mbedtls_mpi X4, X8, l, r; mbedtls_mpi_uint *la = NULL; @@ -1817,9 +1817,9 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_core_sub( char * input_l, char * input_r, - char * input_X4, char * input_X8, - int carry ) +void mpi_core_sub( char * input_l, char * input_r, + char * input_X4, char * input_X8, + int carry ) { mbedtls_mpi l, r, X4, X8; mbedtls_mpi_uint *la = NULL; @@ -1907,9 +1907,9 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_core_mla( char * input_d, char * input_s, char * input_b, - char * input_X4, char * input_cy4, - char * input_X8, char * input_cy8 ) +void mpi_core_mla( char * input_d, char * input_s, char * input_b, + char * input_X4, char * input_cy4, + char * input_X8, char * input_cy8 ) { /* We are testing d += s * b; d, s are MPIs, b is a scalar. * @@ -1996,7 +1996,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_montg_init( char * input_N, char * input_mm ) +void mpi_montg_init( char * input_N, char * input_mm ) { mbedtls_mpi N, mm; @@ -2031,13 +2031,13 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_mpi_core_montmul( int limbs_AN4, int limbs_B4, - int limbs_AN8, int limbs_B8, - char * input_A, - char * input_B, - char * input_N, - char * input_X4, - char * input_X8 ) +void mpi_core_montmul( int limbs_AN4, int limbs_B4, + int limbs_AN8, int limbs_B8, + char * input_A, + char * input_B, + char * input_N, + char * input_X4, + char * input_X8 ) { mbedtls_mpi A, B, N, X4, X8, T, R; From eceb4ccfc33105b2512f11e827d101da173d5109 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 2 Sep 2022 10:46:09 +0100 Subject: [PATCH 0180/1028] Rename variables and update comments in mpi_core_add_if test Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.function | 112 +++++++++++++++------------ 1 file changed, 61 insertions(+), 51 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 7ca21fa06e..32e08a9425 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1721,23 +1721,23 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_add_if( char * input_l, char * input_r, +void mpi_core_add_if( char * input_A, char * input_B, char * input_X4, int carry4, char * input_X8, int carry8 ) { - mbedtls_mpi X4, X8, l, r; - mbedtls_mpi_uint *la = NULL; - mbedtls_mpi_uint *ra = NULL; - mbedtls_mpi_uint *Xa = NULL; - mbedtls_mpi_uint *da = NULL; + mbedtls_mpi X4, X8, A, B; + mbedtls_mpi_uint *a = NULL; /* first value to add */ + mbedtls_mpi_uint *b = NULL; /* second value to add */ + mbedtls_mpi_uint *x = NULL; /* expected */ + mbedtls_mpi_uint *d = NULL; /* destination - the in/out first op */ + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &B ); mbedtls_mpi_init( &X4 ); mbedtls_mpi_init( &X8 ); - mbedtls_mpi_init( &l ); - mbedtls_mpi_init( &r ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &l, input_l ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &r, input_r ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); @@ -1748,71 +1748,81 @@ void mpi_core_add_if( char * input_l, char * input_r, mbedtls_mpi_uint carry = ( sizeof(mbedtls_mpi_uint) == 4 ) ? carry4 : carry8; /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, l.s ); - TEST_EQUAL( 1, r.s ); + TEST_EQUAL( 1, A.s ); + TEST_EQUAL( 1, B.s ); TEST_EQUAL( 1, X->s ); - /* Test cases are such that l <= r, so #limbs should be <= */ - TEST_ASSERT( l.n <= r.n ); - TEST_ASSERT( X->n <= r.n ); + /* Test cases are such that A <= B, so #limbs should be <= */ + TEST_ASSERT( A.n <= B.n ); + TEST_ASSERT( X->n <= B.n ); /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ - la = mbedtls_calloc( r.n, sizeof(mbedtls_mpi_uint) ); - ra = mbedtls_calloc( r.n, sizeof(mbedtls_mpi_uint) ); - Xa = mbedtls_calloc( r.n, sizeof(mbedtls_mpi_uint) ); - da = mbedtls_calloc( r.n, sizeof(mbedtls_mpi_uint) ); - size_t bytes = r.n * sizeof(mbedtls_mpi_uint); + /* mbedtls_mpi_core_add_if() uses input arrays of mbedtls_mpi_uints which + * must be the same size. The MPIs we've read in will only have arrays + * large enough for the number they represent. Therefore we create new + * raw arrays of mbedtls_mpi_uints and populate them from the MPIs we've + * just read in. + * + * We generated test data such that B was always >= A, so that's how many + * limbs each of these need. + */ + a = mbedtls_calloc( B.n, sizeof(mbedtls_mpi_uint) ); + b = mbedtls_calloc( B.n, sizeof(mbedtls_mpi_uint) ); + x = mbedtls_calloc( B.n, sizeof(mbedtls_mpi_uint) ); + d = mbedtls_calloc( B.n, sizeof(mbedtls_mpi_uint) ); - TEST_ASSERT( la != NULL ); - TEST_ASSERT( ra != NULL ); - TEST_ASSERT( Xa != NULL ); - TEST_ASSERT( da != NULL ); + size_t bytes = B.n * sizeof(mbedtls_mpi_uint); + + TEST_ASSERT( a != NULL ); + TEST_ASSERT( b != NULL ); + TEST_ASSERT( x != NULL ); + TEST_ASSERT( d != NULL ); /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as * processed by mbedtls_mpi_core_add_if()) are little endian, we can just * copy what we have as long as MSBs are 0 (which they are from calloc()) */ - memcpy( la, l.p, l.n * sizeof(mbedtls_mpi_uint) ); - memcpy( ra, r.p, r.n * sizeof(mbedtls_mpi_uint) ); - memcpy( Xa, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); + memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); + memcpy( x, X->p, X->n * sizeof(mbedtls_mpi_uint) ); - /* 1a) a += b, cond = 0 => there should be no carry */ - memcpy( da, la, r.n * sizeof(mbedtls_mpi_uint) ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( da, ra, r.n, 0 ) ); + /* 1a) a + b: d = a; d += b, cond = 0 => there should be no carry */ + memcpy( d, a, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, b, B.n, 0 ) ); - /* 1b) and a should be unchanged */ - ASSERT_COMPARE( da, bytes, la, bytes ); + /* 1b) and d should be unchanged */ + ASSERT_COMPARE( d, bytes, a, bytes ); - /* 2a) a += b, cond = 1 => we should get the correct carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( da, ra, r.n, 1 ) ); + /* 2a) a + b: d = a; d += b, cond = 1 => we should get the correct carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, b, B.n, 1 ) ); - /* 2b) and a should have the correct result */ - ASSERT_COMPARE( da, bytes, Xa, bytes ); + /* 2b) and d should have the correct result */ + ASSERT_COMPARE( d, bytes, x, bytes ); - /* 3a) b += a, cond = 0 => there should be no carry */ - memcpy( da, ra, r.n * sizeof(mbedtls_mpi_uint) ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( da, la, r.n, 0 ) ); + /* 3a) b + a: d = b; d += a, cond = 0 => there should be no carry */ + memcpy( d, b, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, a, B.n, 0 ) ); - /* 3b) and b should be unchanged */ - ASSERT_COMPARE( da, bytes, ra, bytes ); + /* 3b) and d should be unchanged */ + ASSERT_COMPARE( d, bytes, b, bytes ); - /* 4a) b += a, cond = 1 => we should get the correct carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( da, la, r.n, 1 ) ); + /* 4a) b + a: d = b; d += a, cond = 1 => we should get the correct carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, a, B.n, 1 ) ); - /* 4b) and b should have the correct result */ - ASSERT_COMPARE( da, bytes, Xa, bytes ); + /* 4b) and d should have the correct result */ + ASSERT_COMPARE( d, bytes, x, bytes ); exit: - mbedtls_free( la ); - mbedtls_free( ra ); - mbedtls_free( Xa ); - mbedtls_free( da ); + mbedtls_free( a ); + mbedtls_free( b ); + mbedtls_free( x ); + mbedtls_free( d ); mbedtls_mpi_free( &X4 ); mbedtls_mpi_free( &X8 ); - mbedtls_mpi_free( &l ); - mbedtls_mpi_free( &r ); + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &B ); } /* END_CASE */ From a043aeb95cfa8297991d66a398879bff0220842e Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 2 Sep 2022 10:59:59 +0100 Subject: [PATCH 0181/1028] Rename variables and update comments in mpi_core_sub test Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.function | 92 ++++++++++++++-------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 32e08a9425..915e33e60a 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1827,34 +1827,34 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_sub( char * input_l, char * input_r, +void mpi_core_sub( char * input_A, char * input_B, char * input_X4, char * input_X8, int carry ) { - mbedtls_mpi l, r, X4, X8; - mbedtls_mpi_uint *la = NULL; - mbedtls_mpi_uint *ra = NULL; - mbedtls_mpi_uint *Xa = NULL; - mbedtls_mpi_uint *da = NULL; + mbedtls_mpi A, B, X4, X8; + mbedtls_mpi_uint *a = NULL; + mbedtls_mpi_uint *b = NULL; + mbedtls_mpi_uint *x = NULL; /* expected */ + mbedtls_mpi_uint *r = NULL; /* result */ - mbedtls_mpi_init( &l ); - mbedtls_mpi_init( &r ); + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &B ); mbedtls_mpi_init( &X4 ); mbedtls_mpi_init( &X8 ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &l, input_l ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &r, input_r ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, l.s ); - TEST_EQUAL( 1, r.s ); + TEST_EQUAL( 1, A.s ); + TEST_EQUAL( 1, B.s ); TEST_EQUAL( 1, X4.s ); TEST_EQUAL( 1, X8.s ); /* Get the number of limbs we will need */ - size_t limbs = ( l.n < r.n ) ? r.n : l.n; + size_t limbs = ( A.n < B.n ) ? B.n : A.n; size_t bytes = limbs * sizeof(mbedtls_mpi_uint); /* We only need to work with X4 or X8, depending on sizeof(mbedtls_mpi_uint) */ @@ -1864,55 +1864,55 @@ void mpi_core_sub( char * input_l, char * input_r, TEST_ASSERT( X->n <= limbs ); /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ - la = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); - ra = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); - Xa = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); - da = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); + a = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); + b = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); + x = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); + r = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); - TEST_ASSERT( la != NULL ); - TEST_ASSERT( ra != NULL ); - TEST_ASSERT( Xa != NULL ); - TEST_ASSERT( da != NULL ); + TEST_ASSERT( a != NULL ); + TEST_ASSERT( b != NULL ); + TEST_ASSERT( x != NULL ); + TEST_ASSERT( r != NULL ); /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as - * processed by mbedtls_mpi_core_add_if()) are little endian, we can just + * processed by mbedtls_mpi_core_sub()) are little endian, we can just * copy what we have as long as MSBs are 0 (which they are from calloc()) */ - memcpy( la, l.p, l.n * sizeof(mbedtls_mpi_uint) ); - memcpy( ra, r.p, r.n * sizeof(mbedtls_mpi_uint) ); - memcpy( Xa, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); + memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); + memcpy( x, X->p, X->n * sizeof(mbedtls_mpi_uint) ); - /* 1a) d = l - r => we should get the correct carry */ - TEST_EQUAL( mbedtls_mpi_core_sub( da, la, ra, limbs ), (mbedtls_mpi_uint) carry ); + /* 1a) r = a - b => we should get the correct carry */ + TEST_EQUAL( mbedtls_mpi_core_sub( r, a, b, limbs ), (mbedtls_mpi_uint) carry ); - /* 1b) d = l - r => we should get the correct result */ - ASSERT_COMPARE( da, bytes, Xa, bytes ); + /* 1b) r = a - b => we should get the correct result */ + ASSERT_COMPARE( r, bytes, x, bytes ); - /* 2 and 3 test "d may be aliased to l or r" */ - /* 2a) l -= r => we should get the correct carry (use d to avoid clobbering l) */ - memcpy( da, la, limbs * sizeof(mbedtls_mpi_uint) ); - TEST_EQUAL( mbedtls_mpi_core_sub( da, da, ra, limbs ), (mbedtls_mpi_uint) carry ); + /* 2 and 3 test "r may be aliased to a or b" */ + /* 2a) r = a; r -= b => we should get the correct carry (use r to avoid clobbering a) */ + memcpy( r, a, bytes ); + TEST_EQUAL( mbedtls_mpi_core_sub( r, r, b, limbs ), (mbedtls_mpi_uint) carry ); - /* 2b) l -= r => we should get the correct result */ - ASSERT_COMPARE( da, bytes, Xa, bytes ); + /* 2b) r -= b => we should get the correct result */ + ASSERT_COMPARE( r, bytes, x, bytes ); - /* 3a) r = l - r => we should get the correct carry (use d to avoid clobbering r) */ - memcpy( da, ra, limbs * sizeof(mbedtls_mpi_uint) ); - TEST_EQUAL( mbedtls_mpi_core_sub( da, la, da, limbs ), (mbedtls_mpi_uint) carry ); + /* 3a) r = b; r = a - r => we should get the correct carry (use r to avoid clobbering b) */ + memcpy( r, b, bytes ); + TEST_EQUAL( mbedtls_mpi_core_sub( r, a, r, limbs ), (mbedtls_mpi_uint) carry ); - /* 3b) r = l - r => we should get the correct result */ - ASSERT_COMPARE( da, bytes, Xa, bytes ); + /* 3b) r = a - b => we should get the correct result */ + ASSERT_COMPARE( r, bytes, x, bytes ); exit: - mbedtls_free( la ); - mbedtls_free( ra ); - mbedtls_free( Xa ); - mbedtls_free( da ); + mbedtls_free( a ); + mbedtls_free( b ); + mbedtls_free( x ); + mbedtls_free( r ); + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &B ); mbedtls_mpi_free( &X4 ); mbedtls_mpi_free( &X8 ); - mbedtls_mpi_free( &l ); - mbedtls_mpi_free( &r ); } /* END_CASE */ From 42dfac6ae8383bbc90213ca85f2396545444aa17 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 2 Sep 2022 11:16:39 +0100 Subject: [PATCH 0182/1028] Rename variables and update comments in mpi_core_mla test Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.function | 74 ++++++++++++++-------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 915e33e60a..82789392db 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1917,38 +1917,38 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_mla( char * input_d, char * input_s, char * input_b, +void mpi_core_mla( char * input_A, char * input_B, char * input_S, char * input_X4, char * input_cy4, char * input_X8, char * input_cy8 ) { - /* We are testing d += s * b; d, s are MPIs, b is a scalar. + /* We are testing A += B * s; A, B are MPIs, s is a scalar. * - * However, we encode b as an MPI in the .data file for ease of handling. + * However, we encode s as an MPI in the .data file for ease of handling. * * We also have the different results for sizeof(mbedtls_mpi_uint) == 4 or 8. */ - mbedtls_mpi d, s, b, X4, X8, cy4, cy8; - mbedtls_mpi_uint *da = NULL; - mbedtls_mpi_uint *Xa = NULL; + mbedtls_mpi A, B, S, X4, X8, cy4, cy8; + mbedtls_mpi_uint *a = NULL; + mbedtls_mpi_uint *x = NULL; - mbedtls_mpi_init( &d ); - mbedtls_mpi_init( &s ); - mbedtls_mpi_init( &b ); + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &B ); + mbedtls_mpi_init( &S ); mbedtls_mpi_init( &X4 ); mbedtls_mpi_init( &X8 ); mbedtls_mpi_init( &cy4 ); mbedtls_mpi_init( &cy8 ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &d, input_d ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &s, input_s ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &b, input_b ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &S, input_S ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &cy4, input_cy4 ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &cy8, input_cy8 ) ); - /* The MPI encoding of scalar b must be only 1 limb */ - TEST_EQUAL( 1, b.n ); + /* The MPI encoding of scalar s must be only 1 limb */ + TEST_EQUAL( 1, S.n ); /* We only need to work with X4 or X8, and cy4 or cy8, depending on sizeof(mbedtls_mpi_uint) */ mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; @@ -1958,50 +1958,50 @@ void mpi_core_mla( char * input_d, char * input_s, char * input_b, TEST_EQUAL( 1, cy->n ); /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, d.s ); - TEST_EQUAL( 1, s.s ); - TEST_EQUAL( 1, b.s ); + TEST_EQUAL( 1, A.s ); + TEST_EQUAL( 1, B.s ); + TEST_EQUAL( 1, S.s ); TEST_EQUAL( 1, X->s ); TEST_EQUAL( 1, cy->s ); /* Get the (max) number of limbs we will need */ - size_t limbs = ( d.n < s.n ) ? s.n : d.n; + size_t limbs = ( A.n < B.n ) ? B.n : A.n; size_t bytes = limbs * sizeof(mbedtls_mpi_uint); /* The result shouldn't have more limbs than the longest input */ TEST_ASSERT( X->n <= limbs ); /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ - da = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); - Xa = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); + a = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); + x = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); - TEST_ASSERT( da != NULL ); - TEST_ASSERT( Xa != NULL ); + TEST_ASSERT( a != NULL ); + TEST_ASSERT( x != NULL ); /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as - * processed by mbedtls_mpi_core_add_if()) are little endian, we can just - * copy what we have as long as MSBs are 0 (which they are from calloc()) + * processed by mbedtls_mpi_core_mla()) are little endian, we can just + * copy what we have as long as MSBs are 0 (which they are from calloc()). */ - memcpy( da, d.p, d.n * sizeof(mbedtls_mpi_uint) ); - memcpy( Xa, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); + memcpy( x, X->p, X->n * sizeof(mbedtls_mpi_uint) ); - /* 1a) d += s * b => we should get the correct carry */ - TEST_EQUAL( mbedtls_mpi_core_mla( da, limbs, s.p, s.n, *b.p ), *cy->p ); + /* 1a) A += B * s => we should get the correct carry */ + TEST_EQUAL( mbedtls_mpi_core_mla( a, limbs, B.p, B.n, *S.p ), *cy->p ); - /* 1b) d += s * b => we should get the correct result */ - ASSERT_COMPARE( da, bytes, Xa, bytes ); + /* 1b) A += B * s => we should get the correct result */ + ASSERT_COMPARE( a, bytes, x, bytes ); exit: - mbedtls_free( da ); - mbedtls_free( Xa ); + mbedtls_free( a ); + mbedtls_free( x ); - mbedtls_mpi_free( &cy4 ); - mbedtls_mpi_free( &cy8 ); + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &B ); + mbedtls_mpi_free( &S ); mbedtls_mpi_free( &X4 ); mbedtls_mpi_free( &X8 ); - mbedtls_mpi_free( &b ); - mbedtls_mpi_free( &s ); - mbedtls_mpi_free( &d ); + mbedtls_mpi_free( &cy4 ); + mbedtls_mpi_free( &cy8 ); } /* END_CASE */ From 1135b200648da23dec2aac7bffaa50eb0bf672ed Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 2 Sep 2022 11:46:18 +0100 Subject: [PATCH 0183/1028] Add mbedtls_mpi_core_add_if() tests for when inputs are aliased Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.function | 31 ++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 82789392db..6f5e349472 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1767,12 +1767,13 @@ void mpi_core_add_if( char * input_A, char * input_B, * We generated test data such that B was always >= A, so that's how many * limbs each of these need. */ - a = mbedtls_calloc( B.n, sizeof(mbedtls_mpi_uint) ); - b = mbedtls_calloc( B.n, sizeof(mbedtls_mpi_uint) ); - x = mbedtls_calloc( B.n, sizeof(mbedtls_mpi_uint) ); - d = mbedtls_calloc( B.n, sizeof(mbedtls_mpi_uint) ); + size_t limbs = B.n; + a = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); + b = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); + x = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); + d = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); - size_t bytes = B.n * sizeof(mbedtls_mpi_uint); + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); TEST_ASSERT( a != NULL ); TEST_ASSERT( b != NULL ); @@ -1789,30 +1790,42 @@ void mpi_core_add_if( char * input_A, char * input_B, /* 1a) a + b: d = a; d += b, cond = 0 => there should be no carry */ memcpy( d, a, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, b, B.n, 0 ) ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, b, limbs, 0 ) ); /* 1b) and d should be unchanged */ ASSERT_COMPARE( d, bytes, a, bytes ); /* 2a) a + b: d = a; d += b, cond = 1 => we should get the correct carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, b, B.n, 1 ) ); + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, b, limbs, 1 ) ); /* 2b) and d should have the correct result */ ASSERT_COMPARE( d, bytes, x, bytes ); /* 3a) b + a: d = b; d += a, cond = 0 => there should be no carry */ memcpy( d, b, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, a, B.n, 0 ) ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, a, limbs, 0 ) ); /* 3b) and d should be unchanged */ ASSERT_COMPARE( d, bytes, b, bytes ); /* 4a) b + a: d = b; d += a, cond = 1 => we should get the correct carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, a, B.n, 1 ) ); + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, a, limbs, 1 ) ); /* 4b) and d should have the correct result */ ASSERT_COMPARE( d, bytes, x, bytes ); + /* 5) a + b where a and b are aliased - only when a == b */ + if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) + { + /* 5a) cond = 0 => no carry, and no change to b */ + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( b, b, limbs, 0 ) ); + ASSERT_COMPARE( b, bytes, B.p, bytes ); + + /* 5b) cond = 1 => correct carry, and correct result in b */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( b, b, limbs, 1 ) ); + ASSERT_COMPARE( b, bytes, x, bytes ); + } + exit: mbedtls_free( a ); mbedtls_free( b ); From a4668a6b6ca7d6a0a07ed5ff958229a619b8ac66 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Fri, 2 Sep 2022 11:56:34 +0100 Subject: [PATCH 0184/1028] Rework TestGenerator to add file targets BaseTarget-derived targets are now added to TestGenerator.targets in initialization. This reduces repeated code in generate_xxx_tests.py scripts which use this framework. Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 29 ++++++++++++++++---------- tests/scripts/generate_bignum_tests.py | 9 +------- tests/scripts/generate_psa_tests.py | 2 +- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index 1adf8e24f5..57eb2be1fa 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -133,6 +133,11 @@ class TestGenerator: """Generate test data.""" def __init__(self, options) -> None: self.test_suite_directory = getattr(options, 'directory') + # Add file Targets which have been declared in other modules + self.targets.update({ + subclass.target_basename: subclass.generate_tests + for subclass in BaseTarget.__subclasses__() + }) def filename_for(self, basename: str) -> str: """The location of the data file with the specified base name.""" @@ -149,7 +154,7 @@ class TestGenerator: # Note that targets whose names contain 'test_format' have their content # validated by `abi_check.py`. - TARGETS = {} # type: Dict[str, Callable[..., Iterable[test_case.TestCase]]] + targets = {} # type: Dict[str, Callable[..., Iterable[test_case.TestCase]]] def generate_target(self, name: str, *target_args) -> None: """Generate cases and write to data file for a target. @@ -157,7 +162,7 @@ class TestGenerator: For target callables which require arguments, override this function and pass these arguments using super() (see PSATestGenerator). """ - test_cases = self.TARGETS[name](*target_args) + test_cases = self.targets[name](*target_args) self.write_test_data_file(name, test_cases) def main(args, generator_class: Type[TestGenerator] = TestGenerator): @@ -170,25 +175,27 @@ def main(args, generator_class: Type[TestGenerator] = TestGenerator): parser.add_argument('--directory', default="tests/suites", metavar='DIR', help='Output directory (default: tests/suites)') parser.add_argument('targets', nargs='*', metavar='TARGET', - default=sorted(generator_class.TARGETS), help='Target file to generate (default: all; "-": none)') options = parser.parse_args(args) build_tree.chdir_to_root() generator = generator_class(options) if options.list: - for name in sorted(generator.TARGETS): + for name in sorted(generator.targets): print(generator.filename_for(name)) return # List in a cmake list format (i.e. ';'-separated) if options.list_for_cmake: print(';'.join(generator.filename_for(name) - for name in sorted(generator.TARGETS)), end='') + for name in sorted(generator.targets)), end='') return - # Allow "-" as a special case so you can run - # ``generate_xxx_tests.py - $targets`` and it works uniformly whether - # ``$targets`` is empty or not. - options.targets = [os.path.basename(re.sub(r'\.data\Z', r'', target)) - for target in options.targets - if target != '-'] + if options.targets: + # Allow "-" as a special case so you can run + # ``generate_xxx_tests.py - $targets`` and it works uniformly whether + # ``$targets`` is empty or not. + options.targets = [os.path.basename(re.sub(r'\.data\Z', r'', target)) + for target in options.targets + if target != '-'] + else: + options.targets = sorted(generator.targets) for target in options.targets: generator.generate_target(target) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index b08ba37852..f6136804be 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -231,12 +231,5 @@ class BignumAdd(BignumOperation): return quote_str(hex(self.int_l + self.int_r).replace("0x", "", 1)) -class BignumTestGenerator(test_generation.TestGenerator): - """Test generator subclass, for bignum file Targets.""" - TARGETS = { - subclass.target_basename: subclass.generate_tests for subclass in - test_generation.BaseTarget.__subclasses__() - } # type: Dict[str, Callable[[], Iterable[test_case.TestCase]]] - if __name__ == '__main__': - test_generation.main(sys.argv[1:], BignumTestGenerator) + test_generation.main(sys.argv[1:]) diff --git a/tests/scripts/generate_psa_tests.py b/tests/scripts/generate_psa_tests.py index 9f32655aed..81b35c9b39 100755 --- a/tests/scripts/generate_psa_tests.py +++ b/tests/scripts/generate_psa_tests.py @@ -896,7 +896,7 @@ class PSATestGenerator(test_generation.TestGenerator): """Test generator subclass including PSA targets and info.""" # Note that targets whose names contain 'test_format' have their content # validated by `abi_check.py`. - TARGETS = { + targets = { 'test_suite_psa_crypto_generate_key.generated': lambda info: KeyGenerate(info).test_cases_for_key_generation(), 'test_suite_psa_crypto_not_supported.generated': From 56013081c7f26b89551c7f3ca37f74cc0bda3377 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Fri, 2 Sep 2022 12:57:37 +0100 Subject: [PATCH 0185/1028] Remove unused imports Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 4 ++-- tests/scripts/generate_bignum_tests.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index 57eb2be1fa..682f7b0365 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -193,8 +193,8 @@ def main(args, generator_class: Type[TestGenerator] = TestGenerator): # ``generate_xxx_tests.py - $targets`` and it works uniformly whether # ``$targets`` is empty or not. options.targets = [os.path.basename(re.sub(r'\.data\Z', r'', target)) - for target in options.targets - if target != '-'] + for target in options.targets + if target != '-'] else: options.targets = sorted(generator.targets) for target in options.targets: diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index f6136804be..2a8107725e 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -58,7 +58,7 @@ import itertools import sys from abc import ABCMeta, abstractmethod -from typing import Callable, Dict, Iterable, Iterator, List, Tuple, TypeVar, cast +from typing import Iterator, List, Tuple, TypeVar, cast import scripts_path # pylint: disable=unused-import from mbedtls_dev import test_case From 67c9247ed9930a9822b0df339e212d9b6d6f12b5 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 2 Sep 2022 13:28:59 +0100 Subject: [PATCH 0186/1028] Move the T++ in mbedtls_mpi_core_montmul() to within the loop body Signed-off-by: Tom Cosgrove --- library/bignum_core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index cfcf91a835..13fc074a6d 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -411,7 +411,7 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, { memset( T, 0, ( 2 * AN_limbs + 1 ) * ciL ); - for( size_t i = 0; i < AN_limbs; i++, T++ ) + for( size_t i = 0; i < AN_limbs; i++ ) { /* T = (T + u0*B + u1*N) / 2^biL */ mbedtls_mpi_uint u0 = A[i]; @@ -419,6 +419,8 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, (void) mbedtls_mpi_core_mla( T, AN_limbs + 2, B, B_limbs, u0 ); (void) mbedtls_mpi_core_mla( T, AN_limbs + 2, N, AN_limbs, u1 ); + + T++; } /* From 855e45c81744de3f6ff6e7991eb39f00202fa517 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Fri, 2 Sep 2022 17:26:19 +0100 Subject: [PATCH 0187/1028] Use simpler int to hex string conversion Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 2a8107725e..cc4db4c59e 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -228,7 +228,7 @@ class BignumAdd(BignumOperation): self.symbol = "+" def result(self) -> str: - return quote_str(hex(self.int_l + self.int_r).replace("0x", "", 1)) + return quote_str("{:x}".format(self.int_l + self.int_r)) if __name__ == '__main__': From 5e0654a324f2fde940cc1aeb9ea629e55ecf9eea Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Sat, 3 Sep 2022 06:50:09 -0400 Subject: [PATCH 0188/1028] Add a compat.sh run to psa_crypto_config_accel_hash_use_psa Signed-off-by: Andrzej Kurek --- tests/scripts/all.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 079184af9b..c661ea3106 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1889,6 +1889,7 @@ component_test_psa_crypto_config_accel_hash_use_psa () { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" make test + tests/compat.sh } component_test_psa_crypto_config_accel_cipher () { From 5bbdb7013146b67e680f2e473137fb18b64f90c8 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Mon, 5 Sep 2022 17:54:15 +0200 Subject: [PATCH 0189/1028] Fix style in psa_pake_input() Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index dd1a91e5a4..dfd95d06dd 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -540,7 +540,8 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) if( operation->alg == PSA_ALG_JPAKE ) { - if( operation->state == PSA_PAKE_STATE_SETUP ) { + if( operation->state == PSA_PAKE_STATE_SETUP ) + { status = psa_pake_ecjpake_setup( operation ); if( status != PSA_SUCCESS ) { From 51009d72970de6fe1a97a6a655031a24ba1f3532 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Mon, 5 Sep 2022 17:59:54 +0200 Subject: [PATCH 0190/1028] Add comment in ecjpake_do_round() explaining input errors can be detected any time in the input sequence Signed-off-by: Neil Armstrong --- tests/suites/test_suite_psa_crypto.function | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index c5a8cde6fa..12d7a89fba 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -780,6 +780,14 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, expected_status = PSA_ERROR_DATA_INVALID; } + /* + * When injecting errors in inputs, the implementation is + * free to detect it right away of with a delay. + * This permits delaying the error until the end of the input + * sequence, if no error appears then, this will be treated + * as an error. + */ + if( client_input_first == 1 ) { /* Client first round Input */ From 78c4e8e9cba09c9386fce0dbb47dcc1640e0a930 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Mon, 5 Sep 2022 18:08:13 +0200 Subject: [PATCH 0191/1028] Make ecjpake_do_round() return void and use TEST_ASSERT with a descriptive text instead of returning a value Signed-off-by: Neil Armstrong --- tests/suites/test_suite_psa_crypto.function | 56 +++++++++------------ 1 file changed, 25 insertions(+), 31 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 12d7a89fba..4ca308d1ae 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -706,11 +706,11 @@ exit: } #if defined(PSA_WANT_ALG_JPAKE) -static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, - psa_pake_operation_t *server, - psa_pake_operation_t *client, - int client_input_first, - int round, int inject_error ) +static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, + psa_pake_operation_t *server, + psa_pake_operation_t *client, + int client_input_first, + int round, int inject_error ) { unsigned char *buffer0 = NULL, *buffer1 = NULL; size_t buffer_length = ( @@ -733,7 +733,6 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, size_t c_x1_pr_off, c_x2_pr_off, c_x2s_pr_off; psa_status_t expected_status = PSA_SUCCESS; psa_status_t status; - int ret = 0; ASSERT_ALLOC( buffer0, buffer_length ); ASSERT_ALLOC( buffer1, buffer_length ); @@ -868,9 +867,9 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, TEST_EQUAL( status, PSA_SUCCESS ); } - /* Error didn't trigger, exit with error */ + /* Error didn't trigger, make test fail */ if( inject_error == 1 ) - goto exit; + TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); } /* Client first round Output */ @@ -985,9 +984,9 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, TEST_EQUAL( status, PSA_SUCCESS ); } - /* Error didn't trigger, exit with error */ + /* Error didn't trigger, make test fail */ if( inject_error == 1 ) - goto exit; + TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); } if( inject_error == 2 ) @@ -1070,9 +1069,9 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, TEST_EQUAL( status, PSA_SUCCESS ); } - /* Error didn't trigger, exit with error */ + /* Error didn't trigger, make test fail */ if( inject_error == 2 ) - goto exit; + TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); break; @@ -1143,9 +1142,9 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, TEST_EQUAL( status, PSA_SUCCESS ); } - /* Error didn't trigger, exit with error */ + /* Error didn't trigger, make test fail */ if( inject_error == 3 ) - goto exit; + TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); } /* Client second round Output */ @@ -1208,9 +1207,9 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, TEST_EQUAL( status, PSA_SUCCESS ); } - /* Error didn't trigger, exit with error */ + /* Error didn't trigger, make test fail */ if( inject_error == 3 ) - goto exit; + TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); } if( inject_error == 4 ) @@ -1256,20 +1255,17 @@ static int ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, TEST_EQUAL( status, PSA_SUCCESS ); } - /* Error didn't trigger, exit with error */ + /* Error didn't trigger, make test fail */ if( inject_error == 4 ) - goto exit; + TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); break; } - ret = 1; - exit: mbedtls_free( buffer0 ); mbedtls_free( buffer1 ); - return( ret ); } #endif /* PSA_WANT_ALG_JPAKE */ @@ -8868,16 +8864,14 @@ void ecjpake_rounds_inject( int alg_arg, int primitive_arg, int hash_arg, PSA_ASSERT( psa_pake_set_password_key( &server, key ) ); PSA_ASSERT( psa_pake_set_password_key( &client, key ) ); - TEST_EQUAL( ecjpake_do_round( alg, primitive_arg, &server, &client, - client_input_first, 1, - inject_error ), 1 ); + ecjpake_do_round( alg, primitive_arg, &server, &client, + client_input_first, 1, inject_error ); if( inject_error == 1 || inject_error == 2 ) goto exit; - TEST_EQUAL( ecjpake_do_round( alg, primitive_arg, &server, &client, - client_input_first, 2, - inject_error ), 1 ); + ecjpake_do_round( alg, primitive_arg, &server, &client, + client_input_first, 2, inject_error ); exit: psa_destroy_key( key ); @@ -8947,8 +8941,8 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, PSA_ERROR_BAD_STATE ); /* First round */ - TEST_EQUAL( ecjpake_do_round( alg, primitive_arg, &server, &client, - client_input_first, 1, 0 ), 1 ); + ecjpake_do_round( alg, primitive_arg, &server, &client, + client_input_first, 1, 0 ); TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), PSA_ERROR_BAD_STATE ); @@ -8956,8 +8950,8 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, PSA_ERROR_BAD_STATE ); /* Second round */ - TEST_EQUAL( ecjpake_do_round( alg, primitive_arg, &server, &client, - client_input_first, 2, 0 ), 1 ); + ecjpake_do_round( alg, primitive_arg, &server, &client, + client_input_first, 2, 0 ); PSA_ASSERT( psa_pake_get_implicit_key( &server, &server_derive ) ); PSA_ASSERT( psa_pake_get_implicit_key( &client, &client_derive ) ); From bcd5bd933e6d6fd8a89ae117464092a41fcb5be4 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Mon, 5 Sep 2022 18:33:23 +0200 Subject: [PATCH 0192/1028] Add a comment expliciting usage of internal PAKE step/state/sequence enums Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 61 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index dfd95d06dd..3383ce29f3 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -101,6 +101,67 @@ enum psa_pake_state PSA_PAKE_INPUT_X4S = 6, }; +/* + * The first PAKE step shares the same sequences of the second PAKE step + * but with a second set of KEY_SHARE/ZK_PUBLIC/ZK_PROOF outputs/inputs. + * This it's simpler to share the same sequences numbers of the first + * set of KEY_SHARE/ZK_PUBLIC/ZK_PROOF outputs/inputs in both PAKE steps. + * + * State sequence with step, state & sequence enums: + * => Input & Output Step = PSA_PAKE_STEP_INVALID + * => state = PSA_PAKE_STATE_INVALID + * psa_pake_setup() + * => Input & Output Step = PSA_PAKE_STEP_X1_X2 + * => state = PSA_PAKE_STATE_SETUP + * => sequence = PSA_PAKE_SEQ_INVALID + * | + * |--- In any order: (First round input before or after first round output) + * | | First call of psa_pake_output() or psa_pake_input() sets + * | | state = PSA_PAKE_STATE_READY + * | | + * | |------ In Order: => state = PSA_PAKE_OUTPUT_X1_X2 + * | | | psa_pake_output() => sequence = PSA_PAKE_X1_STEP_KEY_SHARE + * | | | psa_pake_output() => sequence = PSA_PAKE_X1_STEP_ZK_PUBLIC + * | | | psa_pake_output() => sequence = PSA_PAKE_X1_STEP_ZK_PROOF + * | | | psa_pake_output() => sequence = PSA_PAKE_X2_STEP_KEY_SHARE + * | | | psa_pake_output() => sequence = PSA_PAKE_X2_STEP_ZK_PUBLIC + * | | | psa_pake_output() => sequence = PSA_PAKE_X2_STEP_ZK_PROOF + * | | | => state = PSA_PAKE_STATE_READY + * | | | => sequence = PSA_PAKE_SEQ_INVALID + * | | \ => Output Step = PSA_PAKE_STEP_X2S + * | | + * | |------ In Order: => state = PSA_PAKE_INPUT_X1_X2 + * | | | psa_pake_input() => sequence = PSA_PAKE_X1_STEP_KEY_SHARE + * | | | psa_pake_input() => sequence = PSA_PAKE_X1_STEP_ZK_PUBLIC + * | | | psa_pake_input() => sequence = PSA_PAKE_X1_STEP_ZK_PROOF + * | | | psa_pake_input() => sequence = PSA_PAKE_X2_STEP_KEY_SHARE + * | | | psa_pake_input() => sequence = PSA_PAKE_X2_STEP_ZK_PUBLIC + * | | | psa_pake_input() => sequence = PSA_PAKE_X2_STEP_ZK_PROOF + * | | | => state = PSA_PAKE_STATE_READY + * | | | => sequence = PSA_PAKE_SEQ_INVALID + * | | \ => Output Step = PSA_PAKE_INPUT_X4S + * | + * |--- In any order: (Second round input before or after second round output) + * | | + * | |------ In Order: => state = PSA_PAKE_OUTPUT_X2S + * | | | psa_pake_output() => sequence = PSA_PAKE_X1_STEP_KEY_SHARE + * | | | psa_pake_output() => sequence = PSA_PAKE_X1_STEP_ZK_PUBLIC + * | | | psa_pake_output() => sequence = PSA_PAKE_X1_STEP_ZK_PROOF + * | | | => state = PSA_PAKE_STATE_READY + * | | | => sequence = PSA_PAKE_SEQ_INVALID + * | | \ => Output Step = PSA_PAKE_STEP_DERIVE + * | | + * | |------ In Order: => state = PSA_PAKE_INPUT_X4S + * | | | psa_pake_input() => sequence = PSA_PAKE_X1_STEP_KEY_SHARE + * | | | psa_pake_input() => sequence = PSA_PAKE_X1_STEP_ZK_PUBLIC + * | | | psa_pake_input() => sequence = PSA_PAKE_X1_STEP_ZK_PROOF + * | | | => state = PSA_PAKE_STATE_READY + * | | | => sequence = PSA_PAKE_SEQ_INVALID + * | | \ => Output Step = PSA_PAKE_STEP_DERIVE + * | + * psa_pake_get_implicit_key() + * => Input & Output Step = PSA_PAKE_STEP_INVALID + */ enum psa_pake_sequence { PSA_PAKE_SEQ_INVALID = 0, From fd310ebf2d99fc6ccbfb70dff5eca203c94dbd28 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 6 Sep 2022 09:16:35 +0800 Subject: [PATCH 0193/1028] fix coding style issues Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 2 +- library/ssl_tls13_server.c | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 7b26bbbfb7..c3ee44d0b4 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -689,7 +689,7 @@ static int ssl_tls13_get_psk_to_offer( #if defined(MBEDTLS_SSL_SESSION_TICKETS) /* Check if a ticket has been configured. */ - if( ssl->session_negotiate != NULL && + if( ssl->session_negotiate != NULL && ssl->session_negotiate->ticket != NULL ) { #if defined(MBEDTLS_HAVE_TIME) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index c139fb5369..0818a8f186 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -132,7 +132,7 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( size_t identity_len, uint32_t obfuscated_ticket_age ) { - int ret; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *ticket_buffer; ((void) obfuscated_ticket_age); @@ -146,12 +146,9 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( ssl->conf->f_ticket_parse == NULL ? "NOT " : "", ssl->conf->f_ticket_write == NULL ? "NOT " : "" ) ); - if( ssl->conf->f_ticket_parse == NULL || - identity_len == 0 ) - { - /* Ticket parser is not configured, Skip */ + /* Ticket parser is not configured, Skip */ + if( ssl->conf->f_ticket_parse == NULL || identity_len == 0 ) return( 0 ); - } /* We create a copy of the encrypted ticket since decrypting * it into the same buffer will wipe-out the original content. From 079472b4c94983fd93cca2dda8585a9729938010 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 6 Sep 2022 11:44:18 +0800 Subject: [PATCH 0194/1028] Add multiple pre-configured psk test for server Signed-off-by: Jerry Yu --- tests/opt-testcases/tls13-kex-modes.sh | 153 +++++++++++++------------ 1 file changed, 77 insertions(+), 76 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 70a60672be..a7724b4a85 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -17,6 +17,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # +P_SRV_PSK_LIST="psk_list=abc,dead,def,beef,Client_identity,6162636465666768696a6b6c6d6e6f70" requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -27,7 +28,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: PSK: No valid ciphersuite. G->m" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-CIPHER-ALL:+AES-256-GCM:+AEAD:+SHA384:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -47,7 +48,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: PSK: No valid ciphersuite. O->m" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -ciphersuites TLS_AES_256_GCM_SHA384\ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 1 \ @@ -62,7 +63,7 @@ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk, fail, no common kex mode" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -79,7 +80,7 @@ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -98,7 +99,7 @@ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -116,7 +117,7 @@ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -134,7 +135,7 @@ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -153,7 +154,7 @@ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -171,7 +172,7 @@ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -190,7 +191,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -210,7 +211,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -229,7 +230,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -248,7 +249,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -268,7 +269,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk_ephemeral, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -287,7 +288,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk_ephemeral, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -306,7 +307,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_ephemeral, fail, no common kex mode" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -324,7 +325,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -344,7 +345,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_all, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -363,7 +364,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -382,7 +383,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -402,7 +403,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk_all, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -421,7 +422,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -440,7 +441,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -460,7 +461,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -479,7 +480,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -498,7 +499,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -518,7 +519,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, good, key id mismatch, dhe." \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -537,7 +538,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -556,7 +557,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/ephemeral_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -576,7 +577,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/ephemeral_all, good, key id mismatch, dhe." \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -595,7 +596,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/ephemeral_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -614,7 +615,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/ephemeral_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -634,7 +635,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -654,7 +655,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/all, good, key id mismatch, dhe." \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -673,7 +674,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -692,7 +693,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -712,7 +713,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/all, good, key id mismatch, dhe." \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -731,7 +732,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -750,7 +751,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -770,7 +771,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -789,7 +790,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_or_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -809,7 +810,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk_or_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -829,7 +830,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk_or_ephemeral, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -848,7 +849,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_or_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -868,7 +869,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_or_ephemeral, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -886,7 +887,7 @@ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk, fail, no common kex mode" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 1 \ @@ -902,7 +903,7 @@ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -920,7 +921,7 @@ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 1 \ @@ -937,7 +938,7 @@ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -955,7 +956,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -974,7 +975,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 1 \ @@ -992,7 +993,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -1010,7 +1011,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1029,7 +1030,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk_ephemeral, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 1 \ @@ -1047,7 +1048,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk_ephemeral, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -1065,7 +1066,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1084,7 +1085,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_all, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 1 \ @@ -1102,7 +1103,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -1120,7 +1121,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1139,7 +1140,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk_all, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 1 \ @@ -1157,7 +1158,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -1175,7 +1176,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1194,7 +1195,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, good, key id mismatch, dhe." \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1212,7 +1213,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -1230,7 +1231,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/ephemeral_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1249,7 +1250,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/ephemeral_all, good, key id mismatch, dhe." \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1267,7 +1268,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/ephemeral_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -1285,7 +1286,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1304,7 +1305,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/all, good, key id mismatch, dhe." \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1322,7 +1323,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -1340,7 +1341,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1359,7 +1360,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/all, good, key id mismatch, dhe." \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1377,7 +1378,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -1395,7 +1396,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_or_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1414,7 +1415,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk_or_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1433,7 +1434,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk_or_ephemeral, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ From 58af2335d91dc3d50c28041a0b3449b891692ccd Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 6 Sep 2022 11:19:31 +0800 Subject: [PATCH 0195/1028] Add possible group tests for psk with ECDHE Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 4 + tests/opt-testcases/tls13-kex-modes.sh | 145 +++++++++++++++++++++++++ 2 files changed, 149 insertions(+) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index a5b414e974..a10e59bbc1 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -1674,6 +1674,10 @@ static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, adding key share extension" ) ); + MBEDTLS_SSL_DEBUG_MSG( 2, ( "server hello, write selected_group: %s (%04x)", + mbedtls_ssl_named_group_to_str( group ), + group ) ); + /* Check if we have space for header and length fields: * - extension_type (2 bytes) * - extension_data_length (2 bytes) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 70a60672be..af2a42d029 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -882,6 +882,81 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_or_ephemeral, fail, key materia -S "key exchange mode: psk_ephemeral" \ -S "key exchange mode: ephemeral" +requires_gnutls_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: G->m: psk_ephemeral group(secp256r1) check, good" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1 \ + --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ + localhost" \ + 0 \ + -s "write selected_group: secp256r1" \ + -S "key exchange mode: psk$" \ + -s "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: ephemeral" + +requires_gnutls_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: G->m: psk_ephemeral group(secp384r1) check, good" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP384R1 \ + --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ + localhost" \ + 0 \ + -s "write selected_group: secp384r1" \ + -S "key exchange mode: psk$" \ + -s "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: ephemeral" + +requires_gnutls_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: G->m: psk_ephemeral group(secp521r1) check, good" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP521R1 \ + --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ + localhost" \ + 0 \ + -s "write selected_group: secp521r1" \ + -S "key exchange mode: psk$" \ + -s "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: ephemeral" + +requires_gnutls_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: G->m: psk_ephemeral group(x25519) check, good" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519 \ + --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ + localhost" \ + 0 \ + -s "write selected_group: x25519" \ + -S "key exchange mode: psk$" \ + -s "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: ephemeral" + +requires_gnutls_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: G->m: psk_ephemeral group(x448) check, good" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X448 \ + --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ + localhost" \ + 0 \ + -s "write selected_group: x448" \ + -S "key exchange mode: psk$" \ + -s "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: ephemeral" + requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED @@ -1445,3 +1520,73 @@ run_test "TLS 1.3: O->m: all/psk_or_ephemeral, fail, key material mismatch" \ -S "key exchange mode: psk$" \ -S "key exchange mode: psk_ephemeral" \ -S "key exchange mode: ephemeral" + +requires_openssl_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: O->m: psk_ephemeral group(secp256r1) check, good" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups P-256 \ + -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ + 0 \ + -s "write selected_group: secp256r1" \ + -S "key exchange mode: psk$" \ + -s "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: ephemeral" + +requires_openssl_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: O->m: psk_ephemeral group(secp384r1) check, good" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups secp384r1 \ + -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ + 0 \ + -s "write selected_group: secp384r1" \ + -S "key exchange mode: psk$" \ + -s "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: ephemeral" + +requires_openssl_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: O->m: psk_ephemeral group(secp521r1) check, good" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups secp521r1 \ + -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ + 0 \ + -s "write selected_group: secp521r1" \ + -S "key exchange mode: psk$" \ + -s "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: ephemeral" + +requires_openssl_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: O->m: psk_ephemeral group(x25519) check, good" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups X25519 \ + -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ + 0 \ + -s "write selected_group: x25519" \ + -S "key exchange mode: psk$" \ + -s "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: ephemeral" + +requires_openssl_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: O->m: psk_ephemeral group(x448) check, good" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ + "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups X448 \ + -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ + 0 \ + -s "write selected_group: x448" \ + -S "key exchange mode: psk$" \ + -s "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: ephemeral" From 2a73f2187827bde02978d655f39a714e7b662cbd Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Tue, 6 Sep 2022 11:34:54 +0200 Subject: [PATCH 0196/1028] Fixup expected status handling in ecjpake_setup() and add more coverage for psa_pake_set_password_key() Signed-off-by: Neil Armstrong --- tests/suites/test_suite_psa_crypto.data | 32 ++++++----- tests/suites/test_suite_psa_crypto.function | 60 ++++++++++----------- 2 files changed, 49 insertions(+), 43 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index 38bc64cc18..c8b229c7f4 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -6448,51 +6448,59 @@ persistent_key_load_key_from_storage:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b PSA PAKE: invalid alg depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_SHA_256:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_INVALID_ARGUMENT +ecjpake_setup:PSA_ALG_SHA_256:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_INVALID_ARGUMENT:0:0:0 PSA PAKE: invalid primitive type depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_DH, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_DH, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_NOT_SUPPORTED:0:0:0 PSA PAKE: invalid primitive family depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_K1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_K1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_NOT_SUPPORTED:0:0:0 PSA PAKE: invalid primitive bits depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 128):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 128):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_NOT_SUPPORTED:0:0:0 PSA PAKE: invalid hash depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_1:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_1:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_NOT_SUPPORTED:0:0:0 PSA PAKE: ecjpake setup server output step first depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":0 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":0:0:0:0 PSA PAKE: ecjpake setup server input step first depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":0 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":0:0:0:0 PSA PAKE: ecjpake setup server empty password depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"":PSA_ERROR_BAD_STATE +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"":0:0:0:PSA_ERROR_BAD_STATE PSA PAKE: ecjpake setup client output step first depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":0 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":0:0:0:0 PSA PAKE: ecjpake setup client input step first depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:1:"abcd":0 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:1:"abcd":0:0:0:0 PSA PAKE: ecjpake setup client empty password depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"":PSA_ERROR_BAD_STATE +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"":0:0:0:PSA_ERROR_BAD_STATE + +PSA PAKE: ecjpake setup client bad password key type +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_DERIVE:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":0:0:PSA_ERROR_INVALID_ARGUMENT:0 + +PSA PAKE: ecjpake setup client bad password key usage +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_ENCRYPT:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":0:0:PSA_ERROR_NOT_PERMITTED:0 PSA PAKE: ecjpake setup invalid role NONE depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_NONE:0:"abcd":PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_NONE:0:"abcd":0:PSA_ERROR_NOT_SUPPORTED:0:0 PSA PAKE: ecjpake rounds depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 4ca308d1ae..c74acf6715 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -8657,19 +8657,29 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ -void ecjpake_setup( int alg_arg, int primitive_arg, int hash_arg, int role_arg, +void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, + int primitive_arg, int hash_arg, int role_arg, int input_first, data_t *pw_data, - int expected_status_arg ) + int expected_status_setup_arg, + int expected_status_set_role_arg, + int expected_status_set_password_key_arg, + int expected_status_input_output_arg) { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t operation = psa_pake_operation_init(); psa_algorithm_t alg = alg_arg; + psa_key_type_t key_type_pw = key_type_pw_arg; + psa_key_usage_t key_usage_pw = key_usage_pw_arg; psa_algorithm_t hash_alg = hash_arg; psa_pake_role_t role = role_arg; mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_status_t expected_status = expected_status_arg; - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + psa_status_t expected_status_setup = expected_status_setup_arg; + psa_status_t expected_status_set_role = expected_status_set_role_arg; + psa_status_t expected_status_set_password_key = + expected_status_set_password_key_arg; + psa_status_t expected_status_input_output = + expected_status_input_output_arg; unsigned char *output_buffer = NULL; size_t output_len = 0; @@ -8681,9 +8691,9 @@ void ecjpake_setup( int alg_arg, int primitive_arg, int hash_arg, int role_arg, if( pw_data->len > 0 ) { - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); + psa_set_key_usage_flags( &attributes, key_usage_pw ); psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); + psa_set_key_type( &attributes, key_type_pw ); PSA_ASSERT( psa_import_key( &attributes, pw_data->x, pw_data->len, &key ) ); } @@ -8710,37 +8720,25 @@ void ecjpake_setup( int alg_arg, int primitive_arg, int hash_arg, int role_arg, PSA_ASSERT( psa_pake_abort( &operation ) ); - status = psa_pake_setup( &operation, &cipher_suite ); - if( status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + TEST_EQUAL( psa_pake_setup( &operation, &cipher_suite ), + expected_status_setup ); + if( expected_status_setup != PSA_SUCCESS ) goto exit; - } - else - PSA_ASSERT( status ); TEST_EQUAL( psa_pake_setup( &operation, &cipher_suite ), PSA_ERROR_BAD_STATE ); - status = psa_pake_set_role( &operation, role ); - if( status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + TEST_EQUAL( psa_pake_set_role( &operation, role), + expected_status_set_role ); + if( expected_status_set_role != PSA_SUCCESS ) goto exit; - } - else - PSA_ASSERT( status ); if( pw_data->len > 0 ) { - status = psa_pake_set_password_key( &operation, key ); - if( status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + TEST_EQUAL( psa_pake_set_password_key( &operation, key ), + expected_status_set_password_key ); + if( expected_status_set_password_key != PSA_SUCCESS ) goto exit; - } - else - PSA_ASSERT( status ); } TEST_EQUAL( psa_pake_set_user( &operation, NULL, 0 ), @@ -8772,9 +8770,9 @@ void ecjpake_setup( int alg_arg, int primitive_arg, int hash_arg, int role_arg, TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, output_buffer, 66 ), - expected_status); + expected_status_input_output); - if( expected_status == PSA_SUCCESS ) + if( expected_status_input_output == PSA_SUCCESS ) { /* Buffer too large */ TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, @@ -8803,9 +8801,9 @@ void ecjpake_setup( int alg_arg, int primitive_arg, int hash_arg, int role_arg, TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, output_buffer, 512, &output_len ), - expected_status ); + expected_status_input_output ); - if( expected_status == PSA_SUCCESS ) + if( expected_status_input_output == PSA_SUCCESS ) { TEST_ASSERT( output_len > 0 ); From b39833cff2cba3a327d6b60bc6428d9b2ee41884 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Tue, 6 Sep 2022 11:36:02 +0200 Subject: [PATCH 0197/1028] Fix typo in psa_pake_sequence comment Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 3383ce29f3..519825084b 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -104,7 +104,7 @@ enum psa_pake_state /* * The first PAKE step shares the same sequences of the second PAKE step * but with a second set of KEY_SHARE/ZK_PUBLIC/ZK_PROOF outputs/inputs. - * This it's simpler to share the same sequences numbers of the first + * It's simpler to share the same sequences numbers of the first * set of KEY_SHARE/ZK_PUBLIC/ZK_PROOF outputs/inputs in both PAKE steps. * * State sequence with step, state & sequence enums: From 9720b881f5b839e53f9e39505bdf6a43a5625226 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Tue, 6 Sep 2022 11:39:21 +0200 Subject: [PATCH 0198/1028] Remove doxygen markup outside doxygen block in psa_pake_sequence comment Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 519825084b..f7be68786d 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -128,7 +128,7 @@ enum psa_pake_state * | | | psa_pake_output() => sequence = PSA_PAKE_X2_STEP_ZK_PROOF * | | | => state = PSA_PAKE_STATE_READY * | | | => sequence = PSA_PAKE_SEQ_INVALID - * | | \ => Output Step = PSA_PAKE_STEP_X2S + * | | | => Output Step = PSA_PAKE_STEP_X2S * | | * | |------ In Order: => state = PSA_PAKE_INPUT_X1_X2 * | | | psa_pake_input() => sequence = PSA_PAKE_X1_STEP_KEY_SHARE @@ -139,7 +139,7 @@ enum psa_pake_state * | | | psa_pake_input() => sequence = PSA_PAKE_X2_STEP_ZK_PROOF * | | | => state = PSA_PAKE_STATE_READY * | | | => sequence = PSA_PAKE_SEQ_INVALID - * | | \ => Output Step = PSA_PAKE_INPUT_X4S + * | | | => Output Step = PSA_PAKE_INPUT_X4S * | * |--- In any order: (Second round input before or after second round output) * | | @@ -149,7 +149,7 @@ enum psa_pake_state * | | | psa_pake_output() => sequence = PSA_PAKE_X1_STEP_ZK_PROOF * | | | => state = PSA_PAKE_STATE_READY * | | | => sequence = PSA_PAKE_SEQ_INVALID - * | | \ => Output Step = PSA_PAKE_STEP_DERIVE + * | | | => Output Step = PSA_PAKE_STEP_DERIVE * | | * | |------ In Order: => state = PSA_PAKE_INPUT_X4S * | | | psa_pake_input() => sequence = PSA_PAKE_X1_STEP_KEY_SHARE @@ -157,7 +157,7 @@ enum psa_pake_state * | | | psa_pake_input() => sequence = PSA_PAKE_X1_STEP_ZK_PROOF * | | | => state = PSA_PAKE_STATE_READY * | | | => sequence = PSA_PAKE_SEQ_INVALID - * | | \ => Output Step = PSA_PAKE_STEP_DERIVE + * | | | => Output Step = PSA_PAKE_STEP_DERIVE * | * psa_pake_get_implicit_key() * => Input & Output Step = PSA_PAKE_STEP_INVALID From c3f2767c2543961be7212bbd2a99cd371e1f4401 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 6 Sep 2022 13:06:28 +0200 Subject: [PATCH 0199/1028] hash_info.h: add MBEDTLS_MAX_HASH_SIZE macro Signed-off-by: Przemek Stekiel --- library/hash_info.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/library/hash_info.h b/library/hash_info.h index 54f5f7c2fd..1b7b46cda4 100644 --- a/library/hash_info.h +++ b/library/hash_info.h @@ -35,6 +35,20 @@ #include "mbedtls/md.h" #include "psa/crypto.h" +/** \def MBEDTLS_HASH_MAX_SIZE + * + * Maximum size of a hash based on configuration. + */ +#if defined(MBEDTLS_MD_C) && ( \ + !defined(MBEDTLS_PSA_CRYPTO_C) || \ + MBEDTLS_MD_MAX_SIZE >= PSA_HASH_MAX_SIZE ) +#define MBEDTLS_HASH_MAX_SIZE MBEDTLS_MD_MAX_SIZE +#elif defined(MBEDTLS_PSA_CRYPTO_C) && ( \ + !defined(MBEDTLS_MD_C) || \ + PSA_HASH_MAX_SIZE >= MBEDTLS_MD_MAX_SIZE ) +#define MBEDTLS_HASH_MAX_SIZE PSA_HASH_MAX_SIZE +#endif + /** Get the output length of the given hash type from its MD type. * * \note To get the output length from the PSA alg, use \c PSA_HASH_LENGTH(). From 40afdd2791d7f769fb131e447c274c2ced059a6a Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 6 Sep 2022 13:08:28 +0200 Subject: [PATCH 0200/1028] Make use of MBEDTLS_MAX_HASH_SIZE macro Signed-off-by: Przemek Stekiel --- library/pkcs12.c | 2 +- library/rsa.c | 11 ++++------- library/ssl_tls12_client.c | 7 ++----- library/x509_crt.c | 5 ++--- library/x509write_crt.c | 6 ++---- tests/suites/test_suite_ecdsa.function | 6 +++--- 6 files changed, 14 insertions(+), 23 deletions(-) diff --git a/library/pkcs12.c b/library/pkcs12.c index 06b0c125a1..f33507987b 100644 --- a/library/pkcs12.c +++ b/library/pkcs12.c @@ -324,7 +324,7 @@ int mbedtls_pkcs12_derivation( unsigned char *data, size_t datalen, unsigned char diversifier[128]; unsigned char salt_block[128], pwd_block[128], hash_block[128] = {0}; - unsigned char hash_output[64]; /* Maximal hash size for SHA512 */ + unsigned char hash_output[MBEDTLS_HASH_MAX_SIZE]; unsigned char *p; unsigned char c; int use_password = 0; diff --git a/library/rsa.c b/library/rsa.c index 50d15a1e87..e59755534f 100644 --- a/library/rsa.c +++ b/library/rsa.c @@ -57,12 +57,9 @@ /* We use MD first if it's available (for compatibility reasons) * and "fall back" to PSA otherwise (which needs psa_crypto_init()). */ #if defined(MBEDTLS_PKCS1_V21) -#if defined(MBEDTLS_MD_C) -#define HASH_MAX_SIZE MBEDTLS_MD_MAX_SIZE -#else /* MBEDTLS_MD_C */ +#if !defined(MBEDTLS_MD_C) #include "psa/crypto.h" #include "mbedtls/psa_util.h" -#define HASH_MAX_SIZE PSA_HASH_MAX_SIZE #endif /* MBEDTLS_MD_C */ #endif /* MBEDTLS_PKCS1_V21 */ @@ -1114,7 +1111,7 @@ static int mgf_mask( unsigned char *dst, size_t dlen, unsigned char *src, unsigned char *p; unsigned int hlen; size_t i, use_len; - unsigned char mask[HASH_MAX_SIZE]; + unsigned char mask[MBEDTLS_HASH_MAX_SIZE]; #if defined(MBEDTLS_MD_C) int ret = 0; const mbedtls_md_info_t *md_info; @@ -1469,7 +1466,7 @@ int mbedtls_rsa_rsaes_oaep_decrypt( mbedtls_rsa_context *ctx, size_t ilen, i, pad_len; unsigned char *p, bad, pad_done; unsigned char buf[MBEDTLS_MPI_MAX_SIZE]; - unsigned char lhash[HASH_MAX_SIZE]; + unsigned char lhash[MBEDTLS_HASH_MAX_SIZE]; unsigned int hlen; RSA_VALIDATE_RET( ctx != NULL ); @@ -2064,7 +2061,7 @@ int mbedtls_rsa_rsassa_pss_verify_ext( mbedtls_rsa_context *ctx, size_t siglen; unsigned char *p; unsigned char *hash_start; - unsigned char result[HASH_MAX_SIZE]; + unsigned char result[MBEDTLS_HASH_MAX_SIZE]; unsigned int hlen; size_t observed_salt_len, msb; unsigned char buf[MBEDTLS_MPI_MAX_SIZE] = {0}; diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index f8140945da..d1ec55cfcb 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -2330,11 +2330,8 @@ start_processing: if( mbedtls_ssl_ciphersuite_uses_server_signature( ciphersuite_info ) ) { size_t sig_len, hashlen; -#if defined(MBEDTLS_USE_PSA_CRYPTO) - unsigned char hash[PSA_HASH_MAX_SIZE]; -#else - unsigned char hash[MBEDTLS_MD_MAX_SIZE]; -#endif + unsigned char hash[MBEDTLS_HASH_MAX_SIZE]; + mbedtls_md_type_t md_alg = MBEDTLS_MD_NONE; mbedtls_pk_type_t pk_alg = MBEDTLS_PK_NONE; unsigned char *params = ssl->in_msg + mbedtls_ssl_hs_hdr_len( ssl ); diff --git a/library/x509_crt.c b/library/x509_crt.c index ad235bfe0c..d96abb28f4 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -47,8 +47,8 @@ #if defined(MBEDTLS_USE_PSA_CRYPTO) #include "psa/crypto.h" #include "mbedtls/psa_util.h" -#include "hash_info.h" #endif /* MBEDTLS_USE_PSA_CRYPTO */ +#include "hash_info.h" #if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" @@ -2354,11 +2354,10 @@ static int x509_crt_verifycrl( mbedtls_x509_crt *crt, mbedtls_x509_crt *ca, const mbedtls_x509_crt_profile *profile ) { int flags = 0; + unsigned char hash[MBEDTLS_HASH_MAX_SIZE]; #if defined(MBEDTLS_USE_PSA_CRYPTO) - unsigned char hash[PSA_HASH_MAX_SIZE]; psa_algorithm_t psa_algorithm; #else - unsigned char hash[MBEDTLS_MD_MAX_SIZE]; const mbedtls_md_info_t *md_info; #endif /* MBEDTLS_USE_PSA_CRYPTO */ size_t hash_length; diff --git a/library/x509write_crt.c b/library/x509write_crt.c index 986e1fe128..e51a385f68 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -43,9 +43,9 @@ #if defined(MBEDTLS_USE_PSA_CRYPTO) #include "psa/crypto.h" #include "mbedtls/psa_util.h" -#include "hash_info.h" #endif /* MBEDTLS_USE_PSA_CRYPTO */ +#include "hash_info.h" #include "legacy_or_psa.h" void mbedtls_x509write_crt_init( mbedtls_x509write_cert *ctx ) @@ -360,12 +360,10 @@ int mbedtls_x509write_crt_der( mbedtls_x509write_cert *ctx, unsigned char *c, *c2; unsigned char sig[MBEDTLS_PK_SIGNATURE_MAX_SIZE]; size_t hash_length = 0; + unsigned char hash[MBEDTLS_HASH_MAX_SIZE]; #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_algorithm_t psa_algorithm; - unsigned char hash[PSA_HASH_MAX_SIZE]; -#else - unsigned char hash[64]; #endif /* MBEDTLS_USE_PSA_CRYPTO */ size_t sub_len = 0, pub_len = 0, sig_and_oid_len = 0, sig_len; diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function index a8b1e45a2e..7e1daa25a3 100644 --- a/tests/suites/test_suite_ecdsa.function +++ b/tests/suites/test_suite_ecdsa.function @@ -1,11 +1,11 @@ /* BEGIN_HEADER */ #include "mbedtls/ecdsa.h" +#include "hash_info.h" #include "legacy_or_psa.h" #if ( defined(MBEDTLS_ECDSA_DETERMINISTIC) && defined(MBEDTLS_SHA256_C) ) || \ ( !defined(MBEDTLS_ECDSA_DETERMINISTIC) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_LOWLEVEL_OR_PSA) ) #define MBEDTLS_HAS_ALG_SHA_256_VIA_MD_IF_DETERMINISTIC #endif -#define MBEDTLS_TEST_HASH_MAX_SIZE 64 /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -20,7 +20,7 @@ void ecdsa_prim_zero( int id ) mbedtls_ecp_point Q; mbedtls_mpi d, r, s; mbedtls_test_rnd_pseudo_info rnd_info; - unsigned char buf[MBEDTLS_TEST_HASH_MAX_SIZE]; + unsigned char buf[MBEDTLS_HASH_MAX_SIZE]; mbedtls_ecp_group_init( &grp ); mbedtls_ecp_point_init( &Q ); @@ -52,7 +52,7 @@ void ecdsa_prim_random( int id ) mbedtls_ecp_point Q; mbedtls_mpi d, r, s; mbedtls_test_rnd_pseudo_info rnd_info; - unsigned char buf[MBEDTLS_TEST_HASH_MAX_SIZE]; + unsigned char buf[MBEDTLS_HASH_MAX_SIZE]; mbedtls_ecp_group_init( &grp ); mbedtls_ecp_point_init( &Q ); From ecb221b1ffc120cb7920f316deefac3a10c08fa4 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Thu, 8 Sep 2022 11:21:07 +0200 Subject: [PATCH 0201/1028] Move operation buffer in operation struct and remove dynamic allocation Signed-off-by: Neil Armstrong --- include/psa/crypto_extra.h | 5 +++-- library/psa_crypto_pake.c | 19 ++++--------------- 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/include/psa/crypto_extra.h b/include/psa/crypto_extra.h index e625f0d982..3330bf63ea 100644 --- a/include/psa/crypto_extra.h +++ b/include/psa/crypto_extra.h @@ -1829,7 +1829,7 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); */ #if defined(MBEDTLS_PSA_BUILTIN_PAKE) #define PSA_PAKE_OPERATION_INIT {PSA_ALG_NONE, 0, 0, 0, 0, \ - MBEDTLS_SVC_KEY_ID_INIT, 0, NULL, 0, 0, \ + MBEDTLS_SVC_KEY_ID_INIT, 0, {0}, 0, 0, \ {.dummy = 0}} #else #define PSA_PAKE_OPERATION_INIT {PSA_ALG_NONE, 0, 0, {0}} @@ -1905,6 +1905,7 @@ static inline void psa_pake_cs_set_hash( psa_pake_cipher_suite_t *cipher_suite, #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) #include +#define PSA_PAKE_BUFFER_SIZE ( ( 69 + 66 + 33 ) * 2 ) #endif struct psa_pake_operation_s @@ -1917,7 +1918,7 @@ struct psa_pake_operation_s unsigned int MBEDTLS_PRIVATE(output_step); mbedtls_svc_key_id_t MBEDTLS_PRIVATE(password); psa_pake_role_t MBEDTLS_PRIVATE(role); - uint8_t *MBEDTLS_PRIVATE(buffer); + uint8_t MBEDTLS_PRIVATE(buffer[PSA_PAKE_BUFFER_SIZE]); size_t MBEDTLS_PRIVATE(buffer_length); size_t MBEDTLS_PRIVATE(buffer_offset); #endif diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index f7be68786d..1fd91290e6 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -33,10 +33,6 @@ #include #include -#if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) -#define PSA_PAKE_BUFFER_SIZE ( ( 69 + 66 + 33 ) * 2 ) -#endif - /* * State sequence: * @@ -234,7 +230,7 @@ psa_status_t psa_pake_setup( psa_pake_operation_t *operation, operation->input_step = PSA_PAKE_STEP_X1_X2; operation->output_step = PSA_PAKE_STEP_X1_X2; - operation->buffer = NULL; + mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); operation->buffer_length = 0; operation->buffer_offset = 0; @@ -383,10 +379,6 @@ static psa_status_t psa_pake_ecjpake_setup( psa_pake_operation_t *operation ) if( ret != 0 ) return( mbedtls_ecjpake_to_psa_error( ret ) ); - operation->buffer = mbedtls_calloc( 1, PSA_PAKE_BUFFER_SIZE ); - if( operation->buffer == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); - operation->state = PSA_PAKE_STATE_READY; return( PSA_SUCCESS ); @@ -428,8 +420,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, } if( operation->state >= PSA_PAKE_STATE_READY && - ( mbedtls_ecjpake_check( &operation->ctx.ecjpake ) != 0 || - operation->buffer == NULL ) ) + mbedtls_ecjpake_check( &operation->ctx.ecjpake ) != 0 ) { return( PSA_ERROR_BAD_STATE ); } @@ -612,8 +603,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, } if( operation->state >= PSA_PAKE_STATE_READY && - ( mbedtls_ecjpake_check( &operation->ctx.ecjpake ) != 0 || - operation->buffer == NULL ) ) + mbedtls_ecjpake_check( &operation->ctx.ecjpake ) != 0 ) { return( PSA_ERROR_BAD_STATE ); } @@ -794,8 +784,7 @@ psa_status_t psa_pake_abort(psa_pake_operation_t * operation) operation->output_step = 0; operation->password = MBEDTLS_SVC_KEY_ID_INIT; operation->role = 0; - mbedtls_free( operation->buffer ); - operation->buffer = NULL; + mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); operation->buffer_length = 0; operation->buffer_offset = 0; mbedtls_ecjpake_free( &operation->ctx.ecjpake ); From 7cd4eacbd4cf5a05e5d3043e2f90096d89999712 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Thu, 8 Sep 2022 14:57:55 +0200 Subject: [PATCH 0202/1028] Fix typo in mbedtls_ecjpake_write_shared_key() comment Signed-off-by: Neil Armstrong --- include/mbedtls/ecjpake.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/mbedtls/ecjpake.h b/include/mbedtls/ecjpake.h index 5b57455576..e7ca1b2354 100644 --- a/include/mbedtls/ecjpake.h +++ b/include/mbedtls/ecjpake.h @@ -267,7 +267,7 @@ int mbedtls_ecjpake_derive_secret( mbedtls_ecjpake_context *ctx, * \param buf The buffer to write the derived secret to. This must * be a writable buffer of length \p len Bytes. * \param len The length of \p buf in Bytes. - * \param olen The address at which to store the total number of Bytes + * \param olen The address at which to store the total number of bytes * written to \p buf. This must not be \c NULL. * \param f_rng The RNG function to use. This must not be \c NULL. * \param p_rng The RNG parameter to be passed to \p f_rng. This From fb3093a9cbc6ac163bac8efa5c39493b42552684 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Thu, 8 Sep 2022 14:59:32 +0200 Subject: [PATCH 0203/1028] Use PSA_PAKE_ROLE_NONE in PSA_PAKE_OPERATION_INIT macro instead of 0 Signed-off-by: Neil Armstrong --- include/psa/crypto_extra.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/psa/crypto_extra.h b/include/psa/crypto_extra.h index 3330bf63ea..6c2e06e503 100644 --- a/include/psa/crypto_extra.h +++ b/include/psa/crypto_extra.h @@ -1829,7 +1829,8 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); */ #if defined(MBEDTLS_PSA_BUILTIN_PAKE) #define PSA_PAKE_OPERATION_INIT {PSA_ALG_NONE, 0, 0, 0, 0, \ - MBEDTLS_SVC_KEY_ID_INIT, 0, {0}, 0, 0, \ + MBEDTLS_SVC_KEY_ID_INIT, \ + PSA_PAKE_ROLE_NONE, {0}, 0, 0, \ {.dummy = 0}} #else #define PSA_PAKE_OPERATION_INIT {PSA_ALG_NONE, 0, 0, {0}} From 1577c548d18bdff22cd7bf127a57969d82402e3b Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 9 Sep 2022 10:22:15 +0100 Subject: [PATCH 0204/1028] Use NULL instead of 0 Signed-off-by: Dave Rodgman --- programs/x509/cert_write.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 0118abd208..5a13f4e78b 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -86,7 +86,7 @@ int main( void ) #define DFL_MAX_PATHLEN -1 #define DFL_SIG_ALG MBEDTLS_MD_SHA256 #define DFL_KEY_USAGE 0 -#define DFL_EXT_KEY_USAGE 0 +#define DFL_EXT_KEY_USAGE NULL #define DFL_NS_CERT_TYPE 0 #define DFL_VERSION 3 #define DFL_AUTH_IDENT 1 From 9c061a2d19491c65a477625de826050c0beffa12 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 5 Sep 2022 10:51:19 -0400 Subject: [PATCH 0205/1028] Add a posibility to check for the availability of hash algs to ssl-opt The new function now dispatches a check for either an MBEDTLS or PSA define to check for SHA_XXX. Signed-off-by: Andrzej Kurek --- tests/ssl-opt.sh | 69 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index c4628b017e..4db2010a44 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -419,6 +419,73 @@ case " $CONFIGS_ENABLED " in *) PSK_ONLY="NO";; esac +HAS_ALG_SHA_1="NO" +HAS_ALG_SHA_224="NO" +HAS_ALG_SHA_256="NO" +HAS_ALG_SHA_384="NO" +HAS_ALG_SHA_512="NO" + +check_for_hash_alg() +{ + CURR_ALG="INVALID"; + USE_PSA="NO" + case $CONFIGS_ENABLED in + *" MBEDTLS_USE_PSA_CRYPTO"[\ =]*) + USE_PSA="YES"; + ;; + *) :;; + esac + if [ $USE_PSA = "YES" ]; then + CURR_ALG=PSA_WANT_ALG_${1} + else + CURR_ALG=MBEDTLS_${1}_C + # Remove the second underscore to match MBEDTLS_* naming convention + CURR_ALG=$(echo "$CURR_ALG" | sed 's/_//2') + fi + + case $CONFIGS_ENABLED in + *" $CURR_ALG"[\ =]*) + return 0 + ;; + *) :;; + esac + return 1 +} + +populate_enabled_hash_algs() +{ + for hash_alg in SHA_1 SHA_224 SHA_256 SHA_384 SHA_512; do + if check_for_hash_alg "$hash_alg"; then + hash_alg_variable=HAS_ALG_${hash_alg} + eval ${hash_alg_variable}=YES + fi + done +} + +# skip next test if the given hash alg is not supported +requires_hash_alg() { + HASH_DEFINE="Invalid" + HAS_HASH_ALG="NO" + case $1 in + SHA_1):;; + SHA_224):;; + SHA_256):;; + SHA_384):;; + SHA_512):;; + *) + echo "Unsupported hash alg - $1" + exit 1 + ;; + esac + + HASH_DEFINE=HAS_ALG_${1} + eval "HAS_HASH_ALG=\${${HASH_DEFINE}}" + if [ "$HAS_HASH_ALG" = "NO" ] + then + SKIP_NEXT="YES" + fi +} + # skip next test if OpenSSL doesn't support FALLBACK_SCSV requires_openssl_with_fallback_scsv() { if [ -z "${OPENSSL_HAS_FBSCSV:-}" ]; then @@ -1478,6 +1545,8 @@ cleanup() { get_options "$@" +populate_enabled_hash_algs + # Optimize filters: if $FILTER and $EXCLUDE can be expressed as shell # patterns rather than regular expressions, use a case statement instead # of calling grep. To keep the optimizer simple, it is incomplete and only From 934e9cd47f0da725d1339411eb2855fff2eadc55 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 5 Sep 2022 14:44:46 -0400 Subject: [PATCH 0206/1028] Switch to the new version of hash algorithm checking in ssl-opt.sh Signed-off-by: Andrzej Kurek --- tests/ssl-opt.sh | 72 ++++++++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 4db2010a44..1236ad6e17 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -1697,7 +1697,7 @@ trap cleanup INT TERM HUP # - the expected parameters are selected requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_ciphersuite_enabled TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256 -requires_config_enabled MBEDTLS_SHA512_C # "signature_algorithm ext: 6" +requires_hash_alg SHA_512 # "signature_algorithm ext: 6" requires_config_enabled MBEDTLS_ECP_DP_CURVE25519_ENABLED run_test "Default" \ "$P_SRV debug_level=3" \ @@ -1745,7 +1745,7 @@ run_test "key size: TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "TLS: password protected client key" \ "$P_SRV auth_mode=required" \ "$P_CLI crt_file=data_files/server5.crt key_file=data_files/server5.key.enc key_pwd=PolarSSLTest" \ @@ -1754,7 +1754,7 @@ run_test "TLS: password protected client key" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "TLS: password protected server key" \ "$P_SRV crt_file=data_files/server5.crt key_file=data_files/server5.key.enc key_pwd=PolarSSLTest" \ "$P_CLI" \ @@ -1764,7 +1764,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "TLS: password protected server key, two certificates" \ "$P_SRV \ key_file=data_files/server5.key.enc key_pwd=PolarSSLTest crt_file=data_files/server5.crt \ @@ -1786,7 +1786,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "CA callback on server" \ "$P_SRV auth_mode=required" \ "$P_CLI ca_callback=1 debug_level=3 crt_file=data_files/server5.crt \ @@ -1802,7 +1802,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "Opaque key for client authentication: ECDHE-ECDSA" \ "$P_SRV auth_mode=required crt_file=data_files/server5.crt \ key_file=data_files/server5.key" \ @@ -1822,7 +1822,7 @@ requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "Opaque key for client authentication: ECDHE-RSA" \ "$P_SRV auth_mode=required crt_file=data_files/server2-sha256.crt \ key_file=data_files/server2.key" \ @@ -1840,7 +1840,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "Opaque key for client authentication: DHE-RSA" \ "$P_SRV auth_mode=required crt_file=data_files/server2-sha256.crt \ key_file=data_files/server2.key" \ @@ -1860,7 +1860,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "Opaque key for server authentication: ECDHE-ECDSA" \ "$P_SRV key_opaque=1 crt_file=data_files/server5.crt \ key_file=data_files/server5.key key_opaque_algs=ecdsa-sign,none" \ @@ -1877,7 +1877,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "Opaque key for server authentication: ECDH-" \ "$P_SRV force_version=tls12 auth_mode=required key_opaque=1\ crt_file=data_files/server5.ku-ka.crt\ @@ -1895,7 +1895,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "Opaque key for server authentication: invalid alg: decrypt with ECC key" \ "$P_SRV key_opaque=1 crt_file=data_files/server5.crt \ key_file=data_files/server5.key key_opaque_algs=rsa-decrypt,none \ @@ -1912,7 +1912,7 @@ requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "Opaque key for server authentication: invalid alg: ecdh with RSA key" \ "$P_SRV key_opaque=1 crt_file=data_files/server2-sha256.crt \ key_file=data_files/server2.key key_opaque_algs=ecdh,none \ @@ -1928,7 +1928,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 requires_config_enabled MBEDTLS_CCM_C run_test "Opaque key for server authentication: invalid alg: ECDHE-ECDSA with ecdh" \ "$P_SRV key_opaque=1 crt_file=data_files/server5.crt \ @@ -1945,7 +1945,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 requires_config_disabled MBEDTLS_X509_REMOVE_INFO run_test "Opaque keys for server authentication: EC keys with different algs, force ECDHE-ECDSA" \ "$P_SRV key_opaque=1 crt_file=data_files/server7.crt \ @@ -1966,7 +1966,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA384_C +requires_hash_alg SHA_384 requires_config_disabled MBEDTLS_X509_REMOVE_INFO run_test "Opaque keys for server authentication: EC keys with different algs, force ECDH-ECDSA" \ "$P_SRV key_opaque=1 crt_file=data_files/server7.crt \ @@ -1987,7 +1987,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA384_C +requires_hash_alg SHA_384 requires_config_enabled MBEDTLS_CCM_C requires_config_disabled MBEDTLS_X509_REMOVE_INFO run_test "Opaque keys for server authentication: EC + RSA, force ECDHE-ECDSA" \ @@ -2011,7 +2011,7 @@ requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "Opaque key for server authentication: ECDHE-RSA" \ "$P_SRV key_opaque=1 crt_file=data_files/server2-sha256.crt \ key_file=data_files/server2.key key_opaque_algs=rsa-sign-pkcs1,none" \ @@ -2029,7 +2029,7 @@ requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "Opaque key for server authentication: DHE-RSA" \ "$P_SRV key_opaque=1 crt_file=data_files/server2-sha256.crt \ key_file=data_files/server2.key key_opaque_algs=rsa-sign-pkcs1,none" \ @@ -2046,7 +2046,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "Opaque key for server authentication: RSA-PSK" \ "$P_SRV debug_level=1 key_opaque=1 key_opaque_algs=rsa-decrypt,none \ psk=abc123 psk_identity=foo" \ @@ -2064,7 +2064,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "Opaque key for server authentication: RSA-" \ "$P_SRV debug_level=3 key_opaque=1 key_opaque_algs=rsa-decrypt,none " \ "$P_CLI force_ciphersuite=TLS-RSA-WITH-AES-256-CBC-SHA256" \ @@ -2081,7 +2081,7 @@ requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "Opaque key for server authentication: DHE-RSA, PSS instead of PKCS1" \ "$P_SRV auth_mode=required key_opaque=1 crt_file=data_files/server2-sha256.crt \ key_file=data_files/server2.key key_opaque_algs=rsa-sign-pss,none debug_level=1" \ @@ -2098,7 +2098,7 @@ requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 requires_config_disabled MBEDTLS_X509_REMOVE_INFO run_test "Opaque keys for server authentication: RSA keys with different algs" \ "$P_SRV auth_mode=required key_opaque=1 crt_file=data_files/server2-sha256.crt \ @@ -2120,7 +2120,7 @@ requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SHA384_C +requires_hash_alg SHA_384 requires_config_enabled MBEDTLS_GCM_C requires_config_disabled MBEDTLS_X509_REMOVE_INFO run_test "Opaque keys for server authentication: EC + RSA, force DHE-RSA" \ @@ -2143,7 +2143,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "Opaque key for client/server authentication: ECDHE-ECDSA" \ "$P_SRV auth_mode=required key_opaque=1 crt_file=data_files/server5.crt \ key_file=data_files/server5.key key_opaque_algs=ecdsa-sign,none" \ @@ -2165,7 +2165,7 @@ requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "Opaque key for client/server authentication: ECDHE-RSA" \ "$P_SRV auth_mode=required key_opaque=1 crt_file=data_files/server2-sha256.crt \ key_file=data_files/server2.key key_opaque_algs=rsa-sign-pkcs1,none" \ @@ -2186,7 +2186,7 @@ requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 run_test "Opaque key for client/server authentication: DHE-RSA" \ "$P_SRV auth_mode=required key_opaque=1 crt_file=data_files/server2-sha256.crt \ key_file=data_files/server2.key key_opaque_algs=rsa-sign-pkcs1,none" \ @@ -8631,7 +8631,7 @@ run_test "SSL async private: renegotiation: server-initiated, decrypt" \ requires_config_enabled MBEDTLS_AES_C requires_config_enabled MBEDTLS_CIPHER_MODE_CBC -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 requires_config_enabled MBEDTLS_KEY_EXCHANGE_RSA_ENABLED requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 run_test "Force a non ECC ciphersuite in the client side" \ @@ -8645,7 +8645,7 @@ run_test "Force a non ECC ciphersuite in the client side" \ requires_config_enabled MBEDTLS_AES_C requires_config_enabled MBEDTLS_CIPHER_MODE_CBC -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 requires_config_enabled MBEDTLS_KEY_EXCHANGE_RSA_ENABLED requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 run_test "Force a non ECC ciphersuite in the server side" \ @@ -8657,7 +8657,7 @@ run_test "Force a non ECC ciphersuite in the server side" \ requires_config_enabled MBEDTLS_AES_C requires_config_enabled MBEDTLS_CIPHER_MODE_CBC -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 run_test "Force an ECC ciphersuite in the client side" \ @@ -8671,7 +8671,7 @@ run_test "Force an ECC ciphersuite in the client side" \ requires_config_enabled MBEDTLS_AES_C requires_config_enabled MBEDTLS_CIPHER_MODE_CBC -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 run_test "Force an ECC ciphersuite in the server side" \ @@ -9209,7 +9209,7 @@ run_test "DTLS fragmenting: both (MTU=1024)" \ requires_config_enabled MBEDTLS_SSL_PROTO_DTLS requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED requires_config_enabled MBEDTLS_AES_C requires_config_enabled MBEDTLS_GCM_C @@ -9446,7 +9446,7 @@ not_with_valgrind # spurious autoreduction due to timeout requires_config_enabled MBEDTLS_SSL_PROTO_DTLS requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED requires_config_enabled MBEDTLS_SSL_RENEGOTIATION requires_config_enabled MBEDTLS_CHACHAPOLY_C @@ -9479,7 +9479,7 @@ not_with_valgrind # spurious autoreduction due to timeout requires_config_enabled MBEDTLS_SSL_PROTO_DTLS requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED requires_config_enabled MBEDTLS_SSL_RENEGOTIATION requires_config_enabled MBEDTLS_AES_C @@ -9513,7 +9513,7 @@ not_with_valgrind # spurious autoreduction due to timeout requires_config_enabled MBEDTLS_SSL_PROTO_DTLS requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED requires_config_enabled MBEDTLS_SSL_RENEGOTIATION requires_config_enabled MBEDTLS_AES_C @@ -9547,7 +9547,7 @@ not_with_valgrind # spurious autoreduction due to timeout requires_config_enabled MBEDTLS_SSL_PROTO_DTLS requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED requires_config_enabled MBEDTLS_SSL_RENEGOTIATION requires_config_enabled MBEDTLS_AES_C @@ -9582,7 +9582,7 @@ not_with_valgrind # spurious autoreduction due to timeout requires_config_enabled MBEDTLS_SSL_PROTO_DTLS requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_ECDSA_C -requires_config_enabled MBEDTLS_SHA256_C +requires_hash_alg SHA_256 requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED requires_config_enabled MBEDTLS_SSL_RENEGOTIATION requires_config_enabled MBEDTLS_AES_C From 07e3570f8cc9cc1390cfc0251608c620ad43c9a9 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 5 Sep 2022 15:39:23 -0400 Subject: [PATCH 0207/1028] Add an ssl-opt.sh run to all.sh for the accel_hash_use_psa config Signed-off-by: Andrzej Kurek --- tests/scripts/all.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 7d9fe1f4a3..6c70f78dbb 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1887,6 +1887,11 @@ component_test_psa_crypto_config_accel_hash_use_psa () { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" make test + + msg "test: ssl-opt.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" + tests/ssl-opt.sh + + msg "test: compat.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" tests/compat.sh } From d681746a51f1a4dd857e912de2f3a47a02a59117 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 6 Sep 2022 14:32:00 -0400 Subject: [PATCH 0208/1028] Split some ssl-opt.sh test cases into two There's a slightly different behaviour without MBEDTLS_SSL_ASYNC_PRIVATE that has to be handled. Signed-off-by: Andrzej Kurek --- tests/ssl-opt.sh | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 1236ad6e17..9e14af15bb 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -1895,8 +1895,44 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C +requires_config_disabled MBEDTLS_SSL_ASYNC_PRIVATE requires_hash_alg SHA_256 -run_test "Opaque key for server authentication: invalid alg: decrypt with ECC key" \ +run_test "Opaque key for server authentication: invalid key: decrypt with ECC key, no async" \ + "$P_SRV key_opaque=1 crt_file=data_files/server5.crt \ + key_file=data_files/server5.key key_opaque_algs=rsa-decrypt,none \ + debug_level=1" \ + "$P_CLI" \ + 1 \ + -s "key types: Opaque, none" \ + -s "error" \ + -c "error" \ + -c "Public key type mismatch" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_X509_CRT_PARSE_C +requires_config_enabled MBEDTLS_ECDSA_C +requires_config_enabled MBEDTLS_RSA_C +requires_config_disabled MBEDTLS_SSL_ASYNC_PRIVATE +requires_hash_alg SHA_256 +run_test "Opaque key for server authentication: invalid key: ecdh with RSA key, no async" \ + "$P_SRV key_opaque=1 crt_file=data_files/server2-sha256.crt \ + key_file=data_files/server2.key key_opaque_algs=ecdh,none \ + debug_level=1" \ + "$P_CLI" \ + 1 \ + -s "key types: Opaque, none" \ + -s "error" \ + -c "error" \ + -c "Public key type mismatch" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_X509_CRT_PARSE_C +requires_config_enabled MBEDTLS_ECDSA_C +requires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE +requires_hash_alg SHA_256 +run_test "Opaque key for server authentication: invalid alg: decrypt with ECC key, async" \ "$P_SRV key_opaque=1 crt_file=data_files/server5.crt \ key_file=data_files/server5.key key_opaque_algs=rsa-decrypt,none \ debug_level=1" \ @@ -1912,8 +1948,9 @@ requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_X509_CRT_PARSE_C requires_config_enabled MBEDTLS_ECDSA_C requires_config_enabled MBEDTLS_RSA_C +requires_config_enabled MBEDTLS_SSL_ASYNC_PRIVATE requires_hash_alg SHA_256 -run_test "Opaque key for server authentication: invalid alg: ecdh with RSA key" \ +run_test "Opaque key for server authentication: invalid alg: ecdh with RSA key, async" \ "$P_SRV key_opaque=1 crt_file=data_files/server2-sha256.crt \ key_file=data_files/server2.key key_opaque_algs=ecdh,none \ debug_level=1" \ From 0bc834b27fb04596a9e69196e0934543467d2d11 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 6 Sep 2022 17:30:43 -0400 Subject: [PATCH 0209/1028] Enable signature algorithms in ssl programs with PSA based hashes Signed-off-by: Andrzej Kurek --- programs/ssl/ssl_client2.c | 4 +-- programs/ssl/ssl_server2.c | 4 +-- programs/ssl/ssl_test_common_source.c | 39 ++++++++++++++++++++++----- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 2537521869..89150114a8 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -1426,11 +1426,11 @@ int main( int argc, char *argv[] ) if( opt.psk_opaque != 0 ) { /* Determine KDF algorithm the opaque PSK will be used in. */ -#if defined(MBEDTLS_SHA384_C) +#if defined(HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) if( ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384); else -#endif /* MBEDTLS_SHA384_C */ +#endif /* HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256); } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 8b63359152..a1b29786d5 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -2261,11 +2261,11 @@ int main( int argc, char *argv[] ) if( opt.psk_opaque != 0 || opt.psk_list_opaque != 0 ) { /* Determine KDF algorithm the opaque PSK will be used in. */ -#if defined(MBEDTLS_SHA384_C) +#if defined(HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) if( ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384); else -#endif /* MBEDTLS_SHA384_C */ +#endif /* HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256); } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ diff --git a/programs/ssl/ssl_test_common_source.c b/programs/ssl/ssl_test_common_source.c index 8c35fabdab..7ff3345b73 100644 --- a/programs/ssl/ssl_test_common_source.c +++ b/programs/ssl/ssl_test_common_source.c @@ -296,23 +296,50 @@ int send_cb( void *ctx, unsigned char const *buf, size_t len ) #else #define MBEDTLS_SSL_SIG_ALG( hash ) #endif + +#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ + defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA1_C) ) || \ + ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_1) ) +#define HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA +#endif +#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ + defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA224_C) ) || \ + ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_224) ) +#define HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA +#endif +#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ + defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA256_C) ) || \ + ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_256) ) +#define HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +#endif +#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ + defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA384_C) ) || \ + ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_384) ) +#define HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA +#endif +#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ + defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA512_C) ) || \ + ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_512) ) +#define HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA +#endif + uint16_t ssl_sig_algs_for_test[] = { -#if defined(MBEDTLS_SHA512_C) +#if defined(HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA512 ) #endif -#if defined(MBEDTLS_SHA384_C) +#if defined(HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA384 ) #endif -#if defined(MBEDTLS_SHA256_C) +#if defined(HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA256 ) #endif -#if defined(MBEDTLS_SHA224_C) +#if defined(HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA224 ) #endif -#if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_SHA256_C) +#if defined(MBEDTLS_RSA_C) && defined(HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256, #endif /* MBEDTLS_RSA_C && MBEDTLS_SHA256_C */ -#if defined(MBEDTLS_SHA1_C) +#if defined(HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA) /* Allow SHA-1 as we use it extensively in tests. */ MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA1 ) #endif From 1fade8adb603b0ebf87fbca87dab0eaba42970fa Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Mon, 12 Sep 2022 17:34:15 +0100 Subject: [PATCH 0210/1028] Move symbol definition out of __init__ Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index cc4db4c59e..28d29bfe17 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -211,6 +211,7 @@ class BignumCmpAbs(BignumCmp): class BignumAdd(BignumOperation): """Test cases for bignum value addition.""" count = 0 + symbol = "+" test_function = "mbedtls_mpi_add_mpi" test_name = "MPI add" input_cases = cast( @@ -223,10 +224,6 @@ class BignumAdd(BignumOperation): )) ) - def __init__(self, val_l, val_r) -> None: - super().__init__(val_l, val_r) - self.symbol = "+" - def result(self) -> str: return quote_str("{:x}".format(self.int_l + self.int_r)) From 3dc45198e63c889bfca10cc718c723cef82db60e Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Mon, 12 Sep 2022 17:35:27 +0100 Subject: [PATCH 0211/1028] Replace L/R inputs with A/B Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 32 +++++++++++++------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 28d29bfe17..3f60a0915f 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -101,14 +101,14 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): ] # type: List[str] input_cases = cast(List[Tuple[str, str]], []) # type: List[Tuple[str, str]] - def __init__(self, val_l: str, val_r: str) -> None: - self.arg_l = val_l - self.arg_r = val_r - self.int_l = hex_to_int(val_l) - self.int_r = hex_to_int(val_r) + def __init__(self, val_a: str, val_b: str) -> None: + self.arg_a = val_a + self.arg_b = val_b + self.int_a = hex_to_int(val_a) + self.int_b = hex_to_int(val_b) def arguments(self) -> List[str]: - return [quote_str(self.arg_l), quote_str(self.arg_r), self.result()] + return [quote_str(self.arg_a), quote_str(self.arg_b), self.result()] def description(self) -> str: """Generate a description for the test case. @@ -119,9 +119,9 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): """ if not self.case_description: self.case_description = "{} {} {}".format( - self.value_description(self.arg_l), + self.value_description(self.arg_a), self.symbol, - self.value_description(self.arg_r) + self.value_description(self.arg_b) ) return super().description() @@ -172,8 +172,8 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: - for l_value, r_value in cls.get_value_pairs(): - cur_op = cls(l_value, r_value) + for a_value, b_value in cls.get_value_pairs(): + cur_op = cls(a_value, b_value) yield cur_op.create_test_case() @@ -189,9 +189,9 @@ class BignumCmp(BignumOperation): ("2b5", "2b6") ] - def __init__(self, val_l, val_r) -> None: - super().__init__(val_l, val_r) - self._result = int(self.int_l > self.int_r) - int(self.int_l < self.int_r) + def __init__(self, val_a, val_b) -> None: + super().__init__(val_a, val_b) + self._result = int(self.int_a > self.int_b) - int(self.int_a < self.int_b) self.symbol = ["<", "==", ">"][self._result + 1] def result(self) -> str: @@ -204,8 +204,8 @@ class BignumCmpAbs(BignumCmp): test_function = "mbedtls_mpi_cmp_abs" test_name = "MPI compare (abs)" - def __init__(self, val_l, val_r) -> None: - super().__init__(val_l.strip("-"), val_r.strip("-")) + def __init__(self, val_a, val_b) -> None: + super().__init__(val_a.strip("-"), val_b.strip("-")) class BignumAdd(BignumOperation): @@ -225,7 +225,7 @@ class BignumAdd(BignumOperation): ) def result(self) -> str: - return quote_str("{:x}".format(self.int_l + self.int_r)) + return quote_str("{:x}".format(self.int_a + self.int_b)) if __name__ == '__main__': From 53a18f23ac7c908b0bc4c1224586f237c3856d83 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 12 Sep 2022 17:57:32 +0100 Subject: [PATCH 0212/1028] Correct copyright and license in crypto_spe.h Signed-off-by: Dave Rodgman --- tests/include/spe/crypto_spe.h | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/tests/include/spe/crypto_spe.h b/tests/include/spe/crypto_spe.h index f80fd86bdc..1aee8a5f0d 100644 --- a/tests/include/spe/crypto_spe.h +++ b/tests/include/spe/crypto_spe.h @@ -1,7 +1,18 @@ /* - * Copyright (c) 2019-2021, Arm Limited. All rights reserved. + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 * - * SPDX-License-Identifier: BSD-3-Clause + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. * */ From a02841bb8aff4e7ab58c88fcd5e5fab445c97c89 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 13 Sep 2022 10:59:21 +0800 Subject: [PATCH 0213/1028] revert changes on PSK tests Signed-off-by: Jerry Yu --- tests/ssl-opt.sh | 55 +++++++++++++++++++++--------------------------- 1 file changed, 24 insertions(+), 31 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 0e5a5daab4..d601eea652 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -11987,29 +11987,9 @@ run_test "TLS 1.3: Server side check - mbedtls with sni" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: PSK: default suite. m->m" \ - "$P_SRV debug_level=5 force_version=tls13 psk=6162636465666768696a6b6c6d6e6f70 psk_identity=Client_identity tls13_kex_modes=psk_all" \ - "$P_CLI debug_level=5 force_version=tls13 psk=6162636465666768696a6b6c6d6e6f70 psk_identity=Client_identity tls13_kex_modes=psk_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ - -s "found psk key exchange modes extension" \ - -s "found pre_shared_key extension" \ - -s "Found PSK_EPHEMERAL KEX MODE" \ - -s "Found PSK KEX MODE" \ - -s "Pre shared key found" - -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: PSK: default suite. m->O" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 psk=6162636465666768696a6b6c6d6e6f70 psk_identity=Client_identity tls13_kex_modes=psk_all force_version=tls13" \ +run_test "TLS 1.3, default suite, PSK" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -12017,25 +11997,38 @@ run_test "TLS 1.3: PSK: default suite. m->O" \ -c "client hello, adding PSK binder list" \ -c "<= write client hello" -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket +requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: PSK: default suite. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+CIPHER-ALL --pskpasswd data_files/passwd.psk" \ - "$P_CLI debug_level=4 psk=6162636465666768696a6b6c6d6e6f70 psk_identity=Client_identity tls13_kex_modes=all force_version=tls13" \ +run_test "TLS 1.3, default suite, PSK - openssl" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ + -c "<= write client hello" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3, default suite, PSK - gnutls" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ - -s "PSK authentication. Connected as 'Client_identity'" - + -c "<= write client hello" for i in opt-testcases/*.sh do From 6cf85a4bb08e627e17a2f1e8e76831a8261e4c68 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 13 Sep 2022 11:14:42 +0800 Subject: [PATCH 0214/1028] update document abourt maximum ticket_age_tolerance Signed-off-by: Jerry Yu --- include/mbedtls/mbedtls_config.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 19efff7d93..679f7eb86b 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1550,9 +1550,21 @@ //#define MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE /** - * \def MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH + * \def MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE * - * Time in seconds of max ticket lifetime. This is not used in TLS 1.2. + * Maximum time difference in milliseconds tolerated between the age of a + * ticket from the server and client point of view. + * From the client point of view, the age of a ticket is the time difference + * between the time when the client proposes to the server to use the ticket + * (time of writing of the Pre-Shared Key Extension including the ticket) and + * the time the client received the ticket from the server. + * From the server point of view, the age of a ticket is the time difference + * between the time when the server receives a proposition from the client + * to use the ticket and the time when the ticket was created by the server. + * The server age is expected to be always greater than the client one and + * MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE defines the + * maximum difference tolerated for the server to accept the ticket. + * This is not used in TLS 1.2. * */ #define MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE 6000 From 466dda855356443a1225652df5d1ffad069c6bbf Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 13 Sep 2022 11:20:20 +0800 Subject: [PATCH 0215/1028] Rename resumption master secret compute function Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 4 ++-- library/ssl_tls13_keys.c | 7 +++---- library/ssl_tls13_keys.h | 3 +-- library/ssl_tls13_server.c | 4 ++-- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index c3ee44d0b4..e92a10c0ae 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2318,11 +2318,11 @@ static int ssl_tls13_write_client_finished( mbedtls_ssl_context *ssl ) if( ret != 0 ) return( ret ); - ret = mbedtls_ssl_tls13_generate_resumption_master_secret( ssl ); + ret = mbedtls_ssl_tls13_compute_resumption_master_secret( ssl ); if( ret != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, - "mbedtls_ssl_tls13_generate_resumption_master_secret ", ret ); + "mbedtls_ssl_tls13_compute_resumption_master_secret ", ret ); return ( ret ); } diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index d0809fc1c7..504d897895 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1504,8 +1504,7 @@ cleanup: return( ret ); } -int mbedtls_ssl_tls13_generate_resumption_master_secret( - mbedtls_ssl_context *ssl ) +int mbedtls_ssl_tls13_compute_resumption_master_secret( mbedtls_ssl_context *ssl ) { int ret = 0; @@ -1515,7 +1514,7 @@ int mbedtls_ssl_tls13_generate_resumption_master_secret( size_t transcript_len; MBEDTLS_SSL_DEBUG_MSG( 2, - ( "=> mbedtls_ssl_tls13_generate_resumption_master_secret" ) ); + ( "=> mbedtls_ssl_tls13_compute_resumption_master_secret" ) ); md_type = ssl->handshake->ciphersuite_info->mac; @@ -1542,7 +1541,7 @@ int mbedtls_ssl_tls13_generate_resumption_master_secret( mbedtls_md_get_size( mbedtls_md_info_from_type( md_type ) ) ); MBEDTLS_SSL_DEBUG_MSG( 2, - ( "<= mbedtls_ssl_tls13_generate_resumption_master_secret" ) ); + ( "<= mbedtls_ssl_tls13_compute_resumption_master_secret" ) ); return( 0 ); } diff --git a/library/ssl_tls13_keys.h b/library/ssl_tls13_keys.h index b1155fb2a6..b80e02c979 100644 --- a/library/ssl_tls13_keys.h +++ b/library/ssl_tls13_keys.h @@ -636,8 +636,7 @@ int mbedtls_ssl_tls13_generate_application_keys( * \returns A negative error code on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_generate_resumption_master_secret( - mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_compute_resumption_master_secret( mbedtls_ssl_context *ssl ); /** * \brief Calculate the verify_data value for the client or server TLS 1.3 diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 0818a8f186..080415202a 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2564,11 +2564,11 @@ static int ssl_tls13_process_client_finished( mbedtls_ssl_context *ssl ) if( ret != 0 ) return( ret ); - ret = mbedtls_ssl_tls13_generate_resumption_master_secret( ssl ); + ret = mbedtls_ssl_tls13_compute_resumption_master_secret( ssl ); if( ret != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, - "mbedtls_ssl_tls13_generate_resumption_master_secret ", ret ); + "mbedtls_ssl_tls13_compute_resumption_master_secret", ret ); } mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_HANDSHAKE_WRAPUP ); From 46bffe0e821638908f76530e1570376d5d3eb5f1 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 13 Sep 2022 11:25:28 +0800 Subject: [PATCH 0216/1028] Refine rsumption master secret compute function Signed-off-by: Jerry Yu --- library/ssl_tls13_keys.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 504d897895..28090ebcb5 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1506,17 +1506,16 @@ cleanup: int mbedtls_ssl_tls13_compute_resumption_master_secret( mbedtls_ssl_context *ssl ) { - int ret = 0; - + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_md_type_t md_type; - - unsigned char transcript[MBEDTLS_MD_MAX_SIZE]; + mbedtls_ssl_handshake_params *handshake = ssl->handshake; + unsigned char transcript[MBEDTLS_TLS1_3_MD_MAX_SIZE]; size_t transcript_len; MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> mbedtls_ssl_tls13_compute_resumption_master_secret" ) ); - md_type = ssl->handshake->ciphersuite_info->mac; + md_type = handshake->ciphersuite_info->mac; ret = mbedtls_ssl_get_handshake_transcript( ssl, md_type, transcript, sizeof( transcript ), @@ -1526,20 +1525,21 @@ int mbedtls_ssl_tls13_compute_resumption_master_secret( mbedtls_ssl_context *ssl ret = mbedtls_ssl_tls13_derive_resumption_master_secret( mbedtls_psa_translate_md( md_type ), - ssl->handshake->tls13_master_secrets.app, + handshake->tls13_master_secrets.app, transcript, transcript_len, &ssl->session_negotiate->app_secrets ); if( ret != 0 ) return( ret ); /* Erase master secrets */ - mbedtls_platform_zeroize( &ssl->handshake->tls13_master_secrets, - sizeof( ssl->handshake->tls13_master_secrets ) ); + mbedtls_platform_zeroize( &handshake->tls13_master_secrets, + sizeof( handshake->tls13_master_secrets ) ); MBEDTLS_SSL_DEBUG_BUF( 4, "Resumption master secret", ssl->session_negotiate->app_secrets.resumption_master_secret, mbedtls_md_get_size( mbedtls_md_info_from_type( md_type ) ) ); + MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= mbedtls_ssl_tls13_compute_resumption_master_secret" ) ); return( 0 ); From 8d4bbbae4f0b1039ae0ed90764f79961120e7249 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 13 Sep 2022 14:15:48 +0800 Subject: [PATCH 0217/1028] fix ticket age check issues - Ticket age and ticket age add, obfuscated age use different unit. Align the units to million seconds. - Add maximum ticket age check. Until now, ticket_lifetime is not recorded in server side. Check it with maximum ticket_lifetime. - Free session when error found. Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 108 ++++++++++++++++++++++--------------- 1 file changed, 66 insertions(+), 42 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 080415202a..adedb6df5a 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -127,13 +127,17 @@ static int ssl_tls13_parse_key_exchange_modes_ext( mbedtls_ssl_context *ssl, MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_offered_psks_check_identity_match_ticket( mbedtls_ssl_context *ssl, - mbedtls_ssl_session *session, const unsigned char *identity, size_t identity_len, - uint32_t obfuscated_ticket_age ) + uint32_t obfuscated_ticket_age, + mbedtls_ssl_session *session ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *ticket_buffer; +#if defined(MBEDTLS_HAVE_TIME) + mbedtls_time_t now; + uint64_t age_in_s, age_in_ms, client_age_in_ms; +#endif ((void) obfuscated_ticket_age); @@ -178,49 +182,70 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( /* We delete the temporary buffer */ mbedtls_free( ticket_buffer ); - if( ret == 0 ) + if( ret != 0 ) + goto exit; + + ret = MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED; +#if defined(MBEDTLS_HAVE_TIME) + now = mbedtls_time( NULL ); + + ret = MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED; + if( now < session->start ) { -#if defined(MBEDTLS_HAVE_TIME) - mbedtls_time_t now; - int64_t diff; -#endif - ret = SSL_TLS1_3_OFFERED_PSK_MATCH; -#if defined(MBEDTLS_HAVE_TIME) - now = mbedtls_time( NULL ); + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "Ticket expired: now=%" MBEDTLS_PRINTF_LONGLONG + ", start=%" MBEDTLS_PRINTF_LONGLONG, + (long long)now, (long long)session->start ) ); + goto exit; + } - /* Check #1: - * Is the time when the ticket was issued later than now? - */ - if( now < session->start ) - { - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "Ticket expired: now=%" MBEDTLS_PRINTF_LONGLONG - ", start=%" MBEDTLS_PRINTF_LONGLONG, - (long long)now, (long long)session->start ) ); - ret = MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED; - } + age_in_s = (uint64_t)( now - session->start ); - /* Check #2: - * Is the ticket age for the selected PSK identity - * (computed by subtracting ticket_age_add from - * PskIdentity.obfuscated_ticket_age modulo 2^32 ) - * within a small tolerance of the time since the - * ticket was issued? - */ - diff = ( now - session->start ) - - ( obfuscated_ticket_age - session->ticket_age_add ); + /* RFC 8446 section 4.6.1 + * + * Servers MUST NOT use any value greater than 604800 seconds (7 days). + * + * RFC 8446 section 4.2.11.1 + * + * Clients MUST NOT attempt to use tickets which have ages greater than + * the "ticket_lifetime" value which was provided with the ticket. + * + * For time being, the age MUST be less than 604800 seconds (7 days). + */ + if( age_in_s > 604800 ) + { + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "Ticket expired: Ticket age exceed limitation ticket_age=%lu", + (long unsigned int)age_in_s ) ); + goto exit; + } - if( diff > MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "Ticket age outside tolerance window ( diff=%" - MBEDTLS_PRINTF_LONGLONG" )", - (long long)diff ) ); - ret = MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED; - } + /* RFC 8446 section 4.2.10 + * + * For PSKs provisioned via NewSessionTicket, a server MUST validate that + * the ticket age for the selected PSK identity (computed by subtracting + * ticket_age_add from PskIdentity.obfuscated_ticket_age modulo 2^32) is + * within a small tolerance of the time since the ticket was issued. + */ + age_in_ms = age_in_s * 1000; + client_age_in_ms = obfuscated_ticket_age - session->ticket_age_add; + if( age_in_ms < client_age_in_ms || + ( age_in_ms - client_age_in_ms ) > MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE ) + { + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "Ticket expired: Ticket age outside tolerance window " + "( diff=%d )", + (int)(age_in_ms - client_age_in_ms ) ) ); + goto exit; + } + + ret = 0; #endif /* MBEDTLS_HAVE_TIME */ - } + +exit: + if( ret != 0 ) + mbedtls_ssl_session_free( session ); MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= check_identity_match_ticket" ) ); return( ret ); @@ -247,9 +272,8 @@ static int ssl_tls13_offered_psks_check_identity_match( #if defined(MBEDTLS_SSL_SESSION_TICKETS) if( ssl_tls13_offered_psks_check_identity_match_ticket( - ssl, (mbedtls_ssl_session *)session, - identity, identity_len, - obfuscated_ticket_age ) == SSL_TLS1_3_OFFERED_PSK_MATCH ) + ssl, identity, identity_len, obfuscated_ticket_age, + (mbedtls_ssl_session *)session ) == SSL_TLS1_3_OFFERED_PSK_MATCH ) { mbedtls_ssl_session *i_session=(mbedtls_ssl_session *)session; ssl->handshake->resume = 1; From 4746b10c2e8806df173046cb4ab9998587fbb3af Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 13 Sep 2022 11:11:48 +0800 Subject: [PATCH 0218/1028] fix various issues - Format issues - Possible memory leak - Improve naming and comment issues Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 53 +++++++++++++------------------------- programs/ssl/ssl_client2.c | 1 + 2 files changed, 19 insertions(+), 35 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index adedb6df5a..67d685bb02 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -143,21 +143,14 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> check_identity_match_ticket" ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket length: %" MBEDTLS_PRINTF_SIZET - ". ticket_parse is %sconfigured. " - "ticket_write is %sconfigured.", - identity_len, - ssl->conf->f_ticket_parse == NULL ? "NOT " : "", - ssl->conf->f_ticket_write == NULL ? "NOT " : "" ) ); - /* Ticket parser is not configured, Skip */ if( ssl->conf->f_ticket_parse == NULL || identity_len == 0 ) return( 0 ); - /* We create a copy of the encrypted ticket since decrypting - * it into the same buffer will wipe-out the original content. - * We do, however, need the original buffer for computing the - * psk binder value. + /* We create a copy of the encrypted ticket since the ticket parsing + * function is allowed to use its input buffer as an output buffer + * (in-place decryption). We do, however, need the original buffer for + * computing the PSK binder value. */ ticket_buffer = mbedtls_calloc( 1, identity_len ); if( ticket_buffer == NULL ) @@ -258,8 +251,8 @@ static int ssl_tls13_offered_psks_check_identity_match( const unsigned char *identity, size_t identity_len, uint32_t obfuscated_ticket_age, - void *session, - int *psk_type ) + int *psk_type, + mbedtls_ssl_session *session ) { ((void) session); ((void) obfuscated_ticket_age); @@ -268,8 +261,6 @@ static int ssl_tls13_offered_psks_check_identity_match( MBEDTLS_SSL_DEBUG_BUF( 4, "identity", identity, identity_len ); ssl->handshake->resume = 0; - - #if defined(MBEDTLS_SSL_SESSION_TICKETS) if( ssl_tls13_offered_psks_check_identity_match_ticket( ssl, identity, identity_len, obfuscated_ticket_age, @@ -444,31 +435,26 @@ static int ssl_tls13_select_ciphersuite_for_resumption( if( ciphersuite_info == NULL ) continue; - *selected_ciphersuite = session->ciphersuite; + *selected_ciphersuite = cipher_suite; *selected_ciphersuite_info = ciphersuite_info; return( 0 ); - } return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_session_copy( mbedtls_ssl_session *dst, - mbedtls_ssl_session *src ) +static int ssl_tls13_session_copy_ticket( mbedtls_ssl_session *dst, + const mbedtls_ssl_session *src ) { - dst->endpoint = src->endpoint; - dst->ciphersuite = src->ciphersuite; dst->ticket_age_add = src->ticket_age_add; dst->ticket_flags = src->ticket_flags; dst->resumption_key_len = src->resumption_key_len; if( src->resumption_key_len == 0 ) return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); memcpy( dst->resumption_key, src->resumption_key, src->resumption_key_len ); -#if defined(MBEDTLS_HAVE_TIME) - dst->start = src->start; -#endif + return( 0 ); } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ @@ -551,7 +537,7 @@ static int ssl_tls13_parse_pre_shared_key_ext( mbedtls_ssl_context *ssl, const mbedtls_ssl_ciphersuite_t *ciphersuite_info; #if defined(MBEDTLS_SSL_SESSION_TICKETS) mbedtls_ssl_session session; - memset( &session, 0, sizeof( session ) ); + mbedtls_ssl_session_init( &session ); #endif MBEDTLS_SSL_CHK_BUF_READ_PTR( p_identity_len, identities_end, 2 + 1 + 4 ); @@ -573,7 +559,7 @@ static int ssl_tls13_parse_pre_shared_key_ext( mbedtls_ssl_context *ssl, ret = ssl_tls13_offered_psks_check_identity_match( ssl, identity, identity_len, obfuscated_ticket_age, - &session, &psk_type ); + &psk_type, &session ); if( ret != SSL_TLS1_3_OFFERED_PSK_MATCH ) continue; @@ -590,6 +576,8 @@ static int ssl_tls13_parse_pre_shared_key_ext( mbedtls_ssl_context *ssl, ret = ssl_tls13_select_ciphersuite_for_resumption( ssl, ciphersuites, ciphersuites_end, &session, &cipher_suite, &ciphersuite_info ); + if( ret != 0 ) + mbedtls_ssl_session_free( &session ); #else ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; #endif @@ -632,18 +620,13 @@ static int ssl_tls13_parse_pre_shared_key_ext( mbedtls_ssl_context *ssl, /* Update handshake parameters */ ssl->handshake->ciphersuite_info = ciphersuite_info; - if( psk_type == MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL ) - { - ssl->session_negotiate->ciphersuite = cipher_suite; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "overwrite ciphersuite: %04x - %s", - cipher_suite, - ciphersuite_info->name ) ); - } + ssl->session_negotiate->ciphersuite = cipher_suite; + MBEDTLS_SSL_DEBUG_MSG( 2, ( "overwrite ciphersuite: %04x - %s", + cipher_suite, ciphersuite_info->name ) ); #if defined(MBEDTLS_SSL_SESSION_TICKETS) - else if( psk_type == MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION ) { - ret = ssl_tls13_session_copy(ssl->session_negotiate, &session ); + ret = ssl_tls13_session_copy_ticket(ssl->session_negotiate, &session ); mbedtls_ssl_session_free( &session ); if( ret != 0 ) return( ret ); diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index c1f347b87b..94f6d18ffd 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -708,6 +708,7 @@ exit: mbedtls_ssl_session_free( &exported_session ); return( ret ); } + int main( int argc, char *argv[] ) { int ret = 0, len, tail_len, i, written, frags, retry_left; From 5166954d14903a8dfc479a5d55d3afcb811ef044 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 13 Sep 2022 12:57:05 +0200 Subject: [PATCH 0219/1028] Make more use of MBEDTLS_MAX_HASH_SIZE macro Signed-off-by: Przemek Stekiel --- library/ecjpake.c | 2 +- library/ssl_tls12_server.c | 8 +++----- library/x509_crt.c | 3 +-- library/x509write_csr.c | 4 ++-- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/library/ecjpake.c b/library/ecjpake.c index 7447354bc5..308c1af3ee 100644 --- a/library/ecjpake.c +++ b/library/ecjpake.c @@ -236,7 +236,7 @@ static int ecjpake_hash( const mbedtls_md_type_t md_type, unsigned char *p = buf; const unsigned char *end = buf + sizeof( buf ); const size_t id_len = strlen( id ); - unsigned char hash[MBEDTLS_MD_MAX_SIZE]; + unsigned char hash[MBEDTLS_HASH_MAX_SIZE]; /* Write things to temporary buffer */ MBEDTLS_MPI_CHK( ecjpake_write_len_point( &p, end, grp, pf, G ) ); diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index eab27768bc..997f5848ea 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -36,6 +36,7 @@ #include "mbedtls/platform_util.h" #include "constant_time_internal.h" #include "mbedtls/constant_time.h" +#include "hash_info.h" #include @@ -3059,11 +3060,8 @@ curve_matching_done: size_t dig_signed_len = ssl->out_msg + ssl->out_msglen - dig_signed; size_t hashlen = 0; -#if defined(MBEDTLS_USE_PSA_CRYPTO) - unsigned char hash[PSA_HASH_MAX_SIZE]; -#else - unsigned char hash[MBEDTLS_MD_MAX_SIZE]; -#endif + unsigned char hash[MBEDTLS_HASH_MAX_SIZE]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* diff --git a/library/x509_crt.c b/library/x509_crt.c index d96abb28f4..af1e487dbf 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -2464,8 +2464,8 @@ static int x509_crt_check_signature( const mbedtls_x509_crt *child, mbedtls_x509_crt_restart_ctx *rs_ctx ) { size_t hash_len; + unsigned char hash[MBEDTLS_HASH_MAX_SIZE]; #if !defined(MBEDTLS_USE_PSA_CRYPTO) - unsigned char hash[MBEDTLS_MD_MAX_SIZE]; const mbedtls_md_info_t *md_info; md_info = mbedtls_md_info_from_type( child->sig_md ); hash_len = mbedtls_md_get_size( md_info ); @@ -2474,7 +2474,6 @@ static int x509_crt_check_signature( const mbedtls_x509_crt *child, if( mbedtls_md( md_info, child->tbs.p, child->tbs.len, hash ) != 0 ) return( -1 ); #else - unsigned char hash[PSA_HASH_MAX_SIZE]; psa_algorithm_t hash_alg = mbedtls_hash_info_psa_from_md( child->sig_md ); psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; diff --git a/library/x509write_csr.c b/library/x509write_csr.c index b7a507ede1..c4dd1b7c81 100644 --- a/library/x509write_csr.c +++ b/library/x509write_csr.c @@ -35,8 +35,8 @@ #if defined(MBEDTLS_USE_PSA_CRYPTO) #include "psa/crypto.h" #include "mbedtls/psa_util.h" -#include "hash_info.h" #endif /* MBEDTLS_USE_PSA_CRYPTO */ +#include "hash_info.h" #include #include @@ -145,7 +145,7 @@ static int x509write_csr_der_internal( mbedtls_x509write_csr *ctx, const char *sig_oid; size_t sig_oid_len = 0; unsigned char *c, *c2; - unsigned char hash[64]; + unsigned char hash[MBEDTLS_HASH_MAX_SIZE]; size_t pub_len = 0, sig_and_oid_len = 0, sig_len; size_t len = 0; mbedtls_pk_type_t pk_alg; From cb679f23bc44c4709670c1228353a28881d0a4ef Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Tue, 13 Sep 2022 14:43:07 +0200 Subject: [PATCH 0220/1028] Replace 0s with proper defines when possible Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 1fd91290e6..adff60fc65 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -198,7 +198,7 @@ psa_status_t psa_pake_setup( psa_pake_operation_t *operation, const psa_pake_cipher_suite_t *cipher_suite) { /* A context must be freshly initialized before it can be set up. */ - if( operation->alg != 0 ) + if( operation->alg != PSA_ALG_NONE ) return( PSA_ERROR_BAD_STATE ); if( cipher_suite == NULL || @@ -249,7 +249,7 @@ psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, psa_key_type_t type; psa_key_usage_t usage; - if( operation->alg == 0 || + if( operation->alg == PSA_ALG_NONE || operation->state != PSA_PAKE_STATE_SETUP ) { return( PSA_ERROR_BAD_STATE ); @@ -282,7 +282,7 @@ psa_status_t psa_pake_set_user( psa_pake_operation_t *operation, const uint8_t *user_id, size_t user_id_len ) { - if( operation->alg == 0 || + if( operation->alg == PSA_ALG_NONE || operation->state != PSA_PAKE_STATE_SETUP ) { return( PSA_ERROR_BAD_STATE ); @@ -298,7 +298,7 @@ psa_status_t psa_pake_set_peer( psa_pake_operation_t *operation, const uint8_t *peer_id, size_t peer_id_len ) { - if( operation->alg == 0 || + if( operation->alg == PSA_ALG_NONE || operation->state != PSA_PAKE_STATE_SETUP ) { return( PSA_ERROR_BAD_STATE ); @@ -313,7 +313,7 @@ psa_status_t psa_pake_set_peer( psa_pake_operation_t *operation, psa_status_t psa_pake_set_role( psa_pake_operation_t *operation, psa_pake_role_t role ) { - if( operation->alg == 0 || + if( operation->alg == PSA_ALG_NONE || operation->state != PSA_PAKE_STATE_SETUP ) { return( PSA_ERROR_BAD_STATE ); @@ -395,7 +395,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t length; - if( operation->alg == 0 || + if( operation->alg == PSA_ALG_NONE || operation->state == PSA_PAKE_STATE_INVALID ) return( PSA_ERROR_BAD_STATE ); @@ -556,7 +556,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, operation->state = PSA_PAKE_STATE_READY; operation->output_step++; - operation->sequence = 0; + operation->sequence = PSA_PAKE_SEQ_INVALID; } else operation->sequence++; @@ -577,7 +577,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t buffer_remain; - if( operation->alg == 0 || + if( operation->alg == PSA_ALG_NONE || operation->state == PSA_PAKE_STATE_INVALID ) return( PSA_ERROR_BAD_STATE ); @@ -715,7 +715,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, { operation->state = PSA_PAKE_STATE_READY; operation->input_step++; - operation->sequence = 0; + operation->sequence = PSA_PAKE_SEQ_INVALID; } else operation->sequence++; @@ -733,7 +733,7 @@ psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( operation->alg == 0 || + if( operation->alg == PSA_ALG_NONE || operation->state != PSA_PAKE_STATE_READY || operation->input_step != PSA_PAKE_STEP_DERIVE || operation->output_step != PSA_PAKE_STEP_DERIVE ) @@ -772,7 +772,7 @@ psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, psa_status_t psa_pake_abort(psa_pake_operation_t * operation) { - if( operation->alg == 0 ) + if( operation->alg == PSA_ALG_NONE ) { return( PSA_SUCCESS ); } @@ -780,10 +780,10 @@ psa_status_t psa_pake_abort(psa_pake_operation_t * operation) #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) if( operation->alg == PSA_ALG_JPAKE ) { - operation->input_step = 0; - operation->output_step = 0; + operation->input_step = PSA_PAKE_STEP_INVALID; + operation->output_step = PSA_PAKE_STEP_INVALID; operation->password = MBEDTLS_SVC_KEY_ID_INIT; - operation->role = 0; + operation->role = PSA_PAKE_ROLE_NONE; mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); operation->buffer_length = 0; operation->buffer_offset = 0; @@ -791,9 +791,9 @@ psa_status_t psa_pake_abort(psa_pake_operation_t * operation) } #endif - operation->alg = 0; - operation->state = 0; - operation->sequence = 0; + operation->alg = PSA_ALG_NONE; + operation->state = PSA_PAKE_STATE_INVALID; + operation->sequence = PSA_PAKE_SEQ_INVALID; return( PSA_SUCCESS ); } From 1d0294f6ede39c985a5ca8ddeaee3c6b68401bff Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Tue, 13 Sep 2022 14:49:24 +0200 Subject: [PATCH 0221/1028] Clarify sequence length calculation comment Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index adff60fc65..617187f10f 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -513,19 +513,42 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, operation->buffer_offset = 0; } - /* Load output sequence length */ + /* + * Steps sequences are stored as: + * struct { + * opaque point <1..2^8-1>; + * } ECPoint; + * + * Where byte 0 stores the ECPoint curve point length. + * + * The sequence length is equal to: + * - data length extracted from byte 0 + * - byte 0 size (1) + */ if( operation->state == PSA_PAKE_OUTPUT_X2S && operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE ) { if( operation->role == PSA_PAKE_ROLE_SERVER ) - /* Length is stored after 3bytes curve */ + /* + * The X2S KEY SHARE Server steps sequence is stored as: + * struct { + * ECPoint X; + * opaque r <1..2^8-1>; + * } ECSchnorrZKP; + * + * And MbedTLS uses a 3 bytes Ephemeral public key ECPoint, + * so byte 3 stores the r Schnorr signature length. + * + * The sequence length is equal to: + * - curve storage size (3) + * - data length extracted from byte 3 + * - byte 3 size (1) + */ length = 3 + operation->buffer[3] + 1; else - /* Length is stored at the first byte */ length = operation->buffer[0] + 1; } else - /* Length is stored at the first byte of the next chunk */ length = operation->buffer[operation->buffer_offset] + 1; if( length > operation->buffer_length ) From 017db4cddae4ce022f976b12bc89150c5cd688b8 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Tue, 13 Sep 2022 14:49:53 +0200 Subject: [PATCH 0222/1028] Drop calls to mbedtls_ecjpake_check() Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 617187f10f..83fcb41172 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -419,12 +419,6 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, } } - if( operation->state >= PSA_PAKE_STATE_READY && - mbedtls_ecjpake_check( &operation->ctx.ecjpake ) != 0 ) - { - return( PSA_ERROR_BAD_STATE ); - } - if( operation->state != PSA_PAKE_STATE_READY && operation->state != PSA_PAKE_OUTPUT_X1_X2 && operation->state != PSA_PAKE_OUTPUT_X2S ) @@ -625,12 +619,6 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, } } - if( operation->state >= PSA_PAKE_STATE_READY && - mbedtls_ecjpake_check( &operation->ctx.ecjpake ) != 0 ) - { - return( PSA_ERROR_BAD_STATE ); - } - if( operation->state != PSA_PAKE_STATE_READY && operation->state != PSA_PAKE_INPUT_X1_X2 && operation->state != PSA_PAKE_INPUT_X4S ) From 3d4966a5cbfbaffb18a131ea84d8e0ddb0b1cb55 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Tue, 13 Sep 2022 14:54:15 +0200 Subject: [PATCH 0223/1028] Move possible input/output steps check inside PSA_ALG_JPAKE handling Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 83fcb41172..73b01624f2 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -399,17 +399,17 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, operation->state == PSA_PAKE_STATE_INVALID ) return( PSA_ERROR_BAD_STATE ); - if( step != PSA_PAKE_STEP_KEY_SHARE && - step != PSA_PAKE_STEP_ZK_PUBLIC && - step != PSA_PAKE_STEP_ZK_PROOF ) - return( PSA_ERROR_INVALID_ARGUMENT ); - if( output == NULL || output_size == 0 || output_length == NULL ) return( PSA_ERROR_INVALID_ARGUMENT ); #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) if( operation->alg == PSA_ALG_JPAKE ) { + if( step != PSA_PAKE_STEP_KEY_SHARE && + step != PSA_PAKE_STEP_ZK_PUBLIC && + step != PSA_PAKE_STEP_ZK_PROOF ) + return( PSA_ERROR_INVALID_ARGUMENT ); + if( operation->state == PSA_PAKE_STATE_SETUP ) { status = psa_pake_ecjpake_setup( operation ); if( status != PSA_SUCCESS ) @@ -598,17 +598,17 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, operation->state == PSA_PAKE_STATE_INVALID ) return( PSA_ERROR_BAD_STATE ); - if( step != PSA_PAKE_STEP_KEY_SHARE && - step != PSA_PAKE_STEP_ZK_PUBLIC && - step != PSA_PAKE_STEP_ZK_PROOF ) - return( PSA_ERROR_INVALID_ARGUMENT ); - if( input == NULL || input_length == 0 ) return( PSA_ERROR_INVALID_ARGUMENT ); #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) if( operation->alg == PSA_ALG_JPAKE ) { + if( step != PSA_PAKE_STEP_KEY_SHARE && + step != PSA_PAKE_STEP_ZK_PUBLIC && + step != PSA_PAKE_STEP_ZK_PROOF ) + return( PSA_ERROR_INVALID_ARGUMENT ); + if( operation->state == PSA_PAKE_STATE_SETUP ) { status = psa_pake_ecjpake_setup( operation ); From fa849622962e1fb5bcb07fb87912fc965fa6d62c Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Tue, 13 Sep 2022 15:10:46 +0200 Subject: [PATCH 0224/1028] Add comment explaining PSA PAKE vs Mbedtls J-PAKE API matching strategy Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 73b01624f2..9c8eebb298 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -403,6 +403,20 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, return( PSA_ERROR_INVALID_ARGUMENT ); #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) + /* + * The PSA CRYPTO PAKE and MbedTLS JPAKE API have a different + * handling of output sequencing. + * + * The MbedTLS JPAKE API outputs the whole X1+X2 anf X2S steps data + * at once, on the other side the PSA CRYPTO PAKE api requires + * the KEY_SHARE/ZP_PUBLIC/ZK_PROOF parts of X1, X2 & X2S to be + * retrieved in sequence. + * + * In order to achieve API compatibility, the whole X1+X2 or X2S steps + * data is stored in an intermediate buffer at first step output call, + * and data is sliced down by parsing the ECPoint records in order + * to return the right parts on each step. + */ if( operation->alg == PSA_ALG_JPAKE ) { if( step != PSA_PAKE_STEP_KEY_SHARE && @@ -602,6 +616,21 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, return( PSA_ERROR_INVALID_ARGUMENT ); #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) + /* + * The PSA CRYPTO PAKE and MbedTLS JPAKE API have a different + * handling of input sequencing. + * + * The MbedTLS JPAKE API takes the whole X1+X2 or X4S steps data + * at once as input, on the other side the PSA CRYPTO PAKE api requires + * the KEY_SHARE/ZP_PUBLIC/ZK_PROOF parts of X1, X2 & X4S to be + * given in sequence. + * + * In order to achieve API compatibility, each X1+X2 or X4S step data + * is stored sequentially in an intermediate buffer and given to the + * MbedTLS JPAKE API on the last step. + * + * This causes any input error to be only detected on the last step. + */ if( operation->alg == PSA_ALG_JPAKE ) { if( step != PSA_PAKE_STEP_KEY_SHARE && From 47e3cb1875ad690d5e9571ea34f84d28403b4515 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Fri, 2 Sep 2022 13:17:03 +0200 Subject: [PATCH 0225/1028] ssl_tls13_generic.c: adapt guards for MBEDTLS_SHAxxx_C Signed-off-by: Przemek Stekiel --- library/ssl_tls13_generic.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 2b9ac5c57e..0ecdd403fc 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1388,7 +1388,7 @@ int mbedtls_ssl_reset_transcript_for_hrr( mbedtls_ssl_context *ssl ) if( ciphersuite_info->mac == MBEDTLS_MD_SHA256 ) { -#if defined(MBEDTLS_SHA256_C) +#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_SSL_DEBUG_BUF( 4, "Truncated SHA-256 handshake transcript", hash_transcript, hash_len ); @@ -1398,11 +1398,11 @@ int mbedtls_ssl_reset_transcript_for_hrr( mbedtls_ssl_context *ssl ) #else mbedtls_sha256_starts( &ssl->handshake->fin_sha256, 0 ); #endif -#endif /* MBEDTLS_SHA256_C */ +#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ } else if( ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) { -#if defined(MBEDTLS_SHA384_C) +#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_SSL_DEBUG_BUF( 4, "Truncated SHA-384 handshake transcript", hash_transcript, hash_len ); @@ -1412,12 +1412,12 @@ int mbedtls_ssl_reset_transcript_for_hrr( mbedtls_ssl_context *ssl ) #else mbedtls_sha512_starts( &ssl->handshake->fin_sha384, 1 ); #endif -#endif /* MBEDTLS_SHA384_C */ +#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ } -#if defined(MBEDTLS_SHA256_C) || defined(MBEDTLS_SHA384_C) +#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) ssl->handshake->update_checksum( ssl, hash_transcript, hash_len ); -#endif /* MBEDTLS_SHA256_C || MBEDTLS_SHA384_C */ +#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA || MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ return( ret ); } From a9a88161075ceee8206807beb558b0f5d65482dc Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Fri, 2 Sep 2022 13:18:55 +0200 Subject: [PATCH 0226/1028] ssl.h: adapt guards for MBEDTLS_SSL_TLS1_3_TICKET_RESUMPTION_KEY_LEN Signed-off-by: Przemek Stekiel --- include/mbedtls/ssl.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 3d820a5259..ada605361c 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -338,11 +338,15 @@ #define MBEDTLS_SSL_SRV_CIPHERSUITE_ORDER_SERVER 0 #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) -#if defined(MBEDTLS_SHA384_C) +#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ + defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA256_C) ) || \ + ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_256) ) #define MBEDTLS_SSL_TLS1_3_TICKET_RESUMPTION_KEY_LEN 48 -#elif defined(MBEDTLS_SHA256_C) +#elif ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ + defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA384_C) ) || \ + ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_384) ) #define MBEDTLS_SSL_TLS1_3_TICKET_RESUMPTION_KEY_LEN 32 -#endif /* MBEDTLS_SHA256_C */ +#endif #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ /* * Default range for DTLS retransmission timer value, in milliseconds. From cf9d972a9abb214d78008a0a4419d9bdc29abc4b Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Fri, 2 Sep 2022 13:29:25 +0200 Subject: [PATCH 0227/1028] Fix config for MBEDTLS_SSL_PROTO_TLS1_3 Remove MBEDTLS_HKDF_C as it is not needed since #5838 Reasoning: we need SHA-256 or SHA-384 via PSA because they're used by HKDF which is now always done via PSA. If in addition to that USE_PSA is enabled, then everything is done via PSA so that's enough. Otherwise, we need the software implementation of SHA-256 or SHA-384, plus MD_C because we're using a VIA_MD_OR_PSA_BASED_ON_USE_PSA as discussed above. Signed-off-by: Przemek Stekiel --- include/mbedtls/check_config.h | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index e00ffb5a96..33e4d0d9b0 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -260,7 +260,7 @@ #error "MBEDTLS_ECP_NO_FALLBACK defined, but no alternative implementation enabled" #endif -#if defined(MBEDTLS_HKDF_C) && !defined(MBEDTLS_MD_C) +#if defined(MBEDTLS_HKDF_C) && !( defined(MBEDTLS_MD_C) || defined(MBEDTLS_PSA_CRYPTO_C) ) #error "MBEDTLS_HKDF_C defined, but not all prerequisites" #endif @@ -755,10 +755,9 @@ * Otherwise support for at least one ciphersuite mandates either SHA_256 or * SHA_384. */ -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - ( ( !defined(MBEDTLS_HKDF_C) ) || \ - ( !defined(MBEDTLS_SHA256_C) && !defined(MBEDTLS_SHA384_C) ) || \ - ( !defined(MBEDTLS_PSA_CRYPTO_C) ) ) +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + !( ( defined(PSA_WANT_ALG_SHA_256) || defined(PSA_WANT_ALG_SHA_348) ) && \ + ( defined(MBEDTLS_USE_PSA_CRYPTO) || ( defined(MBEDTLS_MD_C) && ( defined(MBEDTLS_SHA256_C) || defined(MBEDTLS_SHA384_C) ) ) ) ) #error "MBEDTLS_SSL_PROTO_TLS1_3 defined, but not all prerequisites" #endif From a4af13a46c1a280e37f3c72836b7e3c3c53cca13 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Fri, 2 Sep 2022 13:35:15 +0200 Subject: [PATCH 0228/1028] test_psa_crypto_config_accel_hash_use_psa: enable TLS 1.3 Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 6c70f78dbb..985579e582 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1851,6 +1851,9 @@ component_test_psa_crypto_config_accel_hash_use_psa () { scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG scripts/config.py set MBEDTLS_USE_PSA_CRYPTO + scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3 + scripts/config.py set MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE + scripts/config.py set MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY 1 scripts/config.py unset MBEDTLS_MD5_C scripts/config.py unset MBEDTLS_RIPEMD160_C scripts/config.py unset MBEDTLS_SHA1_C From a06787a6296dc06fba04631fc4a52d5a87ccb1f9 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Fri, 2 Sep 2022 14:41:44 +0200 Subject: [PATCH 0229/1028] build_info.h: include config_psa.h also when MBEDTLS_PSA_CRYPTO_C This is done to have PSA_WANT_xxx symbols available in check_config.h when MBEDTLS_PSA_CRYPTO_C. Signed-off-by: Przemek Stekiel --- include/mbedtls/build_info.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index 234debd012..6195ac979b 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -77,7 +77,11 @@ #if defined(MBEDTLS_PK_C) && defined(MBEDTLS_USE_PSA_CRYPTO) #define MBEDTLS_PK_WRITE_C #endif -#if defined(MBEDTLS_PSA_CRYPTO_CONFIG) + +/* Make sure all configuration symbols are set before including check_config.h, + * even the ones that are calculated programmatically. */ +#if defined(MBEDTLS_PSA_CRYPTO_CONFIG) /* PSA_WANT_xxx influences MBEDTLS_xxx */ || \ + defined(MBEDTLS_PSA_CRYPTO_C) /* MBEDTLS_xxx influences PSA_WANT_xxx */ #include "mbedtls/config_psa.h" #endif From 153b442cc3c0c39209c31b462146416e924f19c7 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 5 Sep 2022 12:36:25 +0200 Subject: [PATCH 0230/1028] mbedtls_ssl_tls13_sig_alg_is_supported: adapt guards Signed-off-by: Przemek Stekiel --- library/ssl_misc.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 4842135bf7..84023b4147 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2178,18 +2178,18 @@ static inline int mbedtls_ssl_tls13_sig_alg_is_supported( switch( sig_alg ) { #if defined(MBEDTLS_PKCS1_V15) -#if defined(MBEDTLS_SHA256_C) +#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256: break; -#endif /* MBEDTLS_SHA256_C */ -#if defined(MBEDTLS_SHA384_C) +#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384: break; -#endif /* MBEDTLS_SHA384_C */ -#if defined(MBEDTLS_SHA512_C) +#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +#if defined(MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512: break; -#endif /* MBEDTLS_SHA512_C */ +#endif /* MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #endif /* MBEDTLS_PKCS1_V15 */ default: return( mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported( From 9dfbf3a006af2812c8c8c627fa1cd94334c74d1e Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 6 Sep 2022 07:40:46 +0200 Subject: [PATCH 0231/1028] ssl_tls13_generic.c: optimize code to save memory Signed-off-by: Przemek Stekiel --- library/ssl_tls13_generic.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 0ecdd403fc..b71e6536be 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1386,9 +1386,9 @@ int mbedtls_ssl_reset_transcript_for_hrr( mbedtls_ssl_context *ssl ) hash_len += 4; +#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) if( ciphersuite_info->mac == MBEDTLS_MD_SHA256 ) { -#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_SSL_DEBUG_BUF( 4, "Truncated SHA-256 handshake transcript", hash_transcript, hash_len ); @@ -1398,11 +1398,11 @@ int mbedtls_ssl_reset_transcript_for_hrr( mbedtls_ssl_context *ssl ) #else mbedtls_sha256_starts( &ssl->handshake->fin_sha256, 0 ); #endif -#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ } +#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) else if( ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) { -#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_SSL_DEBUG_BUF( 4, "Truncated SHA-384 handshake transcript", hash_transcript, hash_len ); @@ -1412,9 +1412,8 @@ int mbedtls_ssl_reset_transcript_for_hrr( mbedtls_ssl_context *ssl ) #else mbedtls_sha512_starts( &ssl->handshake->fin_sha384, 1 ); #endif -#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ } - +#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) ssl->handshake->update_checksum( ssl, hash_transcript, hash_len ); #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA || MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ From 9408b70513e7ee11fd98f850b1c3c88faf291b47 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 6 Sep 2022 07:44:12 +0200 Subject: [PATCH 0232/1028] check_config.h: revert HKDF requirements Signed-off-by: Przemek Stekiel --- include/mbedtls/check_config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 33e4d0d9b0..30699c47ad 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -260,7 +260,7 @@ #error "MBEDTLS_ECP_NO_FALLBACK defined, but no alternative implementation enabled" #endif -#if defined(MBEDTLS_HKDF_C) && !( defined(MBEDTLS_MD_C) || defined(MBEDTLS_PSA_CRYPTO_C) ) +#if defined(MBEDTLS_HKDF_C) && !defined(MBEDTLS_MD_C) #error "MBEDTLS_HKDF_C defined, but not all prerequisites" #endif From dcec7ac3e804c699292432e2704524a72256c256 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 6 Sep 2022 07:54:33 +0200 Subject: [PATCH 0233/1028] test_psa_crypto_config_accel_hash_use_psa: enable tls.1.3 at the end and adapt comment Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 985579e582..0752f7b413 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1851,9 +1851,6 @@ component_test_psa_crypto_config_accel_hash_use_psa () { scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG scripts/config.py set MBEDTLS_USE_PSA_CRYPTO - scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3 - scripts/config.py set MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE - scripts/config.py set MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY 1 scripts/config.py unset MBEDTLS_MD5_C scripts/config.py unset MBEDTLS_RIPEMD160_C scripts/config.py unset MBEDTLS_SHA1_C @@ -1873,8 +1870,10 @@ component_test_psa_crypto_config_accel_hash_use_psa () { scripts/config.py unset MBEDTLS_HMAC_DRBG_C scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_DETERMINISTIC_ECDSA - # TLS 1.3 currently depends on SHA256_C || SHA384_C - # but is already disabled in the default config + # Enable TLS 1.3: use PSA implementation for hashes + scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3 + scripts/config.py set MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE + scripts/config.py set MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY 1 loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" make CFLAGS="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" all From 8a2f2b0bd64f423cc5b18febc439c9be601364a9 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 6 Sep 2022 08:07:43 +0200 Subject: [PATCH 0234/1028] check_config.h: fix TLS 1.3 requirements (add HKDF_EXTRACT/EXPAND) and comments Signed-off-by: Przemek Stekiel --- include/mbedtls/check_config.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 30699c47ad..c2fda364bd 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -750,11 +750,13 @@ #error "MBEDTLS_SSL_PROTO_TLS1_2 defined, but not all prerequisites" #endif -/* - * HKDF is mandatory for TLS 1.3. - * Otherwise support for at least one ciphersuite mandates either SHA_256 or - * SHA_384. - */ +/* TLS 1.3 requires separate HKDF parts from PSA */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + !( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_HKDF_EXTRACT) && defined(PSA_WANT_ALG_HKDF_EXPAND) ) +#error "MBEDTLS_SSL_PROTO_TLS1_3 defined, but not all prerequisites" +#endif + +/* TLS 1.3 requires at least one ciphersuite, so at least SHA-256 or SHA-384 */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ !( ( defined(PSA_WANT_ALG_SHA_256) || defined(PSA_WANT_ALG_SHA_348) ) && \ ( defined(MBEDTLS_USE_PSA_CRYPTO) || ( defined(MBEDTLS_MD_C) && ( defined(MBEDTLS_SHA256_C) || defined(MBEDTLS_SHA384_C) ) ) ) ) From 0852ef8b9613a8f14cc126360d5f5091bf1d31ec Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 7 Sep 2022 10:56:30 +0200 Subject: [PATCH 0235/1028] mbedtls_ssl_reset_transcript_for_hrr: remove redundant 'else' statement Signed-off-by: Przemek Stekiel --- library/ssl_tls13_generic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index b71e6536be..edf1c30e17 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1401,7 +1401,7 @@ int mbedtls_ssl_reset_transcript_for_hrr( mbedtls_ssl_context *ssl ) } #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - else if( ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) + if( ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) { MBEDTLS_SSL_DEBUG_BUF( 4, "Truncated SHA-384 handshake transcript", hash_transcript, hash_len ); From ce0aa58fd98240b6716d352306f9bf0c2308dce0 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 12 Sep 2022 13:24:25 +0200 Subject: [PATCH 0236/1028] check_config.h: make TLS1.3 requirements verification more readable Signed-off-by: Przemek Stekiel --- include/mbedtls/check_config.h | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index c2fda364bd..fa70058de6 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -757,11 +757,21 @@ #endif /* TLS 1.3 requires at least one ciphersuite, so at least SHA-256 or SHA-384 */ -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - !( ( defined(PSA_WANT_ALG_SHA_256) || defined(PSA_WANT_ALG_SHA_348) ) && \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) || ( defined(MBEDTLS_MD_C) && ( defined(MBEDTLS_SHA256_C) || defined(MBEDTLS_SHA384_C) ) ) ) ) +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) +/* We always need at least one of the hashes via PSA (for use with HKDF) */ +#if !( defined(PSA_WANT_ALG_SHA_256) || defined(PSA_WANT_ALG_SHA_384) ) #error "MBEDTLS_SSL_PROTO_TLS1_3 defined, but not all prerequisites" -#endif +#endif /* !(PSA_WANT_ALG_SHA_256 || PSA_WANT_ALG_SHA_384) */ +#if !defined(MBEDTLS_USE_PSA_CRYPTO) +/* When USE_PSA_CRYPTO is not defined, we also need SHA-256 or SHA-384 via the + * legacy interface, including via the MD layer, for the parts of the code + * that are shared with TLS 1.2 (running handshake hash). */ +#if !defined(MBEDTLS_MD_C) || \ + !( defined(MBEDTLS_SHA256_C) || defined(MBEDTLS_SHA384_C) ) +#error "MBEDTLS_SSL_PROTO_TLS1_3 defined, but not all prerequisites" +#endif /* !MBEDTLS_MD_C || !(MBEDTLS_SHA256_C || MBEDTLS_SHA384_C) */ +#endif /* !MBEDTLS_USE_PSA_CRYPTO */ +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ /* * The current implementation of TLS 1.3 requires MBEDTLS_SSL_KEEP_PEER_CERTIFICATE. From 95db17ed5f016b6767942655c40c6285f14af42b Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 14 Sep 2022 10:30:53 +0800 Subject: [PATCH 0237/1028] fix various issues - improve obfuscated ticket age generator - improve psk getter Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index e92a10c0ae..2c7d94638a 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -675,17 +675,11 @@ static int ssl_tls13_get_psk_to_offer( const unsigned char **psk, size_t *psk_len, const unsigned char **psk_identity, size_t *psk_identity_len ) { - if( psk_type == NULL || - psk == NULL || psk_len == NULL || - psk_identity == NULL || psk_identity_len == NULL ) - { - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - } - *psk = NULL; *psk_len = 0; *psk_identity = NULL; *psk_identity_len = 0; + *psk_type = MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL; #if defined(MBEDTLS_SSL_SESSION_TICKETS) /* Check if a ticket has been configured. */ @@ -694,9 +688,9 @@ static int ssl_tls13_get_psk_to_offer( { #if defined(MBEDTLS_HAVE_TIME) mbedtls_time_t now = mbedtls_time( NULL ); - - if( ( ssl->session_negotiate->ticket_received <= now && - now - ssl->session_negotiate->ticket_received < 7 * 86400 * 1000 ) ) + if( ssl->session_negotiate->ticket_received <= now && + (uint64_t)( now - ssl->session_negotiate->ticket_received ) + <= ssl->session_negotiate->ticket_lifetime ) { *psk_type = MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION; *psk = ssl->session_negotiate->resumption_key; @@ -713,7 +707,6 @@ static int ssl_tls13_get_psk_to_offer( /* Check if an external PSK has been configured. */ if( ssl->conf->psk != NULL ) { - *psk_type = MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL; *psk = ssl->conf->psk; *psk_len = ssl->conf->psk_len; *psk_identity = ssl->conf->psk_identity; @@ -721,7 +714,7 @@ static int ssl_tls13_get_psk_to_offer( return( 0 ); } - return( 1 ); + return( MBEDTLS_ERR_ERROR_GENERIC_ERROR ); } /* @@ -817,9 +810,12 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( { #if defined(MBEDTLS_HAVE_TIME) mbedtls_time_t now = mbedtls_time( NULL ); + uint64_t age_in_ms = + ( now - ssl->session_negotiate->ticket_received ) * 1000; + obfuscated_ticket_age = - (uint32_t)( now - ssl->session_negotiate->ticket_received ) + - ssl->session_negotiate->ticket_age_add; + (uint32_t)( ( age_in_ms + ssl->session_negotiate->ticket_age_add ) + & ( ( 1LL << 32 ) - 1 ) ); #endif } else From acff823846f06663e8a7dd67348f20ccb217b435 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 14 Sep 2022 14:35:11 +0800 Subject: [PATCH 0238/1028] Add negative tolerance window If `now == session->start` or the timer of client is faster than server, client age might be bigger than server. Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 67d685bb02..55cb670674 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -136,7 +136,8 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( unsigned char *ticket_buffer; #if defined(MBEDTLS_HAVE_TIME) mbedtls_time_t now; - uint64_t age_in_s, age_in_ms, client_age_in_ms; + uint64_t age_in_s; + int64_t diff_in_ms; #endif ((void) obfuscated_ticket_age); @@ -220,15 +221,14 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( * ticket_age_add from PskIdentity.obfuscated_ticket_age modulo 2^32) is * within a small tolerance of the time since the ticket was issued. */ - age_in_ms = age_in_s * 1000; - client_age_in_ms = obfuscated_ticket_age - session->ticket_age_add; - if( age_in_ms < client_age_in_ms || - ( age_in_ms - client_age_in_ms ) > MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE ) + diff_in_ms = age_in_s * 1000; + diff_in_ms -= ( obfuscated_ticket_age - session->ticket_age_add ); + diff_in_ms += MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE / 2; + if( diff_in_ms < 0 || diff_in_ms > MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "Ticket expired: Ticket age outside tolerance window " - "( diff=%d )", - (int)(age_in_ms - client_age_in_ms ) ) ); + "( diff=%d )", (int)diff_in_ms ) ); goto exit; } From 004c2181f03892b5c55a5819885fcca1b29f77c6 Mon Sep 17 00:00:00 2001 From: Przemyslaw Stekiel Date: Wed, 14 Sep 2022 09:09:16 +0200 Subject: [PATCH 0239/1028] ssl_misc.h: hash guards adaptations Signed-off-by: Przemyslaw Stekiel --- library/ssl_misc.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 84023b4147..a59e672efc 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2137,33 +2137,33 @@ static inline int mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported( switch( sig_alg ) { #if defined(MBEDTLS_ECDSA_C) -#if defined(MBEDTLS_SHA256_C) && defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) +#if defined(PSA_WANT_ALG_SHA_256) && defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) case MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256: break; -#endif /* MBEDTLS_SHA256_C && MBEDTLS_ECP_DP_SECP256R1_ENABLED */ -#if defined(MBEDTLS_SHA384_C) && defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) +#endif /* PSA_WANT_ALG_SHA_256 && MBEDTLS_ECP_DP_SECP256R1_ENABLED */ +#if defined(PSA_WANT_ALG_SHA_384) && defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) case MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384: break; -#endif /* MBEDTLS_SHA384_C && MBEDTLS_ECP_DP_SECP384R1_ENABLED */ -#if defined(MBEDTLS_SHA512_C) && defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) +#endif /* PSA_WANT_ALG_SHA_384 && MBEDTLS_ECP_DP_SECP384R1_ENABLED */ +#if defined(PSA_WANT_ALG_SHA_512) && defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) case MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512: break; -#endif /* MBEDTLS_SHA512_C && MBEDTLS_ECP_DP_SECP521R1_ENABLED */ +#endif /* PSA_WANT_ALG_SHA_512 && MBEDTLS_ECP_DP_SECP521R1_ENABLED */ #endif /* MBEDTLS_ECDSA_C */ #if defined(MBEDTLS_PKCS1_V21) -#if defined(MBEDTLS_SHA256_C) +#if defined(PSA_WANT_ALG_SHA_256) case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: break; -#endif /* MBEDTLS_SHA256_C */ -#if defined(MBEDTLS_SHA384_C) +#endif /* PSA_WANT_ALG_SHA_256 */ +#if defined(PSA_WANT_ALG_SHA_384) case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384: break; -#endif /* MBEDTLS_SHA384_C */ -#if defined(MBEDTLS_SHA512_C) +#endif /* PSA_WANT_ALG_SHA_384 */ +#if defined(PSA_WANT_ALG_SHA_512) case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512: break; -#endif /* MBEDTLS_SHA512_C */ +#endif /* PSA_WANT_ALG_SHA_512 */ #endif /* MBEDTLS_PKCS1_V21 */ default: return( 0 ); From 034492bd567e8ad5a6db75f621ffe3072edf209d Mon Sep 17 00:00:00 2001 From: Przemyslaw Stekiel Date: Wed, 14 Sep 2022 11:09:20 +0200 Subject: [PATCH 0240/1028] ssl.h: Fix hash guards Signed-off-by: Przemyslaw Stekiel --- include/mbedtls/ssl.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index ada605361c..0fcac689fa 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -338,13 +338,9 @@ #define MBEDTLS_SSL_SRV_CIPHERSUITE_ORDER_SERVER 0 #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) -#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA256_C) ) || \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_256) ) +#if defined(PSA_WANT_ALG_SHA_384) #define MBEDTLS_SSL_TLS1_3_TICKET_RESUMPTION_KEY_LEN 48 -#elif ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA384_C) ) || \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_384) ) +#elif defined(PSA_WANT_ALG_SHA_256) #define MBEDTLS_SSL_TLS1_3_TICKET_RESUMPTION_KEY_LEN 32 #endif #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ From 673b0f9ad3a3a393d68a36e4dac77ee482587197 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 14 Sep 2022 15:02:21 +0800 Subject: [PATCH 0241/1028] Randomize order of psks Signed-off-by: Jerry Yu --- tests/opt-testcases/tls13-kex-modes.sh | 162 +++++++++++++------------ 1 file changed, 85 insertions(+), 77 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index a7724b4a85..1e6e29b2be 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -17,7 +17,15 @@ # See the License for the specific language governing permissions and # limitations under the License. # -P_SRV_PSK_LIST="psk_list=abc,dead,def,beef,Client_identity,6162636465666768696a6b6c6d6e6f70" + +get_srv_psk_list () +{ + case $(( TESTS % 3 )) in + 0) echo "psk_list=abc,dead,def,beef,Client_identity,6162636465666768696a6b6c6d6e6f70";; + 1) echo "psk_list=abc,dead,Client_identity,6162636465666768696a6b6c6d6e6f70,def,beef";; + 2) echo "psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef";; + esac +} requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -28,7 +36,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: PSK: No valid ciphersuite. G->m" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-CIPHER-ALL:+AES-256-GCM:+AEAD:+SHA384:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -48,7 +56,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: PSK: No valid ciphersuite. O->m" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -ciphersuites TLS_AES_256_GCM_SHA384\ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 1 \ @@ -63,7 +71,7 @@ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk, fail, no common kex mode" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -80,7 +88,7 @@ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -99,7 +107,7 @@ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -117,7 +125,7 @@ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -135,7 +143,7 @@ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -154,7 +162,7 @@ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -172,7 +180,7 @@ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -191,7 +199,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -211,7 +219,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -230,7 +238,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -249,7 +257,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -269,7 +277,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk_ephemeral, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -288,7 +296,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk_ephemeral, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -307,7 +315,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_ephemeral, fail, no common kex mode" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -325,7 +333,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -345,7 +353,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_all, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -364,7 +372,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -383,7 +391,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -403,7 +411,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk_all, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -422,7 +430,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -441,7 +449,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -461,7 +469,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -480,7 +488,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -499,7 +507,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -519,7 +527,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, good, key id mismatch, dhe." \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -538,7 +546,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -557,7 +565,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/ephemeral_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -577,7 +585,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/ephemeral_all, good, key id mismatch, dhe." \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -596,7 +604,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/ephemeral_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -615,7 +623,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/ephemeral_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -635,7 +643,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -655,7 +663,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/all, good, key id mismatch, dhe." \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -674,7 +682,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -693,7 +701,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -713,7 +721,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/all, good, key id mismatch, dhe." \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername wrong_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -732,7 +740,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -751,7 +759,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -771,7 +779,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -790,7 +798,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_or_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -810,7 +818,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk_or_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -830,7 +838,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk_or_ephemeral, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -849,7 +857,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_or_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ localhost" \ @@ -869,7 +877,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_or_ephemeral, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f71 \ localhost" \ @@ -887,7 +895,7 @@ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk, fail, no common kex mode" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 1 \ @@ -903,7 +911,7 @@ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -921,7 +929,7 @@ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 1 \ @@ -938,7 +946,7 @@ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -956,7 +964,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -975,7 +983,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 1 \ @@ -993,7 +1001,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -1011,7 +1019,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1030,7 +1038,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk_ephemeral, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 1 \ @@ -1048,7 +1056,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk_ephemeral, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -1066,7 +1074,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1085,7 +1093,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_all, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 1 \ @@ -1103,7 +1111,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -1121,7 +1129,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1140,7 +1148,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk_all, fail, key id mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 1 \ @@ -1158,7 +1166,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -1176,7 +1184,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1195,7 +1203,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, good, key id mismatch, dhe." \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1213,7 +1221,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -1231,7 +1239,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/ephemeral_all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1250,7 +1258,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/ephemeral_all, good, key id mismatch, dhe." \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1268,7 +1276,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/ephemeral_all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -1286,7 +1294,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1305,7 +1313,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/all, good, key id mismatch, dhe." \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1323,7 +1331,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -1341,7 +1349,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/all, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1360,7 +1368,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/all, good, key id mismatch, dhe." \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity wrong_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1378,7 +1386,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/all, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ @@ -1396,7 +1404,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_or_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1415,7 +1423,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk_or_ephemeral, good" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ 0 \ @@ -1434,7 +1442,7 @@ requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATI requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk_or_ephemeral, fail, key material mismatch" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $P_SRV_PSK_LIST" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f71" \ 1 \ From 6a12a7704d0429fdab96c15d6f7ab69cb50d1b2c Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Wed, 14 Sep 2022 12:17:42 +0200 Subject: [PATCH 0242/1028] Fix typo in comment Signed-off-by: Neil Armstrong --- library/psa_crypto_pake.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 9c8eebb298..10d3e4a1b0 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -407,7 +407,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, * The PSA CRYPTO PAKE and MbedTLS JPAKE API have a different * handling of output sequencing. * - * The MbedTLS JPAKE API outputs the whole X1+X2 anf X2S steps data + * The MbedTLS JPAKE API outputs the whole X1+X2 and X2S steps data * at once, on the other side the PSA CRYPTO PAKE api requires * the KEY_SHARE/ZP_PUBLIC/ZK_PROOF parts of X1, X2 & X2S to be * retrieved in sequence. From da6452578f00fba4ee0806d6d3c41b1807d831b0 Mon Sep 17 00:00:00 2001 From: Przemyslaw Stekiel Date: Wed, 14 Sep 2022 12:50:51 +0200 Subject: [PATCH 0243/1028] ssl_tls13_generic.c: fix hash buffer sizes (use PSA_HASH_MAX_SIZE) Signed-off-by: Przemyslaw Stekiel --- library/ssl_tls13_generic.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index edf1c30e17..6f60fab0a3 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -976,7 +976,7 @@ static int ssl_tls13_write_certificate_verify_body( mbedtls_ssl_context *ssl, psa_algorithm_t psa_algorithm = PSA_ALG_NONE; uint16_t algorithm = MBEDTLS_TLS1_3_SIG_NONE; size_t signature_len = 0; - unsigned char verify_hash[ MBEDTLS_MD_MAX_SIZE ]; + unsigned char verify_hash[PSA_HASH_MAX_SIZE]; size_t verify_hash_len; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; @@ -1361,7 +1361,7 @@ cleanup: int mbedtls_ssl_reset_transcript_for_hrr( mbedtls_ssl_context *ssl ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - unsigned char hash_transcript[ MBEDTLS_MD_MAX_SIZE + 4 ]; + unsigned char hash_transcript[PSA_HASH_MAX_SIZE + 4]; size_t hash_len; const mbedtls_ssl_ciphersuite_t *ciphersuite_info; uint16_t cipher_suite = ssl->session_negotiate->ciphersuite; @@ -1371,7 +1371,7 @@ int mbedtls_ssl_reset_transcript_for_hrr( mbedtls_ssl_context *ssl ) ret = mbedtls_ssl_get_handshake_transcript( ssl, ciphersuite_info->mac, hash_transcript + 4, - MBEDTLS_MD_MAX_SIZE, + PSA_HASH_MAX_SIZE, &hash_len ); if( ret != 0 ) { From ab9b9d4669bcd5a78450a140da99be78038ca986 Mon Sep 17 00:00:00 2001 From: Przemyslaw Stekiel Date: Wed, 14 Sep 2022 13:51:07 +0200 Subject: [PATCH 0244/1028] ssl_tls13_keys.h: use PSA max hash size Signed-off-by: Przemyslaw Stekiel --- library/ssl_tls13_keys.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ssl_tls13_keys.h b/library/ssl_tls13_keys.h index b1155fb2a6..d82bf7a937 100644 --- a/library/ssl_tls13_keys.h +++ b/library/ssl_tls13_keys.h @@ -81,7 +81,7 @@ extern const struct mbedtls_ssl_tls13_labels_struct mbedtls_ssl_tls13_labels; * Since contexts are always hashes of message transcripts, this can * be approximated from above by the maximum hash size. */ #define MBEDTLS_SSL_TLS1_3_KEY_SCHEDULE_MAX_CONTEXT_LEN \ - MBEDTLS_MD_MAX_SIZE + PSA_HASH_MAX_SIZE /* Maximum desired length for expanded key material generated * by HKDF-Expand-Label. From 08d34b8693a03727e6731ae5adf44a8e081dfbf9 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 29 Jul 2022 10:00:16 -0400 Subject: [PATCH 0245/1028] Add an EC J-PAKE KDF to transform K -> SHA256(K.X) for TLS 1.2 TLS uses it to derive the session secret. The algorithm takes a serialized point in an uncompressed form, extracts the X coordinate and computes SHA256 of it. It is only expected to work with P-256. Fixes #5978. Signed-off-by: Andrzej Kurek --- include/mbedtls/config_psa.h | 8 ++ include/psa/crypto_config.h | 2 + include/psa/crypto_sizes.h | 9 +++ include/psa/crypto_struct.h | 9 +++ include/psa/crypto_values.h | 8 ++ library/psa_crypto.c | 103 +++++++++++++++++++++--- scripts/mbedtls_dev/crypto_knowledge.py | 1 + 7 files changed, 129 insertions(+), 11 deletions(-) diff --git a/include/mbedtls/config_psa.h b/include/mbedtls/config_psa.h index b84a80a30c..88052d228b 100644 --- a/include/mbedtls/config_psa.h +++ b/include/mbedtls/config_psa.h @@ -228,6 +228,12 @@ extern "C" { #endif /* !MBEDTLS_PSA_ACCEL_ALG_TLS12_PSK_TO_MS */ #endif /* PSA_WANT_ALG_TLS12_PSK_TO_MS */ +#if defined(PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS) +#if !defined(MBEDTLS_PSA_ACCEL_ALG_TLS12_ECJPAKE_TO_PMS) +#define MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS 1 +#endif /* !MBEDTLS_PSA_ACCEL_ALG_TLS12_ECJPAKE_TO_PMS */ +#endif /* PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS */ + #if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR) #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR) #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR 1 @@ -629,6 +635,8 @@ extern "C" { #define PSA_WANT_ALG_TLS12_PRF 1 #define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS 1 #define PSA_WANT_ALG_TLS12_PSK_TO_MS 1 +#define MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS 1 +#define PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS 1 #endif /* MBEDTLS_MD_C */ #if defined(MBEDTLS_MD5_C) diff --git a/include/psa/crypto_config.h b/include/psa/crypto_config.h index 991be96ef4..8737e2911c 100644 --- a/include/psa/crypto_config.h +++ b/include/psa/crypto_config.h @@ -88,6 +88,8 @@ #define PSA_WANT_ALG_STREAM_CIPHER 1 #define PSA_WANT_ALG_TLS12_PRF 1 #define PSA_WANT_ALG_TLS12_PSK_TO_MS 1 +#define PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS 1 + /* PBKDF2-HMAC is not yet supported via the PSA API in Mbed TLS. * Note: when adding support, also adjust include/mbedtls/config_psa.h */ //#define PSA_WANT_ALG_XTS 1 diff --git a/include/psa/crypto_sizes.h b/include/psa/crypto_sizes.h index 1024d6b918..231ea624a7 100644 --- a/include/psa/crypto_sizes.h +++ b/include/psa/crypto_sizes.h @@ -239,6 +239,15 @@ */ #define PSA_TLS12_PSK_TO_MS_PSK_MAX_SIZE 128 +/* The expected size of input passed to psa_tls12_ecjpake_to_pms_input, + * which is expected to work with P-256 curve only. */ +#define PSA_TLS12_ECJPAKE_TO_PMS_INPUT_SIZE 65 + +/* The size of a serialized K.X coordinate to be used in + * psa_tls12_ecjpake_to_pms_input. This function only accepts the P-256 + * curve. */ +#define PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE 32 + /** The maximum size of a block cipher. */ #define PSA_BLOCK_CIPHER_BLOCK_MAX_SIZE 16 diff --git a/include/psa/crypto_struct.h b/include/psa/crypto_struct.h index 957b4c6113..afba325022 100644 --- a/include/psa/crypto_struct.h +++ b/include/psa/crypto_struct.h @@ -202,6 +202,12 @@ typedef struct #endif /* MBEDTLS_PSA_BUILTIN_ALG_HKDF || MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT || MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXPAND */ +#if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) +typedef struct +{ + uint8_t MBEDTLS_PRIVATE(data)[PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE]; +} psa_tls12_ecjpake_to_pms_t; +#endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) @@ -266,6 +272,9 @@ struct psa_key_derivation_s #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) psa_tls12_prf_key_derivation_t MBEDTLS_PRIVATE(tls12_prf); +#endif +#if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) + psa_tls12_ecjpake_to_pms_t MBEDTLS_PRIVATE(tls12_ecjpake_to_pms); #endif } MBEDTLS_PRIVATE(ctx); }; diff --git a/include/psa/crypto_values.h b/include/psa/crypto_values.h index 5e6e5e352c..03438196b6 100644 --- a/include/psa/crypto_values.h +++ b/include/psa/crypto_values.h @@ -2021,6 +2021,14 @@ #define PSA_ALG_TLS12_PSK_TO_MS_GET_HASH(hkdf_alg) \ (PSA_ALG_CATEGORY_HASH | ((hkdf_alg) & PSA_ALG_HASH_MASK)) +/* Macro to build a KDF that takes the shared secret K (an EC point in case + * of EC J-PAKE) and calculates SHA256(K.X) that the rest of TLS 1.2 will + * use to derive the session secret. Uses PSA_ALG_SHA_256. + */ +#define PSA_ALG_TLS12_ECJPAKE_TO_PMS ((psa_algorithm_t)0x08000600) +#define PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS(alg) \ + (alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS) + /* This flag indicates whether the key derivation algorithm is suitable for * use on low-entropy secrets such as password - these algorithms are also * known as key stretching or password hashing schemes. These are also the diff --git a/library/psa_crypto.c b/library/psa_crypto.c index b0116ddfb4..5c05f79282 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -4243,7 +4243,8 @@ psa_status_t psa_aead_abort( psa_aead_operation_t *operation ) #if defined(BUILTIN_ALG_ANY_HKDF) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) + defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) || \ + defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) #define AT_LEAST_ONE_BUILTIN_KDF #endif /* At least one builtin KDF */ @@ -4350,6 +4351,14 @@ psa_status_t psa_key_derivation_abort( psa_key_derivation_operation_t *operation else #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF) || * defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) */ +#if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) + if( PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS( kdf_alg ) ) + { + mbedtls_platform_zeroize( operation->ctx.tls12_ecjpake_to_pms.data, + PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE ); + } + else +#endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) */ { status = PSA_ERROR_BAD_STATE; } @@ -4631,6 +4640,31 @@ static psa_status_t psa_key_derivation_tls12_prf_read( #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF || * MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS */ +#if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) +static psa_status_t psa_key_derivation_tls12_ecjpake_to_pms_read( + psa_tls12_ecjpake_to_pms_t *ecjpake, + uint8_t *output, + size_t output_length ) +{ + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + size_t output_size; + + if( output_length != 32 ) + return ( PSA_ERROR_INVALID_ARGUMENT ); + + status = psa_hash_compute( PSA_ALG_SHA_256, ecjpake->data, + PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE, output, output_length, + &output_size ); + if( status != PSA_SUCCESS ) + return ( status ); + + if( output_size != output_length ) + return ( PSA_ERROR_GENERIC_ERROR ); + + return ( PSA_SUCCESS ); +} +#endif + psa_status_t psa_key_derivation_output_bytes( psa_key_derivation_operation_t *operation, uint8_t *output, @@ -4685,6 +4719,15 @@ psa_status_t psa_key_derivation_output_bytes( else #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF || * MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS */ +#if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) + if( PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS( kdf_alg ) ) + { + status = psa_key_derivation_tls12_ecjpake_to_pms_read( + &operation->ctx.tls12_ecjpake_to_pms, output, output_length ); + } + else +#endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS */ + { (void) kdf_alg; return( PSA_ERROR_BAD_STATE ); @@ -5076,6 +5119,10 @@ static int is_kdf_alg_supported( psa_algorithm_t kdf_alg ) #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) if( PSA_ALG_IS_TLS12_PSK_TO_MS( kdf_alg ) ) return( 1 ); +#endif +#if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) + if( PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS( kdf_alg ) ) + return( 1 ); #endif return( 0 ); } @@ -5100,19 +5147,26 @@ static psa_status_t psa_key_derivation_setup_kdf( if( ! is_kdf_alg_supported( kdf_alg ) ) return( PSA_ERROR_NOT_SUPPORTED ); - /* All currently supported key derivation algorithms are based on a - * hash algorithm. */ + /* All currently supported key derivation algorithms (apart from + * ecjpake to pms are based on a hash algorithm. */ psa_algorithm_t hash_alg = PSA_ALG_HKDF_GET_HASH( kdf_alg ); size_t hash_size = PSA_HASH_LENGTH( hash_alg ); - if( hash_size == 0 ) - return( PSA_ERROR_NOT_SUPPORTED ); + if( !PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS( kdf_alg ) ) + { + if( hash_size == 0 ) + return( PSA_ERROR_NOT_SUPPORTED ); - /* Make sure that hash_alg is a supported hash algorithm. Otherwise - * we might fail later, which is somewhat unfriendly and potentially - * risk-prone. */ - psa_status_t status = psa_hash_try_support( hash_alg ); - if( status != PSA_SUCCESS ) - return( status ); + /* Make sure that hash_alg is a supported hash algorithm. Otherwise + * we might fail later, which is somewhat unfriendly and potentially + * risk-prone. */ + psa_status_t status = psa_hash_try_support( hash_alg ); + if( status != PSA_SUCCESS ) + return( status ); + } + else + { + hash_size = PSA_HASH_LENGTH( PSA_ALG_SHA_256 ); + } if( ( PSA_ALG_IS_TLS12_PRF( kdf_alg ) || PSA_ALG_IS_TLS12_PSK_TO_MS( kdf_alg ) ) && @@ -5513,6 +5567,25 @@ static psa_status_t psa_tls12_prf_psk_to_ms_input( } #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS */ +#if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) +static psa_status_t psa_tls12_ecjpake_to_pms_input( + psa_tls12_ecjpake_to_pms_t *ecjpake, + const uint8_t *data, + size_t data_length ) +{ + if( data_length != PSA_TLS12_ECJPAKE_TO_PMS_INPUT_SIZE ) + return( PSA_ERROR_INVALID_ARGUMENT ); + + /* Check if the passed point is in an uncompressed form */ + if( data[0] != 0x04 ) + return( PSA_ERROR_INVALID_ARGUMENT ); + + /* Only K.X has to be extracted - bytes 1 to 32 inclusive. */ + memcpy( ecjpake->data, data + 1, PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE ); + + return( PSA_SUCCESS ); +} +#endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS */ /** Check whether the given key type is acceptable for the given * input step of a key derivation. * @@ -5591,6 +5664,14 @@ static psa_status_t psa_key_derivation_input_internal( } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS */ +#if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) + if( PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS( kdf_alg ) ) + { + status = psa_tls12_ecjpake_to_pms_input( + &operation->ctx.tls12_ecjpake_to_pms, data, data_length ); + } + else +#endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS */ { /* This can't happen unless the operation object was not initialized */ (void) data; diff --git a/scripts/mbedtls_dev/crypto_knowledge.py b/scripts/mbedtls_dev/crypto_knowledge.py index 592fc0afe2..f52ca9ac8c 100644 --- a/scripts/mbedtls_dev/crypto_knowledge.py +++ b/scripts/mbedtls_dev/crypto_knowledge.py @@ -357,6 +357,7 @@ class Algorithm: 'HKDF': AlgorithmCategory.KEY_DERIVATION, 'TLS12_PRF': AlgorithmCategory.KEY_DERIVATION, 'TLS12_PSK_TO_MS': AlgorithmCategory.KEY_DERIVATION, + 'TLS12_ECJPAKE_TO_PMS': AlgorithmCategory.KEY_DERIVATION, 'PBKDF': AlgorithmCategory.KEY_DERIVATION, 'ECDH': AlgorithmCategory.KEY_AGREEMENT, 'FFDH': AlgorithmCategory.KEY_AGREEMENT, From d8705bc7b77288e4c18e9a011d8d0d5097d02657 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 29 Jul 2022 10:02:05 -0400 Subject: [PATCH 0246/1028] Add tests for the newly created ad-hoc EC J-PAKE KDF Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_psa_crypto.data | 33 +++++++++++++++++ tests/suites/test_suite_psa_crypto.function | 39 +++++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index 1182c00693..e552fc1f5a 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -4824,6 +4824,10 @@ PSA key derivation setup: TLS 1.2 PRF SHA-256, good case depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF derive_setup:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):PSA_SUCCESS +PSA key derivation setup: TLS 1.2 ECJPAKE to PMS +depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS +derive_setup:PSA_ALG_TLS12_ECJPAKE_TO_PMS:PSA_SUCCESS + PSA key derivation setup: not a key derivation algorithm (HMAC) depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256 derive_setup:PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT @@ -5793,6 +5797,35 @@ PSA key derivation: over capacity 42: output 43+1 depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 derive_output:PSA_ALG_HKDF(PSA_ALG_SHA_256):PSA_KEY_DERIVATION_INPUT_SALT:"000102030405060708090a0b0c":PSA_SUCCESS:PSA_KEY_DERIVATION_INPUT_SECRET:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":PSA_SUCCESS:PSA_KEY_DERIVATION_INPUT_INFO:"f0f1f2f3f4f5f6f7f8f9":PSA_SUCCESS:0:"":PSA_SUCCESS:"":42:"3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865ff":"ff":0:1:0 +PSA key derivation: ECJPAKE to PMS, no input +depends_on:PSA_WANT_ALG_SHA_256 +derive_ecjpake_to_pms:"":PSA_ERROR_INVALID_ARGUMENT:"":PSA_ERROR_INVALID_ARGUMENT + +PSA key derivation: ECJPAKE to PMS, input too short +depends_on:PSA_WANT_ALG_SHA_256 +derive_ecjpake_to_pms:"deadbeef":PSA_ERROR_INVALID_ARGUMENT:"":PSA_ERROR_INVALID_ARGUMENT + +PSA key derivation: ECJPAKE to PMS, input too long +depends_on:PSA_WANT_ALG_SHA_256 +derive_ecjpake_to_pms:"0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de":PSA_ERROR_INVALID_ARGUMENT:"":PSA_ERROR_INVALID_ARGUMENT + +PSA key derivation: ECJPAKE to PMS, bad input format +depends_on:PSA_WANT_ALG_SHA_256 +derive_ecjpake_to_pms:"0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":PSA_ERROR_INVALID_ARGUMENT:"":PSA_ERROR_INVALID_ARGUMENT + +#NIST CAVS 11.0 SHA-256 ShortMSG vector for L=256 +PSA key derivation: ECJPAKE to PMS, good case +depends_on:PSA_WANT_ALG_SHA_256 +derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_SUCCESS:"4f44c1c7fbebb6f9601829f3897bfd650c56fa07844be76489076356ac1886a4":PSA_SUCCESS + +PSA key derivation: ECJPAKE to PMS, output too short +depends_on:PSA_WANT_ALG_SHA_256 +derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_SUCCESS:"4f":PSA_ERROR_INVALID_ARGUMENT + +PSA key derivation: ECJPAKE to PMS, output too long +depends_on:PSA_WANT_ALG_SHA_256 +derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_SUCCESS:"4f44c1c7fbebb6f9601829f3897bfd650c56fa07844be76489076356ac1886a400":PSA_ERROR_INVALID_ARGUMENT + PSA key derivation: HKDF SHA-256, read maximum capacity minus 1 depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 derive_full:PSA_ALG_HKDF(PSA_ALG_SHA_256):"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"000102030405060708090a0b0c":"f0f1f2f3f4f5f6f7f8f9":255 * PSA_HASH_LENGTH(PSA_ALG_SHA_256) - 1 diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 7d368cf162..b04adcca4f 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -7233,6 +7233,45 @@ exit: } /* END_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS:MBEDTLS_SHA256_C */ +void derive_ecjpake_to_pms( data_t *input, int expected_input_status, + data_t *expected_output, int expected_output_status ) +{ + psa_algorithm_t alg = PSA_ALG_TLS12_ECJPAKE_TO_PMS; + psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; + + uint8_t *output_buffer = NULL; + psa_status_t status; + + ASSERT_ALLOC( output_buffer, expected_output->len ); + PSA_ASSERT( psa_crypto_init() ); + + PSA_ASSERT( psa_key_derivation_setup( &operation, alg ) ); + PSA_ASSERT( psa_key_derivation_set_capacity( &operation, + expected_output->len ) ); + + TEST_EQUAL( psa_key_derivation_input_bytes( &operation, + PSA_KEY_DERIVATION_INPUT_SECRET, input->x, input->len ), + (psa_status_t) expected_input_status ); + + if( ( (psa_status_t) expected_input_status ) != PSA_SUCCESS ) + goto exit; + + status = psa_key_derivation_output_bytes( &operation, output_buffer, + expected_output->len ); + + TEST_EQUAL( status, (psa_status_t) expected_output_status ); + if( expected_output->len != 0 && expected_output_status == PSA_SUCCESS ) + ASSERT_COMPARE( output_buffer, expected_output->len, expected_output->x, + expected_output->len ); + +exit: + mbedtls_free( output_buffer ); + psa_key_derivation_abort( &operation ); + PSA_DONE(); +} +/* END_CASE */ + /* BEGIN_CASE */ void derive_key_exercise( int alg_arg, data_t *key_data, From 18f8e8d62c33005f3d42aa3fa492560a4978a94a Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 14 Sep 2022 08:44:34 -0400 Subject: [PATCH 0247/1028] Document the input size restriction for EC J-PAKE to PMS Signed-off-by: Andrzej Kurek --- include/psa/crypto_values.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/psa/crypto_values.h b/include/psa/crypto_values.h index 03438196b6..573ff9a16c 100644 --- a/include/psa/crypto_values.h +++ b/include/psa/crypto_values.h @@ -2023,7 +2023,8 @@ /* Macro to build a KDF that takes the shared secret K (an EC point in case * of EC J-PAKE) and calculates SHA256(K.X) that the rest of TLS 1.2 will - * use to derive the session secret. Uses PSA_ALG_SHA_256. + * use to derive the session secret. Uses PSA_ALG_SHA_256. Only P-256 is + * supported, so the input has to be exactly 65 bytes. */ #define PSA_ALG_TLS12_ECJPAKE_TO_PMS ((psa_algorithm_t)0x08000600) #define PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS(alg) \ From 67ffab560078ffcc4244b1e41e0c633a2ddc963d Mon Sep 17 00:00:00 2001 From: Przemyslaw Stekiel Date: Wed, 14 Sep 2022 14:07:01 +0200 Subject: [PATCH 0248/1028] ssl.h: use PSA hash buffer size when PSA is used Signed-off-by: Przemyslaw Stekiel --- include/mbedtls/ssl.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 0fcac689fa..1e0220a6ac 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -629,7 +629,12 @@ union mbedtls_ssl_premaster_secret #define MBEDTLS_PREMASTER_SIZE sizeof( union mbedtls_ssl_premaster_secret ) +#if defined(MBEDTLS_USE_PSA_CRYPTO) +#define MBEDTLS_TLS1_3_MD_MAX_SIZE PSA_HASH_MAX_SIZE +#else #define MBEDTLS_TLS1_3_MD_MAX_SIZE MBEDTLS_MD_MAX_SIZE +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + /* Length in number of bytes of the TLS sequence number */ #define MBEDTLS_SSL_SEQUENCE_NUMBER_LEN 8 From f7dad3cfbe49696dc2cd20642b1a05e372f3f699 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 14 Sep 2022 22:31:39 +0800 Subject: [PATCH 0249/1028] fix various issues - Naming - format - Reduce negative tolerance window Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 10 +++------- library/ssl_tls13_server.c | 23 ++++++++++++++--------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 2c7d94638a..33e8cc6aa1 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -665,9 +665,7 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, return ( 0 ); } -/* Check if we have any PSK to offer, returns 0 if PSK is available. - * Assign the psk and ticket if pointers are present. - */ +/* Check if we have any PSK to offer, returns 0 if a PSK is available. */ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_get_psk_to_offer( const mbedtls_ssl_context *ssl, @@ -810,12 +808,10 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( { #if defined(MBEDTLS_HAVE_TIME) mbedtls_time_t now = mbedtls_time( NULL ); - uint64_t age_in_ms = - ( now - ssl->session_negotiate->ticket_received ) * 1000; obfuscated_ticket_age = - (uint32_t)( ( age_in_ms + ssl->session_negotiate->ticket_age_add ) - & ( ( 1LL << 32 ) - 1 ) ); + ( (uint32_t)( now - ssl->session_negotiate->ticket_received ) * 1000 ) + + ssl->session_negotiate->ticket_age_add; #endif } else diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 55cb670674..b73b39c2a9 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -137,7 +137,7 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( #if defined(MBEDTLS_HAVE_TIME) mbedtls_time_t now; uint64_t age_in_s; - int64_t diff_in_ms; + int64_t age_diff_in_ms; #endif ((void) obfuscated_ticket_age); @@ -183,7 +183,6 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( #if defined(MBEDTLS_HAVE_TIME) now = mbedtls_time( NULL ); - ret = MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED; if( now < session->start ) { MBEDTLS_SSL_DEBUG_MSG( @@ -220,15 +219,20 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( * the ticket age for the selected PSK identity (computed by subtracting * ticket_age_add from PskIdentity.obfuscated_ticket_age modulo 2^32) is * within a small tolerance of the time since the ticket was issued. + * + * NOTE: When `now == session->start`, `age_diff_in_ms` will get a negative + * result. That's reasonable, the age units are different between + * server and client sides. Add a -1000 tolerance window to resolve + * that. */ - diff_in_ms = age_in_s * 1000; - diff_in_ms -= ( obfuscated_ticket_age - session->ticket_age_add ); - diff_in_ms += MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE / 2; - if( diff_in_ms < 0 || diff_in_ms > MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE ) + age_diff_in_ms = age_in_s * 1000; + age_diff_in_ms -= ( obfuscated_ticket_age - session->ticket_age_add ); + if( age_diff_in_ms <= -1000 || + age_diff_in_ms > MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "Ticket expired: Ticket age outside tolerance window " - "( diff=%d )", (int)diff_in_ms ) ); + "( diff=%d )", (int)age_diff_in_ms ) ); goto exit; } @@ -264,7 +268,7 @@ static int ssl_tls13_offered_psks_check_identity_match( #if defined(MBEDTLS_SSL_SESSION_TICKETS) if( ssl_tls13_offered_psks_check_identity_match_ticket( ssl, identity, identity_len, obfuscated_ticket_age, - (mbedtls_ssl_session *)session ) == SSL_TLS1_3_OFFERED_PSK_MATCH ) + session ) == SSL_TLS1_3_OFFERED_PSK_MATCH ) { mbedtls_ssl_session *i_session=(mbedtls_ssl_session *)session; ssl->handshake->resume = 1; @@ -626,7 +630,8 @@ static int ssl_tls13_parse_pre_shared_key_ext( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_SESSION_TICKETS) if( psk_type == MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION ) { - ret = ssl_tls13_session_copy_ticket(ssl->session_negotiate, &session ); + ret = ssl_tls13_session_copy_ticket( ssl->session_negotiate, + &session ); mbedtls_ssl_session_free( &session ); if( ret != 0 ) return( ret ); From 34d6d3e4e527546f1151b3cd40ee06e95d1832e0 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 14 Sep 2022 12:59:32 +0100 Subject: [PATCH 0250/1028] Update comments/docstrings in TestGenerator Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index 682f7b0365..f1b268229a 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -130,10 +130,12 @@ class BaseTarget(metaclass=ABCMeta): class TestGenerator: - """Generate test data.""" + """Generate test cases and write to data files.""" def __init__(self, options) -> None: self.test_suite_directory = getattr(options, 'directory') - # Add file Targets which have been declared in other modules + # Update `targets` with an entry for each child class of BaseTarget. + # Each entry represents a file generated by the BaseTarget framework, + # and enables generating the .data files using the CLI. self.targets.update({ subclass.target_basename: subclass.generate_tests for subclass in BaseTarget.__subclasses__() From 858cffde1e5fe2b0b0383580ddc364011eed51ea Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 14 Sep 2022 13:02:40 +0100 Subject: [PATCH 0251/1028] Add toggle for test case count in descriptions Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index f1b268229a..81af7ba272 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -43,6 +43,7 @@ class BaseTarget(metaclass=ABCMeta): case_description: Short description of the test case. This may be automatically generated using the class, or manually set. dependencies: A list of dependencies required for the test case. + show_test_count: Toggle for inclusion of `count` in the test description. target_basename: Basename of file to write generated tests to. This should be specified in a child class of BaseTarget. test_function: Test function which the class generates cases for. @@ -53,6 +54,7 @@ class BaseTarget(metaclass=ABCMeta): count = 0 case_description = "" dependencies = [] # type: List[str] + show_test_count = True target_basename = "" test_function = "" test_name = "" @@ -78,16 +80,19 @@ class BaseTarget(metaclass=ABCMeta): """Create a test case description. Creates a description of the test case, including a name for the test - function, a case number, and a description the specific test case. - This should inform a reader what is being tested, and provide context - for the test case. + function, an optional case count, and a description of the specific + test case. This should inform a reader what is being tested, and + provide context for the test case. Returns: Description for the test case. """ - return "{} #{} {}".format( - self.test_name, self.count, self.case_description - ).strip() + if self.show_test_count: + return "{} #{} {}".format( + self.test_name, self.count, self.case_description + ).strip() + else: + return "{} {}".format(self.test_name, self.case_description).strip() def create_test_case(self) -> test_case.TestCase: From 00d02423a58eba33ddaa8d56c1c3ce06e607ba53 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 14 Sep 2022 13:39:20 +0100 Subject: [PATCH 0252/1028] Remove argparser default for directory This reverts commit f156c43702bec949c80a56a993a0d5009e39ab17. Adds a comment to explain reasoning for current implementation. Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index 81af7ba272..87cb43ecd7 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -137,7 +137,7 @@ class BaseTarget(metaclass=ABCMeta): class TestGenerator: """Generate test cases and write to data files.""" def __init__(self, options) -> None: - self.test_suite_directory = getattr(options, 'directory') + self.test_suite_directory = getattr(options, 'directory', 'tests/suites') # Update `targets` with an entry for each child class of BaseTarget. # Each entry represents a file generated by the BaseTarget framework, # and enables generating the .data files using the CLI. @@ -179,8 +179,12 @@ def main(args, generator_class: Type[TestGenerator] = TestGenerator): help='List available targets and exit') parser.add_argument('--list-for-cmake', action='store_true', help='Print \';\'-separated list of available targets and exit') - parser.add_argument('--directory', default="tests/suites", metavar='DIR', + parser.add_argument('--directory', metavar='DIR', help='Output directory (default: tests/suites)') + # The `--directory` option is interpreted relative to the directory from + # which the script is invoked, but the default is relative to the root of + # the mbedtls tree. The default should not be set above, but instead after + # `build_tree.chdir_to_root()` is called. parser.add_argument('targets', nargs='*', metavar='TARGET', help='Target file to generate (default: all; "-": none)') options = parser.parse_args(args) From b6e809133d5f6b07a3f8b77bea8aef21988308a1 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 14 Sep 2022 15:00:22 +0100 Subject: [PATCH 0253/1028] Use typing.cast instead of unqualified cast Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 3f60a0915f..3453b6bc32 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -56,9 +56,10 @@ of BaseTarget in test_generation.py. import itertools import sys +import typing from abc import ABCMeta, abstractmethod -from typing import Iterator, List, Tuple, TypeVar, cast +from typing import Iterator, List, Tuple, TypeVar import scripts_path # pylint: disable=unused-import from mbedtls_dev import test_case @@ -99,7 +100,7 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): "0000000000000000123", "-0000000000000000123", "1230000000000000000", "-1230000000000000000" ] # type: List[str] - input_cases = cast(List[Tuple[str, str]], []) # type: List[Tuple[str, str]] + input_cases = [] # type: List[Tuple[str, str]] def __init__(self, val_a: str, val_b: str) -> None: self.arg_a = val_a @@ -164,7 +165,7 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): Combinations are first generated from all input values, and then specific cases provided. """ - yield from cast( + yield from typing.cast( Iterator[Tuple[str, str]], itertools.combinations_with_replacement(cls.input_values, 2) ) @@ -214,7 +215,7 @@ class BignumAdd(BignumOperation): symbol = "+" test_function = "mbedtls_mpi_add_mpi" test_name = "MPI add" - input_cases = cast( + input_cases = typing.cast( List[Tuple[str, str]], list(itertools.combinations_with_replacement( [ From ac446c8a04b9dacdd546b791e87e4de5eed2427a Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 14 Sep 2022 15:12:46 +0100 Subject: [PATCH 0254/1028] Add combination_pairs helper function Wrapper function for itertools.combinations_with_replacement, with explicit cast due to imprecise typing with older versions of mypy. Signed-off-by: Werner Lewis --- tests/scripts/generate_bignum_tests.py | 29 +++++++++++++++----------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 3453b6bc32..d156f56f8f 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -73,6 +73,17 @@ def hex_to_int(val: str) -> int: def quote_str(val) -> str: return "\"{}\"".format(val) +def combination_pairs(values: List[T]) -> List[Tuple[T, T]]: + """Return all pair combinations from input values. + + The return value is cast, as older versions of mypy are unable to derive + the specific type returned by itertools.combinations_with_replacement. + """ + return typing.cast( + List[Tuple[T, T]], + list(itertools.combinations_with_replacement(values, 2)) + ) + class BignumTarget(test_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method @@ -165,10 +176,7 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): Combinations are first generated from all input values, and then specific cases provided. """ - yield from typing.cast( - Iterator[Tuple[str, str]], - itertools.combinations_with_replacement(cls.input_values, 2) - ) + yield from combination_pairs(cls.input_values) yield from cls.input_cases @classmethod @@ -215,14 +223,11 @@ class BignumAdd(BignumOperation): symbol = "+" test_function = "mbedtls_mpi_add_mpi" test_name = "MPI add" - input_cases = typing.cast( - List[Tuple[str, str]], - list(itertools.combinations_with_replacement( - [ - "1c67967269c6", "9cde3", - "-1c67967269c6", "-9cde3", - ], 2 - )) + input_cases = combination_pairs( + [ + "1c67967269c6", "9cde3", + "-1c67967269c6", "-9cde3", + ] ) def result(self) -> str: From 52ae326ebb557612592cd8a0fcd08258f16b059f Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 14 Sep 2022 16:26:54 +0100 Subject: [PATCH 0255/1028] Update references to file targets in docstrings Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 5 +++-- tests/scripts/generate_bignum_tests.py | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index 87cb43ecd7..c9a73c4adb 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -35,8 +35,9 @@ T = TypeVar('T') #pylint: disable=invalid-name class BaseTarget(metaclass=ABCMeta): """Base target for test case generation. - Derive directly from this class when adding new file Targets, setting - `target_basename`. + Child classes of this class represent an output file, and can be referred + to as file targets. These indicate where test cases will be written to for + all subclasses of the file target, which is set by `target_basename`. Attributes: count: Counter for test cases from this class. diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index d156f56f8f..b4915d8460 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -6,11 +6,11 @@ generate only the specified files. Class structure: -Child classes of test_generation.BaseTarget (file Targets) represent a target +Child classes of test_generation.BaseTarget (file targets) represent an output file. These indicate where test cases will be written to, for all subclasses of -this Target. Multiple Target classes should not reuse a `target_basename`. +this target. Multiple file targets should not reuse a `target_basename`. -Each subclass derived from a file Target can either be: +Each subclass derived from a file target can either be: - A concrete class, representing a test function, which generates test cases. - An abstract class containing shared methods and attributes, not associated with a test function. An example is BignumOperation, which provides @@ -24,7 +24,7 @@ from abstract and concrete classes). Adding test case generation for a function: A subclass representing the test function should be added, deriving from a -file Target such as BignumTarget. This test class must set/implement the +file target such as BignumTarget. This test class must set/implement the following: - test_function: the function name from the associated .function file. - test_name: a descriptive name or brief summary to refer to the test From d60907b85d469b66d1b3c0fafe9ed92cd1d097b0 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 14 Sep 2022 10:02:30 -0400 Subject: [PATCH 0256/1028] Define ECJPAKE_TO_PMS in config_psa only if SHA_256 is available Signed-off-by: Andrzej Kurek --- include/mbedtls/config_psa.h | 7 +++++-- library/check_crypto_config.h | 5 +++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/config_psa.h b/include/mbedtls/config_psa.h index 88052d228b..61950cd9c9 100644 --- a/include/mbedtls/config_psa.h +++ b/include/mbedtls/config_psa.h @@ -635,8 +635,6 @@ extern "C" { #define PSA_WANT_ALG_TLS12_PRF 1 #define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS 1 #define PSA_WANT_ALG_TLS12_PSK_TO_MS 1 -#define MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS 1 -#define PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS 1 #endif /* MBEDTLS_MD_C */ #if defined(MBEDTLS_MD5_C) @@ -714,6 +712,11 @@ extern "C" { #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES 1 #endif +#if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256) +#define MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS 1 +#define PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS 1 +#endif + #if defined(MBEDTLS_CHACHA20_C) #define PSA_WANT_KEY_TYPE_CHACHA20 1 #define PSA_WANT_ALG_STREAM_CIPHER 1 diff --git a/library/check_crypto_config.h b/library/check_crypto_config.h index c74437e7de..e60e666162 100644 --- a/library/check_crypto_config.h +++ b/library/check_crypto_config.h @@ -93,4 +93,9 @@ #error "MBEDTLS_SSL_PROTO_TLS1_2 defined, but not all prerequisites" #endif +#if defined(PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS) && \ + !defined(PSA_WANT_ALG_SHA_256) +#error "PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS defined, but not all prerequisites" +#endif + #endif /* MBEDTLS_CHECK_CRYPTO_CONFIG_H */ From 4ba0e45f8ebb81d3e408ddf802346ddd50c83223 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 14 Sep 2022 12:47:26 -0400 Subject: [PATCH 0257/1028] all.sh: don't build with ECJPAKE_TO_PMS if SHA256 is not available Signed-off-by: Andrzej Kurek --- tests/scripts/all.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 7d9fe1f4a3..ea7ba41101 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2067,6 +2067,7 @@ component_build_psa_accel_alg_md5() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512 + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_MD5 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2086,6 +2087,7 @@ component_build_psa_accel_alg_ripemd160() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512 + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_RIPEMD160 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2105,6 +2107,7 @@ component_build_psa_accel_alg_sha1() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512 + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_1 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2123,6 +2126,7 @@ component_build_psa_accel_alg_sha224() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_1 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512 + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_224 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2160,6 +2164,7 @@ component_build_psa_accel_alg_sha384() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_1 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256 + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_384 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2179,6 +2184,7 @@ component_build_psa_accel_alg_sha512() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_512 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } From 07c830c1647278ec5f446647b9122097bd5a212f Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Thu, 15 Sep 2022 09:02:07 +0100 Subject: [PATCH 0258/1028] Fix setting for default test suite directory Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index c9a73c4adb..a82f79e671 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -138,7 +138,8 @@ class BaseTarget(metaclass=ABCMeta): class TestGenerator: """Generate test cases and write to data files.""" def __init__(self, options) -> None: - self.test_suite_directory = getattr(options, 'directory', 'tests/suites') + self.test_suite_directory = self.get_option(options, 'directory', + 'tests/suites') # Update `targets` with an entry for each child class of BaseTarget. # Each entry represents a file generated by the BaseTarget framework, # and enables generating the .data files using the CLI. @@ -147,6 +148,11 @@ class TestGenerator: for subclass in BaseTarget.__subclasses__() }) + @staticmethod + def get_option(options, name: str, default: T) -> T: + value = getattr(options, name, None) + return default if value is None else value + def filename_for(self, basename: str) -> str: """The location of the data file with the specified base name.""" return posixpath.join(self.test_suite_directory, basename + '.data') From 0a55cc647ccbcba34b9ab982978a0006bdbbb118 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 15 Sep 2022 16:15:06 +0800 Subject: [PATCH 0259/1028] Remove unnecessary var and improve comment Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index b73b39c2a9..71716ad447 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -220,10 +220,10 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( * ticket_age_add from PskIdentity.obfuscated_ticket_age modulo 2^32) is * within a small tolerance of the time since the ticket was issued. * - * NOTE: When `now == session->start`, `age_diff_in_ms` will get a negative - * result. That's reasonable, the age units are different between - * server and client sides. Add a -1000 tolerance window to resolve - * that. + * NOTE: When `now == session->start`, `age_diff_in_ms` may be negative + * as the age units are different on the server (s) and in the + * client (ms) side. Add a -1000 ms tolerance window to take this + * into account. */ age_diff_in_ms = age_in_s * 1000; age_diff_in_ms -= ( obfuscated_ticket_age - session->ticket_age_add ); @@ -270,16 +270,15 @@ static int ssl_tls13_offered_psks_check_identity_match( ssl, identity, identity_len, obfuscated_ticket_age, session ) == SSL_TLS1_3_OFFERED_PSK_MATCH ) { - mbedtls_ssl_session *i_session=(mbedtls_ssl_session *)session; ssl->handshake->resume = 1; *psk_type = MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION; mbedtls_ssl_set_hs_psk( ssl, - i_session->resumption_key, - i_session->resumption_key_len ); + session->resumption_key, + session->resumption_key_len ); MBEDTLS_SSL_DEBUG_BUF( 4, "Ticket-resumed PSK:", - i_session->resumption_key, - i_session->resumption_key_len ); + session->resumption_key, + session->resumption_key_len ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "ticket: obfuscated_ticket_age: %u", (unsigned)obfuscated_ticket_age ) ); return( SSL_TLS1_3_OFFERED_PSK_MATCH ); From 1dc37258de561bbf06ed07ed2b077f4e743cdf74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 15 Sep 2022 11:10:26 +0200 Subject: [PATCH 0260/1028] Style: wrap a long line MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- library/pem.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/library/pem.c b/library/pem.c index f2ee5ca35c..8f0aba071c 100644 --- a/library/pem.c +++ b/library/pem.c @@ -47,10 +47,12 @@ #include "legacy_or_psa.h" -#if defined(MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && defined(MBEDTLS_CIPHER_MODE_CBC) && \ +#if defined(MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ + defined(MBEDTLS_CIPHER_MODE_CBC) && \ ( defined(MBEDTLS_DES_C) || defined(MBEDTLS_AES_C) ) #define PEM_RFC1421 -#endif /* MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA && MBEDTLS_CIPHER_MODE_CBC && +#endif /* MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA && + MBEDTLS_CIPHER_MODE_CBC && ( MBEDTLS_AES_C || MBEDTLS_DES_C ) */ #if defined(MBEDTLS_PEM_PARSE_C) From c42c7e660e956d13adc29e33038e22c9f255ebf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 15 Sep 2022 11:11:00 +0200 Subject: [PATCH 0261/1028] Update documentation in legacy_or_psa.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Some things that were indicated as in the near future are now done. - Clarify when these macros are needed and when they're not. - Prepare to make the header public. Signed-off-by: Manuel Pégourié-Gonnard --- docs/architecture/psa-migration/strategy.md | 12 +++++++- library/legacy_or_psa.h | 33 +++++++++++++-------- 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/docs/architecture/psa-migration/strategy.md b/docs/architecture/psa-migration/strategy.md index 8d2d59fcc1..a13c100466 100644 --- a/docs/architecture/psa-migration/strategy.md +++ b/docs/architecture/psa-migration/strategy.md @@ -345,7 +345,7 @@ available. Data related to a certain hash (OID, sizes, translations) should only be included in the build if it is possible to use that hash in some way. In order to cater to these new needs, new families of macros are introduced in -`library/legacy_or_psa.h`, see its documentation for details. +`legacy_or_psa.h`, see its documentation for details. It should be noted that there are currently: - too many different ways of computing a hash (low-level, MD, PSA); @@ -358,6 +358,16 @@ This is a temporary situation until we move to a place where everything is based on PSA Crypto. In the meantime, long and explicit names where chosen for the new macros in the hope of avoiding confusion. +Note: the new macros supplement but do not replace the existing macros: +- code that always uses PSA Crypto (for example, code specific to TLS 1.3) + should use `PSA_WANT_xxx`; +- code that always uses the legacy API (for exmaple, crypto modules that have + not undergone step 1 yet) should use `MBEDTLS_xxx_C`; +- code that may use one of the two APIs, either based on + `MBEDTLS_USE_PSA_CRYPTO` (X.509, TLS 1.2, shared between TLS 1.2 and 1.3), +or based on availability (crypto modules after step 1), should use one of the +new macros from `legacy_or_psa.h`. + Executing step 3 will mostly consist of using the right dependency macros in the right places (once the previous steps are done). diff --git a/library/legacy_or_psa.h b/library/legacy_or_psa.h index be0f33f82e..47f4e0f271 100644 --- a/library/legacy_or_psa.h +++ b/library/legacy_or_psa.h @@ -1,6 +1,6 @@ /** - * Internal macros to express dependencies for code and tests - * that may use either the legacy API or PSA in various builds. + * Macros to express dependencies for code and tests that may use either the + * legacy API or PSA in various builds; mostly for internal use. * * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 @@ -19,6 +19,18 @@ */ /* + * Note: applications who are targetting a specific configurations do not need + * to use these macros; instead they should directly use the functions they + * know are available in their configuration. + * + * Note: code that is purely based on PSA Crypto (psa_xxx() functions) + * does not need to use these macros; instead it should use the relevant + * PSA_WANT_xxx macros. + * + * Note: code that is purely based on the legacy crypto APIs (mbedtls_xxx()) + * does not need to use these macros; instead it should use the relevant + * MBEDTLS_xxx_ macros. + * * These macros are for code that wants to use and will do so * using or PSA depending on , where: * - will generally be an algorithm (SHA-256, ECDH) but may @@ -36,15 +48,10 @@ * - TLS 1.2 will compute hashes using either mbedtls_md_xxx() (and * mbedtls_sha256_xxx()) or psa_aead_xxx() depending on whether * MBEDTLS_USE_PSA_CRYPTO is defined; - * - RSA PKCS#1 v2.1 will, in the near future*, compute hashes (for padding) - * using either `mbedtls_md()` if it's available, or `psa_hash_compute()` - * otherwise; - * - PEM decoding of PEM-encrypted keys will, in the near future*, compute MD5 - * hashes using either `mbedtls_md5_xxx()` if it's available, or - * `psa_hash_xxx()` otherwise. - * *See docs/architecture/psa-migration/strategy.md, section "Supporting - * builds with drivers without the software implementation", strategy for step - * 1 (libmbedcrypto except the RNG subsystem). + * - RSA PKCS#1 v2.1 will compute hashes (for padding) using either + * `mbedtls_md()` if it's available, or `psa_hash_compute()` otherwise; + * - PEM decoding of PEM-encrypted keys will compute MD5 hashes using either + * `mbedtls_md5_xxx()` if it's available, or `psa_hash_xxx()` otherwise. * * Note: the macros are essential to express test dependencies. Inside code, * we could instead just use the equivalent pre-processor condition, but @@ -70,9 +77,9 @@ * MBEDTLS_HAS_ALG_MD5_VIA_LOWLEVEL_OR_PSA * * Note: every time it's possible to use, say SHA-256, via the MD API, then - * it's also possible to used it via the low-level API. So, code that wants to + * it's also possible to use it via the low-level API. So, code that wants to * use SHA-256 via both APIs only needs to depend on the MD macro. Also, it - * just so happens that all the choosing which API to use based on + * just so happens that all the code choosing which API to use based on * MBEDTLS_USE_PSA_CRYPTO (X.509, TLS 1.2/shared), always uses the abstraction * layer (sometimes in addition to the low-level API), so we don't need the * MBEDTLS_HAS_feature_VIA_LOWLEVEL_OR_PSA_BASED_ON_USE_PSA macros. From f1846252236ec95f773c44aa45c08bca9b212b4b Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 15 Sep 2022 11:52:44 +0100 Subject: [PATCH 0262/1028] Clarify legal requirements for contributions Signed-off-by: Dave Rodgman --- CONTRIBUTING.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cea12f15d1..319f02d204 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,8 +19,6 @@ Making a Contribution 1. Write a test which shows that the bug was fixed or that the feature works as expected. 1. Send a pull request (PR) and work with us until it gets merged and published. Contributions may need some modifications, so a few rounds of review and fixing may be necessary. We will include your name in the ChangeLog :) 1. For quick merging, the contribution should be short, and concentrated on a single feature or topic. The larger the contribution is, the longer it would take to review it and merge it. -1. All new files should include the [Apache-2.0](https://spdx.org/licenses/Apache-2.0.html) standard license header where possible. -1. Ensure that each commit has at least one `Signed-off-by:` line from the committer. If anyone else contributes to the commit, they should also add their own `Signed-off-by:` line. By adding this line, contributor(s) certify that the contribution is made under the terms of the [Developer Certificate of Origin](dco.txt). The contribution licensing is described in the [License section of the README](README.md#License). Backwards Compatibility ----------------------- @@ -79,3 +77,12 @@ Mbed TLS is well documented, but if you think documentation is needed, speak out 1. If needed, a Readme file is advised. 1. If a [Knowledge Base (KB)](https://tls.mbed.org/kb) article should be added, write this as a comment in the PR description. 1. A [ChangeLog](https://github.com/Mbed-TLS/mbedtls/blob/development/ChangeLog.d/00README.md) entry should be added for this contribution. + +License and Copyright +--------------------- + +All new files should include the [Apache-2.0](https://spdx.org/licenses/Apache-2.0.html) standard license header where possible. For licensing details, please see the [License section of the README](README.md#License). + +The copyright on contributions is retained by the original authors of the code. Where possible for new files, this should be noted in a comment at the top of the file in the form: "Copyright The Mbed TLS Contributors". + +When contributing code to us, the committer and all authors are required to make the submission under the terms of the [Developer Certificate of Origin](dco.txt), confirming that the code submitted can (legally) become part of the project, and be subject to the same Apache 2.0 license. This is done by including the standard Git `Signed-off-by:` line in every commit message. If more than one person contributed to the commit, they should also add their own `Signed-off-by:` line. From b40f2e81ecc14371ad1c10218e38e83a67666c95 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 4 Jul 2022 16:16:15 +0200 Subject: [PATCH 0263/1028] TLS 1.3: Take into account key policy while picking a signature algorithm Signed-off-by: Przemek Stekiel --- library/ssl_tls13_generic.c | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 6f60fab0a3..1dd7fdc10d 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -934,13 +934,46 @@ static int ssl_tls13_select_sig_alg_for_certificate_verify( uint16_t *algorithm ) { uint16_t *sig_alg = ssl->handshake->received_sig_algs; + psa_algorithm_t psa_alg = 0; *algorithm = MBEDTLS_TLS1_3_SIG_NONE; for( ; *sig_alg != MBEDTLS_TLS1_3_SIG_NONE ; sig_alg++ ) { + switch( *sig_alg ) + { + case MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256: + psa_alg = PSA_ALG_ECDSA( PSA_ALG_SHA_256 ); + break; + case MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384: + psa_alg = PSA_ALG_ECDSA( PSA_ALG_SHA_384 ); + break; + case MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512: + psa_alg = PSA_ALG_ECDSA( PSA_ALG_SHA_512 ); + break; + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: + psa_alg = PSA_ALG_RSA_PSS( PSA_ALG_SHA_256 ); + break; + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384: + psa_alg = PSA_ALG_RSA_PSS( PSA_ALG_SHA_384 ); + break; + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512: + psa_alg = PSA_ALG_RSA_PSS( PSA_ALG_SHA_512 ); + break; + case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256: + case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384: + case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512: + psa_alg = PSA_ALG_RSA_PKCS1V15_CRYPT; + break; + default: + break; + } + if( mbedtls_ssl_sig_alg_is_offered( ssl, *sig_alg ) && mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported( *sig_alg ) && - mbedtls_ssl_tls13_check_sig_alg_cert_key_match( *sig_alg, own_key ) ) + mbedtls_ssl_tls13_check_sig_alg_cert_key_match( *sig_alg, own_key ) && + psa_alg != 0 && + mbedtls_pk_can_do_ext( own_key, psa_alg, + PSA_KEY_USAGE_SIGN_HASH ) == 1 ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "select_sig_alg_for_certificate_verify:" From 3c326f969768ad13e8d5aa35f84f09db3a1b5e3b Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 5 Jul 2022 22:14:34 +0200 Subject: [PATCH 0264/1028] Add function to convert sig_alg to psa alg and use it Signed-off-by: Przemek Stekiel --- library/ssl_tls13_generic.c | 63 ++++++++++++++++++++----------------- 1 file changed, 35 insertions(+), 28 deletions(-) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 1dd7fdc10d..e351a24209 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -927,6 +927,40 @@ int mbedtls_ssl_tls13_check_sig_alg_cert_key_match( uint16_t sig_alg, return( 0 ); } +static psa_algorithm_t ssl_tls13_select_sig_alg_to_psa_alg( uint16_t sig_alg ) +{ + psa_algorithm_t psa_alg = 0; + switch( sig_alg ) + { + case MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256: + psa_alg = PSA_ALG_ECDSA( PSA_ALG_SHA_256 ); + break; + case MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384: + psa_alg = PSA_ALG_ECDSA( PSA_ALG_SHA_384 ); + break; + case MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512: + psa_alg = PSA_ALG_ECDSA( PSA_ALG_SHA_512 ); + break; + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: + psa_alg = PSA_ALG_RSA_PSS( PSA_ALG_SHA_256 ); + break; + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384: + psa_alg = PSA_ALG_RSA_PSS( PSA_ALG_SHA_384 ); + break; + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512: + psa_alg = PSA_ALG_RSA_PSS( PSA_ALG_SHA_512 ); + break; + case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256: + case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384: + case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512: + psa_alg = PSA_ALG_RSA_PKCS1V15_CRYPT; + break; + default: + break; + } + return( psa_alg ); +} + MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_select_sig_alg_for_certificate_verify( mbedtls_ssl_context *ssl, @@ -939,34 +973,7 @@ static int ssl_tls13_select_sig_alg_for_certificate_verify( *algorithm = MBEDTLS_TLS1_3_SIG_NONE; for( ; *sig_alg != MBEDTLS_TLS1_3_SIG_NONE ; sig_alg++ ) { - switch( *sig_alg ) - { - case MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256: - psa_alg = PSA_ALG_ECDSA( PSA_ALG_SHA_256 ); - break; - case MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384: - psa_alg = PSA_ALG_ECDSA( PSA_ALG_SHA_384 ); - break; - case MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512: - psa_alg = PSA_ALG_ECDSA( PSA_ALG_SHA_512 ); - break; - case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: - psa_alg = PSA_ALG_RSA_PSS( PSA_ALG_SHA_256 ); - break; - case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384: - psa_alg = PSA_ALG_RSA_PSS( PSA_ALG_SHA_384 ); - break; - case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512: - psa_alg = PSA_ALG_RSA_PSS( PSA_ALG_SHA_512 ); - break; - case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256: - case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384: - case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512: - psa_alg = PSA_ALG_RSA_PKCS1V15_CRYPT; - break; - default: - break; - } + psa_alg = ssl_tls13_select_sig_alg_to_psa_alg( *sig_alg ); if( mbedtls_ssl_sig_alg_is_offered( ssl, *sig_alg ) && mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported( *sig_alg ) && From f937e669bdeaafedfe99462064b53aa20a818a85 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 5 Jul 2022 22:42:44 +0200 Subject: [PATCH 0265/1028] Guard new code with MBEDTLS_USE_PSA_CRYPTO Signed-off-by: Przemek Stekiel --- library/ssl_tls13_generic.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index e351a24209..703605f8ee 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -927,6 +927,7 @@ int mbedtls_ssl_tls13_check_sig_alg_cert_key_match( uint16_t sig_alg, return( 0 ); } +#if defined(MBEDTLS_USE_PSA_CRYPTO) static psa_algorithm_t ssl_tls13_select_sig_alg_to_psa_alg( uint16_t sig_alg ) { psa_algorithm_t psa_alg = 0; @@ -960,6 +961,7 @@ static psa_algorithm_t ssl_tls13_select_sig_alg_to_psa_alg( uint16_t sig_alg ) } return( psa_alg ); } +#endif /* MBEDTLS_USE_PSA_CRYPTO */ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_select_sig_alg_for_certificate_verify( @@ -968,19 +970,26 @@ static int ssl_tls13_select_sig_alg_for_certificate_verify( uint16_t *algorithm ) { uint16_t *sig_alg = ssl->handshake->received_sig_algs; +#if defined(MBEDTLS_USE_PSA_CRYPTO) psa_algorithm_t psa_alg = 0; +#endif /* MBEDTLS_USE_PSA_CRYPTO */ *algorithm = MBEDTLS_TLS1_3_SIG_NONE; for( ; *sig_alg != MBEDTLS_TLS1_3_SIG_NONE ; sig_alg++ ) { +#if defined(MBEDTLS_USE_PSA_CRYPTO) psa_alg = ssl_tls13_select_sig_alg_to_psa_alg( *sig_alg ); +#endif /* MBEDTLS_USE_PSA_CRYPTO */ if( mbedtls_ssl_sig_alg_is_offered( ssl, *sig_alg ) && mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported( *sig_alg ) && - mbedtls_ssl_tls13_check_sig_alg_cert_key_match( *sig_alg, own_key ) && - psa_alg != 0 && + mbedtls_ssl_tls13_check_sig_alg_cert_key_match( *sig_alg, own_key ) +#if defined(MBEDTLS_USE_PSA_CRYPTO) + && psa_alg != 0 && mbedtls_pk_can_do_ext( own_key, psa_alg, - PSA_KEY_USAGE_SIGN_HASH ) == 1 ) + PSA_KEY_USAGE_SIGN_HASH ) == 1 +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "select_sig_alg_for_certificate_verify:" From dca224628b6db75f7b2c381e524c80feca97cc4e Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 6 Jul 2022 22:34:25 +0200 Subject: [PATCH 0266/1028] ssl_tls13_select_sig_alg_to_psa_alg: optimize code Signed-off-by: Przemek Stekiel --- library/ssl_tls13_generic.c | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 703605f8ee..507c587db8 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -930,36 +930,27 @@ int mbedtls_ssl_tls13_check_sig_alg_cert_key_match( uint16_t sig_alg, #if defined(MBEDTLS_USE_PSA_CRYPTO) static psa_algorithm_t ssl_tls13_select_sig_alg_to_psa_alg( uint16_t sig_alg ) { - psa_algorithm_t psa_alg = 0; switch( sig_alg ) { case MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256: - psa_alg = PSA_ALG_ECDSA( PSA_ALG_SHA_256 ); - break; + return( PSA_ALG_ECDSA( PSA_ALG_SHA_256 ) ); case MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384: - psa_alg = PSA_ALG_ECDSA( PSA_ALG_SHA_384 ); - break; + return( PSA_ALG_ECDSA( PSA_ALG_SHA_384 ) ); case MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512: - psa_alg = PSA_ALG_ECDSA( PSA_ALG_SHA_512 ); - break; + return( PSA_ALG_ECDSA( PSA_ALG_SHA_512 ) ); case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: - psa_alg = PSA_ALG_RSA_PSS( PSA_ALG_SHA_256 ); - break; + return( PSA_ALG_RSA_PSS( PSA_ALG_SHA_256 ) ); case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384: - psa_alg = PSA_ALG_RSA_PSS( PSA_ALG_SHA_384 ); - break; + return( PSA_ALG_RSA_PSS( PSA_ALG_SHA_384 ) ); case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512: - psa_alg = PSA_ALG_RSA_PSS( PSA_ALG_SHA_512 ); - break; + return( PSA_ALG_RSA_PSS( PSA_ALG_SHA_512 ) ); case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256: case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384: case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512: - psa_alg = PSA_ALG_RSA_PKCS1V15_CRYPT; - break; + return( PSA_ALG_RSA_PKCS1V15_CRYPT ); default: - break; + return( 0 ); } - return( psa_alg ); } #endif /* MBEDTLS_USE_PSA_CRYPTO */ From 632939df4b6246c1a56cebe1489db22f4894cb19 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 7 Jul 2022 09:27:20 +0200 Subject: [PATCH 0267/1028] ssl_client2: print pk key name when provided using key_opaque_algs Signed-off-by: Przemek Stekiel --- programs/ssl/ssl_client2.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 89150114a8..3db2b5201c 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -1769,7 +1769,8 @@ int main( int argc, char *argv[] ) #endif /* MBEDTLS_USE_PSA_CRYPTO */ mbedtls_printf( " ok (key type: %s)\n", - strlen( opt.key_file ) ? mbedtls_pk_get_name( &pkey ) : "none" ); + strlen( opt.key_file ) || strlen( opt.key_opaque_alg1 ) ? + mbedtls_pk_get_name( &pkey ) : "none" ); #endif /* MBEDTLS_X509_CRT_PARSE_C */ /* From c454aba2034a9f35aad7923de178b5ae5bf063d7 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 7 Jul 2022 09:56:13 +0200 Subject: [PATCH 0268/1028] ssl-opt.sh: add tests for key_opaque_algs option Signed-off-by: Przemek Stekiel --- tests/ssl-opt.sh | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 9e14af15bb..11fc3572c1 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -2042,6 +2042,48 @@ run_test "Opaque keys for server authentication: EC + RSA, force ECDHE-ECDSA" -S "error" \ -C "error" +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_RSA_C +run_test "TLS1.3 opaque key: no suitable algorithm found" \ + "$P_SRV debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs=rsa-decrypt,none" \ + "$P_CLI debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ + 1 \ + -c "The SSL configuration is tls13 only" \ + -s "The SSL configuration is tls13 only" \ + -c "key type: Opaque" \ + -s "key types: Opaque, Opaque" \ + -c "error" \ + -s "select_sig_alg_for_certificate_verify:no suitable signature algorithm found" \ + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_RSA_C +run_test "TLS1.3 opaque key: suitable algorithm found" \ + "$P_SRV debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ + "$P_CLI debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ + 0 \ + -c "The SSL configuration is tls13 only" \ + -s "The SSL configuration is tls13 only" \ + -c "key type: Opaque" \ + -s "key types: Opaque, Opaque" \ + -C "error" \ + -S "error" \ + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_RSA_C +run_test "TLS1.3 opaque key: 2 keys on server, suitable algorithm found" \ + "$P_SRV debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs2=ecdsa-sign,none key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ + "$P_CLI debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ + 0 \ + -c "The SSL configuration is tls13 only" \ + -s "The SSL configuration is tls13 only" \ + -c "key type: Opaque" \ + -s "key types: Opaque, Opaque" \ + -C "error" \ + -S "error" \ + # Test using a RSA opaque private key for server authentication requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO From 2b177926adeeb288ccea038c588c6f952dd98f13 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 15 Sep 2022 14:07:18 +0100 Subject: [PATCH 0269/1028] Use ASSERT_ALLOC() in tests Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.function | 40 +++++++++++----------------- 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 6f5e349472..9567e5e795 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1768,21 +1768,17 @@ void mpi_core_add_if( char * input_A, char * input_B, * limbs each of these need. */ size_t limbs = B.n; - a = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); - b = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); - x = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); - d = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); - size_t bytes = limbs * sizeof(mbedtls_mpi_uint); - TEST_ASSERT( a != NULL ); - TEST_ASSERT( b != NULL ); - TEST_ASSERT( x != NULL ); - TEST_ASSERT( d != NULL ); + /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ + ASSERT_ALLOC( a, bytes ); + ASSERT_ALLOC( b, bytes ); + ASSERT_ALLOC( x, bytes ); + ASSERT_ALLOC( d, bytes ); /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as * processed by mbedtls_mpi_core_add_if()) are little endian, we can just - * copy what we have as long as MSBs are 0 (which they are from calloc()) + * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()) */ memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); @@ -1877,19 +1873,16 @@ void mpi_core_sub( char * input_A, char * input_B, TEST_ASSERT( X->n <= limbs ); /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ - a = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); - b = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); - x = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); - r = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); - TEST_ASSERT( a != NULL ); - TEST_ASSERT( b != NULL ); - TEST_ASSERT( x != NULL ); - TEST_ASSERT( r != NULL ); + /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ + ASSERT_ALLOC( a, bytes ); + ASSERT_ALLOC( b, bytes ); + ASSERT_ALLOC( x, bytes ); + ASSERT_ALLOC( r, bytes ); /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as * processed by mbedtls_mpi_core_sub()) are little endian, we can just - * copy what we have as long as MSBs are 0 (which they are from calloc()) + * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()) */ memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); @@ -1985,15 +1978,14 @@ void mpi_core_mla( char * input_A, char * input_B, char * input_S, TEST_ASSERT( X->n <= limbs ); /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ - a = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); - x = mbedtls_calloc( limbs, sizeof(mbedtls_mpi_uint) ); - TEST_ASSERT( a != NULL ); - TEST_ASSERT( x != NULL ); + /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ + ASSERT_ALLOC( a, bytes ); + ASSERT_ALLOC( x, bytes ); /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as * processed by mbedtls_mpi_core_mla()) are little endian, we can just - * copy what we have as long as MSBs are 0 (which they are from calloc()). + * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()). */ memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); memcpy( x, X->p, X->n * sizeof(mbedtls_mpi_uint) ); From 1feb5ac1b740a238ce7ec264ef742ba2e2620463 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 15 Sep 2022 14:22:35 +0100 Subject: [PATCH 0270/1028] Switch to using TEST_LE_S() and TEST_LE_U() in tests Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.function | 41 ++++++++++++++-------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 9567e5e795..e4fca45be6 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -239,23 +239,23 @@ void mpi_core_io_be( data_t *input, int nb_int, int nx_32_int, int iret, if( iret != 0 ) TEST_ASSERT( oret == 0 ); - TEST_ASSERT( 0 <= nb_int ); + TEST_LE_S( 0, nb_int ); size_t nb = nb_int; unsigned char buf[1024]; - TEST_ASSERT( nb <= sizeof( buf ) ); + TEST_LE_U( nb, sizeof( buf ) ); /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need * to halve the number of limbs to have the same size. */ size_t nx; - TEST_ASSERT( 0 <= nx_32_int ); + TEST_LE_S( 0, nx_32_int ); if( sizeof( mbedtls_mpi_uint ) == 8 ) nx = nx_32_int / 2 + nx_32_int % 2; else nx = nx_32_int; mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; - TEST_ASSERT( nx <= sizeof( X ) / sizeof( X[0] ) ); + TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); int ret = mbedtls_mpi_core_read_be( X, nx, input->x, input->len ); TEST_EQUAL( ret, iret ); @@ -296,23 +296,23 @@ void mpi_core_io_le( data_t *input, int nb_int, int nx_32_int, int iret, if( iret != 0 ) TEST_ASSERT( oret == 0 ); - TEST_ASSERT( 0 <= nb_int ); + TEST_LE_S( 0, nb_int ); size_t nb = nb_int; unsigned char buf[1024]; - TEST_ASSERT( nb <= sizeof( buf ) ); + TEST_LE_U( nb, sizeof( buf ) ); /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need * to halve the number of limbs to have the same size. */ size_t nx; - TEST_ASSERT( 0 <= nx_32_int ); + TEST_LE_S( 0, nx_32_int ); if( sizeof( mbedtls_mpi_uint ) == 8 ) nx = nx_32_int / 2 + nx_32_int % 2; else nx = nx_32_int; mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; - TEST_ASSERT( nx <= sizeof( X ) / sizeof( X[0] ) ); + TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); int ret = mbedtls_mpi_core_read_le( X, nx, input->x, input->len ); TEST_EQUAL( ret, iret ); @@ -380,23 +380,23 @@ void mpi_mod_raw_io( data_t *input, int nb_int, int nx_32_int, if( iret != 0 ) TEST_ASSERT( oret == 0 ); - TEST_ASSERT( 0 <= nb_int ); + TEST_LE_S( 0, nb_int ); size_t nb = nb_int; unsigned char buf[1024]; - TEST_ASSERT( nb <= sizeof( buf ) ); + TEST_LE_U( nb, sizeof( buf ) ); /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need * to halve the number of limbs to have the same size. */ size_t nx; - TEST_ASSERT( 0 <= nx_32_int ); + TEST_LE_S( 0, nx_32_int ); if( sizeof( mbedtls_mpi_uint ) == 8 ) nx = nx_32_int / 2 + nx_32_int % 2; else nx = nx_32_int; mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; - TEST_ASSERT( nx <= sizeof( X ) / sizeof( X[0] ) ); + TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); int endian; if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID ) @@ -738,7 +738,7 @@ void mpi_core_lt_ct( data_t * input_X, data_t * input_Y, int input_ret ) size_t len = CHARS_TO_LIMBS( input_X->len > input_Y->len ? input_X->len : input_Y->len ); - TEST_ASSERT( len <= MAX_LEN ); + TEST_LE_U( len, MAX_LEN ); TEST_ASSERT( mbedtls_mpi_core_read_be( X, len, input_X->x, input_X->len ) == 0 ); @@ -1753,8 +1753,8 @@ void mpi_core_add_if( char * input_A, char * input_B, TEST_EQUAL( 1, X->s ); /* Test cases are such that A <= B, so #limbs should be <= */ - TEST_ASSERT( A.n <= B.n ); - TEST_ASSERT( X->n <= B.n ); + TEST_LE_U( A.n, B.n ); + TEST_LE_U( X->n, B.n ); /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ @@ -1870,7 +1870,7 @@ void mpi_core_sub( char * input_A, char * input_B, mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; /* The result shouldn't have more limbs than the longest input */ - TEST_ASSERT( X->n <= limbs ); + TEST_LE_U( X->n, limbs ); /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ @@ -1975,7 +1975,7 @@ void mpi_core_mla( char * input_A, char * input_B, char * input_S, size_t bytes = limbs * sizeof(mbedtls_mpi_uint); /* The result shouldn't have more limbs than the longest input */ - TEST_ASSERT( X->n <= limbs ); + TEST_LE_U( X->n, limbs ); /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ @@ -2075,9 +2075,10 @@ void mpi_core_montmul( int limbs_AN4, int limbs_B4, int limbs_AN = ( sizeof(mbedtls_mpi_uint) == 4 ) ? limbs_AN4 : limbs_AN8; int limbs_B = ( sizeof(mbedtls_mpi_uint) == 4 ) ? limbs_B4 : limbs_B8; - TEST_ASSERT( (size_t)limbs_AN >= A.n && (size_t)limbs_AN >= X->n ); - TEST_ASSERT( (size_t)limbs_B >= B.n ); - TEST_ASSERT( limbs_B <= limbs_AN ); + TEST_LE_U( A.n, (size_t)limbs_AN ); + TEST_LE_U( X->n, (size_t)limbs_AN ); + TEST_LE_U( B.n, (size_t)limbs_B ); + TEST_LE_U( limbs_B, limbs_AN ); /* All of the inputs are +ve (or zero) */ TEST_EQUAL( 1, A.s ); From 50c477bd6ba1a7cabe91798617ba9c39ea214e0a Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 15 Sep 2022 14:28:30 +0100 Subject: [PATCH 0271/1028] Use S and sum (rather than X/expected) in mpi_core_add_if() Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.function | 38 ++++++++++++++-------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index e4fca45be6..61d411cd51 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1722,29 +1722,29 @@ exit: /* BEGIN_CASE */ void mpi_core_add_if( char * input_A, char * input_B, - char * input_X4, int carry4, - char * input_X8, int carry8 ) + char * input_S4, int carry4, + char * input_S8, int carry8 ) { - mbedtls_mpi X4, X8, A, B; + mbedtls_mpi S4, S8, A, B; mbedtls_mpi_uint *a = NULL; /* first value to add */ mbedtls_mpi_uint *b = NULL; /* second value to add */ - mbedtls_mpi_uint *x = NULL; /* expected */ - mbedtls_mpi_uint *d = NULL; /* destination - the in/out first op */ + mbedtls_mpi_uint *sum = NULL; + mbedtls_mpi_uint *d = NULL; /* destination - the in/out first operand */ mbedtls_mpi_init( &A ); mbedtls_mpi_init( &B ); - mbedtls_mpi_init( &X4 ); - mbedtls_mpi_init( &X8 ); + mbedtls_mpi_init( &S4 ); + mbedtls_mpi_init( &S8 ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &S4, input_S4 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &S8, input_S8 ) ); - /* We only need to work with one of (X4, carry4) or (X8, carry8) depending + /* We only need to work with one of (S4, carry4) or (S8, carry8) depending * on sizeof(mbedtls_mpi_uint) */ - mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; + mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &S4 : &S8; mbedtls_mpi_uint carry = ( sizeof(mbedtls_mpi_uint) == 4 ) ? carry4 : carry8; /* All of the inputs are +ve (or zero) */ @@ -1773,7 +1773,7 @@ void mpi_core_add_if( char * input_A, char * input_B, /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ ASSERT_ALLOC( a, bytes ); ASSERT_ALLOC( b, bytes ); - ASSERT_ALLOC( x, bytes ); + ASSERT_ALLOC( sum, bytes ); ASSERT_ALLOC( d, bytes ); /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as @@ -1782,7 +1782,7 @@ void mpi_core_add_if( char * input_A, char * input_B, */ memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); - memcpy( x, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + memcpy( sum, X->p, X->n * sizeof(mbedtls_mpi_uint) ); /* 1a) a + b: d = a; d += b, cond = 0 => there should be no carry */ memcpy( d, a, bytes ); @@ -1795,7 +1795,7 @@ void mpi_core_add_if( char * input_A, char * input_B, TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, b, limbs, 1 ) ); /* 2b) and d should have the correct result */ - ASSERT_COMPARE( d, bytes, x, bytes ); + ASSERT_COMPARE( d, bytes, sum, bytes ); /* 3a) b + a: d = b; d += a, cond = 0 => there should be no carry */ memcpy( d, b, bytes ); @@ -1808,7 +1808,7 @@ void mpi_core_add_if( char * input_A, char * input_B, TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, a, limbs, 1 ) ); /* 4b) and d should have the correct result */ - ASSERT_COMPARE( d, bytes, x, bytes ); + ASSERT_COMPARE( d, bytes, sum, bytes ); /* 5) a + b where a and b are aliased - only when a == b */ if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) @@ -1819,17 +1819,17 @@ void mpi_core_add_if( char * input_A, char * input_B, /* 5b) cond = 1 => correct carry, and correct result in b */ TEST_EQUAL( carry, mbedtls_mpi_core_add_if( b, b, limbs, 1 ) ); - ASSERT_COMPARE( b, bytes, x, bytes ); + ASSERT_COMPARE( b, bytes, sum, bytes ); } exit: mbedtls_free( a ); mbedtls_free( b ); - mbedtls_free( x ); + mbedtls_free( sum ); mbedtls_free( d ); - mbedtls_mpi_free( &X4 ); - mbedtls_mpi_free( &X8 ); + mbedtls_mpi_free( &S4 ); + mbedtls_mpi_free( &S8 ); mbedtls_mpi_free( &A ); mbedtls_mpi_free( &B ); } From be7209db1f7bfb94c4de9ca8bd0ab7bc0b0b2959 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 15 Sep 2022 14:32:38 +0100 Subject: [PATCH 0272/1028] Remove unnecessary casts Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.function | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 61d411cd51..72b8e852f9 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1889,7 +1889,7 @@ void mpi_core_sub( char * input_A, char * input_B, memcpy( x, X->p, X->n * sizeof(mbedtls_mpi_uint) ); /* 1a) r = a - b => we should get the correct carry */ - TEST_EQUAL( mbedtls_mpi_core_sub( r, a, b, limbs ), (mbedtls_mpi_uint) carry ); + TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, a, b, limbs ) ); /* 1b) r = a - b => we should get the correct result */ ASSERT_COMPARE( r, bytes, x, bytes ); @@ -1897,14 +1897,14 @@ void mpi_core_sub( char * input_A, char * input_B, /* 2 and 3 test "r may be aliased to a or b" */ /* 2a) r = a; r -= b => we should get the correct carry (use r to avoid clobbering a) */ memcpy( r, a, bytes ); - TEST_EQUAL( mbedtls_mpi_core_sub( r, r, b, limbs ), (mbedtls_mpi_uint) carry ); + TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, r, b, limbs ) ); /* 2b) r -= b => we should get the correct result */ ASSERT_COMPARE( r, bytes, x, bytes ); /* 3a) r = b; r = a - r => we should get the correct carry (use r to avoid clobbering b) */ memcpy( r, b, bytes ); - TEST_EQUAL( mbedtls_mpi_core_sub( r, a, r, limbs ), (mbedtls_mpi_uint) carry ); + TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, a, r, limbs ) ); /* 3b) r = a - b => we should get the correct result */ ASSERT_COMPARE( r, bytes, x, bytes ); From e2159f2083c84a213d250a502da700c2f91fe92c Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 15 Sep 2022 14:40:10 +0100 Subject: [PATCH 0273/1028] Use the MAX() macro Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.function | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 72b8e852f9..0a31f9576b 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1863,7 +1863,7 @@ void mpi_core_sub( char * input_A, char * input_B, TEST_EQUAL( 1, X8.s ); /* Get the number of limbs we will need */ - size_t limbs = ( A.n < B.n ) ? B.n : A.n; + size_t limbs = MAX( A.n, B.n ); size_t bytes = limbs * sizeof(mbedtls_mpi_uint); /* We only need to work with X4 or X8, depending on sizeof(mbedtls_mpi_uint) */ @@ -1971,7 +1971,7 @@ void mpi_core_mla( char * input_A, char * input_B, char * input_S, TEST_EQUAL( 1, cy->s ); /* Get the (max) number of limbs we will need */ - size_t limbs = ( A.n < B.n ) ? B.n : A.n; + size_t limbs = MAX( A.n, B.n ); size_t bytes = limbs * sizeof(mbedtls_mpi_uint); /* The result shouldn't have more limbs than the longest input */ From 359feb0d2f2c409a215e969485d9b0311215eccc Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 15 Sep 2022 14:52:34 +0100 Subject: [PATCH 0274/1028] Better wording for the reason why we use an input MPI for a scalar value Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.function | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 0a31f9576b..71912b1769 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1929,7 +1929,9 @@ void mpi_core_mla( char * input_A, char * input_B, char * input_S, { /* We are testing A += B * s; A, B are MPIs, s is a scalar. * - * However, we encode s as an MPI in the .data file for ease of handling. + * However, we encode s as an MPI in the .data file as the test framework + * currently only supports `int`-typed scalars, and that doesn't cover the + * full range of `mbedtls_mpi_uint`. * * We also have the different results for sizeof(mbedtls_mpi_uint) == 4 or 8. */ From 818d992cc795e55a6bc653360151b37abd9871b3 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 15 Sep 2022 14:58:10 +0100 Subject: [PATCH 0275/1028] Note that T must not overlap other parameters of mbedtls_mpi_core_montmul() Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 1 + 1 file changed, 1 insertion(+) diff --git a/library/bignum_core.h b/library/bignum_core.h index 23d80a0ee0..49ea485259 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -264,6 +264,7 @@ mbedtls_mpi_uint mbedtls_mpi_montg_init( const mbedtls_mpi_uint *N ); * \param[in,out] T Temporary storage of size at least 2*AN_limbs+1 limbs. * Its initial content is unused and * its final content is indeterminate. + * It must not overlap any of the other parameters. */ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, From 2701deaa4b4a9a6257470b038c5ccab3745f25cc Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 15 Sep 2022 15:00:07 +0100 Subject: [PATCH 0276/1028] Use mbedtls_ct_mpi_uint_mask() rather than rolling our own Signed-off-by: Tom Cosgrove --- library/bignum_core.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 13fc074a6d..bb6e7cd3bc 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -300,19 +300,8 @@ mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *A, { mbedtls_mpi_uint c = 0; - /* MSVC has a warning about unary minus on unsigned integer types, - * but this is well-defined and precisely what we want to do here. */ -#if defined(_MSC_VER) -#pragma warning( push ) -#pragma warning( disable : 4146 ) -#endif - - /* all-bits 1 if cond is 1, all-bits 0 if cond is 0 */ - const mbedtls_mpi_uint mask = -(mbedtls_mpi_uint)cond; - -#if defined(_MSC_VER) -#pragma warning( pop ) -#endif + /* all-bits 0 if cond is 0, all-bits 1 if cond is non-0 */ + const mbedtls_mpi_uint mask = mbedtls_ct_mpi_uint_mask( cond ); for( size_t i = 0; i < limbs; i++ ) { From b7438d1f6235c0713b364d255657d82ff468f4e7 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 15 Sep 2022 15:05:59 +0100 Subject: [PATCH 0277/1028] Update name of mbedtls_mpi_montg_init() Signed-off-by: Tom Cosgrove --- library/bignum.c | 2 +- library/bignum_core.c | 2 +- library/bignum_core.h | 4 ++-- tests/suites/test_suite_mpi.function | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index de6195251e..19d59be6b0 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1547,7 +1547,7 @@ int mbedtls_mpi_mod_int( mbedtls_mpi_uint *r, const mbedtls_mpi *A, mbedtls_mpi_ static void mpi_montg_init( mbedtls_mpi_uint *mm, const mbedtls_mpi *N ) { - *mm = mbedtls_mpi_montg_init( N->p ); + *mm = mbedtls_mpi_core_montmul_init( N->p ); } /** Montgomery multiplication: A = A * B * R^-1 mod N (HAC 14.36) diff --git a/library/bignum_core.c b/library/bignum_core.c index bb6e7cd3bc..fa7fc85087 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -377,7 +377,7 @@ mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len, /* * Fast Montgomery initialization (thanks to Tom St Denis). */ -mbedtls_mpi_uint mbedtls_mpi_montg_init( const mbedtls_mpi_uint *N ) +mbedtls_mpi_uint mbedtls_mpi_core_montmul_init( const mbedtls_mpi_uint *N ) { mbedtls_mpi_uint x = N[0]; diff --git a/library/bignum_core.h b/library/bignum_core.h index 49ea485259..746c1d9505 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -240,7 +240,7 @@ mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *A, size_t A_limbs, * * \return The initialisation value for fast Montgomery modular multiplication */ -mbedtls_mpi_uint mbedtls_mpi_montg_init( const mbedtls_mpi_uint *N ); +mbedtls_mpi_uint mbedtls_mpi_core_montmul_init( const mbedtls_mpi_uint *N ); /** * \brief Montgomery multiplication: X = A * B * R^-1 mod N (HAC 14.36) @@ -260,7 +260,7 @@ mbedtls_mpi_uint mbedtls_mpi_montg_init( const mbedtls_mpi_uint *N ); * of limbs as \p A. * \param[in] AN_limbs The number of limbs in \p X, \p A and \p N. * \param mm The Montgomery constant for \p N: -N^-1 mod 2^biL. - * This can be calculated by `mbedtls_mpi_montg_init()`. + * This can be calculated by `mbedtls_mpi_core_montmul_init()`. * \param[in,out] T Temporary storage of size at least 2*AN_limbs+1 limbs. * Its initial content is unused and * its final content is indeterminate. diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 71912b1769..2a09fe46fa 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -2035,8 +2035,8 @@ void mpi_montg_init( char * input_N, char * input_mm ) TEST_EQUAL( 1, N.s ); TEST_EQUAL( 1, mm.s ); - /* mbedtls_mpi_montg_init() only returns a result, no error possible */ - mbedtls_mpi_uint result = mbedtls_mpi_montg_init( N.p ); + /* mbedtls_mpi_core_montmul_init() only returns a result, no error possible */ + mbedtls_mpi_uint result = mbedtls_mpi_core_montmul_init( N.p ); /* Check we got the correct result */ TEST_EQUAL( result, mm.p[0] ); @@ -2096,7 +2096,7 @@ void mpi_core_montmul( int limbs_AN4, int limbs_B4, TEST_EQUAL( 0, mbedtls_mpi_grow( &T, limbs_AN * 2 + 1 ) ); /* Calculate the Montgomery constant (this is unit tested separately) */ - mbedtls_mpi_uint mm = mbedtls_mpi_montg_init( N.p ); + mbedtls_mpi_uint mm = mbedtls_mpi_core_montmul_init( N.p ); TEST_EQUAL( 0, mbedtls_mpi_grow( &R, limbs_AN ) ); /* ensure it's got the right number of limbs */ From 17f1fdca0ffadce0d9a420d5e80818859989a2f5 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 15 Sep 2022 15:23:56 +0100 Subject: [PATCH 0278/1028] Update comments in mpi_core_add_if() test Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.function | 29 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 2a09fe46fa..541e860470 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1784,40 +1784,39 @@ void mpi_core_add_if( char * input_A, char * input_B, memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); memcpy( sum, X->p, X->n * sizeof(mbedtls_mpi_uint) ); - /* 1a) a + b: d = a; d += b, cond = 0 => there should be no carry */ + /* The test cases have a <= b to avoid repetition, so we test a + b then b + a */ + + /* a + b */ + + /* cond = 0 => d unchanged, no carry */ memcpy( d, a, bytes ); TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, b, limbs, 0 ) ); - - /* 1b) and d should be unchanged */ ASSERT_COMPARE( d, bytes, a, bytes ); - /* 2a) a + b: d = a; d += b, cond = 1 => we should get the correct carry */ + /* cond = 1 => correct result and carry */ TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, b, limbs, 1 ) ); - - /* 2b) and d should have the correct result */ ASSERT_COMPARE( d, bytes, sum, bytes ); - /* 3a) b + a: d = b; d += a, cond = 0 => there should be no carry */ + /* b + a */ + + /* cond = 0 => d unchanged, no carry */ memcpy( d, b, bytes ); TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, a, limbs, 0 ) ); - - /* 3b) and d should be unchanged */ ASSERT_COMPARE( d, bytes, b, bytes ); - /* 4a) b + a: d = b; d += a, cond = 1 => we should get the correct carry */ + /* cond = 1 => correct result and carry */ TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, a, limbs, 1 ) ); - - /* 4b) and d should have the correct result */ ASSERT_COMPARE( d, bytes, sum, bytes ); - /* 5) a + b where a and b are aliased - only when a == b */ + /* If a == b we can test where a and b are aliased */ + if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) { - /* 5a) cond = 0 => no carry, and no change to b */ + /* cond = 0 => d unchanged, no carry */ TEST_EQUAL( 0, mbedtls_mpi_core_add_if( b, b, limbs, 0 ) ); ASSERT_COMPARE( b, bytes, B.p, bytes ); - /* 5b) cond = 1 => correct carry, and correct result in b */ + /* cond = 1 => correct result and carry */ TEST_EQUAL( carry, mbedtls_mpi_core_add_if( b, b, limbs, 1 ) ); ASSERT_COMPARE( b, bytes, sum, bytes ); } From dbc156172ca27baa5ef0404daf04cefc9e46c360 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 15 Sep 2022 15:36:23 +0100 Subject: [PATCH 0279/1028] Don't bother to test b + a after testing a + b if a == b Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.function | 31 +++++++++++++++------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 541e860470..901f9575f5 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1784,7 +1784,8 @@ void mpi_core_add_if( char * input_A, char * input_B, memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); memcpy( sum, X->p, X->n * sizeof(mbedtls_mpi_uint) ); - /* The test cases have a <= b to avoid repetition, so we test a + b then b + a */ + /* The test cases have a <= b to avoid repetition, so we test a + b then, + * if a != b, b + a. If a == b, we can test when a and b are aliased */ /* a + b */ @@ -1797,21 +1798,10 @@ void mpi_core_add_if( char * input_A, char * input_B, TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, b, limbs, 1 ) ); ASSERT_COMPARE( d, bytes, sum, bytes ); - /* b + a */ - - /* cond = 0 => d unchanged, no carry */ - memcpy( d, b, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, a, limbs, 0 ) ); - ASSERT_COMPARE( d, bytes, b, bytes ); - - /* cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, a, limbs, 1 ) ); - ASSERT_COMPARE( d, bytes, sum, bytes ); - - /* If a == b we can test where a and b are aliased */ - if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) { + /* a == b, so test where a and b are aliased */ + /* cond = 0 => d unchanged, no carry */ TEST_EQUAL( 0, mbedtls_mpi_core_add_if( b, b, limbs, 0 ) ); ASSERT_COMPARE( b, bytes, B.p, bytes ); @@ -1820,6 +1810,19 @@ void mpi_core_add_if( char * input_A, char * input_B, TEST_EQUAL( carry, mbedtls_mpi_core_add_if( b, b, limbs, 1 ) ); ASSERT_COMPARE( b, bytes, sum, bytes ); } + else + { + /* a != b, so test b + a */ + + /* cond = 0 => d unchanged, no carry */ + memcpy( d, b, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, a, limbs, 0 ) ); + ASSERT_COMPARE( d, bytes, b, bytes ); + + /* cond = 1 => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, a, limbs, 1 ) ); + ASSERT_COMPARE( d, bytes, sum, bytes ); + } exit: mbedtls_free( a ); From c71ca0cb3c9103a7ea028d112d5567a4238695aa Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 15 Sep 2022 15:38:17 +0100 Subject: [PATCH 0280/1028] Remove some unnecessary whitespace (two spaces after commas) Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.function | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 901f9575f5..0cf961b85e 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -873,8 +873,8 @@ void mpi_swap( char *X_hex, char *Y_hex ) TEST_ASSERT( mbedtls_test_read_mpi( &Y0, Y_hex ) == 0 ); /* mbedtls_mpi_swap() */ - TEST_ASSERT( mbedtls_test_read_mpi( &X, X_hex ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, Y_hex ) == 0 ); + TEST_ASSERT( mbedtls_test_read_mpi( &X, X_hex ) == 0 ); + TEST_ASSERT( mbedtls_test_read_mpi( &Y, Y_hex ) == 0 ); mbedtls_mpi_swap( &X, &Y ); TEST_ASSERT( sign_is_valid( &X ) ); TEST_ASSERT( sign_is_valid( &Y ) ); @@ -884,8 +884,8 @@ void mpi_swap( char *X_hex, char *Y_hex ) /* mbedtls_mpi_safe_cond_swap(), swap done */ mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); - TEST_ASSERT( mbedtls_test_read_mpi( &X, X_hex ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, Y_hex ) == 0 ); + TEST_ASSERT( mbedtls_test_read_mpi( &X, X_hex ) == 0 ); + TEST_ASSERT( mbedtls_test_read_mpi( &Y, Y_hex ) == 0 ); TEST_ASSERT( mbedtls_mpi_safe_cond_swap( &X, &Y, 1 ) == 0 ); TEST_ASSERT( sign_is_valid( &X ) ); TEST_ASSERT( sign_is_valid( &Y ) ); @@ -895,8 +895,8 @@ void mpi_swap( char *X_hex, char *Y_hex ) /* mbedtls_mpi_safe_cond_swap(), swap not done */ mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); - TEST_ASSERT( mbedtls_test_read_mpi( &X, X_hex ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, Y_hex ) == 0 ); + TEST_ASSERT( mbedtls_test_read_mpi( &X, X_hex ) == 0 ); + TEST_ASSERT( mbedtls_test_read_mpi( &Y, Y_hex ) == 0 ); TEST_ASSERT( mbedtls_mpi_safe_cond_swap( &X, &Y, 0 ) == 0 ); TEST_ASSERT( sign_is_valid( &X ) ); TEST_ASSERT( sign_is_valid( &Y ) ); @@ -915,7 +915,7 @@ void mpi_swap_self( char *X_hex ) mbedtls_mpi X, X0; mbedtls_mpi_init( &X ); mbedtls_mpi_init( &X0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &X, X_hex ) == 0 ); + TEST_ASSERT( mbedtls_test_read_mpi( &X, X_hex ) == 0 ); TEST_ASSERT( mbedtls_test_read_mpi( &X0, X_hex ) == 0 ); mbedtls_mpi_swap( &X, &X ); From 5c0e8104bcaa8947eca892fab4370140d5f62163 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 15 Sep 2022 15:46:10 +0100 Subject: [PATCH 0281/1028] Prefer 'fixed-size' to 'known-size' in doc comments Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 746c1d9505..54819f7c00 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -156,7 +156,7 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, size_t output_length ); /** - * \brief Conditional addition of two known-size large unsigned integers, + * \brief Conditional addition of two fixed-size large unsigned integers, * returning the carry. * * Functionally equivalent to @@ -189,7 +189,7 @@ mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *A, unsigned cond ); /** - * \brief Subtract two known-size large unsigned integers, returning the borrow. + * \brief Subtract two fixed-size large unsigned integers, returning the borrow. * * Calculate `A - B` where \p A and \p B have the same size. * This function operates modulo `2^(biL*limbs)` and returns the carry @@ -212,7 +212,7 @@ mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *X, size_t limbs ); /** - * \brief Perform a known-size multiply accumulate operation: A += c * B + * \brief Perform a fixed-size multiply accumulate operation: A += c * B * * \param[in,out] A The pointer to the (little-endian) array * representing the bignum to accumulate onto. From 3bd7bc3addb0de0234890cea00273ef982409dcf Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 15 Sep 2022 15:55:07 +0100 Subject: [PATCH 0282/1028] Use X rather than A for accumulator-style input (and output!) params, and rename others accordingly Signed-off-by: Tom Cosgrove --- library/bignum_core.c | 12 ++++++------ library/bignum_core.h | 42 +++++++++++++++++++++--------------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index fa7fc85087..541b1c73a8 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -293,8 +293,8 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *X, return( 0 ); } -mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, +mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, size_t limbs, unsigned cond ) { @@ -305,12 +305,12 @@ mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *A, for( size_t i = 0; i < limbs; i++ ) { - mbedtls_mpi_uint add = mask & B[i]; - mbedtls_mpi_uint t = c + A[i]; - c = ( t < A[i] ); + mbedtls_mpi_uint add = mask & A[i]; + mbedtls_mpi_uint t = c + X[i]; + c = ( t < X[i] ); t += add; c += ( t < add ); - A[i] = t; + X[i] = t; } return( c ); diff --git a/library/bignum_core.h b/library/bignum_core.h index 54819f7c00..adfb81aa2b 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -163,28 +163,28 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, * * ``` * if( cond ) - * A += B; + * X += A; * return carry; * ``` * - * \param[in,out] A The pointer to the (little-endian) array + * \param[in,out] X The pointer to the (little-endian) array * representing the bignum to accumulate onto. - * \param[in] B The pointer to the (little-endian) array + * \param[in] A The pointer to the (little-endian) array * representing the bignum to conditionally add - * to \p A. This may be aliased to \p A but may not + * to \p X. This may be aliased to \p X but may not * overlap otherwise. - * \param limbs Number of limbs of \p A and \p B. + * \param limbs Number of limbs of \p X and \p A. * \param cond Condition bit dictating whether addition should * happen or not. This must be \c 0 or \c 1. * * \warning If \p cond is neither 0 nor 1, the result of this function - * is unspecified, and the resulting value in \p A might be - * neither its original value nor \p A + \p B. + * is unspecified, and the resulting value in \p X might be + * neither its original value nor \p X + \p A. * - * \return 1 if `A + cond * B >= 2^(biL*limbs)`, 0 otherwise. + * \return 1 if `X + cond * A >= 2^(biL*limbs)`, 0 otherwise. */ -mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, +mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, size_t limbs, unsigned cond ); @@ -212,24 +212,24 @@ mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *X, size_t limbs ); /** - * \brief Perform a fixed-size multiply accumulate operation: A += c * B + * \brief Perform a fixed-size multiply accumulate operation: X += b * A * - * \param[in,out] A The pointer to the (little-endian) array + * \param[in,out] X The pointer to the (little-endian) array * representing the bignum to accumulate onto. - * \param A_limbs The number of limbs of \p A. This must be - * at least \p B_limbs. - * \param[in] B The pointer to the (little-endian) array + * \param X_limbs The number of limbs of \p X. This must be + * at least \p A_limbs. + * \param[in] A The pointer to the (little-endian) array * representing the bignum to multiply with. - * This may be aliased to \p A but may not overlap + * This may be aliased to \p X but may not overlap * otherwise. - * \param B_limbs The number of limbs of \p B. - * \param c A scalar to multiply with. + * \param A_limbs The number of limbs of \p A. + * \param b X scalar to multiply with. * * \return The carry at the end of the operation. */ -mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *A, size_t A_limbs, - const mbedtls_mpi_uint *B, size_t B_limbs, - mbedtls_mpi_uint c ); +mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *X, size_t X_limbs, + const mbedtls_mpi_uint *A, size_t A_limbs, + mbedtls_mpi_uint b ); /** * \brief Calculate initialisation value for fast Montgomery modular From 945b23c46f5e462e476490e1bf24494c5495729b Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Sep 2022 19:29:40 +0200 Subject: [PATCH 0283/1028] Include platform.h unconditionally: automatic part We used to include platform.h only when MBEDTLS_PLATFORM_C was enabled, and to define ad hoc replacements for mbedtls_xxx functions on a case-by-case basis when MBEDTLS_PLATFORM_C was disabled. The only reason for this complication was to allow building individual source modules without copying platform.h. This is not something we support or recommend anymore, so get rid of the complication: include platform.h unconditionally. There should be no change in behavior since just including the header should not change the behavior of a program. This commit replaces most occurrences of conditional inclusion of platform.h, using the following code: ``` perl -i -0777 -pe 's!#if.*\n#include "mbedtls/platform.h"\n(#else.*\n(#define (mbedtls|MBEDTLS)_.*\n|#include <(stdarg|stddef|stdio|stdlib|string|time)\.h>\n)*)?#endif.*!#include "mbedtls/platform.h"!mg' $(git grep -l '#include "mbedtls/platform.h"') ``` Signed-off-by: Gilles Peskine --- 3rdparty/everest/library/everest.c | 5 ----- library/aes.c | 5 ----- library/aria.c | 5 ----- library/asn1parse.c | 6 ------ library/asn1write.c | 6 ------ library/base64.c | 5 ----- library/bignum.c | 8 -------- library/bignum_core.c | 8 -------- library/bignum_mod.c | 8 -------- library/bignum_mod_raw.c | 8 -------- library/camellia.c | 5 ----- library/chacha20.c | 5 ----- library/chachapoly.c | 5 ----- library/cipher.c | 5 ----- library/cipher_wrap.c | 6 ------ library/ctr_drbg.c | 5 ----- library/debug.c | 9 --------- library/des.c | 5 ----- library/dhm.c | 8 -------- library/ecdsa.c | 6 ------ library/ecjpake.c | 5 ----- library/ecp.c | 8 -------- library/entropy.c | 7 ------- library/entropy_poll.c | 2 -- library/hmac_drbg.c | 5 ----- library/md.c | 6 ------ library/md5.c | 5 ----- library/mps_trace.h | 6 ------ library/net_sockets.c | 4 ---- library/nist_kw.c | 5 ----- library/oid.c | 4 ---- library/pem.c | 6 ------ library/pk_wrap.c | 6 ------ library/pkcs5.c | 5 ----- library/pkparse.c | 6 ------ library/pkwrite.c | 6 ------ library/poly1305.c | 5 ----- library/psa_crypto_slot_management.c | 5 ----- library/psa_crypto_storage.c | 6 ------ library/psa_its_file.c | 4 ---- library/ripemd160.c | 5 ----- library/rsa.c | 7 ------- library/sha1.c | 5 ----- library/sha256.c | 8 -------- library/sha512.c | 8 -------- library/ssl_cache.c | 6 ------ library/ssl_ciphersuites.c | 4 ---- library/ssl_client.c | 6 ------ library/ssl_cookie.c | 5 ----- library/ssl_msg.c | 6 ------ library/ssl_ticket.c | 6 ------ library/ssl_tls.c | 8 -------- library/ssl_tls12_client.c | 6 ------ library/ssl_tls12_server.c | 6 ------ library/ssl_tls13_server.c | 6 ------ library/x509.c | 9 --------- library/x509_crl.c | 8 -------- library/x509_crt.c | 8 -------- library/x509_csr.c | 8 -------- library/x509write_csr.c | 6 ------ programs/aes/crypt_and_hash.c | 10 ---------- programs/hash/generic_sum.c | 10 ---------- programs/hash/hello.c | 9 --------- programs/pkey/dh_client.c | 10 ---------- programs/pkey/dh_genprime.c | 10 ---------- programs/pkey/dh_server.c | 10 ---------- programs/pkey/ecdh_curve25519.c | 9 --------- programs/pkey/ecdsa.c | 9 --------- programs/pkey/gen_key.c | 9 --------- programs/pkey/key_app.c | 9 --------- programs/pkey/key_app_writer.c | 9 --------- programs/pkey/mpi_demo.c | 9 --------- programs/pkey/pk_decrypt.c | 9 --------- programs/pkey/pk_encrypt.c | 10 ---------- programs/pkey/pk_sign.c | 10 ---------- programs/pkey/pk_verify.c | 10 ---------- programs/pkey/rsa_decrypt.c | 9 --------- programs/pkey/rsa_encrypt.c | 10 ---------- programs/pkey/rsa_genkey.c | 9 --------- programs/pkey/rsa_sign.c | 11 ----------- programs/pkey/rsa_sign_pss.c | 10 ---------- programs/pkey/rsa_verify.c | 10 ---------- programs/pkey/rsa_verify_pss.c | 10 ---------- programs/random/gen_entropy.c | 10 ---------- programs/random/gen_random_ctr_drbg.c | 10 ---------- programs/ssl/dtls_client.c | 10 ---------- programs/ssl/dtls_server.c | 11 ----------- programs/ssl/mini_client.c | 9 --------- programs/ssl/ssl_client1.c | 12 ------------ programs/ssl/ssl_fork_server.c | 11 ----------- programs/ssl/ssl_mail_client.c | 12 ------------ programs/ssl/ssl_pthread_server.c | 11 ----------- programs/ssl/ssl_server.c | 12 ------------ programs/ssl/ssl_test_lib.h | 16 ---------------- programs/test/cmake_package/cmake_package.c | 10 ---------- .../cmake_package_install.c | 10 ---------- .../test/cmake_subproject/cmake_subproject.c | 10 ---------- programs/test/dlopen.c | 10 ---------- programs/test/query_compile_time_config.c | 7 ------- programs/test/selftest.c | 12 ------------ programs/test/zeroize.c | 8 -------- programs/util/pem2der.c | 11 ----------- programs/util/strerror.c | 7 ------- programs/x509/cert_app.c | 12 ------------ programs/x509/cert_req.c | 9 --------- programs/x509/cert_write.c | 9 --------- programs/x509/crl_app.c | 9 --------- programs/x509/load_roots.c | 12 ------------ programs/x509/req_app.c | 9 --------- scripts/data_files/error.fmt | 4 ---- scripts/data_files/query_config.fmt | 5 ----- tests/include/test/helpers.h | 13 ------------- tests/include/test/macros.h | 13 ------------- tests/suites/helpers.function | 13 ------------- 114 files changed, 898 deletions(-) diff --git a/3rdparty/everest/library/everest.c b/3rdparty/everest/library/everest.c index 82c4e03adb..fefc6a2ce4 100644 --- a/3rdparty/everest/library/everest.c +++ b/3rdparty/everest/library/everest.c @@ -28,12 +28,7 @@ #include "everest/x25519.h" #include "everest/everest.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) diff --git a/library/aes.c b/library/aes.c index ca94e0a168..872930f2ac 100644 --- a/library/aes.c +++ b/library/aes.c @@ -41,12 +41,7 @@ #endif #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_AES_ALT) diff --git a/library/aria.c b/library/aria.c index bc05c4a319..cfa69c2ad6 100644 --- a/library/aria.c +++ b/library/aria.c @@ -32,12 +32,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_ARIA_ALT) diff --git a/library/asn1parse.c b/library/asn1parse.c index 83c7c58a12..d874fff469 100644 --- a/library/asn1parse.c +++ b/library/asn1parse.c @@ -31,13 +31,7 @@ #include "mbedtls/bignum.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif /* * ASN.1 DER decoding routines diff --git a/library/asn1write.c b/library/asn1write.c index 053dbb669f..f1adcb55f5 100644 --- a/library/asn1write.c +++ b/library/asn1write.c @@ -26,13 +26,7 @@ #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif int mbedtls_asn1_write_len( unsigned char **p, const unsigned char *start, size_t len ) { diff --git a/library/base64.c b/library/base64.c index 83daa0bcc6..9021a041bb 100644 --- a/library/base64.c +++ b/library/base64.c @@ -28,12 +28,7 @@ #if defined(MBEDTLS_SELF_TEST) #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #define BASE64_SIZE_T_MAX ( (size_t) -1 ) /* SIZE_T_MAX is not standard */ diff --git a/library/bignum.c b/library/bignum.c index acf620f9a2..24b6abe634 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -48,15 +48,7 @@ #include #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #define MPI_VALIDATE_RET( cond ) \ MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_MPI_BAD_INPUT_DATA ) diff --git a/library/bignum_core.c b/library/bignum_core.c index 8e89766a72..4471a4db7e 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -26,15 +26,7 @@ #include "mbedtls/error.h" #include "mbedtls/platform_util.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "bignum_core.h" diff --git a/library/bignum_mod.c b/library/bignum_mod.c index de2809372c..f2c11a582a 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -27,15 +27,7 @@ #include "mbedtls/error.h" #include "mbedtls/bignum.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "bignum_core.h" #include "bignum_mod.h" diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 8c89b2cdf7..e1c96d612b 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -26,15 +26,7 @@ #include "mbedtls/error.h" #include "mbedtls/platform_util.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "bignum_core.h" #include "bignum_mod_raw.h" diff --git a/library/camellia.c b/library/camellia.c index 29d730ab53..24651a9a88 100644 --- a/library/camellia.c +++ b/library/camellia.c @@ -33,12 +33,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_CAMELLIA_ALT) diff --git a/library/chacha20.c b/library/chacha20.c index 658f046901..f92e5074a7 100644 --- a/library/chacha20.c +++ b/library/chacha20.c @@ -33,12 +33,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_CHACHA20_ALT) diff --git a/library/chachapoly.c b/library/chachapoly.c index dc75b2030a..9ae043b3b5 100644 --- a/library/chachapoly.c +++ b/library/chachapoly.c @@ -29,12 +29,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_CHACHAPOLY_ALT) diff --git a/library/cipher.c b/library/cipher.c index 0bac4ee993..4de290a469 100644 --- a/library/cipher.c +++ b/library/cipher.c @@ -63,12 +63,7 @@ #include "mbedtls/nist_kw.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #define CIPHER_VALIDATE_RET( cond ) \ MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ) diff --git a/library/cipher_wrap.c b/library/cipher_wrap.c index 7da7d9d522..8e395b3014 100644 --- a/library/cipher_wrap.c +++ b/library/cipher_wrap.c @@ -68,13 +68,7 @@ #include #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #if defined(MBEDTLS_GCM_C) /* shared by all GCM ciphers */ diff --git a/library/ctr_drbg.c b/library/ctr_drbg.c index 8919c78a10..d55f9a4795 100644 --- a/library/ctr_drbg.c +++ b/library/ctr_drbg.c @@ -37,12 +37,7 @@ #endif #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ /* diff --git a/library/debug.c b/library/debug.c index fa60d13f30..bdbf6dd11e 100644 --- a/library/debug.c +++ b/library/debug.c @@ -21,16 +21,7 @@ #if defined(MBEDTLS_DEBUG_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#define mbedtls_time_t time_t -#define mbedtls_snprintf snprintf -#define mbedtls_vsnprintf vsnprintf -#endif #include "mbedtls/debug.h" #include "mbedtls/error.h" diff --git a/library/des.c b/library/des.c index 91d22b5d90..0576099ce8 100644 --- a/library/des.c +++ b/library/des.c @@ -34,12 +34,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_DES_ALT) diff --git a/library/dhm.c b/library/dhm.c index 1e95bdab03..c01388e712 100644 --- a/library/dhm.c +++ b/library/dhm.c @@ -43,15 +43,7 @@ #include "mbedtls/asn1.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #if !defined(MBEDTLS_DHM_ALT) diff --git a/library/ecdsa.c b/library/ecdsa.c index dcdf83c7a5..c58e33155f 100644 --- a/library/ecdsa.c +++ b/library/ecdsa.c @@ -36,13 +36,7 @@ #include "mbedtls/hmac_drbg.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "mbedtls/platform_util.h" #include "mbedtls/error.h" diff --git a/library/ecjpake.c b/library/ecjpake.c index 308c1af3ee..6cb70c022b 100644 --- a/library/ecjpake.c +++ b/library/ecjpake.c @@ -815,12 +815,7 @@ cleanup: #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif #if !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || \ !defined(MBEDTLS_SHA256_C) diff --git a/library/ecp.c b/library/ecp.c index 009be61fc5..ee6c24a466 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -84,15 +84,7 @@ #if !defined(MBEDTLS_ECP_ALT) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "ecp_internal_alt.h" diff --git a/library/entropy.c b/library/entropy.c index 08c5bd7d16..12184d6704 100644 --- a/library/entropy.c +++ b/library/entropy.c @@ -32,17 +32,10 @@ #include #endif -#if defined(MBEDTLS_ENTROPY_NV_SEED) #include "mbedtls/platform.h" -#endif #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/entropy_poll.c b/library/entropy_poll.c index 2ae57fdc09..2df9bbec9d 100644 --- a/library/entropy_poll.c +++ b/library/entropy_poll.c @@ -35,9 +35,7 @@ #if defined(MBEDTLS_TIMING_C) #include "mbedtls/timing.h" #endif -#if defined(MBEDTLS_ENTROPY_NV_SEED) || !defined(HAVE_SYSCTL_ARND) #include "mbedtls/platform.h" -#endif #if !defined(MBEDTLS_NO_PLATFORM_ENTROPY) diff --git a/library/hmac_drbg.c b/library/hmac_drbg.c index 8b13a860f7..3c89f5749d 100644 --- a/library/hmac_drbg.c +++ b/library/hmac_drbg.c @@ -38,12 +38,7 @@ #endif #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_SELF_TEST */ #endif /* MBEDTLS_PLATFORM_C */ /* diff --git a/library/md.c b/library/md.c index a387da50a9..8efcf105b4 100644 --- a/library/md.c +++ b/library/md.c @@ -36,13 +36,7 @@ #include "mbedtls/sha256.h" #include "mbedtls/sha512.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include diff --git a/library/md5.c b/library/md5.c index a9bbcb488b..a01b6dd299 100644 --- a/library/md5.c +++ b/library/md5.c @@ -33,12 +33,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_MD5_ALT) diff --git a/library/mps_trace.h b/library/mps_trace.h index 7c2360118a..820a1b66c2 100644 --- a/library/mps_trace.h +++ b/library/mps_trace.h @@ -30,13 +30,7 @@ #include "mps_common.h" #include "mps_trace.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#define mbedtls_vsnprintf vsnprintf -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_MPS_ENABLE_TRACE) diff --git a/library/net_sockets.c b/library/net_sockets.c index d1700f3bbf..637b9f8d8e 100644 --- a/library/net_sockets.c +++ b/library/net_sockets.c @@ -37,11 +37,7 @@ #error "This module only works on Unix and Windows, see MBEDTLS_NET_C in mbedtls_config.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#endif #include "mbedtls/net_sockets.h" #include "mbedtls/error.h" diff --git a/library/nist_kw.c b/library/nist_kw.c index 1aea0b6345..6be6998dcf 100644 --- a/library/nist_kw.c +++ b/library/nist_kw.c @@ -40,12 +40,7 @@ #include #if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_AES_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */ #if !defined(MBEDTLS_NIST_KW_ALT) diff --git a/library/oid.c b/library/oid.c index 4ecf621842..9a20a2782e 100644 --- a/library/oid.c +++ b/library/oid.c @@ -32,11 +32,7 @@ #include #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#define mbedtls_snprintf snprintf -#endif /* * Macro to automatically add the size of #define'd OIDs diff --git a/library/pem.c b/library/pem.c index f2ee5ca35c..1e2e2c13dd 100644 --- a/library/pem.c +++ b/library/pem.c @@ -33,13 +33,7 @@ #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #if defined(MBEDTLS_USE_PSA_CRYPTO) #include "psa/crypto.h" diff --git a/library/pk_wrap.c b/library/pk_wrap.c index 2d4f4f2218..5de8fa65f7 100644 --- a/library/pk_wrap.c +++ b/library/pk_wrap.c @@ -55,13 +55,7 @@ #include "hash_info.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include #include diff --git a/library/pkcs5.c b/library/pkcs5.c index 847496d184..ac5945a114 100644 --- a/library/pkcs5.c +++ b/library/pkcs5.c @@ -42,12 +42,7 @@ #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif #include "hash_info.h" #include "mbedtls/psa_util.h" diff --git a/library/pkparse.c b/library/pkparse.c index 73d59a6bbe..9b6516511a 100644 --- a/library/pkparse.c +++ b/library/pkparse.c @@ -48,13 +48,7 @@ #include "mbedtls/pkcs12.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif /* Parameter validation macros based on platform_util.h */ #define PK_VALIDATE_RET( cond ) \ diff --git a/library/pkwrite.c b/library/pkwrite.c index 8b99340507..c198e6c322 100644 --- a/library/pkwrite.c +++ b/library/pkwrite.c @@ -51,13 +51,7 @@ #include "psa/crypto.h" #include "mbedtls/psa_util.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif /* Parameter validation macros based on platform_util.h */ #define PK_VALIDATE_RET( cond ) \ diff --git a/library/poly1305.c b/library/poly1305.c index 7375a0c572..a2b223303d 100644 --- a/library/poly1305.c +++ b/library/poly1305.c @@ -29,12 +29,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_POLY1305_ALT) diff --git a/library/psa_crypto_slot_management.c b/library/psa_crypto_slot_management.c index a18350ee11..9dceaac6d4 100644 --- a/library/psa_crypto_slot_management.c +++ b/library/psa_crypto_slot_management.c @@ -34,12 +34,7 @@ #include #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #define ARRAY_LENGTH( array ) ( sizeof( array ) / sizeof( *( array ) ) ) diff --git a/library/psa_crypto_storage.c b/library/psa_crypto_storage.c index db7786d6c7..3186a36855 100644 --- a/library/psa_crypto_storage.c +++ b/library/psa_crypto_storage.c @@ -36,13 +36,7 @@ #include "psa/internal_trusted_storage.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif diff --git a/library/psa_its_file.c b/library/psa_its_file.c index b7c2e6b040..a35ac2494d 100644 --- a/library/psa_its_file.c +++ b/library/psa_its_file.c @@ -22,11 +22,7 @@ #if defined(MBEDTLS_PSA_ITS_FILE_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#define mbedtls_snprintf snprintf -#endif #if defined(_WIN32) #include diff --git a/library/ripemd160.c b/library/ripemd160.c index 41d8387226..1c7e17ff36 100644 --- a/library/ripemd160.c +++ b/library/ripemd160.c @@ -34,12 +34,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_RIPEMD160_ALT) diff --git a/library/rsa.c b/library/rsa.c index e59755534f..df6d59c1bc 100644 --- a/library/rsa.c +++ b/library/rsa.c @@ -63,14 +63,7 @@ #endif /* MBEDTLS_MD_C */ #endif /* MBEDTLS_PKCS1_V21 */ -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #if !defined(MBEDTLS_RSA_ALT) diff --git a/library/sha1.c b/library/sha1.c index 6fc9371231..4f65e23fd8 100644 --- a/library/sha1.c +++ b/library/sha1.c @@ -33,12 +33,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #define SHA1_VALIDATE_RET(cond) \ diff --git a/library/sha256.c b/library/sha256.c index ac15ef8d1d..2e65e6fd85 100644 --- a/library/sha256.c +++ b/library/sha256.c @@ -33,15 +33,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if defined(__aarch64__) diff --git a/library/sha512.c b/library/sha512.c index be03ec3316..beb548acea 100644 --- a/library/sha512.c +++ b/library/sha512.c @@ -39,15 +39,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if defined(__aarch64__) diff --git a/library/ssl_cache.c b/library/ssl_cache.c index 6505e11402..8405d2798f 100644 --- a/library/ssl_cache.c +++ b/library/ssl_cache.c @@ -25,13 +25,7 @@ #if defined(MBEDTLS_SSL_CACHE_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "mbedtls/ssl_cache.h" #include "ssl_misc.h" diff --git a/library/ssl_ciphersuites.c b/library/ssl_ciphersuites.c index dc50449631..591beb866a 100644 --- a/library/ssl_ciphersuites.c +++ b/library/ssl_ciphersuites.c @@ -23,11 +23,7 @@ #if defined(MBEDTLS_SSL_TLS_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#endif #include "mbedtls/ssl_ciphersuites.h" #include "mbedtls/ssl.h" diff --git a/library/ssl_client.c b/library/ssl_client.c index e7453d5730..b4c645a164 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -24,13 +24,7 @@ #if defined(MBEDTLS_SSL_CLI_C) #if defined(MBEDTLS_SSL_PROTO_TLS1_3) || defined(MBEDTLS_SSL_PROTO_TLS1_2) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include diff --git a/library/ssl_cookie.c b/library/ssl_cookie.c index 8777833b9c..1c0cbe0c88 100644 --- a/library/ssl_cookie.c +++ b/library/ssl_cookie.c @@ -25,12 +25,7 @@ #if defined(MBEDTLS_SSL_COOKIE_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "mbedtls/ssl_cookie.h" #include "ssl_misc.h" diff --git a/library/ssl_msg.c b/library/ssl_msg.c index dbef29b3f9..5ceb145c97 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -26,13 +26,7 @@ #if defined(MBEDTLS_SSL_TLS_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "mbedtls/ssl.h" #include "ssl_misc.h" diff --git a/library/ssl_ticket.c b/library/ssl_ticket.c index 359686afa3..e39563bc4f 100644 --- a/library/ssl_ticket.c +++ b/library/ssl_ticket.c @@ -21,13 +21,7 @@ #if defined(MBEDTLS_SSL_TICKET_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "ssl_misc.h" #include "mbedtls/ssl_ticket.h" diff --git a/library/ssl_tls.c b/library/ssl_tls.c index af65e6d866..173ae25910 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -27,15 +27,7 @@ #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#define mbedtls_printf printf -#endif /* !MBEDTLS_PLATFORM_C */ #include "mbedtls/ssl.h" #include "ssl_client.h" diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index d1ec55cfcb..7b62e71a55 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -21,13 +21,7 @@ #if defined(MBEDTLS_SSL_CLI_C) && defined(MBEDTLS_SSL_PROTO_TLS1_2) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "mbedtls/ssl.h" #include "ssl_client.h" diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index 997f5848ea..66c61a3aa8 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -21,13 +21,7 @@ #if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_SSL_PROTO_TLS1_2) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "mbedtls/ssl.h" #include "ssl_misc.h" diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index a10e59bbc1..ee0ffab199 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -34,13 +34,7 @@ #include "mbedtls/ecp.h" #endif /* MBEDTLS_ECP_C */ -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif /* MBEDTLS_PLATFORM_C */ #include "ssl_misc.h" #include "ssl_tls13_keys.h" diff --git a/library/x509.c b/library/x509.c index aa3951799c..6fe0410a3f 100644 --- a/library/x509.c +++ b/library/x509.c @@ -43,16 +43,7 @@ #include "mbedtls/pem.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_free free -#define mbedtls_calloc calloc -#define mbedtls_printf printf -#define mbedtls_snprintf snprintf -#endif #if defined(MBEDTLS_HAVE_TIME) #include "mbedtls/platform_time.h" diff --git a/library/x509_crl.c b/library/x509_crl.c index 0cd996dabb..2a3fac7900 100644 --- a/library/x509_crl.c +++ b/library/x509_crl.c @@ -42,15 +42,7 @@ #include "mbedtls/pem.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_free free -#define mbedtls_calloc calloc -#define mbedtls_snprintf snprintf -#endif #if defined(MBEDTLS_HAVE_TIME) #if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) diff --git a/library/x509_crt.c b/library/x509_crt.c index af1e487dbf..c4f97bbe2b 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -50,15 +50,7 @@ #endif /* MBEDTLS_USE_PSA_CRYPTO */ #include "hash_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_free free -#define mbedtls_calloc calloc -#define mbedtls_snprintf snprintf -#endif #if defined(MBEDTLS_THREADING_C) #include "mbedtls/threading.h" diff --git a/library/x509_csr.c b/library/x509_csr.c index 25069b2a4c..dee0ea62d7 100644 --- a/library/x509_csr.c +++ b/library/x509_csr.c @@ -42,15 +42,7 @@ #include "mbedtls/pem.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_free free -#define mbedtls_calloc calloc -#define mbedtls_snprintf snprintf -#endif #if defined(MBEDTLS_FS_IO) || defined(EFIX64) || defined(EFI32) #include diff --git a/library/x509write_csr.c b/library/x509write_csr.c index c4dd1b7c81..976f6e6df5 100644 --- a/library/x509write_csr.c +++ b/library/x509write_csr.c @@ -45,13 +45,7 @@ #include "mbedtls/pem.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif void mbedtls_x509write_csr_init( mbedtls_x509write_csr *ctx ) { diff --git a/programs/aes/crypt_and_hash.c b/programs/aes/crypt_and_hash.c index 136e25ba41..476c20e226 100644 --- a/programs/aes/crypt_and_hash.c +++ b/programs/aes/crypt_and_hash.c @@ -25,17 +25,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_CIPHER_C) && defined(MBEDTLS_MD_C) && \ defined(MBEDTLS_FS_IO) diff --git a/programs/hash/generic_sum.c b/programs/hash/generic_sum.c index f38a9769d2..6f49e79bea 100644 --- a/programs/hash/generic_sum.c +++ b/programs/hash/generic_sum.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_MD_C) && defined(MBEDTLS_FS_IO) #include "mbedtls/md.h" diff --git a/programs/hash/hello.c b/programs/hash/hello.c index cb8de8b71e..3ef0652636 100644 --- a/programs/hash/hello.c +++ b/programs/hash/hello.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #if defined(MBEDTLS_MD5_C) #include "mbedtls/md5.h" diff --git a/programs/pkey/dh_client.c b/programs/pkey/dh_client.c index 45de57b46f..3619cb2165 100644 --- a/programs/pkey/dh_client.c +++ b/programs/pkey/dh_client.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_time_t time_t -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_AES_C) && defined(MBEDTLS_DHM_C) && \ defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_NET_C) && \ diff --git a/programs/pkey/dh_genprime.c b/programs/pkey/dh_genprime.c index 9ada4eae12..2e696e574a 100644 --- a/programs/pkey/dh_genprime.c +++ b/programs/pkey/dh_genprime.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_time_t time_t -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_CTR_DRBG_C) || \ diff --git a/programs/pkey/dh_server.c b/programs/pkey/dh_server.c index 29563088ff..e6f53ed623 100644 --- a/programs/pkey/dh_server.c +++ b/programs/pkey/dh_server.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_time_t time_t -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_AES_C) && defined(MBEDTLS_DHM_C) && \ defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_NET_C) && \ diff --git a/programs/pkey/ecdh_curve25519.c b/programs/pkey/ecdh_curve25519.c index 281a26b0d7..5dd6bddb40 100644 --- a/programs/pkey/ecdh_curve25519.c +++ b/programs/pkey/ecdh_curve25519.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_ECDH_C) || \ !defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) || \ diff --git a/programs/pkey/ecdsa.c b/programs/pkey/ecdsa.c index c1c50702bb..1035bb2733 100644 --- a/programs/pkey/ecdsa.c +++ b/programs/pkey/ecdsa.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_ECDSA_C) && \ defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_CTR_DRBG_C) diff --git a/programs/pkey/gen_key.c b/programs/pkey/gen_key.c index 8779519b61..9e5329fb81 100644 --- a/programs/pkey/gen_key.c +++ b/programs/pkey/gen_key.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_PK_WRITE_C) && defined(MBEDTLS_FS_IO) && \ defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_CTR_DRBG_C) diff --git a/programs/pkey/key_app.c b/programs/pkey/key_app.c index bd16b24b94..02a19e95a4 100644 --- a/programs/pkey/key_app.c +++ b/programs/pkey/key_app.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_BIGNUM_C) && \ defined(MBEDTLS_PK_PARSE_C) && defined(MBEDTLS_FS_IO) && \ diff --git a/programs/pkey/key_app_writer.c b/programs/pkey/key_app_writer.c index df1e502488..589bee9aed 100644 --- a/programs/pkey/key_app_writer.c +++ b/programs/pkey/key_app_writer.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_PK_PARSE_C) && defined(MBEDTLS_PK_WRITE_C) && \ defined(MBEDTLS_FS_IO) && \ diff --git a/programs/pkey/mpi_demo.c b/programs/pkey/mpi_demo.c index eed8dfcfc6..4c34b99e7b 100644 --- a/programs/pkey/mpi_demo.c +++ b/programs/pkey/mpi_demo.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_FS_IO) #include "mbedtls/bignum.h" diff --git a/programs/pkey/pk_decrypt.c b/programs/pkey/pk_decrypt.c index b09b6b8895..0d8388f2b8 100644 --- a/programs/pkey/pk_decrypt.c +++ b/programs/pkey/pk_decrypt.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_PK_PARSE_C) && \ defined(MBEDTLS_FS_IO) && defined(MBEDTLS_ENTROPY_C) && \ diff --git a/programs/pkey/pk_encrypt.c b/programs/pkey/pk_encrypt.c index 3df11f7fde..5d45738dd3 100644 --- a/programs/pkey/pk_encrypt.c +++ b/programs/pkey/pk_encrypt.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_PK_PARSE_C) && \ defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_FS_IO) && \ diff --git a/programs/pkey/pk_sign.c b/programs/pkey/pk_sign.c index 7b5d8e1716..301edb875a 100644 --- a/programs/pkey/pk_sign.c +++ b/programs/pkey/pk_sign.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_snprintf snprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_SHA256_C) || !defined(MBEDTLS_MD_C) || \ diff --git a/programs/pkey/pk_verify.c b/programs/pkey/pk_verify.c index e82653b514..6b9645221f 100644 --- a/programs/pkey/pk_verify.c +++ b/programs/pkey/pk_verify.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_snprintf snprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_MD_C) || \ !defined(MBEDTLS_SHA256_C) || !defined(MBEDTLS_PK_PARSE_C) || \ diff --git a/programs/pkey/rsa_decrypt.c b/programs/pkey/rsa_decrypt.c index c01a5cf633..783f3ca549 100644 --- a/programs/pkey/rsa_decrypt.c +++ b/programs/pkey/rsa_decrypt.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_RSA_C) && \ defined(MBEDTLS_FS_IO) && defined(MBEDTLS_ENTROPY_C) && \ diff --git a/programs/pkey/rsa_encrypt.c b/programs/pkey/rsa_encrypt.c index 25a42d323d..777b22e791 100644 --- a/programs/pkey/rsa_encrypt.c +++ b/programs/pkey/rsa_encrypt.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_RSA_C) && \ defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_FS_IO) && \ diff --git a/programs/pkey/rsa_genkey.c b/programs/pkey/rsa_genkey.c index 67711bd660..7acda81394 100644 --- a/programs/pkey/rsa_genkey.c +++ b/programs/pkey/rsa_genkey.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_ENTROPY_C) && \ defined(MBEDTLS_RSA_C) && defined(MBEDTLS_GENPRIME) && \ diff --git a/programs/pkey/rsa_sign.c b/programs/pkey/rsa_sign.c index 1df9b13b19..f4deab029f 100644 --- a/programs/pkey/rsa_sign.c +++ b/programs/pkey/rsa_sign.c @@ -19,18 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_snprintf snprintf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_SHA256_C) || !defined(MBEDTLS_MD_C) || \ diff --git a/programs/pkey/rsa_sign_pss.c b/programs/pkey/rsa_sign_pss.c index 8078ab6246..0cbde02248 100644 --- a/programs/pkey/rsa_sign_pss.c +++ b/programs/pkey/rsa_sign_pss.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_snprintf snprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_MD_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_SHA256_C) || \ diff --git a/programs/pkey/rsa_verify.c b/programs/pkey/rsa_verify.c index a8b1abb848..a3fa6d7d15 100644 --- a/programs/pkey/rsa_verify.c +++ b/programs/pkey/rsa_verify.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_snprintf snprintf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_SHA256_C) || !defined(MBEDTLS_MD_C) || \ diff --git a/programs/pkey/rsa_verify_pss.c b/programs/pkey/rsa_verify_pss.c index 3a207785c4..7dcccda9fa 100644 --- a/programs/pkey/rsa_verify_pss.c +++ b/programs/pkey/rsa_verify_pss.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_snprintf snprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_MD_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_SHA256_C) || \ diff --git a/programs/random/gen_entropy.c b/programs/random/gen_entropy.c index 4deb92435d..f0ffea2ce5 100644 --- a/programs/random/gen_entropy.c +++ b/programs/random/gen_entropy.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_FS_IO) #include "mbedtls/entropy.h" diff --git a/programs/random/gen_random_ctr_drbg.c b/programs/random/gen_random_ctr_drbg.c index 0a9e2dd3bf..2a3dd54e83 100644 --- a/programs/random/gen_random_ctr_drbg.c +++ b/programs/random/gen_random_ctr_drbg.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_CTR_DRBG_C) && defined(MBEDTLS_ENTROPY_C) && \ defined(MBEDTLS_FS_IO) diff --git a/programs/ssl/dtls_client.c b/programs/ssl/dtls_client.c index e06d535eec..23a34e0498 100644 --- a/programs/ssl/dtls_client.c +++ b/programs/ssl/dtls_client.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_fprintf fprintf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #if !defined(MBEDTLS_SSL_CLI_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) || \ !defined(MBEDTLS_NET_C) || !defined(MBEDTLS_TIMING_C) || \ diff --git a/programs/ssl/dtls_server.c b/programs/ssl/dtls_server.c index 9317449371..10d82ba87e 100644 --- a/programs/ssl/dtls_server.c +++ b/programs/ssl/dtls_server.c @@ -19,18 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_fprintf fprintf -#define mbedtls_time_t time_t -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* Uncomment out the following line to default to IPv4 and disable IPv6 */ //#define FORCE_IPV4 diff --git a/programs/ssl/mini_client.c b/programs/ssl/mini_client.c index 8f2fed82af..efcf650165 100644 --- a/programs/ssl/mini_client.c +++ b/programs/ssl/mini_client.c @@ -20,16 +20,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* * We're creating and connecting the socket "manually" rather than using the diff --git a/programs/ssl/ssl_client1.c b/programs/ssl/ssl_client1.c index a80ff713c0..5025698a85 100644 --- a/programs/ssl/ssl_client1.c +++ b/programs/ssl/ssl_client1.c @@ -19,19 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_time time -#define mbedtls_time_t time_t -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_CLI_C) || \ diff --git a/programs/ssl/ssl_fork_server.c b/programs/ssl/ssl_fork_server.c index 07b3e6fb59..49de984d8f 100644 --- a/programs/ssl/ssl_fork_server.c +++ b/programs/ssl/ssl_fork_server.c @@ -19,18 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_time_t time_t -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_SRV_C) || \ diff --git a/programs/ssl/ssl_mail_client.c b/programs/ssl/ssl_mail_client.c index 664a38490f..9fb65079e5 100644 --- a/programs/ssl/ssl_mail_client.c +++ b/programs/ssl/ssl_mail_client.c @@ -26,19 +26,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_time time -#define mbedtls_time_t time_t -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_CLI_C) || \ diff --git a/programs/ssl/ssl_pthread_server.c b/programs/ssl/ssl_pthread_server.c index ac14789d39..b3ec7d6998 100644 --- a/programs/ssl/ssl_pthread_server.c +++ b/programs/ssl/ssl_pthread_server.c @@ -20,18 +20,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_snprintf snprintf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_SRV_C) || \ diff --git a/programs/ssl/ssl_server.c b/programs/ssl/ssl_server.c index 3b663726ce..c9d9df2efa 100644 --- a/programs/ssl/ssl_server.c +++ b/programs/ssl/ssl_server.c @@ -19,19 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_time time -#define mbedtls_time_t time_t -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_PEM_PARSE_C) || \ !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_SSL_TLS_C) || \ diff --git a/programs/ssl/ssl_test_lib.h b/programs/ssl/ssl_test_lib.h index c368f573af..659b3ab2c8 100644 --- a/programs/ssl/ssl_test_lib.h +++ b/programs/ssl/ssl_test_lib.h @@ -22,23 +22,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#define mbedtls_time time -#define mbedtls_time_t time_t -#define mbedtls_printf printf -#define mbedtls_fprintf fprintf -#define mbedtls_snprintf snprintf -#define mbedtls_setbuf setbuf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #undef HAVE_RNG #if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) && \ diff --git a/programs/test/cmake_package/cmake_package.c b/programs/test/cmake_package/cmake_package.c index 1ae627d423..4105d2b351 100644 --- a/programs/test/cmake_package/cmake_package.c +++ b/programs/test/cmake_package/cmake_package.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #include "mbedtls/version.h" diff --git a/programs/test/cmake_package_install/cmake_package_install.c b/programs/test/cmake_package_install/cmake_package_install.c index 9d5d3e4c73..48fb559f67 100644 --- a/programs/test/cmake_package_install/cmake_package_install.c +++ b/programs/test/cmake_package_install/cmake_package_install.c @@ -20,17 +20,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #include "mbedtls/version.h" diff --git a/programs/test/cmake_subproject/cmake_subproject.c b/programs/test/cmake_subproject/cmake_subproject.c index ff6ebf02e2..b1d005cd73 100644 --- a/programs/test/cmake_subproject/cmake_subproject.c +++ b/programs/test/cmake_subproject/cmake_subproject.c @@ -20,17 +20,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #include "mbedtls/version.h" diff --git a/programs/test/dlopen.c b/programs/test/dlopen.c index c0836046a3..ff61fcde01 100644 --- a/programs/test/dlopen.c +++ b/programs/test/dlopen.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #if defined(MBEDTLS_X509_CRT_PARSE_C) #include "mbedtls/x509_crt.h" diff --git a/programs/test/query_compile_time_config.c b/programs/test/query_compile_time_config.c index 5aa023348e..f37973cb2e 100644 --- a/programs/test/query_compile_time_config.c +++ b/programs/test/query_compile_time_config.c @@ -19,14 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #define USAGE \ "usage: %s [ -all | -any | -l ] ...\n\n" \ diff --git a/programs/test/selftest.c b/programs/test/selftest.c index ab337a21ff..2d6103c31d 100644 --- a/programs/test/selftest.c +++ b/programs/test/selftest.c @@ -54,19 +54,7 @@ #include #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#define mbedtls_printf printf -#define mbedtls_snprintf snprintf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) #include "mbedtls/memory_buffer_alloc.h" diff --git a/programs/test/zeroize.c b/programs/test/zeroize.c index d6e55614f4..979b5515f4 100644 --- a/programs/test/zeroize.c +++ b/programs/test/zeroize.c @@ -29,15 +29,7 @@ #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #include "mbedtls/platform_util.h" diff --git a/programs/util/pem2der.c b/programs/util/pem2der.c index cf6a56c6cf..7138fa8544 100644 --- a/programs/util/pem2der.c +++ b/programs/util/pem2der.c @@ -19,18 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_free free -#define mbedtls_calloc calloc -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_BASE64_C) && defined(MBEDTLS_FS_IO) #include "mbedtls/error.h" diff --git a/programs/util/strerror.c b/programs/util/strerror.c index f91da1307c..66052fdabc 100644 --- a/programs/util/strerror.c +++ b/programs/util/strerror.c @@ -19,14 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#endif #if defined(MBEDTLS_ERROR_C) || defined(MBEDTLS_ERROR_STRERROR_DUMMY) #include "mbedtls/error.h" diff --git a/programs/x509/cert_app.c b/programs/x509/cert_app.c index 985b9704c3..00d563fc7d 100644 --- a/programs/x509/cert_app.c +++ b/programs/x509/cert_app.c @@ -19,19 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_time time -#define mbedtls_time_t time_t -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_CLI_C) || \ diff --git a/programs/x509/cert_req.c b/programs/x509/cert_req.c index 7460bbf1c0..30b389ab4b 100644 --- a/programs/x509/cert_req.c +++ b/programs/x509/cert_req.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_X509_CSR_WRITE_C) || !defined(MBEDTLS_FS_IO) || \ !defined(MBEDTLS_PK_PARSE_C) || !defined(MBEDTLS_SHA256_C) || \ diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 793982d5a8..c93ff1e986 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_X509_CRT_WRITE_C) || \ !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_FS_IO) || \ diff --git a/programs/x509/crl_app.c b/programs/x509/crl_app.c index aa353be0ae..28cb99e6ea 100644 --- a/programs/x509/crl_app.c +++ b/programs/x509/crl_app.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_X509_CRL_PARSE_C) || !defined(MBEDTLS_FS_IO) || \ diff --git a/programs/x509/load_roots.c b/programs/x509/load_roots.c index e07bed7211..b8b0ecdee5 100644 --- a/programs/x509/load_roots.c +++ b/programs/x509/load_roots.c @@ -46,19 +46,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_time time -#define mbedtls_time_t time_t -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_FS_IO) || \ !defined(MBEDTLS_TIMING_C) diff --git a/programs/x509/req_app.c b/programs/x509/req_app.c index 24324ff3d6..dda14e1e36 100644 --- a/programs/x509/req_app.c +++ b/programs/x509/req_app.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_X509_CSR_PARSE_C) || !defined(MBEDTLS_FS_IO) || \ diff --git a/scripts/data_files/error.fmt b/scripts/data_files/error.fmt index c42d2ffefd..fc210b9084 100644 --- a/scripts/data_files/error.fmt +++ b/scripts/data_files/error.fmt @@ -25,11 +25,7 @@ #if defined(MBEDTLS_ERROR_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#define mbedtls_snprintf snprintf -#endif #include #include diff --git a/scripts/data_files/query_config.fmt b/scripts/data_files/query_config.fmt index 59eb168976..b5d3eec952 100644 --- a/scripts/data_files/query_config.fmt +++ b/scripts/data_files/query_config.fmt @@ -21,12 +21,7 @@ #include "query_config.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ /* * Include all the headers with public APIs in case they define a macro to its diff --git a/tests/include/test/helpers.h b/tests/include/test/helpers.h index 93a3e11323..13c87fd597 100644 --- a/tests/include/test/helpers.h +++ b/tests/include/test/helpers.h @@ -37,20 +37,7 @@ #define MBEDTLS_TEST_MUTEX_USAGE #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_fprintf fprintf -#define mbedtls_snprintf snprintf -#define mbedtls_calloc calloc -#define mbedtls_free free -#define mbedtls_exit exit -#define mbedtls_time time -#define mbedtls_time_t time_t -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #include #include diff --git a/tests/include/test/macros.h b/tests/include/test/macros.h index 8535b93077..695a2433ad 100644 --- a/tests/include/test/macros.h +++ b/tests/include/test/macros.h @@ -28,20 +28,7 @@ #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_fprintf fprintf -#define mbedtls_snprintf snprintf -#define mbedtls_calloc calloc -#define mbedtls_free free -#define mbedtls_exit exit -#define mbedtls_time time -#define mbedtls_time_t time_t -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) #include "mbedtls/memory_buffer_alloc.h" diff --git a/tests/suites/helpers.function b/tests/suites/helpers.function index a620178f61..0af4ca9f82 100644 --- a/tests/suites/helpers.function +++ b/tests/suites/helpers.function @@ -12,20 +12,7 @@ #if defined (MBEDTLS_ERROR_C) #include "mbedtls/error.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_fprintf fprintf -#define mbedtls_snprintf snprintf -#define mbedtls_calloc calloc -#define mbedtls_free free -#define mbedtls_exit exit -#define mbedtls_time time -#define mbedtls_time_t time_t -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) #include "mbedtls/memory_buffer_alloc.h" From a7aa80c058048bed00ca8fdff4b696cb11dbaa07 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Sep 2022 20:22:04 +0200 Subject: [PATCH 0284/1028] Include platform.h unconditionally: second automatic part Some source files included platform.h in a nested conditional. The previous commit "Include platform.h unconditionally: automatic part" only removed the outer conditional. This commit removes the inner conditional. This commit once again replaces most occurrences of conditional inclusion of platform.h, using the following code: ``` perl -i -0777 -pe 's!#if.*\n#include "mbedtls/platform.h"\n(#else.*\n(#define (mbedtls|MBEDTLS)_.*\n|#include <(stdarg|stddef|stdio|stdlib|string|time)\.h>\n)*)?#endif.*!#include "mbedtls/platform.h"!mg' $(git grep -l '#include "mbedtls/platform.h"') ``` Signed-off-by: Gilles Peskine --- library/aes.c | 2 -- library/aria.c | 2 -- library/camellia.c | 2 -- library/chacha20.c | 2 -- library/chachapoly.c | 2 -- library/ctr_drbg.c | 2 -- library/des.c | 2 -- library/entropy.c | 2 -- library/hmac_drbg.c | 2 -- library/md5.c | 2 -- library/nist_kw.c | 2 -- library/poly1305.c | 2 -- library/ripemd160.c | 2 -- library/sha1.c | 2 -- library/sha256.c | 2 -- library/sha512.c | 2 -- 16 files changed, 32 deletions(-) diff --git a/library/aes.c b/library/aes.c index 872930f2ac..a48658fc78 100644 --- a/library/aes.c +++ b/library/aes.c @@ -40,9 +40,7 @@ #include "aesni.h" #endif -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_AES_ALT) diff --git a/library/aria.c b/library/aria.c index cfa69c2ad6..f78d289a45 100644 --- a/library/aria.c +++ b/library/aria.c @@ -31,9 +31,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_ARIA_ALT) diff --git a/library/camellia.c b/library/camellia.c index 24651a9a88..e90cd7f134 100644 --- a/library/camellia.c +++ b/library/camellia.c @@ -32,9 +32,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_CAMELLIA_ALT) diff --git a/library/chacha20.c b/library/chacha20.c index f92e5074a7..44d1612bfe 100644 --- a/library/chacha20.c +++ b/library/chacha20.c @@ -32,9 +32,7 @@ #include #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_CHACHA20_ALT) diff --git a/library/chachapoly.c b/library/chachapoly.c index 9ae043b3b5..4adf846857 100644 --- a/library/chachapoly.c +++ b/library/chachapoly.c @@ -28,9 +28,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_CHACHAPOLY_ALT) diff --git a/library/ctr_drbg.c b/library/ctr_drbg.c index d55f9a4795..71c48afd28 100644 --- a/library/ctr_drbg.c +++ b/library/ctr_drbg.c @@ -36,9 +36,7 @@ #include #endif -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ /* * CTR_DRBG context initialization diff --git a/library/des.c b/library/des.c index 0576099ce8..65f5681cf1 100644 --- a/library/des.c +++ b/library/des.c @@ -33,9 +33,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_DES_ALT) diff --git a/library/entropy.c b/library/entropy.c index 12184d6704..1e0d9d3281 100644 --- a/library/entropy.c +++ b/library/entropy.c @@ -34,9 +34,7 @@ #include "mbedtls/platform.h" -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #define ENTROPY_MAX_LOOP 256 /**< Maximum amount to loop before error */ diff --git a/library/hmac_drbg.c b/library/hmac_drbg.c index 3c89f5749d..6bc679dd25 100644 --- a/library/hmac_drbg.c +++ b/library/hmac_drbg.c @@ -37,9 +37,7 @@ #include #endif -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_PLATFORM_C */ /* * HMAC_DRBG context initialization diff --git a/library/md5.c b/library/md5.c index a01b6dd299..f7a225c1d3 100644 --- a/library/md5.c +++ b/library/md5.c @@ -32,9 +32,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_MD5_ALT) diff --git a/library/nist_kw.c b/library/nist_kw.c index 6be6998dcf..495c23d06a 100644 --- a/library/nist_kw.c +++ b/library/nist_kw.c @@ -39,9 +39,7 @@ #include #include -#if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_AES_C) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */ #if !defined(MBEDTLS_NIST_KW_ALT) diff --git a/library/poly1305.c b/library/poly1305.c index a2b223303d..f38f48a457 100644 --- a/library/poly1305.c +++ b/library/poly1305.c @@ -28,9 +28,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_POLY1305_ALT) diff --git a/library/ripemd160.c b/library/ripemd160.c index 1c7e17ff36..6212cb2572 100644 --- a/library/ripemd160.c +++ b/library/ripemd160.c @@ -33,9 +33,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_RIPEMD160_ALT) diff --git a/library/sha1.c b/library/sha1.c index 4f65e23fd8..83c984fe0a 100644 --- a/library/sha1.c +++ b/library/sha1.c @@ -32,9 +32,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #define SHA1_VALIDATE_RET(cond) \ MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_SHA1_BAD_INPUT_DATA ) diff --git a/library/sha256.c b/library/sha256.c index 2e65e6fd85..6596a3dfc5 100644 --- a/library/sha256.c +++ b/library/sha256.c @@ -32,9 +32,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if defined(__aarch64__) # if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT) || \ diff --git a/library/sha512.c b/library/sha512.c index beb548acea..ae2c2262c7 100644 --- a/library/sha512.c +++ b/library/sha512.c @@ -38,9 +38,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if defined(__aarch64__) # if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) || \ From e9b55929dc80d5b45292e9a715111505f454a267 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Sep 2022 20:09:07 +0200 Subject: [PATCH 0285/1028] Remove useless platform macro redefinitions: automatic part Some source files had code to set mbedtls_xxx aliases when MBEDTLS_PLATFORM_C is not defined. These aliases are defined unconditionally by mbedtls/platform.h, so these macro definitions were redundant. Remove them. This commit used the following code: ``` perl -i -0777 -pe 's~#if !defined\(MBEDTLS_PLATFORM_C\)\n(#define (mbedtls|MBEDTLS)_.*\n|#include <(stdarg|stddef|stdio|stdlib|string|time)\.h>\n)*#endif.*\n~~mg' $(git grep -l -F '#if !defined(MBEDTLS_PLATFORM_C)') ``` Signed-off-by: Gilles Peskine --- library/gcm.c | 4 ---- library/psa_crypto.c | 4 ---- library/psa_crypto_aead.c | 4 ---- library/psa_crypto_client.c | 4 ---- library/psa_crypto_ecp.c | 4 ---- library/psa_crypto_rsa.c | 4 ---- library/psa_crypto_se.c | 4 ---- programs/test/benchmark.c | 7 ------- 8 files changed, 35 deletions(-) diff --git a/library/gcm.c b/library/gcm.c index 6d07f8787f..fca0c61297 100644 --- a/library/gcm.c +++ b/library/gcm.c @@ -44,10 +44,6 @@ #if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_AES_C) #include "mbedtls/aes.h" #include "mbedtls/platform.h" -#if !defined(MBEDTLS_PLATFORM_C) -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */ #if !defined(MBEDTLS_GCM_ALT) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index b0116ddfb4..954abea594 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -52,10 +52,6 @@ #include #include #include "mbedtls/platform.h" -#if !defined(MBEDTLS_PLATFORM_C) -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "mbedtls/aes.h" #include "mbedtls/asn1.h" diff --git a/library/psa_crypto_aead.c b/library/psa_crypto_aead.c index 714d950a14..76d95bcc69 100644 --- a/library/psa_crypto_aead.c +++ b/library/psa_crypto_aead.c @@ -27,10 +27,6 @@ #include #include "mbedtls/platform.h" -#if !defined(MBEDTLS_PLATFORM_C) -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "mbedtls/ccm.h" #include "mbedtls/chachapoly.h" diff --git a/library/psa_crypto_client.c b/library/psa_crypto_client.c index 629feb7dfa..ab79086346 100644 --- a/library/psa_crypto_client.c +++ b/library/psa_crypto_client.c @@ -25,10 +25,6 @@ #include #include "mbedtls/platform.h" -#if !defined(MBEDTLS_PLATFORM_C) -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif void psa_reset_key_attributes( psa_key_attributes_t *attributes ) { diff --git a/library/psa_crypto_ecp.c b/library/psa_crypto_ecp.c index 59c3a0e9af..29f53b96e6 100644 --- a/library/psa_crypto_ecp.c +++ b/library/psa_crypto_ecp.c @@ -31,10 +31,6 @@ #include #include #include "mbedtls/platform.h" -#if !defined(MBEDTLS_PLATFORM_C) -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include #include diff --git a/library/psa_crypto_rsa.c b/library/psa_crypto_rsa.c index 7d4718daf4..f1b9809d8b 100644 --- a/library/psa_crypto_rsa.c +++ b/library/psa_crypto_rsa.c @@ -32,10 +32,6 @@ #include #include #include "mbedtls/platform.h" -#if !defined(MBEDTLS_PLATFORM_C) -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include #include diff --git a/library/psa_crypto_se.c b/library/psa_crypto_se.c index 56678d6a90..87d2634e73 100644 --- a/library/psa_crypto_se.c +++ b/library/psa_crypto_se.c @@ -38,10 +38,6 @@ #endif #include "mbedtls/platform.h" -#if !defined(MBEDTLS_PLATFORM_C) -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif diff --git a/programs/test/benchmark.c b/programs/test/benchmark.c index a6d83e75bd..920a473c62 100644 --- a/programs/test/benchmark.c +++ b/programs/test/benchmark.c @@ -22,13 +22,6 @@ #include "mbedtls/build_info.h" #include "mbedtls/platform.h" -#if !defined(MBEDTLS_PLATFORM_C) -#include -#include -#define mbedtls_exit exit -#define mbedtls_printf printf -#define mbedtls_free free -#endif #if !defined(MBEDTLS_HAVE_TIME) int main( void ) From ed1c7f4cd7af7d88820bdd47f4a3176f17bb2b58 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Sep 2022 20:14:22 +0200 Subject: [PATCH 0286/1028] Include platform.h unconditionally: gcm gcm.c had a slightly different pattern for the conditional inclusion of platform.h which didn't fit the general replacement. Simplify it manually. Signed-off-by: Gilles Peskine --- library/gcm.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/library/gcm.c b/library/gcm.c index fca0c61297..53275c3fea 100644 --- a/library/gcm.c +++ b/library/gcm.c @@ -32,6 +32,7 @@ #if defined(MBEDTLS_GCM_C) #include "mbedtls/gcm.h" +#include "mbedtls/platform.h" #include "mbedtls/platform_util.h" #include "mbedtls/error.h" @@ -41,11 +42,6 @@ #include "aesni.h" #endif -#if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_AES_C) -#include "mbedtls/aes.h" -#include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */ - #if !defined(MBEDTLS_GCM_ALT) /* Parameter validation macros */ From 04e4c19ee3337b8cedc6712a2f042bf598229446 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Sep 2022 20:19:01 +0200 Subject: [PATCH 0287/1028] Document the base state of platform abstraction It's `#define mbedtls_xxx xxx` unless some option to override `mbedtls_xxx` is enabled. Signed-off-by: Gilles Peskine --- include/mbedtls/platform.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/mbedtls/platform.h b/include/mbedtls/platform.h index a5a43ac6d2..62e12d267c 100644 --- a/include/mbedtls/platform.h +++ b/include/mbedtls/platform.h @@ -11,6 +11,13 @@ * implementations of these functions, or implementations specific to * their platform, which can be statically linked to the library or * dynamically configured at runtime. + * + * When all compilation options related to platform abstraction are + * disabled, this header just defines `mbedtls_xxx` function names + * as aliases to the standard `xxx` function. + * + * Most modules in the library and example programs are expected to + * include this header. */ /* * Copyright The Mbed TLS Contributors From d6355caa8fd87708fde74e1fe42ee2063431d20e Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Sep 2022 20:26:49 +0200 Subject: [PATCH 0288/1028] Include platform.h unconditionally: fixes undefined mbedtls_setbuf Now that mbedtls/platform.h is included unconditionally, there are no more configurations where mbedtls_setbuf was accidentally left out of the manual definitions when MBEDTLS_PLATFORM_C is disabled. Fixes #6118, #6196. Signed-off-by: Gilles Peskine --- ChangeLog.d/platform-setbuf.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 ChangeLog.d/platform-setbuf.txt diff --git a/ChangeLog.d/platform-setbuf.txt b/ChangeLog.d/platform-setbuf.txt new file mode 100644 index 0000000000..844f70cf2a --- /dev/null +++ b/ChangeLog.d/platform-setbuf.txt @@ -0,0 +1,3 @@ +Bugfix + * Provide the missing definition of mbedtls_setbuf() in some configurations + with MBEDTLS_PLATFORM_C disabled. Fixes #6118, #6196. From a844b4b3703c86c6cbb260fc2f100be9380a82cd Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Sep 2022 21:05:04 +0200 Subject: [PATCH 0289/1028] No need to use MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED in tests Initializing return status variables to CORRUPTION_DETECTED is a second line of defense in library code in case there's a code path where we forget to assign to the variable. This isn't useful in test code. In any case, here, we might as well define the variable at the point of use. This fixes a build error in configurations with MBEDTLS_ERROR_C and MBEDTLS_PSA_CRYPTO_C both disabled, because then mbedtls/error.h isn't included so MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED isn't defined. Signed-off-by: Gilles Peskine --- tests/suites/test_suite_pkcs12.function | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/tests/suites/test_suite_pkcs12.function b/tests/suites/test_suite_pkcs12.function index 34ef090ba1..06678a9d55 100644 --- a/tests/suites/test_suite_pkcs12.function +++ b/tests/suites/test_suite_pkcs12.function @@ -25,7 +25,6 @@ void pkcs12_derive_key( int md_type, int key_size_arg, data_t* expected_output, int expected_status ) { - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *output_data = NULL; unsigned char *password = NULL; @@ -46,15 +45,15 @@ void pkcs12_derive_key( int md_type, int key_size_arg, ASSERT_ALLOC( output_data, key_size ); - ret = mbedtls_pkcs12_derivation( output_data, - key_size, - password, - password_len, - salt, - salt_len, - md_type, - MBEDTLS_PKCS12_DERIVE_KEY, - iterations ); + int ret = mbedtls_pkcs12_derivation( output_data, + key_size, + password, + password_len, + salt, + salt_len, + md_type, + MBEDTLS_PKCS12_DERIVE_KEY, + iterations ); TEST_EQUAL( ret, expected_status ); From a5df584d87a3bf6f929a60dba84906eb0f886cd3 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 16 Sep 2022 11:27:57 +0800 Subject: [PATCH 0290/1028] fix build fail for test_psa_crypto_config_accel_hash_use_psa Signed-off-by: Jerry Yu --- library/ssl_tls13_keys.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 28090ebcb5..0f9c07ada3 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1537,7 +1537,8 @@ int mbedtls_ssl_tls13_compute_resumption_master_secret( mbedtls_ssl_context *ssl MBEDTLS_SSL_DEBUG_BUF( 4, "Resumption master secret", ssl->session_negotiate->app_secrets.resumption_master_secret, - mbedtls_md_get_size( mbedtls_md_info_from_type( md_type ) ) ); + PSA_HASH_LENGTH( + PSA_ALG_HMAC( mbedtls_hash_info_psa_from_md( md_type ) ) ) ); MBEDTLS_SSL_DEBUG_MSG( 2, From 6ee726e1abb1ac4cf5a81fc38b5cc5c6a4272354 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 16 Sep 2022 16:32:27 +0800 Subject: [PATCH 0291/1028] Replace md translation function Signed-off-by: Jerry Yu --- library/ssl_tls13_keys.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 0f9c07ada3..48de3d008d 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1537,9 +1537,7 @@ int mbedtls_ssl_tls13_compute_resumption_master_secret( mbedtls_ssl_context *ssl MBEDTLS_SSL_DEBUG_BUF( 4, "Resumption master secret", ssl->session_negotiate->app_secrets.resumption_master_secret, - PSA_HASH_LENGTH( - PSA_ALG_HMAC( mbedtls_hash_info_psa_from_md( md_type ) ) ) ); - + PSA_HASH_LENGTH( mbedtls_psa_translate_md( md_type ) ) ) ; MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= mbedtls_ssl_tls13_compute_resumption_master_secret" ) ); From e829cd6953afbd246fa0db60a296bdae8eaaec81 Mon Sep 17 00:00:00 2001 From: Archana Date: Fri, 24 Dec 2021 12:50:36 +0530 Subject: [PATCH 0292/1028] Driver Wrapper CodeGen Rev 1.1 (1) Add in driver jsons. (2) Improve Python scripts to take JSON file directory and template directory paths as arguments. (3) Add in file augment template files to template common functionality (4) render tempplates for Header files, ID generation and key management. (5) Changed driver ID nomenclature to be in synch with function names. Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- .../data_files/driver_jsons/driverlist.json | 1 + .../mbedtls_test_opaque_driver.json | 18 ++ .../mbedtls_test_transparent_driver.json | 13 + .../driver_templates/OS-template-opaque.jinja | 10 + .../OS-template-transparent.jinja | 12 + .../psa_crypto_driver_wrappers.c.jinja | 254 ++++++++++-------- scripts/generate_driver_wrappers.py | 58 +++- tests/include/test/drivers/test_driver.h | 9 + 8 files changed, 247 insertions(+), 128 deletions(-) create mode 100644 scripts/data_files/driver_jsons/driverlist.json create mode 100644 scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json create mode 100644 scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json create mode 100644 scripts/data_files/driver_templates/OS-template-opaque.jinja create mode 100644 scripts/data_files/driver_templates/OS-template-transparent.jinja diff --git a/scripts/data_files/driver_jsons/driverlist.json b/scripts/data_files/driver_jsons/driverlist.json new file mode 100644 index 0000000000..50ad81604a --- /dev/null +++ b/scripts/data_files/driver_jsons/driverlist.json @@ -0,0 +1 @@ +["mbedtls_test_opaque_driver.json","mbedtls_test_transparent_driver.json"] diff --git a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json new file mode 100644 index 0000000000..1322083c3f --- /dev/null +++ b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json @@ -0,0 +1,18 @@ +[{ + "prefix": "mbedtls_test", + "type": "opaque", + "location": "0x7fffff", + "headers": ["test/drivers/test_driver.h"], + "capabilities": [ + { + "_comment": "The mbedTLS opaque driver supports import key/export key/export_public key", + "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "entry_points": ["import_key", "export_key", "export_public_key"] + }, + { + "_comment": "The mbedTLS opaque driver supports copy key/ get builtin key", + "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "entry_points": ["copy_key","get_builtin_key"] + } + ] +}] diff --git a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json new file mode 100644 index 0000000000..dfa42340ce --- /dev/null +++ b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json @@ -0,0 +1,13 @@ +[{ + "prefix": "mbedtls_test", + "type": "transparent", + "headers": ["test/drivers/test_driver.h"], + "capabilities": [ + { + "_comment": "The mbedTLS transparent driver supports import key/export key/export_public key", + "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "entry_points": ["import_key", "export_key", "export_public_key"], + "fallback": true + } + ] +}] diff --git a/scripts/data_files/driver_templates/OS-template-opaque.jinja b/scripts/data_files/driver_templates/OS-template-opaque.jinja new file mode 100644 index 0000000000..3d9724c947 --- /dev/null +++ b/scripts/data_files/driver_templates/OS-template-opaque.jinja @@ -0,0 +1,10 @@ +{% for driver in drivers if driver.type == "opaque" -%} +{% for capability in driver.capabilities if entry_point in capability.entry_points -%} +#if ({% if capability.depend_on is defined -%}{{ capability.depend_on }} {% else -%} {{ 1 }} {% endif %}) +{%- filter indent(width = nest_indent) %} +case {{ driver.location }}: + return({{driver.prefix}}_{{driver.type}}_{{entry_point}}({{entry_point_attributes(driver) | indent(20)}})); +{% endfilter -%} +#endif +{% endfor %} +{% endfor %} diff --git a/scripts/data_files/driver_templates/OS-template-transparent.jinja b/scripts/data_files/driver_templates/OS-template-transparent.jinja new file mode 100644 index 0000000000..017c937cb2 --- /dev/null +++ b/scripts/data_files/driver_templates/OS-template-transparent.jinja @@ -0,0 +1,12 @@ +{% for driver in drivers if driver.type == "transparent" -%} +{% for capability in driver.capabilities if entry_point in capability.entry_points -%} +#if ({% if capability.depend_on is defined -%}{{ capability.depend_on }} {% else -%} {{ 1 }} {% endif %}) +{%- filter indent(width = nest_indent) %} +status = {{driver.prefix}}_{{driver.type}}_{{entry_point}}({{entry_point_attributes(driver) | indent(20)}}); + +if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +{% endfilter -%} +#endif +{% endfor %} +{% endfor %} diff --git a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja index a5ae6a29e4..3abd1eff10 100644 --- a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja +++ b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja @@ -19,6 +19,8 @@ * limitations under the License. */ + +/* BEGIN-common headers */ #include "common.h" #include "psa_crypto_aead.h" #include "psa_crypto_cipher.h" @@ -29,34 +31,30 @@ #include "psa_crypto_rsa.h" #include "mbedtls/platform.h" +/* END-common headers */ #if defined(MBEDTLS_PSA_CRYPTO_C) +/* BEGIN-driver headers */ #if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) - -/* Include test driver definition when running tests */ -#if defined(PSA_CRYPTO_DRIVER_TEST) -#ifndef PSA_CRYPTO_DRIVER_PRESENT -#define PSA_CRYPTO_DRIVER_PRESENT -#endif -#ifndef PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT -#define PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT -#endif -#include "test/drivers/test_driver.h" -#endif /* PSA_CRYPTO_DRIVER_TEST */ - -/* Repeat above block for each JSON-declared driver during autogeneration */ +{% for driver in drivers -%} +/* Headers for {{driver.prefix}} {{driver.type}} driver */ +{% for header in driver.headers -%} +#include "{{ header }}" +{% endfor %} +{% endfor %} #endif /* MBEDTLS_PSA_CRYPTO_DRIVERS */ +/* 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) - -#if defined(PSA_CRYPTO_DRIVER_TEST) -#define PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID (2) -#define PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID (3) -#endif /* PSA_CRYPTO_DRIVER_TEST */ +{% for driver in drivers -%} +#define {{(driver.prefix + "_" + driver.type + "_driver_id").upper()}} ({{ loop.index + 1 }}) +{% endfor %} +/* END-driver id */ /* Support the 'old' SE interface when asked to */ #if defined(MBEDTLS_PSA_CRYPTO_SE_C) @@ -592,6 +590,16 @@ psa_status_t psa_driver_wrapper_import_key( size_t *key_buffer_length, size_t *bits ) { +{% set entry_point = "import_key" -%} +{% macro entry_point_attributes(driver) -%} +attributes, +data, +data_length, +key_buffer, +key_buffer_size, +key_buffer_length, +bits +{% endmacro %} psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( psa_get_key_lifetime( attributes ) ); @@ -631,17 +639,13 @@ psa_status_t psa_driver_wrapper_import_key( /* 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_import_key( - attributes, - data, data_length, - key_buffer, key_buffer_size, - key_buffer_length, bits ); - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ +/* BEGIN-Templating */ +{% with nest_indent=12 %} +{% include "OS-template-transparent.jinja" -%} +{% endwith -%} +/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + /* Fell through, meaning no accelerator supports this operation */ return( psa_import_key_into_slot( attributes, data, data_length, @@ -649,14 +653,11 @@ psa_status_t psa_driver_wrapper_import_key( key_buffer_length, bits ) ); /* Add cases for opaque driver here */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_import_key( - attributes, - data, data_length, - key_buffer, key_buffer_size, - key_buffer_length, bits ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ +/* BEGIN-Templating */ +{% with nest_indent=8 %} +{% include "OS-template-opaque.jinja" -%} +{% endwith -%} +/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ default: (void)status; @@ -671,6 +672,15 @@ psa_status_t psa_driver_wrapper_export_key( uint8_t *data, size_t data_size, size_t *data_length ) { +{% set entry_point = "export_key" -%} +{% macro entry_point_attributes(driver) -%} +attributes, +key_buffer, +key_buffer_size, +data, +data_size, +data_length +{% endmacro %} psa_status_t status = PSA_ERROR_INVALID_ARGUMENT; psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( psa_get_key_lifetime( attributes ) ); @@ -707,15 +717,11 @@ psa_status_t psa_driver_wrapper_export_key( /* Add cases for opaque driver here */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_export_key( attributes, - key_buffer, - key_buffer_size, - data, - data_size, - data_length ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ +/* BEGIN-Templating */ +{% with nest_indent=8 %} +{% include "OS-template-opaque.jinja" -%} +{% endwith -%} +/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ default: /* Key is declared with a lifetime not known to us */ @@ -729,6 +735,15 @@ psa_status_t psa_driver_wrapper_export_public_key( uint8_t *data, size_t data_size, size_t *data_length ) { +{% set entry_point = "export_public_key" -%} +{% macro entry_point_attributes(driver) -%} +attributes, +key_buffer, +key_buffer_size, +data, +data_size, +data_length +{% endmacro %} psa_status_t status = PSA_ERROR_INVALID_ARGUMENT; psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( psa_get_key_lifetime( attributes ) ); @@ -759,18 +774,11 @@ psa_status_t psa_driver_wrapper_export_public_key( /* 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 ); - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ +/* BEGIN-Templating */ +{% with nest_indent=12 %} +{% include "OS-template-transparent.jinja" -%} +{% endwith -%} +/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ /* Fell through, meaning no accelerator supports this operation */ return( psa_export_public_key_internal( attributes, @@ -782,15 +790,11 @@ psa_status_t psa_driver_wrapper_export_public_key( /* Add cases for opaque driver here */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_export_public_key( attributes, - key_buffer, - key_buffer_size, - data, - data_size, - data_length ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ +/* BEGIN-Templating */ +{% with nest_indent=8 %} +{% include "OS-template-opaque.jinja" -%} +{% endwith -%} +/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ default: /* Key is declared with a lifetime not known to us */ @@ -803,15 +807,23 @@ psa_status_t psa_driver_wrapper_get_builtin_key( psa_key_attributes_t *attributes, uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ) { +{% set entry_point = "get_builtin_key" -%} +{% macro entry_point_attributes(driver) -%} +slot_number, +attributes, +key_buffer, +key_buffer_size, +key_buffer_length +{% endmacro %} psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); switch( location ) { #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_get_builtin_key( - slot_number, - attributes, - key_buffer, key_buffer_size, key_buffer_length ) ); +/* BEGIN-Templating */ +{% with nest_indent=8 %} +{% include "OS-template-opaque.jinja" -%} +{% endwith -%} +/* END-Templating */ #endif /* PSA_CRYPTO_DRIVER_TEST */ default: (void) slot_number; @@ -828,6 +840,15 @@ psa_status_t psa_driver_wrapper_copy_key( uint8_t *target_key_buffer, size_t target_key_buffer_size, size_t *target_key_buffer_length ) { +{% set entry_point = "copy_key" -%} +{% macro entry_point_attributes(driver) -%} +attributes, +source_key, +source_key_length, +target_key_buffer, +target_key_buffer_size, +target_key_buffer_length +{% endmacro %} psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); @@ -846,14 +867,11 @@ psa_status_t psa_driver_wrapper_copy_key( switch( location ) { #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_copy_key( attributes, source_key, - source_key_length, - target_key_buffer, - target_key_buffer_size, - target_key_buffer_length) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ +/* BEGIN-Templating */ +{% with nest_indent=8 %} +{% include "OS-template-opaque.jinja" -%} +{% endwith -%} +/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ default: (void)source_key; @@ -1068,7 +1086,7 @@ psa_status_t psa_driver_wrapper_cipher_encrypt_setup( alg ); /* Declared with fallback == true */ if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; if( status != PSA_ERROR_NOT_SUPPORTED ) return( status ); @@ -1100,7 +1118,7 @@ psa_status_t psa_driver_wrapper_cipher_encrypt_setup( alg ); if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID; return( status ); #endif /* PSA_CRYPTO_DRIVER_TEST */ @@ -1141,7 +1159,7 @@ psa_status_t psa_driver_wrapper_cipher_decrypt_setup( alg ); /* Declared with fallback == true */ if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; if( status != PSA_ERROR_NOT_SUPPORTED ) return( status ); @@ -1172,7 +1190,7 @@ psa_status_t psa_driver_wrapper_cipher_decrypt_setup( alg ); if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID; return( status ); #endif /* PSA_CRYPTO_DRIVER_TEST */ @@ -1204,12 +1222,12 @@ psa_status_t psa_driver_wrapper_cipher_set_iv( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_cipher_set_iv( &operation->ctx.transparent_test_driver_ctx, iv, iv_length ) ); - case PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID: + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: return( mbedtls_test_opaque_cipher_set_iv( &operation->ctx.opaque_test_driver_ctx, iv, iv_length ) ); @@ -1245,13 +1263,13 @@ psa_status_t psa_driver_wrapper_cipher_update( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_cipher_update( &operation->ctx.transparent_test_driver_ctx, input, input_length, output, output_size, output_length ) ); - case PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID: + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: return( mbedtls_test_opaque_cipher_update( &operation->ctx.opaque_test_driver_ctx, input, input_length, @@ -1287,12 +1305,12 @@ psa_status_t psa_driver_wrapper_cipher_finish( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_cipher_finish( &operation->ctx.transparent_test_driver_ctx, output, output_size, output_length ) ); - case PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID: + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: return( mbedtls_test_opaque_cipher_finish( &operation->ctx.opaque_test_driver_ctx, output, output_size, output_length ) ); @@ -1321,7 +1339,7 @@ psa_status_t psa_driver_wrapper_cipher_abort( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: status = mbedtls_test_transparent_cipher_abort( &operation->ctx.transparent_test_driver_ctx ); mbedtls_platform_zeroize( @@ -1329,7 +1347,7 @@ psa_status_t psa_driver_wrapper_cipher_abort( sizeof( operation->ctx.transparent_test_driver_ctx ) ); return( status ); - case PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID: + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: status = mbedtls_test_opaque_cipher_abort( &operation->ctx.opaque_test_driver_ctx ); mbedtls_platform_zeroize( @@ -1394,7 +1412,7 @@ psa_status_t psa_driver_wrapper_hash_setup( status = mbedtls_test_transparent_hash_setup( &operation->ctx.test_driver_ctx, alg ); if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; if( status != PSA_ERROR_NOT_SUPPORTED ) return( status ); @@ -1429,8 +1447,8 @@ psa_status_t psa_driver_wrapper_hash_clone( &target_operation->ctx.mbedtls_ctx ) ); #endif #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: - target_operation->id = PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID; + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + target_operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; return( mbedtls_test_transparent_hash_clone( &source_operation->ctx.test_driver_ctx, &target_operation->ctx.test_driver_ctx ) ); @@ -1454,7 +1472,7 @@ psa_status_t psa_driver_wrapper_hash_update( input, input_length ) ); #endif #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_hash_update( &operation->ctx.test_driver_ctx, input, input_length ) ); @@ -1480,7 +1498,7 @@ psa_status_t psa_driver_wrapper_hash_finish( hash, hash_size, hash_length ) ); #endif #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_hash_finish( &operation->ctx.test_driver_ctx, hash, hash_size, hash_length ) ); @@ -1503,7 +1521,7 @@ psa_status_t psa_driver_wrapper_hash_abort( return( mbedtls_psa_hash_abort( &operation->ctx.mbedtls_ctx ) ); #endif #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_hash_abort( &operation->ctx.test_driver_ctx ) ); #endif @@ -1650,7 +1668,7 @@ psa_status_t psa_driver_wrapper_aead_encrypt_setup( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - operation->id = PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; status = mbedtls_test_transparent_aead_encrypt_setup( &operation->ctx.transparent_test_driver_ctx, attributes, key_buffer, key_buffer_size, @@ -1698,7 +1716,7 @@ psa_status_t psa_driver_wrapper_aead_decrypt_setup( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - operation->id = PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; status = mbedtls_test_transparent_aead_decrypt_setup( &operation->ctx.transparent_test_driver_ctx, attributes, @@ -1747,7 +1765,7 @@ psa_status_t psa_driver_wrapper_aead_set_nonce( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_aead_set_nonce( &operation->ctx.transparent_test_driver_ctx, nonce, nonce_length ) ); @@ -1781,7 +1799,7 @@ psa_status_t psa_driver_wrapper_aead_set_lengths( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_aead_set_lengths( &operation->ctx.transparent_test_driver_ctx, ad_length, plaintext_length ) ); @@ -1815,7 +1833,7 @@ psa_status_t psa_driver_wrapper_aead_update_ad( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_aead_update_ad( &operation->ctx.transparent_test_driver_ctx, input, input_length ) ); @@ -1853,7 +1871,7 @@ psa_status_t psa_driver_wrapper_aead_update( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_aead_update( &operation->ctx.transparent_test_driver_ctx, input, input_length, output, output_size, @@ -1897,7 +1915,7 @@ psa_status_t psa_driver_wrapper_aead_finish( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_aead_finish( &operation->ctx.transparent_test_driver_ctx, ciphertext, ciphertext_size, @@ -1961,7 +1979,7 @@ psa_status_t psa_driver_wrapper_aead_verify( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_aead_verify( &operation->ctx.transparent_test_driver_ctx, plaintext, plaintext_size, @@ -1995,7 +2013,7 @@ psa_status_t psa_driver_wrapper_aead_abort( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_aead_abort( &operation->ctx.transparent_test_driver_ctx ) ); @@ -2104,7 +2122,7 @@ psa_status_t psa_driver_wrapper_mac_sign_setup( alg ); /* Declared with fallback == true */ if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; if( status != PSA_ERROR_NOT_SUPPORTED ) return( status ); @@ -2135,7 +2153,7 @@ psa_status_t psa_driver_wrapper_mac_sign_setup( alg ); if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID; return( status ); #endif /* PSA_CRYPTO_DRIVER_TEST */ @@ -2176,7 +2194,7 @@ psa_status_t psa_driver_wrapper_mac_verify_setup( alg ); /* Declared with fallback == true */ if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; if( status != PSA_ERROR_NOT_SUPPORTED ) return( status ); @@ -2207,7 +2225,7 @@ psa_status_t psa_driver_wrapper_mac_verify_setup( alg ); if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID; return( status ); #endif /* PSA_CRYPTO_DRIVER_TEST */ @@ -2238,12 +2256,12 @@ psa_status_t psa_driver_wrapper_mac_update( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_mac_update( &operation->ctx.transparent_test_driver_ctx, input, input_length ) ); - case PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID: + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: return( mbedtls_test_opaque_mac_update( &operation->ctx.opaque_test_driver_ctx, input, input_length ) ); @@ -2272,12 +2290,12 @@ psa_status_t psa_driver_wrapper_mac_sign_finish( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_mac_sign_finish( &operation->ctx.transparent_test_driver_ctx, mac, mac_size, mac_length ) ); - case PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID: + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: return( mbedtls_test_opaque_mac_sign_finish( &operation->ctx.opaque_test_driver_ctx, mac, mac_size, mac_length ) ); @@ -2306,12 +2324,12 @@ psa_status_t psa_driver_wrapper_mac_verify_finish( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_mac_verify_finish( &operation->ctx.transparent_test_driver_ctx, mac, mac_length ) ); - case PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID: + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: return( mbedtls_test_opaque_mac_verify_finish( &operation->ctx.opaque_test_driver_ctx, mac, mac_length ) ); @@ -2336,10 +2354,10 @@ psa_status_t psa_driver_wrapper_mac_abort( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_mac_abort( &operation->ctx.transparent_test_driver_ctx ) ); - case PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID: + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: return( mbedtls_test_opaque_mac_abort( &operation->ctx.opaque_test_driver_ctx ) ); #endif /* PSA_CRYPTO_DRIVER_TEST */ diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 42331acc81..8e58b66f51 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -22,52 +22,90 @@ import sys import os +import json import argparse import jinja2 from mbedtls_dev import build_tree -def render(template_path: str) -> str: +def render(template_path: str, driver_jsoncontext: list) -> str: """ - Render template from the input file. + Render template from the input file and driver JSON. """ environment = jinja2.Environment( loader=jinja2.FileSystemLoader(os.path.dirname(template_path)), keep_trailing_newline=True) template = environment.get_template(os.path.basename(template_path)) - return template.render() + return template.render(drivers = driver_jsoncontext) -def generate_driver_wrapper_file(mbedtls_root: str, output_dir: str) -> None: + +def generate_driver_wrapper_file(template_dir: str, output_dir: str, driver_jsoncontext: list ) -> None: """ Generate the file psa_crypto_driver_wrapper.c. """ driver_wrapper_template_filename = \ - os.path.join(mbedtls_root, \ - "scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja") + os.path.join(template_dir, "psa_crypto_driver_wrappers.c.jinja") - result = render(driver_wrapper_template_filename) + result = render(driver_wrapper_template_filename, driver_jsoncontext) with open(os.path.join(output_dir, "psa_crypto_driver_wrappers.c"), 'w') as out_file: out_file.write(result) +def validate_mergedjson(merged_driverjson: list) -> int: + """ + Validate the merged Driver JSON for errors that we can catch early + """ + return 0 + + +def merge_driverjsonfiles(json_directory: str, jsondriverlistName: str) -> list: + """ + Merge driver JSON files into a single ordered JSON. + """ + result = list() + driverlist = list() + with open(os.path.join(json_directory, jsondriverlistName), 'r') as driverlistfile: + driverlist = json.load(driverlistfile) + for file_name in driverlist: + with open(os.path.join(json_directory, file_name), 'r') as infile: + result.extend(json.load(infile)) + + return result + + def main() -> int: """ Main with command line arguments. """ def_arg_mbedtls_root = build_tree.guess_mbedtls_root() def_arg_output_dir = os.path.join(def_arg_mbedtls_root, 'library') + def_arg_template_dir = os.path.join(def_arg_mbedtls_root, 'scripts/data_files/driver_templates/') + def_arg_json_dir = os.path.join(def_arg_mbedtls_root, 'scripts/data_files/driver_jsons/') parser = argparse.ArgumentParser() parser.add_argument('--mbedtls-root', nargs='?', default=def_arg_mbedtls_root, help='root directory of mbedtls source code') + parser.add_argument('--template_dir', nargs='?', default=def_arg_template_dir, + help='root directory of mbedtls source code') + parser.add_argument('--json_dir', nargs='?', default=def_arg_json_dir, + help='root directory of mbedtls source code') parser.add_argument('output_directory', nargs='?', default=def_arg_output_dir, help='output file\'s location') args = parser.parse_args() - mbedtls_root = os.path.abspath(args.mbedtls_root) - output_directory = args.output_directory + mbedtls_root = os.path.abspath(args.mbedtls_root) + output_directory = args.output_directory + template_directory = args.template_dir + json_directory = args.json_dir - generate_driver_wrapper_file(mbedtls_root, output_directory) + # load list of driver jsons from driverlist.json + merged_driverjson = merge_driverjsonfiles(json_directory, 'driverlist.json') + ret = validate_mergedjson(merged_driverjson) + if ret == 1: + print("Validation failed ") + return 1 + + generate_driver_wrapper_file(template_directory, output_directory, merged_driverjson) return 0 diff --git a/tests/include/test/drivers/test_driver.h b/tests/include/test/drivers/test_driver.h index 098b21abff..b3c29e4337 100644 --- a/tests/include/test/drivers/test_driver.h +++ b/tests/include/test/drivers/test_driver.h @@ -20,6 +20,14 @@ #ifndef PSA_CRYPTO_TEST_DRIVER_H #define PSA_CRYPTO_TEST_DRIVER_H +#if defined(PSA_CRYPTO_DRIVER_TEST) +#ifndef PSA_CRYPTO_DRIVER_PRESENT +#define PSA_CRYPTO_DRIVER_PRESENT +#endif +#ifndef PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT +#define PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT +#endif + #define PSA_CRYPTO_TEST_DRIVER_LOCATION 0x7fffff #include "test/drivers/aead.h" @@ -30,4 +38,5 @@ #include "test/drivers/signature.h" #include "test/drivers/asymmetric_encryption.h" +#endif /* PSA_CRYPTO_DRIVER_TEST */ #endif /* PSA_CRYPTO_TEST_DRIVER_H */ From 05efa1754955e4aa0133b0bcefe113b5f26477dd Mon Sep 17 00:00:00 2001 From: Archana Date: Sun, 9 Jan 2022 09:30:32 +0530 Subject: [PATCH 0293/1028] JSON upgrade to give function names Function names can be provided against entry points. This helps to ensure easy migration for misnamed functions. Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- .../driver_jsons/mbedtls_test_opaque_driver.json | 3 ++- .../mbedtls_test_transparent_driver.json | 12 ++++++++++-- .../driver_templates/OS-template-opaque.jinja | 4 ++++ .../driver_templates/OS-template-transparent.jinja | 4 ++++ 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json index 1322083c3f..c63e36094d 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json @@ -12,7 +12,8 @@ { "_comment": "The mbedTLS opaque driver supports copy key/ get builtin key", "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", - "entry_points": ["copy_key","get_builtin_key"] + "entry_points": ["copy_key","get_builtin_key"], + "name": {"copy_key":"mbedtls_test_opaque_copy_key", "get_builtin_key":"mbedtls_test_opaque_get_builtin_key"} } ] }] diff --git a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json index dfa42340ce..1b4d615df6 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json @@ -4,10 +4,18 @@ "headers": ["test/drivers/test_driver.h"], "capabilities": [ { - "_comment": "The mbedTLS transparent driver supports import key/export key/export_public key", + "_comment": "The mbedTLS transparent driver supports import key/export key", "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", - "entry_points": ["import_key", "export_key", "export_public_key"], + "entry_points": ["import_key", "export_key"], "fallback": true + }, + { + "_comment": "The mbedTLS transparent driver supports export_public key", + "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "entry_points": ["export_public_key"], + "fallback": true, + "name": {"export_public_key":"mbedtls_test_transparent_export_public_key"} } + ] }] diff --git a/scripts/data_files/driver_templates/OS-template-opaque.jinja b/scripts/data_files/driver_templates/OS-template-opaque.jinja index 3d9724c947..f11ac770b8 100644 --- a/scripts/data_files/driver_templates/OS-template-opaque.jinja +++ b/scripts/data_files/driver_templates/OS-template-opaque.jinja @@ -3,7 +3,11 @@ #if ({% if capability.depend_on is defined -%}{{ capability.depend_on }} {% else -%} {{ 1 }} {% endif %}) {%- filter indent(width = nest_indent) %} case {{ driver.location }}: + {% if capability.name is defined and entry_point in capability.name.keys() -%} + return({{ capability.name[entry_point]}}({{entry_point_attributes(driver) | indent(20)}})); + {% else -%} return({{driver.prefix}}_{{driver.type}}_{{entry_point}}({{entry_point_attributes(driver) | indent(20)}})); + {% endif -%} {% endfilter -%} #endif {% endfor %} diff --git a/scripts/data_files/driver_templates/OS-template-transparent.jinja b/scripts/data_files/driver_templates/OS-template-transparent.jinja index 017c937cb2..4eadd1e40b 100644 --- a/scripts/data_files/driver_templates/OS-template-transparent.jinja +++ b/scripts/data_files/driver_templates/OS-template-transparent.jinja @@ -2,7 +2,11 @@ {% for capability in driver.capabilities if entry_point in capability.entry_points -%} #if ({% if capability.depend_on is defined -%}{{ capability.depend_on }} {% else -%} {{ 1 }} {% endif %}) {%- filter indent(width = nest_indent) %} +{% if capability.name is defined and entry_point in capability.name.keys() -%} +status = {{ capability.name[entry_point]}}({{entry_point_attributes(driver) | indent(20)}}); +{% else -%} status = {{driver.prefix}}_{{driver.type}}_{{entry_point}}({{entry_point_attributes(driver) | indent(20)}}); +{% endif -%} if( status != PSA_ERROR_NOT_SUPPORTED ) return( status ); From 04cfe3463953234816e89ac0954f314698616d10 Mon Sep 17 00:00:00 2001 From: Archana Date: Sun, 9 Jan 2022 13:28:28 +0530 Subject: [PATCH 0294/1028] JSON Validation added (1) JSON file structure altered a bit. (2) JSON validated against schema. (3) Corresponding changes in the python script. Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- .../driver_jsons/driver_opaque_schema.json | 112 ++++++++++++++++++ .../driver_transparent_schema.json | 106 +++++++++++++++++ .../mbedtls_test_opaque_driver.json | 5 +- .../mbedtls_test_transparent_driver.json | 5 +- .../psa_crypto_driver_wrappers.c.jinja | 4 + scripts/generate_driver_wrappers.py | 53 ++++++--- tests/docker/bionic/Dockerfile | 4 + 7 files changed, 269 insertions(+), 20 deletions(-) create mode 100644 scripts/data_files/driver_jsons/driver_opaque_schema.json create mode 100644 scripts/data_files/driver_jsons/driver_transparent_schema.json diff --git a/scripts/data_files/driver_jsons/driver_opaque_schema.json b/scripts/data_files/driver_jsons/driver_opaque_schema.json new file mode 100644 index 0000000000..53660c8e95 --- /dev/null +++ b/scripts/data_files/driver_jsons/driver_opaque_schema.json @@ -0,0 +1,112 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "prefix": { + "type": "string" + }, + "type": { + "type": "string" + }, + "location": { + "type": "string" + }, + "dependency": { + "type": "string" + }, + "headers": { + "type": "array", + "items": [ + { + "type": "string" + } + ] + }, + "capabilities": { + "type": "array", + "items": [ + { + "type": "object", + "properties": { + "_comment": { + "type": "string" + }, + "depend_on": { + "type": "string" + }, + "entry_points": { + "type": "array", + "items": [ + { + "type": "string" + }, + { + "type": "string" + }, + { + "type": "string" + } + ] + } + }, + "required": [ + "_comment", + "depend_on", + "entry_points" + ] + }, + { + "type": "object", + "properties": { + "_comment": { + "type": "string" + }, + "depend_on": { + "type": "string" + }, + "entry_points": { + "type": "array", + "items": [ + { + "type": "string" + }, + { + "type": "string" + } + ] + }, + "name": { + "type": "object", + "properties": { + "copy_key": { + "type": "string" + }, + "get_builtin_key": { + "type": "string" + } + }, + "required": [ + "copy_key", + "get_builtin_key" + ] + } + }, + "required": [ + "_comment", + "depend_on", + "entry_points", + "name" + ] + } + ] + } + }, + "required": [ + "prefix", + "type", + "location", + "dependency", + "headers", + "capabilities" + ] +} diff --git a/scripts/data_files/driver_jsons/driver_transparent_schema.json b/scripts/data_files/driver_jsons/driver_transparent_schema.json new file mode 100644 index 0000000000..dd1178d63a --- /dev/null +++ b/scripts/data_files/driver_jsons/driver_transparent_schema.json @@ -0,0 +1,106 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "prefix": { + "type": "string" + }, + "type": { + "type": "string" + }, + "dependency": { + "type": "string" + }, + "headers": { + "type": "array", + "items": [ + { + "type": "string" + } + ] + }, + "capabilities": { + "type": "array", + "items": [ + { + "type": "object", + "properties": { + "_comment": { + "type": "string" + }, + "depend_on": { + "type": "string" + }, + "entry_points": { + "type": "array", + "items": [ + { + "type": "string" + }, + { + "type": "string" + } + ] + }, + "fallback": { + "type": "boolean" + } + }, + "required": [ + "_comment", + "depend_on", + "entry_points", + "fallback" + ] + }, + { + "type": "object", + "properties": { + "_comment": { + "type": "string" + }, + "depend_on": { + "type": "string" + }, + "entry_points": { + "type": "array", + "items": [ + { + "type": "string" + } + ] + }, + "fallback": { + "type": "boolean" + }, + "name": { + "type": "object", + "properties": { + "export_public_key": { + "type": "string" + } + }, + "required": [ + "export_public_key" + ] + } + }, + "required": [ + "_comment", + "depend_on", + "entry_points", + "fallback", + "name" + ] + } + ] + } + }, + "required": [ + "prefix", + "type", + "dependency", + "headers", + "capabilities" + ] +} diff --git a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json index c63e36094d..3747404559 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json @@ -1,7 +1,8 @@ -[{ +{ "prefix": "mbedtls_test", "type": "opaque", "location": "0x7fffff", + "dependency": "defined(PSA_CRYPTO_DRIVER_TEST)", "headers": ["test/drivers/test_driver.h"], "capabilities": [ { @@ -16,4 +17,4 @@ "name": {"copy_key":"mbedtls_test_opaque_copy_key", "get_builtin_key":"mbedtls_test_opaque_get_builtin_key"} } ] -}] +} diff --git a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json index 1b4d615df6..52f6cd3006 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json @@ -1,6 +1,7 @@ -[{ +{ "prefix": "mbedtls_test", "type": "transparent", + "dependency": "defined(PSA_CRYPTO_DRIVER_TEST)", "headers": ["test/drivers/test_driver.h"], "capabilities": [ { @@ -18,4 +19,4 @@ } ] -}] +} diff --git a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja index 3abd1eff10..bea02a506c 100644 --- a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja +++ b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja @@ -39,9 +39,13 @@ #if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) {% for driver in drivers -%} /* Headers for {{driver.prefix}} {{driver.type}} driver */ +{% if driver.dependency is defined -%} +#if {{ driver.dependency }} +{% endif -%} {% for header in driver.headers -%} #include "{{ header }}" {% endfor %} +#endif {% endfor %} #endif /* MBEDTLS_PSA_CRYPTO_DRIVERS */ /* END-driver headers */ diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 8e58b66f51..260be7edd8 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -23,6 +23,8 @@ import sys import os import json +from jsonschema import validate +from typing import Tuple import argparse import jinja2 from mbedtls_dev import build_tree @@ -51,26 +53,48 @@ def generate_driver_wrapper_file(template_dir: str, output_dir: str, driver_json with open(os.path.join(output_dir, "psa_crypto_driver_wrappers.c"), 'w') as out_file: out_file.write(result) -def validate_mergedjson(merged_driverjson: list) -> int: - """ - Validate the merged Driver JSON for errors that we can catch early - """ - return 0 - -def merge_driverjsonfiles(json_directory: str, jsondriverlistName: str) -> list: +def validate_json(driverjson_data: list, driverschema: list) -> bool: """ - Merge driver JSON files into a single ordered JSON. + Validate the Driver JSON against schema + """ + try: + validate(instance = driverjson_data, schema = driverschema) + except jsonschema.exceptions.ValidationError as err: + print(err) + err = "The driver JSON data is InValid" + return False + + message = "The driver JSON data is Valid" + return True + +def merge_driverjsonfiles(mbedtls_root: str, json_directory: str, jsondriverlistName: str) -> Tuple[bool,list]: + """ + Merge driver JSON files into a single ordered JSON after validation. """ result = list() driverlist = list() + with open(os.path.join(mbedtls_root, 'scripts/data_files/driver_jsons/driver_transparent_schema.json'), 'r') as file: + transparent_driver_schema = json.load(file) + with open(os.path.join(mbedtls_root, 'scripts/data_files/driver_jsons/driver_opaque_schema.json'), 'r') as file: + opaque_driver_schema = json.load(file) + with open(os.path.join(json_directory, jsondriverlistName), 'r') as driverlistfile: driverlist = json.load(driverlistfile) for file_name in driverlist: with open(os.path.join(json_directory, file_name), 'r') as infile: - result.extend(json.load(infile)) - - return result + json_data = json.load(infile) + if json_data['type'] == 'transparent': + ret = validate_json(json_data, transparent_driver_schema) + elif json_data['type'] == 'opaque': + ret = validate_json(json_data, opaque_driver_schema) + else: + ret = False + print("Unknown Driver type") + if ret == False: + return ret, [] + result.append(json_data) + return True, result def main() -> int: @@ -99,12 +123,9 @@ def main() -> int: json_directory = args.json_dir # load list of driver jsons from driverlist.json - merged_driverjson = merge_driverjsonfiles(json_directory, 'driverlist.json') - ret = validate_mergedjson(merged_driverjson) - if ret == 1: - print("Validation failed ") + ret, merged_driverjson = merge_driverjsonfiles(mbedtls_root, json_directory, 'driverlist.json') + if ret == False: return 1 - generate_driver_wrapper_file(template_directory, output_directory, merged_driverjson) return 0 diff --git a/tests/docker/bionic/Dockerfile b/tests/docker/bionic/Dockerfile index 28d33b7553..5580679754 100644 --- a/tests/docker/bionic/Dockerfile +++ b/tests/docker/bionic/Dockerfile @@ -64,6 +64,10 @@ RUN apt-get update \ RUN python3 -m pip install \ jinja2==2.10.1 types-jinja2 + +RUN python3 -m pip install \ + jsonschema + # Build a static, legacy openssl from sources with sslv3 enabled # Based on https://gist.github.com/bmaupin/8caca3a1e8c3c5686141 (build-openssl.sh) # Note: openssl-1.0.2 and earlier has known build issues with parallel make. From 314380564c7407200b42b0ddb99a6d5ee2d899b1 Mon Sep 17 00:00:00 2001 From: Archana Date: Sun, 9 Jan 2022 15:01:20 +0530 Subject: [PATCH 0295/1028] PyLint errors fixed Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 40 +++++++++++++++++------------ 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 260be7edd8..3b6032028b 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -23,9 +23,10 @@ import sys import os import json -from jsonschema import validate from typing import Tuple import argparse +import jsonschema +from jsonschema import validate import jinja2 from mbedtls_dev import build_tree @@ -38,10 +39,11 @@ def render(template_path: str, driver_jsoncontext: list) -> str: keep_trailing_newline=True) template = environment.get_template(os.path.basename(template_path)) - return template.render(drivers = driver_jsoncontext) + return template.render(drivers=driver_jsoncontext) -def generate_driver_wrapper_file(template_dir: str, output_dir: str, driver_jsoncontext: list ) -> None: +def generate_driver_wrapper_file(template_dir: str, \ + output_dir: str, driver_jsoncontext: list) -> None: """ Generate the file psa_crypto_driver_wrapper.c. """ @@ -59,27 +61,29 @@ def validate_json(driverjson_data: list, driverschema: list) -> bool: Validate the Driver JSON against schema """ try: - validate(instance = driverjson_data, schema = driverschema) + validate(instance=driverjson_data, schema=driverschema) except jsonschema.exceptions.ValidationError as err: print(err) - err = "The driver JSON data is InValid" + print("The driver JSON data is InValid") return False - message = "The driver JSON data is Valid" return True -def merge_driverjsonfiles(mbedtls_root: str, json_directory: str, jsondriverlistName: str) -> Tuple[bool,list]: +def merge_driverjsonfiles(mbedtls_root: str, json_directory: str, \ + jsondriver_list: str) -> Tuple[bool, list]: """ Merge driver JSON files into a single ordered JSON after validation. """ result = list() driverlist = list() - with open(os.path.join(mbedtls_root, 'scripts/data_files/driver_jsons/driver_transparent_schema.json'), 'r') as file: + with open(os.path.join(mbedtls_root, \ + 'scripts/data_files/driver_jsons/driver_transparent_schema.json'), 'r') as file: transparent_driver_schema = json.load(file) - with open(os.path.join(mbedtls_root, 'scripts/data_files/driver_jsons/driver_opaque_schema.json'), 'r') as file: + with open(os.path.join(mbedtls_root, \ + 'scripts/data_files/driver_jsons/driver_opaque_schema.json'), 'r') as file: opaque_driver_schema = json.load(file) - with open(os.path.join(json_directory, jsondriverlistName), 'r') as driverlistfile: + with open(os.path.join(json_directory, jsondriver_list), 'r') as driverlistfile: driverlist = json.load(driverlistfile) for file_name in driverlist: with open(os.path.join(json_directory, file_name), 'r') as infile: @@ -91,7 +95,7 @@ def merge_driverjsonfiles(mbedtls_root: str, json_directory: str, jsondriverlist else: ret = False print("Unknown Driver type") - if ret == False: + if ret is False: return ret, [] result.append(json_data) return True, result @@ -103,8 +107,10 @@ def main() -> int: """ def_arg_mbedtls_root = build_tree.guess_mbedtls_root() def_arg_output_dir = os.path.join(def_arg_mbedtls_root, 'library') - def_arg_template_dir = os.path.join(def_arg_mbedtls_root, 'scripts/data_files/driver_templates/') - def_arg_json_dir = os.path.join(def_arg_mbedtls_root, 'scripts/data_files/driver_jsons/') + def_arg_template_dir = os.path.join(def_arg_mbedtls_root, \ + 'scripts/data_files/driver_templates/') + def_arg_json_dir = os.path.join(def_arg_mbedtls_root, \ + 'scripts/data_files/driver_jsons/') parser = argparse.ArgumentParser() parser.add_argument('--mbedtls-root', nargs='?', default=def_arg_mbedtls_root, @@ -117,14 +123,14 @@ def main() -> int: default=def_arg_output_dir, help='output file\'s location') args = parser.parse_args() - mbedtls_root = os.path.abspath(args.mbedtls_root) - output_directory = args.output_directory + mbedtls_root = os.path.abspath(args.mbedtls_root) + output_directory = args.output_directory template_directory = args.template_dir - json_directory = args.json_dir + json_directory = args.json_dir # load list of driver jsons from driverlist.json ret, merged_driverjson = merge_driverjsonfiles(mbedtls_root, json_directory, 'driverlist.json') - if ret == False: + if ret is False: return 1 generate_driver_wrapper_file(template_directory, output_directory, merged_driverjson) From 25876b8abb288d64a156e7a3d51df0f2ac575dc3 Mon Sep 17 00:00:00 2001 From: Archana Date: Mon, 10 Jan 2022 01:55:26 +0530 Subject: [PATCH 0296/1028] Adding JSONSchema to CI scripts jsonschema is added to the ci scripts and Dockerfile Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- scripts/driver.requirements.txt | 4 +++- tests/docker/bionic/Dockerfile | 9 +++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/scripts/driver.requirements.txt b/scripts/driver.requirements.txt index 38838f58bc..2a1bef7e67 100644 --- a/scripts/driver.requirements.txt +++ b/scripts/driver.requirements.txt @@ -13,4 +13,6 @@ markupsafe < 2.1 Jinja2 >= 2.10.1 # Jinja2 >=2.10, <3.0 needs a separate package for type annotations types-Jinja2 - +# jsonschema > 3.2.0 is not compatible with Python 3.5, force 3.2.0 +jsonschema >= 3.2.0 +types-jsonschema diff --git a/tests/docker/bionic/Dockerfile b/tests/docker/bionic/Dockerfile index 5580679754..8fa58143eb 100644 --- a/tests/docker/bionic/Dockerfile +++ b/tests/docker/bionic/Dockerfile @@ -60,13 +60,10 @@ RUN apt-get update \ pkg-config \ && rm -rf /var/lib/apt/lists/* -# Jinja2 is required for driver dispatch code generation. +# Jinja2 and jsonschema is required for driver dispatch code generation. RUN python3 -m pip install \ - jinja2==2.10.1 types-jinja2 - - -RUN python3 -m pip install \ - jsonschema + jinja2==2.10.1 types-jinja2 \ + jsonschema==3.2.0 types-jsonschema # Build a static, legacy openssl from sources with sslv3 enabled # Based on https://gist.github.com/bmaupin/8caca3a1e8c3c5686141 (build-openssl.sh) From 634e0d25cb9e75c54c72391be28da4c2f7a1def0 Mon Sep 17 00:00:00 2001 From: Archana Date: Mon, 10 Jan 2022 17:37:42 +0530 Subject: [PATCH 0297/1028] Update check_names.py to exclude autogen file Don't look for MBED keywords on the autogenerated psa_crypto_driver_wrappers.c file. This is needed since the naming of constants is dependent on the driver json and the naming conventions used through the library is stuck at a place where it does not swing either way ( mbedtls_ / psa_). Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- tests/scripts/check_names.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/check_names.py b/tests/scripts/check_names.py index 8bb4923b77..2e39271306 100755 --- a/tests/scripts/check_names.py +++ b/tests/scripts/check_names.py @@ -279,7 +279,7 @@ class CodeParser(): "library/*.c", "3rdparty/everest/library/everest.c", "3rdparty/everest/library/x25519.c" - ]) + ], ["library/psa_crypto_driver_wrappers.c"]) symbols = self.parse_symbols() # Remove identifier macros like mbedtls_printf or mbedtls_calloc From e17071a5ee1bcce1e3a6e239b4b60424796b001d Mon Sep 17 00:00:00 2001 From: Archana Date: Tue, 11 Jan 2022 02:40:46 +0530 Subject: [PATCH 0298/1028] Update Dockerfile with missing packages Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- tests/docker/bionic/Dockerfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/docker/bionic/Dockerfile b/tests/docker/bionic/Dockerfile index 8fa58143eb..4b5739cce7 100644 --- a/tests/docker/bionic/Dockerfile +++ b/tests/docker/bionic/Dockerfile @@ -60,6 +60,11 @@ RUN apt-get update \ pkg-config \ && rm -rf /var/lib/apt/lists/* +# The following packages are required for validating Python files. +# The version of Pylint is set to 2.4.4 to match CI. +RUN python3 -m pip install \ + packaging mypy pylint==2.4.4 + # Jinja2 and jsonschema is required for driver dispatch code generation. RUN python3 -m pip install \ jinja2==2.10.1 types-jinja2 \ From fdbbcba3eb771fb0aae8679448a09678709aa93c Mon Sep 17 00:00:00 2001 From: Archana Date: Sun, 27 Feb 2022 05:38:55 +0530 Subject: [PATCH 0299/1028] JSONschema and python improvements * JSON Schema manually updated to be more semantically valid. * Python script improved to be more verbose with exceptions * Templating file improved by adding an additional macro. Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- .../driver_jsons/driver_opaque_schema.json | 90 ++++++----------- .../driver_transparent_schema.json | 92 ++++++----------- .../mbedtls_test_opaque_driver.json | 12 +-- .../mbedtls_test_transparent_driver.json | 10 +- .../driver_templates/OS-template-opaque.jinja | 15 +-- .../OS-template-transparent.jinja | 15 +-- .../psa_crypto_driver_wrappers.c.jinja | 28 ++++-- scripts/generate_driver_wrappers.py | 99 +++++++++++++------ 8 files changed, 176 insertions(+), 185 deletions(-) diff --git a/scripts/data_files/driver_jsons/driver_opaque_schema.json b/scripts/data_files/driver_jsons/driver_opaque_schema.json index 53660c8e95..4a769f0bda 100644 --- a/scripts/data_files/driver_jsons/driver_opaque_schema.json +++ b/scripts/data_files/driver_jsons/driver_opaque_schema.json @@ -2,25 +2,31 @@ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { - "prefix": { + "_comment": { "type": "string" }, + "prefix": { + "type": "string", + "pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$" + }, "type": { - "type": "string" + "type": "string", + "const": ["opaque"] }, "location": { - "type": "string" + "type": ["integer","string"], + "pattern": "^(0x|0X)?[a-fA-F0-9]+$" }, - "dependency": { + "mbedtls/h_depend_on": { "type": "string" }, "headers": { "type": "array", - "items": [ - { + "items": { "type": "string" - } - ] + }, + "minItems": 1, + "uniqueItems": true }, "capabilities": { "type": "array", @@ -31,71 +37,33 @@ "_comment": { "type": "string" }, - "depend_on": { + "mbedtls/c_depend_on": { "type": "string" }, "entry_points": { "type": "array", - "items": [ - { - "type": "string" + "items": { + "type": "string", + "enum": ["import_key", "export_key", "export_public_key", + "copy_key", "get_builtin_key"] }, - { - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "_comment", - "depend_on", - "entry_points" - ] - }, - { - "type": "object", - "properties": { - "_comment": { - "type": "string" - }, - "depend_on": { - "type": "string" - }, - "entry_points": { - "type": "array", - "items": [ - { - "type": "string" - }, - { - "type": "string" - } - ] + "minItems": 1, + "uniqueItems": true }, "name": { "type": "object", - "properties": { - "copy_key": { - "type": "string" - }, - "get_builtin_key": { - "type": "string" + "patternProperties": { + "^[A-Z_a-z][0-9A-Z_a-z]*$": { + "type": "string", + "pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$" } }, - "required": [ - "copy_key", - "get_builtin_key" - ] + "minItems": 1, + "uniqueItems": true } }, "required": [ - "_comment", - "depend_on", - "entry_points", - "name" + "entry_points" ] } ] @@ -105,8 +73,6 @@ "prefix", "type", "location", - "dependency", - "headers", "capabilities" ] } diff --git a/scripts/data_files/driver_jsons/driver_transparent_schema.json b/scripts/data_files/driver_jsons/driver_transparent_schema.json index dd1178d63a..bf86ceb614 100644 --- a/scripts/data_files/driver_jsons/driver_transparent_schema.json +++ b/scripts/data_files/driver_jsons/driver_transparent_schema.json @@ -2,22 +2,27 @@ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { - "prefix": { + "_comment": { "type": "string" }, + "prefix": { + "type": "string", + "pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$" + }, "type": { - "type": "string" + "type": "string", + "const": ["transparent"] }, - "dependency": { + "mbedtls/h_depend_on": { "type": "string" }, "headers": { "type": "array", - "items": [ - { + "items": { "type": "string" - } - ] + }, + "minItems": 1, + "uniqueItems": true }, "capabilities": { "type": "array", @@ -28,79 +33,46 @@ "_comment": { "type": "string" }, - "depend_on": { + "mbedtls/c_depend_on": { "type": "string" }, "entry_points": { "type": "array", - "items": [ - { - "type": "string" + "items": { + "type": "string", + "enum": ["import_key", "export_key", "export_public_key", + "copy_key", "get_builtin_key"] }, - { - "type": "string" - } - ] - }, - "fallback": { - "type": "boolean" - } - }, - "required": [ - "_comment", - "depend_on", - "entry_points", - "fallback" - ] - }, - { - "type": "object", - "properties": { - "_comment": { - "type": "string" - }, - "depend_on": { - "type": "string" - }, - "entry_points": { - "type": "array", - "items": [ - { - "type": "string" - } - ] - }, - "fallback": { - "type": "boolean" + "minItems": 1, + "uniqueItems": true }, "name": { "type": "object", - "properties": { - "export_public_key": { - "type": "string" + "patternProperties": { + "^[A-Z_a-z][0-9A-Z_a-z]*$": { + "type": "string", + "pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$" } }, - "required": [ - "export_public_key" - ] + "minItems": 1, + "uniqueItems": true + }, + "fallback": { + "type": "boolean", + "default": "false" } }, "required": [ - "_comment", - "depend_on", - "entry_points", - "fallback", - "name" + "entry_points" ] } - ] + ], + "default": [] } }, "required": [ "prefix", "type", - "dependency", - "headers", "capabilities" ] } diff --git a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json index 3747404559..a38287d5ad 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json @@ -2,18 +2,18 @@ "prefix": "mbedtls_test", "type": "opaque", "location": "0x7fffff", - "dependency": "defined(PSA_CRYPTO_DRIVER_TEST)", + "mbedtls/h_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", "headers": ["test/drivers/test_driver.h"], "capabilities": [ { - "_comment": "The mbedTLS opaque driver supports import key/export key/export_public key", - "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "_comment": "The Mbed TLS opaque driver supports import key/export key/export_public key", + "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["import_key", "export_key", "export_public_key"] }, { - "_comment": "The mbedTLS opaque driver supports copy key/ get builtin key", - "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", - "entry_points": ["copy_key","get_builtin_key"], + "_comment": "The Mbed TLS opaque driver supports copy key/ get builtin key", + "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "entry_points": ["copy_key", "get_builtin_key"], "name": {"copy_key":"mbedtls_test_opaque_copy_key", "get_builtin_key":"mbedtls_test_opaque_get_builtin_key"} } ] diff --git a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json index 52f6cd3006..5c9b9feac0 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json @@ -1,18 +1,18 @@ { "prefix": "mbedtls_test", "type": "transparent", - "dependency": "defined(PSA_CRYPTO_DRIVER_TEST)", + "mbedtls/h_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", "headers": ["test/drivers/test_driver.h"], "capabilities": [ { - "_comment": "The mbedTLS transparent driver supports import key/export key", - "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "_comment": "The Mbed TLS transparent driver supports import key/export key", + "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["import_key", "export_key"], "fallback": true }, { - "_comment": "The mbedTLS transparent driver supports export_public key", - "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "_comment": "The Mbed TLS transparent driver supports export_public key", + "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["export_public_key"], "fallback": true, "name": {"export_public_key":"mbedtls_test_transparent_export_public_key"} diff --git a/scripts/data_files/driver_templates/OS-template-opaque.jinja b/scripts/data_files/driver_templates/OS-template-opaque.jinja index f11ac770b8..115e22c860 100644 --- a/scripts/data_files/driver_templates/OS-template-opaque.jinja +++ b/scripts/data_files/driver_templates/OS-template-opaque.jinja @@ -1,13 +1,16 @@ +{# One Shot function's dispatch code for opaque drivers. +Expected inputs: +* drivers: the list of driver descriptions. +* entry_point: the name of the entry point that this function dispatches to. +* entry_point_param(driver): the parameters to pass to the entry point. +* nest_indent: number of extra spaces to indent the code to. +-#} {% for driver in drivers if driver.type == "opaque" -%} {% for capability in driver.capabilities if entry_point in capability.entry_points -%} -#if ({% if capability.depend_on is defined -%}{{ capability.depend_on }} {% else -%} {{ 1 }} {% endif %}) +#if ({% if capability['mbedtls/c_depend_on'] is defined -%}{{ capability['mbedtls/c_depend_on'] }} {% else -%} {{ 1 }} {% endif %}) {%- filter indent(width = nest_indent) %} case {{ driver.location }}: - {% if capability.name is defined and entry_point in capability.name.keys() -%} - return({{ capability.name[entry_point]}}({{entry_point_attributes(driver) | indent(20)}})); - {% else -%} - return({{driver.prefix}}_{{driver.type}}_{{entry_point}}({{entry_point_attributes(driver) | indent(20)}})); - {% endif -%} + return( {{ entry_point_name(capability, entry_point, driver) }}({{entry_point_param(driver) | indent(20)}})); {% endfilter -%} #endif {% endfor %} diff --git a/scripts/data_files/driver_templates/OS-template-transparent.jinja b/scripts/data_files/driver_templates/OS-template-transparent.jinja index 4eadd1e40b..9ba115568b 100644 --- a/scripts/data_files/driver_templates/OS-template-transparent.jinja +++ b/scripts/data_files/driver_templates/OS-template-transparent.jinja @@ -1,12 +1,15 @@ +{# One Shot function's dispatch code for transparent drivers. +Expected inputs: +* drivers: the list of driver descriptions. +* entry_point: the name of the entry point that this function dispatches to. +* entry_point_param(driver): the parameters to pass to the entry point. +* nest_indent: number of extra spaces to indent the code to. +-#} {% for driver in drivers if driver.type == "transparent" -%} {% for capability in driver.capabilities if entry_point in capability.entry_points -%} -#if ({% if capability.depend_on is defined -%}{{ capability.depend_on }} {% else -%} {{ 1 }} {% endif %}) +#if ({% if capability['mbedtls/c_depend_on'] is defined -%}{{ capability['mbedtls/c_depend_on'] }} {% else -%} {{ 1 }} {% endif %}) {%- filter indent(width = nest_indent) %} -{% if capability.name is defined and entry_point in capability.name.keys() -%} -status = {{ capability.name[entry_point]}}({{entry_point_attributes(driver) | indent(20)}}); -{% else -%} -status = {{driver.prefix}}_{{driver.type}}_{{entry_point}}({{entry_point_attributes(driver) | indent(20)}}); -{% endif -%} +status = {{ entry_point_name(capability, entry_point, driver) }}({{entry_point_param(driver) | indent(20)}}); if( status != PSA_ERROR_NOT_SUPPORTED ) return( status ); diff --git a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja index bea02a506c..b90a9c89d1 100644 --- a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja +++ b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja @@ -1,7 +1,7 @@ /* * Functions to delegate cryptographic operations to an available * and appropriate accelerator. - * Warning: This file will be auto-generated in the future. + * Warning: This file is now auto-generated. */ /* Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 @@ -39,13 +39,15 @@ #if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) {% for driver in drivers -%} /* Headers for {{driver.prefix}} {{driver.type}} driver */ -{% if driver.dependency is defined -%} -#if {{ driver.dependency }} +{% if driver['mbedtls/h_depend_on'] is defined -%} +#if {{ driver['mbedtls/h_depend_on'] }} {% endif -%} {% for header in driver.headers -%} #include "{{ header }}" {% endfor %} +{% if driver['mbedtls/h_depend_on'] is defined -%} #endif +{% endif -%} {% endfor %} #endif /* MBEDTLS_PSA_CRYPTO_DRIVERS */ /* END-driver headers */ @@ -60,6 +62,16 @@ {% endfor %} /* END-driver id */ +/* BEGIN-Common Macro definitions */ +{% macro entry_point_name(capability, entry_point, driver) -%} + {% if capability.name is defined and entry_point in capability.name.keys() -%} + {{ capability.name[entry_point]}} + {% else -%} + {{driver.prefix}}_{{driver.type}}_{{entry_point}} + {% endif -%} +{% endmacro %} +/* 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 @@ -595,7 +607,7 @@ psa_status_t psa_driver_wrapper_import_key( size_t *bits ) { {% set entry_point = "import_key" -%} -{% macro entry_point_attributes(driver) -%} +{% macro entry_point_param(driver) -%} attributes, data, data_length, @@ -677,7 +689,7 @@ psa_status_t psa_driver_wrapper_export_key( { {% set entry_point = "export_key" -%} -{% macro entry_point_attributes(driver) -%} +{% macro entry_point_param(driver) -%} attributes, key_buffer, key_buffer_size, @@ -740,7 +752,7 @@ psa_status_t psa_driver_wrapper_export_public_key( { {% set entry_point = "export_public_key" -%} -{% macro entry_point_attributes(driver) -%} +{% macro entry_point_param(driver) -%} attributes, key_buffer, key_buffer_size, @@ -812,7 +824,7 @@ psa_status_t psa_driver_wrapper_get_builtin_key( uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ) { {% set entry_point = "get_builtin_key" -%} -{% macro entry_point_attributes(driver) -%} +{% macro entry_point_param(driver) -%} slot_number, attributes, key_buffer, @@ -845,7 +857,7 @@ psa_status_t psa_driver_wrapper_copy_key( size_t *target_key_buffer_length ) { {% set entry_point = "copy_key" -%} -{% macro entry_point_attributes(driver) -%} +{% macro entry_point_param(driver) -%} attributes, source_key, source_key_length, diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 3b6032028b..3d9be88e2f 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -23,13 +23,15 @@ import sys import os import json -from typing import Tuple +from typing import Tuple, NewType import argparse import jsonschema -from jsonschema import validate import jinja2 from mbedtls_dev import build_tree +JSONSchema = NewType('JSONSchema', object) +Driver = NewType('Driver', object) + def render(template_path: str, driver_jsoncontext: list) -> str: """ Render template from the input file and driver JSON. @@ -56,45 +58,68 @@ def generate_driver_wrapper_file(template_dir: str, \ out_file.write(result) -def validate_json(driverjson_data: list, driverschema: list) -> bool: +def validate_json(driverjson_data: Driver, driverschema_list: dict) -> bool: """ - Validate the Driver JSON against schema + Validate the Driver JSON against an appropriate schema + the schema passed could be that matching an opaque/ transparent driver. """ + + driver_type = driverjson_data["type"] + driver_prefix = driverjson_data["prefix"] try: - validate(instance=driverjson_data, schema=driverschema) + _schema = driverschema_list[driver_type] + jsonschema.validate(instance=driverjson_data, schema=_schema) + + except KeyError as err: + # This could happen if the driverjson_data.type does not exist in the passed in schema list + # schemas = {'transparent': transparent_driver_schema, 'opaque': opaque_driver_schema} + # Print onto stdout and stderr. + print("Unknown Driver type " + driver_type + + " for driver " + driver_prefix, str(err)) + print("Unknown Driver type " + driver_type + + " for driver " + driver_prefix, str(err), file=sys.stderr) + return False + except jsonschema.exceptions.ValidationError as err: - print(err) - print("The driver JSON data is InValid") + # Print onto stdout and stderr. + print("Error: Failed to validate data file: {} using schema: {}." + "\n Exception Message: \"{}\"" + " ".format(driverjson_data, _schema, str(err))) + print("Error: Failed to validate data file: {} using schema: {}." + "\n Exception Message: \"{}\"" + " ".format(driverjson_data, _schema, str(err)), file=sys.stderr) return False return True -def merge_driverjsonfiles(mbedtls_root: str, json_directory: str, \ +def read_driver_descriptions(mbedtls_root: str, json_directory: str, \ jsondriver_list: str) -> Tuple[bool, list]: """ Merge driver JSON files into a single ordered JSON after validation. """ - result = list() - driverlist = list() - with open(os.path.join(mbedtls_root, \ - 'scripts/data_files/driver_jsons/driver_transparent_schema.json'), 'r') as file: + result = [] + with open(os.path.join(mbedtls_root, + 'scripts', + 'data_files', + 'driver_jsons', + 'driver_transparent_schema.json'), 'r') as file: transparent_driver_schema = json.load(file) - with open(os.path.join(mbedtls_root, \ - 'scripts/data_files/driver_jsons/driver_opaque_schema.json'), 'r') as file: + with open(os.path.join(mbedtls_root, + 'scripts', + 'data_files', + 'driver_jsons', + 'driver_opaque_schema.json'), 'r') as file: opaque_driver_schema = json.load(file) + driver_schema_list = {'transparent':transparent_driver_schema, + 'opaque':opaque_driver_schema} + with open(os.path.join(json_directory, jsondriver_list), 'r') as driverlistfile: driverlist = json.load(driverlistfile) for file_name in driverlist: with open(os.path.join(json_directory, file_name), 'r') as infile: json_data = json.load(infile) - if json_data['type'] == 'transparent': - ret = validate_json(json_data, transparent_driver_schema) - elif json_data['type'] == 'opaque': - ret = validate_json(json_data, opaque_driver_schema) - else: - ret = False - print("Unknown Driver type") + ret = validate_json(json_data, driver_schema_list) if ret is False: return ret, [] result.append(json_data) @@ -104,35 +129,45 @@ def merge_driverjsonfiles(mbedtls_root: str, json_directory: str, \ def main() -> int: """ Main with command line arguments. + returns 1 when read_driver_descriptions returns False """ def_arg_mbedtls_root = build_tree.guess_mbedtls_root() def_arg_output_dir = os.path.join(def_arg_mbedtls_root, 'library') - def_arg_template_dir = os.path.join(def_arg_mbedtls_root, \ - 'scripts/data_files/driver_templates/') - def_arg_json_dir = os.path.join(def_arg_mbedtls_root, \ - 'scripts/data_files/driver_jsons/') + def_arg_template_dir = os.path.join(def_arg_mbedtls_root, + 'scripts', + 'data_files', + 'driver_templates') + def_arg_json_dir = os.path.join(def_arg_mbedtls_root, + 'scripts', + 'data_files', + 'driver_jsons') parser = argparse.ArgumentParser() parser.add_argument('--mbedtls-root', nargs='?', default=def_arg_mbedtls_root, help='root directory of mbedtls source code') - parser.add_argument('--template_dir', nargs='?', default=def_arg_template_dir, + parser.add_argument('--template-dir', nargs='?', default=def_arg_template_dir, help='root directory of mbedtls source code') - parser.add_argument('--json_dir', nargs='?', default=def_arg_json_dir, + parser.add_argument('--json-dir', nargs='?', default=def_arg_json_dir, help='root directory of mbedtls source code') - parser.add_argument('output_directory', nargs='?', + parser.add_argument('output-directory', nargs='?', default=def_arg_output_dir, help='output file\'s location') args = parser.parse_args() mbedtls_root = os.path.abspath(args.mbedtls_root) - output_directory = args.output_directory + output_directory = def_arg_output_dir + if args.template_dir is None: + args.template_dir = os.path.join(args.mbedtls_root, def_arg_template_dir) template_directory = args.template_dir + if args.json_dir is None: + args.json_dir = os.path.join(args.mbedtls_root, def_arg_json_dir) json_directory = args.json_dir - # load list of driver jsons from driverlist.json - ret, merged_driverjson = merge_driverjsonfiles(mbedtls_root, json_directory, 'driverlist.json') + # Read and validate list of driver jsons from driverlist.json + ret, merged_driver_json = read_driver_descriptions(mbedtls_root, json_directory, + 'driverlist.json') if ret is False: return 1 - generate_driver_wrapper_file(template_directory, output_directory, merged_driverjson) + generate_driver_wrapper_file(template_directory, output_directory, merged_driver_json) return 0 From a78dc70a502da2e3096861975052fbb0498e2429 Mon Sep 17 00:00:00 2001 From: Archana Date: Sun, 13 Mar 2022 17:57:45 +0530 Subject: [PATCH 0300/1028] Fix JsonObject type for MyPy Workaround a MyPy error by marking the driver json Object as of type dict and indexable. Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 3d9be88e2f..3c71202d3b 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -30,7 +30,9 @@ import jinja2 from mbedtls_dev import build_tree JSONSchema = NewType('JSONSchema', object) -Driver = NewType('Driver', object) +# The Driver is an Object, but practically it's indexable and can called a dictionary to +# keep MyPy happy till MyPy comes with a more composite type for JsonObjects. +Driver = NewType('Driver', dict) def render(template_path: str, driver_jsoncontext: list) -> str: """ @@ -63,7 +65,6 @@ def validate_json(driverjson_data: Driver, driverschema_list: dict) -> bool: Validate the Driver JSON against an appropriate schema the schema passed could be that matching an opaque/ transparent driver. """ - driver_type = driverjson_data["type"] driver_prefix = driverjson_data["prefix"] try: From 46886247ad6ec8ec20a96476077639c273efbb3e Mon Sep 17 00:00:00 2001 From: Archana Date: Sun, 13 Mar 2022 19:49:11 +0530 Subject: [PATCH 0301/1028] Driver Wrappers code gen migration guide updated. Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- ...-driver-wrappers-codegen-migration-guide.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/docs/proposed/psa-driver-wrappers-codegen-migration-guide.md b/docs/proposed/psa-driver-wrappers-codegen-migration-guide.md index 4f82bedd54..222788322a 100644 --- a/docs/proposed/psa-driver-wrappers-codegen-migration-guide.md +++ b/docs/proposed/psa-driver-wrappers-codegen-migration-guide.md @@ -13,20 +13,28 @@ During the process of implementation there might be minor variations wrt version ## Prerequisites -Python3 and Jinja2 rev 2.10.1 +Python3, Jinja2 rev 2.10.1 and jsonschema rev 3.2.0 ## Feature Version -1.0 +1.1 ### What's critical for a migrating user The Driver Wrapper auto generation project is designed to use a python templating library ( Jinja2 ) to render templates based on drivers that are defined using a Driver descrioption JSON file(s). -While that is the larger goal, for version 1.0 here's what's changed +While that is the larger goal, for version 1.1 here's what's changed #### What's changed (1) psa_crypto_driver_wrappers.c will from this point on be auto generated. -(2) The auto generation is based on the template file at scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja. -(3) So while all driver wrapper templating support is yet to come in, the library user will need to patch into the template file as needed, this could be read as replacing the template file with the current psa_crypto_driver_wrappers.c file maintained by the library user. +(2) The auto generation is based on the template file at **scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja**. +(3) The driver JSONS to be used for generating the psa_crypto_driver_wrappers.c file can be found at **scripts/data_files/driver_jsons/** as their default location, this path includes the schemas against which the driver schemas will be validated (driver_opaque_schema.json, driver_transparent_schema.json) and a driverlist.json which specifies the drivers to be considered and the order in which they want to be called into. The default location for driverlist.json and driver JSONS can be overloaded by passing an argument --json-dir while running the script generate_driver_wrappers.py. +(4) While the complete driver wrapper templating support is yet to come in, if the library user sees a need to patch psa_crypto_driver_wrappers.c file, the userwill need to patch into the template file as needed (psa_crypto_driver_wrappers.c.jinja). + +#### How to set your driver up + +Please refer to psa-driver-interface.md for information on how a driver schema can be written. +One can also refer to the example test drivers/ JSON schemas under **scripts/data_files/driver_jsons/**. + +The JSON file 'driverlist.json' is meant to be edited by the user to reftlect the drivers one wants to use on a device. The order in which the drivers are passed is also essential if/when there are multiple transparent drivers on a given system to retain the same order in the templating. From 01aa39e3ff189fff96022c965c126f02c737ba03 Mon Sep 17 00:00:00 2001 From: Archana Date: Mon, 14 Mar 2022 15:29:00 +0530 Subject: [PATCH 0302/1028] Arg parse improvements Arg parse improved to update the input params path relative to mbedtls_root passed, if the other params are not explicitly passed. Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 34 ++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 3c71202d3b..c025ed3296 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -133,34 +133,34 @@ def main() -> int: returns 1 when read_driver_descriptions returns False """ def_arg_mbedtls_root = build_tree.guess_mbedtls_root() - def_arg_output_dir = os.path.join(def_arg_mbedtls_root, 'library') - def_arg_template_dir = os.path.join(def_arg_mbedtls_root, - 'scripts', - 'data_files', - 'driver_templates') - def_arg_json_dir = os.path.join(def_arg_mbedtls_root, - 'scripts', - 'data_files', - 'driver_jsons') parser = argparse.ArgumentParser() parser.add_argument('--mbedtls-root', nargs='?', default=def_arg_mbedtls_root, help='root directory of mbedtls source code') - parser.add_argument('--template-dir', nargs='?', default=def_arg_template_dir, + parser.add_argument('--template-dir', nargs='?', help='root directory of mbedtls source code') - parser.add_argument('--json-dir', nargs='?', default=def_arg_json_dir, + parser.add_argument('--json-dir', nargs='?', help='root directory of mbedtls source code') - parser.add_argument('output-directory', nargs='?', - default=def_arg_output_dir, help='output file\'s location') + parser.add_argument('output_directory', nargs='?', + help='output file\'s location') args = parser.parse_args() mbedtls_root = os.path.abspath(args.mbedtls_root) - output_directory = def_arg_output_dir if args.template_dir is None: - args.template_dir = os.path.join(args.mbedtls_root, def_arg_template_dir) - template_directory = args.template_dir + args.template_dir = os.path.join(mbedtls_root, + 'scripts', + 'data_files', + 'driver_templates') if args.json_dir is None: - args.json_dir = os.path.join(args.mbedtls_root, def_arg_json_dir) + args.json_dir = os.path.join(mbedtls_root, + 'scripts', + 'data_files', + 'driver_jsons') + if args.output_directory is None: + args.output_directory = os.path.join(mbedtls_root, 'library') + + output_directory = args.output_directory + template_directory = args.template_dir json_directory = args.json_dir # Read and validate list of driver jsons from driverlist.json From 22c78278763661f92513dc40bb847464bf0cbd4d Mon Sep 17 00:00:00 2001 From: Archana Date: Mon, 11 Apr 2022 10:12:08 +0530 Subject: [PATCH 0303/1028] Schema and script improvements Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- .../driver_jsons/driver_opaque_schema.json | 17 +++------- .../driver_transparent_schema.json | 20 ++++------- .../mbedtls_test_opaque_driver.json | 2 +- .../mbedtls_test_transparent_driver.json | 2 +- .../psa_crypto_driver_wrappers.c.jinja | 34 +++++++------------ scripts/generate_driver_wrappers.py | 10 +++--- 6 files changed, 30 insertions(+), 55 deletions(-) diff --git a/scripts/data_files/driver_jsons/driver_opaque_schema.json b/scripts/data_files/driver_jsons/driver_opaque_schema.json index 4a769f0bda..946977eb7e 100644 --- a/scripts/data_files/driver_jsons/driver_opaque_schema.json +++ b/scripts/data_files/driver_jsons/driver_opaque_schema.json @@ -25,8 +25,7 @@ "items": { "type": "string" }, - "minItems": 1, - "uniqueItems": true + "default": [] }, "capabilities": { "type": "array", @@ -43,23 +42,17 @@ "entry_points": { "type": "array", "items": { - "type": "string", - "enum": ["import_key", "export_key", "export_public_key", - "copy_key", "get_builtin_key"] - }, - "minItems": 1, - "uniqueItems": true + "type": "string" + } }, - "name": { + "names": { "type": "object", "patternProperties": { "^[A-Z_a-z][0-9A-Z_a-z]*$": { "type": "string", "pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$" } - }, - "minItems": 1, - "uniqueItems": true + } } }, "required": [ diff --git a/scripts/data_files/driver_jsons/driver_transparent_schema.json b/scripts/data_files/driver_jsons/driver_transparent_schema.json index bf86ceb614..06fea55594 100644 --- a/scripts/data_files/driver_jsons/driver_transparent_schema.json +++ b/scripts/data_files/driver_jsons/driver_transparent_schema.json @@ -21,8 +21,7 @@ "items": { "type": "string" }, - "minItems": 1, - "uniqueItems": true + "default": [] }, "capabilities": { "type": "array", @@ -39,23 +38,17 @@ "entry_points": { "type": "array", "items": { - "type": "string", - "enum": ["import_key", "export_key", "export_public_key", - "copy_key", "get_builtin_key"] - }, - "minItems": 1, - "uniqueItems": true + "type": "string" + } }, - "name": { + "names": { "type": "object", "patternProperties": { "^[A-Z_a-z][0-9A-Z_a-z]*$": { "type": "string", "pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$" } - }, - "minItems": 1, - "uniqueItems": true + } }, "fallback": { "type": "boolean", @@ -66,8 +59,7 @@ "entry_points" ] } - ], - "default": [] + ] } }, "required": [ diff --git a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json index a38287d5ad..c31f964909 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json @@ -14,7 +14,7 @@ "_comment": "The Mbed TLS opaque driver supports copy key/ get builtin key", "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["copy_key", "get_builtin_key"], - "name": {"copy_key":"mbedtls_test_opaque_copy_key", "get_builtin_key":"mbedtls_test_opaque_get_builtin_key"} + "names": {"copy_key":"mbedtls_test_opaque_copy_key", "get_builtin_key":"mbedtls_test_opaque_get_builtin_key"} } ] } diff --git a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json index 5c9b9feac0..db31ff4085 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json @@ -15,7 +15,7 @@ "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["export_public_key"], "fallback": true, - "name": {"export_public_key":"mbedtls_test_transparent_export_public_key"} + "names": {"export_public_key":"mbedtls_test_transparent_export_public_key"} } ] diff --git a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja index b90a9c89d1..f38479df08 100644 --- a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja +++ b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja @@ -64,8 +64,8 @@ /* BEGIN-Common Macro definitions */ {% macro entry_point_name(capability, entry_point, driver) -%} - {% if capability.name is defined and entry_point in capability.name.keys() -%} - {{ capability.name[entry_point]}} + {% if capability.name is defined and entry_point in capability.names.keys() -%} + {{ capability.names[entry_point]}} {% else -%} {{driver.prefix}}_{{driver.type}}_{{entry_point}} {% endif -%} @@ -606,7 +606,7 @@ psa_status_t psa_driver_wrapper_import_key( size_t *key_buffer_length, size_t *bits ) { -{% set entry_point = "import_key" -%} +{% with entry_point = "import_key" -%} {% macro entry_point_param(driver) -%} attributes, data, @@ -655,11 +655,9 @@ bits /* Key is stored in the slot in export representation, so * cycle through all known transparent accelerators */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -/* BEGIN-Templating */ {% with nest_indent=12 %} {% include "OS-template-transparent.jinja" -%} {% endwith -%} -/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ /* Fell through, meaning no accelerator supports this operation */ @@ -669,17 +667,15 @@ bits key_buffer_length, bits ) ); /* Add cases for opaque driver here */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -/* BEGIN-Templating */ {% with nest_indent=8 %} {% include "OS-template-opaque.jinja" -%} {% endwith -%} -/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ default: (void)status; return( PSA_ERROR_INVALID_ARGUMENT ); } - +{% endwith %} } psa_status_t psa_driver_wrapper_export_key( @@ -688,7 +684,7 @@ psa_status_t psa_driver_wrapper_export_key( uint8_t *data, size_t data_size, size_t *data_length ) { -{% set entry_point = "export_key" -%} +{% with entry_point = "export_key" -%} {% macro entry_point_param(driver) -%} attributes, key_buffer, @@ -733,16 +729,15 @@ data_length /* Add cases for opaque driver here */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -/* BEGIN-Templating */ {% with nest_indent=8 %} {% include "OS-template-opaque.jinja" -%} {% endwith -%} -/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ default: /* Key is declared with a lifetime not known to us */ return( status ); } +{% endwith %} } psa_status_t psa_driver_wrapper_export_public_key( @@ -751,7 +746,7 @@ psa_status_t psa_driver_wrapper_export_public_key( uint8_t *data, size_t data_size, size_t *data_length ) { -{% set entry_point = "export_public_key" -%} +{% with entry_point = "export_public_key" -%} {% macro entry_point_param(driver) -%} attributes, key_buffer, @@ -790,11 +785,9 @@ data_length /* Key is stored in the slot in export representation, so * cycle through all known transparent accelerators */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -/* BEGIN-Templating */ {% with nest_indent=12 %} {% include "OS-template-transparent.jinja" -%} {% endwith -%} -/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ /* Fell through, meaning no accelerator supports this operation */ return( psa_export_public_key_internal( attributes, @@ -806,16 +799,15 @@ data_length /* Add cases for opaque driver here */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -/* BEGIN-Templating */ {% with nest_indent=8 %} {% include "OS-template-opaque.jinja" -%} {% endwith -%} -/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ default: /* Key is declared with a lifetime not known to us */ return( status ); } +{% endwith %} } psa_status_t psa_driver_wrapper_get_builtin_key( @@ -823,7 +815,7 @@ psa_status_t psa_driver_wrapper_get_builtin_key( psa_key_attributes_t *attributes, uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ) { -{% set entry_point = "get_builtin_key" -%} +{% with entry_point = "get_builtin_key" -%} {% macro entry_point_param(driver) -%} slot_number, attributes, @@ -835,11 +827,9 @@ key_buffer_length switch( location ) { #if defined(PSA_CRYPTO_DRIVER_TEST) -/* BEGIN-Templating */ {% with nest_indent=8 %} {% include "OS-template-opaque.jinja" -%} {% endwith -%} -/* END-Templating */ #endif /* PSA_CRYPTO_DRIVER_TEST */ default: (void) slot_number; @@ -848,6 +838,7 @@ key_buffer_length (void) key_buffer_length; return( PSA_ERROR_DOES_NOT_EXIST ); } +{% endwith %} } psa_status_t psa_driver_wrapper_copy_key( @@ -856,7 +847,7 @@ psa_status_t psa_driver_wrapper_copy_key( uint8_t *target_key_buffer, size_t target_key_buffer_size, size_t *target_key_buffer_length ) { -{% set entry_point = "copy_key" -%} +{% with entry_point = "copy_key" -%} {% macro entry_point_param(driver) -%} attributes, source_key, @@ -883,11 +874,9 @@ target_key_buffer_length switch( location ) { #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -/* BEGIN-Templating */ {% with nest_indent=8 %} {% include "OS-template-opaque.jinja" -%} {% endwith -%} -/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ default: (void)source_key; @@ -898,6 +887,7 @@ target_key_buffer_length status = PSA_ERROR_INVALID_ARGUMENT; } return( status ); +{% endwith %} } /* diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index c025ed3296..097edd9707 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -135,12 +135,12 @@ def main() -> int: def_arg_mbedtls_root = build_tree.guess_mbedtls_root() parser = argparse.ArgumentParser() - parser.add_argument('--mbedtls-root', nargs='?', default=def_arg_mbedtls_root, - help='root directory of mbedtls source code') - parser.add_argument('--template-dir', nargs='?', - help='root directory of mbedtls source code') - parser.add_argument('--json-dir', nargs='?', + parser.add_argument('--mbedtls-root', default=def_arg_mbedtls_root, help='root directory of mbedtls source code') + parser.add_argument('--template-dir', + help='directory holding the driver templates') + parser.add_argument('--json-dir', + help='directory holding the driver JSONs') parser.add_argument('output_directory', nargs='?', help='output file\'s location') args = parser.parse_args() From 1776dd902271136e1cd2f11e726f69046d4f127c Mon Sep 17 00:00:00 2001 From: Archana Date: Tue, 12 Apr 2022 13:12:18 +0530 Subject: [PATCH 0304/1028] Doc improvements -Cosmetic Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- docs/proposed/psa-driver-wrappers-codegen-migration-guide.md | 4 ++-- scripts/driver.requirements.txt | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/proposed/psa-driver-wrappers-codegen-migration-guide.md b/docs/proposed/psa-driver-wrappers-codegen-migration-guide.md index 222788322a..9862db9232 100644 --- a/docs/proposed/psa-driver-wrappers-codegen-migration-guide.md +++ b/docs/proposed/psa-driver-wrappers-codegen-migration-guide.md @@ -30,11 +30,11 @@ While that is the larger goal, for version 1.1 here's what's changed (1) psa_crypto_driver_wrappers.c will from this point on be auto generated. (2) The auto generation is based on the template file at **scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja**. (3) The driver JSONS to be used for generating the psa_crypto_driver_wrappers.c file can be found at **scripts/data_files/driver_jsons/** as their default location, this path includes the schemas against which the driver schemas will be validated (driver_opaque_schema.json, driver_transparent_schema.json) and a driverlist.json which specifies the drivers to be considered and the order in which they want to be called into. The default location for driverlist.json and driver JSONS can be overloaded by passing an argument --json-dir while running the script generate_driver_wrappers.py. -(4) While the complete driver wrapper templating support is yet to come in, if the library user sees a need to patch psa_crypto_driver_wrappers.c file, the userwill need to patch into the template file as needed (psa_crypto_driver_wrappers.c.jinja). +(4) While the complete driver wrapper templating support is yet to come in, if the library user sees a need to patch psa_crypto_driver_wrappers.c file, the user will need to patch into the template file as needed (psa_crypto_driver_wrappers.c.jinja). #### How to set your driver up Please refer to psa-driver-interface.md for information on how a driver schema can be written. One can also refer to the example test drivers/ JSON schemas under **scripts/data_files/driver_jsons/**. -The JSON file 'driverlist.json' is meant to be edited by the user to reftlect the drivers one wants to use on a device. The order in which the drivers are passed is also essential if/when there are multiple transparent drivers on a given system to retain the same order in the templating. +The JSON file 'driverlist.json' is meant to be edited by the user to reflect the drivers one wants to use on a device. The order in which the drivers are passed is also essential if/when there are multiple transparent drivers on a given system to retain the same order in the templating. diff --git a/scripts/driver.requirements.txt b/scripts/driver.requirements.txt index 2a1bef7e67..aff0d0e80a 100644 --- a/scripts/driver.requirements.txt +++ b/scripts/driver.requirements.txt @@ -13,6 +13,5 @@ markupsafe < 2.1 Jinja2 >= 2.10.1 # Jinja2 >=2.10, <3.0 needs a separate package for type annotations types-Jinja2 -# jsonschema > 3.2.0 is not compatible with Python 3.5, force 3.2.0 jsonschema >= 3.2.0 types-jsonschema From a2cac3224da64632cf24a168df38c2d449f8caa9 Mon Sep 17 00:00:00 2001 From: Archana Date: Thu, 14 Apr 2022 09:31:28 +0530 Subject: [PATCH 0305/1028] Update and document mbedtls extensions Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- docs/proposed/psa-driver-developer-guide.md | 6 ++++++ scripts/data_files/driver_jsons/driver_opaque_schema.json | 4 ++-- .../data_files/driver_jsons/driver_transparent_schema.json | 4 ++-- .../data_files/driver_jsons/mbedtls_test_opaque_driver.json | 6 +++--- .../driver_jsons/mbedtls_test_transparent_driver.json | 6 +++--- .../data_files/driver_templates/OS-template-opaque.jinja | 2 +- .../driver_templates/OS-template-transparent.jinja | 2 +- .../driver_templates/psa_crypto_driver_wrappers.c.jinja | 6 +++--- 8 files changed, 21 insertions(+), 15 deletions(-) diff --git a/docs/proposed/psa-driver-developer-guide.md b/docs/proposed/psa-driver-developer-guide.md index 70cb9d397d..b39f5599e3 100644 --- a/docs/proposed/psa-driver-developer-guide.md +++ b/docs/proposed/psa-driver-developer-guide.md @@ -36,6 +36,12 @@ A driver therefore consists of: Mbed TLS calls driver entry points [as specified in the PSA Cryptography Driver Interface specification](psa-driver-interface.html#driver-entry-points) except as otherwise indicated in this section. +## Mbed TLS extensions + +The driver description can include Mbed TLS extensions (marked by the namespace "mbedtls"). Mbed TLS extensions are meant to extend/help integrating the driver into the library's infrastructure. +* `"mbedtls/h_condition"` (optional, string) can include complex preprocessor definitions to conditionally include header files for a given driver. +* `"mbedtls/c_condition"` (optional, string) can include complex preprocessor definitions to conditionally enable dispatch capabilities for a driver. + ## Building and testing your driver diff --git a/scripts/data_files/driver_jsons/driver_opaque_schema.json b/scripts/data_files/driver_jsons/driver_opaque_schema.json index 946977eb7e..933eb07488 100644 --- a/scripts/data_files/driver_jsons/driver_opaque_schema.json +++ b/scripts/data_files/driver_jsons/driver_opaque_schema.json @@ -17,7 +17,7 @@ "type": ["integer","string"], "pattern": "^(0x|0X)?[a-fA-F0-9]+$" }, - "mbedtls/h_depend_on": { + "mbedtls/h_condition": { "type": "string" }, "headers": { @@ -36,7 +36,7 @@ "_comment": { "type": "string" }, - "mbedtls/c_depend_on": { + "mbedtls/c_condition": { "type": "string" }, "entry_points": { diff --git a/scripts/data_files/driver_jsons/driver_transparent_schema.json b/scripts/data_files/driver_jsons/driver_transparent_schema.json index 06fea55594..f5d91eb321 100644 --- a/scripts/data_files/driver_jsons/driver_transparent_schema.json +++ b/scripts/data_files/driver_jsons/driver_transparent_schema.json @@ -13,7 +13,7 @@ "type": "string", "const": ["transparent"] }, - "mbedtls/h_depend_on": { + "mbedtls/h_condition": { "type": "string" }, "headers": { @@ -32,7 +32,7 @@ "_comment": { "type": "string" }, - "mbedtls/c_depend_on": { + "mbedtls/c_condition": { "type": "string" }, "entry_points": { diff --git a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json index c31f964909..41c74f2db1 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json @@ -2,17 +2,17 @@ "prefix": "mbedtls_test", "type": "opaque", "location": "0x7fffff", - "mbedtls/h_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "mbedtls/h_condition": "defined(PSA_CRYPTO_DRIVER_TEST)", "headers": ["test/drivers/test_driver.h"], "capabilities": [ { "_comment": "The Mbed TLS opaque driver supports import key/export key/export_public key", - "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "mbedtls/c_condition": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["import_key", "export_key", "export_public_key"] }, { "_comment": "The Mbed TLS opaque driver supports copy key/ get builtin key", - "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "mbedtls/c_condition": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["copy_key", "get_builtin_key"], "names": {"copy_key":"mbedtls_test_opaque_copy_key", "get_builtin_key":"mbedtls_test_opaque_get_builtin_key"} } diff --git a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json index db31ff4085..9eb259f655 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json @@ -1,18 +1,18 @@ { "prefix": "mbedtls_test", "type": "transparent", - "mbedtls/h_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "mbedtls/h_condition": "defined(PSA_CRYPTO_DRIVER_TEST)", "headers": ["test/drivers/test_driver.h"], "capabilities": [ { "_comment": "The Mbed TLS transparent driver supports import key/export key", - "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "mbedtls/c_condition": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["import_key", "export_key"], "fallback": true }, { "_comment": "The Mbed TLS transparent driver supports export_public key", - "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "mbedtls/c_condition": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["export_public_key"], "fallback": true, "names": {"export_public_key":"mbedtls_test_transparent_export_public_key"} diff --git a/scripts/data_files/driver_templates/OS-template-opaque.jinja b/scripts/data_files/driver_templates/OS-template-opaque.jinja index 115e22c860..a25d1c3719 100644 --- a/scripts/data_files/driver_templates/OS-template-opaque.jinja +++ b/scripts/data_files/driver_templates/OS-template-opaque.jinja @@ -7,7 +7,7 @@ Expected inputs: -#} {% for driver in drivers if driver.type == "opaque" -%} {% for capability in driver.capabilities if entry_point in capability.entry_points -%} -#if ({% if capability['mbedtls/c_depend_on'] is defined -%}{{ capability['mbedtls/c_depend_on'] }} {% else -%} {{ 1 }} {% endif %}) +#if ({% if capability['mbedtls/c_condition'] is defined -%}{{ capability['mbedtls/c_condition'] }} {% else -%} {{ 1 }} {% endif %}) {%- filter indent(width = nest_indent) %} case {{ driver.location }}: return( {{ entry_point_name(capability, entry_point, driver) }}({{entry_point_param(driver) | indent(20)}})); diff --git a/scripts/data_files/driver_templates/OS-template-transparent.jinja b/scripts/data_files/driver_templates/OS-template-transparent.jinja index 9ba115568b..a6b7d69053 100644 --- a/scripts/data_files/driver_templates/OS-template-transparent.jinja +++ b/scripts/data_files/driver_templates/OS-template-transparent.jinja @@ -7,7 +7,7 @@ Expected inputs: -#} {% for driver in drivers if driver.type == "transparent" -%} {% for capability in driver.capabilities if entry_point in capability.entry_points -%} -#if ({% if capability['mbedtls/c_depend_on'] is defined -%}{{ capability['mbedtls/c_depend_on'] }} {% else -%} {{ 1 }} {% endif %}) +#if ({% if capability['mbedtls/c_condition'] is defined -%}{{ capability['mbedtls/c_condition'] }} {% else -%} {{ 1 }} {% endif %}) {%- filter indent(width = nest_indent) %} status = {{ entry_point_name(capability, entry_point, driver) }}({{entry_point_param(driver) | indent(20)}}); diff --git a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja index f38479df08..d5ae91103e 100644 --- a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja +++ b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja @@ -39,13 +39,13 @@ #if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) {% for driver in drivers -%} /* Headers for {{driver.prefix}} {{driver.type}} driver */ -{% if driver['mbedtls/h_depend_on'] is defined -%} -#if {{ driver['mbedtls/h_depend_on'] }} +{% if driver['mbedtls/h_condition'] is defined -%} +#if {{ driver['mbedtls/h_condition'] }} {% endif -%} {% for header in driver.headers -%} #include "{{ header }}" {% endfor %} -{% if driver['mbedtls/h_depend_on'] is defined -%} +{% if driver['mbedtls/h_condition'] is defined -%} #endif {% endif -%} {% endfor %} From 08f397a676a7103b7dfa6b6dd4b5b1dd59833f96 Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Thu, 15 Sep 2022 14:25:37 +0200 Subject: [PATCH 0306/1028] refactored generate_driver_wrappers.py Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 42 ++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 097edd9707..97e8bfdeac 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -23,7 +23,7 @@ import sys import os import json -from typing import Tuple, NewType +from typing import Tuple, NewType, Dict, Any import argparse import jsonschema import jinja2 @@ -34,6 +34,13 @@ JSONSchema = NewType('JSONSchema', object) # keep MyPy happy till MyPy comes with a more composite type for JsonObjects. Driver = NewType('Driver', dict) + +class JsonValidationException(Exception): + def __init__(self, message="Json Validation Failed"): + self.message = message + super().__init__(self.message) + + def render(template_path: str, driver_jsoncontext: list) -> str: """ Render template from the input file and driver JSON. @@ -93,8 +100,17 @@ def validate_json(driverjson_data: Driver, driverschema_list: dict) -> bool: return True + +def load_driver(schemas: Dict[str, Any], driver_file: str) -> Any: + with open(driver_file, 'r') as f: + json_data = json.load(f) + if not validate_json(json_data, schemas): + raise JsonValidationException() + return json_data + + def read_driver_descriptions(mbedtls_root: str, json_directory: str, \ - jsondriver_list: str) -> Tuple[bool, list]: + jsondriver_list: str) -> Tuple[bool, list]: """ Merge driver JSON files into a single ordered JSON after validation. """ @@ -112,18 +128,17 @@ def read_driver_descriptions(mbedtls_root: str, json_directory: str, \ 'driver_opaque_schema.json'), 'r') as file: opaque_driver_schema = json.load(file) - driver_schema_list = {'transparent':transparent_driver_schema, - 'opaque':opaque_driver_schema} - + driver_schema = {'transparent': transparent_driver_schema, + 'opaque': opaque_driver_schema} with open(os.path.join(json_directory, jsondriver_list), 'r') as driverlistfile: - driverlist = json.load(driverlistfile) - for file_name in driverlist: - with open(os.path.join(json_directory, file_name), 'r') as infile: - json_data = json.load(infile) - ret = validate_json(json_data, driver_schema_list) - if ret is False: - return ret, [] - result.append(json_data) + driver_list = json.load(driverlistfile) + + try: + result = [load_driver(driver_schema, driver_file=os.path.join(json_directory, driver_file_name)) + for driver_file_name in driver_list] + except JsonValidationException as _: + return False, [] + return True, result @@ -172,5 +187,6 @@ def main() -> int: return 0 + if __name__ == '__main__': sys.exit(main()) From 07018f97d200a8238b566a9a5e6ff5322e2ab6a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 15 Sep 2022 11:29:35 +0200 Subject: [PATCH 0307/1028] Make legacy_or_psa.h public. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As a public header, it should no longer include common.h, just use build_info.h which is what we actually need anyway. Signed-off-by: Manuel Pégourié-Gonnard --- {library => include/mbedtls}/legacy_or_psa.h | 2 +- library/hash_info.c | 2 +- library/oid.c | 2 +- library/pem.c | 2 +- library/ssl_ciphersuites.c | 2 +- library/ssl_cookie.c | 2 +- library/ssl_misc.h | 2 +- library/ssl_tls.c | 2 +- library/x509.c | 2 +- library/x509write_crt.c | 2 +- tests/src/certs.c | 2 +- tests/suites/test_suite_ecdsa.function | 2 +- tests/suites/test_suite_ecjpake.function | 2 +- tests/suites/test_suite_oid.function | 2 +- tests/suites/test_suite_pem.function | 2 +- tests/suites/test_suite_pk.function | 2 +- tests/suites/test_suite_pkcs12.function | 2 +- tests/suites/test_suite_pkcs1_v15.function | 2 +- tests/suites/test_suite_pkcs1_v21.function | 2 +- tests/suites/test_suite_pkcs5.function | 2 +- tests/suites/test_suite_pkparse.function | 2 +- tests/suites/test_suite_rsa.function | 2 +- tests/suites/test_suite_ssl.function | 2 +- tests/suites/test_suite_x509parse.function | 2 +- tests/suites/test_suite_x509write.function | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) rename {library => include/mbedtls}/legacy_or_psa.h (99%) diff --git a/library/legacy_or_psa.h b/include/mbedtls/legacy_or_psa.h similarity index 99% rename from library/legacy_or_psa.h rename to include/mbedtls/legacy_or_psa.h index 47f4e0f271..7480751988 100644 --- a/library/legacy_or_psa.h +++ b/include/mbedtls/legacy_or_psa.h @@ -96,7 +96,7 @@ #ifndef MBEDTLS_OR_PSA_HELPERS_H #define MBEDTLS_OR_PSA_HELPERS_H -#include "common.h" +#include "mbedtls/build_info.h" #if defined(MBEDTLS_PSA_CRYPTO_C) #include "psa/crypto.h" #endif /* MBEDTLS_PSA_CRYPTO_C */ diff --git a/library/hash_info.c b/library/hash_info.c index 366ca3f5a2..cd7d70e821 100644 --- a/library/hash_info.c +++ b/library/hash_info.c @@ -21,7 +21,7 @@ */ #include "hash_info.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" #include "mbedtls/error.h" typedef struct diff --git a/library/oid.c b/library/oid.c index 4ecf621842..dcd181518c 100644 --- a/library/oid.c +++ b/library/oid.c @@ -27,7 +27,7 @@ #include "mbedtls/rsa.h" #include "mbedtls/error.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" #include #include diff --git a/library/pem.c b/library/pem.c index 8f0aba071c..e4101e8f34 100644 --- a/library/pem.c +++ b/library/pem.c @@ -45,7 +45,7 @@ #include "psa/crypto.h" #endif -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" #if defined(MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ defined(MBEDTLS_CIPHER_MODE_CBC) && \ diff --git a/library/ssl_ciphersuites.c b/library/ssl_ciphersuites.c index dc50449631..808aa9e9eb 100644 --- a/library/ssl_ciphersuites.c +++ b/library/ssl_ciphersuites.c @@ -33,7 +33,7 @@ #include "mbedtls/ssl.h" #include "ssl_misc.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" #include diff --git a/library/ssl_cookie.c b/library/ssl_cookie.c index 8777833b9c..b6a8add2ac 100644 --- a/library/ssl_cookie.c +++ b/library/ssl_cookie.c @@ -38,7 +38,7 @@ #include "mbedtls/platform_util.h" #include "mbedtls/constant_time.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" #include diff --git a/library/ssl_misc.h b/library/ssl_misc.h index a59e672efc..edbf446ee5 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -32,7 +32,7 @@ #include "mbedtls/psa_util.h" #include "hash_info.h" #endif -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" #if defined(MBEDTLS_MD5_C) #include "mbedtls/md5.h" diff --git a/library/ssl_tls.c b/library/ssl_tls.c index af65e6d866..12e1c1b03d 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -54,7 +54,7 @@ #include "mbedtls/psa_util.h" #include "psa/crypto.h" #endif -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" #if defined(MBEDTLS_X509_CRT_PARSE_C) #include "mbedtls/oid.h" diff --git a/library/x509.c b/library/x509.c index aa3951799c..f1d988aa75 100644 --- a/library/x509.c +++ b/library/x509.c @@ -62,7 +62,7 @@ #include #endif -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" #define CHECK(code) if( ( ret = ( code ) ) != 0 ){ return( ret ); } #define CHECK_RANGE(min, max, val) \ diff --git a/library/x509write_crt.c b/library/x509write_crt.c index e51a385f68..52942a9e8d 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -46,7 +46,7 @@ #endif /* MBEDTLS_USE_PSA_CRYPTO */ #include "hash_info.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" void mbedtls_x509write_crt_init( mbedtls_x509write_cert *ctx ) { diff --git a/tests/src/certs.c b/tests/src/certs.c index 551602626d..ca03b29d45 100644 --- a/tests/src/certs.c +++ b/tests/src/certs.c @@ -23,7 +23,7 @@ #include "mbedtls/build_info.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" /* * Test CA Certificates diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function index 7e1daa25a3..e82f39d32f 100644 --- a/tests/suites/test_suite_ecdsa.function +++ b/tests/suites/test_suite_ecdsa.function @@ -1,7 +1,7 @@ /* BEGIN_HEADER */ #include "mbedtls/ecdsa.h" #include "hash_info.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" #if ( defined(MBEDTLS_ECDSA_DETERMINISTIC) && defined(MBEDTLS_SHA256_C) ) || \ ( !defined(MBEDTLS_ECDSA_DETERMINISTIC) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_LOWLEVEL_OR_PSA) ) #define MBEDTLS_HAS_ALG_SHA_256_VIA_MD_IF_DETERMINISTIC diff --git a/tests/suites/test_suite_ecjpake.function b/tests/suites/test_suite_ecjpake.function index 449b368919..47c25e3ae4 100644 --- a/tests/suites/test_suite_ecjpake.function +++ b/tests/suites/test_suite_ecjpake.function @@ -1,6 +1,6 @@ /* BEGIN_HEADER */ #include "mbedtls/ecjpake.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA) static const unsigned char ecjpake_test_x1[] = { diff --git a/tests/suites/test_suite_oid.function b/tests/suites/test_suite_oid.function index 33a9131f98..b06f524100 100644 --- a/tests/suites/test_suite_oid.function +++ b/tests/suites/test_suite_oid.function @@ -3,7 +3,7 @@ #include "mbedtls/asn1.h" #include "mbedtls/asn1write.h" #include "string.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" /* END_HEADER */ /* BEGIN_DEPENDENCIES diff --git a/tests/suites/test_suite_pem.function b/tests/suites/test_suite_pem.function index f4ac368e83..6328247272 100644 --- a/tests/suites/test_suite_pem.function +++ b/tests/suites/test_suite_pem.function @@ -3,7 +3,7 @@ #include "mbedtls/pem.h" #include "mbedtls/des.h" #include "mbedtls/aes.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" /* END_HEADER */ diff --git a/tests/suites/test_suite_pk.function b/tests/suites/test_suite_pk.function index 9c04560325..91fe8695b8 100644 --- a/tests/suites/test_suite_pk.function +++ b/tests/suites/test_suite_pk.function @@ -8,7 +8,7 @@ #include "mbedtls/rsa.h" #include "hash_info.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" #include #include diff --git a/tests/suites/test_suite_pkcs12.function b/tests/suites/test_suite_pkcs12.function index 34ef090ba1..841bd1d6e3 100644 --- a/tests/suites/test_suite_pkcs12.function +++ b/tests/suites/test_suite_pkcs12.function @@ -2,7 +2,7 @@ #include "mbedtls/pkcs12.h" #include "common.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" typedef enum { diff --git a/tests/suites/test_suite_pkcs1_v15.function b/tests/suites/test_suite_pkcs1_v15.function index 463e401fb4..0fad7c6003 100644 --- a/tests/suites/test_suite_pkcs1_v15.function +++ b/tests/suites/test_suite_pkcs1_v15.function @@ -2,7 +2,7 @@ #include "mbedtls/rsa.h" #include "mbedtls/md.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" /* END_HEADER */ /* BEGIN_DEPENDENCIES diff --git a/tests/suites/test_suite_pkcs1_v21.function b/tests/suites/test_suite_pkcs1_v21.function index a7e93aafc4..593c047f22 100644 --- a/tests/suites/test_suite_pkcs1_v21.function +++ b/tests/suites/test_suite_pkcs1_v21.function @@ -1,6 +1,6 @@ /* BEGIN_HEADER */ #include "mbedtls/rsa.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" /* END_HEADER */ /* BEGIN_DEPENDENCIES diff --git a/tests/suites/test_suite_pkcs5.function b/tests/suites/test_suite_pkcs5.function index fcbf9b1958..7b7ed3d013 100644 --- a/tests/suites/test_suite_pkcs5.function +++ b/tests/suites/test_suite_pkcs5.function @@ -1,6 +1,6 @@ /* BEGIN_HEADER */ #include "mbedtls/pkcs5.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" /* END_HEADER */ /* BEGIN_DEPENDENCIES diff --git a/tests/suites/test_suite_pkparse.function b/tests/suites/test_suite_pkparse.function index 8ca3aca79e..c5e60ee38b 100644 --- a/tests/suites/test_suite_pkparse.function +++ b/tests/suites/test_suite_pkparse.function @@ -2,7 +2,7 @@ #include "mbedtls/pk.h" #include "mbedtls/pem.h" #include "mbedtls/oid.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" /* END_HEADER */ /* BEGIN_DEPENDENCIES diff --git a/tests/suites/test_suite_rsa.function b/tests/suites/test_suite_rsa.function index 0c8887a6fa..a866d432d5 100644 --- a/tests/suites/test_suite_rsa.function +++ b/tests/suites/test_suite_rsa.function @@ -2,7 +2,7 @@ #include "mbedtls/rsa.h" #include "rsa_alt_helpers.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" /* END_HEADER */ /* BEGIN_DEPENDENCIES diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 26855a6132..0d5cea1b71 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -11,7 +11,7 @@ #include "mbedtls/ssl_cache.h" #endif -#include +#include #include "hash_info.h" #include diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index b650afd0d7..60e703a948 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -10,7 +10,7 @@ #include "mbedtls/error.h" #include "string.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" #if MBEDTLS_X509_MAX_INTERMEDIATE_CA > 19 #error "The value of MBEDTLS_X509_MAX_INTERMEDIATE_C is larger \ diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index 5a9724080c..1120bee146 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -7,7 +7,7 @@ #include "mbedtls/rsa.h" #include "hash_info.h" -#include "legacy_or_psa.h" +#include "mbedtls/legacy_or_psa.h" #if defined(MBEDTLS_RSA_C) int mbedtls_rsa_decrypt_func( void *ctx, size_t *olen, From e896705c1ae00608b5aea090c13a7f327ed14c0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 15 Sep 2022 11:41:16 +0200 Subject: [PATCH 0308/1028] Take advantage of legacy_or_psa.h being public MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Opportunities for using the macros were spotted using: git grep -E -n -A2 'MBEDTLS_(MD|SHA)[0-9]+_C' | egrep 'PSA_WANT_ALG_(MD|SHA)' then manually filtering the results. Signed-off-by: Manuel Pégourié-Gonnard --- include/mbedtls/x509_crt.h | 5 ++-- programs/ssl/ssl_client2.c | 4 +-- programs/ssl/ssl_server2.c | 4 +-- programs/ssl/ssl_test_common_source.c | 38 +++++---------------------- 4 files changed, 13 insertions(+), 38 deletions(-) diff --git a/include/mbedtls/x509_crt.h b/include/mbedtls/x509_crt.h index 1ddc997c6a..add6b030ed 100644 --- a/include/mbedtls/x509_crt.h +++ b/include/mbedtls/x509_crt.h @@ -24,6 +24,7 @@ #include "mbedtls/private_access.h" #include "mbedtls/build_info.h" +#include "mbedtls/legacy_or_psa.h" #include "mbedtls/x509.h" #include "mbedtls/x509_crl.h" @@ -1108,7 +1109,7 @@ int mbedtls_x509write_crt_set_extension( mbedtls_x509write_cert *ctx, int mbedtls_x509write_crt_set_basic_constraints( mbedtls_x509write_cert *ctx, int is_ca, int max_pathlen ); -#if defined(MBEDTLS_SHA1_C) || ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_1) ) +#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_LOWLEVEL_OR_PSA) /** * \brief Set the subjectKeyIdentifier extension for a CRT * Requires that mbedtls_x509write_crt_set_subject_key() has been @@ -1130,7 +1131,7 @@ int mbedtls_x509write_crt_set_subject_key_identifier( mbedtls_x509write_cert *ct * \return 0 if successful, or a MBEDTLS_ERR_X509_ALLOC_FAILED */ int mbedtls_x509write_crt_set_authority_key_identifier( mbedtls_x509write_cert *ctx ); -#endif /* MBEDTLS_SHA1_C || (MBEDTLS_PSA_CRYPTO_C && PSA_WANT_ALG_SHA_1)*/ +#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_LOWLEVEL_OR_PSA */ /** * \brief Set the Key Usage Extension flags diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 89150114a8..da85eb076f 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -1426,11 +1426,11 @@ int main( int argc, char *argv[] ) if( opt.psk_opaque != 0 ) { /* Determine KDF algorithm the opaque PSK will be used in. */ -#if defined(HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) +#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) if( ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384); else -#endif /* HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256); } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index a1b29786d5..3113d1bb51 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -2261,11 +2261,11 @@ int main( int argc, char *argv[] ) if( opt.psk_opaque != 0 || opt.psk_list_opaque != 0 ) { /* Determine KDF algorithm the opaque PSK will be used in. */ -#if defined(HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) +#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) if( ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384); else -#endif /* HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256); } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ diff --git a/programs/ssl/ssl_test_common_source.c b/programs/ssl/ssl_test_common_source.c index 7ff3345b73..42d8d11222 100644 --- a/programs/ssl/ssl_test_common_source.c +++ b/programs/ssl/ssl_test_common_source.c @@ -297,49 +297,23 @@ int send_cb( void *ctx, unsigned char const *buf, size_t len ) #define MBEDTLS_SSL_SIG_ALG( hash ) #endif -#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA1_C) ) || \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_1) ) -#define HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA -#endif -#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA224_C) ) || \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_224) ) -#define HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA -#endif -#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA256_C) ) || \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_256) ) -#define HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA -#endif -#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA384_C) ) || \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_384) ) -#define HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA -#endif -#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA512_C) ) || \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_512) ) -#define HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA -#endif - uint16_t ssl_sig_algs_for_test[] = { -#if defined(HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA) +#if defined(MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA512 ) #endif -#if defined(HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) +#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA384 ) #endif -#if defined(HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) +#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA256 ) #endif -#if defined(HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA) +#if defined(MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA224 ) #endif -#if defined(MBEDTLS_RSA_C) && defined(HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) +#if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256, #endif /* MBEDTLS_RSA_C && MBEDTLS_SHA256_C */ -#if defined(HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA) +#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA) /* Allow SHA-1 as we use it extensively in tests. */ MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA1 ) #endif From f17f85ef0cb87d37d97b5ac4d32e3dbbe7b373df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 15 Sep 2022 11:49:04 +0200 Subject: [PATCH 0309/1028] Simplify definition of TLS 1.3 MD max size. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Actually this macro is never used in parts that depend on USE_PSA, so it's always using PSA. Currently the macro seems a bit redundant, but: - since it's public we can't remove it; - and there are plans in the future to make it more precise (actually the largest hash that matters for TLS 1.3 is SHA-384 now). Signed-off-by: Manuel Pégourié-Gonnard --- include/mbedtls/ssl.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 1e0220a6ac..3811fd2245 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -629,11 +629,7 @@ union mbedtls_ssl_premaster_secret #define MBEDTLS_PREMASTER_SIZE sizeof( union mbedtls_ssl_premaster_secret ) -#if defined(MBEDTLS_USE_PSA_CRYPTO) #define MBEDTLS_TLS1_3_MD_MAX_SIZE PSA_HASH_MAX_SIZE -#else -#define MBEDTLS_TLS1_3_MD_MAX_SIZE MBEDTLS_MD_MAX_SIZE -#endif /* MBEDTLS_USE_PSA_CRYPTO */ /* Length in number of bytes of the TLS sequence number */ From 72687b76ca9b9572cadf3cb22cd7280dccc11dd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 15 Sep 2022 12:23:58 +0200 Subject: [PATCH 0310/1028] Clarify dependencies in mbedtls_config.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - One module was missing the warning on psa_crypto_init(). - For modules that are affected by USE_PSA_CRYPTO, it makes more sense to mention that in the warning. - Attempt to improve the description of the TLS 1.3 situation. Signed-off-by: Manuel Pégourié-Gonnard --- include/mbedtls/mbedtls_config.h | 38 ++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 990dc58512..ff7b30e118 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1492,13 +1492,14 @@ * * Enable support for TLS 1.2 (and DTLS 1.2 if DTLS is enabled). * - * Requires: MBEDTLS_SHA1_C or MBEDTLS_SHA256_C or MBEDTLS_SHA512_C - * (Depends on ciphersuites) when MBEDTLS_USE_PSA_CRYPTO - * is not defined, PSA_WANT_ALG_SHA_1 or PSA_WANT_ALG_SHA_256 or - * PSA_WANT_ALG_SHA_512 when MBEDTLS_USE_PSA_CRYPTO is defined. + * Requires: Without MBEDTLS_USE_PSA_CRYPTO: MBEDTLS_MD_C and + * (MBEDTLS_SHA1_C or MBEDTLS_SHA256_C or MBEDTLS_SHA512_C) + * With MBEDTLS_USE_PSA_CRYPTO: + * PSA_WANT_ALG_SHA_1 or PSA_WANT_ALG_SHA_256 or + * PSA_WANT_ALG_SHA_512 * - * \warning If building without MBEDTLS_MD_C, you must call psa_crypto_init() - * before doing any TLS operation. + * \warning If building with MBEDTLS_USE_PSA_CRYPTO, you must call + * psa_crypto_init() before doing any TLS operations. * * Comment this macro to disable support for TLS 1.2 / DTLS 1.2 */ @@ -1517,11 +1518,11 @@ * Requires: MBEDTLS_SSL_KEEP_PEER_CERTIFICATE * Requires: MBEDTLS_PSA_CRYPTO_C * - * Note: even though TLS 1.3 depends on PSA Crypto, if you want it to only use - * PSA for all crypto operations, you need to also enable - * MBEDTLS_USE_PSA_CRYPTO; otherwise X.509 operations, and functions that are - * common with TLS 1.2 (record protection, running handshake hash) will still - * use non-PSA crypto. + * Note: even though TLS 1.3 depends on PSA Crypto, and uses it unconditonally + * for most operations, if you want it to only use PSA for all crypto + * operations, you need to also enable MBEDTLS_USE_PSA_CRYPTO; otherwise X.509 + * operations, and functions that are common with TLS 1.2 (record protection, + * running handshake hash) will still use non-PSA crypto. * * Uncomment this macro to enable the support for TLS 1.3. */ @@ -2337,7 +2338,7 @@ * This module is used by the following key exchanges: * ECJPAKE * - * Requires: MBEDTLS_ECP_C, MBEDTLS_MD_C + * Requires: MBEDTLS_ECP_C and either MBEDTLS_MD_C or MBEDTLS_PSA_CRYPTO_C * * \warning If building without MBEDTLS_MD_C, you must call psa_crypto_init() * before doing any EC J-PAKE operations. @@ -2654,7 +2655,10 @@ * * Module: library/pkcs5.c * - * Requires: MBEDTLS_CIPHER_C, MBEDTLS_MD_C + * Requires: MBEDTLS_CIPHER_C and either MBEDTLS_MD_C or MBEDTLS_PSA_CRYPTO_C. + * + * \warning If building without MBEDTLS_MD_C, you must call psa_crypto_init() + * before doing any PKCS5 operation. * * This module adds support for the PKCS#5 functions. */ @@ -3136,8 +3140,8 @@ * Requires: MBEDTLS_ASN1_PARSE_C, MBEDTLS_BIGNUM_C, MBEDTLS_OID_C, MBEDTLS_PK_PARSE_C, * (MBEDTLS_MD_C or MBEDTLS_USE_PSA_CRYPTO) * - * \warning If building without MBEDTLS_MD_C, you must call psa_crypto_init() - * before doing any X.509 operation. + * \warning If building with MBEDTLS_USE_PSA_CRYPTO, you must call + * psa_crypto_init() before doing any X.509 operation. * * This module is required for the X.509 parsing modules. */ @@ -3197,8 +3201,8 @@ * Requires: MBEDTLS_BIGNUM_C, MBEDTLS_OID_C, MBEDTLS_PK_PARSE_C, * (MBEDTLS_MD_C or MBEDTLS_USE_PSA_CRYPTO) * - * \warning If building without MBEDTLS_MD_C, you must call psa_crypto_init() - * before doing any X.509 create operation. + * \warning If building with MBEDTLS_USE_PSA_CRYPTO, you must call + * psa_crypto_init() before doing any X.509 create operation. * * This module is the basis for creating X.509 certificates and CSRs. */ From c998e43eb4c62d145e29e6e33d8bd8d09d0eaeca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 15 Sep 2022 12:26:32 +0200 Subject: [PATCH 0311/1028] Add ChangeLog entry about driver-only hashes. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (The first entry will need editing if support for ENTROPY_C is sorted out before the next release.) Signed-off-by: Manuel Pégourié-Gonnard --- ChangeLog.d/driver-only-hashes.txt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 ChangeLog.d/driver-only-hashes.txt diff --git a/ChangeLog.d/driver-only-hashes.txt b/ChangeLog.d/driver-only-hashes.txt new file mode 100644 index 0000000000..2062bcb57d --- /dev/null +++ b/ChangeLog.d/driver-only-hashes.txt @@ -0,0 +1,20 @@ +Features + * Some crypto modules that previously depended on MD or a low-level hash + module, either unconditionally (RSA, PK, PKCS5, PKCS12, EC J-PAKE), or + for some features (PEM for encrypted files), are now able to use PSA + Crypto instead when the legacy API is not available. This means it is + now possible to use all features from those modules in configurations + where the built-in implementations of hashes are excluded and the hashes + are only provided by PSA drivers. In these configurations, you need to + call `psa_crypto_init()` before you call any function from those + modules; this is not required in configurations where the built-in + implementation is still available. Note that some crypto modules and + features still depend on the built-in implementation of hashes: + MBEDTLS_HKDF_C (but the PSA HKDF function do not depend on it), + MBEDTLS_ENTROPY_C, MBEDTLS_HMAC_DRBG_C and MBEDTLS_ECDSA_DETERMINISTIC. + In particular, for now, compiling without built-in hashes requires use + of MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG. + * When MBEDTLS_USE_PSA_CRYPTO is enabled, X.509, TLS 1.2 and TLS 1.3 no + longer depend on MD. This means it is now possible to use them in + configurations where the built-in implementations of hashes are excluded + and the hashes are only provided by PSA drivers. From d18c24b166e0dc4a22f12cbd0fee610be1fc8264 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 15 Sep 2022 12:29:28 +0200 Subject: [PATCH 0312/1028] EC J-PAKE is now implemented in PSA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Quite unrelated to the other commits in this branch, but I happened to spot it, so I fixed it. Signed-off-by: Manuel Pégourié-Gonnard --- docs/architecture/psa-migration/psa-limitations.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs/architecture/psa-migration/psa-limitations.md b/docs/architecture/psa-migration/psa-limitations.md index e2efeb9829..e565b283e9 100644 --- a/docs/architecture/psa-migration/psa-limitations.md +++ b/docs/architecture/psa-migration/psa-limitations.md @@ -29,11 +29,6 @@ github. [ffdh]: https://github.com/Mbed-TLS/mbedtls/issues/3261 -PSA Crypto has an experimental API for EC J-PAKE, but it's not implemented in -Mbed TLS yet. See the [EC J-PAKE follow-up EPIC][ecjp] on github. - -[ecjp]: https://github.com/orgs/Mbed-TLS/projects/1#column-17950140 - Arbitrary parameters for FFDH ----------------------------- From 138387fc8c04415bad4aa0bb83da493285cea150 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 16 Sep 2022 09:45:43 +0200 Subject: [PATCH 0313/1028] Fix some typos, improve wording & formatting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- docs/architecture/psa-migration/strategy.md | 8 ++++---- include/mbedtls/legacy_or_psa.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/architecture/psa-migration/strategy.md b/docs/architecture/psa-migration/strategy.md index a13c100466..0ad5fa0a53 100644 --- a/docs/architecture/psa-migration/strategy.md +++ b/docs/architecture/psa-migration/strategy.md @@ -351,7 +351,7 @@ It should be noted that there are currently: - too many different ways of computing a hash (low-level, MD, PSA); - too many different ways to configure the library that influence which of these ways is available and will be used (`MBEDTLS_USE_PSA_CRYPTO`, -`MBEDTLS_PSA_CRYPTO_CONFIG`, `mbedtls_config.h` + `psa/crypto_config.h`). + `MBEDTLS_PSA_CRYPTO_CONFIG`, `mbedtls_config.h` + `psa/crypto_config.h`). As a result, we need more families of dependency macros than we'd like to. This is a temporary situation until we move to a place where everything is @@ -361,12 +361,12 @@ the new macros in the hope of avoiding confusion. Note: the new macros supplement but do not replace the existing macros: - code that always uses PSA Crypto (for example, code specific to TLS 1.3) should use `PSA_WANT_xxx`; -- code that always uses the legacy API (for exmaple, crypto modules that have +- code that always uses the legacy API (for example, crypto modules that have not undergone step 1 yet) should use `MBEDTLS_xxx_C`; - code that may use one of the two APIs, either based on `MBEDTLS_USE_PSA_CRYPTO` (X.509, TLS 1.2, shared between TLS 1.2 and 1.3), -or based on availability (crypto modules after step 1), should use one of the -new macros from `legacy_or_psa.h`. + or based on availability (crypto modules after step 1), should use one of + the new macros from `legacy_or_psa.h`. Executing step 3 will mostly consist of using the right dependency macros in the right places (once the previous steps are done). diff --git a/include/mbedtls/legacy_or_psa.h b/include/mbedtls/legacy_or_psa.h index 7480751988..2156be946b 100644 --- a/include/mbedtls/legacy_or_psa.h +++ b/include/mbedtls/legacy_or_psa.h @@ -19,7 +19,7 @@ */ /* - * Note: applications who are targetting a specific configurations do not need + * Note: applications that are targeting a specific configuration do not need * to use these macros; instead they should directly use the functions they * know are available in their configuration. * @@ -29,7 +29,7 @@ * * Note: code that is purely based on the legacy crypto APIs (mbedtls_xxx()) * does not need to use these macros; instead it should use the relevant - * MBEDTLS_xxx_ macros. + * MBEDTLS_xxx macros. * * These macros are for code that wants to use and will do so * using or PSA depending on , where: From ad4d2bb3e12b1cc40a0dd0014b656429ba0c7b78 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 14 Sep 2022 22:40:35 +0800 Subject: [PATCH 0314/1028] Exclude pre_shared_key for HRR Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index a10e59bbc1..e71ba06007 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -1898,7 +1898,7 @@ static int ssl_tls13_write_server_hello_body( mbedtls_ssl_context *ssl, } #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) - if( mbedtls_ssl_tls13_key_exchange_mode_with_psk( ssl ) ) + if( !is_hrr && mbedtls_ssl_tls13_key_exchange_mode_with_psk( ssl ) ) { ret = ssl_tls13_write_server_pre_shared_key_ext( ssl, p, end, &output_len ); if( ret != 0 ) From 702776f7cc69a13057f13291942c46e46273bccf Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 16 Sep 2022 06:22:44 -0400 Subject: [PATCH 0315/1028] Restrict the EC J-PAKE to PMS input type to secret Signed-off-by: Andrzej Kurek --- library/psa_crypto.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 5c05f79282..cbdc912930 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -5148,7 +5148,7 @@ static psa_status_t psa_key_derivation_setup_kdf( return( PSA_ERROR_NOT_SUPPORTED ); /* All currently supported key derivation algorithms (apart from - * ecjpake to pms are based on a hash algorithm. */ + * ecjpake to pms) are based on a hash algorithm. */ psa_algorithm_t hash_alg = PSA_ALG_HKDF_GET_HASH( kdf_alg ); size_t hash_size = PSA_HASH_LENGTH( hash_alg ); if( !PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS( kdf_alg ) ) @@ -5570,10 +5570,12 @@ static psa_status_t psa_tls12_prf_psk_to_ms_input( #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) static psa_status_t psa_tls12_ecjpake_to_pms_input( psa_tls12_ecjpake_to_pms_t *ecjpake, + psa_key_derivation_step_t step, const uint8_t *data, size_t data_length ) { - if( data_length != PSA_TLS12_ECJPAKE_TO_PMS_INPUT_SIZE ) + if( data_length != PSA_TLS12_ECJPAKE_TO_PMS_INPUT_SIZE || + step != PSA_KEY_DERIVATION_INPUT_SECRET ) return( PSA_ERROR_INVALID_ARGUMENT ); /* Check if the passed point is in an uncompressed form */ @@ -5668,7 +5670,7 @@ static psa_status_t psa_key_derivation_input_internal( if( PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS( kdf_alg ) ) { status = psa_tls12_ecjpake_to_pms_input( - &operation->ctx.tls12_ecjpake_to_pms, data, data_length ); + &operation->ctx.tls12_ecjpake_to_pms, step, data, data_length ); } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS */ From d37850404adfb8064f6e590197983c7c852daa30 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 16 Sep 2022 06:45:44 -0400 Subject: [PATCH 0316/1028] Add derivation step testing to EC J-PAKE to PMS tests Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_psa_crypto.data | 18 +++++++++++------- tests/suites/test_suite_psa_crypto.function | 7 ++++--- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index e552fc1f5a..4a052c4335 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -5799,32 +5799,36 @@ derive_output:PSA_ALG_HKDF(PSA_ALG_SHA_256):PSA_KEY_DERIVATION_INPUT_SALT:"00010 PSA key derivation: ECJPAKE to PMS, no input depends_on:PSA_WANT_ALG_SHA_256 -derive_ecjpake_to_pms:"":PSA_ERROR_INVALID_ARGUMENT:"":PSA_ERROR_INVALID_ARGUMENT +derive_ecjpake_to_pms:"":PSA_ERROR_INVALID_ARGUMENT:PSA_KEY_DERIVATION_INPUT_SECRET:"":PSA_ERROR_INVALID_ARGUMENT PSA key derivation: ECJPAKE to PMS, input too short depends_on:PSA_WANT_ALG_SHA_256 -derive_ecjpake_to_pms:"deadbeef":PSA_ERROR_INVALID_ARGUMENT:"":PSA_ERROR_INVALID_ARGUMENT +derive_ecjpake_to_pms:"deadbeef":PSA_ERROR_INVALID_ARGUMENT:PSA_KEY_DERIVATION_INPUT_SECRET:"":PSA_ERROR_INVALID_ARGUMENT PSA key derivation: ECJPAKE to PMS, input too long depends_on:PSA_WANT_ALG_SHA_256 -derive_ecjpake_to_pms:"0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de":PSA_ERROR_INVALID_ARGUMENT:"":PSA_ERROR_INVALID_ARGUMENT +derive_ecjpake_to_pms:"0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de":PSA_ERROR_INVALID_ARGUMENT:PSA_KEY_DERIVATION_INPUT_SECRET:"":PSA_ERROR_INVALID_ARGUMENT PSA key derivation: ECJPAKE to PMS, bad input format depends_on:PSA_WANT_ALG_SHA_256 -derive_ecjpake_to_pms:"0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":PSA_ERROR_INVALID_ARGUMENT:"":PSA_ERROR_INVALID_ARGUMENT +derive_ecjpake_to_pms:"0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":PSA_ERROR_INVALID_ARGUMENT:PSA_KEY_DERIVATION_INPUT_SECRET:"":PSA_ERROR_INVALID_ARGUMENT #NIST CAVS 11.0 SHA-256 ShortMSG vector for L=256 PSA key derivation: ECJPAKE to PMS, good case depends_on:PSA_WANT_ALG_SHA_256 -derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_SUCCESS:"4f44c1c7fbebb6f9601829f3897bfd650c56fa07844be76489076356ac1886a4":PSA_SUCCESS +derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_SUCCESS:PSA_KEY_DERIVATION_INPUT_SECRET:"4f44c1c7fbebb6f9601829f3897bfd650c56fa07844be76489076356ac1886a4":PSA_SUCCESS + +PSA key derivation: ECJPAKE to PMS, bad derivation step +depends_on:PSA_WANT_ALG_SHA_256 +derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_ERROR_INVALID_ARGUMENT:PSA_KEY_DERIVATION_INPUT_SEED:"4f44c1c7fbebb6f9601829f3897bfd650c56fa07844be76489076356ac1886a4":PSA_SUCCESS PSA key derivation: ECJPAKE to PMS, output too short depends_on:PSA_WANT_ALG_SHA_256 -derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_SUCCESS:"4f":PSA_ERROR_INVALID_ARGUMENT +derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_SUCCESS:PSA_KEY_DERIVATION_INPUT_SECRET:"4f":PSA_ERROR_INVALID_ARGUMENT PSA key derivation: ECJPAKE to PMS, output too long depends_on:PSA_WANT_ALG_SHA_256 -derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_SUCCESS:"4f44c1c7fbebb6f9601829f3897bfd650c56fa07844be76489076356ac1886a400":PSA_ERROR_INVALID_ARGUMENT +derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_SUCCESS:PSA_KEY_DERIVATION_INPUT_SECRET:"4f44c1c7fbebb6f9601829f3897bfd650c56fa07844be76489076356ac1886a400":PSA_ERROR_INVALID_ARGUMENT PSA key derivation: HKDF SHA-256, read maximum capacity minus 1 depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index b04adcca4f..0162c07d19 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -7235,11 +7235,12 @@ exit: /* BEGIN_CASE depends_on:MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS:MBEDTLS_SHA256_C */ void derive_ecjpake_to_pms( data_t *input, int expected_input_status, - data_t *expected_output, int expected_output_status ) + int derivation_step, data_t *expected_output, + int expected_output_status ) { psa_algorithm_t alg = PSA_ALG_TLS12_ECJPAKE_TO_PMS; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; - + psa_key_derivation_step_t step = (psa_key_derivation_step_t) derivation_step; uint8_t *output_buffer = NULL; psa_status_t status; @@ -7251,7 +7252,7 @@ void derive_ecjpake_to_pms( data_t *input, int expected_input_status, expected_output->len ) ); TEST_EQUAL( psa_key_derivation_input_bytes( &operation, - PSA_KEY_DERIVATION_INPUT_SECRET, input->x, input->len ), + step, input->x, input->len ), (psa_status_t) expected_input_status ); if( ( (psa_status_t) expected_input_status ) != PSA_SUCCESS ) From 39452a8ca422df78b6dfef2f1c286d52da85b027 Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Fri, 16 Sep 2022 13:02:06 +0200 Subject: [PATCH 0317/1028] fixed formating of driver generator script Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 97e8bfdeac..ae6db54af7 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -134,7 +134,8 @@ def read_driver_descriptions(mbedtls_root: str, json_directory: str, \ driver_list = json.load(driverlistfile) try: - result = [load_driver(driver_schema, driver_file=os.path.join(json_directory, driver_file_name)) + result = [load_driver(schemas=driver_schema, + driver_file=os.path.join(json_directory, driver_file_name)) for driver_file_name in driver_list] except JsonValidationException as _: return False, [] From b093650033a2ede358f17d599668fd3746b10ace Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 16 Sep 2022 07:13:00 -0400 Subject: [PATCH 0318/1028] Add proper capacity calculation for EC J-PAKE to PMS KDF Signed-off-by: Andrzej Kurek --- library/psa_crypto.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index cbdc912930..981b6f8ffb 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -5175,7 +5175,8 @@ static psa_status_t psa_key_derivation_setup_kdf( return( PSA_ERROR_NOT_SUPPORTED ); } #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) - if( PSA_ALG_IS_HKDF_EXTRACT( kdf_alg ) ) + if( PSA_ALG_IS_HKDF_EXTRACT( kdf_alg ) || + PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS ( kdf_alg )) operation->capacity = hash_size; else #endif /* MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT */ From 2be16895045c0f712afd70df5f70f3b9c17608fc Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 16 Sep 2022 07:14:04 -0400 Subject: [PATCH 0319/1028] Add capacity testing to EC J-PAKE to PMS tests Let the caller restrict the capacity but limit it to 32 bytes. Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_psa_crypto.data | 24 ++++++++++++++------- tests/suites/test_suite_psa_crypto.function | 8 ++++--- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index 4a052c4335..fd33eba721 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -5799,36 +5799,44 @@ derive_output:PSA_ALG_HKDF(PSA_ALG_SHA_256):PSA_KEY_DERIVATION_INPUT_SALT:"00010 PSA key derivation: ECJPAKE to PMS, no input depends_on:PSA_WANT_ALG_SHA_256 -derive_ecjpake_to_pms:"":PSA_ERROR_INVALID_ARGUMENT:PSA_KEY_DERIVATION_INPUT_SECRET:"":PSA_ERROR_INVALID_ARGUMENT +derive_ecjpake_to_pms:"":PSA_ERROR_INVALID_ARGUMENT:PSA_KEY_DERIVATION_INPUT_SECRET:32:PSA_SUCCESS:"":PSA_ERROR_INVALID_ARGUMENT PSA key derivation: ECJPAKE to PMS, input too short depends_on:PSA_WANT_ALG_SHA_256 -derive_ecjpake_to_pms:"deadbeef":PSA_ERROR_INVALID_ARGUMENT:PSA_KEY_DERIVATION_INPUT_SECRET:"":PSA_ERROR_INVALID_ARGUMENT +derive_ecjpake_to_pms:"deadbeef":PSA_ERROR_INVALID_ARGUMENT:PSA_KEY_DERIVATION_INPUT_SECRET:32:PSA_SUCCESS:"":PSA_ERROR_INVALID_ARGUMENT PSA key derivation: ECJPAKE to PMS, input too long depends_on:PSA_WANT_ALG_SHA_256 -derive_ecjpake_to_pms:"0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de":PSA_ERROR_INVALID_ARGUMENT:PSA_KEY_DERIVATION_INPUT_SECRET:"":PSA_ERROR_INVALID_ARGUMENT +derive_ecjpake_to_pms:"0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de":PSA_ERROR_INVALID_ARGUMENT:PSA_KEY_DERIVATION_INPUT_SECRET:32:PSA_SUCCESS:"":PSA_ERROR_INVALID_ARGUMENT PSA key derivation: ECJPAKE to PMS, bad input format depends_on:PSA_WANT_ALG_SHA_256 -derive_ecjpake_to_pms:"0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":PSA_ERROR_INVALID_ARGUMENT:PSA_KEY_DERIVATION_INPUT_SECRET:"":PSA_ERROR_INVALID_ARGUMENT +derive_ecjpake_to_pms:"0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":PSA_ERROR_INVALID_ARGUMENT:PSA_KEY_DERIVATION_INPUT_SECRET:32:PSA_SUCCESS:"":PSA_ERROR_INVALID_ARGUMENT #NIST CAVS 11.0 SHA-256 ShortMSG vector for L=256 PSA key derivation: ECJPAKE to PMS, good case depends_on:PSA_WANT_ALG_SHA_256 -derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_SUCCESS:PSA_KEY_DERIVATION_INPUT_SECRET:"4f44c1c7fbebb6f9601829f3897bfd650c56fa07844be76489076356ac1886a4":PSA_SUCCESS +derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_SUCCESS:PSA_KEY_DERIVATION_INPUT_SECRET:32:PSA_SUCCESS:"4f44c1c7fbebb6f9601829f3897bfd650c56fa07844be76489076356ac1886a4":PSA_SUCCESS PSA key derivation: ECJPAKE to PMS, bad derivation step depends_on:PSA_WANT_ALG_SHA_256 -derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_ERROR_INVALID_ARGUMENT:PSA_KEY_DERIVATION_INPUT_SEED:"4f44c1c7fbebb6f9601829f3897bfd650c56fa07844be76489076356ac1886a4":PSA_SUCCESS +derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_ERROR_INVALID_ARGUMENT:PSA_KEY_DERIVATION_INPUT_SEED:32:PSA_SUCCESS:"4f44c1c7fbebb6f9601829f3897bfd650c56fa07844be76489076356ac1886a4":PSA_SUCCESS + +PSA key derivation: ECJPAKE to PMS, capacity 1 byte too big +depends_on:PSA_WANT_ALG_SHA_256 +derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_SUCCESS:PSA_KEY_DERIVATION_INPUT_SECRET:33:PSA_ERROR_INVALID_ARGUMENT:"4f44c1c7fbebb6f9601829f3897bfd650c56fa07844be76489076356ac1886a4":PSA_SUCCESS + +PSA key derivation: ECJPAKE to PMS, capacity 1 byte too small +depends_on:PSA_WANT_ALG_SHA_256 +derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_SUCCESS:PSA_KEY_DERIVATION_INPUT_SECRET:31:PSA_SUCCESS:"4f44c1c7fbebb6f9601829f3897bfd650c56fa07844be76489076356ac1886a4":PSA_ERROR_INSUFFICIENT_DATA PSA key derivation: ECJPAKE to PMS, output too short depends_on:PSA_WANT_ALG_SHA_256 -derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_SUCCESS:PSA_KEY_DERIVATION_INPUT_SECRET:"4f":PSA_ERROR_INVALID_ARGUMENT +derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_SUCCESS:PSA_KEY_DERIVATION_INPUT_SECRET:32:PSA_SUCCESS:"4f":PSA_ERROR_INVALID_ARGUMENT PSA key derivation: ECJPAKE to PMS, output too long depends_on:PSA_WANT_ALG_SHA_256 -derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_SUCCESS:PSA_KEY_DERIVATION_INPUT_SECRET:"4f44c1c7fbebb6f9601829f3897bfd650c56fa07844be76489076356ac1886a400":PSA_ERROR_INVALID_ARGUMENT +derive_ecjpake_to_pms:"0409fc1accc230a205e4a208e64a8f204291f581a12756392da4b8c0cf5ef02b950000000000000000000000000000000000000000000000000000000000000000":PSA_SUCCESS:PSA_KEY_DERIVATION_INPUT_SECRET:32:PSA_SUCCESS:"4f44c1c7fbebb6f9601829f3897bfd650c56fa07844be76489076356ac1886a400":PSA_ERROR_INSUFFICIENT_DATA PSA key derivation: HKDF SHA-256, read maximum capacity minus 1 depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 0162c07d19..355cba533b 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -7235,7 +7235,9 @@ exit: /* BEGIN_CASE depends_on:MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS:MBEDTLS_SHA256_C */ void derive_ecjpake_to_pms( data_t *input, int expected_input_status, - int derivation_step, data_t *expected_output, + int derivation_step, + int capacity, int expected_capacity_status, + data_t *expected_output, int expected_output_status ) { psa_algorithm_t alg = PSA_ALG_TLS12_ECJPAKE_TO_PMS; @@ -7248,8 +7250,8 @@ void derive_ecjpake_to_pms( data_t *input, int expected_input_status, PSA_ASSERT( psa_crypto_init() ); PSA_ASSERT( psa_key_derivation_setup( &operation, alg ) ); - PSA_ASSERT( psa_key_derivation_set_capacity( &operation, - expected_output->len ) ); + TEST_EQUAL( psa_key_derivation_set_capacity( &operation, capacity ), + (psa_status_t) expected_capacity_status ); TEST_EQUAL( psa_key_derivation_input_bytes( &operation, step, input->x, input->len ), From 1be45825aba4403d66edbbf374960b8e428f34d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 16 Sep 2022 13:18:36 +0200 Subject: [PATCH 0320/1028] Remove useless guard around include MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Including a header is harmless, so we can include do it unconditionally. The condition was wrong, should have been USE_PSA || PROTO_TLS1_3. If we just fixed to condition, then we would need to make sure things like: #define MBEDTLS_TLS1_3_MD_MAX_SIZE PSA_HASH_MAX_SIZE are also guarded, which is useless (extra defines are harmless) and annoying, so just remove the condition altogether. Signed-off-by: Manuel Pégourié-Gonnard --- include/mbedtls/ssl.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 3811fd2245..b40b4f458f 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -52,9 +52,7 @@ #include "mbedtls/platform_time.h" #endif -#if defined(MBEDTLS_USE_PSA_CRYPTO) #include "psa/crypto.h" -#endif /* MBEDTLS_USE_PSA_CRYPTO */ /* * SSL Error codes From 1fafb1f778c3eb98eddd3474c93d0ecdc647621d Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 16 Sep 2022 07:19:49 -0400 Subject: [PATCH 0321/1028] Documentation clarifications for ECJPAKE-to-PMS Signed-off-by: Andrzej Kurek --- include/psa/crypto_values.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/include/psa/crypto_values.h b/include/psa/crypto_values.h index 573ff9a16c..5a954ee399 100644 --- a/include/psa/crypto_values.h +++ b/include/psa/crypto_values.h @@ -2021,10 +2021,15 @@ #define PSA_ALG_TLS12_PSK_TO_MS_GET_HASH(hkdf_alg) \ (PSA_ALG_CATEGORY_HASH | ((hkdf_alg) & PSA_ALG_HASH_MASK)) -/* Macro to build a KDF that takes the shared secret K (an EC point in case - * of EC J-PAKE) and calculates SHA256(K.X) that the rest of TLS 1.2 will - * use to derive the session secret. Uses PSA_ALG_SHA_256. Only P-256 is - * supported, so the input has to be exactly 65 bytes. +/* The TLS 1.2 ECJPAKE-to-PMS KDF. It takes the shared secret K (an EC point + * in case of EC J-PAKE) and calculates SHA256(K.X) that the rest of TLS 1.2 + * will use to derive the session secret, as defined by step 2 of + * https://datatracker.ietf.org/doc/html/draft-cragie-tls-ecjpake-01#section-8.7. + * Uses PSA_ALG_SHA_256. + * This function takes a single input: + * #PSA_KEY_DERIVATION_INPUT_SECRET is the shared secret K from EC J-PAKE. + * The only supported curve is secp256r1 (the 256-bit curve in + * #PSA_ECC_FAMILY_SECP_R1), so the input must be exactly 65 bytes. */ #define PSA_ALG_TLS12_ECJPAKE_TO_PMS ((psa_algorithm_t)0x08000600) #define PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS(alg) \ From 3c4c51430255cf6afc714ce13c4c29ba02f9115a Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 16 Sep 2022 07:24:14 -0400 Subject: [PATCH 0322/1028] Remove `PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS` Signed-off-by: Andrzej Kurek --- include/psa/crypto_values.h | 2 -- library/psa_crypto.c | 12 ++++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/include/psa/crypto_values.h b/include/psa/crypto_values.h index 5a954ee399..455b6388b3 100644 --- a/include/psa/crypto_values.h +++ b/include/psa/crypto_values.h @@ -2032,8 +2032,6 @@ * #PSA_ECC_FAMILY_SECP_R1), so the input must be exactly 65 bytes. */ #define PSA_ALG_TLS12_ECJPAKE_TO_PMS ((psa_algorithm_t)0x08000600) -#define PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS(alg) \ - (alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS) /* This flag indicates whether the key derivation algorithm is suitable for * use on low-entropy secrets such as password - these algorithms are also diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 981b6f8ffb..8c59cf68fd 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -4352,7 +4352,7 @@ psa_status_t psa_key_derivation_abort( psa_key_derivation_operation_t *operation #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF) || * defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) - if( PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS( kdf_alg ) ) + if( kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS ) { mbedtls_platform_zeroize( operation->ctx.tls12_ecjpake_to_pms.data, PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE ); @@ -4720,7 +4720,7 @@ psa_status_t psa_key_derivation_output_bytes( #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF || * MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) - if( PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS( kdf_alg ) ) + if( kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS ) { status = psa_key_derivation_tls12_ecjpake_to_pms_read( &operation->ctx.tls12_ecjpake_to_pms, output, output_length ); @@ -5121,7 +5121,7 @@ static int is_kdf_alg_supported( psa_algorithm_t kdf_alg ) return( 1 ); #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) - if( PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS( kdf_alg ) ) + if( kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS ) return( 1 ); #endif return( 0 ); @@ -5151,7 +5151,7 @@ static psa_status_t psa_key_derivation_setup_kdf( * ecjpake to pms) are based on a hash algorithm. */ psa_algorithm_t hash_alg = PSA_ALG_HKDF_GET_HASH( kdf_alg ); size_t hash_size = PSA_HASH_LENGTH( hash_alg ); - if( !PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS( kdf_alg ) ) + if( kdf_alg != PSA_ALG_TLS12_ECJPAKE_TO_PMS ) { if( hash_size == 0 ) return( PSA_ERROR_NOT_SUPPORTED ); @@ -5176,7 +5176,7 @@ static psa_status_t psa_key_derivation_setup_kdf( } #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) if( PSA_ALG_IS_HKDF_EXTRACT( kdf_alg ) || - PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS ( kdf_alg )) + ( kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS ) ) operation->capacity = hash_size; else #endif /* MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT */ @@ -5668,7 +5668,7 @@ static psa_status_t psa_key_derivation_input_internal( else #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) - if( PSA_ALG_IS_TLS12_ECJPAKE_TO_PMS( kdf_alg ) ) + if( kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS ) { status = psa_tls12_ecjpake_to_pms_input( &operation->ctx.tls12_ecjpake_to_pms, step, data, data_length ); From c2fb540c67cf58642829c4ddffe74ea9badb7f35 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Fri, 16 Sep 2022 17:03:54 +0100 Subject: [PATCH 0323/1028] Use a script specific description in CLI help Previous changes used the docstring of the test_generation module, which does not inform a user about the script. Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/test_generation.py | 4 ++-- tests/scripts/generate_bignum_tests.py | 4 ++-- tests/scripts/generate_psa_tests.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py index a82f79e671..a88425f46a 100644 --- a/scripts/mbedtls_dev/test_generation.py +++ b/scripts/mbedtls_dev/test_generation.py @@ -179,9 +179,9 @@ class TestGenerator: test_cases = self.targets[name](*target_args) self.write_test_data_file(name, test_cases) -def main(args, generator_class: Type[TestGenerator] = TestGenerator): +def main(args, description: str, generator_class: Type[TestGenerator] = TestGenerator): """Command line entry point.""" - parser = argparse.ArgumentParser(description=__doc__) + parser = argparse.ArgumentParser(description=description) parser.add_argument('--list', action='store_true', help='List available targets and exit') parser.add_argument('--list-for-cmake', action='store_true', diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index b4915d8460..ceafa4a489 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -233,6 +233,6 @@ class BignumAdd(BignumOperation): def result(self) -> str: return quote_str("{:x}".format(self.int_a + self.int_b)) - if __name__ == '__main__': - test_generation.main(sys.argv[1:]) + # Use the section of the docstring relevant to the CLI as description + test_generation.main(sys.argv[1:], "\n".join(__doc__.splitlines()[:4])) diff --git a/tests/scripts/generate_psa_tests.py b/tests/scripts/generate_psa_tests.py index 81b35c9b39..c788fd76b6 100755 --- a/tests/scripts/generate_psa_tests.py +++ b/tests/scripts/generate_psa_tests.py @@ -917,4 +917,4 @@ class PSATestGenerator(test_generation.TestGenerator): super().generate_target(name, self.info) if __name__ == '__main__': - test_generation.main(sys.argv[1:], PSATestGenerator) + test_generation.main(sys.argv[1:], __doc__, PSATestGenerator) From 7763829c5cf736b6274593aaa1ef1d81ae10b05f Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 16 Sep 2022 12:24:52 -0400 Subject: [PATCH 0324/1028] Add missing ifdef when calculating operation capacity Signed-off-by: Andrzej Kurek --- library/psa_crypto.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 8c59cf68fd..663b645bbb 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -5174,7 +5174,8 @@ static psa_status_t psa_key_derivation_setup_kdf( { return( PSA_ERROR_NOT_SUPPORTED ); } -#if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) +#if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) || \ + defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) if( PSA_ALG_IS_HKDF_EXTRACT( kdf_alg ) || ( kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS ) ) operation->capacity = hash_size; From 64f2efdc40bb1d53605a5aba9c263a405d42eb22 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 16 Sep 2022 21:41:47 +0200 Subject: [PATCH 0325/1028] More precise name for test data generation We have Python code both for test code generation (tests/scripts/generate_test_code.py) and now for test data generation. Avoid the ambiguous expression "test generation". This commit renames the Python module and adjusts all references to it. A subsequent commit will adjust the documentation. Signed-off-by: Gilles Peskine --- .../{test_generation.py => test_data_generation.py} | 0 tests/CMakeLists.txt | 4 ++-- tests/Makefile | 4 ++-- tests/scripts/generate_bignum_tests.py | 10 +++++----- tests/scripts/generate_psa_tests.py | 6 +++--- 5 files changed, 12 insertions(+), 12 deletions(-) rename scripts/mbedtls_dev/{test_generation.py => test_data_generation.py} (100%) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_data_generation.py similarity index 100% rename from scripts/mbedtls_dev/test_generation.py rename to scripts/mbedtls_dev/test_data_generation.py diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 57cf9770ff..b518e5833c 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -63,7 +63,7 @@ if(GEN_FILES) DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_bignum_tests.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_case.py - ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_generation.py + ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_data_generation.py ) add_custom_command( OUTPUT @@ -80,7 +80,7 @@ if(GEN_FILES) ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/macro_collector.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/psa_storage.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_case.py - ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_generation.py + ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_data_generation.py ${CMAKE_CURRENT_SOURCE_DIR}/../include/psa/crypto_config.h ${CMAKE_CURRENT_SOURCE_DIR}/../include/psa/crypto_values.h ${CMAKE_CURRENT_SOURCE_DIR}/../include/psa/crypto_extra.h diff --git a/tests/Makefile b/tests/Makefile index 8777ae92fe..57f8855441 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -93,7 +93,7 @@ generated_files: $(GENERATED_FILES) $(GENERATED_BIGNUM_DATA_FILES): generated_bignum_test_data generated_bignum_test_data: scripts/generate_bignum_tests.py generated_bignum_test_data: ../scripts/mbedtls_dev/test_case.py -generated_bignum_test_data: ../scripts/mbedtls_dev/test_generation.py +generated_bignum_test_data: ../scripts/mbedtls_dev/test_data_generation.py generated_bignum_test_data: echo " Gen $(GENERATED_BIGNUM_DATA_FILES)" $(PYTHON) scripts/generate_bignum_tests.py @@ -104,7 +104,7 @@ generated_psa_test_data: ../scripts/mbedtls_dev/crypto_knowledge.py generated_psa_test_data: ../scripts/mbedtls_dev/macro_collector.py generated_psa_test_data: ../scripts/mbedtls_dev/psa_storage.py generated_psa_test_data: ../scripts/mbedtls_dev/test_case.py -generated_psa_test_data: ../scripts/mbedtls_dev/test_generation.py +generated_psa_test_data: ../scripts/mbedtls_dev/test_data_generation.py ## The generated file only depends on the options that are present in ## crypto_config.h, not on which options are set. To avoid regenerating this ## file all the time when switching between configurations, don't declare diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index ceafa4a489..1cd859c4af 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -6,7 +6,7 @@ generate only the specified files. Class structure: -Child classes of test_generation.BaseTarget (file targets) represent an output +Child classes of test_data_generation.BaseTarget (file targets) represent an output file. These indicate where test cases will be written to, for all subclasses of this target. Multiple file targets should not reuse a `target_basename`. @@ -36,7 +36,7 @@ following: call `.create_test_case()` to yield the TestCase. Additional details and other attributes/methods are given in the documentation -of BaseTarget in test_generation.py. +of BaseTarget in test_data_generation.py. """ # Copyright The Mbed TLS Contributors @@ -63,7 +63,7 @@ from typing import Iterator, List, Tuple, TypeVar import scripts_path # pylint: disable=unused-import from mbedtls_dev import test_case -from mbedtls_dev import test_generation +from mbedtls_dev import test_data_generation T = TypeVar('T') #pylint: disable=invalid-name @@ -85,7 +85,7 @@ def combination_pairs(values: List[T]) -> List[Tuple[T, T]]: ) -class BignumTarget(test_generation.BaseTarget, metaclass=ABCMeta): +class BignumTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method """Target for bignum (mpi) test case generation.""" target_basename = 'test_suite_mpi.generated' @@ -235,4 +235,4 @@ class BignumAdd(BignumOperation): if __name__ == '__main__': # Use the section of the docstring relevant to the CLI as description - test_generation.main(sys.argv[1:], "\n".join(__doc__.splitlines()[:4])) + test_data_generation.main(sys.argv[1:], "\n".join(__doc__.splitlines()[:4])) diff --git a/tests/scripts/generate_psa_tests.py b/tests/scripts/generate_psa_tests.py index c788fd76b6..2f0900757b 100755 --- a/tests/scripts/generate_psa_tests.py +++ b/tests/scripts/generate_psa_tests.py @@ -30,7 +30,7 @@ from mbedtls_dev import crypto_knowledge from mbedtls_dev import macro_collector from mbedtls_dev import psa_storage from mbedtls_dev import test_case -from mbedtls_dev import test_generation +from mbedtls_dev import test_data_generation def psa_want_symbol(name: str) -> str: @@ -892,7 +892,7 @@ class StorageFormatV0(StorageFormat): yield from super().generate_all_keys() yield from self.all_keys_for_implicit_usage() -class PSATestGenerator(test_generation.TestGenerator): +class PSATestGenerator(test_data_generation.TestGenerator): """Test generator subclass including PSA targets and info.""" # Note that targets whose names contain 'test_format' have their content # validated by `abi_check.py`. @@ -917,4 +917,4 @@ class PSATestGenerator(test_generation.TestGenerator): super().generate_target(name, self.info) if __name__ == '__main__': - test_generation.main(sys.argv[1:], __doc__, PSATestGenerator) + test_data_generation.main(sys.argv[1:], __doc__, PSATestGenerator) From 049042586e176abc215b0a57b8af1be5398981d6 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 16 Sep 2022 22:02:37 +0200 Subject: [PATCH 0326/1028] Clarify the descriptions of test-case-data-related modules Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/test_case.py | 2 +- scripts/mbedtls_dev/test_data_generation.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/mbedtls_dev/test_case.py b/scripts/mbedtls_dev/test_case.py index 6a46e4209b..d8f7b60040 100644 --- a/scripts/mbedtls_dev/test_case.py +++ b/scripts/mbedtls_dev/test_case.py @@ -1,4 +1,4 @@ -"""Library for generating Mbed TLS test data. +"""Library for constructing an Mbed TLS test case. """ # Copyright The Mbed TLS Contributors diff --git a/scripts/mbedtls_dev/test_data_generation.py b/scripts/mbedtls_dev/test_data_generation.py index a88425f46a..f8e86ed8c6 100644 --- a/scripts/mbedtls_dev/test_data_generation.py +++ b/scripts/mbedtls_dev/test_data_generation.py @@ -1,4 +1,7 @@ -"""Common test generation classes and main function. +"""Common code for test data generation. + +This module defines classes that are of general use to automatically +generate .data files for unit tests, as well as a main function. These are used both by generate_psa_tests.py and generate_bignum_tests.py. """ From 7b3fa657afaf856e76ad8f762cdbfe6ff90e22b9 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 16 Sep 2022 22:22:53 +0200 Subject: [PATCH 0327/1028] generate_*_tests.py --directory: fix handling of relative path The option to --directory was intended to be relative to the current directory when the script is invoked, which is the intuitive behavior. But this was not implemented correctly, and it was actually interpreted relative to the mbedtls root (which the script chdir's into). Fix this. Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/test_data_generation.py | 24 +++++++++++---------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/scripts/mbedtls_dev/test_data_generation.py b/scripts/mbedtls_dev/test_data_generation.py index f8e86ed8c6..36c9475056 100644 --- a/scripts/mbedtls_dev/test_data_generation.py +++ b/scripts/mbedtls_dev/test_data_generation.py @@ -141,8 +141,7 @@ class BaseTarget(metaclass=ABCMeta): class TestGenerator: """Generate test cases and write to data files.""" def __init__(self, options) -> None: - self.test_suite_directory = self.get_option(options, 'directory', - 'tests/suites') + self.test_suite_directory = options.directory # Update `targets` with an entry for each child class of BaseTarget. # Each entry represents a file generated by the BaseTarget framework, # and enables generating the .data files using the CLI. @@ -151,11 +150,6 @@ class TestGenerator: for subclass in BaseTarget.__subclasses__() }) - @staticmethod - def get_option(options, name: str, default: T) -> T: - value = getattr(options, name, None) - return default if value is None else value - def filename_for(self, basename: str) -> str: """The location of the data file with the specified base name.""" return posixpath.join(self.test_suite_directory, basename + '.data') @@ -189,16 +183,24 @@ def main(args, description: str, generator_class: Type[TestGenerator] = TestGene help='List available targets and exit') parser.add_argument('--list-for-cmake', action='store_true', help='Print \';\'-separated list of available targets and exit') + # If specified explicitly, this option may be a path relative to the + # current directory when the script is invoked. The default value + # is relative to the mbedtls root, which we don't know yet. So we + # can't set a string as the default value here. parser.add_argument('--directory', metavar='DIR', help='Output directory (default: tests/suites)') - # The `--directory` option is interpreted relative to the directory from - # which the script is invoked, but the default is relative to the root of - # the mbedtls tree. The default should not be set above, but instead after - # `build_tree.chdir_to_root()` is called. parser.add_argument('targets', nargs='*', metavar='TARGET', help='Target file to generate (default: all; "-": none)') options = parser.parse_args(args) + + # Change to the mbedtls root, to keep things simple. But first, adjust + # command line options that might be relative paths. + if options.directory is None: + options.directory = 'tests/suites' + else: + options.directory = os.path.abspath(options.directory) build_tree.chdir_to_root() + generator = generator_class(options) if options.list: for name in sorted(generator.targets): From 4537d6d8385b68550199e67367e15e94f5ac1942 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 16 Sep 2022 22:26:38 +0200 Subject: [PATCH 0328/1028] Move implementation detail from docstring to comment Signed-off-by: Gilles Peskine --- tests/scripts/generate_bignum_tests.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 1cd859c4af..091630decc 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -74,11 +74,9 @@ def quote_str(val) -> str: return "\"{}\"".format(val) def combination_pairs(values: List[T]) -> List[Tuple[T, T]]: - """Return all pair combinations from input values. - - The return value is cast, as older versions of mypy are unable to derive - the specific type returned by itertools.combinations_with_replacement. - """ + """Return all pair combinations from input values.""" + # The return value is cast, as older versions of mypy are unable to derive + # the specific type returned by itertools.combinations_with_replacement. return typing.cast( List[Tuple[T, T]], list(itertools.combinations_with_replacement(values, 2)) From 15997bd389278b09afa69468bb454662e948a56e Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 16 Sep 2022 22:35:18 +0200 Subject: [PATCH 0329/1028] Use relative imports when importing other modules in the same directory We were using absolute imports under the assumption that the /scripts directory is in the path. This worked in normal use because every one of our Python scripts either were in the /scripts directory, or added the /scripts directory to the module search path in order to reference mbedtls_dev. However, this broke things like ``` python3 -m unittest scripts/mbedtls_dev/psa_storage.py ``` Fix this by using relative imports. Relative imports are only supposed to be used inside a package (Python doesn't complain, but Pylint does). So make /scripts/mbedtls_dev a proper package by creating __init__.py. Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/__init__.py | 3 +++ scripts/mbedtls_dev/crypto_knowledge.py | 2 +- scripts/mbedtls_dev/psa_storage.py | 2 +- scripts/mbedtls_dev/test_case.py | 2 +- scripts/mbedtls_dev/test_data_generation.py | 4 ++-- 5 files changed, 8 insertions(+), 5 deletions(-) create mode 100644 scripts/mbedtls_dev/__init__.py diff --git a/scripts/mbedtls_dev/__init__.py b/scripts/mbedtls_dev/__init__.py new file mode 100644 index 0000000000..c5bddaf74b --- /dev/null +++ b/scripts/mbedtls_dev/__init__.py @@ -0,0 +1,3 @@ +# This file needs to exist to make mbedtls_dev a package. +# Among other things, this allows modules in this directory to make +# relative impotrs. diff --git a/scripts/mbedtls_dev/crypto_knowledge.py b/scripts/mbedtls_dev/crypto_knowledge.py index 592fc0afe2..1ce549903a 100644 --- a/scripts/mbedtls_dev/crypto_knowledge.py +++ b/scripts/mbedtls_dev/crypto_knowledge.py @@ -22,7 +22,7 @@ import enum import re from typing import FrozenSet, Iterable, List, Optional, Tuple -from mbedtls_dev.asymmetric_key_data import ASYMMETRIC_KEY_DATA +from .asymmetric_key_data import ASYMMETRIC_KEY_DATA def short_expression(original: str, level: int = 0) -> str: diff --git a/scripts/mbedtls_dev/psa_storage.py b/scripts/mbedtls_dev/psa_storage.py index a06dce13ba..bae99383dc 100644 --- a/scripts/mbedtls_dev/psa_storage.py +++ b/scripts/mbedtls_dev/psa_storage.py @@ -26,7 +26,7 @@ import struct from typing import Dict, List, Optional, Set, Union import unittest -from mbedtls_dev import c_build_helper +from . import c_build_helper class Expr: diff --git a/scripts/mbedtls_dev/test_case.py b/scripts/mbedtls_dev/test_case.py index d8f7b60040..43ddf203b6 100644 --- a/scripts/mbedtls_dev/test_case.py +++ b/scripts/mbedtls_dev/test_case.py @@ -21,7 +21,7 @@ import os import sys from typing import Iterable, List, Optional -from mbedtls_dev import typing_util +from . import typing_util def hex_string(data: bytes) -> str: return '"' + binascii.hexlify(data).decode('ascii') + '"' diff --git a/scripts/mbedtls_dev/test_data_generation.py b/scripts/mbedtls_dev/test_data_generation.py index 36c9475056..cdb1c03b89 100644 --- a/scripts/mbedtls_dev/test_data_generation.py +++ b/scripts/mbedtls_dev/test_data_generation.py @@ -29,8 +29,8 @@ import re from abc import ABCMeta, abstractmethod from typing import Callable, Dict, Iterable, Iterator, List, Type, TypeVar -from mbedtls_dev import build_tree -from mbedtls_dev import test_case +from . import build_tree +from . import test_case T = TypeVar('T') #pylint: disable=invalid-name From de0880317086183efc4906a5fb89a3c2ed46c4be Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Sat, 17 Sep 2022 22:07:58 +0200 Subject: [PATCH 0330/1028] refactored and addressed reviewer observations in generate_driver_wrappers.py Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 122 ++++++++++++++++------------ 1 file changed, 68 insertions(+), 54 deletions(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index f43d4e57aa..6cf8e86d43 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -28,6 +28,7 @@ import argparse import jsonschema import jinja2 from mbedtls_dev import build_tree +from traceback import format_tb JSONSchema = NewType('JSONSchema', object) # The Driver is an Object, but practically it's indexable and can called a dictionary to @@ -41,6 +42,12 @@ class JsonValidationException(Exception): super().__init__(self.message) +class DriverReaderException(Exception): + def __init__(self, message="Driver Reader Failed"): + self.message = message + super().__init__(self.message) + + def render(template_path: str, driver_jsoncontext: list) -> str: """ Render template from the input file and driver JSON. @@ -67,7 +74,7 @@ def generate_driver_wrapper_file(template_dir: str, \ out_file.write(result) -def validate_json(driverjson_data: Driver, driverschema_list: dict) -> bool: +def validate_json(driverjson_data: Driver, driverschema_list: dict) -> None: """ Validate the Driver JSON against an appropriate schema the schema passed could be that matching an opaque/ transparent driver. @@ -77,16 +84,15 @@ def validate_json(driverjson_data: Driver, driverschema_list: dict) -> bool: try: _schema = driverschema_list[driver_type] jsonschema.validate(instance=driverjson_data, schema=_schema) - except KeyError as err: - # This could happen if the driverjson_data.type does not exist in the passed in schema list + # This could happen if the driverjson_data.type does not exist in the provided schema list # schemas = {'transparent': transparent_driver_schema, 'opaque': opaque_driver_schema} # Print onto stdout and stderr. print("Unknown Driver type " + driver_type + " for driver " + driver_prefix, str(err)) print("Unknown Driver type " + driver_type + " for driver " + driver_prefix, str(err), file=sys.stderr) - return False + raise JsonValidationException() from err except jsonschema.exceptions.ValidationError as err: # Print onto stdout and stderr. @@ -96,51 +102,60 @@ def validate_json(driverjson_data: Driver, driverschema_list: dict) -> bool: print("Error: Failed to validate data file: {} using schema: {}." "\n Exception Message: \"{}\"" " ".format(driverjson_data, _schema, str(err)), file=sys.stderr) - return False - - return True + raise JsonValidationException() from err def load_driver(schemas: Dict[str, Any], driver_file: str) -> Any: with open(driver_file, 'r') as f: json_data = json.load(f) - if not validate_json(json_data, schemas): - raise JsonValidationException() + try: + validate_json(json_data, schemas) + except JsonValidationException as e: + raise DriverReaderException from e return json_data -def read_driver_descriptions(mbedtls_root: str, json_directory: str, \ - jsondriver_list: str) -> Tuple[bool, list]: +def load_schemas(mbedtls_root): + schema_file_paths = { + 'transparent': os.path.join(mbedtls_root, + 'scripts', + 'data_files', + 'driver_jsons', + 'driver_transparent_schema.json'), + 'opaque': os.path.join(mbedtls_root, + 'scripts', + 'data_files', + 'driver_jsons', + 'driver_transparent_schema.json') + } + driver_schema = {} + for key, file_path in schema_file_paths.items(): + with open(file_path, 'r') as file: + driver_schema[key] = json.load(file) + return driver_schema + + +def read_driver_descriptions(mbedtls_root: str, + json_directory: str, + jsondriver_list: str) -> list: """ Merge driver JSON files into a single ordered JSON after validation. """ result = [] - with open(os.path.join(mbedtls_root, - 'scripts', - 'data_files', - 'driver_jsons', - 'driver_transparent_schema.json'), 'r') as file: - transparent_driver_schema = json.load(file) - with open(os.path.join(mbedtls_root, - 'scripts', - 'data_files', - 'driver_jsons', - 'driver_opaque_schema.json'), 'r') as file: - opaque_driver_schema = json.load(file) + driver_schema = load_schemas(mbedtls_root) - driver_schema = {'transparent': transparent_driver_schema, - 'opaque': opaque_driver_schema} - with open(os.path.join(json_directory, jsondriver_list), 'r') as driverlistfile: - driver_list = json.load(driverlistfile) + with open(os.path.join(json_directory, jsondriver_list), 'r') as driver_list_file: + driver_list = json.load(driver_list_file) - try: - result = [load_driver(schemas=driver_schema, - driver_file=os.path.join(json_directory, driver_file_name)) - for driver_file_name in driver_list] - except JsonValidationException as _: - return False, [] + return [load_driver(schemas=driver_schema, + driver_file=os.path.join(json_directory, driver_file_name)) + for driver_file_name in driver_list] - return True, result + +def trace_exception(e, file=sys.stderr): + print("Exception: type: %s, message: %s, trace: %s" % ( + e.__class__, str(e), format_tb(e.__traceback__) + ), file) def main() -> int: @@ -162,30 +177,29 @@ def main() -> int: args = parser.parse_args() mbedtls_root = os.path.abspath(args.mbedtls_root) - if args.template_dir is None: - args.template_dir = os.path.join(mbedtls_root, - 'scripts', - 'data_files', - 'driver_templates') - if args.json_dir is None: - args.json_dir = os.path.join(mbedtls_root, - 'scripts', - 'data_files', - 'driver_jsons') - if args.output_directory is None: - args.output_directory = os.path.join(mbedtls_root, 'library') - output_directory = args.output_directory - template_directory = args.template_dir - json_directory = args.json_dir + output_directory = args.output_directory if args.output_directory is not None else \ + os.path.join(mbedtls_root, 'library') + template_directory = args.template_dir if args.template_dir is not None else \ + os.path.join(mbedtls_root, + 'scripts', + 'data_files', + 'driver_templates') + json_directory = args.json_dir if args.json_dir is not None else \ + os.path.join(mbedtls_root, + 'scripts', + 'data_files', + 'driver_jsons') - # Read and validate list of driver jsons from driverlist.json - ret, merged_driver_json = read_driver_descriptions(mbedtls_root, json_directory, - 'driverlist.json') - if ret is False: + try: + # Read and validate list of driver jsons from driverlist.json + merged_driver_json = read_driver_descriptions(mbedtls_root, + json_directory, + 'driverlist.json') + except DriverReaderException as e: + trace_exception(e) return 1 generate_driver_wrapper_file(template_directory, output_directory, merged_driver_json) - return 0 From 4c93bb52efb39ce674acf446eecb18f5b904bf9b Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Sat, 17 Sep 2022 22:20:33 +0200 Subject: [PATCH 0331/1028] removed changed made to the test/bionic/Dockerfile Signed-off-by: Asfandyar Orakzai --- tests/docker/bionic/Dockerfile | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/tests/docker/bionic/Dockerfile b/tests/docker/bionic/Dockerfile index 4b5739cce7..28d33b7553 100644 --- a/tests/docker/bionic/Dockerfile +++ b/tests/docker/bionic/Dockerfile @@ -60,15 +60,9 @@ RUN apt-get update \ pkg-config \ && rm -rf /var/lib/apt/lists/* -# The following packages are required for validating Python files. -# The version of Pylint is set to 2.4.4 to match CI. +# Jinja2 is required for driver dispatch code generation. RUN python3 -m pip install \ - packaging mypy pylint==2.4.4 - -# Jinja2 and jsonschema is required for driver dispatch code generation. -RUN python3 -m pip install \ - jinja2==2.10.1 types-jinja2 \ - jsonschema==3.2.0 types-jsonschema + jinja2==2.10.1 types-jinja2 # Build a static, legacy openssl from sources with sslv3 enabled # Based on https://gist.github.com/bmaupin/8caca3a1e8c3c5686141 (build-openssl.sh) From 5c9569a2bc2f46a5a357ce517bf1ac1cb8f68267 Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Sat, 17 Sep 2022 23:13:52 +0200 Subject: [PATCH 0332/1028] fixed formating Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 6cf8e86d43..72a8c6182f 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -23,12 +23,12 @@ import sys import os import json -from typing import Tuple, NewType, Dict, Any +from typing import NewType, Dict, Any +from traceback import format_tb import argparse import jsonschema import jinja2 from mbedtls_dev import build_tree -from traceback import format_tb JSONSchema = NewType('JSONSchema', object) # The Driver is an Object, but practically it's indexable and can called a dictionary to @@ -70,7 +70,9 @@ def generate_driver_wrapper_file(template_dir: str, \ result = render(driver_wrapper_template_filename, driver_jsoncontext) - with open(os.path.join(output_dir, "psa_crypto_driver_wrappers.c"), 'w') as out_file: + with open(file=os.path.join(output_dir, "psa_crypto_driver_wrappers.c"), + mode='w', + encoding='UTF-8') as out_file: out_file.write(result) @@ -106,7 +108,7 @@ def validate_json(driverjson_data: Driver, driverschema_list: dict) -> None: def load_driver(schemas: Dict[str, Any], driver_file: str) -> Any: - with open(driver_file, 'r') as f: + with open(file=driver_file, mode='r', encoding='UTF-8') as f: json_data = json.load(f) try: validate_json(json_data, schemas) @@ -115,7 +117,8 @@ def load_driver(schemas: Dict[str, Any], driver_file: str) -> Any: return json_data -def load_schemas(mbedtls_root): +def load_schemas(mbedtls_root: str) -> Dict[str, Any]: + """Load schemas map""" schema_file_paths = { 'transparent': os.path.join(mbedtls_root, 'scripts', @@ -130,7 +133,7 @@ def load_schemas(mbedtls_root): } driver_schema = {} for key, file_path in schema_file_paths.items(): - with open(file_path, 'r') as file: + with open(file=file_path, mode='r', encoding='UTF-8') as file: driver_schema[key] = json.load(file) return driver_schema @@ -141,10 +144,11 @@ def read_driver_descriptions(mbedtls_root: str, """ Merge driver JSON files into a single ordered JSON after validation. """ - result = [] driver_schema = load_schemas(mbedtls_root) - with open(os.path.join(json_directory, jsondriver_list), 'r') as driver_list_file: + with open(file=os.path.join(json_directory, jsondriver_list), + mode='r', + encoding='UTF-8') as driver_list_file: driver_list = json.load(driver_list_file) return [load_driver(schemas=driver_schema, From 9e6170d95e3896ea4f2eddb420fd0d8a271eff3b Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Sat, 17 Sep 2022 23:37:16 +0200 Subject: [PATCH 0333/1028] added some doc strings and fixed formating Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 72a8c6182f..ce801a62df 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -60,8 +60,9 @@ def render(template_path: str, driver_jsoncontext: list) -> str: return template.render(drivers=driver_jsoncontext) -def generate_driver_wrapper_file(template_dir: str, \ - output_dir: str, driver_jsoncontext: list) -> None: +def generate_driver_wrapper_file(template_dir: str, + output_dir: str, + driver_jsoncontext: list) -> None: """ Generate the file psa_crypto_driver_wrapper.c. """ @@ -108,6 +109,7 @@ def validate_json(driverjson_data: Driver, driverschema_list: dict) -> None: def load_driver(schemas: Dict[str, Any], driver_file: str) -> Any: + """loads validated json driver""" with open(file=driver_file, mode='r', encoding='UTF-8') as f: json_data = json.load(f) try: @@ -156,7 +158,8 @@ def read_driver_descriptions(mbedtls_root: str, for driver_file_name in driver_list] -def trace_exception(e, file=sys.stderr): +def trace_exception(e: Exception, file=sys.stderr) -> None: + """Prints exception trace to the given TextIO handle""" print("Exception: type: %s, message: %s, trace: %s" % ( e.__class__, str(e), format_tb(e.__traceback__) ), file) From 4ca4a930a94a751c616cae8733da715387920ef7 Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Sun, 18 Sep 2022 12:37:53 +0200 Subject: [PATCH 0334/1028] fixed opaque schemas paths Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index ce801a62df..b808ac9c63 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -131,7 +131,7 @@ def load_schemas(mbedtls_root: str) -> Dict[str, Any]: 'scripts', 'data_files', 'driver_jsons', - 'driver_transparent_schema.json') + 'driver_opaque_schema.json') } driver_schema = {} for key, file_path in schema_file_paths.items(): From ef843f2b0c578d579228bd90894c4319379ae1bf Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 18 Sep 2022 14:05:23 +0200 Subject: [PATCH 0335/1028] MBEDTLS_PLATFORM_VSNPRINTF_ALT requires MBEDTLS_PLATFORM_C mbedtls_vsnprintf replacement works like mbedtls_snprintf replacement, so copy the requirements for MBEDTLS_PLATFORM_VSNPRINTF_ALT. (MBEDTLS_PLATFORM_xxx_MACRO shouldn't require MBEDTLS_PLATFORM_C, but that's a separate preexisting problem which I do not try address at this time.) Signed-off-by: Gilles Peskine --- include/mbedtls/check_config.h | 14 ++++++++++++++ tests/scripts/all.sh | 1 + 2 files changed, 15 insertions(+) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index e00ffb5a96..cc67423d34 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -514,6 +514,20 @@ #error "MBEDTLS_PLATFORM_SNPRINTF_MACRO and MBEDTLS_PLATFORM_STD_SNPRINTF/MBEDTLS_PLATFORM_SNPRINTF_ALT cannot be defined simultaneously" #endif +#if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C) +#error "MBEDTLS_PLATFORM_VSNPRINTF_ALT defined, but not all prerequisites" +#endif + +#if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C) +#error "MBEDTLS_PLATFORM_VSNPRINTF_MACRO defined, but not all prerequisites" +#endif + +#if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) &&\ + ( defined(MBEDTLS_PLATFORM_STD_VSNPRINTF) ||\ + defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) ) +#error "MBEDTLS_PLATFORM_VSNPRINTF_MACRO and MBEDTLS_PLATFORM_STD_VSNPRINTF/MBEDTLS_PLATFORM_VSNPRINTF_ALT cannot be defined simultaneously" +#endif + #if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) &&\ !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) #error "MBEDTLS_PLATFORM_STD_MEM_HDR defined, but not all prerequisites" diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 6c70f78dbb..f2f10b5eea 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2298,6 +2298,7 @@ component_test_no_platform () { scripts/config.py unset MBEDTLS_PLATFORM_PRINTF_ALT scripts/config.py unset MBEDTLS_PLATFORM_FPRINTF_ALT scripts/config.py unset MBEDTLS_PLATFORM_SNPRINTF_ALT + scripts/config.py unset MBEDTLS_PLATFORM_VSNPRINTF_ALT scripts/config.py unset MBEDTLS_PLATFORM_TIME_ALT scripts/config.py unset MBEDTLS_PLATFORM_EXIT_ALT scripts/config.py unset MBEDTLS_PLATFORM_SETBUF_ALT From d9071e7d96d99a066ab9253b72e7cb98dc17770c Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 18 Sep 2022 21:17:09 +0200 Subject: [PATCH 0336/1028] Unify check_repo_path We had 4 identical copies of the check_repo_path function. Replace them by a single copy in the build_tree module where it naturally belongs. Signed-off-by: Gilles Peskine --- scripts/abi_check.py | 9 +++------ scripts/code_size_compare.py | 10 ++++------ scripts/mbedtls_dev/build_tree.py | 7 +++++++ tests/scripts/check_files.py | 10 ++++------ tests/scripts/check_names.py | 15 +++++---------- 5 files changed, 23 insertions(+), 28 deletions(-) diff --git a/scripts/abi_check.py b/scripts/abi_check.py index c2288432ce..ac1d60ffd0 100755 --- a/scripts/abi_check.py +++ b/scripts/abi_check.py @@ -113,6 +113,8 @@ from types import SimpleNamespace import xml.etree.ElementTree as ET +from mbedtls_dev import build_tree + class AbiChecker: """API and ABI checker.""" @@ -150,11 +152,6 @@ class AbiChecker: self.git_command = "git" self.make_command = "make" - @staticmethod - def check_repo_path(): - if not all(os.path.isdir(d) for d in ["include", "library", "tests"]): - raise Exception("Must be run from Mbed TLS root") - def _setup_logger(self): self.log = logging.getLogger() if self.verbose: @@ -540,7 +537,7 @@ class AbiChecker: def check_for_abi_changes(self): """Generate a report of ABI differences between self.old_rev and self.new_rev.""" - self.check_repo_path() + build_tree.check_repo_path() if self.check_api or self.check_abi: self.check_abi_tools_are_installed() self._get_abi_dump_for_ref(self.old_version) diff --git a/scripts/code_size_compare.py b/scripts/code_size_compare.py index 0ef438db7c..af6ddd4fcb 100755 --- a/scripts/code_size_compare.py +++ b/scripts/code_size_compare.py @@ -30,6 +30,9 @@ import os import subprocess import sys +from mbedtls_dev import build_tree + + class CodeSizeComparison: """Compare code size between two Git revisions.""" @@ -51,11 +54,6 @@ class CodeSizeComparison: self.git_command = "git" self.make_command = "make" - @staticmethod - def check_repo_path(): - if not all(os.path.isdir(d) for d in ["include", "library", "tests"]): - raise Exception("Must be run from Mbed TLS root") - @staticmethod def validate_revision(revision): result = subprocess.check_output(["git", "rev-parse", "--verify", @@ -172,7 +170,7 @@ class CodeSizeComparison: def get_comparision_results(self): """Compare size of library/*.o between self.old_rev and self.new_rev, and generate the result file.""" - self.check_repo_path() + build_tree.check_repo_path() self._get_code_size_for_rev(self.old_rev) self._get_code_size_for_rev(self.new_rev) return self.compare_code_size() diff --git a/scripts/mbedtls_dev/build_tree.py b/scripts/mbedtls_dev/build_tree.py index 3920d0ed6c..f52b785d95 100644 --- a/scripts/mbedtls_dev/build_tree.py +++ b/scripts/mbedtls_dev/build_tree.py @@ -25,6 +25,13 @@ def looks_like_mbedtls_root(path: str) -> bool: return all(os.path.isdir(os.path.join(path, subdir)) for subdir in ['include', 'library', 'programs', 'tests']) +def check_repo_path(): + """ + Check that the current working directory is the project root, and throw + an exception if not. + """ + if not all(os.path.isdir(d) for d in ["include", "library", "tests"]): + raise Exception("This script must be run from Mbed TLS root") def chdir_to_root() -> None: """Detect the root of the Mbed TLS source tree and change to it. diff --git a/tests/scripts/check_files.py b/tests/scripts/check_files.py index a0f5e1f538..5c18702def 100755 --- a/tests/scripts/check_files.py +++ b/tests/scripts/check_files.py @@ -34,6 +34,9 @@ try: except ImportError: pass +import scripts_path # pylint: disable=unused-import +from mbedtls_dev import build_tree + class FileIssueTracker: """Base class for file-wide issue tracking. @@ -338,7 +341,7 @@ class IntegrityChecker: """Instantiate the sanity checker. Check files under the current directory. Write a report of issues to log_file.""" - self.check_repo_path() + build_tree.check_repo_path() self.logger = None self.setup_logger(log_file) self.issues_to_check = [ @@ -353,11 +356,6 @@ class IntegrityChecker: MergeArtifactIssueTracker(), ] - @staticmethod - def check_repo_path(): - if not all(os.path.isdir(d) for d in ["include", "library", "tests"]): - raise Exception("Must be run from Mbed TLS root") - def setup_logger(self, log_file, level=logging.INFO): self.logger = logging.getLogger() self.logger.setLevel(level) diff --git a/tests/scripts/check_names.py b/tests/scripts/check_names.py index e204487290..aece1ef060 100755 --- a/tests/scripts/check_names.py +++ b/tests/scripts/check_names.py @@ -56,6 +56,10 @@ import shutil import subprocess import logging +import scripts_path # pylint: disable=unused-import +from mbedtls_dev import build_tree + + # Naming patterns to check against. These are defined outside the NameCheck # class for ease of modification. PUBLIC_MACRO_PATTERN = r"^(MBEDTLS|PSA)_[0-9A-Z_]*[0-9A-Z]$" @@ -219,7 +223,7 @@ class CodeParser(): """ def __init__(self, log): self.log = log - self.check_repo_path() + build_tree.check_repo_path() # Memo for storing "glob expression": set(filepaths) self.files = {} @@ -228,15 +232,6 @@ class CodeParser(): # Note that "*" can match directory separators in exclude lists. self.excluded_files = ["*/bn_mul", "*/compat-2.x.h"] - @staticmethod - def check_repo_path(): - """ - Check that the current working directory is the project root, and throw - an exception if not. - """ - if not all(os.path.isdir(d) for d in ["include", "library", "tests"]): - raise Exception("This script must be run from Mbed TLS root") - def comprehensive_parse(self): """ Comprehensive ("default") function to call each parsing function and From e188734f514939fa148a3d961a935f50bf8effe1 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 18 Sep 2022 21:27:37 +0200 Subject: [PATCH 0337/1028] Don't use parallel jobs for pylint When pylint runs in parallel, it loses the ability to detect duplicated code across modules. Duplicated code is usually a bad thing, so give pylint the opportunity to let us know. This makes pylint slightly slower, but going from 2 threads to 1 does not make it anywhere close to twice as slow. On my machine, with Python 3.5, pylint -j2 takes about 12s while single-threaded pylint takes about 16s of wall clock time. Signed-off-by: Gilles Peskine --- tests/scripts/check-python-files.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/check-python-files.sh b/tests/scripts/check-python-files.sh index dbf0365325..35319d3e1d 100755 --- a/tests/scripts/check-python-files.sh +++ b/tests/scripts/check-python-files.sh @@ -67,7 +67,7 @@ elif [ "$1" = "--can-mypy" ]; then fi echo 'Running pylint ...' -$PYTHON -m pylint -j 2 scripts/mbedtls_dev/*.py scripts/*.py tests/scripts/*.py || { +$PYTHON -m pylint scripts/mbedtls_dev/*.py scripts/*.py tests/scripts/*.py || { echo >&2 "pylint reported errors" ret=1 } From cca6ce882924951e75d14979241bacd7cb4d09a2 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 18 Sep 2022 23:08:38 +0200 Subject: [PATCH 0338/1028] Fix directory mixup with generated data files CMakeLists.txt was calling generate_psa_tests.py and siblings to list the generated test data files with a --directory option, intended the output to be this argument textually. This used to work, but no longer does, because the --directory argument is relative to the current directory when the Python script is invoked, and the script now shows an absolute path. CMakeLists.txt now completely ignores the directory part of the listed data file paths and builds its own. The base_xxx_files variables now contain actual base names, without a "suites/" prefix. This makes it more robust with respect to the behavior of the Python script, but it will break if we put data files in multiple different directories one day. Signed-off-by: Gilles Peskine --- tests/CMakeLists.txt | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index b518e5833c..d89542a44d 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -16,38 +16,44 @@ endif() # generated .data files will go there file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/suites) -# Get base names for generated files (starting at "suites/") +# Get base names for generated files execute_process( COMMAND ${MBEDTLS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_bignum_tests.py --list-for-cmake - --directory suites WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/.. OUTPUT_VARIABLE base_bignum_generated_data_files) +string(REGEX REPLACE "[^;]*/" "" + base_bignum_generated_data_files "${base_bignum_generated_data_files}") execute_process( COMMAND ${MBEDTLS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_psa_tests.py --list-for-cmake - --directory suites WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/.. OUTPUT_VARIABLE base_psa_generated_data_files) +string(REGEX REPLACE "[^;]*/" "" + base_psa_generated_data_files "${base_psa_generated_data_files}") -# Derive generated file paths in the build directory -set(base_generated_data_files ${base_bignum_generated_data_files} ${base_psa_generated_data_files}) +# Derive generated file paths in the build directory. The generated data +# files go into the suites/ subdirectory. +set(base_generated_data_files + ${base_bignum_generated_data_files} ${base_psa_generated_data_files}) +string(REGEX REPLACE "([^;]+)" "suites/\\1" + all_generated_data_files "${base_generated_data_files}") set(bignum_generated_data_files "") set(psa_generated_data_files "") foreach(file ${base_bignum_generated_data_files}) - list(APPEND bignum_generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/${file}) + list(APPEND bignum_generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/suites/${file}) endforeach() foreach(file ${base_psa_generated_data_files}) - list(APPEND psa_generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/${file}) + list(APPEND psa_generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/suites/${file}) endforeach() if(GEN_FILES) @@ -87,7 +93,7 @@ if(GEN_FILES) ) else() - foreach(file ${base_generated_data_files}) + foreach(file ${all_generated_data_files}) link_to_source(${file}) endforeach() endif() @@ -210,9 +216,9 @@ if(MSVC) endif(MSVC) file(GLOB test_suites RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" suites/*.data) -list(APPEND test_suites ${base_generated_data_files}) +list(APPEND test_suites ${all_generated_data_files}) # If the generated .data files are present in the source tree, we just added -# them twice, both through GLOB and through ${base_generated_data_files}. +# them twice, both through GLOB and through ${all_generated_data_files}. list(REMOVE_DUPLICATES test_suites) list(SORT test_suites) foreach(test_suite ${test_suites}) From 1ad7ace6b7d551a28ddf3b0406b248f2891606a2 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 9 Aug 2022 13:28:39 +0800 Subject: [PATCH 0339/1028] Add conf new session tickets Signed-off-by: Jerry Yu --- include/mbedtls/mbedtls_config.h | 8 +++++++ include/mbedtls/ssl.h | 36 ++++++++++++++++++++++++++++---- library/ssl_tls.c | 13 ++++++++++++ 3 files changed, 53 insertions(+), 4 deletions(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 687c5ef0ee..eea7f09808 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1578,6 +1578,14 @@ */ #define MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH 32 +/** + * \def MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS + * + * Default number of NewSessionTicket. This is not used in TLS 1.2. + * + */ +#define MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS 1 + /** * \def MBEDTLS_SSL_PROTO_DTLS * diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 1e0220a6ac..0f008ea3e9 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1329,9 +1329,17 @@ struct mbedtls_ssl_config #if defined(MBEDTLS_SSL_RENEGOTIATION) uint8_t MBEDTLS_PRIVATE(disable_renegotiation); /*!< disable renegotiation? */ #endif -#if defined(MBEDTLS_SSL_SESSION_TICKETS) - uint8_t MBEDTLS_PRIVATE(session_tickets); /*!< use session tickets? */ +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && \ + defined(MBEDTLS_SSL_CLI_C) + uint8_t MBEDTLS_PRIVATE(session_tickets); /*!< use session tickets? */ #endif + +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && \ + defined(MBEDTLS_SSL_SRV_C) && \ + defined(MBEDTLS_SSL_PROTO_TLS1_3) + uint16_t MBEDTLS_PRIVATE(new_session_tickets); /*!< number of NewSessionTicket */ +#endif + #if defined(MBEDTLS_SSL_SRV_C) uint8_t MBEDTLS_PRIVATE(cert_req_ca_list); /*!< enable sending CA list in Certificate Request messages? */ @@ -4109,7 +4117,8 @@ int mbedtls_ssl_conf_max_frag_len( mbedtls_ssl_config *conf, unsigned char mfl_c void mbedtls_ssl_conf_preference_order( mbedtls_ssl_config *conf, int order ); #endif /* MBEDTLS_SSL_SRV_C */ -#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && \ + defined(MBEDTLS_SSL_CLI_C) /** * \brief Enable / Disable session tickets (client only). * (Default: MBEDTLS_SSL_SESSION_TICKETS_ENABLED.) @@ -4121,7 +4130,26 @@ void mbedtls_ssl_conf_preference_order( mbedtls_ssl_config *conf, int order ); * MBEDTLS_SSL_SESSION_TICKETS_DISABLED) */ void mbedtls_ssl_conf_session_tickets( mbedtls_ssl_config *conf, int use_tickets ); -#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ +#endif /* MBEDTLS_SSL_SESSION_TICKETS && + MBEDTLS_SSL_CLI_C */ + +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && \ + defined(MBEDTLS_SSL_SRV_C) && \ + defined(MBEDTLS_SSL_PROTO_TLS1_3) +/** + * \brief Number of NewSessionTicket message that sent by server. + * (Default: MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS) + * + * + * \param conf SSL configuration + * \param num_tickets Number of NewSessionTicket. + * + */ +void mbedtls_ssl_conf_new_session_tickets( mbedtls_ssl_config *conf, + uint16_t num_tickets ); +#endif /* MBEDTLS_SSL_SESSION_TICKETS && + MBEDTLS_SSL_SRV_C && + MBEDTLS_SSL_PROTO_TLS1_3*/ #if defined(MBEDTLS_SSL_RENEGOTIATION) /** diff --git a/library/ssl_tls.c b/library/ssl_tls.c index af65e6d866..065b354d09 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -2611,6 +2611,15 @@ void mbedtls_ssl_conf_session_tickets( mbedtls_ssl_config *conf, int use_tickets #endif #if defined(MBEDTLS_SSL_SRV_C) + +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) +void mbedtls_ssl_conf_new_session_tickets( mbedtls_ssl_config *conf, + uint16_t num_tickets ) +{ + conf->new_session_tickets = num_tickets; +} +#endif + void mbedtls_ssl_conf_session_tickets_cb( mbedtls_ssl_config *conf, mbedtls_ssl_ticket_write_t *f_ticket_write, mbedtls_ssl_ticket_parse_t *f_ticket_parse, @@ -4644,6 +4653,10 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_3) +#if defined(MBEDTLS_SSL_SRV_C) + mbedtls_ssl_conf_new_session_tickets( + conf, MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS ); +#endif /* * Allow all TLS 1.3 key exchange modes by default. */ From d4e7500a07ef25f1d2188322566125d9699b734c Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 9 Aug 2022 13:33:50 +0800 Subject: [PATCH 0340/1028] Enable multi session tickets on Server Signed-off-by: Jerry Yu --- library/ssl_misc.h | 3 +++ library/ssl_tls13_server.c | 19 +++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 0b3ba90f74..2621d20055 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -624,6 +624,9 @@ struct mbedtls_ssl_handshake_params #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) uint8_t tls13_kex_modes; /*!< Key exchange modes supported by the client */ #endif +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + int tls13_session_tickets; /*!< number of session tickets */ +#endif #endif /* MBEDTLS_SSL_SRV_C */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index e185dc118c..780740897f 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2617,7 +2617,8 @@ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_write_new_session_ticket_coordinate( mbedtls_ssl_context *ssl ) { /* Check whether the use of session tickets is enabled */ - if( ssl->conf->f_ticket_write == NULL ) + if( ssl->conf->f_ticket_write == NULL || + ssl->handshake->tls13_session_tickets == 0 ) { MBEDTLS_SSL_DEBUG_MSG( 2, ( "new session ticket is not enabled" ) ); return( SSL_NEW_SESSION_TICKET_SKIP ); @@ -2640,6 +2641,10 @@ static int ssl_tls13_prepare_new_session_ticket( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> prepare NewSessionTicket msg" ) ); + if( ssl->handshake->resume == 1 ) + ssl->handshake->tls13_session_tickets = 0; + else + ssl->handshake->tls13_session_tickets--; #if defined(MBEDTLS_HAVE_TIME) session->start = mbedtls_time( NULL ); #endif @@ -2885,6 +2890,12 @@ int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ) /* start state */ case MBEDTLS_SSL_HELLO_REQUEST: mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_HELLO ); +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) + ssl->handshake->tls13_session_tickets = + ssl->conf->new_session_tickets ? + ssl->conf->new_session_tickets : + MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS; +#endif ret = 0; break; @@ -3002,7 +3013,11 @@ int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ) * as part of ssl_prepare_handshake_step. */ ret = 0; - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_HANDSHAKE_OVER ); + + if( ssl->handshake->tls13_session_tickets == 0 ) + mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_HANDSHAKE_OVER ); + else + mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_NEW_SESSION_TICKET ); break; #endif /* MBEDTLS_SSL_SESSION_TICKETS */ From 7a5130547893d7bf0d57af2dba1b5a74b4c2aaeb Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 9 Aug 2022 13:34:21 +0800 Subject: [PATCH 0341/1028] Add multi-session tickets test Signed-off-by: Jerry Yu --- programs/ssl/ssl_client2.c | 9 ++++++--- programs/ssl/ssl_server2.c | 8 +++++--- tests/ssl-opt.sh | 26 ++++++++++++++++++++++---- 3 files changed, 33 insertions(+), 10 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 050d51872b..3550c67bbf 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -1139,7 +1139,7 @@ int main( int argc, char *argv[] ) else if( strcmp( p, "tickets" ) == 0 ) { opt.tickets = atoi( q ); - if( opt.tickets < 0 || opt.tickets > 2 ) + if( opt.tickets < 0 ) goto usage; } else if( strcmp( p, "alpn" ) == 0 ) @@ -2668,6 +2668,9 @@ send_request: */ if( opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ) { +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) + int ticket_id = 0; +#endif do { len = sizeof( buf ) - 1; @@ -2715,7 +2718,8 @@ send_request: case MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET: /* We were waiting for application data but got * a NewSessionTicket instead. */ - mbedtls_printf( " got new session ticket.\n" ); + mbedtls_printf( " got new session ticket ( %d ).\n", + ticket_id++ ); if( opt.reconnect != 0 ) { mbedtls_printf(" . Saving session for reuse..." ); @@ -2749,7 +2753,6 @@ send_request: (unsigned) session_data_len ); } } - continue; #endif /* MBEDTLS_SSL_SESSION_TICKETS */ diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index a1b29786d5..ff63fdd05c 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -1997,7 +1997,7 @@ int main( int argc, char *argv[] ) else if( strcmp( p, "tickets" ) == 0 ) { opt.tickets = atoi( q ); - if( opt.tickets < 0 || opt.tickets > 1 ) + if( opt.tickets < 0 ) goto usage; } else if( strcmp( p, "ticket_rotate" ) == 0 ) @@ -2915,7 +2915,7 @@ int main( int argc, char *argv[] ) #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) - if( opt.tickets == MBEDTLS_SSL_SESSION_TICKETS_ENABLED ) + if( opt.tickets != MBEDTLS_SSL_SESSION_TICKETS_DISABLED ) { if( ( ret = mbedtls_ssl_ticket_setup( &ticket_ctx, rng_get, &rng, @@ -2930,7 +2930,9 @@ int main( int argc, char *argv[] ) mbedtls_ssl_ticket_write, mbedtls_ssl_ticket_parse, &ticket_ctx ); - +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + mbedtls_ssl_conf_new_session_tickets( &conf, opt.tickets ); +#endif /* exercise manual ticket rotation (not required for typical use) * (used for external synchronization of session ticket encryption keys) */ diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 84bcd3c095..f51d945519 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12781,14 +12781,32 @@ run_test "TLS 1.3: NewSessionTicket: Basic check, m->G" \ -c "HTTP/1.0 200 OK" \ -s "This is a resumed session" +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +# https://github.com/openssl/openssl/issues/10714 +# Until now, OpenSSL client does not support reconnect. +skip_next_test +run_test "TLS 1.3: NewSessionTicket: Basic check, O->m" \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4" \ + "$O_NEXT_CLI -msg -debug -tls1_3 -reconnect" \ + 0 \ + -s "=> write NewSessionTicket msg" \ + -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ + -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" + requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3: NewSessionTicket: Basic check, G->m" \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=1" \ - "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:%DISABLE_TLS13_COMPAT_MODE -V -r" \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4" \ + "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r" \ 0 \ -c "Connecting again- trying to resume previous session" \ -c "NEW SESSION TICKET (4) was received" \ @@ -12805,11 +12823,11 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C run_test "TLS 1.3: NewSessionTicket: Basic check, m->m" \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=1" \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ 0 \ -c "Protocol is TLSv1.3" \ - -c "got new session ticket." \ + -c "got new session ticket ( 3 )" \ -c "Saving session for reuse... ok" \ -c "Reconnecting with saved session" \ -c "HTTP/1.0 200 OK" \ From 79e146779910633de738d5367cc0cc74fe519f5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 19 Sep 2022 09:27:53 +0200 Subject: [PATCH 0342/1028] Fix include path for programs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Same problem as #6101, same fix (the second commit of #6111). Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/all.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 0752f7b413..291d6c66f8 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1715,7 +1715,7 @@ component_test_psa_crypto_config_accel_ecdsa () { scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" - make CFLAGS="$ASAN_CFLAGS -O -Werror -I../tests/include -I../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" + make CFLAGS="$ASAN_CFLAGS -O -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" not grep mbedtls_ecdsa_ library/ecdsa.o @@ -1797,7 +1797,7 @@ component_test_psa_crypto_config_accel_rsa_signature () { scripts/config.py unset MBEDTLS_SSL_CBC_RECORD_SPLITTING loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" - make CFLAGS="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" + make CFLAGS="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" not grep mbedtls_rsa_rsassa_pkcs1_v15_sign library/rsa.o not grep mbedtls_rsa_rsassa_pss_sign_ext library/rsa.o @@ -1827,7 +1827,7 @@ component_test_psa_crypto_config_accel_hash () { scripts/config.py unset MBEDTLS_SHA384_C scripts/config.py unset MBEDTLS_SHA512_C loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" - make CFLAGS="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" + make CFLAGS="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" not grep mbedtls_sha512_init library/sha512.o not grep mbedtls_sha1_init library/sha1.o @@ -1925,7 +1925,7 @@ component_test_psa_crypto_config_accel_cipher () { scripts/config.py unset MBEDTLS_DES_C loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" - make CFLAGS="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" + make CFLAGS="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" not grep mbedtls_des* library/des.o From ac6f650a9f5a2ecfbc8442ff37a3183a0ae87162 Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Mon, 19 Sep 2022 10:03:05 +0200 Subject: [PATCH 0343/1028] fixed formating Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index b808ac9c63..babba5d15b 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -120,7 +120,9 @@ def load_driver(schemas: Dict[str, Any], driver_file: str) -> Any: def load_schemas(mbedtls_root: str) -> Dict[str, Any]: - """Load schemas map""" + """ + Load schemas map + """ schema_file_paths = { 'transparent': os.path.join(mbedtls_root, 'scripts', From 73f9233a7347e159c5c014f0a7c55546eb9c9a2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 19 Sep 2022 10:38:46 +0200 Subject: [PATCH 0344/1028] Use full config for testing driver-only hashes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Stating from the default config means a few things are implicitly excluded; starting from the full config makes it all fully explicit. Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/all.sh | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 291d6c66f8..961577ca5c 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1848,21 +1848,28 @@ component_test_psa_crypto_config_accel_hash_use_psa () { loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g' ) make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS" + # start with config full for maximum coverage (also enables USE_PSA) + scripts/config.py full + # enable support for drivers and configuring PSA-only algorithms scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG - scripts/config.py set MBEDTLS_USE_PSA_CRYPTO + # disable the built-in implementation of hashes scripts/config.py unset MBEDTLS_MD5_C scripts/config.py unset MBEDTLS_RIPEMD160_C scripts/config.py unset MBEDTLS_SHA1_C scripts/config.py unset MBEDTLS_SHA224_C scripts/config.py unset MBEDTLS_SHA256_C # see external RNG below + scripts/config.py unset MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT scripts/config.py unset MBEDTLS_SHA384_C scripts/config.py unset MBEDTLS_SHA512_C + scripts/config.py unset MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT # Use an external RNG as currently internal RNGs depend on entropy.c # which in turn hard-depends on SHA256_C (or SHA512_C). # See component_test_psa_external_rng_no_drbg_use_psa. scripts/config.py set MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG scripts/config.py unset MBEDTLS_ENTROPY_C + scripts/config.py unset MBEDTLS_ENTROPY_NV_SEED # depends on ENTROPY_C + scripts/config.py unset MBEDTLS_PLATFORM_NV_SEED_ALT # depends on former # Also unset MD_C and things that depend on it; # see component_test_crypto_full_no_md. scripts/config.py unset MBEDTLS_MD_C @@ -1870,10 +1877,6 @@ component_test_psa_crypto_config_accel_hash_use_psa () { scripts/config.py unset MBEDTLS_HMAC_DRBG_C scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_DETERMINISTIC_ECDSA - # Enable TLS 1.3: use PSA implementation for hashes - scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3 - scripts/config.py set MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE - scripts/config.py set MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY 1 loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" make CFLAGS="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" all From 3c16abebd40b001bd8a5bc5666b6efe08781dd3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 19 Sep 2022 10:44:42 +0200 Subject: [PATCH 0345/1028] Fix dependencies of KEY_EXCHANGE_ECJPAKE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The EC J-PAKE module the ability to "fall back" to PSA when MD is not present a few PRs ago, but the dependency of this key exchange on SHA-256 wasn't updated at the time. (Note: the crypto primitive doesn't depend on SHA-256, only its use in the TLS key exchange does.) Signed-off-by: Manuel Pégourié-Gonnard --- include/mbedtls/check_config.h | 11 ++++++++++- include/mbedtls/mbedtls_config.h | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index fa70058de6..2ea0b47b35 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -320,11 +320,20 @@ #endif #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ - ( !defined(MBEDTLS_ECJPAKE_C) || !defined(MBEDTLS_SHA256_C) || \ + ( !defined(MBEDTLS_ECJPAKE_C) || \ !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) ) #error "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED defined, but not all prerequisites" #endif +/* Use of EC J-PAKE in TLS requires SHA-256. + * This will be taken from MD is present, or from PSA if MD is absent. + * Note: ECJPAKE_C depends on MD_C || PSA_CRYPTO_C. */ +#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ + !( defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA256_C) ) && \ + !( !defined(MBEDTLS_MD_C) && defined(PSA_WANT_ALG_SHA_256) ) +#error "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED defined, but not all prerequisites" +#endif + #if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) && \ !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) && \ ( !defined(MBEDTLS_SHA256_C) && \ diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index ff7b30e118..473b74c037 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -958,7 +958,7 @@ * might still happen. For this reason, this is disabled by default. * * Requires: MBEDTLS_ECJPAKE_C - * MBEDTLS_SHA256_C + * SHA-256 (via MD is present, or via PSA, see MBEDTLS_ECJPAKE_C) * MBEDTLS_ECP_DP_SECP256R1_ENABLED * * This enables the following ciphersuites (if other requisites are From 1367f40d383654c5da08b1cdb895a430013bd23c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 19 Sep 2022 11:00:23 +0200 Subject: [PATCH 0346/1028] Fix memory corruption in an SSL test function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- tests/suites/test_suite_ssl.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 0d5cea1b71..f24d1a4933 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -5439,7 +5439,7 @@ void ssl_cf_hmac( int hash ) size_t min_in_len, in_len, max_in_len, i; /* TLS additional data is 13 bytes (hence the "lucky 13" name) */ unsigned char add_data[13]; - unsigned char ref_out[MBEDTLS_MD_MAX_SIZE]; + unsigned char ref_out[MBEDTLS_HASH_MAX_SIZE]; unsigned char *data = NULL; unsigned char *out = NULL; unsigned char rec_num = 0; From b4e28aa2f78f3a0d3812bc756330f88c64696d68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 19 Sep 2022 11:55:00 +0200 Subject: [PATCH 0347/1028] Fix two typos MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- include/mbedtls/check_config.h | 2 +- include/mbedtls/mbedtls_config.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 2ea0b47b35..10387061ab 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -326,7 +326,7 @@ #endif /* Use of EC J-PAKE in TLS requires SHA-256. - * This will be taken from MD is present, or from PSA if MD is absent. + * This will be taken from MD if it is present, or from PSA if MD is absent. * Note: ECJPAKE_C depends on MD_C || PSA_CRYPTO_C. */ #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ !( defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA256_C) ) && \ diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 473b74c037..f6ecdbf5b8 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -958,7 +958,7 @@ * might still happen. For this reason, this is disabled by default. * * Requires: MBEDTLS_ECJPAKE_C - * SHA-256 (via MD is present, or via PSA, see MBEDTLS_ECJPAKE_C) + * SHA-256 (via MD if present, or via PSA, see MBEDTLS_ECJPAKE_C) * MBEDTLS_ECP_DP_SECP256R1_ENABLED * * This enables the following ciphersuites (if other requisites are From f2b3818a69eafdc0575511bcb1687a9535ad9bae Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 20 Sep 2022 09:08:31 +0100 Subject: [PATCH 0348/1028] Test when all three inputs to mbedtls_mpi_core_sub() are aliased Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.function | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 0cf961b85e..60000d3223 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1911,6 +1911,14 @@ void mpi_core_sub( char * input_A, char * input_B, /* 3b) r = a - b => we should get the correct result */ ASSERT_COMPARE( r, bytes, x, bytes ); + /* 4 tests "r may be aliased to [...] both" */ + if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) + { + memcpy( r, b, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, r, r, limbs ) ); + ASSERT_COMPARE( r, bytes, x, bytes ); + } + exit: mbedtls_free( a ); mbedtls_free( b ); From 57807308d59795307f6b31e357397e8a9c8ece9c Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 20 Sep 2022 09:16:11 +0100 Subject: [PATCH 0349/1028] Fix typo in MBEDTLS_ECP_DP_BP512R1 Signed-off-by: Werner Lewis --- tests/suites/test_suite_ecp.data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_ecp.data b/tests/suites/test_suite_ecp.data index 10137ba162..b6f95f4a70 100644 --- a/tests/suites/test_suite_ecp.data +++ b/tests/suites/test_suite_ecp.data @@ -350,7 +350,7 @@ depends_on:MBEDTLS_ECP_DP_BP384R1_ENABLED mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_BP384R1:384:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53":"7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826":"4a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11":"1d1c64f068cf45ffa2a63a81b7c13f6b8847a3e77ef14fe3db7fcafe0cbd10e8e826e03436d646aaef87b2e247d4af1e":"8abe1d7520f9c2a45cb1eb8e95cfd55262b70b29feec5864e19c054ff99129280e4646217791811142820341263c5315":"8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565":27 Check ECP group metadata #11 bp512r1 (RFC 5639) -depends_on:MBEDTLS_ECP_DP_BP521R1_ENABLED +depends_on:MBEDTLS_ECP_DP_BP512R1_ENABLED mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_BP512R1:512:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3":"7830a3318b603b89e2327145ac234cc594cbdd8d3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94ca":"3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94cadc083e67984050b75ebae5dd2809bd638016f723":"81aee4bdd82ed9645a21322e9c4c6a9385ed9f70b5d916c1b43b62eef4d0098eff3b1f78e2d0d48d50d1687b93b97d5f7c6d5047406a5e688b352209bcb9f822":"7dde385d566332ecc0eabfa9cf7822fdf209f70024a57b1aa000c55b881f8111b2dcde494a5f485e5bca4bd88a2763aed1ca2b2fa8f0540678cd1e0f3ad80892":"aadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069":28 Check ECP group metadata #12 curve25519 (RFC 7748) From 7403d93f8ac37542a7fe7f7e4520357c480b6b00 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 20 Sep 2022 09:16:50 +0100 Subject: [PATCH 0350/1028] Add leading zeros to group metadata Signed-off-by: Werner Lewis --- tests/suites/test_suite_ecp.data | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_ecp.data b/tests/suites/test_suite_ecp.data index b6f95f4a70..4c0ed1ced1 100644 --- a/tests/suites/test_suite_ecp.data +++ b/tests/suites/test_suite_ecp.data @@ -311,15 +311,15 @@ ecp_tls_write_read_point:MBEDTLS_ECP_DP_SECP521R1 Check ECP group metadata #1 secp192k1 (SEC 2) depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED -mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP192K1:192:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"fffffffffffffffffffffffffffffffffffffffeffffee37":"0":"3":"db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d":"9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d":"fffffffffffffffffffffffe26f2fc170f69466a74defd8d":18 +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP192K1:192:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"fffffffffffffffffffffffffffffffffffffffeffffee37":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":"db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d":"9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d":"fffffffffffffffffffffffe26f2fc170f69466a74defd8d":18 Check ECP group metadata #2 secp192r1 (SEC 2) depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED -mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP192R1:192:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"fffffffffffffffffffffffffffffffeffffffffffffffff":"":"64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1":"188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012":"7192b95ffc8da78631011ed6b24cdd573f977a11e794811":"ffffffffffffffffffffffff99def836146bc9b1b4d22831":19 +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP192R1:192:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"fffffffffffffffffffffffffffffffeffffffffffffffff":"":"64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1":"188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012":"07192b95ffc8da78631011ed6b24cdd573f977a11e794811":"ffffffffffffffffffffffff99def836146bc9b1b4d22831":19 Check ECP group metadata #3 secp224k1 (SEC 2) depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED -mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP224K1:224:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"0":"5":"a1455b334df099df30fc28a169a467e9e47075a90f7e650eb6b7a45c":"7e089fed7fba344282cafbd6f7e319f7c0b0bd59e2ca4bdb556d61a5":"10000000000000000000000000001dce8d2ec6184caf0a971769fb1f7":20 +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP224K1:224:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"fffffffffffffffffffffffffffffffffffffffffffffffeffffe56d":"00000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000000000000000000000000005":"a1455b334df099df30fc28a169a467e9e47075a90f7e650eb6b7a45c":"7e089fed7fba344282cafbd6f7e319f7c0b0bd59e2ca4bdb556d61a5":"010000000000000000000000000001dce8d2ec6184caf0a971769fb1f7":20 Check ECP group metadata #4 secp224r1 (SEC 2) depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED @@ -327,7 +327,7 @@ mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP224R1:224:MBEDTLS_ECP_TYPE_SHORT_W Check ECP group metadata #5 secp256k1 (SEC 2) depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP256K1:256:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"0":"7":"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798":"483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8":"fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141":22 +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP256K1:256:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f":"0000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000007":"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798":"483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8":"fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141":22 Check ECP group metadata #6 secp256r1 (SEC 2) depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED @@ -339,7 +339,7 @@ mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP384R1:384:MBEDTLS_ECP_TYPE_SHORT_W Check ECP group metadata #8 secp521r1 (SEC 2) depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED -mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP521R1:521:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"":"51953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00":"c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66":"11839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650":"1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409":25 +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_SECP521R1:521:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"":"0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00":"00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66":"011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650":"01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409":25 Check ECP group metadata #9 bp256r1 (RFC 5639) depends_on:MBEDTLS_ECP_DP_BP256R1_ENABLED @@ -347,7 +347,7 @@ mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_BP256R1:256:MBEDTLS_ECP_TYPE_SHORT_WEI Check ECP group metadata #10 bp384r1 (RFC 5639) depends_on:MBEDTLS_ECP_DP_BP384R1_ENABLED -mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_BP384R1:384:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53":"7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826":"4a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11":"1d1c64f068cf45ffa2a63a81b7c13f6b8847a3e77ef14fe3db7fcafe0cbd10e8e826e03436d646aaef87b2e247d4af1e":"8abe1d7520f9c2a45cb1eb8e95cfd55262b70b29feec5864e19c054ff99129280e4646217791811142820341263c5315":"8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565":27 +mbedtls_ecp_group_metadata:MBEDTLS_ECP_DP_BP384R1:384:MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS:"8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53":"7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826":"04a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11":"1d1c64f068cf45ffa2a63a81b7c13f6b8847a3e77ef14fe3db7fcafe0cbd10e8e826e03436d646aaef87b2e247d4af1e":"8abe1d7520f9c2a45cb1eb8e95cfd55262b70b29feec5864e19c054ff99129280e4646217791811142820341263c5315":"8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565":27 Check ECP group metadata #11 bp512r1 (RFC 5639) depends_on:MBEDTLS_ECP_DP_BP512R1_ENABLED From ccae25b4bf776e6696b58ebec54d504007fdbde6 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 20 Sep 2022 10:00:07 +0100 Subject: [PATCH 0351/1028] Add explicit mbedtls_ecp_tls_read_group_id call Signed-off-by: Werner Lewis --- tests/suites/test_suite_ecp.function | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function index 586c26c001..3ad7e71941 100644 --- a/tests/suites/test_suite_ecp.function +++ b/tests/suites/test_suite_ecp.function @@ -798,6 +798,7 @@ void mbedtls_ecp_group_metadata( int id, int bit_size, int crv_type, { mbedtls_ecp_group grp, grp_read, grp_cpy; const mbedtls_ecp_group_id *g_id; + mbedtls_ecp_group_id read_g_id; const mbedtls_ecp_curve_info *crv, *crv_tls_id, *crv_name; mbedtls_mpi exp_P, exp_A, exp_B, exp_G_x, exp_G_y, exp_N; @@ -860,13 +861,18 @@ void mbedtls_ecp_group_metadata( int id, int bit_size, int crv_type, TEST_EQUAL( crv_tls_id->grp_id, id ); TEST_EQUAL( crv_name->grp_id, id ); - // Validate write_group against test data, read result + // Validate write_group against test data TEST_EQUAL( mbedtls_ecp_tls_write_group( &grp, &olen, buf, sizeof( buf ) ), 0 ); TEST_EQUAL( mbedtls_test_hexcmp( buf, ecparameters, olen, sizeof( ecparameters ) ), 0 ); + + // Read group from buffer and compare with expected ID + TEST_EQUAL( mbedtls_ecp_tls_read_group_id( &read_g_id, &vbuf, olen ), + 0 ); + TEST_EQUAL( read_g_id, id ); TEST_EQUAL( mbedtls_ecp_tls_read_group( &grp_read, &vbuf, olen ), 0 ); TEST_EQUAL( grp_read.id, id ); From 05feee1841b5ae1166d0d69da22a75810dfdac36 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 20 Sep 2022 12:05:00 +0100 Subject: [PATCH 0352/1028] Restore vbuf value after modification Signed-off-by: Werner Lewis --- tests/suites/test_suite_ecp.function | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function index 3ad7e71941..42d69b43a2 100644 --- a/tests/suites/test_suite_ecp.function +++ b/tests/suites/test_suite_ecp.function @@ -873,6 +873,7 @@ void mbedtls_ecp_group_metadata( int id, int bit_size, int crv_type, TEST_EQUAL( mbedtls_ecp_tls_read_group_id( &read_g_id, &vbuf, olen ), 0 ); TEST_EQUAL( read_g_id, id ); + vbuf = buf; TEST_EQUAL( mbedtls_ecp_tls_read_group( &grp_read, &vbuf, olen ), 0 ); TEST_EQUAL( grp_read.id, id ); From ea45c1d2d4fb5d6c993560964d77f8ec208b144f Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 20 Sep 2022 13:17:51 +0100 Subject: [PATCH 0353/1028] Document and test aliasing of output for mbedtls_mpi_core_montmul() Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 8 ++++++++ tests/suites/test_suite_mpi.function | 27 +++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/library/bignum_core.h b/library/bignum_core.h index adfb81aa2b..3a2d5a17aa 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -245,6 +245,14 @@ mbedtls_mpi_uint mbedtls_mpi_core_montmul_init( const mbedtls_mpi_uint *N ); /** * \brief Montgomery multiplication: X = A * B * R^-1 mod N (HAC 14.36) * + * \p X may be aliased to \p A or \p N, or even \p B (if \p AN_limbs == + * \p B_limbs) but may not overlap any parameters otherwise. + * + * \p A, \p B and \p N must not alias or overlap each other in any way, even + * if \p AN_limbs == \p B_limbs. + * + * \p A and \p B must be in canonical form: that is, <= \p N. + * * \param[out] X The destination MPI, as a little-endian array of * length \p AN_limbs. * On successful completion, X contains the result of diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 60000d3223..bd98a2c0ea 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -2114,6 +2114,33 @@ void mpi_core_montmul( int limbs_AN4, int limbs_B4, size_t bytes = N.n * sizeof(mbedtls_mpi_uint); ASSERT_COMPARE( R.p, bytes, X->p, bytes ); + /* The output (R, above) may be aliased to A - use R to save the value of A */ + + memcpy( R.p, A.p, bytes ); + + mbedtls_mpi_core_montmul( A.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); + ASSERT_COMPARE( A.p, bytes, X->p, bytes ); + + memcpy( A.p, R.p, bytes ); /* restore A */ + + /* The output may be aliased to N - use R to save the value of N */ + + memcpy( R.p, N.p, bytes ); + + mbedtls_mpi_core_montmul( N.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); + ASSERT_COMPARE( N.p, bytes, X->p, bytes ); + + memcpy( N.p, R.p, bytes ); + + /* The output may even be aliased to B, if AN_limbs == B_limbs */ + + if (limbs_AN == limbs_B) + { + /* Note: last test, so we don't save B */ + mbedtls_mpi_core_montmul( B.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); + ASSERT_COMPARE( B.p, bytes, X->p, bytes ); + } + exit: mbedtls_mpi_free( &A ); mbedtls_mpi_free( &B ); From 67ea2543edd3b6eeb6e400a46b6c27dcef7f83fa Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Thu, 15 Sep 2022 17:34:42 +0200 Subject: [PATCH 0354/1028] tls13: server: Add sig alg checks when selecting best certificate When selecting the server certificate based on the signature algorithms supported by the client, check the signature algorithms as close as possible to the way they are checked to compute the signature for the server to prove it possesses the private key associated to the certificate. That way we minimize the odds of selecting a certificate for which the server will not be able to compute the signature to prove it possesses the private key associated to the certificate. Signed-off-by: Ronald Cron --- library/ssl_tls13_server.c | 50 +++++++++++++++++++++++++++++++++++++- tests/ssl-opt.sh | 9 +++---- 2 files changed, 52 insertions(+), 7 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index a10e59bbc1..a854080847 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -898,6 +898,34 @@ static int ssl_tls13_determine_key_exchange_mode( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_X509_CRT_PARSE_C) && \ defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) + +#if defined(MBEDTLS_USE_PSA_CRYPTO) +static psa_algorithm_t ssl_tls13_iana_sig_alg_to_psa_alg( uint16_t sig_alg ) +{ + switch( sig_alg ) + { + case MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256: + return( PSA_ALG_ECDSA( PSA_ALG_SHA_256 ) ); + case MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384: + return( PSA_ALG_ECDSA( PSA_ALG_SHA_384 ) ); + case MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512: + return( PSA_ALG_ECDSA( PSA_ALG_SHA_512 ) ); + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: + return( PSA_ALG_RSA_PSS( PSA_ALG_SHA_256 ) ); + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384: + return( PSA_ALG_RSA_PSS( PSA_ALG_SHA_384 ) ); + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512: + return( PSA_ALG_RSA_PSS( PSA_ALG_SHA_512 ) ); + case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256: + case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384: + case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512: + return( PSA_ALG_RSA_PKCS1V15_CRYPT ); + default: + return( PSA_ALG_NONE ); + } +} +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + /* * Pick best ( private key, certificate chain ) pair based on the signature * algorithms supported by the client. @@ -923,9 +951,19 @@ static int ssl_tls13_pick_key_cert( mbedtls_ssl_context *ssl ) for( ; *sig_alg != MBEDTLS_TLS1_3_SIG_NONE; sig_alg++ ) { + if( !mbedtls_ssl_sig_alg_is_offered( ssl, *sig_alg ) ) + continue; + + if( !mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported( *sig_alg ) ) + continue; + for( key_cert = key_cert_list; key_cert != NULL; key_cert = key_cert->next ) { +#if defined(MBEDTLS_USE_PSA_CRYPTO) + psa_algorithm_t psa_alg = PSA_ALG_NONE; +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + MBEDTLS_SSL_DEBUG_CRT( 3, "certificate (chain) candidate", key_cert->cert ); @@ -949,8 +987,18 @@ static int ssl_tls13_pick_key_cert( mbedtls_ssl_context *ssl ) "check signature algorithm %s [%04x]", mbedtls_ssl_sig_alg_to_str( *sig_alg ), *sig_alg ) ); +#if defined(MBEDTLS_USE_PSA_CRYPTO) + psa_alg = ssl_tls13_iana_sig_alg_to_psa_alg( *sig_alg ); +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + if( mbedtls_ssl_tls13_check_sig_alg_cert_key_match( - *sig_alg, &key_cert->cert->pk ) ) + *sig_alg, &key_cert->cert->pk ) +#if defined(MBEDTLS_USE_PSA_CRYPTO) + && psa_alg != PSA_ALG_NONE && + mbedtls_pk_can_do_ext( &key_cert->cert->pk, psa_alg, + PSA_KEY_USAGE_SIGN_HASH ) == 1 +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + ) { ssl->handshake->key_cert = key_cert; MBEDTLS_SSL_DEBUG_MSG( 3, diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 11fc3572c1..1ddd742310 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12671,8 +12671,7 @@ run_test "TLS 1.3: Check server no suitable signature algorithm, G->m" \ --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key \ --priority=NORMAL:-SIGN-ALL:+SIGN-RSA-SHA512:+SIGN-RSA-PSS-RSAE-SHA512:+SIGN-ECDSA-SECP521R1-SHA512" \ 1 \ - -s "ssl_tls13_pick_key_cert:selected signature algorithm rsa_pss_rsae_sha512" \ - -s "select_sig_alg_for_certificate_verify:no suitable signature algorithm found" + -S "ssl_tls13_pick_key_cert:check signature algorithm" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -12688,8 +12687,7 @@ run_test "TLS 1.3: Check server no suitable signature algorithm, O->m" \ -cert data_files/server2-sha256.crt -key data_files/server2.key \ -sigalgs rsa_pkcs1_sha512:rsa_pss_rsae_sha512:ecdsa_secp521r1_sha512" \ 1 \ - -s "ssl_tls13_pick_key_cert:selected signature algorithm rsa_pss_rsae_sha512" \ - -s "select_sig_alg_for_certificate_verify:no suitable signature algorithm found" + -S "ssl_tls13_pick_key_cert:check signature algorithm" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE @@ -12704,8 +12702,7 @@ run_test "TLS 1.3: Check server no suitable signature algorithm, m->m" \ "$P_CLI allow_sha1=0 debug_level=4 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key \ sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,ecdsa_secp521r1_sha512" \ 1 \ - -s "ssl_tls13_pick_key_cert:selected signature algorithm rsa_pss_rsae_sha512" \ - -s "select_sig_alg_for_certificate_verify:no suitable signature algorithm found" + -S "ssl_tls13_pick_key_cert:check signature algorithm" requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 From 38391bf9b6a28be7e0bf90d9775462f5856369f9 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Fri, 16 Sep 2022 11:19:27 +0200 Subject: [PATCH 0355/1028] tls13: Do not impose minimum hash size for RSA PSS signatures When providing proof of possession of an RSA private key, allow the usage for RSA PSS signatures of a hash with a security level lower that the security level of the RSA private key. We did not allow this in the first place to align with the ECDSA case. But as it is not mandated by the TLS 1.3 specification (in contrary to ECDSA), let's allow it. Signed-off-by: Ronald Cron --- library/ssl_tls13_generic.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 507c587db8..54884e9ff2 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -906,12 +906,8 @@ int mbedtls_ssl_tls13_check_sig_alg_cert_key_match( uint16_t sig_alg, case MBEDTLS_SSL_SIG_RSA: switch( sig_alg ) { - case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: - return( key_size <= 3072 ); - - case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384: - return( key_size <= 7680 ); - + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: /* Intentional fallthrough */ + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384: /* Intentional fallthrough */ case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512: return( 1 ); From 067a1e735e33c2c9502e3ae689f02f1e80d75885 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Fri, 16 Sep 2022 13:44:49 +0200 Subject: [PATCH 0356/1028] tls13: Try reasonable sig alg for CertificateVerify signature Instead of fully validating beforehand signature algorithms with regards to the private key, do minimum validation and then just try to compute the signature. If it fails try another reasonable algorithm if any. Signed-off-by: Ronald Cron --- library/ssl_tls13_generic.c | 191 ++++++++++++------------------------ tests/ssl-opt.sh | 28 +++--- 2 files changed, 79 insertions(+), 140 deletions(-) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 54884e9ff2..858fe0316a 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -923,83 +923,13 @@ int mbedtls_ssl_tls13_check_sig_alg_cert_key_match( uint16_t sig_alg, return( 0 ); } -#if defined(MBEDTLS_USE_PSA_CRYPTO) -static psa_algorithm_t ssl_tls13_select_sig_alg_to_psa_alg( uint16_t sig_alg ) -{ - switch( sig_alg ) - { - case MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256: - return( PSA_ALG_ECDSA( PSA_ALG_SHA_256 ) ); - case MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384: - return( PSA_ALG_ECDSA( PSA_ALG_SHA_384 ) ); - case MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512: - return( PSA_ALG_ECDSA( PSA_ALG_SHA_512 ) ); - case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: - return( PSA_ALG_RSA_PSS( PSA_ALG_SHA_256 ) ); - case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384: - return( PSA_ALG_RSA_PSS( PSA_ALG_SHA_384 ) ); - case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512: - return( PSA_ALG_RSA_PSS( PSA_ALG_SHA_512 ) ); - case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256: - case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384: - case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512: - return( PSA_ALG_RSA_PKCS1V15_CRYPT ); - default: - return( 0 ); - } -} -#endif /* MBEDTLS_USE_PSA_CRYPTO */ - -MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_select_sig_alg_for_certificate_verify( - mbedtls_ssl_context *ssl, - mbedtls_pk_context *own_key, - uint16_t *algorithm ) -{ - uint16_t *sig_alg = ssl->handshake->received_sig_algs; -#if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_algorithm_t psa_alg = 0; -#endif /* MBEDTLS_USE_PSA_CRYPTO */ - - *algorithm = MBEDTLS_TLS1_3_SIG_NONE; - for( ; *sig_alg != MBEDTLS_TLS1_3_SIG_NONE ; sig_alg++ ) - { -#if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_alg = ssl_tls13_select_sig_alg_to_psa_alg( *sig_alg ); -#endif /* MBEDTLS_USE_PSA_CRYPTO */ - - if( mbedtls_ssl_sig_alg_is_offered( ssl, *sig_alg ) && - mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported( *sig_alg ) && - mbedtls_ssl_tls13_check_sig_alg_cert_key_match( *sig_alg, own_key ) -#if defined(MBEDTLS_USE_PSA_CRYPTO) - && psa_alg != 0 && - mbedtls_pk_can_do_ext( own_key, psa_alg, - PSA_KEY_USAGE_SIGN_HASH ) == 1 -#endif /* MBEDTLS_USE_PSA_CRYPTO */ - ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "select_sig_alg_for_certificate_verify:" - "selected signature algorithm %s [%04x]", - mbedtls_ssl_sig_alg_to_str( *sig_alg ), - *sig_alg ) ); - *algorithm = *sig_alg; - return( 0 ); - } - } - MBEDTLS_SSL_DEBUG_MSG( 2, - ( "select_sig_alg_for_certificate_verify:" - "no suitable signature algorithm found" ) ); - return( -1 ); -} - MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_write_certificate_verify_body( mbedtls_ssl_context *ssl, unsigned char *buf, unsigned char *end, size_t *out_len ) { - int ret; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = buf; mbedtls_pk_context *own_key; @@ -1007,14 +937,9 @@ static int ssl_tls13_write_certificate_verify_body( mbedtls_ssl_context *ssl, size_t handshake_hash_len; unsigned char verify_buffer[ SSL_VERIFY_STRUCT_MAX_SIZE ]; size_t verify_buffer_len; - mbedtls_pk_type_t pk_type = MBEDTLS_PK_NONE; - mbedtls_md_type_t md_alg = MBEDTLS_MD_NONE; - psa_algorithm_t psa_algorithm = PSA_ALG_NONE; - uint16_t algorithm = MBEDTLS_TLS1_3_SIG_NONE; + + uint16_t *sig_alg = ssl->handshake->received_sig_algs; size_t signature_len = 0; - unsigned char verify_hash[PSA_HASH_MAX_SIZE]; - size_t verify_hash_len; - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; *out_len = 0; @@ -1047,64 +972,78 @@ static int ssl_tls13_write_certificate_verify_body( mbedtls_ssl_context *ssl, * opaque signature<0..2^16-1>; * } CertificateVerify; */ - ret = ssl_tls13_select_sig_alg_for_certificate_verify( ssl, own_key, - &algorithm ); - if( ret != 0 ) + /* Check there is space for the algorithm identifier (2 bytes) and the + * signature length (2 bytes). + */ + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 ); + + for( ; *sig_alg != MBEDTLS_TLS1_3_SIG_NONE ; sig_alg++ ) { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "signature algorithm not in received or offered list." ) ); + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + mbedtls_pk_type_t pk_type = MBEDTLS_PK_NONE; + mbedtls_md_type_t md_alg = MBEDTLS_MD_NONE; + psa_algorithm_t psa_algorithm = PSA_ALG_NONE; + unsigned char verify_hash[PSA_HASH_MAX_SIZE]; + size_t verify_hash_len; - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Signature algorithm is %s", - mbedtls_ssl_sig_alg_to_str( algorithm ) ) ); + if( !mbedtls_ssl_sig_alg_is_offered( ssl, *sig_alg ) ) + continue; + if( !mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported( *sig_alg ) ) + continue; + + if( !mbedtls_ssl_tls13_check_sig_alg_cert_key_match( *sig_alg, own_key ) ) + continue; + + if( mbedtls_ssl_get_pk_type_and_md_alg_from_sig_alg( + *sig_alg, &pk_type, &md_alg ) != 0 ) + { + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + } + + /* Hash verify buffer with indicated hash function */ + psa_algorithm = mbedtls_hash_info_psa_from_md( md_alg ); + status = psa_hash_compute( psa_algorithm, + verify_buffer, + verify_buffer_len, + verify_hash, sizeof( verify_hash ), + &verify_hash_len ); + if( status != PSA_SUCCESS ) + return( psa_ssl_status_to_mbedtls( status ) ); + + MBEDTLS_SSL_DEBUG_BUF( 3, "verify hash", verify_hash, verify_hash_len ); + + if( ( ret = mbedtls_pk_sign_ext( pk_type, own_key, + md_alg, verify_hash, verify_hash_len, + p + 4, (size_t)( end - ( p + 4 ) ), &signature_len, + ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( 2, ( "CertificateVerify signature failed with %s", + mbedtls_ssl_sig_alg_to_str( *sig_alg ) ) ); + MBEDTLS_SSL_DEBUG_RET( 2, "mbedtls_pk_sign_ext", ret ); + continue; + } + + MBEDTLS_SSL_DEBUG_MSG( 2, ( "CertificateVerify signature with %s", + mbedtls_ssl_sig_alg_to_str( *sig_alg ) ) ); + + break; + } + + if( *sig_alg == MBEDTLS_TLS1_3_SIG_NONE ) + { + MBEDTLS_SSL_DEBUG_MSG( 1, ( "no suitable signature algorithm" ) ); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "CertificateVerify with %s", - mbedtls_ssl_sig_alg_to_str( algorithm )) ); + MBEDTLS_PUT_UINT16_BE( *sig_alg, p, 0 ); + MBEDTLS_PUT_UINT16_BE( signature_len, p, 2 ); - if( mbedtls_ssl_get_pk_type_and_md_alg_from_sig_alg( - algorithm, &pk_type, &md_alg ) != 0 ) - { - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - } + *out_len = 4 + signature_len; - /* Check there is space for the algorithm identifier (2 bytes) and the - * signature length (2 bytes). - */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 ); - MBEDTLS_PUT_UINT16_BE( algorithm, p, 0 ); - p += 2; - - /* Hash verify buffer with indicated hash function */ - psa_algorithm = mbedtls_hash_info_psa_from_md( md_alg ); - status = psa_hash_compute( psa_algorithm, - verify_buffer, - verify_buffer_len, - verify_hash,sizeof( verify_hash ), - &verify_hash_len ); - if( status != PSA_SUCCESS ) - return( psa_ssl_status_to_mbedtls( status ) ); - - MBEDTLS_SSL_DEBUG_BUF( 3, "verify hash", verify_hash, verify_hash_len ); - - if( ( ret = mbedtls_pk_sign_ext( pk_type, own_key, - md_alg, verify_hash, verify_hash_len, - p + 2, (size_t)( end - ( p + 2 ) ), &signature_len, - ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_pk_sign", ret ); - return( ret ); - } - - MBEDTLS_PUT_UINT16_BE( signature_len, p, 0 ); - p += 2 + signature_len; - - *out_len = (size_t)( p - buf ); - - return( ret ); + return( 0 ); } int mbedtls_ssl_tls13_write_certificate_verify( mbedtls_ssl_context *ssl ) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 1ddd742310..f680f57e8a 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -2054,7 +2054,7 @@ run_test "TLS1.3 opaque key: no suitable algorithm found" \ -c "key type: Opaque" \ -s "key types: Opaque, Opaque" \ -c "error" \ - -s "select_sig_alg_for_certificate_verify:no suitable signature algorithm found" \ + -s "no suitable signature algorithm" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO @@ -11562,7 +11562,7 @@ run_test "TLS 1.3: Client authentication, client alg not in server list - ope -c "got a certificate request" \ -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ - -c "signature algorithm not in received or offered list." \ + -c "no suitable signature algorithm" \ -C "unknown pk type" requires_gnutls_tls1_3 @@ -11580,7 +11580,7 @@ run_test "TLS 1.3: Client authentication, client alg not in server list - gnu -c "got a certificate request" \ -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ - -c "signature algorithm not in received or offered list." \ + -c "no suitable signature algorithm" \ -C "unknown pk type" # Test using an opaque private key for client authentication @@ -11834,7 +11834,7 @@ run_test "TLS 1.3: Client authentication - opaque key, client alg not in serv -c "got a certificate request" \ -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ - -c "signature algorithm not in received or offered list." \ + -c "no suitable signature algorithm" \ -C "unkown pk type" requires_gnutls_tls1_3 @@ -11853,7 +11853,7 @@ run_test "TLS 1.3: Client authentication - opaque key, client alg not in serv -c "got a certificate request" \ -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE" \ -c "client state: MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY" \ - -c "signature algorithm not in received or offered list." \ + -c "no suitable signature algorithm" \ -C "unkown pk type" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -12582,7 +12582,7 @@ run_test "TLS 1.3: Check signature algorithm order, m->O" \ sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256" \ 0 \ -c "Protocol is TLSv1.3" \ - -c "select_sig_alg_for_certificate_verify:selected signature algorithm rsa_pss_rsae_sha512" \ + -c "CertificateVerify signature with rsa_pss_rsae_sha512" \ -c "HTTP/1.0 200 [Oo][Kk]" requires_gnutls_tls1_3 @@ -12598,7 +12598,7 @@ run_test "TLS 1.3: Check signature algorithm order, m->G" \ sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256" \ 0 \ -c "Protocol is TLSv1.3" \ - -c "select_sig_alg_for_certificate_verify:selected signature algorithm rsa_pss_rsae_sha512" \ + -c "CertificateVerify signature with rsa_pss_rsae_sha512" \ -c "HTTP/1.0 200 [Oo][Kk]" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -12615,8 +12615,8 @@ run_test "TLS 1.3: Check signature algorithm order, m->m" \ sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256" \ 0 \ -c "Protocol is TLSv1.3" \ - -c "select_sig_alg_for_certificate_verify:selected signature algorithm rsa_pss_rsae_sha512" \ - -s "select_sig_alg_for_certificate_verify:selected signature algorithm rsa_pss_rsae_sha512" \ + -c "CertificateVerify signature with rsa_pss_rsae_sha512" \ + -s "CertificateVerify signature with rsa_pss_rsae_sha512" \ -s "ssl_tls13_pick_key_cert:selected signature algorithm rsa_pss_rsae_sha512" \ -c "HTTP/1.0 200 [Oo][Kk]" @@ -12635,7 +12635,7 @@ run_test "TLS 1.3: Check signature algorithm order, O->m" \ -sigalgs rsa_pkcs1_sha512:rsa_pss_rsae_sha512:rsa_pss_rsae_sha384:ecdsa_secp256r1_sha256" \ 0 \ -c "TLSv1.3" \ - -s "select_sig_alg_for_certificate_verify:selected signature algorithm rsa_pss_rsae_sha512" \ + -s "CertificateVerify signature with rsa_pss_rsae_sha512" \ -s "ssl_tls13_pick_key_cert:selected signature algorithm rsa_pss_rsae_sha512" requires_gnutls_tls1_3 @@ -12654,7 +12654,7 @@ run_test "TLS 1.3: Check signature algorithm order, G->m" \ 0 \ -c "Negotiated version: 3.4" \ -c "HTTP/1.0 200 [Oo][Kk]" \ - -s "select_sig_alg_for_certificate_verify:selected signature algorithm rsa_pss_rsae_sha512" \ + -s "CertificateVerify signature with rsa_pss_rsae_sha512" \ -s "ssl_tls13_pick_key_cert:selected signature algorithm rsa_pss_rsae_sha512" requires_gnutls_tls1_3 @@ -12758,7 +12758,7 @@ run_test "TLS 1.3: Check client no signature algorithm, m->O" \ "$P_CLI debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key \ sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256" \ 1 \ - -c "select_sig_alg_for_certificate_verify:no suitable signature algorithm found" + -c "no suitable signature algorithm" requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -12772,7 +12772,7 @@ run_test "TLS 1.3: Check client no signature algorithm, m->G" \ "$P_CLI debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key \ sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256" \ 1 \ - -c "select_sig_alg_for_certificate_verify:no suitable signature algorithm found" + -c "no suitable signature algorithm" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE @@ -12787,7 +12787,7 @@ run_test "TLS 1.3: Check client no signature algorithm, m->m" \ "$P_CLI debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key \ sig_algs=rsa_pkcs1_sha512,rsa_pss_rsae_sha512,rsa_pss_rsae_sha384,ecdsa_secp256r1_sha256" \ 1 \ - -c "select_sig_alg_for_certificate_verify:no suitable signature algorithm found" + -c "no suitable signature algorithm" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 From 6ec2123bf3fa89225fac7e895ddec1a79bc33ed3 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Fri, 16 Sep 2022 16:41:53 +0200 Subject: [PATCH 0357/1028] ssl-opt.sh: Align prefix of TLS 1.3 opaque key tests Align prefix of TLS 1.3 opaque key tests with the prefix of the othe TLS 1.3 tests. Signed-off-by: Ronald Cron --- tests/ssl-opt.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index f680f57e8a..71f9f87ee8 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -2045,7 +2045,7 @@ run_test "Opaque keys for server authentication: EC + RSA, force ECDHE-ECDSA" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_RSA_C -run_test "TLS1.3 opaque key: no suitable algorithm found" \ +run_test "TLS 1.3 opaque key: no suitable algorithm found" \ "$P_SRV debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs=rsa-decrypt,none" \ "$P_CLI debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ 1 \ @@ -2059,7 +2059,7 @@ run_test "TLS1.3 opaque key: no suitable algorithm found" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_RSA_C -run_test "TLS1.3 opaque key: suitable algorithm found" \ +run_test "TLS 1.3 opaque key: suitable algorithm found" \ "$P_SRV debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ "$P_CLI debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ 0 \ @@ -2073,7 +2073,7 @@ run_test "TLS1.3 opaque key: suitable algorithm found" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_RSA_C -run_test "TLS1.3 opaque key: 2 keys on server, suitable algorithm found" \ +run_test "TLS 1.3 opaque key: 2 keys on server, suitable algorithm found" \ "$P_SRV debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs2=ecdsa-sign,none key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ "$P_CLI debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ 0 \ From e3196d270c079d2fc8d165083e7a297e5ea786d0 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Fri, 16 Sep 2022 16:43:35 +0200 Subject: [PATCH 0358/1028] ssl-opt.sh: tls13 opaque key: Do not force version on client side Signed-off-by: Ronald Cron --- tests/ssl-opt.sh | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 71f9f87ee8..26c27ce91e 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -2047,9 +2047,8 @@ requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_RSA_C run_test "TLS 1.3 opaque key: no suitable algorithm found" \ "$P_SRV debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs=rsa-decrypt,none" \ - "$P_CLI debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ + "$P_CLI debug_level=4 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ 1 \ - -c "The SSL configuration is tls13 only" \ -s "The SSL configuration is tls13 only" \ -c "key type: Opaque" \ -s "key types: Opaque, Opaque" \ @@ -2061,9 +2060,8 @@ requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_RSA_C run_test "TLS 1.3 opaque key: suitable algorithm found" \ "$P_SRV debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ - "$P_CLI debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ + "$P_CLI debug_level=4 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ 0 \ - -c "The SSL configuration is tls13 only" \ -s "The SSL configuration is tls13 only" \ -c "key type: Opaque" \ -s "key types: Opaque, Opaque" \ @@ -2075,9 +2073,8 @@ requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_RSA_C run_test "TLS 1.3 opaque key: 2 keys on server, suitable algorithm found" \ "$P_SRV debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs2=ecdsa-sign,none key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ - "$P_CLI debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ + "$P_CLI debug_level=4 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ 0 \ - -c "The SSL configuration is tls13 only" \ -s "The SSL configuration is tls13 only" \ -c "key type: Opaque" \ -s "key types: Opaque, Opaque" \ From 277cdcbcdef46d93b80c0263f29019459afa6f13 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Fri, 16 Sep 2022 16:57:20 +0200 Subject: [PATCH 0359/1028] ssl-opt.sh: tls13 opaque key: Enable client authentication Enable client authentication in TLS 1.3 opaque key tests to use the opaque key on client side. Signed-off-by: Ronald Cron --- tests/ssl-opt.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 26c27ce91e..6fde7b6816 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -2046,7 +2046,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_RSA_C run_test "TLS 1.3 opaque key: no suitable algorithm found" \ - "$P_SRV debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs=rsa-decrypt,none" \ + "$P_SRV debug_level=4 force_version=tls13 auth_mode=required key_opaque=1 key_opaque_algs=rsa-decrypt,none" \ "$P_CLI debug_level=4 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ 1 \ -s "The SSL configuration is tls13 only" \ @@ -2059,7 +2059,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_RSA_C run_test "TLS 1.3 opaque key: suitable algorithm found" \ - "$P_SRV debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ + "$P_SRV debug_level=4 force_version=tls13 auth_mode=required key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ "$P_CLI debug_level=4 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ 0 \ -s "The SSL configuration is tls13 only" \ @@ -2072,7 +2072,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_RSA_C run_test "TLS 1.3 opaque key: 2 keys on server, suitable algorithm found" \ - "$P_SRV debug_level=4 force_version=tls13 key_opaque=1 key_opaque_algs2=ecdsa-sign,none key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ + "$P_SRV debug_level=4 force_version=tls13 auth_mode=required key_opaque=1 key_opaque_algs2=ecdsa-sign,none key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ "$P_CLI debug_level=4 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ 0 \ -s "The SSL configuration is tls13 only" \ From b5d884815c9e95900fb2fc209150b7d6d43a8c27 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 20 Sep 2022 13:22:07 +0100 Subject: [PATCH 0360/1028] Use GitHub C syntax highlighting on test files Add a .gitattributes file that tells GitHub to highlight all .function files as if they were .c files. This aids in reviewing changes to tests. Signed-off-by: David Horstmann --- .gitattributes | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000..ceb59d7d03 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Classify all '.function' files as C for syntax highlighting purposes +*.function linguist-language=C From b0b77e1b13463967ef6cc8f207c18d98048ce3b1 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 20 Sep 2022 13:33:40 +0100 Subject: [PATCH 0361/1028] Document and test aliasing of the bignums given to mbedtls_mpi_core_mla() Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 3 +++ tests/suites/test_suite_mpi.function | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/library/bignum_core.h b/library/bignum_core.h index 3a2d5a17aa..2b3b8b6197 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -214,6 +214,9 @@ mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *X, /** * \brief Perform a fixed-size multiply accumulate operation: X += b * A * + * \p X may be aliased to \p A (when \p X_limbs == \p A_limbs), but may not + * otherwise overlap. + * * \param[in,out] X The pointer to the (little-endian) array * representing the bignum to accumulate onto. * \param X_limbs The number of limbs of \p X. This must be diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index bd98a2c0ea..a82c73e810 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -2008,6 +2008,14 @@ void mpi_core_mla( char * input_A, char * input_B, char * input_S, /* 1b) A += B * s => we should get the correct result */ ASSERT_COMPARE( a, bytes, x, bytes ); + if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) + { + /* Check when A and B are aliased */ + memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); + TEST_EQUAL( mbedtls_mpi_core_mla( a, limbs, a, limbs, *S.p ), *cy->p ); + ASSERT_COMPARE( a, bytes, x, bytes ); + } + exit: mbedtls_free( a ); mbedtls_free( x ); From 4782823ec3ae1af9a9437bebcf9da1710514e1e7 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 20 Sep 2022 13:51:50 +0100 Subject: [PATCH 0362/1028] Ensure we explicitly document the modulus for fixed-width arithmetic Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/library/bignum_core.h b/library/bignum_core.h index 2b3b8b6197..cbeab244c6 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -167,6 +167,8 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, * return carry; * ``` * + * This function operates modulo `2^(biL*limbs)`. + * * \param[in,out] X The pointer to the (little-endian) array * representing the bignum to accumulate onto. * \param[in] A The pointer to the (little-endian) array @@ -217,6 +219,8 @@ mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *X, * \p X may be aliased to \p A (when \p X_limbs == \p A_limbs), but may not * otherwise overlap. * + * This function operates modulo `2^(biL*X_limbs)`. + * * \param[in,out] X The pointer to the (little-endian) array * representing the bignum to accumulate onto. * \param X_limbs The number of limbs of \p X. This must be From 50969e3af51afdf4bae470b3cb9b5e174e0e2850 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Fri, 16 Sep 2022 15:54:33 +0200 Subject: [PATCH 0363/1028] ssl-opt.sh: TLS 1.3 opaque key: Add test with unsuitable sig alg Signed-off-by: Ronald Cron --- programs/ssl/ssl_client2.c | 9 +++++---- programs/ssl/ssl_server2.c | 20 +++++++++++--------- programs/ssl/ssl_test_lib.c | 21 +++++++++++++++++++++ tests/ssl-opt.sh | 14 ++++++++++++++ 4 files changed, 51 insertions(+), 13 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 3db2b5201c..d3141b33e4 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -346,10 +346,11 @@ int main( void ) #define USAGE_KEY_OPAQUE_ALGS \ " key_opaque_algs=%%s Allowed opaque key algorithms.\n" \ - " comma-separated pair of values among the following:\n" \ - " rsa-sign-pkcs1, rsa-sign-pss, rsa-decrypt,\n" \ - " ecdsa-sign, ecdh, none (only acceptable for\n" \ - " the second value).\n" \ + " comma-separated pair of values among the following:\n" \ + " rsa-sign-pkcs1, rsa-sign-pss, rsa-sign-pss-sha256,\n" \ + " rsa-sign-pss-sha384, rsa-sign-pss-sha512, rsa-decrypt,\n" \ + " ecdsa-sign, ecdh, none (only acceptable for\n" \ + " the second value).\n" \ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) #define USAGE_TLS1_3_KEY_EXCHANGE_MODES \ diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index a1b29786d5..4021e946d4 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -458,15 +458,17 @@ int main( void ) #endif #define USAGE_KEY_OPAQUE_ALGS \ - " key_opaque_algs=%%s Allowed opaque key 1 algorithms.\n" \ - " comma-separated pair of values among the following:\n" \ - " rsa-sign-pkcs1, rsa-sign-pss, rsa-decrypt,\n" \ - " ecdsa-sign, ecdh, none (only acceptable for\n" \ - " the second value).\n" \ - " key_opaque_algs2=%%s Allowed opaque key 2 algorithms.\n" \ - " comma-separated pair of values among the following:\n" \ - " rsa-sign-pkcs1, rsa-sign-pss, rsa-decrypt,\n" \ - " ecdsa-sign, ecdh, none (only acceptable for\n" \ + " key_opaque_algs=%%s Allowed opaque key 1 algorithms.\n" \ + " comma-separated pair of values among the following:\n" \ + " rsa-sign-pkcs1, rsa-sign-pss, rsa-sign-pss-sha256,\n" \ + " rsa-sign-pss-sha384, rsa-sign-pss-sha512, rsa-decrypt,\n" \ + " ecdsa-sign, ecdh, none (only acceptable for\n" \ + " the second value).\n" \ + " key_opaque_algs2=%%s Allowed opaque key 2 algorithms.\n" \ + " comma-separated pair of values among the following:\n" \ + " rsa-sign-pkcs1, rsa-sign-pss, rsa-sign-pss-sha256,\n" \ + " rsa-sign-pss-sha384, rsa-sign-pss-sha512, rsa-decrypt,\n" \ + " ecdsa-sign, ecdh, none (only acceptable for\n" \ " the second value).\n" #if defined(MBEDTLS_SSL_PROTO_TLS1_3) #define USAGE_TLS1_3_KEY_EXCHANGE_MODES \ diff --git a/programs/ssl/ssl_test_lib.c b/programs/ssl/ssl_test_lib.c index a7f3d0e389..cf810a3035 100644 --- a/programs/ssl/ssl_test_lib.c +++ b/programs/ssl/ssl_test_lib.c @@ -205,6 +205,9 @@ int key_opaque_alg_parse( const char *arg, const char **alg1, const char **alg2 if( strcmp( *alg1, "rsa-sign-pkcs1" ) != 0 && strcmp( *alg1, "rsa-sign-pss" ) != 0 && + strcmp( *alg1, "rsa-sign-pss-sha256" ) != 0 && + strcmp( *alg1, "rsa-sign-pss-sha384" ) != 0 && + strcmp( *alg1, "rsa-sign-pss-sha512" ) != 0 && strcmp( *alg1, "rsa-decrypt" ) != 0 && strcmp( *alg1, "ecdsa-sign" ) != 0 && strcmp( *alg1, "ecdh" ) != 0 ) @@ -212,6 +215,9 @@ int key_opaque_alg_parse( const char *arg, const char **alg1, const char **alg2 if( strcmp( *alg2, "rsa-sign-pkcs1" ) != 0 && strcmp( *alg2, "rsa-sign-pss" ) != 0 && + strcmp( *alg1, "rsa-sign-pss-sha256" ) != 0 && + strcmp( *alg1, "rsa-sign-pss-sha384" ) != 0 && + strcmp( *alg1, "rsa-sign-pss-sha512" ) != 0 && strcmp( *alg2, "rsa-decrypt" ) != 0 && strcmp( *alg2, "ecdsa-sign" ) != 0 && strcmp( *alg2, "ecdh" ) != 0 && @@ -245,6 +251,21 @@ int key_opaque_set_alg_usage( const char *alg1, const char *alg2, *psa_algs[i] = PSA_ALG_RSA_PSS( PSA_ALG_ANY_HASH ); *usage |= PSA_KEY_USAGE_SIGN_HASH; } + else if( strcmp( algs[i], "rsa-sign-pss-sha256" ) == 0 ) + { + *psa_algs[i] = PSA_ALG_RSA_PSS( PSA_ALG_SHA_256 ); + *usage |= PSA_KEY_USAGE_SIGN_HASH; + } + else if( strcmp( algs[i], "rsa-sign-pss-sha384" ) == 0 ) + { + *psa_algs[i] = PSA_ALG_RSA_PSS( PSA_ALG_SHA_384 ); + *usage |= PSA_KEY_USAGE_SIGN_HASH; + } + else if( strcmp( algs[i], "rsa-sign-pss-sha512" ) == 0 ) + { + *psa_algs[i] = PSA_ALG_RSA_PSS( PSA_ALG_SHA_512 ); + *usage |= PSA_KEY_USAGE_SIGN_HASH; + } else if( strcmp( algs[i], "rsa-decrypt" ) == 0 ) { *psa_algs[i] = PSA_ALG_RSA_PKCS1V15_CRYPT; diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 6fde7b6816..68380245ad 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -2068,6 +2068,20 @@ run_test "TLS 1.3 opaque key: suitable algorithm found" \ -C "error" \ -S "error" \ +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_RSA_C +run_test "TLS 1.3 opaque key: first client sig alg not suitable" \ + "$P_SRV debug_level=4 force_version=tls13 auth_mode=required key_opaque=1 key_opaque_algs=rsa-sign-pss-sha512,none" \ + "$P_CLI debug_level=4 sig_algs=rsa_pss_rsae_sha256,rsa_pss_rsae_sha512" \ + 0 \ + -s "The SSL configuration is tls13 only" \ + -s "key types: Opaque, Opaque" \ + -s "CertificateVerify signature failed with rsa_pss_rsae_sha256" \ + -s "CertificateVerify signature with rsa_pss_rsae_sha512" \ + -C "error" \ + -S "error" \ + requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_RSA_C From 2db49df44be0e81fa6761ea350b3836318e6f6e5 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 21 Sep 2022 11:03:28 +0800 Subject: [PATCH 0364/1028] Add psk_ephemeral HRR tests Signed-off-by: Jerry Yu --- tests/opt-testcases/tls13-kex-modes.sh | 30 ++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 9811cb31cd..e65a36f50f 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1599,3 +1599,33 @@ run_test "TLS 1.3: O->m: psk_ephemeral group(x448) check, good" \ -S "key exchange mode: psk$" \ -s "key exchange mode: psk_ephemeral" \ -S "key exchange mode: ephemeral" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_openssl_tls1_3 +run_test "TLS 1.3 O->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \ + "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef curves=secp384r1" \ + "$O_NEXT_CLI_NO_CERT -CAfile data_files/test-ca2.crt -tls1_3 -msg -allow_no_dhe_kex -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70 -groups P-256:P-384" \ + 0 \ + -s "write selected_group: secp384r1" \ + -s "HRR selected_group: secp384r1" \ + -S "key exchange mode: psk$" \ + -s "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: ephemeral" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_gnutls_next_disable_tls13_compat +run_test "TLS 1.3 G->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \ + "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef curves=secp384r1" \ + "$G_NEXT_CLI_NO_CERT --debug=4 --single-key-share --x509cafile data_files/test-ca2.crt --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1 --pskusername Client_identity --pskkey 6162636465666768696a6b6c6d6e6f70 localhost" \ + 0 \ + -s "write selected_group: secp384r1" \ + -s "HRR selected_group: secp384r1" \ + -S "key exchange mode: psk$" \ + -s "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: ephemeral" From 119eae2e510eb4d668f27f82ca38d537d011fe43 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 21 Sep 2022 12:19:18 +0100 Subject: [PATCH 0365/1028] Update names of test cases in generate_bignum_tests.py Signed-off-by: Tom Cosgrove --- tests/scripts/generate_bignum_tests.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index ceafa4a489..7626ecd650 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -189,7 +189,7 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): class BignumCmp(BignumOperation): """Test cases for bignum value comparison.""" count = 0 - test_function = "mbedtls_mpi_cmp_mpi" + test_function = "mpi_cmp_mpi" test_name = "MPI compare" input_cases = [ ("-2", "-3"), @@ -210,7 +210,7 @@ class BignumCmp(BignumOperation): class BignumCmpAbs(BignumCmp): """Test cases for absolute bignum value comparison.""" count = 0 - test_function = "mbedtls_mpi_cmp_abs" + test_function = "mpi_cmp_abs" test_name = "MPI compare (abs)" def __init__(self, val_a, val_b) -> None: @@ -221,7 +221,7 @@ class BignumAdd(BignumOperation): """Test cases for bignum value addition.""" count = 0 symbol = "+" - test_function = "mbedtls_mpi_add_mpi" + test_function = "mpi_add_mpi" test_name = "MPI add" input_cases = combination_pairs( [ From 2fdc7b3599f3eeb14391e925b6b859f9e3ab857c Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 21 Sep 2022 12:33:17 +0100 Subject: [PATCH 0366/1028] Return an error from mbedtls_ssl_handshake_step() if neither client nor server This prevents an infinite loop in mbedtls_ssl_handshake(). Fixes #6305. Signed-off-by: Tom Cosgrove --- library/ssl_tls.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 12e1c1b03d..5ea8afadfc 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -3243,6 +3243,10 @@ int mbedtls_ssl_handshake_step( mbedtls_ssl_context *ssl ) if( ret != 0 ) goto cleanup; + /* If ssl->conf->endpoint is not one of MBEDTLS_SSL_IS_CLIENT or + * MBEDTLS_SSL_IS_SERVER, this is the return code we give */ + ret = MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + #if defined(MBEDTLS_SSL_CLI_C) if( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT ) { From 93706123123720a2d0ff0fa4d99756d51142622a Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 21 Sep 2022 22:44:24 +0800 Subject: [PATCH 0367/1028] remove certificate setting from psk_ephemeral HRR test Signed-off-by: Jerry Yu --- tests/opt-testcases/tls13-kex-modes.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index e65a36f50f..eda2de9d9f 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1605,8 +1605,8 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHAN requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_openssl_tls1_3 run_test "TLS 1.3 O->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \ - "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef curves=secp384r1" \ - "$O_NEXT_CLI_NO_CERT -CAfile data_files/test-ca2.crt -tls1_3 -msg -allow_no_dhe_kex -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70 -groups P-256:P-384" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef curves=secp384r1" \ + "$O_NEXT_CLI_NO_CERT -tls1_3 -msg -allow_no_dhe_kex -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70 -groups P-256:P-384" \ 0 \ -s "write selected_group: secp384r1" \ -s "HRR selected_group: secp384r1" \ @@ -1621,8 +1621,8 @@ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat run_test "TLS 1.3 G->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \ - "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef curves=secp384r1" \ - "$G_NEXT_CLI_NO_CERT --debug=4 --single-key-share --x509cafile data_files/test-ca2.crt --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1 --pskusername Client_identity --pskkey 6162636465666768696a6b6c6d6e6f70 localhost" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef curves=secp384r1" \ + "$G_NEXT_CLI_NO_CERT --debug=4 --single-key-share --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1 --pskusername Client_identity --pskkey 6162636465666768696a6b6c6d6e6f70 localhost" \ 0 \ -s "write selected_group: secp384r1" \ -s "HRR selected_group: secp384r1" \ From b3ea98c60629124ab8b96dad012b7c45b944cdd9 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Sep 2022 22:00:06 +0200 Subject: [PATCH 0368/1028] Replace the output file atomically When writing the new .data file, first write the new content, then replace the target. This way, there isn't a temporary state in which the file is partially written. This temporary state can be misleading if the build is interrupted. It's annoying if you're watching changes to the output and the changes appear as emptying the file following by the new version appearing. Now interrupted builds don't leave a file that appears to be up to date but isn't, and when watching the output, there's a single transition to the new version. Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/test_case.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/test_case.py b/scripts/mbedtls_dev/test_case.py index 43ddf203b6..8f08703678 100644 --- a/scripts/mbedtls_dev/test_case.py +++ b/scripts/mbedtls_dev/test_case.py @@ -92,9 +92,11 @@ def write_data_file(filename: str, """ if caller is None: caller = os.path.basename(sys.argv[0]) - with open(filename, 'w') as out: + tempfile = filename + '.new' + with open(tempfile, 'w') as out: out.write('# Automatically generated by {}. Do not edit!\n' .format(caller)) for tc in test_cases: tc.write(out) out.write('\n# End of automatically generated file.\n') + os.replace(tempfile, filename) From d0766eca58b2a53031e4d51ee32fb394309b9c25 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 22 Sep 2022 10:46:57 +0800 Subject: [PATCH 0369/1028] fix various issues - Improve comments - Align count variable name to `new_session_tickets_count` - move tickets_count init to handshake init Signed-off-by: Jerry Yu --- include/mbedtls/ssl.h | 6 +++--- library/ssl_misc.h | 2 +- library/ssl_tls.c | 14 +++++++++++--- library/ssl_tls13_server.c | 31 +++++++++++++++++++------------ 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 0f008ea3e9..1d5f4281fd 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1337,7 +1337,7 @@ struct mbedtls_ssl_config #if defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SRV_C) && \ defined(MBEDTLS_SSL_PROTO_TLS1_3) - uint16_t MBEDTLS_PRIVATE(new_session_tickets); /*!< number of NewSessionTicket */ + uint16_t MBEDTLS_PRIVATE(new_session_tickets_count); /*!< number of NewSessionTicket */ #endif #if defined(MBEDTLS_SSL_SRV_C) @@ -4137,10 +4137,10 @@ void mbedtls_ssl_conf_session_tickets( mbedtls_ssl_config *conf, int use_tickets defined(MBEDTLS_SSL_SRV_C) && \ defined(MBEDTLS_SSL_PROTO_TLS1_3) /** - * \brief Number of NewSessionTicket message that sent by server. + * \brief Number of NewSessionTicket messages for the server to send + * after handshake completion. * (Default: MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS) * - * * \param conf SSL configuration * \param num_tickets Number of NewSessionTicket. * diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 2621d20055..7e060d3348 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -625,7 +625,7 @@ struct mbedtls_ssl_handshake_params uint8_t tls13_kex_modes; /*!< Key exchange modes supported by the client */ #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) - int tls13_session_tickets; /*!< number of session tickets */ + int new_session_tickets_count; /*!< number of session tickets */ #endif #endif /* MBEDTLS_SSL_SRV_C */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 065b354d09..de6bae2833 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -674,6 +674,7 @@ static void ssl_handshake_params_init( mbedtls_ssl_handshake_params *handshake ) !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) mbedtls_pk_init( &handshake->peer_pubkey ); #endif + } void mbedtls_ssl_transform_init( mbedtls_ssl_transform *transform ) @@ -763,6 +764,13 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl ) mbedtls_ssl_transform_init( ssl->transform_negotiate ); ssl_handshake_params_init( ssl->handshake ); +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SRV_C) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) + ssl->handshake->new_session_tickets_count = + ssl->conf->new_session_tickets_count ; +#endif + #if defined(MBEDTLS_SSL_PROTO_DTLS) if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) { @@ -2612,11 +2620,11 @@ void mbedtls_ssl_conf_session_tickets( mbedtls_ssl_config *conf, int use_tickets #if defined(MBEDTLS_SSL_SRV_C) -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) void mbedtls_ssl_conf_new_session_tickets( mbedtls_ssl_config *conf, uint16_t num_tickets ) { - conf->new_session_tickets = num_tickets; + conf->new_session_tickets_count = num_tickets; } #endif @@ -4653,7 +4661,7 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_3) -#if defined(MBEDTLS_SSL_SRV_C) +#if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_SSL_SESSION_TICKETS) mbedtls_ssl_conf_new_session_tickets( conf, MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS ); #endif diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 780740897f..40ac476673 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2617,10 +2617,23 @@ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_write_new_session_ticket_coordinate( mbedtls_ssl_context *ssl ) { /* Check whether the use of session tickets is enabled */ - if( ssl->conf->f_ticket_write == NULL || - ssl->handshake->tls13_session_tickets == 0 ) + if( ssl->conf->f_ticket_write == NULL ) { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "new session ticket is not enabled" ) ); + MBEDTLS_SSL_DEBUG_MSG( 2, ( "NewSessionTicket: disabled," + " callback is not set" ) ); + return( SSL_NEW_SESSION_TICKET_SKIP ); + } + if( ssl->conf->new_session_tickets_count == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( 2, ( "NewSessionTicket: disabled," + " configured count is zero" ) ); + return( SSL_NEW_SESSION_TICKET_SKIP ); + } + + if( ssl->handshake->new_session_tickets_count == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( 2, ( "NewSessionTicket: all tickets have " + "been sent." ) ); return( SSL_NEW_SESSION_TICKET_SKIP ); } @@ -2642,9 +2655,9 @@ static int ssl_tls13_prepare_new_session_ticket( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> prepare NewSessionTicket msg" ) ); if( ssl->handshake->resume == 1 ) - ssl->handshake->tls13_session_tickets = 0; + ssl->handshake->new_session_tickets_count = 0; else - ssl->handshake->tls13_session_tickets--; + ssl->handshake->new_session_tickets_count--; #if defined(MBEDTLS_HAVE_TIME) session->start = mbedtls_time( NULL ); #endif @@ -2890,12 +2903,6 @@ int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ) /* start state */ case MBEDTLS_SSL_HELLO_REQUEST: mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_HELLO ); -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) - ssl->handshake->tls13_session_tickets = - ssl->conf->new_session_tickets ? - ssl->conf->new_session_tickets : - MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS; -#endif ret = 0; break; @@ -3014,7 +3021,7 @@ int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ) */ ret = 0; - if( ssl->handshake->tls13_session_tickets == 0 ) + if( ssl->handshake->new_session_tickets_count == 0 ) mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_HANDSHAKE_OVER ); else mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_NEW_SESSION_TICKET ); From b7e3fa7fbdd573f3f7f633da297a561eadac0fc5 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 22 Sep 2022 11:07:18 +0800 Subject: [PATCH 0370/1028] move count decrement after success sent Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 40ac476673..e1e52cb457 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2654,10 +2654,6 @@ static int ssl_tls13_prepare_new_session_ticket( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> prepare NewSessionTicket msg" ) ); - if( ssl->handshake->resume == 1 ) - ssl->handshake->new_session_tickets_count = 0; - else - ssl->handshake->new_session_tickets_count--; #if defined(MBEDTLS_HAVE_TIME) session->start = mbedtls_time( NULL ); #endif @@ -2870,6 +2866,8 @@ static int ssl_tls13_write_new_session_ticket( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_finish_handshake_msg( ssl, buf_len, msg_len ) ); + ssl->handshake->new_session_tickets_count--; + mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH ); } From 87d9c6c4d879d4cf32a9fbc101cb3be3abf05f77 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 22 Sep 2022 09:27:56 +0100 Subject: [PATCH 0371/1028] Ensure client mbedtls_ssl_handshake_step() returns success for HELLO_REQUEST Signed-off-by: Tom Cosgrove --- library/ssl_tls.c | 1 + 1 file changed, 1 insertion(+) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 5ea8afadfc..2d1ffbe040 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -3257,6 +3257,7 @@ int mbedtls_ssl_handshake_step( mbedtls_ssl_context *ssl ) { case MBEDTLS_SSL_HELLO_REQUEST: ssl->state = MBEDTLS_SSL_CLIENT_HELLO; + ret = 0; break; case MBEDTLS_SSL_CLIENT_HELLO: From f3bdf9dd5125113d490fbcb3795d530f6979d08e Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 22 Sep 2022 23:30:49 +0800 Subject: [PATCH 0372/1028] fix various issues - improve document about configuration item. - format issue - variable type issue. Signed-off-by: Jerry Yu --- include/mbedtls/mbedtls_config.h | 4 +++- library/ssl_misc.h | 2 +- library/ssl_tls.c | 1 - 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index eea7f09808..3df16777b0 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1581,7 +1581,9 @@ /** * \def MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS * - * Default number of NewSessionTicket. This is not used in TLS 1.2. + * Default number of NewSessionTicket messages to be sent by a TLS 1.3 server + * after handshake completion. This is not used in TLS 1.2 and relevant only if + * the MBEDTLS_SSL_SESSION_TICKETS option is enabled. * */ #define MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS 1 diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 7e060d3348..e2546ffe97 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -625,7 +625,7 @@ struct mbedtls_ssl_handshake_params uint8_t tls13_kex_modes; /*!< Key exchange modes supported by the client */ #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) - int new_session_tickets_count; /*!< number of session tickets */ + uint16_t new_session_tickets_count; /*!< number of session tickets */ #endif #endif /* MBEDTLS_SSL_SRV_C */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index de6bae2833..c9aea4857b 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -674,7 +674,6 @@ static void ssl_handshake_params_init( mbedtls_ssl_handshake_params *handshake ) !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) mbedtls_pk_init( &handshake->peer_pubkey ); #endif - } void mbedtls_ssl_transform_init( mbedtls_ssl_transform *transform ) From 359e65f78467962af579d25f869c632df3048eb4 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 22 Sep 2022 23:47:43 +0800 Subject: [PATCH 0373/1028] limit session ticket number when resumption Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index e1e52cb457..667e596e5c 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2866,7 +2866,14 @@ static int ssl_tls13_write_new_session_ticket( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_finish_handshake_msg( ssl, buf_len, msg_len ) ); - ssl->handshake->new_session_tickets_count--; + /* Limit session tickets count to one when resumption connection. + * + * See document of mbedtls_ssl_conf_new_session_tickets. + */ + if( ssl->handshake->resume == 1 ) + ssl->handshake->new_session_tickets_count = 0; + else + ssl->handshake->new_session_tickets_count--; mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH ); From 40b4a0138811b621553a29cde82015f5801dec94 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 22 Sep 2022 23:48:38 +0800 Subject: [PATCH 0374/1028] Improve documents Signed-off-by: Jerry Yu --- include/mbedtls/ssl.h | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 1d5f4281fd..ce2594991c 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -4137,12 +4137,19 @@ void mbedtls_ssl_conf_session_tickets( mbedtls_ssl_config *conf, int use_tickets defined(MBEDTLS_SSL_SRV_C) && \ defined(MBEDTLS_SSL_PROTO_TLS1_3) /** - * \brief Number of NewSessionTicket messages for the server to send - * after handshake completion. - * (Default: MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS) +* \brief Number of NewSessionTicket messages for the server to send + * after handshake completion. + * \note The default value is + * MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS. + * \note In case of a session resumption, this setting only partially + * apply. At most one ticket is sent in that case to just review the + * pool of tickets of the client. The rationale is to avoid the + * number of tickets on the server to become rapidly out of + * control when the server has the same configuration for all its + * connection instances. * - * \param conf SSL configuration - * \param num_tickets Number of NewSessionTicket. + * \param conf SSL configuration + * \param num_tickets Number of NewSessionTicket. * */ void mbedtls_ssl_conf_new_session_tickets( mbedtls_ssl_config *conf, From 335cfaadf9977f2b465ea9074a65e3f088f3ad20 Mon Sep 17 00:00:00 2001 From: XiaokangQian Date: Thu, 11 Aug 2022 03:18:07 +0000 Subject: [PATCH 0375/1028] Finalize client side code for psk Signed-off-by: XiaokangQian --- library/ssl_tls13_client.c | 1 + tests/data_files/simplepass.psk | 1 + tests/ssl-opt.sh | 197 +++++++++++++++++++++++++++++++- 3 files changed, 194 insertions(+), 5 deletions(-) create mode 100644 tests/data_files/simplepass.psk diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 33e8cc6aa1..e10937be5d 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1326,6 +1326,7 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, { int ret = 0; size_t selected_identity; + int psk_type; const unsigned char *psk; size_t psk_len; diff --git a/tests/data_files/simplepass.psk b/tests/data_files/simplepass.psk new file mode 100644 index 0000000000..93e7ab4561 --- /dev/null +++ b/tests/data_files/simplepass.psk @@ -0,0 +1 @@ +0a0b0c:010203 diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 84bcd3c095..cd73c787f9 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12101,8 +12101,60 @@ run_test "TLS 1.3, default suite, PSK" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "<= write client hello" + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3, default suite, PSK, psk_all" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3, default suite, PSK, psk_ephemeral" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3, default suite, PSK, ephemeral" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3, default suite, PSK, ephemeral_all" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "=> write client hello" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_openssl_tls1_3 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE @@ -12116,7 +12168,70 @@ run_test "TLS 1.3, default suite, PSK - openssl" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "<= write client hello" + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3, default suite, PSK - openssli psk_all" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3, default suite, PSK - openssl psk_ephemeral" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3, default suite, PSK - openssl ephemeral" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3, default suite, PSK - openssl ephemeral_all" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "=> write client hello" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 @@ -12125,16 +12240,88 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3, default suite, PSK - gnutls" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - 1 \ + 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3, default suite, PSK - gnutls psk_all" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3, default suite, PSK - gnutls psk_ephemeral" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+ECDHE-PSK:+DHE-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3, default suite, PSK - gnutls ephemeral" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3, default suite, PSK - gnutls ephemeral_all" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" for i in opt-testcases/*.sh do From cf6442e2e41d0b314ffb05eaa24bd6200d76ceba Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 23 Aug 2022 06:47:40 +0000 Subject: [PATCH 0376/1028] Add client test cases for psk mode Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 242 +++++++++++++++++++++++++ 1 file changed, 242 insertions(+) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index eda2de9d9f..d465e55703 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1629,3 +1629,245 @@ run_test "TLS 1.3 G->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \ -S "key exchange mode: psk$" \ -s "key exchange mode: psk_ephemeral" \ -S "key exchange mode: ephemeral" + + +# Add psk test cases for mbedtls client code + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_ke and psk_dhe_ke. m->m" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ + "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: psk: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -s "PSK warning: client identity not what we expected" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: psk: with mismatched identity, with psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: psk: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ + "$P_CLI debug_level=4 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "skip pre_shared_key extensions" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ + -c "<= write client hello" + +#GNUTLS-SERVER cases +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk: with mismatched identity, with psk_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk: with mismatched identity, with psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk_identity=0d0e0f tls13_kex_modes=psk" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "skip pre_shared_key extensions" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -c "<= write client hello" \ + -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" + -c "HTTP/1.0 200 OK" From 73894232e846f7b3f4323714d15a6b7080ace5bf Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 23 Aug 2022 08:06:34 +0000 Subject: [PATCH 0377/1028] Add client test cases for psk_all mode Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 232 ++++++++++++++++++++++++- 1 file changed, 229 insertions(+), 3 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index d465e55703..e6ca0dd890 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1647,6 +1647,7 @@ run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_ke -c "<= write client hello" \ -c "HTTP/1.0 200 OK" +#OPENSSL-SERVER psk mode requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE @@ -1738,7 +1739,7 @@ run_test "TLS 1.3Client: PSK: psk: without pre-share key, with psk_ke and psk -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ -c "<= write client hello" -#GNUTLS-SERVER cases +#GNUTLS-SERVER psk mode requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1851,7 +1852,7 @@ run_test "TLS 1.3Client: PSK: psk: with mismatched identity, with psk_dhe_ke. -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" + -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -1869,5 +1870,230 @@ run_test "TLS 1.3Client: PSK: psk: without pre-share key, with psk_ke and psk -c "skip pre_shared_key extensions" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -c "<= write client hello" \ - -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" + -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ + -c "HTTP/1.0 200 OK" + +#OPENSSL-SERVER psk_all mode +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: psk_all: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: psk_all: with matched key and identity, with psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ + "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: psk_all: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -s "PSK warning: client identity not what we expected" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: psk_all: with mismatched identity, with psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: psk_all: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ + "$P_CLI debug_level=4 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "skip pre_shared_key extensions" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ + -c "<= write client hello" + +#GNUTLS-SERVER psk_all mode +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk_all: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk_all: with matched key and identity, with psk_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk_all: with matched key and identity, with psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk_all: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk_all: with mismatched identity, with psk_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk_all: with mismatched identity, with psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk_all: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "skip pre_shared_key extensions" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -c "<= write client hello" \ + -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ -c "HTTP/1.0 200 OK" From ff5705bdd716831abe8ada3e39cbc05f251e638b Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 24 Aug 2022 03:18:31 +0000 Subject: [PATCH 0378/1028] Add client test cases for psk_ephemeral mode Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 224 +++++++++++++++++++++++++ 1 file changed, 224 insertions(+) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index e6ca0dd890..e8e06fb277 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -2097,3 +2097,227 @@ run_test "TLS 1.3Client: PSK: psk_all: without pre-share key, with psk_ke and -c "<= write client hello" \ -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ -c "HTTP/1.0 200 OK" + +#OPENSSL-SERVER psk_ephemeral mode +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: psk_ephemeral: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: psk_ephemeral: with matched key and identity, with psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ + "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -s "PSK warning: client identity not what we expected" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: psk_ephemeral: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ + "$P_CLI debug_level=4 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "skip pre_shared_key extensions" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ + -c "<= write client hello" + +#GNUTLS-SERVER psk_ephemeral mode +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk_ephemeral: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk_ephemeral: with matched key and identity, with psk_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk_ephemeral: with matched key and identity, with psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with psk_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -s "Error in handshake: An illegal parameter has been received." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: psk_ephemeral: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "skip pre_shared_key extensions" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -c "<= write client hello" \ + -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ + -c "HTTP/1.0 200 OK" From 01173c21b1ba8377305f4faef4c512d831afd8f6 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 24 Aug 2022 06:29:05 +0000 Subject: [PATCH 0379/1028] Add client test cases for ephemeral mode Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 198 +++++++++++++++++++++++++ 1 file changed, 198 insertions(+) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index e8e06fb277..d0f816daa3 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -2321,3 +2321,201 @@ run_test "TLS 1.3Client: PSK: psk_ephemeral: without pre-share key, with psk_ -c "<= write client hello" \ -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ -c "HTTP/1.0 200 OK" + +#OPENSSL-SERVER ephemeral mode +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: ephemeral: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "skip psk_key_exchange_modes extension" \ + -c "<= write client hello" \ + -c "found key_shares extension" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: ephemeral: with matched key and identity, with psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ + "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "skip psk_key_exchange_modes extension" \ + -c "<= write client hello" \ + -c "found key_shares extension" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: ephemeral: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0c0d0e tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "skip psk_key_exchange_modes extension" \ + -c "<= write client hello" \ + -c "found key_shares extension" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: ephemeral: with mismatched identity, with psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "skip psk_key_exchange_modes extension" \ + -c "<= write client hello" \ + -c "found key_shares extension" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: ephemeral: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ + "$P_CLI debug_level=4 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "skip psk_key_exchange_modes extension" \ + -c "<= write client hello" + +#GNUTLS-SERVER ephemeral mode +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: ephemeral: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "skip psk_key_exchange_modes extension" \ + -s "Not sending extension (PSK Key Exchange Modes/45)" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: ephemeral: with matched key and identity, with psk_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "skip psk_key_exchange_modes extension" \ + -s "Not sending extension (PSK Key Exchange Modes/45)" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: ephemeral: with matched key and identity, with psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "skip psk_key_exchange_modes extension" \ + -s "Not sending extension (PSK Key Exchange Modes/45)" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: ephemeral: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "skip psk_key_exchange_modes extension" \ + -s "Not sending extension (PSK Key Exchange Modes/45)" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: ephemeral: with mismatched identity, with psk_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "skip psk_key_exchange_modes extension" \ + -s "Not sending extension (PSK Key Exchange Modes/45)" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: ephemeral: with mismatched identity, with psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "skip psk_key_exchange_modes extension" \ + -s "Not sending extension (PSK Key Exchange Modes/45)" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: ephemeral: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "skip psk_key_exchange_modes extension" \ + -s "Not sending extension (PSK Key Exchange Modes/45)" \ + -c "<= write client hello" \ + -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ + -c "HTTP/1.0 200 OK" From a39d0d5e2b6a53dd9a15208736afab1e93794c72 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 24 Aug 2022 06:48:07 +0000 Subject: [PATCH 0380/1028] Add client test cases for ephemeral_all mode Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 224 +++++++++++++++++++++++++ 1 file changed, 224 insertions(+) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index d0f816daa3..ee29776c84 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -2519,3 +2519,227 @@ run_test "TLS 1.3Client: PSK: ephemeral: without pre-share key, with psk_ke a -c "<= write client hello" \ -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ -c "HTTP/1.0 200 OK" + +#OPENSSL-SERVER ephemeral_all mode +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: ephemeral_all: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: ephemeral_all: with matched key and identity, with psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ + "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: ephemeral_all: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0c0d0e tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -s "PSK warning: client identity not what we expected" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: ephemeral_all: with mismatched identity, with psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: ephemeral_all: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ + "$P_CLI debug_level=4 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "skip pre_shared_key extensions" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ + -c "<= write client hello" + +#GNUTLS-SERVER ephemeral_all mode +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: ephemeral_all: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: ephemeral_all: with matched key and identity, with psk_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: ephemeral_all: with matched key and identity, with psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: ephemeral_all: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: ephemeral_all: with mismatched identity, with psk_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: ephemeral_all: with mismatched identity, with psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -s "Error in handshake: An illegal parameter has been received." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: ephemeral_all: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "skip pre_shared_key extensions" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -c "<= write client hello" \ + -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ + -c "HTTP/1.0 200 OK" From df6a3891e8551315f5b58482243eac47228abcc1 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 24 Aug 2022 06:55:18 +0000 Subject: [PATCH 0381/1028] Add client psk test cases for all mode Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 224 +++++++++++++++++++++++++ 1 file changed, 224 insertions(+) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index ee29776c84..5d6a66f4f3 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -2743,3 +2743,227 @@ run_test "TLS 1.3Client: PSK: ephemeral_all: without pre-share key, with psk_ -c "<= write client hello" \ -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ -c "HTTP/1.0 200 OK" + +#OPENSSL-SERVER all mode +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: all: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: all: with matched key and identity, with psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ + "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: all: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0c0d0e tls13_kex_modes=all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -s "PSK warning: client identity not what we expected" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: all: with mismatched identity, with psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 ok" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3Client: PSK: all: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ + "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ + "$P_CLI debug_level=4 psk_identity=0a0b0c tls13_kex_modes=all" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "skip pre_shared_key extensions" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ + -c "<= write client hello" + +#GNUTLS-SERVER all mode +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: all: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: all: with matched key and identity, with psk_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: all: with matched key and identity, with psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: all: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: all: with mismatched identity, with psk_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -s "Error in handshake: An illegal parameter has been received." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: all: with mismatched identity, with psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: PSK: all: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 psk_identity=0d0e0f tls13_kex_modes=all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "skip pre_shared_key extensions" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -c "<= write client hello" \ + -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ + -c "HTTP/1.0 200 OK" From e0cc584f70b5e9eb1a6ca788a46acfb0eda73196 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 25 Aug 2022 06:17:36 +0000 Subject: [PATCH 0382/1028] Change result strings based on actula psk test result Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 102 +++++-------------------- 1 file changed, 20 insertions(+), 82 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 5d6a66f4f3..d2160f4f01 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1676,13 +1676,13 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - 0 \ + 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -c "<= write client hello" \ - -c "HTTP/1.0 200 ok" + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -1703,25 +1703,6 @@ run_test "TLS 1.3Client: PSK: psk: with mismatched identity, with psk_ke and -s "PSK warning: client identity not what we expected" \ -c "HTTP/1.0 200 ok" -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: psk: with mismatched identity, with psk_dhe_ke. m->O" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ - -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ - -c "HTTP/1.0 200 ok" - requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE @@ -1787,7 +1768,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - 0 \ + 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1795,7 +1776,7 @@ run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_dh -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 @@ -1835,26 +1816,6 @@ run_test "TLS 1.3Client: PSK: psk: with mismatched identity, with psk_ke. m-> -c "<= write client hello" \ -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk: with mismatched identity, with psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ - -c "HTTP/1.0 200 OK" - requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1863,15 +1824,14 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk_identity=0d0e0f tls13_kex_modes=psk" \ - 0 \ + "$P_CLI debug_level=4 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 1 \ -c "=> write client hello" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "skip pre_shared_key extensions" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -c "<= write client hello" \ - -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ - -c "HTTP/1.0 200 OK" + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" #OPENSSL-SERVER psk_all mode requires_openssl_tls1_3 @@ -2010,9 +1970,9 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_all: with matched key and identity, with psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - 0 \ + 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2020,7 +1980,7 @@ run_test "TLS 1.3Client: PSK: psk_all: with matched key and identity, with ps -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 @@ -2060,26 +2020,6 @@ run_test "TLS 1.3Client: PSK: psk_all: with mismatched identity, with psk_ke. -c "<= write client hello" \ -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk_all: with mismatched identity, with psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ - -c "HTTP/1.0 200 OK" - requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2087,16 +2027,15 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_all: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ - 0 \ + 1 \ -c "=> write client hello" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "skip pre_shared_key extensions" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -c "<= write client hello" \ - -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ - -c "HTTP/1.0 200 OK" + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" #OPENSSL-SERVER psk_ephemeral mode requires_openssl_tls1_3 @@ -2218,7 +2157,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_ephemeral: with matched key and identity, with psk_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - 0 \ + 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2226,7 +2165,7 @@ run_test "TLS 1.3Client: PSK: psk_ephemeral: with matched key and identity, w -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 @@ -2275,7 +2214,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with psk_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ - 0 \ + 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2283,7 +2222,7 @@ run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with p -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 @@ -2302,7 +2241,7 @@ run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with p -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -s "Error in handshake: An illegal parameter has been received." + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 @@ -2313,14 +2252,13 @@ requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_ephemeral: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ - 0 \ + 1 \ -c "=> write client hello" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "skip pre_shared_key extensions" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -c "<= write client hello" \ - -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ - -c "HTTP/1.0 200 OK" + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" #OPENSSL-SERVER ephemeral mode requires_openssl_tls1_3 From f9b694ba8f2da788ac68854f1d38f5919ce6b61c Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 25 Aug 2022 08:48:51 +0000 Subject: [PATCH 0383/1028] Add m->m cases with client be set to psk and psk_ephemeral mode Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 307 ++++++++++++++++++++++++- 1 file changed, 304 insertions(+), 3 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index d2160f4f01..fcfb6162e3 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1633,20 +1633,321 @@ run_test "TLS 1.3 G->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \ # Add psk test cases for mbedtls client code +# MbedTls->MbedTLS kinds of tls13_kex_modes +# PSK mode in client requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_ke and psk_dhe_ke. m->m" \ +run_test "TLS 1.3Client: m->m psk / psk, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ - -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ -c "HTTP/1.0 200 OK" +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk / psk, fail - no common identity" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk / psk, fail - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 1 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk / psk_ephemeral, fail - no common key exchange mode" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk / ephemeral, fail - no common key exchange mode" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk / ephemeral_all, fail - no common key exchange mode" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk / psk_all, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk / psk_all, fail - no common identity" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk / psk_all, fail - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 1 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk / all, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk / all, fail - no common identity" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk / all, fail - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 1 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "ClientHello message misses mandatory extensions." + +# psk_ephemeral mode in client +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_ephemeral / psk, fail - no common key exchange mode" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_ephemeral / psk_ephemeral, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_ephemeral / psk_ephemeral, fail - no common identity" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_ephemeral / psk_ephemeral, fail - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 1 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_ephemeral / ephemeral, fail - no common key exchange mode" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_ephemeral / ephemeral_all, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_ephemeral / ephemeral_all, fail - no common identity" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_ephemeral / ephemeral_all, fail - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 1 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_ephemeral / psk_all, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_ephemeral / psk_all, fail - no common identity" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_ephemeral / psk_all, fail - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 1 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_ephemeral / all, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_ephemeral / all, fail - no common identity" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_ephemeral / all, fail - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 1 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "ClientHello message misses mandatory extensions." + #OPENSSL-SERVER psk mode requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 From 198cefd1fae44a0357a965e20fb6753679004cb6 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 25 Aug 2022 10:42:56 +0000 Subject: [PATCH 0384/1028] Add force_version tls13 to the psk test cases Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 126 ++++++++++++------------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index fcfb6162e3..1d6a1b2638 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1958,7 +1958,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -1994,7 +1994,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: psk: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2013,7 +2013,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: psk: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ - "$P_CLI debug_level=4 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ -c "=> write client hello" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2030,7 +2030,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2049,7 +2049,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2068,7 +2068,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2087,7 +2087,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2106,7 +2106,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk: with mismatched identity, with psk_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2125,7 +2125,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ -c "=> write client hello" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2144,7 +2144,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: psk_all: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2180,7 +2180,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: psk_all: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk_all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2199,7 +2199,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: psk_all: with mismatched identity, with psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2217,7 +2217,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: psk_all: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ - "$P_CLI debug_level=4 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ -c "=> write client hello" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2234,7 +2234,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_all: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2253,7 +2253,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_all: with matched key and identity, with psk_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2272,7 +2272,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_all: with matched key and identity, with psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2291,7 +2291,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_all: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2310,7 +2310,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_all: with mismatched identity, with psk_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2329,7 +2329,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_all: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ -c "=> write client hello" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2348,7 +2348,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: psk_ephemeral: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2384,7 +2384,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk_ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk_ephemeral" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2403,7 +2403,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2421,7 +2421,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: psk_ephemeral: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ - "$P_CLI debug_level=4 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ -c "=> write client hello" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2438,7 +2438,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_ephemeral: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2457,7 +2457,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_ephemeral: with matched key and identity, with psk_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2476,7 +2476,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_ephemeral: with matched key and identity, with psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2495,7 +2495,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2514,7 +2514,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with psk_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2533,7 +2533,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2552,7 +2552,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: psk_ephemeral: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ -c "=> write client hello" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2571,7 +2571,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: ephemeral: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ -c "=> write client hello" \ -c "skip psk_key_exchange_modes extension" \ @@ -2605,7 +2605,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: ephemeral: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0c0d0e tls13_kex_modes=ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=ephemeral" \ 0 \ -c "=> write client hello" \ -c "skip psk_key_exchange_modes extension" \ @@ -2622,7 +2622,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: ephemeral: with mismatched identity, with psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ 0 \ -c "=> write client hello" \ -c "skip psk_key_exchange_modes extension" \ @@ -2639,7 +2639,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: ephemeral: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ -c "=> write client hello" \ -c "skip psk_key_exchange_modes extension" \ @@ -2654,7 +2654,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: ephemeral: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ -c "=> write client hello" \ -c "skip psk_key_exchange_modes extension" \ @@ -2670,7 +2670,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: ephemeral: with matched key and identity, with psk_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ -c "=> write client hello" \ -c "skip psk_key_exchange_modes extension" \ @@ -2686,7 +2686,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: ephemeral: with matched key and identity, with psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ -c "=> write client hello" \ -c "skip psk_key_exchange_modes extension" \ @@ -2702,7 +2702,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: ephemeral: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ 0 \ -c "=> write client hello" \ -c "skip psk_key_exchange_modes extension" \ @@ -2718,7 +2718,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: ephemeral: with mismatched identity, with psk_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ 0 \ -c "=> write client hello" \ -c "skip psk_key_exchange_modes extension" \ @@ -2734,7 +2734,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: ephemeral: with mismatched identity, with psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ 0 \ -c "=> write client hello" \ -c "skip psk_key_exchange_modes extension" \ @@ -2750,7 +2750,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: ephemeral: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ 0 \ -c "=> write client hello" \ -c "skip psk_key_exchange_modes extension" \ @@ -2769,7 +2769,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: ephemeral_all: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2805,7 +2805,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: ephemeral_all: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0c0d0e tls13_kex_modes=ephemeral_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=ephemeral_all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2824,7 +2824,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: ephemeral_all: with mismatched identity, with psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2842,7 +2842,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: ephemeral_all: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ - "$P_CLI debug_level=4 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ -c "=> write client hello" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2859,7 +2859,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: ephemeral_all: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2878,7 +2878,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: ephemeral_all: with matched key and identity, with psk_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2897,7 +2897,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: ephemeral_all: with matched key and identity, with psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2916,7 +2916,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: ephemeral_all: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2935,7 +2935,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: ephemeral_all: with mismatched identity, with psk_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2954,7 +2954,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: ephemeral_all: with mismatched identity, with psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2973,7 +2973,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: ephemeral_all: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2993,7 +2993,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: all: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -3029,7 +3029,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: all: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0c0d0e tls13_kex_modes=all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -3048,7 +3048,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: all: with mismatched identity, with psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -3066,7 +3066,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3Client: PSK: all: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ - "$P_CLI debug_level=4 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ -c "=> write client hello" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -3083,7 +3083,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: all: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -3102,7 +3102,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: all: with matched key and identity, with psk_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -3121,7 +3121,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: all: with matched key and identity, with psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -3140,7 +3140,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: all: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -3159,7 +3159,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: all: with mismatched identity, with psk_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -3178,7 +3178,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: all: with mismatched identity, with psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -3197,7 +3197,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3Client: PSK: all: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk_identity=0d0e0f tls13_kex_modes=all" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding psk_key_exchange_modes extension" \ From ca48dddf62ca920222584d3d988d94c32fe4026f Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Mon, 29 Aug 2022 08:25:17 +0000 Subject: [PATCH 0385/1028] Add m->m with client be set to ephemeral or ephemeral_all mode Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 225 +++++++++++++++++++++++++ 1 file changed, 225 insertions(+) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 1d6a1b2638..03de865026 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1948,6 +1948,231 @@ run_test "TLS 1.3Client: m->m psk_ephemeral / all, fail - no common psk" \ -c "client hello, adding psk_key_exchange_modes extension" \ -s "ClientHello message misses mandatory extensions." +# ephemeral mode in client +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral / psk, fail - no common key exchange mode" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 1 \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral / psk_ephemeral, fail - no common key exchange mode" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 1 \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral / ephemeral, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 0 \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral / ephemeral_all, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 0 \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral / psk_all, fail - no common key exchange mode" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 1 \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral / all, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 0 \ + -c "HTTP/1.0 200 OK" + +# ephemeral_all mode in client +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral_all / psk, fail - no common key exchange mode" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral_all / psk_ephemeral, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral_all / psk_ephemeral, fail - no common identity" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "key exchange mode: ephemeral" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral_all / psk_ephemeral, fail - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "key exchange mode: ephemeral" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral_all / ephemeral, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "key exchange mode: ephemeral" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral_all / ephemeral_all, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral_all / ephemeral_all, good - fallback to ephemeral" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "key exchange mode: ephemeral" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral_all / ephemeral_all, good - fallback to ephemeral" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "key exchange mode: ephemeral" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral_all / psk_all, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral_all / psk_all, fail - no common identity" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral_all / psk_all, fail - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 1 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral_all / all, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral_all / all, fail - no common identity" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "key exchange mode: ephemeral" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m ephemeral_all / all, fail - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "key exchange mode: ephemeral" + #OPENSSL-SERVER psk mode requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 From 8e76e1de2184b875c5a89516ad4b1f204e6414bb Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Mon, 29 Aug 2022 10:11:14 +0000 Subject: [PATCH 0386/1028] Add m->m cases with client be set to psk_all or all mode Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 386 +++++++++++++++++++++++++ 1 file changed, 386 insertions(+) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 03de865026..b762eda2e0 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -2173,6 +2173,392 @@ run_test "TLS 1.3Client: m->m ephemeral_all / all, fail - no common psk" \ -c "client hello, adding psk_key_exchange_modes extension" \ -s "key exchange mode: ephemeral" +# psk_all mode in client +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_all / psk, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_all / psk, fail - no common key exchange mode" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_all / psk, fail - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_all / psk_ephemeral, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_all / psk_ephemeral, fail - no common identity" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_all / psk_ephemeral, fail - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 1 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_all / ephemeral, fail - no common key exchange mode" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_all / ephemeral_all, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_all / ephemeral_all, fail - no common identity" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_all / ephemeral_all, good - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 1 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_all / psk_all, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_all / psk_all, fail - no common identity" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_all / psk_all, fail - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 1 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_all / all, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_all / all, fail - no common identity" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m psk_all / all, fail - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 1 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "ClientHello message misses mandatory extensions." + +# all mode in client +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m all / psk, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m all / psk, fail - no common key exchange mode" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m all / psk, fail - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m all / psk_ephemeral, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m all / psk_ephemeral, fail - no common identity" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m all / psk_ephemeral, fail - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ + 1 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m all / ephemeral, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m all / ephemeral_all, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m all / ephemeral_all, good - no common identity" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m all / ephemeral_all, good - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ + 0 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m all / psk_all, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m all / psk_all, fail - no common identity" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m all / psk_all, fail - no common psk" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ + 1 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "ClientHello message misses mandatory extensions." + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m all / all, good" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m all / all, good - no common identity, fallback to ephemeral" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "key exchange mode: ephemeral" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->m all / all, good - no common psk, fallback to ephemeral" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ + 0 \ + -c "skip pre_shared_key extensions" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -s "key exchange mode: ephemeral" + #OPENSSL-SERVER psk mode requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 From 2aaf1c1d745d32936f1c3e08835a82533b1e129c Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 30 Aug 2022 09:18:59 +0000 Subject: [PATCH 0387/1028] Re-work psk test cases against openssl and gnutls Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 1129 +++++++++--------------- 1 file changed, 432 insertions(+), 697 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index b762eda2e0..762b619528 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -2090,17 +2090,6 @@ run_test "TLS 1.3Client: m->m ephemeral_all / ephemeral_all, good - fallback -s "No matched PSK or ticket" \ -s "key exchange mode: ephemeral" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral_all / ephemeral_all, good - fallback to ephemeral" \ - "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - 0 \ - -c "skip pre_shared_key extensions" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -s "key exchange mode: ephemeral" - requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -2567,7 +2556,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O psk / psk_ke&psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ @@ -2585,7 +2574,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O psk / psk_dhe_ke, fail - no common kex mode" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -2603,26 +2592,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: psk: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ - -s "PSK warning: client identity not what we expected" \ - -c "HTTP/1.0 200 ok" - -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: psk: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O psk / psk_ke&psk_dhe_ke, fail - no common key material" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -2632,119 +2602,6 @@ run_test "TLS 1.3Client: PSK: psk: without pre-share key, with psk_ke and psk -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ -c "<= write client hello" -#GNUTLS-SERVER psk mode -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk: with matched key and identity, with psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk: with mismatched identity, with psk_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "skip pre_shared_key extensions" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - #OPENSSL-SERVER psk_all mode requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2753,7 +2610,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: psk_all: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O psk_all / psk_ke&psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ @@ -2771,7 +2628,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: psk_all: with matched key and identity, with psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O psk_all / psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ @@ -2789,7 +2646,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: psk_all: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O psk_all / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk_all" \ 0 \ @@ -2808,7 +2665,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: psk_all: with mismatched identity, with psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O psk_all / psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 0 \ @@ -2826,7 +2683,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: psk_all: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O psk_all / psk_ke&psk_dhe_ke, fail - no common key material" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2836,119 +2693,6 @@ run_test "TLS 1.3Client: PSK: psk_all: without pre-share key, with psk_ke and -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ -c "<= write client hello" -#GNUTLS-SERVER psk_all mode -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk_all: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk_all: with matched key and identity, with psk_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk_all: with matched key and identity, with psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk_all: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk_all: with mismatched identity, with psk_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk_all: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "skip pre_shared_key extensions" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - #OPENSSL-SERVER psk_ephemeral mode requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2957,7 +2701,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: psk_ephemeral: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O psk_ephemeral / psk_ke&psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -2975,7 +2719,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: psk_ephemeral: with matched key and identity, with psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O psk_ephemeral / psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -2993,7 +2737,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O psk_ephemeral / psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -3012,7 +2756,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O psk_ephemeral / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -3030,7 +2774,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: psk_ephemeral: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O psk_ephemeral / psk_ke&psk_dhe_ke, fail - no common key material" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -3040,138 +2784,6 @@ run_test "TLS 1.3Client: PSK: psk_ephemeral: without pre-share key, with psk_ -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ -c "<= write client hello" -#GNUTLS-SERVER psk_ephemeral mode -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk_ephemeral: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk_ephemeral: with matched key and identity, with psk_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk_ephemeral: with matched key and identity, with psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with psk_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk_ephemeral: with mismatched identity, with psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: psk_ephemeral: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "skip pre_shared_key extensions" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - #OPENSSL-SERVER ephemeral mode requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3180,7 +2792,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: ephemeral: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O ephemeral / psk_ke&psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -3197,7 +2809,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: ephemeral: with matched key and identity, with psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O ephemeral / psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -3214,7 +2826,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: ephemeral: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O ephemeral / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=ephemeral" \ 0 \ @@ -3231,7 +2843,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: ephemeral: with mismatched identity, with psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O ephemeral / psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ 0 \ @@ -3248,127 +2860,14 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: ephemeral: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O ephemeral / psk_ke&psk_dhe_ke, good - no common key mwterial, fallback to ephemeral" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ -c "=> write client hello" \ -c "skip psk_key_exchange_modes extension" \ - -c "<= write client hello" - -#GNUTLS-SERVER ephemeral mode -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: ephemeral: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -s "Not sending extension (PSK Key Exchange Modes/45)" \ -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: ephemeral: with matched key and identity, with psk_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -s "Not sending extension (PSK Key Exchange Modes/45)" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: ephemeral: with matched key and identity, with psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -s "Not sending extension (PSK Key Exchange Modes/45)" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: ephemeral: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -s "Not sending extension (PSK Key Exchange Modes/45)" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: ephemeral: with mismatched identity, with psk_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -s "Not sending extension (PSK Key Exchange Modes/45)" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: ephemeral: with mismatched identity, with psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -s "Not sending extension (PSK Key Exchange Modes/45)" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: ephemeral: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -s "Not sending extension (PSK Key Exchange Modes/45)" \ - -c "<= write client hello" \ - -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ - -c "HTTP/1.0 200 OK" + -c "HTTP/1.0 200 ok" #OPENSSL-SERVER ephemeral_all mode requires_openssl_tls1_3 @@ -3378,7 +2877,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: ephemeral_all: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O ephemeral_all / psk_ke&psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -3396,7 +2895,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: ephemeral_all: with matched key and identity, with psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O ephemeral_all / psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -3414,7 +2913,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: ephemeral_all: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O ephemeral_all / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=ephemeral_all" \ 0 \ @@ -3433,7 +2932,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: ephemeral_all: with mismatched identity, with psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O ephemeral_all / psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -3451,7 +2950,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: ephemeral_all: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O ephemeral_all / psk_ke&psk_dhe_ke, fail - no common material" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ @@ -3461,139 +2960,6 @@ run_test "TLS 1.3Client: PSK: ephemeral_all: without pre-share key, with psk_ -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ -c "<= write client hello" -#GNUTLS-SERVER ephemeral_all mode -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: ephemeral_all: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: ephemeral_all: with matched key and identity, with psk_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: ephemeral_all: with matched key and identity, with psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: ephemeral_all: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: ephemeral_all: with mismatched identity, with psk_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: ephemeral_all: with mismatched identity, with psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -s "Error in handshake: An illegal parameter has been received." - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: ephemeral_all: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "skip pre_shared_key extensions" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -c "<= write client hello" \ - -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ - -c "HTTP/1.0 200 OK" - #OPENSSL-SERVER all mode requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3602,7 +2968,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: all: with matched key and identity, with psk_ke and psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O all / psk_ke&psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -3620,7 +2986,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: all: with matched key and identity, with psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O all / psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -3638,7 +3004,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: all: with mismatched identity, with psk_ke and psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O all / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=all" \ 0 \ @@ -3657,7 +3023,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: all: with mismatched identity, with psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O all / psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ @@ -3675,7 +3041,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: PSK: all: without pre-share key, with psk_ke and psk_dhe_ke. m->O" \ +run_test "TLS 1.3Client: m->O all / psk_ke&psk_dhe_ke, fail - no common material, no fallback" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ @@ -3685,16 +3051,16 @@ run_test "TLS 1.3Client: PSK: all: without pre-share key, with psk_ke and psk -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ -c "<= write client hello" -#GNUTLS-SERVER all mode +#GNUTLS-SERVER psk mode requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: all: with matched key and identity, with psk_ke and psk_dhe_ke. m->G" \ +run_test "TLS 1.3Client: m->G psk / psk&ecdhe_psk&dhe_psk, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -3711,9 +3077,9 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: all: with matched key and identity, with psk_ke. m->G" \ +run_test "TLS 1.3Client: m->G psk / psk, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -3730,28 +3096,9 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: all: with matched key and identity, with psk_dhe_ke. m->G" \ +run_test "TLS 1.3Client: m->G psk / ecdhe_psk&dhe_psk, fail - no common kex mode" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: all: with mismatched identity, with psk_ke and psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -3768,9 +3115,9 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: all: with mismatched identity, with psk_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ +run_test "TLS 1.3Client: m->G psk / psk&ecdhe_psk&dhe_psk, fail - no common identity" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -3779,7 +3126,7 @@ run_test "TLS 1.3Client: PSK: all: with mismatched identity, with psk_ke. m-> -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -s "Error in handshake: An illegal parameter has been received." + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 @@ -3787,9 +3134,46 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: all: with mismatched identity, with psk_dhe_ke. m->G" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ +run_test "TLS 1.3Client: m->G psk / psk, fail - no common identity" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G psk / ecdhe_psk&dhe_psk, fail - no common material" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "skip pre_shared_key extensions" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -c "<= write client hello" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" + +#GNUTLS-SERVER psk_all mode +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G psk_all / psk&ecdhe_psk&dhe_psk, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -3806,7 +3190,358 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: PSK: all: without pre-share key, with psk_ke and psk_dhe_ke. m->G" \ +run_test "TLS 1.3Client: m->G psk_all / psk, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G psk_all / ecdhe_psk&dhe_psk, fail - no fallback" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G psk_all / psk&ecdhe_psk&dhe_psk, fail - no common identity" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G psk_all / psk, fail - no common identity" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G psk_all / psk&ecdhe_psk&dhe_psk, fail - no common material" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "skip pre_shared_key extensions" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -c "<= write client hello" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" + +#GNUTLS-SERVER psk_ephemeral mode +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G psk_ephemeral / psk&ecdhe_psk&dhe_psk, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G psk_ephemeral / psk, fail - no common kex mode" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G psk_ephemeral / ecdhe_psk&dhe_psk, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G psk_ephemeral / ecdhe_psk&dhe_psk, fail - no common material" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "skip pre_shared_key extensions" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -c "<= write client hello" \ + -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" + +#GNUTLS-SERVER ephemeral mode +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G ephemeral / psk&ecdhe_psk&dhe_psk, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "skip psk_key_exchange_modes extension" \ + -s "Not sending extension (PSK Key Exchange Modes/45)" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G ephemeral / psk, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "skip psk_key_exchange_modes extension" \ + -s "Not sending extension (PSK Key Exchange Modes/45)" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G ephemeral / ecdhe_psk&dhe_psk, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + 0 \ + -c "=> write client hello" \ + -c "skip psk_key_exchange_modes extension" \ + -s "Not sending extension (PSK Key Exchange Modes/45)" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +#GNUTLS-SERVER ephemeral_all mode +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G ephemeral_all / psk&ecdhe_psk&dhe_psk, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G ephemeral_all / psk, good - fallback to ephemeral" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G ephemeral_all / ecdhe_psk&dhe_psk, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G ephemeral_all / ecdhe_psk&dhe_psk, good - no common material, fallback to ephemeral" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "skip pre_shared_key extensions" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -c "<= write client hello" \ + -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ + -c "HTTP/1.0 200 OK" + +#GNUTLS-SERVER all mode +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G all / psk&ecdhe_psk&dhe_psk, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G all / psk, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G all / ecdhe_psk&dhe_psk, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + 0 \ + -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "Parsing extension 'PSK Key Exchange Modes/45'" \ + -s "Parsing extension 'Pre Shared Key/41'" \ + -c "<= write client hello" \ + -c "HTTP/1.0 200 OK" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 +requires_gnutls_next_no_ticket +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3Client: m->G all / ecdhe_psk&dhe_psk, good - no common material, fallback to ephemeral" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ From d7dcc4274be1d2dbc64855e44961e58bdf79ad26 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 31 Aug 2022 03:38:25 +0000 Subject: [PATCH 0388/1028] Unified the test title of psk cases Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 264 ++++++++++++------------- 1 file changed, 132 insertions(+), 132 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 762b619528..d19618a534 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1638,7 +1638,7 @@ run_test "TLS 1.3 G->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk / psk, good" \ +run_test "TLS 1.3: m->m psk / psk, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ @@ -1650,7 +1650,7 @@ run_test "TLS 1.3Client: m->m psk / psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk / psk, fail - no common identity" \ +run_test "TLS 1.3: m->m psk / psk, fail - no common identity" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ @@ -1663,7 +1663,7 @@ run_test "TLS 1.3Client: m->m psk / psk, fail - no common identity" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk / psk, fail - no common psk" \ +run_test "TLS 1.3: m->m psk / psk, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -1674,7 +1674,7 @@ run_test "TLS 1.3Client: m->m psk / psk, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk / psk_ephemeral, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m psk / psk_ephemeral, fail - no common key exchange mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -1686,7 +1686,7 @@ run_test "TLS 1.3Client: m->m psk / psk_ephemeral, fail - no common key excha requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk / ephemeral, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m psk / ephemeral, fail - no common key exchange mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -1698,7 +1698,7 @@ run_test "TLS 1.3Client: m->m psk / ephemeral, fail - no common key exchange requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk / ephemeral_all, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m psk / ephemeral_all, fail - no common key exchange mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -1710,7 +1710,7 @@ run_test "TLS 1.3Client: m->m psk / ephemeral_all, fail - no common key excha requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk / psk_all, good" \ +run_test "TLS 1.3: m->m psk / psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ @@ -1722,7 +1722,7 @@ run_test "TLS 1.3Client: m->m psk / psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk / psk_all, fail - no common identity" \ +run_test "TLS 1.3: m->m psk / psk_all, fail - no common identity" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ @@ -1735,7 +1735,7 @@ run_test "TLS 1.3Client: m->m psk / psk_all, fail - no common identity" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk / psk_all, fail - no common psk" \ +run_test "TLS 1.3: m->m psk / psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -1746,7 +1746,7 @@ run_test "TLS 1.3Client: m->m psk / psk_all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk / all, good" \ +run_test "TLS 1.3: m->m psk / all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ @@ -1758,7 +1758,7 @@ run_test "TLS 1.3Client: m->m psk / all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk / all, fail - no common identity" \ +run_test "TLS 1.3: m->m psk / all, fail - no common identity" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ @@ -1771,7 +1771,7 @@ run_test "TLS 1.3Client: m->m psk / all, fail - no common identity" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk / all, fail - no common psk" \ +run_test "TLS 1.3: m->m psk / all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -1783,7 +1783,7 @@ run_test "TLS 1.3Client: m->m psk / all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_ephemeral / psk, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m psk_ephemeral / psk, fail - no common key exchange mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1795,7 +1795,7 @@ run_test "TLS 1.3Client: m->m psk_ephemeral / psk, fail - no common key excha requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_ephemeral / psk_ephemeral, good" \ +run_test "TLS 1.3: m->m psk_ephemeral / psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -1807,7 +1807,7 @@ run_test "TLS 1.3Client: m->m psk_ephemeral / psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_ephemeral / psk_ephemeral, fail - no common identity" \ +run_test "TLS 1.3: m->m psk_ephemeral / psk_ephemeral, fail - no common identity" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1820,7 +1820,7 @@ run_test "TLS 1.3Client: m->m psk_ephemeral / psk_ephemeral, fail - no common requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_ephemeral / psk_ephemeral, fail - no common psk" \ +run_test "TLS 1.3: m->m psk_ephemeral / psk_ephemeral, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1831,7 +1831,7 @@ run_test "TLS 1.3Client: m->m psk_ephemeral / psk_ephemeral, fail - no common requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_ephemeral / ephemeral, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m psk_ephemeral / ephemeral, fail - no common key exchange mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1843,7 +1843,7 @@ run_test "TLS 1.3Client: m->m psk_ephemeral / ephemeral, fail - no common key requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_ephemeral / ephemeral_all, good" \ +run_test "TLS 1.3: m->m psk_ephemeral / ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -1855,7 +1855,7 @@ run_test "TLS 1.3Client: m->m psk_ephemeral / ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_ephemeral / ephemeral_all, fail - no common identity" \ +run_test "TLS 1.3: m->m psk_ephemeral / ephemeral_all, fail - no common identity" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1868,7 +1868,7 @@ run_test "TLS 1.3Client: m->m psk_ephemeral / ephemeral_all, fail - no common requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_ephemeral / ephemeral_all, fail - no common psk" \ +run_test "TLS 1.3: m->m psk_ephemeral / ephemeral_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1879,7 +1879,7 @@ run_test "TLS 1.3Client: m->m psk_ephemeral / ephemeral_all, fail - no common requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_ephemeral / psk_all, good" \ +run_test "TLS 1.3: m->m psk_ephemeral / psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -1891,7 +1891,7 @@ run_test "TLS 1.3Client: m->m psk_ephemeral / psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_ephemeral / psk_all, fail - no common identity" \ +run_test "TLS 1.3: m->m psk_ephemeral / psk_all, fail - no common identity" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1904,7 +1904,7 @@ run_test "TLS 1.3Client: m->m psk_ephemeral / psk_all, fail - no common ident requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_ephemeral / psk_all, fail - no common psk" \ +run_test "TLS 1.3: m->m psk_ephemeral / psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1915,7 +1915,7 @@ run_test "TLS 1.3Client: m->m psk_ephemeral / psk_all, fail - no common psk" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_ephemeral / all, good" \ +run_test "TLS 1.3: m->m psk_ephemeral / all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -1927,7 +1927,7 @@ run_test "TLS 1.3Client: m->m psk_ephemeral / all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_ephemeral / all, fail - no common identity" \ +run_test "TLS 1.3: m->m psk_ephemeral / all, fail - no common identity" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1940,7 +1940,7 @@ run_test "TLS 1.3Client: m->m psk_ephemeral / all, fail - no common identity" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_ephemeral / all, fail - no common psk" \ +run_test "TLS 1.3: m->m psk_ephemeral / all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1952,7 +1952,7 @@ run_test "TLS 1.3Client: m->m psk_ephemeral / all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral / psk, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m ephemeral / psk, fail - no common key exchange mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 1 \ @@ -1961,7 +1961,7 @@ run_test "TLS 1.3Client: m->m ephemeral / psk, fail - no common key exchange requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral / psk_ephemeral, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m ephemeral / psk_ephemeral, fail - no common key exchange mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 1 \ @@ -1970,7 +1970,7 @@ run_test "TLS 1.3Client: m->m ephemeral / psk_ephemeral, fail - no common key requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral / ephemeral, good" \ +run_test "TLS 1.3: m->m ephemeral / ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -1979,7 +1979,7 @@ run_test "TLS 1.3Client: m->m ephemeral / ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral / ephemeral_all, good" \ +run_test "TLS 1.3: m->m ephemeral / ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -1988,7 +1988,7 @@ run_test "TLS 1.3Client: m->m ephemeral / ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral / psk_all, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m ephemeral / psk_all, fail - no common key exchange mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 1 \ @@ -1997,7 +1997,7 @@ run_test "TLS 1.3Client: m->m ephemeral / psk_all, fail - no common key excha requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral / all, good" \ +run_test "TLS 1.3: m->m ephemeral / all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -2007,7 +2007,7 @@ run_test "TLS 1.3Client: m->m ephemeral / all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral_all / psk, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m ephemeral_all / psk, fail - no common key exchange mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ @@ -2019,7 +2019,7 @@ run_test "TLS 1.3Client: m->m ephemeral_all / psk, fail - no common key excha requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral_all / psk_ephemeral, good" \ +run_test "TLS 1.3: m->m ephemeral_all / psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2031,7 +2031,7 @@ run_test "TLS 1.3Client: m->m ephemeral_all / psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral_all / psk_ephemeral, fail - no common identity" \ +run_test "TLS 1.3: m->m ephemeral_all / psk_ephemeral, fail - no common identity" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2044,7 +2044,7 @@ run_test "TLS 1.3Client: m->m ephemeral_all / psk_ephemeral, fail - no common requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral_all / psk_ephemeral, fail - no common psk" \ +run_test "TLS 1.3: m->m ephemeral_all / psk_ephemeral, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2055,7 +2055,7 @@ run_test "TLS 1.3Client: m->m ephemeral_all / psk_ephemeral, fail - no common requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral_all / ephemeral, good" \ +run_test "TLS 1.3: m->m ephemeral_all / ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2068,7 +2068,7 @@ run_test "TLS 1.3Client: m->m ephemeral_all / ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral_all / ephemeral_all, good" \ +run_test "TLS 1.3: m->m ephemeral_all / ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2080,7 +2080,7 @@ run_test "TLS 1.3Client: m->m ephemeral_all / ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral_all / ephemeral_all, good - fallback to ephemeral" \ +run_test "TLS 1.3: m->m ephemeral_all / ephemeral_all, good - fallback to ephemeral" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2093,7 +2093,7 @@ run_test "TLS 1.3Client: m->m ephemeral_all / ephemeral_all, good - fallback requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral_all / psk_all, good" \ +run_test "TLS 1.3: m->m ephemeral_all / psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2105,7 +2105,7 @@ run_test "TLS 1.3Client: m->m ephemeral_all / psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral_all / psk_all, fail - no common identity" \ +run_test "TLS 1.3: m->m ephemeral_all / psk_all, fail - no common identity" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 1 \ @@ -2118,7 +2118,7 @@ run_test "TLS 1.3Client: m->m ephemeral_all / psk_all, fail - no common ident requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral_all / psk_all, fail - no common psk" \ +run_test "TLS 1.3: m->m ephemeral_all / psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ @@ -2129,7 +2129,7 @@ run_test "TLS 1.3Client: m->m ephemeral_all / psk_all, fail - no common psk" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral_all / all, good" \ +run_test "TLS 1.3: m->m ephemeral_all / all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2141,7 +2141,7 @@ run_test "TLS 1.3Client: m->m ephemeral_all / all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral_all / all, fail - no common identity" \ +run_test "TLS 1.3: m->m ephemeral_all / all, fail - no common identity" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2154,7 +2154,7 @@ run_test "TLS 1.3Client: m->m ephemeral_all / all, fail - no common identity" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m ephemeral_all / all, fail - no common psk" \ +run_test "TLS 1.3: m->m ephemeral_all / all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2166,7 +2166,7 @@ run_test "TLS 1.3Client: m->m ephemeral_all / all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_all / psk, good" \ +run_test "TLS 1.3: m->m psk_all / psk, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ @@ -2178,7 +2178,7 @@ run_test "TLS 1.3Client: m->m psk_all / psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_all / psk, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m psk_all / psk, fail - no common key exchange mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2190,7 +2190,7 @@ run_test "TLS 1.3Client: m->m psk_all / psk, fail - no common key exchange mo requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_all / psk, fail - no common psk" \ +run_test "TLS 1.3: m->m psk_all / psk, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2202,7 +2202,7 @@ run_test "TLS 1.3Client: m->m psk_all / psk, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_all / psk_ephemeral, good" \ +run_test "TLS 1.3: m->m psk_all / psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ @@ -2214,7 +2214,7 @@ run_test "TLS 1.3Client: m->m psk_all / psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_all / psk_ephemeral, fail - no common identity" \ +run_test "TLS 1.3: m->m psk_all / psk_ephemeral, fail - no common identity" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2227,7 +2227,7 @@ run_test "TLS 1.3Client: m->m psk_all / psk_ephemeral, fail - no common ident requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_all / psk_ephemeral, fail - no common psk" \ +run_test "TLS 1.3: m->m psk_all / psk_ephemeral, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2238,7 +2238,7 @@ run_test "TLS 1.3Client: m->m psk_all / psk_ephemeral, fail - no common psk" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_all / ephemeral, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m psk_all / ephemeral, fail - no common key exchange mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2250,7 +2250,7 @@ run_test "TLS 1.3Client: m->m psk_all / ephemeral, fail - no common key excha requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_all / ephemeral_all, good" \ +run_test "TLS 1.3: m->m psk_all / ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ @@ -2262,7 +2262,7 @@ run_test "TLS 1.3Client: m->m psk_all / ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_all / ephemeral_all, fail - no common identity" \ +run_test "TLS 1.3: m->m psk_all / ephemeral_all, fail - no common identity" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2275,7 +2275,7 @@ run_test "TLS 1.3Client: m->m psk_all / ephemeral_all, fail - no common ident requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_all / ephemeral_all, good - no common psk" \ +run_test "TLS 1.3: m->m psk_all / ephemeral_all, good - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2286,7 +2286,7 @@ run_test "TLS 1.3Client: m->m psk_all / ephemeral_all, good - no common psk" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_all / psk_all, good" \ +run_test "TLS 1.3: m->m psk_all / psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ @@ -2298,7 +2298,7 @@ run_test "TLS 1.3Client: m->m psk_all / psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_all / psk_all, fail - no common identity" \ +run_test "TLS 1.3: m->m psk_all / psk_all, fail - no common identity" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2311,7 +2311,7 @@ run_test "TLS 1.3Client: m->m psk_all / psk_all, fail - no common identity" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_all / psk_all, fail - no common psk" \ +run_test "TLS 1.3: m->m psk_all / psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2322,7 +2322,7 @@ run_test "TLS 1.3Client: m->m psk_all / psk_all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_all / all, good" \ +run_test "TLS 1.3: m->m psk_all / all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ @@ -2334,7 +2334,7 @@ run_test "TLS 1.3Client: m->m psk_all / all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_all / all, fail - no common identity" \ +run_test "TLS 1.3: m->m psk_all / all, fail - no common identity" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2347,7 +2347,7 @@ run_test "TLS 1.3Client: m->m psk_all / all, fail - no common identity" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m psk_all / all, fail - no common psk" \ +run_test "TLS 1.3: m->m psk_all / all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2359,7 +2359,7 @@ run_test "TLS 1.3Client: m->m psk_all / all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m all / psk, good" \ +run_test "TLS 1.3: m->m all / psk, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -2371,7 +2371,7 @@ run_test "TLS 1.3Client: m->m all / psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m all / psk, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m all / psk, fail - no common key exchange mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ @@ -2383,7 +2383,7 @@ run_test "TLS 1.3Client: m->m all / psk, fail - no common key exchange mode" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m all / psk, fail - no common psk" \ +run_test "TLS 1.3: m->m all / psk, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ @@ -2395,7 +2395,7 @@ run_test "TLS 1.3Client: m->m all / psk, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m all / psk_ephemeral, good" \ +run_test "TLS 1.3: m->m all / psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -2407,7 +2407,7 @@ run_test "TLS 1.3Client: m->m all / psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m all / psk_ephemeral, fail - no common identity" \ +run_test "TLS 1.3: m->m all / psk_ephemeral, fail - no common identity" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ @@ -2420,7 +2420,7 @@ run_test "TLS 1.3Client: m->m all / psk_ephemeral, fail - no common identity" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m all / psk_ephemeral, fail - no common psk" \ +run_test "TLS 1.3: m->m all / psk_ephemeral, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ @@ -2431,7 +2431,7 @@ run_test "TLS 1.3Client: m->m all / psk_ephemeral, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m all / ephemeral, good" \ +run_test "TLS 1.3: m->m all / ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -2443,7 +2443,7 @@ run_test "TLS 1.3Client: m->m all / ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m all / ephemeral_all, good" \ +run_test "TLS 1.3: m->m all / ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -2455,7 +2455,7 @@ run_test "TLS 1.3Client: m->m all / ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m all / ephemeral_all, good - no common identity" \ +run_test "TLS 1.3: m->m all / ephemeral_all, good - no common identity" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ @@ -2468,7 +2468,7 @@ run_test "TLS 1.3Client: m->m all / ephemeral_all, good - no common identity" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m all / ephemeral_all, good - no common psk" \ +run_test "TLS 1.3: m->m all / ephemeral_all, good - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -2479,7 +2479,7 @@ run_test "TLS 1.3Client: m->m all / ephemeral_all, good - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m all / psk_all, good" \ +run_test "TLS 1.3: m->m all / psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -2491,7 +2491,7 @@ run_test "TLS 1.3Client: m->m all / psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m all / psk_all, fail - no common identity" \ +run_test "TLS 1.3: m->m all / psk_all, fail - no common identity" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ @@ -2504,7 +2504,7 @@ run_test "TLS 1.3Client: m->m all / psk_all, fail - no common identity" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m all / psk_all, fail - no common psk" \ +run_test "TLS 1.3: m->m all / psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ @@ -2515,7 +2515,7 @@ run_test "TLS 1.3Client: m->m all / psk_all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m all / all, good" \ +run_test "TLS 1.3: m->m all / all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -2527,7 +2527,7 @@ run_test "TLS 1.3Client: m->m all / all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m all / all, good - no common identity, fallback to ephemeral" \ +run_test "TLS 1.3: m->m all / all, good - no common identity, fallback to ephemeral" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ @@ -2540,7 +2540,7 @@ run_test "TLS 1.3Client: m->m all / all, good - no common identity, fallback requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->m all / all, good - no common psk, fallback to ephemeral" \ +run_test "TLS 1.3: m->m all / all, good - no common psk, fallback to ephemeral" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -2556,7 +2556,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O psk / psk_ke&psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O psk / psk_ke&psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ @@ -2574,7 +2574,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O psk / psk_dhe_ke, fail - no common kex mode" \ +run_test "TLS 1.3: m->O psk / psk_dhe_ke, fail - no common kex mode" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -2592,7 +2592,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O psk / psk_ke&psk_dhe_ke, fail - no common key material" \ +run_test "TLS 1.3: m->O psk / psk_ke&psk_dhe_ke, fail - no common key material" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -2610,7 +2610,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O psk_all / psk_ke&psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O psk_all / psk_ke&psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ @@ -2628,7 +2628,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O psk_all / psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O psk_all / psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ @@ -2646,7 +2646,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O psk_all / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O psk_all / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk_all" \ 0 \ @@ -2665,7 +2665,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O psk_all / psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O psk_all / psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 0 \ @@ -2683,7 +2683,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O psk_all / psk_ke&psk_dhe_ke, fail - no common key material" \ +run_test "TLS 1.3: m->O psk_all / psk_ke&psk_dhe_ke, fail - no common key material" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2701,7 +2701,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O psk_ephemeral / psk_ke&psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O psk_ephemeral / psk_ke&psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -2719,7 +2719,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O psk_ephemeral / psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O psk_ephemeral / psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -2737,7 +2737,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O psk_ephemeral / psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O psk_ephemeral / psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -2756,7 +2756,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O psk_ephemeral / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O psk_ephemeral / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -2774,7 +2774,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O psk_ephemeral / psk_ke&psk_dhe_ke, fail - no common key material" \ +run_test "TLS 1.3: m->O psk_ephemeral / psk_ke&psk_dhe_ke, fail - no common key material" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -2792,7 +2792,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O ephemeral / psk_ke&psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O ephemeral / psk_ke&psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -2809,7 +2809,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O ephemeral / psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O ephemeral / psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -2826,7 +2826,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O ephemeral / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O ephemeral / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=ephemeral" \ 0 \ @@ -2843,7 +2843,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O ephemeral / psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O ephemeral / psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ 0 \ @@ -2860,7 +2860,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O ephemeral / psk_ke&psk_dhe_ke, good - no common key mwterial, fallback to ephemeral" \ +run_test "TLS 1.3: m->O ephemeral / psk_ke&psk_dhe_ke, good - no common key mwterial, fallback to ephemeral" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -2877,7 +2877,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O ephemeral_all / psk_ke&psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O ephemeral_all / psk_ke&psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2895,7 +2895,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O ephemeral_all / psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O ephemeral_all / psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2913,7 +2913,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O ephemeral_all / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O ephemeral_all / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2932,7 +2932,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O ephemeral_all / psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O ephemeral_all / psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2950,7 +2950,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O ephemeral_all / psk_ke&psk_dhe_ke, fail - no common material" \ +run_test "TLS 1.3: m->O ephemeral_all / psk_ke&psk_dhe_ke, fail - no common material" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ @@ -2968,7 +2968,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O all / psk_ke&psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O all / psk_ke&psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -2986,7 +2986,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O all / psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O all / psk_dhe_ke, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -3004,7 +3004,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O all / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O all / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=all" \ 0 \ @@ -3023,7 +3023,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O all / psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O all / psk_dhe_ke, good - no common identity, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ @@ -3041,7 +3041,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3Client: m->O all / psk_ke&psk_dhe_ke, fail - no common material, no fallback" \ +run_test "TLS 1.3: m->O all / psk_ke&psk_dhe_ke, fail - no common material, no fallback" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ @@ -3058,7 +3058,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G psk / psk&ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G psk / psk&ecdhe_psk&dhe_psk, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ @@ -3077,7 +3077,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G psk / psk, good" \ +run_test "TLS 1.3: m->G psk / psk, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ @@ -3096,7 +3096,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G psk / ecdhe_psk&dhe_psk, fail - no common kex mode" \ +run_test "TLS 1.3: m->G psk / ecdhe_psk&dhe_psk, fail - no common kex mode" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -3115,7 +3115,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G psk / psk&ecdhe_psk&dhe_psk, fail - no common identity" \ +run_test "TLS 1.3: m->G psk / psk&ecdhe_psk&dhe_psk, fail - no common identity" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ @@ -3134,7 +3134,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G psk / psk, fail - no common identity" \ +run_test "TLS 1.3: m->G psk / psk, fail - no common identity" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ @@ -3153,7 +3153,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G psk / ecdhe_psk&dhe_psk, fail - no common material" \ +run_test "TLS 1.3: m->G psk / ecdhe_psk&dhe_psk, fail - no common material" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -3171,7 +3171,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G psk_all / psk&ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G psk_all / psk&ecdhe_psk&dhe_psk, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ @@ -3190,7 +3190,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G psk_all / psk, good" \ +run_test "TLS 1.3: m->G psk_all / psk, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ @@ -3209,7 +3209,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G psk_all / ecdhe_psk&dhe_psk, fail - no fallback" \ +run_test "TLS 1.3: m->G psk_all / ecdhe_psk&dhe_psk, fail - no fallback" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -3228,7 +3228,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G psk_all / psk&ecdhe_psk&dhe_psk, fail - no common identity" \ +run_test "TLS 1.3: m->G psk_all / psk&ecdhe_psk&dhe_psk, fail - no common identity" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -3247,7 +3247,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G psk_all / psk, fail - no common identity" \ +run_test "TLS 1.3: m->G psk_all / psk, fail - no common identity" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -3266,7 +3266,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G psk_all / psk&ecdhe_psk&dhe_psk, fail - no common material" \ +run_test "TLS 1.3: m->G psk_all / psk&ecdhe_psk&dhe_psk, fail - no common material" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -3284,7 +3284,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G psk_ephemeral / psk&ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G psk_ephemeral / psk&ecdhe_psk&dhe_psk, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -3303,7 +3303,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G psk_ephemeral / psk, fail - no common kex mode" \ +run_test "TLS 1.3: m->G psk_ephemeral / psk, fail - no common kex mode" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -3322,7 +3322,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G psk_ephemeral / ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G psk_ephemeral / ecdhe_psk&dhe_psk, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -3341,7 +3341,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G psk_ephemeral / ecdhe_psk&dhe_psk, fail - no common material" \ +run_test "TLS 1.3: m->G psk_ephemeral / ecdhe_psk&dhe_psk, fail - no common material" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -3359,7 +3359,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G ephemeral / psk&ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G ephemeral / psk&ecdhe_psk&dhe_psk, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -3375,7 +3375,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G ephemeral / psk, good" \ +run_test "TLS 1.3: m->G ephemeral / psk, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -3391,7 +3391,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G ephemeral / ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G ephemeral / ecdhe_psk&dhe_psk, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -3408,7 +3408,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G ephemeral_all / psk&ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G ephemeral_all / psk&ecdhe_psk&dhe_psk, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -3427,7 +3427,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G ephemeral_all / psk, good - fallback to ephemeral" \ +run_test "TLS 1.3: m->G ephemeral_all / psk, good - fallback to ephemeral" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -3446,7 +3446,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G ephemeral_all / ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G ephemeral_all / ecdhe_psk&dhe_psk, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -3465,7 +3465,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G ephemeral_all / ecdhe_psk&dhe_psk, good - no common material, fallback to ephemeral" \ +run_test "TLS 1.3: m->G ephemeral_all / ecdhe_psk&dhe_psk, good - no common material, fallback to ephemeral" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -3484,7 +3484,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G all / psk&ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G all / psk&ecdhe_psk&dhe_psk, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -3503,7 +3503,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G all / psk, good" \ +run_test "TLS 1.3: m->G all / psk, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -3522,7 +3522,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G all / ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G all / ecdhe_psk&dhe_psk, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -3541,7 +3541,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3Client: m->G all / ecdhe_psk&dhe_psk, good - no common material, fallback to ephemeral" \ +run_test "TLS 1.3: m->G all / ecdhe_psk&dhe_psk, good - no common material, fallback to ephemeral" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ From 3cbbbbcb08ec235edc7c8ab6e86138ab3881c4e5 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 31 Aug 2022 07:38:37 +0000 Subject: [PATCH 0389/1028] Shorten the description in psk m->m test cases Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 62 +++++++++++++------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index d19618a534..88f3b234e3 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1650,7 +1650,7 @@ run_test "TLS 1.3: m->m psk / psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / psk, fail - no common identity" \ +run_test "TLS 1.3: m->m psk / psk, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ @@ -1674,7 +1674,7 @@ run_test "TLS 1.3: m->m psk / psk, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / psk_ephemeral, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m psk / psk_ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -1686,7 +1686,7 @@ run_test "TLS 1.3: m->m psk / psk_ephemeral, fail - no common key exchange mo requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / ephemeral, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m psk / ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -1698,7 +1698,7 @@ run_test "TLS 1.3: m->m psk / ephemeral, fail - no common key exchange mode" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / ephemeral_all, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m psk / ephemeral_all, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -1722,7 +1722,7 @@ run_test "TLS 1.3: m->m psk / psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / psk_all, fail - no common identity" \ +run_test "TLS 1.3: m->m psk / psk_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ @@ -1758,7 +1758,7 @@ run_test "TLS 1.3: m->m psk / all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / all, fail - no common identity" \ +run_test "TLS 1.3: m->m psk / all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ @@ -1783,7 +1783,7 @@ run_test "TLS 1.3: m->m psk / all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / psk, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m psk_ephemeral / psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1807,7 +1807,7 @@ run_test "TLS 1.3: m->m psk_ephemeral / psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / psk_ephemeral, fail - no common identity" \ +run_test "TLS 1.3: m->m psk_ephemeral / psk_ephemeral, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1831,7 +1831,7 @@ run_test "TLS 1.3: m->m psk_ephemeral / psk_ephemeral, fail - no common psk" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / ephemeral, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m psk_ephemeral / ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1855,7 +1855,7 @@ run_test "TLS 1.3: m->m psk_ephemeral / ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / ephemeral_all, fail - no common identity" \ +run_test "TLS 1.3: m->m psk_ephemeral / ephemeral_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1891,7 +1891,7 @@ run_test "TLS 1.3: m->m psk_ephemeral / psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / psk_all, fail - no common identity" \ +run_test "TLS 1.3: m->m psk_ephemeral / psk_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1927,7 +1927,7 @@ run_test "TLS 1.3: m->m psk_ephemeral / all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / all, fail - no common identity" \ +run_test "TLS 1.3: m->m psk_ephemeral / all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1952,7 +1952,7 @@ run_test "TLS 1.3: m->m psk_ephemeral / all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral / psk, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m ephemeral / psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 1 \ @@ -1961,7 +1961,7 @@ run_test "TLS 1.3: m->m ephemeral / psk, fail - no common key exchange mode" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral / psk_ephemeral, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m ephemeral / psk_ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 1 \ @@ -1988,7 +1988,7 @@ run_test "TLS 1.3: m->m ephemeral / ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral / psk_all, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m ephemeral / psk_all, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 1 \ @@ -2007,7 +2007,7 @@ run_test "TLS 1.3: m->m ephemeral / all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all / psk, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m ephemeral_all / psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ @@ -2031,7 +2031,7 @@ run_test "TLS 1.3: m->m ephemeral_all / psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all / psk_ephemeral, fail - no common identity" \ +run_test "TLS 1.3: m->m ephemeral_all / psk_ephemeral, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2080,7 +2080,7 @@ run_test "TLS 1.3: m->m ephemeral_all / ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all / ephemeral_all, good - fallback to ephemeral" \ +run_test "TLS 1.3: m->m ephemeral_all/ephemeral_all,good,fallback to ephemeral" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2105,7 +2105,7 @@ run_test "TLS 1.3: m->m ephemeral_all / psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all / psk_all, fail - no common identity" \ +run_test "TLS 1.3: m->m ephemeral_all / psk_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 1 \ @@ -2141,7 +2141,7 @@ run_test "TLS 1.3: m->m ephemeral_all / all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all / all, fail - no common identity" \ +run_test "TLS 1.3: m->m ephemeral_all / all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2178,7 +2178,7 @@ run_test "TLS 1.3: m->m psk_all / psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / psk, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m psk_all / psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2214,7 +2214,7 @@ run_test "TLS 1.3: m->m psk_all / psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / psk_ephemeral, fail - no common identity" \ +run_test "TLS 1.3: m->m psk_all / psk_ephemeral, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2238,7 +2238,7 @@ run_test "TLS 1.3: m->m psk_all / psk_ephemeral, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / ephemeral, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m psk_all / ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2262,7 +2262,7 @@ run_test "TLS 1.3: m->m psk_all / ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / ephemeral_all, fail - no common identity" \ +run_test "TLS 1.3: m->m psk_all / ephemeral_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2298,7 +2298,7 @@ run_test "TLS 1.3: m->m psk_all / psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / psk_all, fail - no common identity" \ +run_test "TLS 1.3: m->m psk_all / psk_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2334,7 +2334,7 @@ run_test "TLS 1.3: m->m psk_all / all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / all, fail - no common identity" \ +run_test "TLS 1.3: m->m psk_all / all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2371,7 +2371,7 @@ run_test "TLS 1.3: m->m all / psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / psk, fail - no common key exchange mode" \ +run_test "TLS 1.3: m->m all / psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ @@ -2407,7 +2407,7 @@ run_test "TLS 1.3: m->m all / psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / psk_ephemeral, fail - no common identity" \ +run_test "TLS 1.3: m->m all / psk_ephemeral, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ @@ -2455,7 +2455,7 @@ run_test "TLS 1.3: m->m all / ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / ephemeral_all, good - no common identity" \ +run_test "TLS 1.3: m->m all / ephemeral_all, good - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ @@ -2491,7 +2491,7 @@ run_test "TLS 1.3: m->m all / psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / psk_all, fail - no common identity" \ +run_test "TLS 1.3: m->m all / psk_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ @@ -2527,7 +2527,7 @@ run_test "TLS 1.3: m->m all / all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / all, good - no common identity, fallback to ephemeral" \ +run_test "TLS 1.3: m->m all / all, good - no common id, fallback to ephemeral" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ From 2efece22a01f1df46f400d8f2a0ed7894fa46d61 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 1 Sep 2022 03:00:25 +0000 Subject: [PATCH 0390/1028] Refine the psk test cases for m->O Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 56 +++++++++++++------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 88f3b234e3..a8a8fed56f 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -2556,7 +2556,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk / psk_ke&psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O psk / all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ @@ -2574,7 +2574,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk / psk_dhe_ke, fail - no common kex mode" \ +run_test "TLS 1.3: m->O psk / ephemeral_all, fail - no common kex mode" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -2592,7 +2592,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk / psk_ke&psk_dhe_ke, fail - no common key material" \ +run_test "TLS 1.3: m->O psk / all, fail - key material mismatch" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -2610,7 +2610,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_all / psk_ke&psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O psk_all / all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ @@ -2628,7 +2628,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_all / psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O psk_all / ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ @@ -2646,7 +2646,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_all / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O psk_all/all,good,no common id,only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk_all" \ 0 \ @@ -2665,7 +2665,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_all / psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O psk_all/ephemeral_all,good,no common id,only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 0 \ @@ -2683,7 +2683,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_all / psk_ke&psk_dhe_ke, fail - no common key material" \ +run_test "TLS 1.3: m->O psk_all / all, fail - no common key material" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2701,7 +2701,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_ephemeral / psk_ke&psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O psk_ephemeral / all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -2719,7 +2719,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_ephemeral / psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O psk_ephemeral / ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -2737,7 +2737,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_ephemeral / psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O psk_ephemeral/dhe_all,good,no common id,only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -2756,7 +2756,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_ephemeral / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O psk_ephemeral/all,good,no common id,only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -2774,7 +2774,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_ephemeral / psk_ke&psk_dhe_ke, fail - no common key material" \ +run_test "TLS 1.3: m->O psk_ephemeral/all, fail,no common key material" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -2792,7 +2792,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral / psk_ke&psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O ephemeral / all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -2809,7 +2809,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral / psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O ephemeral / ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -2826,7 +2826,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O ephemeral / all, good,no common id, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=ephemeral" \ 0 \ @@ -2843,7 +2843,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral / psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O ephemeral / dhe_all, good - no common id, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ 0 \ @@ -2860,7 +2860,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral / psk_ke&psk_dhe_ke, good - no common key mwterial, fallback to ephemeral" \ +run_test "TLS 1.3: m->O ephemeral/all, good, psk mismatch, fallback to dhe" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -2877,7 +2877,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral_all / psk_ke&psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O ephemeral_all / all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2895,7 +2895,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral_all / psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O ephemeral_all / ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2913,7 +2913,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral_all / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O ephemeral_all/all, good,no common id, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2932,7 +2932,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral_all / psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O ephemeral_all/dhe_all, good,no common id, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2950,7 +2950,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral_all / psk_ke&psk_dhe_ke, fail - no common material" \ +run_test "TLS 1.3: m->O ephemeral_all/all, fail,no common material" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ @@ -2968,7 +2968,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O all / psk_ke&psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O all / all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -2986,7 +2986,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O all / psk_dhe_ke, good" \ +run_test "TLS 1.3: m->O all / ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -3004,7 +3004,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O all / psk_ke&psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O all/all, good, no common id, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=all" \ 0 \ @@ -3023,7 +3023,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O all / psk_dhe_ke, good - no common identity, only warning" \ +run_test "TLS 1.3: m->O all/dhe_all, good, no common id, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ @@ -3041,7 +3041,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O all / psk_ke&psk_dhe_ke, fail - no common material, no fallback" \ +run_test "TLS 1.3: m->O all/all, fail,no common material, no fallback" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ From edc35e7ffd2943d4429f0664e0cf24966d195044 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 1 Sep 2022 03:22:51 +0000 Subject: [PATCH 0391/1028] Refine the psk test cases for m->G Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 44 +++--- tests/ssl-opt.sh | 186 +------------------------ 2 files changed, 23 insertions(+), 207 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index a8a8fed56f..883473a391 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -3058,7 +3058,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk / psk&ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G psk / all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ @@ -3077,7 +3077,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk / psk, good" \ +run_test "TLS 1.3: m->G psk / psk_or_ephemeral, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ @@ -3096,7 +3096,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk / ecdhe_psk&dhe_psk, fail - no common kex mode" \ +run_test "TLS 1.3: m->G psk / ephemeral_all, fail - no common kex mode" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -3115,7 +3115,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk / psk&ecdhe_psk&dhe_psk, fail - no common identity" \ +run_test "TLS 1.3: m->G psk / all, fail - no common id" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ @@ -3134,7 +3134,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk / psk, fail - no common identity" \ +run_test "TLS 1.3: m->G psk / psk, fail - no common id" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ @@ -3153,7 +3153,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk / ecdhe_psk&dhe_psk, fail - no common material" \ +run_test "TLS 1.3: m->G psk / ephemeral_all, fail, no common material" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -3171,7 +3171,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_all / psk&ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G psk_all / all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ @@ -3209,7 +3209,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_all / ecdhe_psk&dhe_psk, fail - no fallback" \ +run_test "TLS 1.3: m->G psk_all / ephemeral_all, fail - no fallback" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -3228,7 +3228,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_all / psk&ecdhe_psk&dhe_psk, fail - no common identity" \ +run_test "TLS 1.3: m->G psk_all / all, fail - no common id" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -3247,7 +3247,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_all / psk, fail - no common identity" \ +run_test "TLS 1.3: m->G psk_all / psk, fail - no common id" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -3266,7 +3266,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_all / psk&ecdhe_psk&dhe_psk, fail - no common material" \ +run_test "TLS 1.3: m->G psk_all / ephemeral_all, fail, no common material" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -3284,7 +3284,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_ephemeral / psk&ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G psk_ephemeral / all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -3322,7 +3322,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_ephemeral / ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G psk_ephemeral / ephemeral_all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -3341,7 +3341,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_ephemeral / ecdhe_psk&dhe_psk, fail - no common material" \ +run_test "TLS 1.3: m->G psk_ephemeral/dhe_all, fail, key material mismatch" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -3359,7 +3359,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G ephemeral / psk&ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G ephemeral / all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -3391,7 +3391,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G ephemeral / ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G ephemeral / ephemeral_all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -3408,7 +3408,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G ephemeral_all / psk&ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G ephemeral_all / all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -3446,7 +3446,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G ephemeral_all / ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G ephemeral_all / ephemeral_all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -3465,7 +3465,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G ephemeral_all / ecdhe_psk&dhe_psk, good - no common material, fallback to ephemeral" \ +run_test "TLS 1.3: m->G dhe_all/dhe_all,good,psk mismatch,fallback to dhe" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -3484,7 +3484,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G all / psk&ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G all / all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -3522,7 +3522,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G all / ecdhe_psk&dhe_psk, good" \ +run_test "TLS 1.3: m->G all / ephemeral_all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -3541,7 +3541,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G all / ecdhe_psk&dhe_psk, good - no common material, fallback to ephemeral" \ +run_test "TLS 1.3: m->G all/dhe_all,good,key material mismatch,fallback to dhe" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index cd73c787f9..020d6dc29d 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12104,57 +12104,6 @@ run_test "TLS 1.3, default suite, PSK" \ -c "<= write client hello" \ -c "HTTP/1.0 200 OK" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK, psk_all" \ - "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK, psk_ephemeral" \ - "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK, ephemeral" \ - "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK, ephemeral_all" \ - "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - 0 \ - -c "=> write client hello" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_openssl_tls1_3 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE @@ -12171,68 +12120,6 @@ run_test "TLS 1.3, default suite, PSK - openssl" \ -c "<= write client hello" \ -c "HTTP/1.0 200 ok" -requires_openssl_tls1_3 -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK - openssli psk_all" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 ok" - -requires_openssl_tls1_3 -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK - openssl psk_ephemeral" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 ok" - -requires_openssl_tls1_3 -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK - openssl ephemeral" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 ok" - -requires_openssl_tls1_3 -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK - openssl ephemeral_all" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - 0 \ - -c "=> write client hello" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 ok" - requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -12240,7 +12127,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3, default suite, PSK - gnutls" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "=> write client hello" \ @@ -12252,77 +12139,6 @@ run_test "TLS 1.3, default suite, PSK - gnutls" \ -c "<= write client hello" \ -c "HTTP/1.0 200 OK" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK - gnutls psk_all" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK - gnutls psk_ephemeral" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+ECDHE-PSK:+DHE-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK - gnutls ephemeral" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK - gnutls ephemeral_all" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - for i in opt-testcases/*.sh do TEST_SUITE_NAME=${i##*/} From 5001bfc619847adf29b87cbd0bbd7fbbad13e3c5 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 7 Sep 2022 09:30:03 +0000 Subject: [PATCH 0392/1028] Add key exchange mode log in client side Signed-off-by: Xiaokang Qian --- library/ssl_tls13_client.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index e10937be5d..4571ada0de 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1710,6 +1710,12 @@ static int ssl_tls13_postprocess_server_hello( mbedtls_ssl_context *ssl ) goto cleanup; } + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "Server selected key exchange mode: %s", + handshake->key_exchange_mode == 1 ? "psk" : + (handshake->key_exchange_mode == 2 ? "ephemeral" : + "psk_ephemeral")) ); + /* Start the TLS 1.3 key schedule: Set the PSK and derive early secret. * * TODO: We don't have to do this in case we offered 0-RTT and the From 8f7d7c7aafde1934c728a40d8f7bf11eeee85c8a Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 7 Sep 2022 10:10:16 +0000 Subject: [PATCH 0393/1028] Address comments about description of psk cases Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 373 ++++++++++++++----------- 1 file changed, 214 insertions(+), 159 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 883473a391..62314e4772 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1638,19 +1638,20 @@ run_test "TLS 1.3 G->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / psk, good" \ +run_test "TLS 1.3: m->m: psk/psk, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / psk, fail - no common id" \ +run_test "TLS 1.3: m->m: psk/psk, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ @@ -1663,7 +1664,7 @@ run_test "TLS 1.3: m->m psk / psk, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / psk, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk/psk, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -1674,7 +1675,7 @@ run_test "TLS 1.3: m->m psk / psk, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / psk_ephemeral, fail - no common kex mode" \ +run_test "TLS 1.3: m->m: psk/psk_ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -1686,7 +1687,7 @@ run_test "TLS 1.3: m->m psk / psk_ephemeral, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / ephemeral, fail - no common kex mode" \ +run_test "TLS 1.3: m->m: psk/ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -1698,7 +1699,7 @@ run_test "TLS 1.3: m->m psk / ephemeral, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / ephemeral_all, fail - no common kex mode" \ +run_test "TLS 1.3: m->m: psk/ephemeral_all, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -1710,19 +1711,20 @@ run_test "TLS 1.3: m->m psk / ephemeral_all, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / psk_all, good" \ +run_test "TLS 1.3: m->m: psk/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / psk_all, fail - no common id" \ +run_test "TLS 1.3: m->m: psk/psk_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ @@ -1735,7 +1737,7 @@ run_test "TLS 1.3: m->m psk / psk_all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / psk_all, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk/psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -1746,19 +1748,20 @@ run_test "TLS 1.3: m->m psk / psk_all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / all, good" \ +run_test "TLS 1.3: m->m: psk/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / all, fail - no common id" \ +run_test "TLS 1.3: m->m: psk/all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ @@ -1771,7 +1774,7 @@ run_test "TLS 1.3: m->m psk / all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk / all, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk/all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -1783,7 +1786,7 @@ run_test "TLS 1.3: m->m psk / all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / psk, fail - no common kex mode" \ +run_test "TLS 1.3: m->m: psk_ephemeral/psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1795,19 +1798,20 @@ run_test "TLS 1.3: m->m psk_ephemeral / psk, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / psk_ephemeral, good" \ +run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / psk_ephemeral, fail - no common id" \ +run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1820,7 +1824,7 @@ run_test "TLS 1.3: m->m psk_ephemeral / psk_ephemeral, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / psk_ephemeral, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1831,7 +1835,7 @@ run_test "TLS 1.3: m->m psk_ephemeral / psk_ephemeral, fail - no common psk" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / ephemeral, fail - no common kex mode" \ +run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1843,19 +1847,20 @@ run_test "TLS 1.3: m->m psk_ephemeral / ephemeral, fail - no common kex mode" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / ephemeral_all, good" \ +run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / ephemeral_all, fail - no common id" \ +run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1868,7 +1873,7 @@ run_test "TLS 1.3: m->m psk_ephemeral / ephemeral_all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / ephemeral_all, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1879,19 +1884,20 @@ run_test "TLS 1.3: m->m psk_ephemeral / ephemeral_all, fail - no common psk" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / psk_all, good" \ +run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / psk_all, fail - no common id" \ +run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1904,7 +1910,7 @@ run_test "TLS 1.3: m->m psk_ephemeral / psk_all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / psk_all, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1915,19 +1921,20 @@ run_test "TLS 1.3: m->m psk_ephemeral / psk_all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / all, good" \ +run_test "TLS 1.3: m->m: psk_ephemeral/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / all, fail - no common id" \ +run_test "TLS 1.3: m->m: psk_ephemeral/all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1940,7 +1947,7 @@ run_test "TLS 1.3: m->m psk_ephemeral / all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_ephemeral / all, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk_ephemeral/all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1952,7 +1959,7 @@ run_test "TLS 1.3: m->m psk_ephemeral / all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral / psk, fail - no common kex mode" \ +run_test "TLS 1.3: m->m: ephemeral/psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 1 \ @@ -1961,7 +1968,7 @@ run_test "TLS 1.3: m->m ephemeral / psk, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral / psk_ephemeral, fail - no common kex mode" \ +run_test "TLS 1.3: m->m: ephemeral/psk_ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 1 \ @@ -1970,25 +1977,27 @@ run_test "TLS 1.3: m->m ephemeral / psk_ephemeral, fail - no common kex mode" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral / ephemeral, good" \ +run_test "TLS 1.3: m->m: ephemeral/ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ + -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral / ephemeral_all, good" \ +run_test "TLS 1.3: m->m: ephemeral/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ + -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral / psk_all, fail - no common kex mode" \ +run_test "TLS 1.3: m->m: ephemeral/psk_all, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 1 \ @@ -1997,17 +2006,18 @@ run_test "TLS 1.3: m->m ephemeral / psk_all, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral / all, good" \ +run_test "TLS 1.3: m->m: ephemeral/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ + -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" # ephemeral_all mode in client requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all / psk, fail - no common kex mode" \ +run_test "TLS 1.3: m->m: ephemeral_all/psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ @@ -2019,19 +2029,20 @@ run_test "TLS 1.3: m->m ephemeral_all / psk, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all / psk_ephemeral, good" \ +run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all / psk_ephemeral, fail - no common id" \ +run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2044,7 +2055,7 @@ run_test "TLS 1.3: m->m ephemeral_all / psk_ephemeral, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all / psk_ephemeral, fail - no common psk" \ +run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2055,7 +2066,7 @@ run_test "TLS 1.3: m->m ephemeral_all / psk_ephemeral, fail - no common psk" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all / ephemeral, good" \ +run_test "TLS 1.3: m->m: ephemeral_all/ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2063,24 +2074,26 @@ run_test "TLS 1.3: m->m ephemeral_all / ephemeral, good" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -s "key exchange mode: ephemeral" \ + -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all / ephemeral_all, good" \ +run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all/ephemeral_all,good,fallback to ephemeral" \ +run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,fallback to ephemeral" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2093,19 +2106,20 @@ run_test "TLS 1.3: m->m ephemeral_all/ephemeral_all,good,fallback to ephemera requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all / psk_all, good" \ +run_test "TLS 1.3: m->m: ephemeral_all/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all / psk_all, fail - no common id" \ +run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 1 \ @@ -2118,7 +2132,7 @@ run_test "TLS 1.3: m->m ephemeral_all / psk_all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all / psk_all, fail - no common psk" \ +run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ @@ -2129,19 +2143,20 @@ run_test "TLS 1.3: m->m ephemeral_all / psk_all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all / all, good" \ +run_test "TLS 1.3: m->m: ephemeral_all/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all / all, fail - no common id" \ +run_test "TLS 1.3: m->m: ephemeral_all/all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2154,7 +2169,7 @@ run_test "TLS 1.3: m->m ephemeral_all / all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m ephemeral_all / all, fail - no common psk" \ +run_test "TLS 1.3: m->m: ephemeral_all/all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2166,19 +2181,20 @@ run_test "TLS 1.3: m->m ephemeral_all / all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / psk, good" \ +run_test "TLS 1.3: m->m: psk_all/psk, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / psk, fail - no common kex mode" \ +run_test "TLS 1.3: m->m: psk_all/psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2190,7 +2206,7 @@ run_test "TLS 1.3: m->m psk_all / psk, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / psk, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk_all/psk, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2202,19 +2218,20 @@ run_test "TLS 1.3: m->m psk_all / psk, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / psk_ephemeral, good" \ +run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / psk_ephemeral, fail - no common id" \ +run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2227,7 +2244,7 @@ run_test "TLS 1.3: m->m psk_all / psk_ephemeral, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / psk_ephemeral, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2238,7 +2255,7 @@ run_test "TLS 1.3: m->m psk_all / psk_ephemeral, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / ephemeral, fail - no common kex mode" \ +run_test "TLS 1.3: m->m: psk_all/ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2250,19 +2267,20 @@ run_test "TLS 1.3: m->m psk_all / ephemeral, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / ephemeral_all, good" \ +run_test "TLS 1.3: m->m: psk_all/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / ephemeral_all, fail - no common id" \ +run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2275,7 +2293,7 @@ run_test "TLS 1.3: m->m psk_all / ephemeral_all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / ephemeral_all, good - no common psk" \ +run_test "TLS 1.3: m->m: psk_all/ephemeral_all, good - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2286,19 +2304,20 @@ run_test "TLS 1.3: m->m psk_all / ephemeral_all, good - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / psk_all, good" \ +run_test "TLS 1.3: m->m: psk_all/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / psk_all, fail - no common id" \ +run_test "TLS 1.3: m->m: psk_all/psk_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2311,7 +2330,7 @@ run_test "TLS 1.3: m->m psk_all / psk_all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / psk_all, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk_all/psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2322,19 +2341,20 @@ run_test "TLS 1.3: m->m psk_all / psk_all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / all, good" \ +run_test "TLS 1.3: m->m: psk_all/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / all, fail - no common id" \ +run_test "TLS 1.3: m->m: psk_all/all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2347,7 +2367,7 @@ run_test "TLS 1.3: m->m psk_all / all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m psk_all / all, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk_all/all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2359,19 +2379,20 @@ run_test "TLS 1.3: m->m psk_all / all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / psk, good" \ +run_test "TLS 1.3: m->m: all/psk, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / psk, fail - no common kex mode" \ +run_test "TLS 1.3: m->m: all/psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ @@ -2383,7 +2404,7 @@ run_test "TLS 1.3: m->m all / psk, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / psk, fail - no common psk" \ +run_test "TLS 1.3: m->m: all/psk, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ @@ -2395,19 +2416,20 @@ run_test "TLS 1.3: m->m all / psk, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / psk_ephemeral, good" \ +run_test "TLS 1.3: m->m: all/psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / psk_ephemeral, fail - no common id" \ +run_test "TLS 1.3: m->m: all/psk_ephemeral, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ @@ -2420,7 +2442,7 @@ run_test "TLS 1.3: m->m all / psk_ephemeral, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / psk_ephemeral, fail - no common psk" \ +run_test "TLS 1.3: m->m: all/psk_ephemeral, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ @@ -2431,31 +2453,33 @@ run_test "TLS 1.3: m->m all / psk_ephemeral, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / ephemeral, good" \ +run_test "TLS 1.3: m->m: all/ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / ephemeral_all, good" \ +run_test "TLS 1.3: m->m: all/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / ephemeral_all, good - no common id" \ +run_test "TLS 1.3: m->m: all/ephemeral_all, good - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ @@ -2463,35 +2487,38 @@ run_test "TLS 1.3: m->m all / ephemeral_all, good - no common id" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -s "No matched PSK or ticket" \ + -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / ephemeral_all, good - no common psk" \ +run_test "TLS 1.3: m->m: all/ephemeral_all, good - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "skip pre_shared_key extensions" \ -c "client hello, adding psk_key_exchange_modes extension" \ + -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / psk_all, good" \ +run_test "TLS 1.3: m->m: all/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / psk_all, fail - no common id" \ +run_test "TLS 1.3: m->m: all/psk_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ @@ -2504,7 +2531,7 @@ run_test "TLS 1.3: m->m all / psk_all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / psk_all, fail - no common psk" \ +run_test "TLS 1.3: m->m: all/psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ @@ -2515,19 +2542,20 @@ run_test "TLS 1.3: m->m all / psk_all, fail - no common psk" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / all, good" \ +run_test "TLS 1.3: m->m: all/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / all, good - no common id, fallback to ephemeral" \ +run_test "TLS 1.3: m->m: all/all, good - no common id, fallback to ephemeral" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ @@ -2540,7 +2568,7 @@ run_test "TLS 1.3: m->m all / all, good - no common id, fallback to ephemeral requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m all / all, good - no common psk, fallback to ephemeral" \ +run_test "TLS 1.3: m->m: all/all, good - no common psk, fallback to ephemeral" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -2556,7 +2584,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk / all, good" \ +run_test "TLS 1.3: m->O: psk/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ @@ -2565,6 +2593,7 @@ run_test "TLS 1.3: m->O psk / all, good" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: psk" \ -c "HTTP/1.0 200 ok" requires_openssl_tls1_3 @@ -2574,7 +2603,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk / ephemeral_all, fail - no common kex mode" \ +run_test "TLS 1.3: m->O: psk/ephemeral_all, fail - no common kex mode" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -2592,7 +2621,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk / all, fail - key material mismatch" \ +run_test "TLS 1.3: m->O: psk/all, fail - key material mismatch" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ @@ -2610,7 +2639,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_all / all, good" \ +run_test "TLS 1.3: m->O: psk_all/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ @@ -2619,6 +2648,7 @@ run_test "TLS 1.3: m->O psk_all / all, good" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 ok" requires_openssl_tls1_3 @@ -2628,7 +2658,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_all / ephemeral_all, good" \ +run_test "TLS 1.3: m->O: psk_all/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ @@ -2637,6 +2667,7 @@ run_test "TLS 1.3: m->O psk_all / ephemeral_all, good" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 ok" requires_openssl_tls1_3 @@ -2646,7 +2677,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_all/all,good,no common id,only warning" \ +run_test "TLS 1.3: m->O: psk_all/all,good,no common id,only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk_all" \ 0 \ @@ -2656,6 +2687,7 @@ run_test "TLS 1.3: m->O psk_all/all,good,no common id,only warning" \ -c "client hello, adding PSK binder list" \ -c "<= write client hello" \ -s "PSK warning: client identity not what we expected" \ + -c "Server selected key exchange mode: psk" \ -c "HTTP/1.0 200 ok" requires_openssl_tls1_3 @@ -2665,7 +2697,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_all/ephemeral_all,good,no common id,only warning" \ +run_test "TLS 1.3: m->O: psk_all/ephemeral_all,good,no common id,only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 0 \ @@ -2674,6 +2706,7 @@ run_test "TLS 1.3: m->O psk_all/ephemeral_all,good,no common id,only warning" -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: psk" \ -c "HTTP/1.0 200 ok" requires_openssl_tls1_3 @@ -2683,7 +2716,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_all / all, fail - no common key material" \ +run_test "TLS 1.3: m->O: psk_all/all, fail - no common key material" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2701,7 +2734,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_ephemeral / all, good" \ +run_test "TLS 1.3: m->O: psk_ephemeral/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -2710,6 +2743,7 @@ run_test "TLS 1.3: m->O psk_ephemeral / all, good" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 ok" requires_openssl_tls1_3 @@ -2719,7 +2753,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_ephemeral / ephemeral_all, good" \ +run_test "TLS 1.3: m->O: psk_ephemeral/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -2728,6 +2762,7 @@ run_test "TLS 1.3: m->O psk_ephemeral / ephemeral_all, good" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 ok" requires_openssl_tls1_3 @@ -2737,7 +2772,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_ephemeral/dhe_all,good,no common id,only warning" \ +run_test "TLS 1.3: m->O: psk_ephemeral/dhe_all,good,no common id,only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -2756,7 +2791,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_ephemeral/all,good,no common id,only warning" \ +run_test "TLS 1.3: m->O: psk_ephemeral/all,good,no common id,only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 0 \ @@ -2774,7 +2809,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O psk_ephemeral/all, fail,no common key material" \ +run_test "TLS 1.3: m->O: psk_ephemeral/all, fail,no common key material" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -2792,7 +2827,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral / all, good" \ +run_test "TLS 1.3: m->O: ephemeral/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -2800,6 +2835,7 @@ run_test "TLS 1.3: m->O ephemeral / all, good" \ -c "skip psk_key_exchange_modes extension" \ -c "<= write client hello" \ -c "found key_shares extension" \ + -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 ok" requires_openssl_tls1_3 @@ -2809,7 +2845,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral / ephemeral_all, good" \ +run_test "TLS 1.3: m->O: ephemeral/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ @@ -2817,6 +2853,7 @@ run_test "TLS 1.3: m->O ephemeral / ephemeral_all, good" \ -c "skip psk_key_exchange_modes extension" \ -c "<= write client hello" \ -c "found key_shares extension" \ + -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 ok" requires_openssl_tls1_3 @@ -2826,7 +2863,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral / all, good,no common id, only warning" \ +run_test "TLS 1.3: m->O: ephemeral/all, good,no common id, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=ephemeral" \ 0 \ @@ -2843,7 +2880,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral / dhe_all, good - no common id, only warning" \ +run_test "TLS 1.3: m->O: ephemeral/dhe_all, good - no common id, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ 0 \ @@ -2860,13 +2897,14 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral/all, good, psk mismatch, fallback to dhe" \ +run_test "TLS 1.3: m->O: ephemeral/all, good, psk mismatch, fallback to dhe" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ -c "=> write client hello" \ -c "skip psk_key_exchange_modes extension" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 ok" #OPENSSL-SERVER ephemeral_all mode @@ -2877,7 +2915,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral_all / all, good" \ +run_test "TLS 1.3: m->O: ephemeral_all/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2895,7 +2933,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral_all / ephemeral_all, good" \ +run_test "TLS 1.3: m->O: ephemeral_all/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2913,7 +2951,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral_all/all, good,no common id, only warning" \ +run_test "TLS 1.3: m->O: ephemeral_all/all, good,no common id, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2932,7 +2970,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral_all/dhe_all, good,no common id, only warning" \ +run_test "TLS 1.3: m->O: ephemeral_all/dhe_all, good,no common id, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2950,7 +2988,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O ephemeral_all/all, fail,no common material" \ +run_test "TLS 1.3: m->O: ephemeral_all/all, fail,no common psk" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ @@ -2968,7 +3006,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O all / all, good" \ +run_test "TLS 1.3: m->O: all/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -2986,7 +3024,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O all / ephemeral_all, good" \ +run_test "TLS 1.3: m->O: all/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ @@ -3004,7 +3042,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O all/all, good, no common id, only warning" \ +run_test "TLS 1.3: m->O: all/all, good, no common id, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=all" \ 0 \ @@ -3023,7 +3061,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O all/dhe_all, good, no common id, only warning" \ +run_test "TLS 1.3: m->O: all/dhe_all, good, no common id, only warning" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ @@ -3041,7 +3079,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O all/all, fail,no common material, no fallback" \ +run_test "TLS 1.3: m->O: all/all, fail,no common psk, no fallback" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ @@ -3058,8 +3096,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk / all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: psk/all, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "=> write client hello" \ @@ -3069,6 +3107,7 @@ run_test "TLS 1.3: m->G psk / all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: psk" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3077,8 +3116,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk / psk_or_ephemeral, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: psk/psk_or_ephemeral, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "=> write client hello" \ @@ -3088,6 +3127,7 @@ run_test "TLS 1.3: m->G psk / psk_or_ephemeral, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: psk" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3096,8 +3136,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk / ephemeral_all, fail - no common kex mode" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: psk/ephemeral_all, fail - no common kex mode" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ -c "=> write client hello" \ @@ -3115,8 +3155,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk / all, fail - no common id" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: psk/all, fail - no common id" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ -c "=> write client hello" \ @@ -3134,8 +3174,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk / psk, fail - no common id" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: psk/psk, fail - no common id" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ -c "=> write client hello" \ @@ -3153,8 +3193,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk / ephemeral_all, fail, no common material" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: psk/ephemeral_all, fail, no common psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ -c "=> write client hello" \ @@ -3171,8 +3211,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_all / all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: psk_all/all, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "=> write client hello" \ @@ -3182,6 +3222,7 @@ run_test "TLS 1.3: m->G psk_all / all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: psk" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3190,8 +3231,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_all / psk, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: psk_all/psk, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "=> write client hello" \ @@ -3201,6 +3242,7 @@ run_test "TLS 1.3: m->G psk_all / psk, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: psk" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3209,8 +3251,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_all / ephemeral_all, fail - no fallback" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: psk_all/ephemeral_all, fail - no fallback" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ -c "=> write client hello" \ @@ -3228,8 +3270,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_all / all, fail - no common id" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: psk_all/all, fail - no common id" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ -c "=> write client hello" \ @@ -3247,8 +3289,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_all / psk, fail - no common id" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: psk_all/psk, fail - no common id" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ -c "=> write client hello" \ @@ -3266,8 +3308,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_all / ephemeral_all, fail, no common material" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: psk_all/ephemeral_all, fail, no common psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ -c "=> write client hello" \ @@ -3284,8 +3326,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_ephemeral / all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: psk_ephemeral/all, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "=> write client hello" \ @@ -3295,6 +3337,7 @@ run_test "TLS 1.3: m->G psk_ephemeral / all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3303,8 +3346,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_ephemeral / psk, fail - no common kex mode" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: psk_ephemeral/psk, fail - no common kex mode" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ -c "=> write client hello" \ @@ -3322,8 +3365,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_ephemeral / ephemeral_all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: psk_ephemeral/ephemeral_all, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "=> write client hello" \ @@ -3333,6 +3376,7 @@ run_test "TLS 1.3: m->G psk_ephemeral / ephemeral_all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3341,8 +3385,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G psk_ephemeral/dhe_all, fail, key material mismatch" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: psk_ephemeral/dhe_all, fail, key material mismatch" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ -c "=> write client hello" \ @@ -3359,14 +3403,15 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G ephemeral / all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: ephemeral/all, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ -c "=> write client hello" \ -c "skip psk_key_exchange_modes extension" \ -s "Not sending extension (PSK Key Exchange Modes/45)" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3375,14 +3420,15 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G ephemeral / psk, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: ephemeral/psk, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ -c "=> write client hello" \ -c "skip psk_key_exchange_modes extension" \ -s "Not sending extension (PSK Key Exchange Modes/45)" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3391,14 +3437,15 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G ephemeral / ephemeral_all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: ephemeral/ephemeral_all, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ -c "=> write client hello" \ -c "skip psk_key_exchange_modes extension" \ -s "Not sending extension (PSK Key Exchange Modes/45)" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" #GNUTLS-SERVER ephemeral_all mode @@ -3408,8 +3455,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G ephemeral_all / all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: ephemeral_all/all, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "=> write client hello" \ @@ -3419,6 +3466,7 @@ run_test "TLS 1.3: m->G ephemeral_all / all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3427,8 +3475,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G ephemeral_all / psk, good - fallback to ephemeral" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: ephemeral_all/psk, good - fallback to ephemeral" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "=> write client hello" \ @@ -3438,6 +3486,7 @@ run_test "TLS 1.3: m->G ephemeral_all / psk, good - fallback to ephemeral" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3446,8 +3495,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G ephemeral_all / ephemeral_all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: ephemeral_all/ephemeral_all, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "=> write client hello" \ @@ -3457,6 +3506,7 @@ run_test "TLS 1.3: m->G ephemeral_all / ephemeral_all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3465,8 +3515,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G dhe_all/dhe_all,good,psk mismatch,fallback to dhe" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: dhe_all/dhe_all,good,psk mismatch,fallback to dhe" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ -c "=> write client hello" \ @@ -3475,6 +3525,7 @@ run_test "TLS 1.3: m->G dhe_all/dhe_all,good,psk mismatch,fallback to dhe" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -c "<= write client hello" \ -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ + -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" #GNUTLS-SERVER all mode @@ -3484,8 +3535,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G all / all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: all/all, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "=> write client hello" \ @@ -3495,6 +3546,7 @@ run_test "TLS 1.3: m->G all / all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: psk" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3503,8 +3555,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G all / psk, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: all/psk, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "=> write client hello" \ @@ -3514,6 +3566,7 @@ run_test "TLS 1.3: m->G all / psk, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: psk" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3522,8 +3575,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G all / ephemeral_all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: all/ephemeral_all, good" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "=> write client hello" \ @@ -3533,6 +3586,7 @@ run_test "TLS 1.3: m->G all / ephemeral_all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ + -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3541,8 +3595,8 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G all/dhe_all,good,key material mismatch,fallback to dhe" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ +run_test "TLS 1.3: m->G: all/dhe_all,good,key material mismatch,fallback to dhe" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ -c "=> write client hello" \ @@ -3551,4 +3605,5 @@ run_test "TLS 1.3: m->G all/dhe_all,good,key material mismatch,fallback to dh -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -c "<= write client hello" \ -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ + -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" From cffb18cee70e194964cecabd07ccf4c7898a8822 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 13 Sep 2022 01:58:07 +0000 Subject: [PATCH 0394/1028] Fix various issues Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 209 +++++++++++-------------- tests/ssl-opt.sh | 2 +- 2 files changed, 93 insertions(+), 118 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 62314e4772..b4efc1f20e 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1640,7 +1640,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk/psk, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1653,31 +1653,31 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk/psk, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -s "No matched PSK or ticket" \ - -s "ClientHello message misses mandatory extensions." + -s "No matched PSK or ticket" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk/psk, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ 1 \ - -c "skip pre_shared_key extensions" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -s "ClientHello message misses mandatory extensions." + -c "client hello, adding PSK binder list" \ + -s "Invalid binder." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk/psk_ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1689,7 +1689,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk/ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1701,7 +1701,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk/ephemeral_all, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1713,7 +1713,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1726,7 +1726,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk/psk_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1739,18 +1739,18 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk/psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ 1 \ -c "skip pre_shared_key extensions" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -s "ClientHello message misses mandatory extensions." + -s "Invalid binder." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1763,7 +1763,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk/all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1776,11 +1776,11 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk/all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ 1 \ -c "skip pre_shared_key extensions" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -s "ClientHello message misses mandatory extensions." + -s "Invalid binder." # psk_ephemeral mode in client requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -1788,7 +1788,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1800,7 +1800,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1813,7 +1813,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1826,18 +1826,19 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk_ephemeral" \ 1 \ - -c "skip pre_shared_key extensions" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -s "ClientHello message misses mandatory extensions." + -c "client hello, adding PSK binder list" \ + -s "Invalid binder." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1849,7 +1850,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1862,7 +1863,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1875,18 +1876,19 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk_ephemeral" \ 1 \ - -c "skip pre_shared_key extensions" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -s "ClientHello message misses mandatory extensions." + -c "client hello, adding PSK binder list" \ + -s "Invalid binder." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1899,7 +1901,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1912,7 +1914,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ -c "skip pre_shared_key extensions" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1923,7 +1925,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1936,7 +1938,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1949,7 +1951,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ -c "skip pre_shared_key extensions" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1961,7 +1963,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral/psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 1 \ -s "ClientHello message misses mandatory extensions." @@ -1970,7 +1972,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral/psk_ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 1 \ -s "ClientHello message misses mandatory extensions." @@ -1979,7 +1981,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral/ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" @@ -1989,7 +1991,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" @@ -1999,7 +2001,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral/psk_all, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 1 \ -s "ClientHello message misses mandatory extensions." @@ -2008,7 +2010,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" @@ -2019,7 +2021,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2031,7 +2033,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2044,7 +2046,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2057,7 +2059,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "skip pre_shared_key extensions" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2068,7 +2070,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2082,7 +2084,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2095,7 +2097,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,fallback to ephemeral" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2108,7 +2110,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2121,7 +2123,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2134,7 +2136,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ -c "skip pre_shared_key extensions" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2145,7 +2147,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2158,7 +2160,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2171,7 +2173,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "skip pre_shared_key extensions" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2183,7 +2185,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/psk, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2196,7 +2198,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2208,7 +2210,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/psk, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2220,7 +2222,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2233,7 +2235,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2246,7 +2248,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ -c "skip pre_shared_key extensions" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2257,7 +2259,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2269,7 +2271,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2282,7 +2284,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2295,7 +2297,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/ephemeral_all, good - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ -c "skip pre_shared_key extensions" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2306,7 +2308,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2319,7 +2321,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/psk_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2332,7 +2334,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ -c "skip pre_shared_key extensions" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2343,7 +2345,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2356,7 +2358,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2369,7 +2371,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ -c "skip pre_shared_key extensions" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2381,7 +2383,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/psk, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2394,7 +2396,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2406,7 +2408,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/psk, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2418,7 +2420,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2431,7 +2433,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/psk_ephemeral, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2444,7 +2446,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/psk_ephemeral, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ -c "skip pre_shared_key extensions" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2455,7 +2457,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2468,7 +2470,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2481,7 +2483,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/ephemeral_all, good - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2495,7 +2497,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/ephemeral_all, good - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "skip pre_shared_key extensions" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2507,7 +2509,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2520,7 +2522,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/psk_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2533,7 +2535,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ -c "skip pre_shared_key extensions" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2544,7 +2546,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2557,7 +2559,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/all, good - no common id, fallback to ephemeral" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2570,7 +2572,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/all, good - no common psk, fallback to ephemeral" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "skip pre_shared_key extensions" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -2990,7 +2992,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: m->O: ephemeral_all/all, fail,no common psk" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c -psk 040506 tls13_kex_modes=ephemeral_all" \ 1 \ -c "=> write client hello" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -3081,7 +3083,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: m->O: all/all, fail,no common psk, no fallback" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c -psk 010203 tls13_kex_modes=all" \ 1 \ -c "=> write client hello" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -3092,7 +3094,6 @@ run_test "TLS 1.3: m->O: all/all, fail,no common psk, no fallback" \ #GNUTLS-SERVER psk mode requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3112,7 +3113,6 @@ run_test "TLS 1.3: m->G: psk/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3132,7 +3132,6 @@ run_test "TLS 1.3: m->G: psk/psk_or_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3151,7 +3150,6 @@ run_test "TLS 1.3: m->G: psk/ephemeral_all, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3170,7 +3168,6 @@ run_test "TLS 1.3: m->G: psk/all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3189,13 +3186,12 @@ run_test "TLS 1.3: m->G: psk/psk, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->G: psk/ephemeral_all, fail, no common psk" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c -psk 010203 tls13_kex_modes=psk" \ 1 \ -c "=> write client hello" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -3207,7 +3203,6 @@ run_test "TLS 1.3: m->G: psk/ephemeral_all, fail, no common psk" \ #GNUTLS-SERVER psk_all mode requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3227,7 +3222,6 @@ run_test "TLS 1.3: m->G: psk_all/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3247,7 +3241,6 @@ run_test "TLS 1.3: m->G: psk_all/psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3266,7 +3259,6 @@ run_test "TLS 1.3: m->G: psk_all/ephemeral_all, fail - no fallback" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3285,7 +3277,6 @@ run_test "TLS 1.3: m->G: psk_all/all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3304,7 +3295,6 @@ run_test "TLS 1.3: m->G: psk_all/psk, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3322,7 +3312,6 @@ run_test "TLS 1.3: m->G: psk_all/ephemeral_all, fail, no common psk" \ #GNUTLS-SERVER psk_ephemeral mode requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3342,7 +3331,6 @@ run_test "TLS 1.3: m->G: psk_ephemeral/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3361,7 +3349,6 @@ run_test "TLS 1.3: m->G: psk_ephemeral/psk, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3381,7 +3368,6 @@ run_test "TLS 1.3: m->G: psk_ephemeral/ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3399,7 +3385,6 @@ run_test "TLS 1.3: m->G: psk_ephemeral/dhe_all, fail, key material mismatch" #GNUTLS-SERVER ephemeral mode requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3416,7 +3401,6 @@ run_test "TLS 1.3: m->G: ephemeral/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3433,7 +3417,6 @@ run_test "TLS 1.3: m->G: ephemeral/psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3451,7 +3434,6 @@ run_test "TLS 1.3: m->G: ephemeral/ephemeral_all, good" \ #GNUTLS-SERVER ephemeral_all mode requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3471,7 +3453,6 @@ run_test "TLS 1.3: m->G: ephemeral_all/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3491,7 +3472,6 @@ run_test "TLS 1.3: m->G: ephemeral_all/psk, good - fallback to ephemeral" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3511,7 +3491,6 @@ run_test "TLS 1.3: m->G: ephemeral_all/ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3531,7 +3510,6 @@ run_test "TLS 1.3: m->G: dhe_all/dhe_all,good,psk mismatch,fallback to dhe" \ #GNUTLS-SERVER all mode requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3551,7 +3529,6 @@ run_test "TLS 1.3: m->G: all/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3571,7 +3548,6 @@ run_test "TLS 1.3: m->G: all/psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -3591,7 +3567,6 @@ run_test "TLS 1.3: m->G: all/ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 020d6dc29d..0c72600f0e 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12127,7 +12127,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3, default suite, PSK - gnutls" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL:%NO_TICKETS --pskhint=0a0b0c --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "=> write client hello" \ From 8939930b826f85aedb6e6e30bbbf02659b823705 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 21 Sep 2022 07:16:22 +0000 Subject: [PATCH 0395/1028] Rebase and fix some test failures Signed-off-by: Xiaokang Qian --- library/ssl_tls13_client.c | 3 +-- tests/opt-testcases/tls13-kex-modes.sh | 21 +++++++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 4571ada0de..714acb95c6 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1326,13 +1326,12 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, { int ret = 0; size_t selected_identity; - int psk_type; + int psk_type; const unsigned char *psk; size_t psk_len; const unsigned char *psk_identity; size_t psk_identity_len; - int psk_type; /* Check which PSK we've offered. * diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index b4efc1f20e..af4db48d0a 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1741,8 +1741,9 @@ run_test "TLS 1.3: m->m: psk/psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ 1 \ - -c "skip pre_shared_key extensions" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ -s "Invalid binder." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -1778,8 +1779,9 @@ run_test "TLS 1.3: m->m: psk/all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ 1 \ - -c "skip pre_shared_key extensions" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ -s "Invalid binder." # psk_ephemeral mode in client @@ -2992,11 +2994,12 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: m->O: ephemeral_all/all, fail,no common psk" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c -psk 040506 tls13_kex_modes=ephemeral_all" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c psk=040506 tls13_kex_modes=ephemeral_all" \ 1 \ -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -c "skip pre_shared_key extensions" \ + -c "client hello, adding PSK binder list" \ -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ -c "<= write client hello" @@ -3083,11 +3086,12 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: m->O: all/all, fail,no common psk, no fallback" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c -psk 010203 tls13_kex_modes=all" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c psk=040506 tls13_kex_modes=all" \ 1 \ -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -c "skip pre_shared_key extensions" \ + -c "client hello, adding PSK binder list" \ -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ -c "<= write client hello" @@ -3191,11 +3195,12 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->G: psk/ephemeral_all, fail, no common psk" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c -psk 010203 tls13_kex_modes=psk" \ + "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ 1 \ -c "=> write client hello" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -c "skip pre_shared_key extensions" \ + -c "client hello, adding PSK binder list" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -c "<= write client hello" \ -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" From 658204c71e384a43f339f3cc78fd0eb337c4968f Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 22 Sep 2022 09:51:19 +0000 Subject: [PATCH 0396/1028] Remove negative test cases for m->O and m->G Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 559 +------------------------ 1 file changed, 4 insertions(+), 555 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index af4db48d0a..bdf5d24d6a 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -2618,23 +2618,6 @@ run_test "TLS 1.3: m->O: psk/ephemeral_all, fail - no common kex mode" \ -c "<= write client hello" \ -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O: psk/all, fail - key material mismatch" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "skip pre_shared_key extensions" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ - -c "<= write client hello" - #OPENSSL-SERVER psk_all mode requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2674,62 +2657,6 @@ run_test "TLS 1.3: m->O: psk_all/ephemeral_all, good" \ -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 ok" -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O: psk_all/all,good,no common id,only warning" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ - -s "PSK warning: client identity not what we expected" \ - -c "Server selected key exchange mode: psk" \ - -c "HTTP/1.0 200 ok" - -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O: psk_all/ephemeral_all,good,no common id,only warning" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ - -c "Server selected key exchange mode: psk" \ - -c "HTTP/1.0 200 ok" - -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O: psk_all/all, fail - no common key material" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "skip pre_shared_key extensions" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ - -c "<= write client hello" - #OPENSSL-SERVER psk_ephemeral mode requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2769,60 +2696,6 @@ run_test "TLS 1.3: m->O: psk_ephemeral/ephemeral_all, good" \ -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 ok" -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O: psk_ephemeral/dhe_all,good,no common id,only warning" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=psk_ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ - -s "PSK warning: client identity not what we expected" \ - -c "HTTP/1.0 200 ok" - -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O: psk_ephemeral/all,good,no common id,only warning" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 ok" - -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O: psk_ephemeral/all, fail,no common key material" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "skip pre_shared_key extensions" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ - -c "<= write client hello" - #OPENSSL-SERVER ephemeral mode requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2860,57 +2733,6 @@ run_test "TLS 1.3: m->O: ephemeral/ephemeral_all, good" \ -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 ok" -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O: ephemeral/all, good,no common id, only warning" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -c "<= write client hello" \ - -c "found key_shares extension" \ - -c "HTTP/1.0 200 ok" - -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O: ephemeral/dhe_all, good - no common id, only warning" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -c "<= write client hello" \ - -c "found key_shares extension" \ - -c "HTTP/1.0 200 ok" - -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O: ephemeral/all, good, psk mismatch, fallback to dhe" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -c "<= write client hello" \ - -c "Server selected key exchange mode: ephemeral" \ - -c "HTTP/1.0 200 ok" - #OPENSSL-SERVER ephemeral_all mode requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2927,6 +2749,7 @@ run_test "TLS 1.3: m->O: ephemeral_all/all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "<= write client hello" \ -c "HTTP/1.0 200 ok" @@ -2945,64 +2768,10 @@ run_test "TLS 1.3: m->O: ephemeral_all/ephemeral_all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "<= write client hello" \ -c "HTTP/1.0 200 ok" -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O: ephemeral_all/all, good,no common id, only warning" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=ephemeral_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ - -s "PSK warning: client identity not what we expected" \ - -c "HTTP/1.0 200 ok" - -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O: ephemeral_all/dhe_all, good,no common id, only warning" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 ok" - -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O: ephemeral_all/all, fail,no common psk" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c psk=040506 tls13_kex_modes=ephemeral_all" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ - -c "<= write client hello" - #OPENSSL-SERVER all mode requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3019,6 +2788,7 @@ run_test "TLS 1.3: m->O: all/all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "<= write client hello" \ -c "HTTP/1.0 200 ok" @@ -3037,64 +2807,10 @@ run_test "TLS 1.3: m->O: all/ephemeral_all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -c "Server selected key exchange mode: psk_ephemeral" \ -c "<= write client hello" \ -c "HTTP/1.0 200 ok" -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O: all/all, good, no common id, only warning" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0c0d0e tls13_kex_modes=all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ - -s "PSK warning: client identity not what we expected" \ - -c "HTTP/1.0 200 ok" - -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O: all/dhe_all, good, no common id, only warning" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 ok" - -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->O: all/all, fail,no common psk, no fallback" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -nocert" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c psk=040506 tls13_kex_modes=all" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" \ - -c "<= write client hello" - #GNUTLS-SERVER psk mode requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 @@ -3115,25 +2831,6 @@ run_test "TLS 1.3: m->G: psk/all, good" \ -c "Server selected key exchange mode: psk" \ -c "HTTP/1.0 200 OK" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G: psk/psk_or_ephemeral, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Server selected key exchange mode: psk" \ - -c "HTTP/1.0 200 OK" - requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE @@ -3152,59 +2849,6 @@ run_test "TLS 1.3: m->G: psk/ephemeral_all, fail - no common kex mode" \ -c "<= write client hello" \ -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G: psk/all, fail - no common id" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G: psk/psk, fail - no common id" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G: psk/ephemeral_all, fail, no common psk" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - #GNUTLS-SERVER psk_all mode requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 @@ -3225,25 +2869,6 @@ run_test "TLS 1.3: m->G: psk_all/all, good" \ -c "Server selected key exchange mode: psk" \ -c "HTTP/1.0 200 OK" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G: psk_all/psk, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Server selected key exchange mode: psk" \ - -c "HTTP/1.0 200 OK" - requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE @@ -3262,58 +2887,6 @@ run_test "TLS 1.3: m->G: psk_all/ephemeral_all, fail - no fallback" \ -c "<= write client hello" \ -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G: psk_all/all, fail - no common id" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G: psk_all/psk, fail - no common id" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G: psk_all/ephemeral_all, fail, no common psk" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "skip pre_shared_key extensions" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - #GNUTLS-SERVER psk_ephemeral mode requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 @@ -3334,24 +2907,6 @@ run_test "TLS 1.3: m->G: psk_ephemeral/all, good" \ -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G: psk_ephemeral/psk, fail - no common kex mode" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE @@ -3371,22 +2926,6 @@ run_test "TLS 1.3: m->G: psk_ephemeral/ephemeral_all, good" \ -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G: psk_ephemeral/dhe_all, fail, key material mismatch" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ - 1 \ - -c "=> write client hello" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "skip pre_shared_key extensions" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" - #GNUTLS-SERVER ephemeral mode requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 @@ -3404,22 +2943,6 @@ run_test "TLS 1.3: m->G: ephemeral/all, good" \ -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G: ephemeral/psk, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ - 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -s "Not sending extension (PSK Key Exchange Modes/45)" \ - -c "<= write client hello" \ - -c "Server selected key exchange mode: ephemeral" \ - -c "HTTP/1.0 200 OK" - requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE @@ -3456,25 +2979,6 @@ run_test "TLS 1.3: m->G: ephemeral_all/all, good" \ -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G: ephemeral_all/psk, good - fallback to ephemeral" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Server selected key exchange mode: ephemeral" \ - -c "HTTP/1.0 200 OK" - requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE @@ -3494,24 +2998,6 @@ run_test "TLS 1.3: m->G: ephemeral_all/ephemeral_all, good" \ -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G: dhe_all/dhe_all,good,psk mismatch,fallback to dhe" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "skip pre_shared_key extensions" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -c "<= write client hello" \ - -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ - -c "Server selected key exchange mode: ephemeral" \ - -c "HTTP/1.0 200 OK" - #GNUTLS-SERVER all mode requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 @@ -3532,25 +3018,6 @@ run_test "TLS 1.3: m->G: all/all, good" \ -c "Server selected key exchange mode: psk" \ -c "HTTP/1.0 200 OK" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G: all/psk, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "Server selected key exchange mode: psk" \ - -c "HTTP/1.0 200 OK" - requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE @@ -3569,21 +3036,3 @@ run_test "TLS 1.3: m->G: all/ephemeral_all, good" \ -c "<= write client hello" \ -c "Server selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->G: all/dhe_all,good,key material mismatch,fallback to dhe" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 force_version=tls13 psk_identity=0d0e0f tls13_kex_modes=all" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "skip pre_shared_key extensions" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -c "<= write client hello" \ - -c "client state: MBEDTLS_SSL_SERVER_CERTIFICATE" \ - -c "Server selected key exchange mode: ephemeral" \ - -c "HTTP/1.0 200 OK" From dea2cbe1992577ffa6e38d5db71d5bb1d8940401 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 22 Sep 2022 11:07:28 +0000 Subject: [PATCH 0397/1028] Fix various test issues in psk m->m cases Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 128 +++++++++++++++---------- 1 file changed, 76 insertions(+), 52 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index bdf5d24d6a..0883d702b7 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1777,7 +1777,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk/all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1828,7 +1828,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk_ephemeral" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1878,7 +1878,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk_ephemeral" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -1916,11 +1916,12 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ - -c "skip pre_shared_key extensions" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -s "ClientHello message misses mandatory extensions." + -c "client hello, adding PSK binder list" \ + -s "Invalid binder." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C @@ -1953,11 +1954,12 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_ephemeral/all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ - -c "skip pre_shared_key extensions" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -s "ClientHello message misses mandatory extensions." + -c "client hello, adding PSK binder list" \ + -s "Invalid binder." # ephemeral mode in client requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2061,11 +2063,12 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - 0 \ - -c "skip pre_shared_key extensions" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -s "key exchange mode: ephemeral" + -c "client hello, adding PSK binder list" \ + -s "Invalid binder." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C @@ -2097,7 +2100,7 @@ run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,fallback to ephemeral" \ +run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,no common id,fallback to ephemeral" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2107,6 +2110,19 @@ run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,fallback to ephemer -s "No matched PSK or ticket" \ -s "key exchange mode: ephemeral" +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,no common psk,fallback to ephemeral" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ + 0 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ + -c "client hello, adding psk_key_exchange_modes extension" \ + -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ + -s "key exchange mode: ephemeral" + requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -2138,11 +2154,12 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ - -c "skip pre_shared_key extensions" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -s "ClientHello message misses mandatory extensions." + -c "client hello, adding PSK binder list" \ + -s "Invalid binder." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C @@ -2175,11 +2192,12 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - 0 \ - -c "skip pre_shared_key extensions" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -s "key exchange mode: ephemeral" + -c "client hello, adding PSK binder list" \ + -s "Invalid binder." # psk_all mode in client requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2198,7 +2216,7 @@ run_test "TLS 1.3: m->m: psk_all/psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_all/psk, fail - no common kex mode" \ +run_test "TLS 1.3: m->m: psk_all/psk, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2212,12 +2230,12 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/psk, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -s "ClientHello message misses mandatory extensions." + -s "Invalid binder." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C @@ -2299,11 +2317,12 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/ephemeral_all, good - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ - -c "skip pre_shared_key extensions" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -s "ClientHello message misses mandatory extensions." + -c "client hello, adding PSK binder list" \ + -s "Invalid binder." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C @@ -2336,11 +2355,12 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ - -c "skip pre_shared_key extensions" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -s "ClientHello message misses mandatory extensions." + -c "client hello, adding PSK binder list" \ + -s "Invalid binder." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C @@ -2373,11 +2393,12 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ - -c "skip pre_shared_key extensions" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -s "ClientHello message misses mandatory extensions." + -c "client hello, adding PSK binder list" \ + -s "Invalid binder." # all mode in client requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2410,12 +2431,12 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/psk, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -s "ClientHello message misses mandatory extensions." + -s "Invalid binder." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C @@ -2448,11 +2469,12 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/psk_ephemeral, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ - -c "skip pre_shared_key extensions" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -s "ClientHello message misses mandatory extensions." + -c "client hello, adding PSK binder list" \ + -s "Invalid binder." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C @@ -2497,14 +2519,14 @@ run_test "TLS 1.3: m->m: all/ephemeral_all, good - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: all/ephemeral_all, good - no common psk" \ +run_test "TLS 1.3: m->m: all/ephemeral_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=all" \ - 0 \ - -c "skip pre_shared_key extensions" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -c "Server selected key exchange mode: ephemeral" \ - -c "HTTP/1.0 200 OK" + -c "client hello, adding PSK binder list" \ + -s "Invalid binder." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C @@ -2537,11 +2559,12 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: all/psk_all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=all" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ - -c "skip pre_shared_key extensions" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -s "ClientHello message misses mandatory extensions." + -c "client hello, adding PSK binder list" \ + -s "Invalid binder." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C @@ -2572,13 +2595,14 @@ run_test "TLS 1.3: m->m: all/all, good - no common id, fallback to ephemeral" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: all/all, good - no common psk, fallback to ephemeral" \ +run_test "TLS 1.3: m->m: all/all, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ - "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=all" \ - 0 \ - -c "skip pre_shared_key extensions" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ + 1 \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -s "key exchange mode: ephemeral" + -c "client hello, adding PSK binder list" \ + -s "Invalid binder." #OPENSSL-SERVER psk mode requires_openssl_tls1_3 From ba627bfd0d76dd91751cf178948953a149d4834d Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 23 Sep 2022 09:58:22 +0800 Subject: [PATCH 0398/1028] improve document about session tickets Signed-off-by: Jerry Yu --- include/mbedtls/ssl.h | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index ce2594991c..0517e37ac5 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -4137,16 +4137,17 @@ void mbedtls_ssl_conf_session_tickets( mbedtls_ssl_config *conf, int use_tickets defined(MBEDTLS_SSL_SRV_C) && \ defined(MBEDTLS_SSL_PROTO_TLS1_3) /** -* \brief Number of NewSessionTicket messages for the server to send - * after handshake completion. + * \brief Number of NewSessionTicket messages for the server to send + * after handshake completion. + * * \note The default value is - * MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS. - * \note In case of a session resumption, this setting only partially - * apply. At most one ticket is sent in that case to just review the - * pool of tickets of the client. The rationale is to avoid the - * number of tickets on the server to become rapidly out of - * control when the server has the same configuration for all its - * connection instances. + * \c MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS. + * + * \note In case of a session resumption, this setting only partially apply. + * At most one ticket is sent in that case to just renew the pool of + * tickets of the client. The rationale is to avoid the number of + * tickets on the server to become rapidly out of control when the + * server has the same configuration for all its connection instances. * * \param conf SSL configuration * \param num_tickets Number of NewSessionTicket. From 210727f3b1346545b2a5bc29838d101b3682b4c2 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Fri, 23 Sep 2022 07:25:40 +0000 Subject: [PATCH 0399/1028] Skip some psk cases cause wrong fallback to ephemeral Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 36 +++++++++++++++++++++----- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 0883d702b7..629a998182 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1835,9 +1835,21 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail - no common psk" \ -c "client hello, adding PSK binder list" \ -s "Invalid binder." +""" + Currently server side will not check whether client + support ephemeral mode or not, it will cause improper + fallback. It's a bit complicated cause there is no good + way to pass the ephemeral kex mode from client to server, + will create one issue to solve the bug. + Skip this test case temporarily. +""" +SKIP_NEXT="YES" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -1860,9 +1872,14 @@ run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, good" \ -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" +# Skip this test case temporarily. +SKIP_NEXT="YES" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ @@ -1936,6 +1953,8 @@ run_test "TLS 1.3: m->m: psk_ephemeral/all, good" \ -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" +# Skip this test case temporarily. +SKIP_NEXT="YES" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -2036,7 +2055,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, good" \ - "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2049,20 +2068,19 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail - no common id" \ - "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ - 0 \ + 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -s "No matched PSK or ticket" \ - -s "key exchange mode: ephemeral" + -s "No matched PSK or ticket" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail - no common psk" \ - "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2274,6 +2292,8 @@ run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail - no common psk" \ -c "client hello, adding psk_key_exchange_modes extension" \ -s "ClientHello message misses mandatory extensions." +# Skip this test case temporarily. +SKIP_NEXT="YES" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -2299,6 +2319,8 @@ run_test "TLS 1.3: m->m: psk_all/ephemeral_all, good" \ -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" +# Skip this test case temporarily. +SKIP_NEXT="YES" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -2375,6 +2397,8 @@ run_test "TLS 1.3: m->m: psk_all/all, good" \ -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" +# Skip this test case temporarily. +SKIP_NEXT="YES" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C From f29c2a53134fa690edfc50f32ce47586e8c40137 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 23 Sep 2022 15:25:27 +0200 Subject: [PATCH 0400/1028] Add initialization for structures Signed-off-by: Gabor Mezei --- tests/suites/test_suite_ecdh.function | 2 ++ tests/suites/test_suite_ecp.function | 3 +++ 2 files changed, 5 insertions(+) diff --git a/tests/suites/test_suite_ecdh.function b/tests/suites/test_suite_ecdh.function index e23b47199e..f52e5b885c 100644 --- a/tests/suites/test_suite_ecdh.function +++ b/tests/suites/test_suite_ecdh.function @@ -50,6 +50,8 @@ void ecdh_invalid_param( ) mbedtls_ecp_keypair kp; int invalid_side = 42; + mbedtls_ecp_keypair_init( &kp ); + TEST_EQUAL( MBEDTLS_ERR_ECP_BAD_INPUT_DATA, mbedtls_ecdh_get_params( &ctx, &kp, invalid_side ) ); diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function index 42d69b43a2..7d29e525ed 100644 --- a/tests/suites/test_suite_ecp.function +++ b/tests/suites/test_suite_ecp.function @@ -72,6 +72,9 @@ void ecp_invalid_param( ) size_t olen; unsigned char buf[42] = { 0 }; + mbedtls_ecp_group_init( &grp ); + mbedtls_ecp_point_init( &P ); + TEST_EQUAL( MBEDTLS_ERR_ECP_BAD_INPUT_DATA, mbedtls_ecp_point_write_binary( &grp, &P, invalid_fmt, From ac8195f4f7485ccffb116ede51de5ccf79e79f02 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Mon, 26 Sep 2022 04:01:06 +0000 Subject: [PATCH 0401/1028] Fix wrongly kex mode fallback issue in psk cases Signed-off-by: Xiaokang Qian --- library/ssl_tls13_client.c | 22 ++++++++++++---- tests/opt-testcases/tls13-kex-modes.sh | 35 ++++---------------------- 2 files changed, 22 insertions(+), 35 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 714acb95c6..8af7035045 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1687,19 +1687,16 @@ static int ssl_tls13_postprocess_server_hello( mbedtls_ssl_context *ssl ) /* Only the pre_shared_key extension was received */ case MBEDTLS_SSL_EXT_PRE_SHARED_KEY: handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "key exchange mode: psk" ) ); break; /* Only the key_share extension was received */ case MBEDTLS_SSL_EXT_KEY_SHARE: handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "key exchange mode: ephemeral" ) ); break; /* Both the pre_shared_key and key_share extensions were received */ case ( MBEDTLS_SSL_EXT_PRE_SHARED_KEY | MBEDTLS_SSL_EXT_KEY_SHARE ): handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "key exchange mode: psk_ephemeral" ) ); break; /* Neither pre_shared_key nor key_share extension was received */ @@ -1711,10 +1708,25 @@ static int ssl_tls13_postprocess_server_hello( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_DEBUG_MSG( 3, ( "Server selected key exchange mode: %s", - handshake->key_exchange_mode == 1 ? "psk" : - (handshake->key_exchange_mode == 2 ? "ephemeral" : + handshake->key_exchange_mode == + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK ? "psk" : + (handshake->key_exchange_mode == + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL ? "ephemeral" : "psk_ephemeral")) ); + if( !mbedtls_ssl_conf_tls13_check_kex_modes( ssl, handshake->key_exchange_mode ) ) + { + ret = MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; + MBEDTLS_SSL_DEBUG_MSG( 2, + ( "Not supported kex mode in client: %s", + handshake->key_exchange_mode == + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK ? "psk" : + (handshake->key_exchange_mode == + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL ? "ephemeral" : + "psk_ephemeral")) ); + goto cleanup; + } + /* Start the TLS 1.3 key schedule: Set the PSK and derive early secret. * * TODO: We don't have to do this in case we offered 0-RTT and the diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 629a998182..d949b5366b 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1835,15 +1835,6 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail - no common psk" \ -c "client hello, adding PSK binder list" \ -s "Invalid binder." -""" - Currently server side will not check whether client - support ephemeral mode or not, it will cause improper - fallback. It's a bit complicated cause there is no good - way to pass the ephemeral kex mode from client to server, - will create one issue to solve the bug. - Skip this test case temporarily. -""" -SKIP_NEXT="YES" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -1856,8 +1847,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral, fail - no common kex mode" 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "ClientHello message misses mandatory extensions." + -c "client hello, adding PSK binder list" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C @@ -1872,8 +1862,6 @@ run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, good" \ -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" -# Skip this test case temporarily. -SKIP_NEXT="YES" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_SRV_C @@ -1887,8 +1875,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail - no common id" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -s "No matched PSK or ticket" \ - -s "ClientHello message misses mandatory extensions." + -s "No matched PSK or ticket" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C @@ -1953,8 +1940,6 @@ run_test "TLS 1.3: m->m: psk_ephemeral/all, good" \ -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" -# Skip this test case temporarily. -SKIP_NEXT="YES" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -1966,7 +1951,6 @@ run_test "TLS 1.3: m->m: psk_ephemeral/all, fail - no common id" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -s "No matched PSK or ticket" \ - -s "ClientHello message misses mandatory extensions." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C @@ -2292,8 +2276,6 @@ run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail - no common psk" \ -c "client hello, adding psk_key_exchange_modes extension" \ -s "ClientHello message misses mandatory extensions." -# Skip this test case temporarily. -SKIP_NEXT="YES" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -2303,8 +2285,7 @@ run_test "TLS 1.3: m->m: psk_all/ephemeral, fail - no common kex mode" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "ClientHello message misses mandatory extensions." + -c "client hello, adding PSK binder list" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C @@ -2319,8 +2300,6 @@ run_test "TLS 1.3: m->m: psk_all/ephemeral_all, good" \ -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" -# Skip this test case temporarily. -SKIP_NEXT="YES" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -2331,8 +2310,7 @@ run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail - no common id" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -s "No matched PSK or ticket" \ - -s "ClientHello message misses mandatory extensions." + -s "No matched PSK or ticket" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C @@ -2397,8 +2375,6 @@ run_test "TLS 1.3: m->m: psk_all/all, good" \ -c "Server selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" -# Skip this test case temporarily. -SKIP_NEXT="YES" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -2409,8 +2385,7 @@ run_test "TLS 1.3: m->m: psk_all/all, fail - no common id" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -s "No matched PSK or ticket" \ - -s "ClientHello message misses mandatory extensions." + -s "No matched PSK or ticket" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C From 5beec4b339eedd4907a429d1616bc8d225abe670 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Mon, 26 Sep 2022 08:23:45 +0000 Subject: [PATCH 0402/1028] Refine ssl_get_kex_mode_str() for easy automatic generation Signed-off-by: Xiaokang Qian --- library/ssl_tls13_client.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 8af7035045..84cf039f22 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1667,6 +1667,21 @@ cleanup: return( ret ); } +char *ssl_get_kex_mode_str(int mode) +{ + switch( mode ) + { + case MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK: + return "psk"; + case MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL: + return "ephemeral"; + case MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL: + return "psk_ephemeral"; + default: + return "unknown mode"; + } +} + MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_postprocess_server_hello( mbedtls_ssl_context *ssl ) { @@ -1706,27 +1721,19 @@ static int ssl_tls13_postprocess_server_hello( mbedtls_ssl_context *ssl ) goto cleanup; } - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "Server selected key exchange mode: %s", - handshake->key_exchange_mode == - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK ? "psk" : - (handshake->key_exchange_mode == - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL ? "ephemeral" : - "psk_ephemeral")) ); - if( !mbedtls_ssl_conf_tls13_check_kex_modes( ssl, handshake->key_exchange_mode ) ) { ret = MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; MBEDTLS_SSL_DEBUG_MSG( 2, - ( "Not supported kex mode in client: %s", - handshake->key_exchange_mode == - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK ? "psk" : - (handshake->key_exchange_mode == - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL ? "ephemeral" : - "psk_ephemeral")) ); + ( "Key exchange mode(%s) is not configured supported.", + ssl_get_kex_mode_str( handshake->key_exchange_mode ) ) ); goto cleanup; } + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "Server selected key exchange mode: %s", + ssl_get_kex_mode_str( handshake->key_exchange_mode ) ) ); + /* Start the TLS 1.3 key schedule: Set the PSK and derive early secret. * * TODO: We don't have to do this in case we offered 0-RTT and the From 954d5769ef14bb21fdd5349562d0c7b678c4e88e Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Mon, 26 Sep 2022 08:40:10 +0000 Subject: [PATCH 0403/1028] PSK: change descriptions base on comments Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 34 ++++++++++++++------------ 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index d949b5366b..f518d3865c 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1645,7 +1645,7 @@ run_test "TLS 1.3: m->m: psk/psk, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk" \ + -c "Server selected key exchange mode: psk$" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -1718,7 +1718,7 @@ run_test "TLS 1.3: m->m: psk/psk_all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk" \ + -c "Server selected key exchange mode: psk$" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -1756,7 +1756,7 @@ run_test "TLS 1.3: m->m: psk/all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk" \ + -c "Server selected key exchange mode: psk$" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2102,7 +2102,7 @@ run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,no common id,fallback to ephemeral" \ +run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,no common id,fallback" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2115,7 +2115,7 @@ run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,no common id,fallba requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,no common psk,fallback to ephemeral" \ +run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,no common psk,fallback" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2212,7 +2212,7 @@ run_test "TLS 1.3: m->m: psk_all/psk, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk" \ + -c "Server selected key exchange mode: psk$" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2270,11 +2270,12 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail - no common psk" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ - "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ - -c "skip pre_shared_key extensions" \ + -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ - -s "ClientHello message misses mandatory extensions." + -c "client hello, adding PSK binder list" \ + -s "Invalid binder." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C @@ -2410,19 +2411,20 @@ run_test "TLS 1.3: m->m: all/psk, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk" \ + -c "Server selected key exchange mode: psk$" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: all/psk, fail - no common kex mode" \ +run_test "TLS 1.3: m->m: all/psk, fail - no common id" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ + -s "No matched PSK or ticket" \ -s "ClientHello message misses mandatory extensions." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2581,7 +2583,7 @@ run_test "TLS 1.3: m->m: all/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: all/all, good - no common id, fallback to ephemeral" \ +run_test "TLS 1.3: m->m: all/all, good - no common id, fallback" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ @@ -2620,7 +2622,7 @@ run_test "TLS 1.3: m->O: psk/all, good" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: psk" \ + -c "Server selected key exchange mode: psk$" \ -c "HTTP/1.0 200 ok" requires_openssl_tls1_3 @@ -2851,7 +2853,7 @@ run_test "TLS 1.3: m->G: psk/all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: psk" \ + -c "Server selected key exchange mode: psk$" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2889,7 +2891,7 @@ run_test "TLS 1.3: m->G: psk_all/all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: psk" \ + -c "Server selected key exchange mode: psk$" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3038,7 +3040,7 @@ run_test "TLS 1.3: m->G: all/all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: psk" \ + -c "Server selected key exchange mode: psk$" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 From 96b9f23853213356fb4e0b2b60077d58feee7eb8 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 26 Sep 2022 10:30:46 -0400 Subject: [PATCH 0404/1028] Adjust ECJPAKE_TO_PMS macro value This way the low 8 bits of the identifier indicate that this algorithm is used with SHA-256. Signed-off-by: Andrzej Kurek --- include/psa/crypto_values.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/psa/crypto_values.h b/include/psa/crypto_values.h index 455b6388b3..f050ecc42f 100644 --- a/include/psa/crypto_values.h +++ b/include/psa/crypto_values.h @@ -2031,7 +2031,7 @@ * The only supported curve is secp256r1 (the 256-bit curve in * #PSA_ECC_FAMILY_SECP_R1), so the input must be exactly 65 bytes. */ -#define PSA_ALG_TLS12_ECJPAKE_TO_PMS ((psa_algorithm_t)0x08000600) +#define PSA_ALG_TLS12_ECJPAKE_TO_PMS ((psa_algorithm_t)0x08000609) /* This flag indicates whether the key derivation algorithm is suitable for * use on low-entropy secrets such as password - these algorithms are also From 5603efd525f43865a42f0653048f7a0aebb11115 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 26 Sep 2022 10:49:16 -0400 Subject: [PATCH 0405/1028] Improve readability and formatting Also use a sizeof instead of a constant for zeroization, as requested in review. Signed-off-by: Andrzej Kurek --- library/psa_crypto.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 663b645bbb..0b21eb083d 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -4355,7 +4355,7 @@ psa_status_t psa_key_derivation_abort( psa_key_derivation_operation_t *operation if( kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS ) { mbedtls_platform_zeroize( operation->ctx.tls12_ecjpake_to_pms.data, - PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE ); + sizeof( operation->ctx.tls12_ecjpake_to_pms.data ) ); } else #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) */ @@ -4647,7 +4647,7 @@ static psa_status_t psa_key_derivation_tls12_ecjpake_to_pms_read( size_t output_length ) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - size_t output_size; + size_t output_size = 0; if( output_length != 32 ) return ( PSA_ERROR_INVALID_ARGUMENT ); @@ -5578,7 +5578,9 @@ static psa_status_t psa_tls12_ecjpake_to_pms_input( { if( data_length != PSA_TLS12_ECJPAKE_TO_PMS_INPUT_SIZE || step != PSA_KEY_DERIVATION_INPUT_SECRET ) + { return( PSA_ERROR_INVALID_ARGUMENT ); + } /* Check if the passed point is in an uncompressed form */ if( data[0] != 0x04 ) From b510cd2c507559ebc6f86e5787464e67d9617a0d Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 26 Sep 2022 10:50:22 -0400 Subject: [PATCH 0406/1028] Fix a copy-paste error - wrong macro used Signed-off-by: Andrzej Kurek --- library/psa_crypto.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 0b21eb083d..553834f76e 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -5175,12 +5175,13 @@ static psa_status_t psa_key_derivation_setup_kdf( return( PSA_ERROR_NOT_SUPPORTED ); } #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) + defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) if( PSA_ALG_IS_HKDF_EXTRACT( kdf_alg ) || ( kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS ) ) operation->capacity = hash_size; else -#endif /* MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT */ +#endif /* MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT || + MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS */ operation->capacity = 255 * hash_size; return( PSA_SUCCESS ); } From 3539f2c90b9e133773a082752bcda07324744003 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 26 Sep 2022 10:56:02 -0400 Subject: [PATCH 0407/1028] Improve readability in ecjpake tests Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_psa_crypto.function | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 355cba533b..b4a83ab8da 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -7234,28 +7234,31 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS:MBEDTLS_SHA256_C */ -void derive_ecjpake_to_pms( data_t *input, int expected_input_status, +void derive_ecjpake_to_pms( data_t *input, int expected_input_status_arg, int derivation_step, - int capacity, int expected_capacity_status, + int capacity, int expected_capacity_status_arg, data_t *expected_output, - int expected_output_status ) + int expected_output_status_arg ) { psa_algorithm_t alg = PSA_ALG_TLS12_ECJPAKE_TO_PMS; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; psa_key_derivation_step_t step = (psa_key_derivation_step_t) derivation_step; uint8_t *output_buffer = NULL; psa_status_t status; + psa_status_t expected_input_status = (psa_status_t) expected_input_status_arg; + psa_status_t expected_capacity_status = (psa_status_t) expected_capacity_status_arg; + psa_status_t expected_output_status = (psa_status_t) expected_output_status_arg; ASSERT_ALLOC( output_buffer, expected_output->len ); PSA_ASSERT( psa_crypto_init() ); PSA_ASSERT( psa_key_derivation_setup( &operation, alg ) ); TEST_EQUAL( psa_key_derivation_set_capacity( &operation, capacity ), - (psa_status_t) expected_capacity_status ); + expected_capacity_status); TEST_EQUAL( psa_key_derivation_input_bytes( &operation, - step, input->x, input->len ), - (psa_status_t) expected_input_status ); + step, input->x, input->len ), + expected_input_status ); if( ( (psa_status_t) expected_input_status ) != PSA_SUCCESS ) goto exit; @@ -7263,7 +7266,7 @@ void derive_ecjpake_to_pms( data_t *input, int expected_input_status, status = psa_key_derivation_output_bytes( &operation, output_buffer, expected_output->len ); - TEST_EQUAL( status, (psa_status_t) expected_output_status ); + TEST_EQUAL( status, expected_output_status ); if( expected_output->len != 0 && expected_output_status == PSA_SUCCESS ) ASSERT_COMPARE( output_buffer, expected_output->len, expected_output->x, expected_output->len ); From e09aff8f5a46cba41a280739d23fa44ec0940f15 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 26 Sep 2022 10:59:31 -0400 Subject: [PATCH 0408/1028] Add information about ECJPAKE_TO_PMS output size expectations Signed-off-by: Andrzej Kurek --- include/psa/crypto_values.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/psa/crypto_values.h b/include/psa/crypto_values.h index f050ecc42f..b465ddb14c 100644 --- a/include/psa/crypto_values.h +++ b/include/psa/crypto_values.h @@ -2030,6 +2030,8 @@ * #PSA_KEY_DERIVATION_INPUT_SECRET is the shared secret K from EC J-PAKE. * The only supported curve is secp256r1 (the 256-bit curve in * #PSA_ECC_FAMILY_SECP_R1), so the input must be exactly 65 bytes. + * The output has to be read as a single chunk of 32 bytes, defined as + * PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE. */ #define PSA_ALG_TLS12_ECJPAKE_TO_PMS ((psa_algorithm_t)0x08000609) From b72dac4ed745af24eb7ff4e6408f5f629f5ec796 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 27 Sep 2022 08:56:47 +0200 Subject: [PATCH 0409/1028] Fix PSA identifier of RSA_PKCS1V15 signing algorithms Signed-off-by: Ronald Cron --- library/ssl_tls13_server.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index a854080847..78d3449a59 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -917,9 +917,11 @@ static psa_algorithm_t ssl_tls13_iana_sig_alg_to_psa_alg( uint16_t sig_alg ) case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512: return( PSA_ALG_RSA_PSS( PSA_ALG_SHA_512 ) ); case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256: + return( PSA_ALG_RSA_PKCS1V15_SIGN( PSA_ALG_SHA_256 ) ); case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384: + return( PSA_ALG_RSA_PKCS1V15_SIGN( PSA_ALG_SHA_384 ) ); case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512: - return( PSA_ALG_RSA_PKCS1V15_CRYPT ); + return( PSA_ALG_RSA_PKCS1V15_SIGN( PSA_ALG_SHA_512 ) ); default: return( PSA_ALG_NONE ); } From cb6e96305f5d2c6adb8726ffef0a5d4b5afe3e30 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Mon, 26 Sep 2022 11:59:32 +0000 Subject: [PATCH 0410/1028] Change kex mode string name Signed-off-by: Xiaokang Qian --- library/ssl_tls13_client.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 84cf039f22..8f955e6bc6 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1667,7 +1667,8 @@ cleanup: return( ret ); } -char *ssl_get_kex_mode_str(int mode) +#if defined(MBEDTLS_DEBUG_C) +static const char *ssl_tls13_get_kex_mode_str(int mode) { switch( mode ) { @@ -1681,6 +1682,7 @@ char *ssl_get_kex_mode_str(int mode) return "unknown mode"; } } +#endif /* MBEDTLS_DEBUG_C */ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_postprocess_server_hello( mbedtls_ssl_context *ssl ) @@ -1726,13 +1728,13 @@ static int ssl_tls13_postprocess_server_hello( mbedtls_ssl_context *ssl ) ret = MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; MBEDTLS_SSL_DEBUG_MSG( 2, ( "Key exchange mode(%s) is not configured supported.", - ssl_get_kex_mode_str( handshake->key_exchange_mode ) ) ); + ssl_tls13_get_kex_mode_str( handshake->key_exchange_mode ) ) ); goto cleanup; } MBEDTLS_SSL_DEBUG_MSG( 3, ( "Server selected key exchange mode: %s", - ssl_get_kex_mode_str( handshake->key_exchange_mode ) ) ); + ssl_tls13_get_kex_mode_str( handshake->key_exchange_mode ) ) ); /* Start the TLS 1.3 key schedule: Set the PSK and derive early secret. * From c27a9074c4f5323c0d675760dcc499a169e51ee1 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 27 Sep 2022 10:02:42 +0200 Subject: [PATCH 0411/1028] tls13: server: Add comment when trying another sig alg Signed-off-by: Ronald Cron --- library/ssl_tls13_generic.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 858fe0316a..2fe382b2ba 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1021,6 +1021,12 @@ static int ssl_tls13_write_certificate_verify_body( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 2, ( "CertificateVerify signature failed with %s", mbedtls_ssl_sig_alg_to_str( *sig_alg ) ) ); MBEDTLS_SSL_DEBUG_RET( 2, "mbedtls_pk_sign_ext", ret ); + + /* The signature failed. This is possible if the private key + * was not suitable for the signature operation as purposely we + * did not check its suitability completely. Let's try with + * another signature algorithm. + */ continue; } From f13925c02203c7cffe95c37846eeda24b1a109b3 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 27 Sep 2022 05:16:10 -0400 Subject: [PATCH 0412/1028] Add a changelog entry for ECJPAKE to PMS KDF Signed-off-by: Andrzej Kurek --- ChangeLog.d/ecjpake_to_pms.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 ChangeLog.d/ecjpake_to_pms.txt diff --git a/ChangeLog.d/ecjpake_to_pms.txt b/ChangeLog.d/ecjpake_to_pms.txt new file mode 100644 index 0000000000..4dd2075de0 --- /dev/null +++ b/ChangeLog.d/ecjpake_to_pms.txt @@ -0,0 +1,5 @@ +API changes + * Add an ad-hoc key derivation function handling ECJPAKE to PMS + calculation that can be used to derive the session secret in TLS 1.2, + as described in draft-cragie-tls-ecjpake-01. This can be achieved by + using PSA_ALG_TLS12_ECJPAKE_TO_PMS as the key derivation algorithm. From e12d30d751095bf8aa238090585483716c8c7981 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 27 Sep 2022 11:34:14 +0000 Subject: [PATCH 0413/1028] Move psk related cases into tls13-kex-modes.sh Signed-off-by: Xiaokang Qian --- tests/ssl-opt.sh | 49 ------------------------------------------------ 1 file changed, 49 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 0c72600f0e..f4fe100d63 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12090,55 +12090,6 @@ run_test "TLS 1.3: Server side check - mbedtls with sni" \ -s "parse ServerName extension" \ -s "HTTP/1.0 200 OK" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK" \ - "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK - openssl" \ - "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 ok" - -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_gnutls_tls1_3 -requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3, default suite, PSK - gnutls" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ - "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ - 0 \ - -c "=> write client hello" \ - -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ - -c "client hello, adding psk_key_exchange_modes extension" \ - -c "client hello, adding PSK binder list" \ - -s "Parsing extension 'PSK Key Exchange Modes/45'" \ - -s "Parsing extension 'Pre Shared Key/41'" \ - -c "<= write client hello" \ - -c "HTTP/1.0 200 OK" - for i in opt-testcases/*.sh do TEST_SUITE_NAME=${i##*/} From 9c172042b62ebaffe0a2e25c96cb8776e0aeac4f Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 27 Sep 2022 11:41:50 +0000 Subject: [PATCH 0414/1028] Change cases description base on comments Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 80 +++++++++++++------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index f518d3865c..9ceb9ba30b 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1651,7 +1651,7 @@ run_test "TLS 1.3: m->m: psk/psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk/psk, fail - no common id" \ +run_test "TLS 1.3: m->m: psk/psk, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ @@ -1663,7 +1663,7 @@ run_test "TLS 1.3: m->m: psk/psk, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk/psk, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk/psk, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ 1 \ @@ -1724,7 +1724,7 @@ run_test "TLS 1.3: m->m: psk/psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk/psk_all, fail - no common id" \ +run_test "TLS 1.3: m->m: psk/psk_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ @@ -1737,7 +1737,7 @@ run_test "TLS 1.3: m->m: psk/psk_all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk/psk_all, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk/psk_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ 1 \ @@ -1762,7 +1762,7 @@ run_test "TLS 1.3: m->m: psk/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk/all, fail - no common id" \ +run_test "TLS 1.3: m->m: psk/all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ 1 \ @@ -1775,7 +1775,7 @@ run_test "TLS 1.3: m->m: psk/all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk/all, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk/all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ 1 \ @@ -1813,7 +1813,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail - no common id" \ +run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1826,7 +1826,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1868,7 +1868,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail - no common id" \ +run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1880,7 +1880,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1905,7 +1905,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail - no common id" \ +run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1918,7 +1918,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1943,7 +1943,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_ephemeral/all, fail - no common id" \ +run_test "TLS 1.3: m->m: psk_ephemeral/all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -1955,7 +1955,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_ephemeral/all, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk_ephemeral/all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 1 \ @@ -2051,7 +2051,7 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail - no common id" \ +run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 1 \ @@ -2063,7 +2063,7 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail - no common psk" \ +run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ @@ -2141,7 +2141,7 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail - no common id" \ +run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 1 \ @@ -2154,7 +2154,7 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail - no common psk" \ +run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ @@ -2179,7 +2179,7 @@ run_test "TLS 1.3: m->m: ephemeral_all/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: ephemeral_all/all, fail - no common id" \ +run_test "TLS 1.3: m->m: ephemeral_all/all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2192,7 +2192,7 @@ run_test "TLS 1.3: m->m: ephemeral_all/all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: ephemeral_all/all, fail - no common psk" \ +run_test "TLS 1.3: m->m: ephemeral_all/all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ @@ -2218,7 +2218,7 @@ run_test "TLS 1.3: m->m: psk_all/psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_all/psk, fail - no common id" \ +run_test "TLS 1.3: m->m: psk_all/psk, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2230,7 +2230,7 @@ run_test "TLS 1.3: m->m: psk_all/psk, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_all/psk, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk_all/psk, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2255,7 +2255,7 @@ run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail - no common id" \ +run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2268,7 +2268,7 @@ run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2304,7 +2304,7 @@ run_test "TLS 1.3: m->m: psk_all/ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail - no common id" \ +run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2316,7 +2316,7 @@ run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_all/ephemeral_all, good - no common psk" \ +run_test "TLS 1.3: m->m: psk_all/ephemeral_all, good, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2341,7 +2341,7 @@ run_test "TLS 1.3: m->m: psk_all/psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_all/psk_all, fail - no common id" \ +run_test "TLS 1.3: m->m: psk_all/psk_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2354,7 +2354,7 @@ run_test "TLS 1.3: m->m: psk_all/psk_all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_all/psk_all, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk_all/psk_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2379,7 +2379,7 @@ run_test "TLS 1.3: m->m: psk_all/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_all/all, fail - no common id" \ +run_test "TLS 1.3: m->m: psk_all/all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ 1 \ @@ -2391,7 +2391,7 @@ run_test "TLS 1.3: m->m: psk_all/all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_all/all, fail - no common psk" \ +run_test "TLS 1.3: m->m: psk_all/all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ @@ -2417,7 +2417,7 @@ run_test "TLS 1.3: m->m: all/psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: all/psk, fail - no common id" \ +run_test "TLS 1.3: m->m: all/psk, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ @@ -2430,7 +2430,7 @@ run_test "TLS 1.3: m->m: all/psk, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: all/psk, fail - no common psk" \ +run_test "TLS 1.3: m->m: all/psk, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ @@ -2455,7 +2455,7 @@ run_test "TLS 1.3: m->m: all/psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: all/psk_ephemeral, fail - no common id" \ +run_test "TLS 1.3: m->m: all/psk_ephemeral, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ @@ -2468,7 +2468,7 @@ run_test "TLS 1.3: m->m: all/psk_ephemeral, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: all/psk_ephemeral, fail - no common psk" \ +run_test "TLS 1.3: m->m: all/psk_ephemeral, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ @@ -2506,7 +2506,7 @@ run_test "TLS 1.3: m->m: all/ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: all/ephemeral_all, good - no common id" \ +run_test "TLS 1.3: m->m: all/ephemeral_all, good, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ @@ -2520,7 +2520,7 @@ run_test "TLS 1.3: m->m: all/ephemeral_all, good - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: all/ephemeral_all, fail - no common psk" \ +run_test "TLS 1.3: m->m: all/ephemeral_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ @@ -2545,7 +2545,7 @@ run_test "TLS 1.3: m->m: all/psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: all/psk_all, fail - no common id" \ +run_test "TLS 1.3: m->m: all/psk_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 1 \ @@ -2558,7 +2558,7 @@ run_test "TLS 1.3: m->m: all/psk_all, fail - no common id" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: all/psk_all, fail - no common psk" \ +run_test "TLS 1.3: m->m: all/psk_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ @@ -2583,7 +2583,7 @@ run_test "TLS 1.3: m->m: all/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: all/all, good - no common id, fallback" \ +run_test "TLS 1.3: m->m: all/all, good, key id mismatch, fallback" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ @@ -2596,7 +2596,7 @@ run_test "TLS 1.3: m->m: all/all, good - no common id, fallback" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: all/all, fail - no common psk" \ +run_test "TLS 1.3: m->m: all/all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ 1 \ From 11c362a050670504a1ea57527858cdfa1cfbf5ae Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 27 Sep 2022 13:34:31 +0200 Subject: [PATCH 0415/1028] Add component to build and test default config with stream cipher only Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 28a20d2b77..862b8822be 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1274,6 +1274,38 @@ component_test_crypto_full_no_cipher () { make test } +component_test_crypto_default_stream_cipher_only () { + msg "build: default with only stream cipher" + + # Disable all ciphers + # AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C + scripts/config.py unset MBEDTLS_GCM_C + scripts/config.py unset MBEDTLS_CCM_C + scripts/config.py unset MBEDTLS_CHACHAPOLY_C + # CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) + scripts/config.py unset MBEDTLS_CIPHER_MODE_CBC + scripts/config.py unset MBEDTLS_AES_C + scripts/config.py unset MBEDTLS_CAMELLIA_C + scripts/config.py unset MBEDTLS_ARIA_C + scripts/config.py unset MBEDTLS_DES_C + # CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) + scripts/config.py unset MBEDTLS_SSL_ENCRYPT_THEN_MAC + # stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER) + scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER + # Indirect dependencies + scripts/config.py unset MBEDTLS_CTR_DRBG_C + scripts/config.py unset MBEDTLS_CMAC_C + scripts/config.py unset MBEDTLS_NIST_KW_C + + # Enable stream(null) cipher only + scripts/config.py set MBEDTLS_CIPHER_NULL_CIPHER + make + + msg "test: default with only stream cipher" + make test +} + + component_test_psa_external_rng_use_psa_crypto () { msg "build: full + PSA_CRYPTO_EXTERNAL_RNG + USE_PSA_CRYPTO minus CTR_DRBG" scripts/config.py full From 89ad62352dae7fede94bcfec3717e9c17c40be6b Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 27 Sep 2022 13:36:12 +0200 Subject: [PATCH 0416/1028] Fix guards for mbedtls_ct_size_mask() and mbedtls_ct_memcpy_if_eq() Both functions are used when MBEDTLS_SSL_SOME_SUITES_USE_MAC is defined not MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC. Signed-off-by: Przemek Stekiel --- library/constant_time.c | 8 ++++---- library/constant_time_internal.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/library/constant_time.c b/library/constant_time.c index 8980701e57..01a6976d88 100644 --- a/library/constant_time.c +++ b/library/constant_time.c @@ -81,7 +81,7 @@ unsigned mbedtls_ct_uint_mask( unsigned value ) #endif } -#if defined(MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC) +#if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) size_t mbedtls_ct_size_mask( size_t value ) { @@ -97,7 +97,7 @@ size_t mbedtls_ct_size_mask( size_t value ) #endif } -#endif /* MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC */ +#endif /* MBEDTLS_SSL_SOME_SUITES_USE_MAC */ #if defined(MBEDTLS_BIGNUM_C) @@ -404,7 +404,7 @@ static void mbedtls_ct_mem_move_to_left( void *start, #endif /* MBEDTLS_PKCS1_V15 && MBEDTLS_RSA_C && ! MBEDTLS_RSA_ALT */ -#if defined(MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC) +#if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) void mbedtls_ct_memcpy_if_eq( unsigned char *dest, const unsigned char *src, @@ -654,7 +654,7 @@ cleanup: } #endif /* MBEDTLS_USE_PSA_CRYPTO */ -#endif /* MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC */ +#endif /* MBEDTLS_SSL_SOME_SUITES_USE_MAC */ #if defined(MBEDTLS_BIGNUM_C) diff --git a/library/constant_time_internal.h b/library/constant_time_internal.h index fc24ae59a5..340a5882d8 100644 --- a/library/constant_time_internal.h +++ b/library/constant_time_internal.h @@ -213,7 +213,7 @@ signed char mbedtls_ct_base64_dec_value( unsigned char c ); #endif /* MBEDTLS_BASE64_C */ -#if defined(MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC) +#if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) /** Conditional memcpy without branches. * @@ -321,7 +321,7 @@ int mbedtls_ct_hmac( mbedtls_md_context_t *ctx, unsigned char *output ); #endif /* MBEDTLS_USE_PSA_CRYPTO */ -#endif /* MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC */ +#endif /* MBEDTLS_SSL_SOME_SUITES_USE_MAC */ #if defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_RSA_ALT) From a82290b7271a3cd489e62a0f98d24622dbbf4bbe Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 27 Sep 2022 13:41:12 +0200 Subject: [PATCH 0417/1028] Fix guards for mbedtls_ssl_ticket_write() and mbedtls_ssl_ticket_parse() functions Both functions are calling mbedtls_cipher_auth_[encrypt/decrypt]_ext() functions. These functions are guarded with MBEDTLS_CIPHER_MODE_AEAD || MBEDTLS_NIST_KW_C flags - make it consistent. As a result ssl_server2 won't build now with MBEDTLS_SSL_SESSION_TICKETS enabled (mbedtls_cipher_auth_[encrypt/decrypt]_ext() functions not available). Mark MBEDTLS_SSL_SESSION_TICKETS as dependent on MBEDTLS_CIPHER_MODE_AEAD || MBEDTLS_NIST_KW_C and disable MBEDTLS_SSL_SESSION_TICKETS in stream cipher only build. Signed-off-by: Przemek Stekiel --- include/mbedtls/check_config.h | 3 +++ library/ssl_ticket.c | 7 ++++++- tests/scripts/all.sh | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 10387061ab..1874e51cbd 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -962,6 +962,9 @@ #error "MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH defined, but not all prerequisites" #endif +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && !( defined(MBEDTLS_CIPHER_MODE_AEAD) || defined(MBEDTLS_NIST_KW_C) ) +#error "MBEDTLS_SSL_SESSION_TICKETS defined, but not all prerequisites" +#endif /* Reject attempts to enable options that have been removed and that could diff --git a/library/ssl_ticket.c b/library/ssl_ticket.c index 359686afa3..5398c3970c 100644 --- a/library/ssl_ticket.c +++ b/library/ssl_ticket.c @@ -114,6 +114,7 @@ static int ssl_ticket_gen_key( mbedtls_ssl_ticket_context *ctx, /* * Rotate/generate keys if necessary */ +#if defined(MBEDTLS_CIPHER_MODE_AEAD) || defined(MBEDTLS_NIST_KW_C) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_ticket_update_keys( mbedtls_ssl_ticket_context *ctx ) { @@ -150,6 +151,7 @@ static int ssl_ticket_update_keys( mbedtls_ssl_ticket_context *ctx ) #endif /* MBEDTLS_HAVE_TIME */ return( 0 ); } +#endif /* * Rotate active session ticket encryption key @@ -293,7 +295,7 @@ int mbedtls_ssl_ticket_setup( mbedtls_ssl_ticket_context *ctx, * The key_name, iv, and length of encrypted_state are the additional * authenticated data. */ - +#if defined(MBEDTLS_CIPHER_MODE_AEAD) || defined(MBEDTLS_NIST_KW_C) int mbedtls_ssl_ticket_write( void *p_ticket, const mbedtls_ssl_session *session, unsigned char *start, @@ -390,7 +392,9 @@ cleanup: return( ret ); } +#endif +#if defined(MBEDTLS_CIPHER_MODE_AEAD) || defined(MBEDTLS_NIST_KW_C) /* * Select key based on name */ @@ -517,6 +521,7 @@ cleanup: return( ret ); } +#endif /* * Free context diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 862b8822be..64290544f2 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1296,6 +1296,7 @@ component_test_crypto_default_stream_cipher_only () { scripts/config.py unset MBEDTLS_CTR_DRBG_C scripts/config.py unset MBEDTLS_CMAC_C scripts/config.py unset MBEDTLS_NIST_KW_C + scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS # Enable stream(null) cipher only scripts/config.py set MBEDTLS_CIPHER_NULL_CIPHER From 6f29a6c4b46a6aab2c5cb51e55e55292227e4483 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 27 Sep 2022 13:49:21 +0200 Subject: [PATCH 0418/1028] test_suite_cipher.function: always include aes.h It is done to have MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH macro available (used in tests) Signed-off-by: Przemek Stekiel --- tests/suites/test_suite_cipher.function | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/suites/test_suite_cipher.function b/tests/suites/test_suite_cipher.function index 37468df71a..af617fc56b 100644 --- a/tests/suites/test_suite_cipher.function +++ b/tests/suites/test_suite_cipher.function @@ -1,9 +1,6 @@ /* BEGIN_HEADER */ #include "mbedtls/cipher.h" - -#if defined(MBEDTLS_AES_C) #include "mbedtls/aes.h" -#endif #if defined(MBEDTLS_GCM_C) #include "mbedtls/gcm.h" From 4c49927bad54a255507872701815968453741dfc Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 27 Sep 2022 13:55:37 +0200 Subject: [PATCH 0419/1028] Fix unused variables warnings in default + stream cipher only build Signed-off-by: Przemek Stekiel --- library/psa_crypto.c | 1 + library/ssl_msg.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 4a0bd83316..e45b5d70af 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -3592,6 +3592,7 @@ static psa_status_t psa_aead_check_nonce_length( psa_algorithm_t alg, break; #endif /* PSA_WANT_ALG_CHACHA20_POLY1305 */ default: + (void) nonce_length; return( PSA_ERROR_NOT_SUPPORTED ); } diff --git a/library/ssl_msg.c b/library/ssl_msg.c index dbef29b3f9..06194bd2d6 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -1124,7 +1124,9 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, mbedtls_ssl_transform *transform, mbedtls_record *rec ) { +#if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC) || defined(MBEDTLS_CIPHER_MODE_AEAD) size_t olen; +#endif /* MBEDTLS_SSL_SOME_SUITES_USE_CBC || MBEDTLS_CIPHER_MODE_AEAD */ mbedtls_ssl_mode_t ssl_mode; int ret; From 0bb138241bdda9ffe24e80da8a9c7022534abab2 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 27 Sep 2022 18:48:44 +0200 Subject: [PATCH 0420/1028] Add initialization for structures Signed-off-by: Gabor Mezei --- tests/suites/test_suite_ecdh.function | 1 + tests/suites/test_suite_ecjpake.function | 2 ++ 2 files changed, 3 insertions(+) diff --git a/tests/suites/test_suite_ecdh.function b/tests/suites/test_suite_ecdh.function index f52e5b885c..515a974c6a 100644 --- a/tests/suites/test_suite_ecdh.function +++ b/tests/suites/test_suite_ecdh.function @@ -50,6 +50,7 @@ void ecdh_invalid_param( ) mbedtls_ecp_keypair kp; int invalid_side = 42; + mbedtls_ecdh_init( &ctx ); mbedtls_ecp_keypair_init( &kp ); TEST_EQUAL( MBEDTLS_ERR_ECP_BAD_INPUT_DATA, diff --git a/tests/suites/test_suite_ecjpake.function b/tests/suites/test_suite_ecjpake.function index 47c25e3ae4..d90a5869ea 100644 --- a/tests/suites/test_suite_ecjpake.function +++ b/tests/suites/test_suite_ecjpake.function @@ -109,6 +109,8 @@ void ecjpake_invalid_param( ) mbedtls_md_type_t valid_md = MBEDTLS_MD_SHA256; mbedtls_ecp_group_id valid_group = MBEDTLS_ECP_DP_SECP256R1; + mbedtls_ecjpake_init( &ctx ); + TEST_EQUAL( MBEDTLS_ERR_ECP_BAD_INPUT_DATA, mbedtls_ecjpake_setup( &ctx, invalid_role, From cba39a386f38e4f597d46c190c250c18d9b9cd32 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 27 Sep 2022 19:10:39 +0200 Subject: [PATCH 0421/1028] Add change log Signed-off-by: Ronald Cron --- ChangeLog.d/tls13_sig_alg_selection.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 ChangeLog.d/tls13_sig_alg_selection.txt diff --git a/ChangeLog.d/tls13_sig_alg_selection.txt b/ChangeLog.d/tls13_sig_alg_selection.txt new file mode 100644 index 0000000000..8857750b47 --- /dev/null +++ b/ChangeLog.d/tls13_sig_alg_selection.txt @@ -0,0 +1,3 @@ +Features + * Add support for opaque keys as the private keys associated to certificates + for authentication in TLS 1.3. From ca343ae2808ae30d01d64e28b45f7a871dca514e Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 28 Sep 2022 02:07:54 +0000 Subject: [PATCH 0422/1028] Improve message logs and test cases description in psk Signed-off-by: Xiaokang Qian --- library/ssl_tls13_client.c | 4 +- tests/opt-testcases/tls13-kex-modes.sh | 111 ++++++++++++------------- 2 files changed, 57 insertions(+), 58 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 8f955e6bc6..40e3cfd70d 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1727,13 +1727,13 @@ static int ssl_tls13_postprocess_server_hello( mbedtls_ssl_context *ssl ) { ret = MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; MBEDTLS_SSL_DEBUG_MSG( 2, - ( "Key exchange mode(%s) is not configured supported.", + ( "Key exchange mode(%s) is not supported.", ssl_tls13_get_kex_mode_str( handshake->key_exchange_mode ) ) ); goto cleanup; } MBEDTLS_SSL_DEBUG_MSG( 3, - ( "Server selected key exchange mode: %s", + ( "Selected key exchange mode: %s", ssl_tls13_get_kex_mode_str( handshake->key_exchange_mode ) ) ); /* Start the TLS 1.3 key schedule: Set the PSK and derive early secret. diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 9ceb9ba30b..f0c33461e0 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -1645,7 +1645,7 @@ run_test "TLS 1.3: m->m: psk/psk, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk$" \ + -c "Selected key exchange mode: psk$" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -1718,7 +1718,7 @@ run_test "TLS 1.3: m->m: psk/psk_all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk$" \ + -c "Selected key exchange mode: psk$" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -1756,7 +1756,7 @@ run_test "TLS 1.3: m->m: psk/all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk$" \ + -c "Selected key exchange mode: psk$" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -1807,7 +1807,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -1859,7 +1859,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -1899,7 +1899,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -1937,7 +1937,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -1990,7 +1990,7 @@ run_test "TLS 1.3: m->m: ephemeral/ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ - -c "Server selected key exchange mode: ephemeral" \ + -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2000,7 +2000,7 @@ run_test "TLS 1.3: m->m: ephemeral/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ - -c "Server selected key exchange mode: ephemeral" \ + -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2019,7 +2019,7 @@ run_test "TLS 1.3: m->m: ephemeral/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ - -c "Server selected key exchange mode: ephemeral" \ + -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" # ephemeral_all mode in client @@ -2045,7 +2045,7 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2083,7 +2083,7 @@ run_test "TLS 1.3: m->m: ephemeral_all/ephemeral, good" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -s "key exchange mode: ephemeral" \ - -c "Server selected key exchange mode: ephemeral" \ + -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2096,13 +2096,13 @@ run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,no common id,fallback" \ +run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,key id mismatch,fallback" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2115,15 +2115,14 @@ run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,no common id,fallba requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,no common psk,fallback" \ +run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,key material mismatch,fallback" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ - "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ - 0 \ + "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ + 1 \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -s "No matched PSK or ticket" \ - -s "key exchange mode: ephemeral" + -s "Invalid binder." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C @@ -2135,7 +2134,7 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2173,13 +2172,13 @@ run_test "TLS 1.3: m->m: ephemeral_all/all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: ephemeral_all/all, fail, key id mismatch" \ +run_test "TLS 1.3: m->m: ephemeral_all/all, good, key id mismatch, fallback" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ 0 \ @@ -2212,7 +2211,7 @@ run_test "TLS 1.3: m->m: psk_all/psk, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk$" \ + -c "Selected key exchange mode: psk$" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2249,7 +2248,7 @@ run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2298,7 +2297,7 @@ run_test "TLS 1.3: m->m: psk_all/ephemeral_all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2335,7 +2334,7 @@ run_test "TLS 1.3: m->m: psk_all/psk_all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2373,7 +2372,7 @@ run_test "TLS 1.3: m->m: psk_all/all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2411,7 +2410,7 @@ run_test "TLS 1.3: m->m: all/psk, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk$" \ + -c "Selected key exchange mode: psk$" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2449,7 +2448,7 @@ run_test "TLS 1.3: m->m: all/psk_ephemeral, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2487,7 +2486,7 @@ run_test "TLS 1.3: m->m: all/ephemeral, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: ephemeral" \ + -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2500,13 +2499,13 @@ run_test "TLS 1.3: m->m: all/ephemeral_all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: all/ephemeral_all, good, key id mismatch" \ +run_test "TLS 1.3: m->m: all/ephemeral_all, good, key id mismatch, fallback" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ 0 \ @@ -2514,7 +2513,7 @@ run_test "TLS 1.3: m->m: all/ephemeral_all, good, key id mismatch" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -s "No matched PSK or ticket" \ - -c "Server selected key exchange mode: ephemeral" \ + -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2539,7 +2538,7 @@ run_test "TLS 1.3: m->m: all/psk_all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2577,7 +2576,7 @@ run_test "TLS 1.3: m->m: all/all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2622,7 +2621,7 @@ run_test "TLS 1.3: m->O: psk/all, good" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: psk$" \ + -c "Selected key exchange mode: psk$" \ -c "HTTP/1.0 200 ok" requires_openssl_tls1_3 @@ -2660,7 +2659,7 @@ run_test "TLS 1.3: m->O: psk_all/all, good" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 ok" requires_openssl_tls1_3 @@ -2679,7 +2678,7 @@ run_test "TLS 1.3: m->O: psk_all/ephemeral_all, good" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 ok" #OPENSSL-SERVER psk_ephemeral mode @@ -2699,7 +2698,7 @@ run_test "TLS 1.3: m->O: psk_ephemeral/all, good" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 ok" requires_openssl_tls1_3 @@ -2718,7 +2717,7 @@ run_test "TLS 1.3: m->O: psk_ephemeral/ephemeral_all, good" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 ok" #OPENSSL-SERVER ephemeral mode @@ -2737,7 +2736,7 @@ run_test "TLS 1.3: m->O: ephemeral/all, good" \ -c "skip psk_key_exchange_modes extension" \ -c "<= write client hello" \ -c "found key_shares extension" \ - -c "Server selected key exchange mode: ephemeral" \ + -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 ok" requires_openssl_tls1_3 @@ -2755,7 +2754,7 @@ run_test "TLS 1.3: m->O: ephemeral/ephemeral_all, good" \ -c "skip psk_key_exchange_modes extension" \ -c "<= write client hello" \ -c "found key_shares extension" \ - -c "Server selected key exchange mode: ephemeral" \ + -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 ok" #OPENSSL-SERVER ephemeral_all mode @@ -2774,7 +2773,7 @@ run_test "TLS 1.3: m->O: ephemeral_all/all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "<= write client hello" \ -c "HTTP/1.0 200 ok" @@ -2793,7 +2792,7 @@ run_test "TLS 1.3: m->O: ephemeral_all/ephemeral_all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "<= write client hello" \ -c "HTTP/1.0 200 ok" @@ -2813,7 +2812,7 @@ run_test "TLS 1.3: m->O: all/all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "<= write client hello" \ -c "HTTP/1.0 200 ok" @@ -2832,7 +2831,7 @@ run_test "TLS 1.3: m->O: all/ephemeral_all, good" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ -c "client hello, adding PSK binder list" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "<= write client hello" \ -c "HTTP/1.0 200 ok" @@ -2853,7 +2852,7 @@ run_test "TLS 1.3: m->G: psk/all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: psk$" \ + -c "Selected key exchange mode: psk$" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2891,7 +2890,7 @@ run_test "TLS 1.3: m->G: psk_all/all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: psk$" \ + -c "Selected key exchange mode: psk$" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2929,7 +2928,7 @@ run_test "TLS 1.3: m->G: psk_ephemeral/all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2948,7 +2947,7 @@ run_test "TLS 1.3: m->G: psk_ephemeral/ephemeral_all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" #GNUTLS-SERVER ephemeral mode @@ -2965,7 +2964,7 @@ run_test "TLS 1.3: m->G: ephemeral/all, good" \ -c "skip psk_key_exchange_modes extension" \ -s "Not sending extension (PSK Key Exchange Modes/45)" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: ephemeral" \ + -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -2981,7 +2980,7 @@ run_test "TLS 1.3: m->G: ephemeral/ephemeral_all, good" \ -c "skip psk_key_exchange_modes extension" \ -s "Not sending extension (PSK Key Exchange Modes/45)" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: ephemeral" \ + -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" #GNUTLS-SERVER ephemeral_all mode @@ -3001,7 +3000,7 @@ run_test "TLS 1.3: m->G: ephemeral_all/all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3020,7 +3019,7 @@ run_test "TLS 1.3: m->G: ephemeral_all/ephemeral_all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: psk_ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" #GNUTLS-SERVER all mode @@ -3040,7 +3039,7 @@ run_test "TLS 1.3: m->G: all/all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: psk$" \ + -c "Selected key exchange mode: psk$" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3059,5 +3058,5 @@ run_test "TLS 1.3: m->G: all/ephemeral_all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Server selected key exchange mode: ephemeral" \ + -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" From d582a01073ce8db8698e28cc92430ca283eb7dcf Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 28 Sep 2022 07:59:01 +0200 Subject: [PATCH 0423/1028] Make MBEDTLS_SSL_CONTEXT_SERIALIZATION dependent on AEAD Signed-off-by: Przemek Stekiel --- include/mbedtls/check_config.h | 3 +++ tests/scripts/all.sh | 1 + 2 files changed, 4 insertions(+) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 1874e51cbd..bbace7a3cd 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -966,6 +966,9 @@ #error "MBEDTLS_SSL_SESSION_TICKETS defined, but not all prerequisites" #endif +#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) && !defined(MBEDTLS_CIPHER_MODE_AEAD) +#error "MBEDTLS_SSL_CONTEXT_SERIALIZATION defined, but not all prerequisites" +#endif /* Reject attempts to enable options that have been removed and that could * cause a build to succeed but with features removed. */ diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 64290544f2..124889d1da 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1297,6 +1297,7 @@ component_test_crypto_default_stream_cipher_only () { scripts/config.py unset MBEDTLS_CMAC_C scripts/config.py unset MBEDTLS_NIST_KW_C scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS + scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION # Enable stream(null) cipher only scripts/config.py set MBEDTLS_CIPHER_NULL_CIPHER From e31ba83675e59926a073e36bf694ecf448906395 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 28 Sep 2022 09:44:58 +0200 Subject: [PATCH 0424/1028] Use basic symbols instead MBEDTLS_CIPHER_MODE_AEAD in check config Signed-off-by: Przemek Stekiel --- include/mbedtls/check_config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index bbace7a3cd..fa56eb7095 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -962,11 +962,11 @@ #error "MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH defined, but not all prerequisites" #endif -#if defined(MBEDTLS_SSL_SESSION_TICKETS) && !( defined(MBEDTLS_CIPHER_MODE_AEAD) || defined(MBEDTLS_NIST_KW_C) ) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && !( defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) || defined(MBEDTLS_CHACHAPOLY_C) || defined(MBEDTLS_NIST_KW_C) ) #error "MBEDTLS_SSL_SESSION_TICKETS defined, but not all prerequisites" #endif -#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) && !defined(MBEDTLS_CIPHER_MODE_AEAD) +#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) && !( defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) || defined(MBEDTLS_CHACHAPOLY_C) ) #error "MBEDTLS_SSL_CONTEXT_SERIALIZATION defined, but not all prerequisites" #endif From a70bd9108a93f282d22e423416a0aa2bea731f4b Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 28 Sep 2022 07:50:13 +0000 Subject: [PATCH 0425/1028] Fix the description of psk client cases Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-kex-modes.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index f0c33461e0..3487026206 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -2115,7 +2115,7 @@ run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,key id mismatch,fal requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,key material mismatch,fallback" \ +run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 1 \ @@ -2315,7 +2315,7 @@ run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -run_test "TLS 1.3: m->m: psk_all/ephemeral_all, good, key material mismatch" \ +run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ From 9550c0575773bccb4c252f2efc0e7259a5cc79b6 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 28 Sep 2022 09:51:55 +0200 Subject: [PATCH 0426/1028] Add component to build and test full config with stream cipher only Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 124889d1da..7cab8caae0 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1277,6 +1277,7 @@ component_test_crypto_full_no_cipher () { component_test_crypto_default_stream_cipher_only () { msg "build: default with only stream cipher" + scripts/config.py crypto_full # Disable all ciphers # AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C scripts/config.py unset MBEDTLS_GCM_C @@ -1307,6 +1308,38 @@ component_test_crypto_default_stream_cipher_only () { make test } +component_test_crypto_full_stream_cipher_only () { + msg "build: full with only stream cipher" + + # Disable all ciphers + # AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C + scripts/config.py unset MBEDTLS_GCM_C + scripts/config.py unset MBEDTLS_CCM_C + scripts/config.py unset MBEDTLS_CHACHAPOLY_C + # CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) + scripts/config.py unset MBEDTLS_CIPHER_MODE_CBC + scripts/config.py unset MBEDTLS_AES_C + scripts/config.py unset MBEDTLS_CAMELLIA_C + scripts/config.py unset MBEDTLS_ARIA_C + scripts/config.py unset MBEDTLS_DES_C + # CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) + scripts/config.py unset MBEDTLS_SSL_ENCRYPT_THEN_MAC + # stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER) + scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER + # Indirect dependencies + scripts/config.py unset MBEDTLS_CTR_DRBG_C + scripts/config.py unset MBEDTLS_CMAC_C + scripts/config.py unset MBEDTLS_NIST_KW_C + scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS + scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION + + # Enable stream(null) cipher only + scripts/config.py set MBEDTLS_CIPHER_NULL_CIPHER + make + + msg "test: full with only stream cipher" + make test +} component_test_psa_external_rng_use_psa_crypto () { msg "build: full + PSA_CRYPTO_EXTERNAL_RNG + USE_PSA_CRYPTO minus CTR_DRBG" From b0de1c040bf12c7fd8b9a4e6dbcfccff8aac8f2c Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 28 Sep 2022 10:23:22 +0200 Subject: [PATCH 0427/1028] Add components to build and test default/full config with legacy-ccm cipher only Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 69 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 7cab8caae0..1f664baf90 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1341,6 +1341,75 @@ component_test_crypto_full_stream_cipher_only () { make test } +component_test_crypto_default_cbc_legacy_cipher_only () { + msg "build: default with only CBC-legacy cipher" + + # Disable all ciphers + # AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C + scripts/config.py unset MBEDTLS_GCM_C + scripts/config.py unset MBEDTLS_CCM_C + scripts/config.py unset MBEDTLS_CHACHAPOLY_C + # CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) + scripts/config.py unset MBEDTLS_CIPHER_MODE_CBC + scripts/config.py unset MBEDTLS_AES_C + scripts/config.py unset MBEDTLS_CAMELLIA_C + scripts/config.py unset MBEDTLS_ARIA_C + scripts/config.py unset MBEDTLS_DES_C + # CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) + scripts/config.py unset MBEDTLS_SSL_ENCRYPT_THEN_MAC + # stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER) + scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER + # Indirect dependencies + scripts/config.py unset MBEDTLS_CTR_DRBG_C + scripts/config.py unset MBEDTLS_CMAC_C + scripts/config.py unset MBEDTLS_NIST_KW_C + scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS + scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION + + # Enable CBC-legacy cipher only + scripts/config.py set MBEDTLS_CIPHER_MODE_CBC + scripts/config.py set MBEDTLS_AES_C + make + + msg "test: default with only CBC-legacy cipher" + make test +} + +component_test_crypto_full_cbc_legacy_cipher_only () { + msg "build: full with only CBC-legacy cipher" + + scripts/config.py crypto_full + # Disable all ciphers + # AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C + scripts/config.py unset MBEDTLS_GCM_C + scripts/config.py unset MBEDTLS_CCM_C + scripts/config.py unset MBEDTLS_CHACHAPOLY_C + # CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) + scripts/config.py unset MBEDTLS_CIPHER_MODE_CBC + scripts/config.py unset MBEDTLS_AES_C + scripts/config.py unset MBEDTLS_CAMELLIA_C + scripts/config.py unset MBEDTLS_ARIA_C + scripts/config.py unset MBEDTLS_DES_C + # CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) + scripts/config.py unset MBEDTLS_SSL_ENCRYPT_THEN_MAC + # stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER) + scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER + # Indirect dependencies + scripts/config.py unset MBEDTLS_CTR_DRBG_C + scripts/config.py unset MBEDTLS_CMAC_C + scripts/config.py unset MBEDTLS_NIST_KW_C + scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS + scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION + + # Enable CBC-legacy cipher only + scripts/config.py set MBEDTLS_CIPHER_MODE_CBC + scripts/config.py set MBEDTLS_AES_C + make + + msg "test: full with only CBC-legacy cipher" + make test +} + component_test_psa_external_rng_use_psa_crypto () { msg "build: full + PSA_CRYPTO_EXTERNAL_RNG + USE_PSA_CRYPTO minus CTR_DRBG" scripts/config.py full From 0cc3466c9e9d38e1c459415aef9d69d36ead5d9d Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 28 Sep 2022 12:06:57 +0200 Subject: [PATCH 0428/1028] Change testing strategy to default + one cypher only (psa/no psa) In full config TLS 1.2 is disabled. Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 89 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 81 insertions(+), 8 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 1f664baf90..412885fd7d 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1277,7 +1277,6 @@ component_test_crypto_full_no_cipher () { component_test_crypto_default_stream_cipher_only () { msg "build: default with only stream cipher" - scripts/config.py crypto_full # Disable all ciphers # AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C scripts/config.py unset MBEDTLS_GCM_C @@ -1308,9 +1307,10 @@ component_test_crypto_default_stream_cipher_only () { make test } -component_test_crypto_full_stream_cipher_only () { - msg "build: full with only stream cipher" +component_test_crypto_default_stream_cipher_only_use_psa () { + msg "build: deafult with only stream cipher use psa" + scripts/config.py set MBEDTLS_USE_PSA_CRYPTO # Disable all ciphers # AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C scripts/config.py unset MBEDTLS_GCM_C @@ -1337,7 +1337,7 @@ component_test_crypto_full_stream_cipher_only () { scripts/config.py set MBEDTLS_CIPHER_NULL_CIPHER make - msg "test: full with only stream cipher" + msg "test: deafult with only stream cipher use psa" make test } @@ -1375,10 +1375,10 @@ component_test_crypto_default_cbc_legacy_cipher_only () { make test } -component_test_crypto_full_cbc_legacy_cipher_only () { - msg "build: full with only CBC-legacy cipher" +component_test_crypto_deafult_cbc_legacy_cipher_only_use_psa () { + msg "build: default with only CBC-legacy cipher use psa" - scripts/config.py crypto_full + scripts/config.py set MBEDTLS_USE_PSA_CRYPTO # Disable all ciphers # AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C scripts/config.py unset MBEDTLS_GCM_C @@ -1406,7 +1406,80 @@ component_test_crypto_full_cbc_legacy_cipher_only () { scripts/config.py set MBEDTLS_AES_C make - msg "test: full with only CBC-legacy cipher" + msg "test: default with only CBC-legacy cipher use psa" + make test +} + +component_test_crypto_default_cbc_legacy_cbc_etm_cipher_only () { + msg "build: default with only CBC-legacy and CBC-EtM ciphers" + + # Disable all ciphers + # AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C + scripts/config.py unset MBEDTLS_GCM_C + scripts/config.py unset MBEDTLS_CCM_C + scripts/config.py unset MBEDTLS_CHACHAPOLY_C + # CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) + scripts/config.py unset MBEDTLS_CIPHER_MODE_CBC + scripts/config.py unset MBEDTLS_AES_C + scripts/config.py unset MBEDTLS_CAMELLIA_C + scripts/config.py unset MBEDTLS_ARIA_C + scripts/config.py unset MBEDTLS_DES_C + # CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) + scripts/config.py unset MBEDTLS_SSL_ENCRYPT_THEN_MAC + # stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER) + scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER + # Indirect dependencies + scripts/config.py unset MBEDTLS_CTR_DRBG_C + scripts/config.py unset MBEDTLS_CMAC_C + scripts/config.py unset MBEDTLS_NIST_KW_C + scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS + scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION + + # Enable CBC-legacy cipher only + scripts/config.py set MBEDTLS_CIPHER_MODE_CBC + scripts/config.py set MBEDTLS_AES_C + scripts/config.py set MBEDTLS_SSL_ENCRYPT_THEN_MAC + + make + + msg "test: default with only CBC-legacy and CBC-EtM ciphers" + make test +} + +component_test_crypto_full_cbc_legacy_cbc_etm_cipher_only_use_psa () { + msg "build: full with only CBC-legacy and CBC-EtM ciphers use psa" + + scripts/config.py set MBEDTLS_USE_PSA_CRYPTO + # Disable all ciphers + # AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C + scripts/config.py unset MBEDTLS_GCM_C + scripts/config.py unset MBEDTLS_CCM_C + scripts/config.py unset MBEDTLS_CHACHAPOLY_C + # CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) + scripts/config.py unset MBEDTLS_CIPHER_MODE_CBC + scripts/config.py unset MBEDTLS_AES_C + scripts/config.py unset MBEDTLS_CAMELLIA_C + scripts/config.py unset MBEDTLS_ARIA_C + scripts/config.py unset MBEDTLS_DES_C + # CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) + scripts/config.py unset MBEDTLS_SSL_ENCRYPT_THEN_MAC + # stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER) + scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER + # Indirect dependencies + scripts/config.py unset MBEDTLS_CTR_DRBG_C + scripts/config.py unset MBEDTLS_CMAC_C + scripts/config.py unset MBEDTLS_NIST_KW_C + scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS + scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION + + # Enable CBC-legacy cipher only + scripts/config.py set MBEDTLS_CIPHER_MODE_CBC + scripts/config.py set MBEDTLS_AES_C + scripts/config.py set MBEDTLS_SSL_ENCRYPT_THEN_MAC + + make + + msg "test: full with only CBC-legacy and CBC-EtM ciphers use psa" make test } From 68db0d2f67a4e2ed7ae2fc0c6614dfd0a0ea3b76 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 29 Sep 2022 08:32:25 +0200 Subject: [PATCH 0429/1028] Optimize one cipher only components and adapt nemes Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 126 +++++++++++++------------------------------ 1 file changed, 38 insertions(+), 88 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 412885fd7d..6dbd365ce4 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1274,24 +1274,19 @@ component_test_crypto_full_no_cipher () { make test } -component_test_crypto_default_stream_cipher_only () { +component_test_tls1_2_default_stream_cipher_only () { msg "build: default with only stream cipher" - # Disable all ciphers - # AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C + # Disable AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C scripts/config.py unset MBEDTLS_GCM_C scripts/config.py unset MBEDTLS_CCM_C scripts/config.py unset MBEDTLS_CHACHAPOLY_C - # CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) + # Disable CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) scripts/config.py unset MBEDTLS_CIPHER_MODE_CBC - scripts/config.py unset MBEDTLS_AES_C - scripts/config.py unset MBEDTLS_CAMELLIA_C - scripts/config.py unset MBEDTLS_ARIA_C - scripts/config.py unset MBEDTLS_DES_C - # CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) + # Disable CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) scripts/config.py unset MBEDTLS_SSL_ENCRYPT_THEN_MAC - # stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER) - scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER + # Enable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) + scripts/config.py set MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies scripts/config.py unset MBEDTLS_CTR_DRBG_C scripts/config.py unset MBEDTLS_CMAC_C @@ -1299,33 +1294,26 @@ component_test_crypto_default_stream_cipher_only () { scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION - # Enable stream(null) cipher only - scripts/config.py set MBEDTLS_CIPHER_NULL_CIPHER make msg "test: default with only stream cipher" make test } -component_test_crypto_default_stream_cipher_only_use_psa () { +component_test_tls1_2_default_stream_cipher_only_use_psa () { msg "build: deafult with only stream cipher use psa" scripts/config.py set MBEDTLS_USE_PSA_CRYPTO - # Disable all ciphers - # AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C + # Disable AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C) scripts/config.py unset MBEDTLS_GCM_C scripts/config.py unset MBEDTLS_CCM_C scripts/config.py unset MBEDTLS_CHACHAPOLY_C - # CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) + # Disable CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) scripts/config.py unset MBEDTLS_CIPHER_MODE_CBC - scripts/config.py unset MBEDTLS_AES_C - scripts/config.py unset MBEDTLS_CAMELLIA_C - scripts/config.py unset MBEDTLS_ARIA_C - scripts/config.py unset MBEDTLS_DES_C - # CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) + # Disable CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) scripts/config.py unset MBEDTLS_SSL_ENCRYPT_THEN_MAC - # stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER) - scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER + # Enable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) + scripts/config.py set MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies scripts/config.py unset MBEDTLS_CTR_DRBG_C scripts/config.py unset MBEDTLS_CMAC_C @@ -1333,31 +1321,24 @@ component_test_crypto_default_stream_cipher_only_use_psa () { scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION - # Enable stream(null) cipher only - scripts/config.py set MBEDTLS_CIPHER_NULL_CIPHER make msg "test: deafult with only stream cipher use psa" make test } -component_test_crypto_default_cbc_legacy_cipher_only () { +component_test_tls1_2_default_cbc_legacy_cipher_only () { msg "build: default with only CBC-legacy cipher" - # Disable all ciphers - # AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C + # Disable AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C) scripts/config.py unset MBEDTLS_GCM_C scripts/config.py unset MBEDTLS_CCM_C scripts/config.py unset MBEDTLS_CHACHAPOLY_C - # CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) - scripts/config.py unset MBEDTLS_CIPHER_MODE_CBC - scripts/config.py unset MBEDTLS_AES_C - scripts/config.py unset MBEDTLS_CAMELLIA_C - scripts/config.py unset MBEDTLS_ARIA_C - scripts/config.py unset MBEDTLS_DES_C - # CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) + # Enable CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) + scripts/config.py set MBEDTLS_CIPHER_MODE_CBC + # Disable CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) scripts/config.py unset MBEDTLS_SSL_ENCRYPT_THEN_MAC - # stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER) + # Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies scripts/config.py unset MBEDTLS_CTR_DRBG_C @@ -1366,33 +1347,25 @@ component_test_crypto_default_cbc_legacy_cipher_only () { scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION - # Enable CBC-legacy cipher only - scripts/config.py set MBEDTLS_CIPHER_MODE_CBC - scripts/config.py set MBEDTLS_AES_C make msg "test: default with only CBC-legacy cipher" make test } -component_test_crypto_deafult_cbc_legacy_cipher_only_use_psa () { +component_test_tls1_2_deafult_cbc_legacy_cipher_only_use_psa () { msg "build: default with only CBC-legacy cipher use psa" scripts/config.py set MBEDTLS_USE_PSA_CRYPTO - # Disable all ciphers - # AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C + # Disable AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C) scripts/config.py unset MBEDTLS_GCM_C scripts/config.py unset MBEDTLS_CCM_C scripts/config.py unset MBEDTLS_CHACHAPOLY_C - # CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) - scripts/config.py unset MBEDTLS_CIPHER_MODE_CBC - scripts/config.py unset MBEDTLS_AES_C - scripts/config.py unset MBEDTLS_CAMELLIA_C - scripts/config.py unset MBEDTLS_ARIA_C - scripts/config.py unset MBEDTLS_DES_C - # CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) + # Enable CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) + scripts/config.py set MBEDTLS_CIPHER_MODE_CBC + # Disable CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) scripts/config.py unset MBEDTLS_SSL_ENCRYPT_THEN_MAC - # stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER) + # Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies scripts/config.py unset MBEDTLS_CTR_DRBG_C @@ -1401,32 +1374,24 @@ component_test_crypto_deafult_cbc_legacy_cipher_only_use_psa () { scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION - # Enable CBC-legacy cipher only - scripts/config.py set MBEDTLS_CIPHER_MODE_CBC - scripts/config.py set MBEDTLS_AES_C make msg "test: default with only CBC-legacy cipher use psa" make test } -component_test_crypto_default_cbc_legacy_cbc_etm_cipher_only () { +component_test_tls1_2_default_cbc_legacy_cbc_etm_cipher_only () { msg "build: default with only CBC-legacy and CBC-EtM ciphers" - # Disable all ciphers - # AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C + # Disable AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C) scripts/config.py unset MBEDTLS_GCM_C scripts/config.py unset MBEDTLS_CCM_C scripts/config.py unset MBEDTLS_CHACHAPOLY_C - # CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) - scripts/config.py unset MBEDTLS_CIPHER_MODE_CBC - scripts/config.py unset MBEDTLS_AES_C - scripts/config.py unset MBEDTLS_CAMELLIA_C - scripts/config.py unset MBEDTLS_ARIA_C - scripts/config.py unset MBEDTLS_DES_C - # CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) - scripts/config.py unset MBEDTLS_SSL_ENCRYPT_THEN_MAC - # stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER) + # Enable CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) + scripts/config.py set MBEDTLS_CIPHER_MODE_CBC + # Enable CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) + scripts/config.py set MBEDTLS_SSL_ENCRYPT_THEN_MAC + # Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies scripts/config.py unset MBEDTLS_CTR_DRBG_C @@ -1435,35 +1400,25 @@ component_test_crypto_default_cbc_legacy_cbc_etm_cipher_only () { scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION - # Enable CBC-legacy cipher only - scripts/config.py set MBEDTLS_CIPHER_MODE_CBC - scripts/config.py set MBEDTLS_AES_C - scripts/config.py set MBEDTLS_SSL_ENCRYPT_THEN_MAC - make msg "test: default with only CBC-legacy and CBC-EtM ciphers" make test } -component_test_crypto_full_cbc_legacy_cbc_etm_cipher_only_use_psa () { +component_test_tls1_2_full_cbc_legacy_cbc_etm_cipher_only_use_psa () { msg "build: full with only CBC-legacy and CBC-EtM ciphers use psa" scripts/config.py set MBEDTLS_USE_PSA_CRYPTO - # Disable all ciphers - # AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C + # Disable AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C) scripts/config.py unset MBEDTLS_GCM_C scripts/config.py unset MBEDTLS_CCM_C scripts/config.py unset MBEDTLS_CHACHAPOLY_C - # CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) - scripts/config.py unset MBEDTLS_CIPHER_MODE_CBC - scripts/config.py unset MBEDTLS_AES_C - scripts/config.py unset MBEDTLS_CAMELLIA_C - scripts/config.py unset MBEDTLS_ARIA_C - scripts/config.py unset MBEDTLS_DES_C - # CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) - scripts/config.py unset MBEDTLS_SSL_ENCRYPT_THEN_MAC - # stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER) + # Enable CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, ARIA, Camellia, DES)) + scripts/config.py set MBEDTLS_CIPHER_MODE_CBC + # Enable CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC) + scripts/config.py set MBEDTLS_SSL_ENCRYPT_THEN_MAC + # Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies scripts/config.py unset MBEDTLS_CTR_DRBG_C @@ -1472,11 +1427,6 @@ component_test_crypto_full_cbc_legacy_cbc_etm_cipher_only_use_psa () { scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION - # Enable CBC-legacy cipher only - scripts/config.py set MBEDTLS_CIPHER_MODE_CBC - scripts/config.py set MBEDTLS_AES_C - scripts/config.py set MBEDTLS_SSL_ENCRYPT_THEN_MAC - make msg "test: full with only CBC-legacy and CBC-EtM ciphers use psa" From a891a091a33dd5f47a2c9326280fb7aca86cfbf6 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 29 Sep 2022 09:53:20 +0200 Subject: [PATCH 0430/1028] test_suite_cmac.data: fix bug: use cipher type instead cipher id Signed-off-by: Przemek Stekiel --- tests/suites/test_suite_cmac.data | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_cmac.data b/tests/suites/test_suite_cmac.data index 70b7609e48..5956a69811 100644 --- a/tests/suites/test_suite_cmac.data +++ b/tests/suites/test_suite_cmac.data @@ -22,15 +22,15 @@ mbedtls_cmac_setkey:MBEDTLS_CIPHER_DES_EDE3_ECB:192:0 CMAC init #5 AES-224: bad key size depends_on:MBEDTLS_AES_C -mbedtls_cmac_setkey:MBEDTLS_CIPHER_ID_AES:224:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA +mbedtls_cmac_setkey:MBEDTLS_CIPHER_AES_128_ECB:224:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA CMAC init #6 AES-0: bad key size depends_on:MBEDTLS_AES_C -mbedtls_cmac_setkey:MBEDTLS_CIPHER_ID_AES:0:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA +mbedtls_cmac_setkey:MBEDTLS_CIPHER_AES_128_ECB:0:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA CMAC init #7 Camellia: wrong cipher depends_on:MBEDTLS_CAMELLIA_C -mbedtls_cmac_setkey:MBEDTLS_CIPHER_ID_CAMELLIA:128:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA +mbedtls_cmac_setkey:MBEDTLS_CIPHER_CAMELLIA_192_ECB:128:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA CMAC Single Blocks #1 - Empty block, no updates mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"":-1:"":-1:"":-1:"":-1:"bb1d6929e95937287fa37d129b756746" From 8d4b24102883315d32135af4e30f5857ee14c582 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 29 Sep 2022 10:13:40 +0200 Subject: [PATCH 0431/1028] Remove redundant indirect dependencies after optimizing setup for one cipher components Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 6dbd365ce4..94a84a11d8 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1288,10 +1288,6 @@ component_test_tls1_2_default_stream_cipher_only () { # Enable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) scripts/config.py set MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies - scripts/config.py unset MBEDTLS_CTR_DRBG_C - scripts/config.py unset MBEDTLS_CMAC_C - scripts/config.py unset MBEDTLS_NIST_KW_C - scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION make @@ -1315,10 +1311,6 @@ component_test_tls1_2_default_stream_cipher_only_use_psa () { # Enable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) scripts/config.py set MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies - scripts/config.py unset MBEDTLS_CTR_DRBG_C - scripts/config.py unset MBEDTLS_CMAC_C - scripts/config.py unset MBEDTLS_NIST_KW_C - scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION make @@ -1341,10 +1333,6 @@ component_test_tls1_2_default_cbc_legacy_cipher_only () { # Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies - scripts/config.py unset MBEDTLS_CTR_DRBG_C - scripts/config.py unset MBEDTLS_CMAC_C - scripts/config.py unset MBEDTLS_NIST_KW_C - scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION make @@ -1368,10 +1356,6 @@ component_test_tls1_2_deafult_cbc_legacy_cipher_only_use_psa () { # Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies - scripts/config.py unset MBEDTLS_CTR_DRBG_C - scripts/config.py unset MBEDTLS_CMAC_C - scripts/config.py unset MBEDTLS_NIST_KW_C - scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION make @@ -1394,10 +1378,6 @@ component_test_tls1_2_default_cbc_legacy_cbc_etm_cipher_only () { # Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies - scripts/config.py unset MBEDTLS_CTR_DRBG_C - scripts/config.py unset MBEDTLS_CMAC_C - scripts/config.py unset MBEDTLS_NIST_KW_C - scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION make @@ -1421,10 +1401,6 @@ component_test_tls1_2_full_cbc_legacy_cbc_etm_cipher_only_use_psa () { # Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies - scripts/config.py unset MBEDTLS_CTR_DRBG_C - scripts/config.py unset MBEDTLS_CMAC_C - scripts/config.py unset MBEDTLS_NIST_KW_C - scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION make From ce5b68c7a304ad5c9b15613925ae47f0b923ae15 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 29 Sep 2022 10:21:59 +0200 Subject: [PATCH 0432/1028] Revert "Fix guards for mbedtls_ssl_ticket_write() and mbedtls_ssl_ticket_parse() functions" This reverts commit a82290b7271a3cd489e62a0f98d24622dbbf4bbe. Signed-off-by: Przemek Stekiel --- include/mbedtls/check_config.h | 4 ---- library/ssl_ticket.c | 7 +------ 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index fa56eb7095..63c2f4f9a0 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -962,10 +962,6 @@ #error "MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH defined, but not all prerequisites" #endif -#if defined(MBEDTLS_SSL_SESSION_TICKETS) && !( defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) || defined(MBEDTLS_CHACHAPOLY_C) || defined(MBEDTLS_NIST_KW_C) ) -#error "MBEDTLS_SSL_SESSION_TICKETS defined, but not all prerequisites" -#endif - #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) && !( defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) || defined(MBEDTLS_CHACHAPOLY_C) ) #error "MBEDTLS_SSL_CONTEXT_SERIALIZATION defined, but not all prerequisites" #endif diff --git a/library/ssl_ticket.c b/library/ssl_ticket.c index 5398c3970c..359686afa3 100644 --- a/library/ssl_ticket.c +++ b/library/ssl_ticket.c @@ -114,7 +114,6 @@ static int ssl_ticket_gen_key( mbedtls_ssl_ticket_context *ctx, /* * Rotate/generate keys if necessary */ -#if defined(MBEDTLS_CIPHER_MODE_AEAD) || defined(MBEDTLS_NIST_KW_C) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_ticket_update_keys( mbedtls_ssl_ticket_context *ctx ) { @@ -151,7 +150,6 @@ static int ssl_ticket_update_keys( mbedtls_ssl_ticket_context *ctx ) #endif /* MBEDTLS_HAVE_TIME */ return( 0 ); } -#endif /* * Rotate active session ticket encryption key @@ -295,7 +293,7 @@ int mbedtls_ssl_ticket_setup( mbedtls_ssl_ticket_context *ctx, * The key_name, iv, and length of encrypted_state are the additional * authenticated data. */ -#if defined(MBEDTLS_CIPHER_MODE_AEAD) || defined(MBEDTLS_NIST_KW_C) + int mbedtls_ssl_ticket_write( void *p_ticket, const mbedtls_ssl_session *session, unsigned char *start, @@ -392,9 +390,7 @@ cleanup: return( ret ); } -#endif -#if defined(MBEDTLS_CIPHER_MODE_AEAD) || defined(MBEDTLS_NIST_KW_C) /* * Select key based on name */ @@ -521,7 +517,6 @@ cleanup: return( ret ); } -#endif /* * Free context From 48a6a666a00661f618d7f5241ddc20af8d433112 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 29 Sep 2022 15:22:01 +0200 Subject: [PATCH 0433/1028] Add ssl-opt tls 1.2 tests for single cipher builds Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 94a84a11d8..60cd7b305e 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1289,6 +1289,7 @@ component_test_tls1_2_default_stream_cipher_only () { scripts/config.py set MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION + scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS make @@ -1312,6 +1313,7 @@ component_test_tls1_2_default_stream_cipher_only_use_psa () { scripts/config.py set MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION + scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS make @@ -1334,11 +1336,15 @@ component_test_tls1_2_default_cbc_legacy_cipher_only () { scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION + scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS make msg "test: default with only CBC-legacy cipher" make test + + msg "test: default with only CBC-legacy cipher - ssl-opt.sh (subset)" + tests/ssl-opt.sh -f "TLS 1.2" } component_test_tls1_2_deafult_cbc_legacy_cipher_only_use_psa () { @@ -1357,11 +1363,15 @@ component_test_tls1_2_deafult_cbc_legacy_cipher_only_use_psa () { scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION + scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS make msg "test: default with only CBC-legacy cipher use psa" make test + + msg "test: default with only CBC-legacy cipher use psa - ssl-opt.sh (subset)" + tests/ssl-opt.sh -f "TLS 1.2" } component_test_tls1_2_default_cbc_legacy_cbc_etm_cipher_only () { @@ -1379,15 +1389,19 @@ component_test_tls1_2_default_cbc_legacy_cbc_etm_cipher_only () { scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION + scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS make msg "test: default with only CBC-legacy and CBC-EtM ciphers" make test + + msg "test: default with only CBC-legacy and CBC-EtM ciphers - ssl-opt.sh (subset)" + tests/ssl-opt.sh -f "TLS 1.2" } -component_test_tls1_2_full_cbc_legacy_cbc_etm_cipher_only_use_psa () { - msg "build: full with only CBC-legacy and CBC-EtM ciphers use psa" +component_test_tls1_2_default_cbc_legacy_cbc_etm_cipher_only_use_psa () { + msg "build: default with only CBC-legacy and CBC-EtM ciphers use psa" scripts/config.py set MBEDTLS_USE_PSA_CRYPTO # Disable AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C) @@ -1402,11 +1416,15 @@ component_test_tls1_2_full_cbc_legacy_cbc_etm_cipher_only_use_psa () { scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER # Indirect dependencies scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION + scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS make - msg "test: full with only CBC-legacy and CBC-EtM ciphers use psa" + msg "test: default with only CBC-legacy and CBC-EtM ciphers use psa" make test + + msg "test: default with only CBC-legacy and CBC-EtM ciphers use psa - ssl-opt.sh (subset)" + tests/ssl-opt.sh -f "TLS 1.2" } component_test_psa_external_rng_use_psa_crypto () { From 4386ead662086eefd1bf98c17fb7757d6958e43b Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 29 Sep 2022 14:40:21 +0100 Subject: [PATCH 0434/1028] Correct the aliasing requirements in doc for mbedtls_mpi_core_montmul(), and test them Signed-off-by: Tom Cosgrove --- library/bignum_core.c | 2 +- library/bignum_core.h | 15 +++++++++------ tests/suites/test_suite_mpi.function | 17 ++++++++++++++--- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 541b1c73a8..c47292eec2 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -439,7 +439,7 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, * So the correct return value is already in X if (carry ^ borrow) = 0, * but is in (the lower AN_limbs limbs of) T if (carry ^ borrow) = 1. */ - mbedtls_ct_mpi_uint_cond_assign( AN_limbs, X, T, (unsigned char) ( carry ^ borrow ) ); + mbedtls_ct_mpi_uint_cond_assign( AN_limbs, X, T, (unsigned char) ( carry ^ borrow ) ); } #endif /* MBEDTLS_BIGNUM_C */ diff --git a/library/bignum_core.h b/library/bignum_core.h index cbeab244c6..1ef1b683c3 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -250,15 +250,15 @@ mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *X, size_t X_limbs, mbedtls_mpi_uint mbedtls_mpi_core_montmul_init( const mbedtls_mpi_uint *N ); /** - * \brief Montgomery multiplication: X = A * B * R^-1 mod N (HAC 14.36) + * \brief Montgomery multiplication: X = A * B * R^-1 mod N (HAC 14.36) + * + * \p A and \p B must be in canonical form. That is, < \p N. * * \p X may be aliased to \p A or \p N, or even \p B (if \p AN_limbs == * \p B_limbs) but may not overlap any parameters otherwise. * - * \p A, \p B and \p N must not alias or overlap each other in any way, even - * if \p AN_limbs == \p B_limbs. - * - * \p A and \p B must be in canonical form: that is, <= \p N. + * \p A and \p B may alias each other, if \p AN_limbs == \p B_limbs. They may + * not alias \p N (since they must be in canonical form, they cannot == \p N). * * \param[out] X The destination MPI, as a little-endian array of * length \p AN_limbs. @@ -273,13 +273,16 @@ mbedtls_mpi_uint mbedtls_mpi_core_montmul_init( const mbedtls_mpi_uint *N ); * \param[in] N Little-endian presentation of the modulus. * This must be odd, and have exactly the same number * of limbs as \p A. + * It must not alias or otherwise overlap any of the + * other parameters. * \param[in] AN_limbs The number of limbs in \p X, \p A and \p N. * \param mm The Montgomery constant for \p N: -N^-1 mod 2^biL. * This can be calculated by `mbedtls_mpi_core_montmul_init()`. * \param[in,out] T Temporary storage of size at least 2*AN_limbs+1 limbs. * Its initial content is unused and * its final content is indeterminate. - * It must not overlap any of the other parameters. + * It must not alias or otherwise overlap any of the + * other parameters. */ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index a82c73e810..ff2eaac4ba 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -2140,11 +2140,22 @@ void mpi_core_montmul( int limbs_AN4, int limbs_B4, memcpy( N.p, R.p, bytes ); - /* The output may even be aliased to B, if AN_limbs == B_limbs */ - if (limbs_AN == limbs_B) { - /* Note: last test, so we don't save B */ + /* Test when A aliased to B (requires A == B on input values) */ + if ( memcmp( A.p, B.p, bytes ) == 0 ) + { + /* Test with A aliased to B and output, since this is permitted - + * don't bother with yet another test with only A and B aliased */ + + mbedtls_mpi_core_montmul( B.p, B.p, B.p, B.n, N.p, N.n, mm, T.p ); + ASSERT_COMPARE( B.p, bytes, X->p, bytes ); + + memcpy( B.p, A.p, bytes ); /* restore B from equal value A */ + } + + /* The output may be aliased to B - last test, so we don't save B */ + mbedtls_mpi_core_montmul( B.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); ASSERT_COMPARE( B.p, bytes, X->p, bytes ); } From 47c7a732d28696b9ff4ebd90f45ba4d96d6cfd78 Mon Sep 17 00:00:00 2001 From: Victor Barpp Gomes <17840319+Kabbah@users.noreply.github.com> Date: Thu, 29 Sep 2022 11:34:23 -0300 Subject: [PATCH 0435/1028] Print RFC 4108 hwSerialNum in hex format Signed-off-by: Victor Barpp Gomes <17840319+Kabbah@users.noreply.github.com> --- library/x509_crt.c | 14 ++----- tests/suites/test_suite_x509parse.data | 8 ++-- tests/suites/test_suite_x509parse.function | 46 ++++++++++------------ 3 files changed, 28 insertions(+), 40 deletions(-) diff --git a/library/x509_crt.c b/library/x509_crt.c index af1e487dbf..d17a952b7c 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -1854,6 +1854,7 @@ static int x509_info_subject_alt_name( char **buf, size_t *size, const char *prefix ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + size_t i; size_t n = *size; char *p = *buf; const mbedtls_x509_sequence *cur = subject_alt_name; @@ -1906,18 +1907,11 @@ static int x509_info_subject_alt_name( char **buf, size_t *size, ret = mbedtls_snprintf( p, n, "\n%s hardware serial number : ", prefix ); MBEDTLS_X509_SAFE_SNPRINTF; - if( other_name->value.hardware_module_name.val.len >= n ) + for( i = 0; i < other_name->value.hardware_module_name.val.len; i++ ) { - *p = '\0'; - return( MBEDTLS_ERR_X509_BUFFER_TOO_SMALL ); + ret = mbedtls_snprintf( p, n, "%02X", other_name->value.hardware_module_name.val.p[i] ); + MBEDTLS_X509_SAFE_SNPRINTF; } - - memcpy( p, other_name->value.hardware_module_name.val.p, - other_name->value.hardware_module_name.val.len ); - p += other_name->value.hardware_module_name.val.len; - - n -= other_name->value.hardware_module_name.val.len; - }/* MBEDTLS_OID_ON_HW_MODULE_NAME */ } break; diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index 6263fba2cd..a4908a61e5 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -88,7 +88,7 @@ x509_cert_info:"data_files/server5-sha512.crt":"cert. version \: 3\nserial n X509 CRT information EC, SHA256 Digest, hardware module name SAN depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_cert_info:"data_files/server5-othername.crt":"cert. version \: 3\nserial number \: 4D\nissuer name \: C=UK, O=Mbed TLS, CN=Mbed TLS othername SAN\nsubject name \: C=UK, O=Mbed TLS, CN=Mbed TLS othername SAN\nissued on \: 2019-03-24 09\:06\:02\nexpires on \: 2029-03-21 09\:06\:02\nsigned using \: ECDSA with SHA256\nEC key size \: 256 bits\nsubject alt name \:\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 123456\n" +x509_cert_info:"data_files/server5-othername.crt":"cert. version \: 3\nserial number \: 4D\nissuer name \: C=UK, O=Mbed TLS, CN=Mbed TLS othername SAN\nsubject name \: C=UK, O=Mbed TLS, CN=Mbed TLS othername SAN\nissued on \: 2019-03-24 09\:06\:02\nexpires on \: 2029-03-21 09\:06\:02\nsigned using \: ECDSA with SHA256\nEC key size \: 256 bits\nsubject alt name \:\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 313233343536\n" X509 CRT information EC, SHA256 Digest, Wisun Fan device depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA @@ -112,7 +112,7 @@ x509_cert_info:"data_files/cert_example_multi.crt":"cert. version \: 3\nseri X509 CRT information, Multiple different Subject Alt Name depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_cert_info:"data_files/multiple_san.crt":"cert. version \: 3\nserial number \: 04\nissuer name \: C=UK, O=Mbed TLS, CN=Mbed TLS multiple othername SAN\nsubject name \: C=UK, O=Mbed TLS, CN=Mbed TLS multiple othername SAN\nissued on \: 2019-04-22 16\:10\:48\nexpires on \: 2029-04-19 16\:10\:48\nsigned using \: ECDSA with SHA256\nEC key size \: 256 bits\nsubject alt name \:\n dNSName \: example.com\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 123456\n dNSName \: example.net\n dNSName \: *.example.org\n" +x509_cert_info:"data_files/multiple_san.crt":"cert. version \: 3\nserial number \: 04\nissuer name \: C=UK, O=Mbed TLS, CN=Mbed TLS multiple othername SAN\nsubject name \: C=UK, O=Mbed TLS, CN=Mbed TLS multiple othername SAN\nissued on \: 2019-04-22 16\:10\:48\nexpires on \: 2029-04-19 16\:10\:48\nsigned using \: ECDSA with SHA256\nEC key size \: 256 bits\nsubject alt name \:\n dNSName \: example.com\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 313233343536\n dNSName \: example.net\n dNSName \: *.example.org\n" X509 CRT information, Subject Alt Name + Key Usage depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA @@ -172,7 +172,7 @@ x509_cert_info:"data_files/non-ascii-string-in-issuer.crt":"cert. version \: X509 SAN parsing otherName depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_parse_san:"data_files/server5-othername.crt":"type \: 0\notherName \: hardware module name \: hardware type \: 1.3.6.1.4.1.17.3, hardware serial number \: 123456\n" +x509_parse_san:"data_files/server5-othername.crt":"type \: 0\notherName \: hardware module name \: hardware type \: 1.3.6.1.4.1.17.3, hardware serial number \: 313233343536\n" X509 SAN parsing dNSName depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA @@ -180,7 +180,7 @@ x509_parse_san:"data_files/cert_example_multi.crt":"type \: 2\ndNSName \: exampl X509 SAN parsing Multiple different types depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_parse_san:"data_files/multiple_san.crt":"type \: 2\ndNSName \: example.com\ntype \: 0\notherName \: hardware module name \: hardware type \: 1.3.6.1.4.1.17.3, hardware serial number \: 123456\ntype \: 2\ndNSName \: example.net\ntype \: 2\ndNSName \: *.example.org\n" +x509_parse_san:"data_files/multiple_san.crt":"type \: 2\ndNSName \: example.com\ntype \: 0\notherName \: hardware module name \: hardware type \: 1.3.6.1.4.1.17.3, hardware serial number \: 313233343536\ntype \: 2\ndNSName \: example.net\ntype \: 2\ndNSName \: *.example.org\n" X509 SAN parsing, no subject alt name depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECDSA_C diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index 60e703a948..df4b03e0ec 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -246,36 +246,30 @@ int verify_parse_san( mbedtls_x509_subject_alternative_name *san, switch( san->type ) { - case( MBEDTLS_X509_SAN_OTHER_NAME ): - ret = mbedtls_snprintf( p, n, "\notherName :"); - MBEDTLS_X509_SAFE_SNPRINTF; + case( MBEDTLS_X509_SAN_OTHER_NAME ): + ret = mbedtls_snprintf( p, n, "\notherName :"); + MBEDTLS_X509_SAFE_SNPRINTF; - if( MBEDTLS_OID_CMP( MBEDTLS_OID_ON_HW_MODULE_NAME, - &san->san.other_name.value.hardware_module_name.oid ) != 0 ) - { - ret = mbedtls_snprintf( p, n, " hardware module name :" ); - MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, " hardware type : " ); - MBEDTLS_X509_SAFE_SNPRINTF; + if( MBEDTLS_OID_CMP( MBEDTLS_OID_ON_HW_MODULE_NAME, + &san->san.other_name.value.hardware_module_name.oid ) != 0 ) + { + ret = mbedtls_snprintf( p, n, " hardware module name :" ); + MBEDTLS_X509_SAFE_SNPRINTF; + ret = mbedtls_snprintf( p, n, " hardware type : " ); + MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_oid_get_numeric_string( p, n, - &san->san.other_name.value.hardware_module_name.oid ); - MBEDTLS_X509_SAFE_SNPRINTF; + ret = mbedtls_oid_get_numeric_string( p, n, + &san->san.other_name.value.hardware_module_name.oid ); + MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, ", hardware serial number : " ); - MBEDTLS_X509_SAFE_SNPRINTF; + ret = mbedtls_snprintf( p, n, ", hardware serial number : " ); + MBEDTLS_X509_SAFE_SNPRINTF; - if( san->san.other_name.value.hardware_module_name.val.len >= n ) - { - *p = '\0'; - return( MBEDTLS_ERR_X509_BUFFER_TOO_SMALL ); - } - - for( i=0; i < san->san.other_name.value.hardware_module_name.val.len; i++ ) - { - *p++ = san->san.other_name.value.hardware_module_name.val.p[i]; - } - n -= san->san.other_name.value.hardware_module_name.val.len; + for( i = 0; i < san->san.other_name.value.hardware_module_name.val.len; i++ ) + { + ret = mbedtls_snprintf( p, n, "%02X", san->san.other_name.value.hardware_module_name.val.p[i] ); + MBEDTLS_X509_SAFE_SNPRINTF; + } } break;/* MBEDTLS_OID_ON_HW_MODULE_NAME */ case( MBEDTLS_X509_SAN_DNS_NAME ): From 6da3a3b15f83055b1f005672e4f516907ec53a64 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 29 Sep 2022 17:20:18 +0100 Subject: [PATCH 0436/1028] Fix doc regarding aliasing of modulus input to mbedtls_mpi_core_montmul() Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 1ef1b683c3..8e227f8d8e 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -273,8 +273,8 @@ mbedtls_mpi_uint mbedtls_mpi_core_montmul_init( const mbedtls_mpi_uint *N ); * \param[in] N Little-endian presentation of the modulus. * This must be odd, and have exactly the same number * of limbs as \p A. - * It must not alias or otherwise overlap any of the - * other parameters. + * It may alias \p X, but must not alias or otherwise + * overlap any of the other parameters. * \param[in] AN_limbs The number of limbs in \p X, \p A and \p N. * \param mm The Montgomery constant for \p N: -N^-1 mod 2^biL. * This can be calculated by `mbedtls_mpi_core_montmul_init()`. From 31a8815f2541c9544ebeace1c7f2c28ab1dc0eaa Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 29 Sep 2022 18:48:41 +0200 Subject: [PATCH 0437/1028] Documentation typo Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/__init__.py b/scripts/mbedtls_dev/__init__.py index c5bddaf74b..15b0d60dd3 100644 --- a/scripts/mbedtls_dev/__init__.py +++ b/scripts/mbedtls_dev/__init__.py @@ -1,3 +1,3 @@ # This file needs to exist to make mbedtls_dev a package. # Among other things, this allows modules in this directory to make -# relative impotrs. +# relative imports. From d0225afcb62573774df307389352c336b97a9e54 Mon Sep 17 00:00:00 2001 From: Victor Barpp Gomes <17840319+Kabbah@users.noreply.github.com> Date: Thu, 29 Sep 2022 11:40:20 -0300 Subject: [PATCH 0438/1028] Add a new test with a binary hwSerialNum Signed-off-by: Victor Barpp Gomes <17840319+Kabbah@users.noreply.github.com> --- tests/data_files/Makefile | 3 +++ tests/data_files/server5-nonprintable_othername.crt | 12 ++++++++++++ tests/data_files/test-ca.opensslconf | 7 +++++++ tests/suites/test_suite_x509parse.data | 8 ++++++++ 4 files changed, 30 insertions(+) create mode 100644 tests/data_files/server5-nonprintable_othername.crt diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile index 6187d17bc3..09a0689462 100644 --- a/tests/data_files/Makefile +++ b/tests/data_files/Makefile @@ -276,6 +276,9 @@ all_final += server5-ss-forgeca.crt server5-othername.crt: server5.key $(OPENSSL) req -x509 -new -subj "/C=UK/O=Mbed TLS/CN=Mbed TLS othername SAN" -set_serial 77 -config $(test_ca_config_file) -extensions othername_san -days 3650 -sha256 -key $< -out $@ +server5-nonprintable_othername.crt: server5.key + $(OPENSSL) req -x509 -new -subj "/C=UK/O=Mbed TLS/CN=Mbed TLS non-printable othername SAN" -set_serial 77 -config $(test_ca_config_file) -extensions nonprintable_othername_san -days 3650 -sha256 -key $< -out $@ + server5-unsupported_othername.crt: server5.key $(OPENSSL) req -x509 -new -subj "/C=UK/O=Mbed TLS/CN=Mbed TLS unsupported othername SAN" -set_serial 77 -config $(test_ca_config_file) -extensions unsupoported_othername_san -days 3650 -sha256 -key $< -out $@ diff --git a/tests/data_files/server5-nonprintable_othername.crt b/tests/data_files/server5-nonprintable_othername.crt new file mode 100644 index 0000000000..9470bbe9cc --- /dev/null +++ b/tests/data_files/server5-nonprintable_othername.crt @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIBwTCCAWagAwIBAgIBTTAKBggqhkjOPQQDAjBPMQswCQYDVQQGEwJVSzERMA8G +A1UECgwITWJlZCBUTFMxLTArBgNVBAMMJE1iZWQgVExTIG5vbi1wcmludGFibGUg +b3RoZXJuYW1lIFNBTjAeFw0yMjA5MDYxNTU2NDdaFw0zMjA5MDMxNTU2NDdaME8x +CzAJBgNVBAYTAlVLMREwDwYDVQQKDAhNYmVkIFRMUzEtMCsGA1UEAwwkTWJlZCBU +TFMgbm9uLXByaW50YWJsZSBvdGhlcm5hbWUgU0FOMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO5QDYIxH/ +6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/6MzMDEwLwYDVR0RBCgwJqAkBggrBgEF +BQcIBKAYMBYGBysGAQQBEQMECzEyM4CBAIGAMzIxMAoGCCqGSM49BAMCA0kAMEYC +IQDATir07PTj5gtf+HAyI+nd27AH9+bdaWdOI2t2bAwUWgIhAO7kvdcsa++yfJdT +3vnWdvcHRIAdXA0kh+mcBMaXk9B0 +-----END CERTIFICATE----- diff --git a/tests/data_files/test-ca.opensslconf b/tests/data_files/test-ca.opensslconf index 64347de830..3bb237903c 100644 --- a/tests/data_files/test-ca.opensslconf +++ b/tests/data_files/test-ca.opensslconf @@ -15,6 +15,9 @@ basicConstraints = CA:true [othername_san] subjectAltName=otherName:1.3.6.1.5.5.7.8.4;SEQ:hw_module_name +[nonprintable_othername_san] +subjectAltName=otherName:1.3.6.1.5.5.7.8.4;SEQ:nonprintable_hw_module_name + [unsupoported_othername_san] subjectAltName=otherName:1.2.3.4;UTF8:some other identifier @@ -34,6 +37,10 @@ subjectAltName=@alt_names hwtype = OID:1.3.6.1.4.1.17.3 hwserial = OCT:123456 +[nonprintable_hw_module_name] +hwtype = OID:1.3.6.1.4.1.17.3 +hwserial = FORMAT:HEX, OCT:3132338081008180333231 + [v3_any_policy_ca] basicConstraints = CA:true certificatePolicies = 2.5.29.32.0 diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index a4908a61e5..69f745f462 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -90,6 +90,10 @@ X509 CRT information EC, SHA256 Digest, hardware module name SAN depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509_cert_info:"data_files/server5-othername.crt":"cert. version \: 3\nserial number \: 4D\nissuer name \: C=UK, O=Mbed TLS, CN=Mbed TLS othername SAN\nsubject name \: C=UK, O=Mbed TLS, CN=Mbed TLS othername SAN\nissued on \: 2019-03-24 09\:06\:02\nexpires on \: 2029-03-21 09\:06\:02\nsigned using \: ECDSA with SHA256\nEC key size \: 256 bits\nsubject alt name \:\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 313233343536\n" +X509 CRT information EC, SHA256 Digest, binary hardware module name SAN +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +x509_cert_info:"data_files/server5-nonprintable_othername.crt":"cert. version \: 3\nserial number \: 4D\nissuer name \: C=UK, O=Mbed TLS, CN=Mbed TLS non-printable othername SAN\nsubject name \: C=UK, O=Mbed TLS, CN=Mbed TLS non-printable othername SAN\nissued on \: 2022-09-06 15\:56\:47\nexpires on \: 2032-09-03 15\:56\:47\nsigned using \: ECDSA with SHA256\nEC key size \: 256 bits\nsubject alt name \:\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 3132338081008180333231\n" + X509 CRT information EC, SHA256 Digest, Wisun Fan device depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509_cert_info:"data_files/server5-fan.crt":"cert. version \: 3\nserial number \: 4D\nissuer name \: C=UK, O=Mbed TLS, CN=Mbed TLS FAN\nsubject name \: C=UK, O=Mbed TLS, CN=Mbed TLS FAN\nissued on \: 2019-03-25 09\:03\:46\nexpires on \: 2029-03-22 09\:03\:46\nsigned using \: ECDSA with SHA256\nEC key size \: 256 bits\next key usage \: Wi-SUN Alliance Field Area Network (FAN)\n" @@ -174,6 +178,10 @@ X509 SAN parsing otherName depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509_parse_san:"data_files/server5-othername.crt":"type \: 0\notherName \: hardware module name \: hardware type \: 1.3.6.1.4.1.17.3, hardware serial number \: 313233343536\n" +X509 SAN parsing binary otherName +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +x509_parse_san:"data_files/server5-nonprintable_othername.crt":"type \: 0\notherName \: hardware module name \: hardware type \: 1.3.6.1.4.1.17.3, hardware serial number \: 3132338081008180333231\n" + X509 SAN parsing dNSName depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509_parse_san:"data_files/cert_example_multi.crt":"type \: 2\ndNSName \: example.com\ntype \: 2\ndNSName \: example.net\ntype \: 2\ndNSName \: *.example.org\n" From 00a02b1468e95e0c0bf66e513beb919733e78050 Mon Sep 17 00:00:00 2001 From: Victor Barpp Gomes <17840319+Kabbah@users.noreply.github.com> Date: Thu, 29 Sep 2022 11:40:39 -0300 Subject: [PATCH 0439/1028] Add Changelog entry Signed-off-by: Victor Barpp Gomes <17840319+Kabbah@users.noreply.github.com> --- ChangeLog.d/fix_x509_info_hwmodulename.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 ChangeLog.d/fix_x509_info_hwmodulename.txt diff --git a/ChangeLog.d/fix_x509_info_hwmodulename.txt b/ChangeLog.d/fix_x509_info_hwmodulename.txt new file mode 100644 index 0000000000..8b227cec34 --- /dev/null +++ b/ChangeLog.d/fix_x509_info_hwmodulename.txt @@ -0,0 +1,5 @@ +Bugfix + * Fix a bug in which mbedtls_x509_crt_info() would produce non-printable + bytes when parsing certificates containing a binary RFC 4108 + HardwareModuleName as a Subject Alternative Name extension. Hardware + serial numbers are now rendered in hex format. Fixes #6262. From e1d31c4aadac5f354a88117fd7d08412de60765f Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 12 Sep 2022 16:25:24 +0200 Subject: [PATCH 0440/1028] Add conditional swap and assign function for MPI core Signed-off-by: Gabor Mezei --- library/bignum_core.c | 56 +++++++++++++++++++++++++++++++++++++ library/bignum_core.h | 64 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 120 insertions(+) diff --git a/library/bignum_core.c b/library/bignum_core.c index c47292eec2..6aa1e00066 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -25,6 +25,7 @@ #include "mbedtls/error.h" #include "mbedtls/platform_util.h" +#include "constant_time_internal.h" #if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" @@ -161,6 +162,61 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, } } +int mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, + size_t X_limbs, + const mbedtls_mpi_uint *Y, + size_t Y_limbs, + unsigned char assign ) +{ + if( X_limbs < Y_limbs ) + return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL ); + + if( X != NULL && Y != NULL ) + { + /* all-bits 1 if assign is 1, all-bits 0 if assign is 0 */ + mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( assign ); + + mbedtls_ct_mpi_uint_cond_assign( X_limbs, X, Y, assign ); + + for( size_t i = Y_limbs; i < X_limbs; i++ ) + X[i] &= ~limb_mask; + + return( 0 ); + } + + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); +} + +int mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, + size_t X_limbs, + mbedtls_mpi_uint *Y, + size_t Y_limbs, + unsigned char swap ) +{ + if( X == Y ) + return( 0 ); + + if( X_limbs != Y_limbs ) + return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL ); + + if( X != NULL && Y != NULL ) + { + /* all-bits 1 if swap is 1, all-bits 0 if swap is 0 */ + mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( swap ); + + for( size_t i = 0; i < X_limbs; i++ ) + { + mbedtls_mpi_uint tmp = X[i]; + X[i] = ( X[i] & ~limb_mask ) | ( Y[i] & limb_mask ); + Y[i] = ( Y[i] & ~limb_mask ) | ( tmp & limb_mask ); + } + + return( 0 ); + } + + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); +} + int mbedtls_mpi_core_read_le( mbedtls_mpi_uint *X, size_t X_limbs, const unsigned char *input, diff --git a/library/bignum_core.h b/library/bignum_core.h index 8e227f8d8e..24650fe4c8 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -74,6 +74,70 @@ size_t mbedtls_mpi_core_bitlen( const mbedtls_mpi_uint *A, size_t A_limbs ); void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, size_t A_limbs ); +/** + * \brief Perform a safe conditional copy of MPI which doesn't reveal whether + * the condition was true or not. + * + * \param[OUT] X The address of the first MPI. This must be initialized. + * \param X_limbs The number of limbs of \p X. + * \param[IN] Y The address of the second MPI. This must be initialized. + * \param Y_limbs The number of limbs of \p Y. + * \param assign The condition deciding whether to perform the + * assignment or not. Must be either 0 or 1: + * * \c 1: Perform the assignment `X = Y`. + * * \c 0: Keep the original value of \p X. + * + * \note This function avoids leaking any information about whether + * the assignment was done or not. + * + * \warning If \p assign is neither 0 nor 1, the result of this function + * is indeterminate, and the resulting value in \p X might be + * neither its original value nor the value in \p Y. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't + * large enough to hold the value in \p Y. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X or \p Y is invalid. + */ +int mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, + size_t X_limbs, + const mbedtls_mpi_uint *Y, + size_t Y_limbs, + unsigned char assign ); + +/** + * \brief Perform a safe conditional copy of MPI which doesn't reveal whether + * the condition was true or not. + * + * \param[IN,OUT] X The address of the first MPI. + * This must be initialized. + * \param X_limbs The number of limbs of \p X. + * \param[IN,OUT] Y The address of the second MPI. + * This must be initialized. + * \param Y_limbs The number of limbs of \p Y. + * \param swap The condition deciding whether to perform + * the swap or not. Must be either 0 or 1: + * * \c 1: Swap the values of \p X and \p Y. + * * \c 0: Keep the original values of \p X and \p Y. + * + * \note This function avoids leaking any information about whether + * the swap was done or not. + * + * \warning If \p swap is neither 0 nor 1, the result of this function + * is indeterminate, and both \p X and \p Y might end up with + * values different to either of the original ones. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if the size of + * \p X and \p Y is differ. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X or \p Y is invalid. + */ +int mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, + size_t X_limbs, + mbedtls_mpi_uint *Y, + size_t Y_limbs, + unsigned char swap ); + /** Import X from unsigned binary data, little-endian. * * The MPI needs to have enough limbs to store the full value (including any From 12071d440309a2756cef2498d61b50eb5b9dcba1 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 12 Sep 2022 16:35:58 +0200 Subject: [PATCH 0441/1028] Add conditional assign and swap function for MPI modulus Signed-off-by: Gabor Mezei --- library/bignum_mod_raw.c | 18 +++++++++++++ library/bignum_mod_raw.h | 57 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 8c89b2cdf7..f04354d4cb 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -41,6 +41,24 @@ #include "bignum_mod.h" #include "constant_time_internal.h" +int mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *m, + unsigned char assign ) +{ + return mbedtls_mpi_core_cond_assign( X, m->limbs, + Y, m->limbs, assign ); +} + +int mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *m, + unsigned char swap ) +{ + return mbedtls_mpi_core_cond_swap( X, m->limbs, + Y, m->limbs, swap ); +} + int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, const mbedtls_mpi_mod_modulus *m, const unsigned char *input, diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 7b3a0c177b..00ec921e62 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -33,6 +33,63 @@ #include "bignum_mod.h" +/** + * \brief Perform a safe conditional copy of MPI which doesn't reveal whether + * the condition was true or not. + * + * \param[OUT] X The address of the first MPI. This must be initialized. + * \param[IN] Y The address of the second MPI. This must be initialized. + * \param[IN] m The address of the modulus related to \p X and \p Y. + * \param assign The condition deciding whether to perform the + * assignment or not. Must be either 0 or 1: + * * \c 1: Perform the assignment `X = Y`. + * * \c 0: Keep the original value of \p X. + * + * \note This function avoids leaking any information about whether + * the assignment was done or not. + * + * \warning If \p assign is neither 0 nor 1, the result of this function + * is indeterminate, and the resulting value in \p X might be + * neither its original value nor the value in \p Y. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't + * large enough to hold the value in \p Y. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X or \p Y is invalid. + */ +int mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *m, + unsigned char assign ); + +/** + * \brief Perform a safe conditional copy of MPI which doesn't reveal whether + * the condition was true or not. + * + * \param[IN,OUT] X The address of the first MPI. This must be initialized. + * \param[IN,OUT] Y The address of the second MPI. This must be initialized. + * \param[IN] m The address of the modulus related to \p X and \p Y. + * \param swap The condition deciding whether to perform + * the swap or not. Must be either 0 or 1: + * * \c 1: Swap the values of \p X and \p Y. + * * \c 0: Keep the original values of \p X and \p Y. + * + * \note This function avoids leaking any information about whether + * the swap was done or not. + * + * \warning If \p swap is neither 0 nor 1, the result of this function + * is indeterminate, and both \p X and \p Y might end up with + * values different to either of the original ones. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if the size of + * \p X and \p Y is differ. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X or \p Y is invalid. + */int mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *m, + unsigned char swap ); + /** Import X from unsigned binary data. * * The MPI needs to have enough limbs to store the full value (including any From b27b1c5db0536496541d28b84c52de2a2852774b Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 12 Sep 2022 16:36:48 +0200 Subject: [PATCH 0442/1028] Add tests for conditional assign and swap functions Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.data | 102 +++++++++ tests/suites/test_suite_mpi.function | 320 +++++++++++++++++++++++++++ 2 files changed, 422 insertions(+) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 85812f5080..124c8519b0 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -681,6 +681,108 @@ mpi_core_lt_ct:"11FFFFFFFFFFFFFFFF":"FF1111111111111111":1 mbedtls_mpi_core_lt_ct: x>y (alternating limbs) mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 +mbedtls_mpi_core_cond_assign: same size, true condition +mpi_core_cond_assign:"FFFFFFFF":"11111111":1:0 + +mbedtls_mpi_core_cond_assign: same size, false condition +mpi_core_cond_assign:"FFFFFFFF":"11111111":0:0 + +mbedtls_mpi_core_cond_assign: target larger, true condition +mpi_core_cond_assign:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":1:0 + +mbedtls_mpi_core_cond_assign: target larger, false condition +mpi_core_cond_assign:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":0:0 + +#mbedtls_mpi_core_cond_assign: target smaller, true condition +#mpi_core_cond_assign:"FFFFFFFF":"111111112222222233333333":1:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +#mbedtls_mpi_core_cond_assign: target smaller, false condition +#mpi_core_cond_assign:"FFFFFFFF":"111111112222222233333333":0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +#mbedtls_mpi_core_cond_assign: target invalid, true condition +#mpi_core_cond_assign:"":"11111111":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_core_cond_assign: target invalid, false condition +#mpi_core_cond_assign:"":"11111111":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_core_cond_assign: source invalid, true condition +#mpi_core_cond_assign:"FFFFFFFF":"":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_core_cond_assign: source invalid, false condition +#mpi_core_cond_assign:"FFFFFFFF":"":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mbedtls_mpi_core_cond_swap: same value, true condition +mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":1:0 + +mbedtls_mpi_core_cond_swap: same size, true condition +mpi_core_cond_swap:"FFFFFFFF":"11111111":1:0 + +mbedtls_mpi_core_cond_swap: same size, false condition +mpi_core_cond_swap:"FFFFFFFF":"11111111":0:0 + +#mbedtls_mpi_core_cond_swap: first larger, true condition +#mpi_core_cond_swap:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":1:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +#mbedtls_mpi_core_cond_swap: first larger, false condition +#mpi_core_cond_swap:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +#mbedtls_mpi_core_cond_swap: first smaller, true condition +#mpi_core_cond_swap:"FFFFFFFF":"111111112222222233333333":1:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +#mbedtls_mpi_core_cond_swap: first smaller, false condition +#mpi_core_cond_swap:"FFFFFFFF":"111111112222222233333333":0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +#mbedtls_mpi_core_cond_swap: first invalid, true condition +#mpi_core_cond_swap:"":"11111111":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_core_cond_swap: first invalid, false condition +#mpi_core_cond_swap:"":"11111111":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_core_cond_swap: second invalid, true condition +#mpi_core_cond_swap:"FFFFFFFF":"":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_core_cond_swap: second invalid, false condition +#mpi_core_cond_swap:"FFFFFFFF":"":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mbedtls_mpi_mod_raw_cond_assign: same size, true condition +mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":1:0 + +mbedtls_mpi_mod_raw_cond_assign: same size, false condition +mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":0:0 + +#mbedtls_mpi_mod_raw_cond_assign: target invalid, true condition +#mpi_mod_raw_cond_assign:"":"11111111":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_mod_raw_cond_assign: target invalid, false condition +#mpi_mod_raw_cond_assign:"":"11111111":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_mod_raw_cond_assign: source invalid, true condition +#mpi_mod_raw_cond_assign:"FFFFFFFF":"":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_mod_raw_cond_assign: source invalid, false condition +#mpi_mod_raw_cond_assign:"FFFFFFFF":"":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mbedtls_mpi_mod_raw_cond_swap: same value, true condition +mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":1:0 + +mbedtls_mpi_mod_raw_cond_swap: same size, true condition +mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":1:0 + +mbedtls_mpi_mod_raw_cond_swap: same size, false condition +mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":0:0 + +#mbedtls_mpi_mod_raw_cond_swap: first invalid, true condition +#mpi_mod_raw_cond_swap:"":"11111111":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_mod_raw_cond_swap: first invalid, false condition +#mpi_mod_raw_cond_swap:"":"11111111":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_mod_raw_cond_swap: second invalid, true condition +#mpi_mod_raw_cond_swap:"FFFFFFFF":"":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_mod_raw_cond_swap: second invalid, false condition +#mpi_mod_raw_cond_swap:"FFFFFFFF":"":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + Base test mbedtls_mpi_lt_mpi_ct #1 mpi_lt_mpi_ct:1:"2B5":1:"2B5":0:0 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index ff2eaac4ba..b8c7864245 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -763,6 +763,326 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_core_cond_assign( data_t * input_X, + data_t * input_Y, + int cond, + int input_ret ) +{ + #define MAX_LEN 64 + mbedtls_mpi_uint buff_X[MAX_LEN]; + mbedtls_mpi_uint buff_Y[MAX_LEN]; + mbedtls_mpi_uint *X = buff_X; + mbedtls_mpi_uint *Y = buff_Y; + unsigned exp_ret = input_ret; + unsigned ret; + size_t len_X = CHARS_TO_LIMBS( input_X->len ); + size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + + TEST_ASSERT( len_X <= MAX_LEN ); + TEST_ASSERT( len_Y <= MAX_LEN ); + + if( len_X == 0 ) + { + X = NULL; + len_X = len_Y; + } + else + TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, input_X->x, input_X->len ) + == 0 ); + + if( len_Y == 0 ) + { + Y = NULL; + len_Y = len_X; + } + else + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, input_Y->x, input_Y->len ) + == 0 ); + + TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + ret = mbedtls_mpi_core_cond_assign( X, len_X, Y, len_Y, cond ); + + TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( &ret, sizeof( ret ) ); + + TEST_EQUAL( ret, exp_ret ); + + if( !ret ) + { + if( cond ) + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + else + TEST_ASSERT( memcmp( X, Y, len_X * sizeof( mbedtls_mpi_uint ) ) != 0 ); + } + +exit: + ; + + #undef MAX_LEN +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_cond_swap( data_t * input_X, + data_t * input_Y, + int cond, + int input_ret ) +{ + #define MAX_LEN 64 + mbedtls_mpi_uint tmp_X[MAX_LEN]; + mbedtls_mpi_uint tmp_Y[MAX_LEN]; + mbedtls_mpi_uint buff_X[MAX_LEN]; + mbedtls_mpi_uint buff_Y[MAX_LEN]; + mbedtls_mpi_uint *X = buff_X; + mbedtls_mpi_uint *Y = buff_Y; + unsigned exp_ret = input_ret; + unsigned ret; + size_t len_X = CHARS_TO_LIMBS( input_X->len ); + size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + + TEST_ASSERT( len_X <= MAX_LEN ); + TEST_ASSERT( len_Y <= MAX_LEN ); + + if( len_X == 0 ) + { + X = NULL; + len_X = len_Y; + } + else + { + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, + input_X->x, input_X->len ) + == 0 ); + memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + } + + if( len_Y == 0 ) + { + Y = NULL; + len_Y = len_X; + } + else + { + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, + input_Y->x, input_Y->len ) + == 0 ); + memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + } + + TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + ret = mbedtls_mpi_core_cond_swap( X, len_X, Y, len_Y, cond ); + + TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( &ret, sizeof( ret ) ); + + TEST_EQUAL( ret, exp_ret ); + + if( !ret ) + { + if( cond ) + { + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + } + + else + { + ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + } + } + +exit: + ; + + #undef MAX_LEN +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_raw_cond_assign( data_t * input_X, + data_t * input_Y, + int cond, + int input_ret ) +{ + #define MAX_LEN 64 + mbedtls_mpi_uint buff_X[MAX_LEN]; + mbedtls_mpi_uint buff_Y[MAX_LEN]; + mbedtls_mpi_uint buff_m[MAX_LEN]; + mbedtls_mpi_uint *X = buff_X; + mbedtls_mpi_uint *Y = buff_Y; + mbedtls_mpi_mod_modulus m; + unsigned exp_ret = input_ret; + unsigned ret; + size_t len_X = CHARS_TO_LIMBS( input_X->len ); + size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + + TEST_ASSERT( len_X <= MAX_LEN ); + TEST_ASSERT( len_Y <= MAX_LEN ); + + memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); + mbedtls_mpi_mod_modulus_init( &m ); + TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( + &m, buff_m, + len_X <= len_Y ? len_X : len_Y, + MBEDTLS_MPI_MOD_EXT_REP_BE, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + == 0 ); + + if( len_X == 0 ) + { + X = NULL; + len_X = len_Y; + } + else + TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, + input_X->x, input_X->len ) + == 0 ); + + if( len_Y == 0 ) + { + Y = NULL; + len_Y = len_X; + } + else + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, + input_Y->x, input_Y->len ) + == 0 ); + + TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + ret = mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, cond ); + + TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( &ret, sizeof( ret ) ); + + TEST_EQUAL( ret, exp_ret ); + + if( !ret ) + { + if( cond ) + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + else + TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); + } + +exit: + ; + + #undef MAX_LEN +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_raw_cond_swap( data_t * input_X, + data_t * input_Y, + int cond, + int input_ret ) +{ + #define MAX_LEN 64 + mbedtls_mpi_uint tmp_X[MAX_LEN]; + mbedtls_mpi_uint tmp_Y[MAX_LEN]; + mbedtls_mpi_uint buff_X[MAX_LEN]; + mbedtls_mpi_uint buff_Y[MAX_LEN]; + mbedtls_mpi_uint buff_m[MAX_LEN]; + mbedtls_mpi_uint *X = buff_X; + mbedtls_mpi_uint *Y = buff_Y; + mbedtls_mpi_mod_modulus m; + unsigned exp_ret = input_ret; + unsigned ret; + size_t len_X = CHARS_TO_LIMBS( input_X->len ); + size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + + TEST_ASSERT( len_X <= MAX_LEN ); + TEST_ASSERT( len_Y <= MAX_LEN ); + + memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); + mbedtls_mpi_mod_modulus_init( &m ); + TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( + &m, buff_m, + len_X <= len_Y ? len_X : len_Y, + MBEDTLS_MPI_MOD_EXT_REP_BE, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + == 0 ); + + if( len_X == 0 ) + { + X = NULL; + len_X = len_Y; + } + else + { + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, input_X->x, input_X->len ) + == 0 ); + memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + } + + if( len_Y == 0 ) + { + Y = NULL; + len_Y = len_X; + } + else + { + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, input_Y->x, input_Y->len ) + == 0 ); + memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + } + + TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + ret = mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, cond ); + + TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( &ret, sizeof( ret ) ); + + TEST_EQUAL( ret, exp_ret ); + + if( !ret ) + { + if( cond ) + { + ASSERT_COMPARE( X, m.limbs * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, m.limbs * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + } + + else + { + ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, m.limbs * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, m.limbs * sizeof( mbedtls_mpi_uint ) ); + } + } + +exit: + ; + + #undef MAX_LEN +} +/* END_CASE */ + /* BEGIN_CASE */ void mpi_lt_mpi_ct( int size_X, char * input_X, int size_Y, char * input_Y, From 9f6615f146fd94c0b140649255ed797f5845c528 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 15 Sep 2022 19:12:06 +0200 Subject: [PATCH 0443/1028] Remove argument checking from constant time functions Signed-off-by: Gabor Mezei --- library/bignum_core.c | 65 ++++++++++++++----------------------------- library/bignum_core.h | 30 +++++++------------- 2 files changed, 31 insertions(+), 64 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 6aa1e00066..9adc4effb0 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -162,59 +162,36 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, } } -int mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, - size_t X_limbs, - const mbedtls_mpi_uint *Y, - size_t Y_limbs, - unsigned char assign ) +void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, + size_t X_limbs, + const mbedtls_mpi_uint *Y, + size_t Y_limbs, + unsigned char assign ) { - if( X_limbs < Y_limbs ) - return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL ); + /* all-bits 1 if assign is 1, all-bits 0 if assign is 0 */ + mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( assign ); - if( X != NULL && Y != NULL ) - { - /* all-bits 1 if assign is 1, all-bits 0 if assign is 0 */ - mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( assign ); + mbedtls_ct_mpi_uint_cond_assign( Y_limbs, X, Y, assign ); - mbedtls_ct_mpi_uint_cond_assign( X_limbs, X, Y, assign ); - - for( size_t i = Y_limbs; i < X_limbs; i++ ) - X[i] &= ~limb_mask; - - return( 0 ); - } - - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + for( size_t i = Y_limbs; i < X_limbs; i++ ) + X[i] &= ~limb_mask; } -int mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, - size_t X_limbs, - mbedtls_mpi_uint *Y, - size_t Y_limbs, - unsigned char swap ) +void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, + size_t X_limbs, + mbedtls_mpi_uint *Y, + size_t Y_limbs, + unsigned char swap ) { - if( X == Y ) - return( 0 ); + /* all-bits 1 if swap is 1, all-bits 0 if swap is 0 */ + mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( swap ); - if( X_limbs != Y_limbs ) - return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL ); - - if( X != NULL && Y != NULL ) + for( size_t i = 0; i < X_limbs; i++ ) { - /* all-bits 1 if swap is 1, all-bits 0 if swap is 0 */ - mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( swap ); - - for( size_t i = 0; i < X_limbs; i++ ) - { - mbedtls_mpi_uint tmp = X[i]; - X[i] = ( X[i] & ~limb_mask ) | ( Y[i] & limb_mask ); - Y[i] = ( Y[i] & ~limb_mask ) | ( tmp & limb_mask ); - } - - return( 0 ); + mbedtls_mpi_uint tmp = X[i]; + X[i] = ( X[i] & ~limb_mask ) | ( Y[i] & limb_mask ); + Y[i] = ( Y[i] & ~limb_mask ) | ( tmp & limb_mask ); } - - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); } int mbedtls_mpi_core_read_le( mbedtls_mpi_uint *X, diff --git a/library/bignum_core.h b/library/bignum_core.h index 24650fe4c8..a538ece0f5 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -93,17 +93,12 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * \warning If \p assign is neither 0 nor 1, the result of this function * is indeterminate, and the resulting value in \p X might be * neither its original value nor the value in \p Y. - * - * \return \c 0 if successful. - * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't - * large enough to hold the value in \p Y. - * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X or \p Y is invalid. */ -int mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, - size_t X_limbs, - const mbedtls_mpi_uint *Y, - size_t Y_limbs, - unsigned char assign ); +void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, + size_t X_limbs, + const mbedtls_mpi_uint *Y, + size_t Y_limbs, + unsigned char assign ); /** * \brief Perform a safe conditional copy of MPI which doesn't reveal whether @@ -126,17 +121,12 @@ int mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, * \warning If \p swap is neither 0 nor 1, the result of this function * is indeterminate, and both \p X and \p Y might end up with * values different to either of the original ones. - * - * \return \c 0 if successful. - * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if the size of - * \p X and \p Y is differ. - * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X or \p Y is invalid. */ -int mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, - size_t X_limbs, - mbedtls_mpi_uint *Y, - size_t Y_limbs, - unsigned char swap ); +void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, + size_t X_limbs, + mbedtls_mpi_uint *Y, + size_t Y_limbs, + unsigned char swap ); /** Import X from unsigned binary data, little-endian. * From 24d183aa0017956427f9f4e7e96d38dd7b514520 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 15 Sep 2022 19:15:38 +0200 Subject: [PATCH 0444/1028] Use the new swap and assign function in the old interface Signed-off-by: Gabor Mezei --- library/constant_time.c | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/library/constant_time.c b/library/constant_time.c index 8980701e57..3f324ec012 100644 --- a/library/constant_time.c +++ b/library/constant_time.c @@ -678,22 +678,14 @@ int mbedtls_mpi_safe_cond_assign( mbedtls_mpi *X, unsigned char assign ) { int ret = 0; - size_t i; - mbedtls_mpi_uint limb_mask; MPI_VALIDATE_RET( X != NULL ); MPI_VALIDATE_RET( Y != NULL ); - /* all-bits 1 if assign is 1, all-bits 0 if assign is 0 */ - limb_mask = mbedtls_ct_mpi_uint_mask( assign );; - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, Y->n ) ); X->s = mbedtls_ct_cond_select_sign( assign, Y->s, X->s ); - mbedtls_ct_mpi_uint_cond_assign( Y->n, X->p, Y->p, assign ); - - for( i = Y->n; i < X->n; i++ ) - X->p[i] &= ~limb_mask; + mbedtls_mpi_core_cond_assign( X->p, X->n, Y->p, Y->n, assign ); cleanup: return( ret ); @@ -710,18 +702,12 @@ int mbedtls_mpi_safe_cond_swap( mbedtls_mpi *X, unsigned char swap ) { int ret, s; - size_t i; - mbedtls_mpi_uint limb_mask; - mbedtls_mpi_uint tmp; MPI_VALIDATE_RET( X != NULL ); MPI_VALIDATE_RET( Y != NULL ); if( X == Y ) return( 0 ); - /* all-bits 1 if swap is 1, all-bits 0 if swap is 0 */ - limb_mask = mbedtls_ct_mpi_uint_mask( swap ); - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, Y->n ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_grow( Y, X->n ) ); @@ -729,13 +715,7 @@ int mbedtls_mpi_safe_cond_swap( mbedtls_mpi *X, X->s = mbedtls_ct_cond_select_sign( swap, Y->s, X->s ); Y->s = mbedtls_ct_cond_select_sign( swap, s, Y->s ); - - for( i = 0; i < X->n; i++ ) - { - tmp = X->p[i]; - X->p[i] = ( X->p[i] & ~limb_mask ) | ( Y->p[i] & limb_mask ); - Y->p[i] = ( Y->p[i] & ~limb_mask ) | ( tmp & limb_mask ); - } + mbedtls_mpi_core_cond_swap( X->p, X->n, Y->p, Y->n, swap ); cleanup: return( ret ); From 63c3282ec473a76fa7d3d65bc8d57e1fe9022873 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 15 Sep 2022 20:01:31 +0200 Subject: [PATCH 0445/1028] Remove retrun code from mod_raw_cond_assign/swap Signed-off-by: Gabor Mezei --- library/bignum_mod_raw.c | 24 ++++++++++++------------ library/bignum_mod_raw.h | 27 +++++++++------------------ 2 files changed, 21 insertions(+), 30 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index f04354d4cb..60ff9bbed8 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -41,22 +41,22 @@ #include "bignum_mod.h" #include "constant_time_internal.h" -int mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, - const mbedtls_mpi_mod_modulus *m, - unsigned char assign ) +void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *m, + unsigned char assign ) { - return mbedtls_mpi_core_cond_assign( X, m->limbs, - Y, m->limbs, assign ); + mbedtls_mpi_core_cond_assign( X, m->limbs, + Y, m->limbs, assign ); } -int mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, - const mbedtls_mpi_mod_modulus *m, - unsigned char swap ) +void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *m, + unsigned char swap ) { - return mbedtls_mpi_core_cond_swap( X, m->limbs, - Y, m->limbs, swap ); + mbedtls_mpi_core_cond_swap( X, m->limbs, + Y, m->limbs, swap ); } int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 00ec921e62..bdd2eada90 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -51,16 +51,11 @@ * \warning If \p assign is neither 0 nor 1, the result of this function * is indeterminate, and the resulting value in \p X might be * neither its original value nor the value in \p Y. - * - * \return \c 0 if successful. - * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't - * large enough to hold the value in \p Y. - * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X or \p Y is invalid. */ -int mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, - const mbedtls_mpi_mod_modulus *m, - unsigned char assign ); +void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *m, + unsigned char assign ); /** * \brief Perform a safe conditional copy of MPI which doesn't reveal whether @@ -80,15 +75,11 @@ int mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, * \warning If \p swap is neither 0 nor 1, the result of this function * is indeterminate, and both \p X and \p Y might end up with * values different to either of the original ones. - * - * \return \c 0 if successful. - * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if the size of - * \p X and \p Y is differ. - * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X or \p Y is invalid. - */int mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, - const mbedtls_mpi_mod_modulus *m, - unsigned char swap ); + */ +void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *m, + unsigned char swap ); /** Import X from unsigned binary data. * From 87638a9eadec3b768cce3d78bf00fadf4a7498c3 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 15 Sep 2022 20:02:36 +0200 Subject: [PATCH 0446/1028] Add missing include Signed-off-by: Gabor Mezei --- library/constant_time.c | 1 + 1 file changed, 1 insertion(+) diff --git a/library/constant_time.c b/library/constant_time.c index 3f324ec012..09a86cdf26 100644 --- a/library/constant_time.c +++ b/library/constant_time.c @@ -30,6 +30,7 @@ #if defined(MBEDTLS_BIGNUM_C) #include "mbedtls/bignum.h" +#include "bignum_core.h" #endif #if defined(MBEDTLS_SSL_TLS_C) From 53e455db7b052082bb325a670a4b9bd3f57f07bd Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 15 Sep 2022 20:13:53 +0200 Subject: [PATCH 0447/1028] Remove return value checking from test functions of assign and swap Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.data | 90 +++----------------- tests/suites/test_suite_mpi.function | 120 ++++++++++----------------- 2 files changed, 54 insertions(+), 156 deletions(-) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 124c8519b0..a4cd07a239 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -682,106 +682,40 @@ mbedtls_mpi_core_lt_ct: x>y (alternating limbs) mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 mbedtls_mpi_core_cond_assign: same size, true condition -mpi_core_cond_assign:"FFFFFFFF":"11111111":1:0 +mpi_core_cond_assign:"FFFFFFFF":"11111111":1 mbedtls_mpi_core_cond_assign: same size, false condition -mpi_core_cond_assign:"FFFFFFFF":"11111111":0:0 +mpi_core_cond_assign:"FFFFFFFF":"11111111":0 mbedtls_mpi_core_cond_assign: target larger, true condition -mpi_core_cond_assign:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":1:0 +mpi_core_cond_assign:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":1 mbedtls_mpi_core_cond_assign: target larger, false condition -mpi_core_cond_assign:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":0:0 - -#mbedtls_mpi_core_cond_assign: target smaller, true condition -#mpi_core_cond_assign:"FFFFFFFF":"111111112222222233333333":1:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -#mbedtls_mpi_core_cond_assign: target smaller, false condition -#mpi_core_cond_assign:"FFFFFFFF":"111111112222222233333333":0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -#mbedtls_mpi_core_cond_assign: target invalid, true condition -#mpi_core_cond_assign:"":"11111111":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_core_cond_assign: target invalid, false condition -#mpi_core_cond_assign:"":"11111111":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_core_cond_assign: source invalid, true condition -#mpi_core_cond_assign:"FFFFFFFF":"":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_core_cond_assign: source invalid, false condition -#mpi_core_cond_assign:"FFFFFFFF":"":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_core_cond_assign:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":0 mbedtls_mpi_core_cond_swap: same value, true condition -mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":1:0 +mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":1 mbedtls_mpi_core_cond_swap: same size, true condition -mpi_core_cond_swap:"FFFFFFFF":"11111111":1:0 +mpi_core_cond_swap:"FFFFFFFF":"11111111":1 mbedtls_mpi_core_cond_swap: same size, false condition -mpi_core_cond_swap:"FFFFFFFF":"11111111":0:0 - -#mbedtls_mpi_core_cond_swap: first larger, true condition -#mpi_core_cond_swap:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":1:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -#mbedtls_mpi_core_cond_swap: first larger, false condition -#mpi_core_cond_swap:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -#mbedtls_mpi_core_cond_swap: first smaller, true condition -#mpi_core_cond_swap:"FFFFFFFF":"111111112222222233333333":1:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -#mbedtls_mpi_core_cond_swap: first smaller, false condition -#mpi_core_cond_swap:"FFFFFFFF":"111111112222222233333333":0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -#mbedtls_mpi_core_cond_swap: first invalid, true condition -#mpi_core_cond_swap:"":"11111111":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_core_cond_swap: first invalid, false condition -#mpi_core_cond_swap:"":"11111111":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_core_cond_swap: second invalid, true condition -#mpi_core_cond_swap:"FFFFFFFF":"":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_core_cond_swap: second invalid, false condition -#mpi_core_cond_swap:"FFFFFFFF":"":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_core_cond_swap:"FFFFFFFF":"11111111":0 mbedtls_mpi_mod_raw_cond_assign: same size, true condition -mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":1:0 +mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":1 mbedtls_mpi_mod_raw_cond_assign: same size, false condition -mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":0:0 - -#mbedtls_mpi_mod_raw_cond_assign: target invalid, true condition -#mpi_mod_raw_cond_assign:"":"11111111":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_mod_raw_cond_assign: target invalid, false condition -#mpi_mod_raw_cond_assign:"":"11111111":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_mod_raw_cond_assign: source invalid, true condition -#mpi_mod_raw_cond_assign:"FFFFFFFF":"":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_mod_raw_cond_assign: source invalid, false condition -#mpi_mod_raw_cond_assign:"FFFFFFFF":"":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":0 mbedtls_mpi_mod_raw_cond_swap: same value, true condition -mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":1:0 +mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":1 mbedtls_mpi_mod_raw_cond_swap: same size, true condition -mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":1:0 +mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":1 mbedtls_mpi_mod_raw_cond_swap: same size, false condition -mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":0:0 - -#mbedtls_mpi_mod_raw_cond_swap: first invalid, true condition -#mpi_mod_raw_cond_swap:"":"11111111":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_mod_raw_cond_swap: first invalid, false condition -#mpi_mod_raw_cond_swap:"":"11111111":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_mod_raw_cond_swap: second invalid, true condition -#mpi_mod_raw_cond_swap:"FFFFFFFF":"":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_mod_raw_cond_swap: second invalid, false condition -#mpi_mod_raw_cond_swap:"FFFFFFFF":"":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":0 Base test mbedtls_mpi_lt_mpi_ct #1 mpi_lt_mpi_ct:1:"2B5":1:"2B5":0:0 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index b8c7864245..d6769de5b4 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -766,16 +766,13 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_assign( data_t * input_X, data_t * input_Y, - int cond, - int input_ret ) + int cond ) { #define MAX_LEN 64 mbedtls_mpi_uint buff_X[MAX_LEN]; mbedtls_mpi_uint buff_Y[MAX_LEN]; mbedtls_mpi_uint *X = buff_X; mbedtls_mpi_uint *Y = buff_Y; - unsigned exp_ret = input_ret; - unsigned ret; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); @@ -803,23 +800,17 @@ void mpi_core_cond_assign( data_t * input_X, TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ret = mbedtls_mpi_core_cond_assign( X, len_X, Y, len_Y, cond ); + mbedtls_mpi_core_cond_assign( X, len_X, Y, len_Y, cond ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( &ret, sizeof( ret ) ); - TEST_EQUAL( ret, exp_ret ); + if( cond ) + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - if( !ret ) - { - if( cond ) - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - - else - TEST_ASSERT( memcmp( X, Y, len_X * sizeof( mbedtls_mpi_uint ) ) != 0 ); - } + else + TEST_ASSERT( memcmp( X, Y, len_X * sizeof( mbedtls_mpi_uint ) ) != 0 ); exit: ; @@ -831,8 +822,7 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_swap( data_t * input_X, data_t * input_Y, - int cond, - int input_ret ) + int cond ) { #define MAX_LEN 64 mbedtls_mpi_uint tmp_X[MAX_LEN]; @@ -841,8 +831,6 @@ void mpi_core_cond_swap( data_t * input_X, mbedtls_mpi_uint buff_Y[MAX_LEN]; mbedtls_mpi_uint *X = buff_X; mbedtls_mpi_uint *Y = buff_Y; - unsigned exp_ret = input_ret; - unsigned ret; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); @@ -878,31 +866,25 @@ void mpi_core_cond_swap( data_t * input_X, TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ret = mbedtls_mpi_core_cond_swap( X, len_X, Y, len_Y, cond ); + mbedtls_mpi_core_cond_swap( X, len_X, Y, len_Y, cond ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( &ret, sizeof( ret ) ); - TEST_EQUAL( ret, exp_ret ); - - if( !ret ) + if( cond ) { - if( cond ) - { - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - } + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + } - else - { - ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - } + else + { + ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); } exit: @@ -915,8 +897,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_assign( data_t * input_X, data_t * input_Y, - int cond, - int input_ret ) + int cond ) { #define MAX_LEN 64 mbedtls_mpi_uint buff_X[MAX_LEN]; @@ -925,8 +906,6 @@ void mpi_mod_raw_cond_assign( data_t * input_X, mbedtls_mpi_uint *X = buff_X; mbedtls_mpi_uint *Y = buff_Y; mbedtls_mpi_mod_modulus m; - unsigned exp_ret = input_ret; - unsigned ret; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); @@ -965,23 +944,17 @@ void mpi_mod_raw_cond_assign( data_t * input_X, TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ret = mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, cond ); + mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, cond ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( &ret, sizeof( ret ) ); - TEST_EQUAL( ret, exp_ret ); + if( cond ) + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - if( !ret ) - { - if( cond ) - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - - else - TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); - } + else + TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); exit: ; @@ -993,8 +966,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_swap( data_t * input_X, data_t * input_Y, - int cond, - int input_ret ) + int cond ) { #define MAX_LEN 64 mbedtls_mpi_uint tmp_X[MAX_LEN]; @@ -1005,8 +977,6 @@ void mpi_mod_raw_cond_swap( data_t * input_X, mbedtls_mpi_uint *X = buff_X; mbedtls_mpi_uint *Y = buff_Y; mbedtls_mpi_mod_modulus m; - unsigned exp_ret = input_ret; - unsigned ret; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); @@ -1049,31 +1019,25 @@ void mpi_mod_raw_cond_swap( data_t * input_X, TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ret = mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, cond ); + mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, cond ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( &ret, sizeof( ret ) ); - TEST_EQUAL( ret, exp_ret ); - - if( !ret ) + if( cond ) { - if( cond ) - { - ASSERT_COMPARE( X, m.limbs * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, m.limbs * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - } + ASSERT_COMPARE( X, m.limbs * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, m.limbs * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + } - else - { - ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, m.limbs * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, m.limbs * sizeof( mbedtls_mpi_uint ) ); - } + else + { + ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, m.limbs * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, m.limbs * sizeof( mbedtls_mpi_uint ) ); } exit: From cfc0eb8d22b1df506dfeda5d5c3f0433b3c67c3a Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 15 Sep 2022 20:15:34 +0200 Subject: [PATCH 0448/1028] Remove unused parameter Signed-off-by: Gabor Mezei --- library/bignum_core.c | 5 ++--- library/bignum_core.h | 3 +-- library/bignum_mod_raw.c | 3 +-- library/constant_time.c | 2 +- tests/suites/test_suite_mpi.function | 2 +- 5 files changed, 6 insertions(+), 9 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 9adc4effb0..7074a0962b 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -178,15 +178,14 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, } void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, - size_t X_limbs, mbedtls_mpi_uint *Y, - size_t Y_limbs, + size_t limbs, unsigned char swap ) { /* all-bits 1 if swap is 1, all-bits 0 if swap is 0 */ mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( swap ); - for( size_t i = 0; i < X_limbs; i++ ) + for( size_t i = 0; i < limbs; i++ ) { mbedtls_mpi_uint tmp = X[i]; X[i] = ( X[i] & ~limb_mask ) | ( Y[i] & limb_mask ); diff --git a/library/bignum_core.h b/library/bignum_core.h index a538ece0f5..779fb08d9c 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -123,9 +123,8 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, * values different to either of the original ones. */ void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, - size_t X_limbs, mbedtls_mpi_uint *Y, - size_t Y_limbs, + size_t limbs, unsigned char swap ); /** Import X from unsigned binary data, little-endian. diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 60ff9bbed8..bb4a37a1ab 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -55,8 +55,7 @@ void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, const mbedtls_mpi_mod_modulus *m, unsigned char swap ) { - mbedtls_mpi_core_cond_swap( X, m->limbs, - Y, m->limbs, swap ); + mbedtls_mpi_core_cond_swap( X, Y, m->limbs, swap ); } int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, diff --git a/library/constant_time.c b/library/constant_time.c index 09a86cdf26..7bf67f4328 100644 --- a/library/constant_time.c +++ b/library/constant_time.c @@ -716,7 +716,7 @@ int mbedtls_mpi_safe_cond_swap( mbedtls_mpi *X, X->s = mbedtls_ct_cond_select_sign( swap, Y->s, X->s ); Y->s = mbedtls_ct_cond_select_sign( swap, s, Y->s ); - mbedtls_mpi_core_cond_swap( X->p, X->n, Y->p, Y->n, swap ); + mbedtls_mpi_core_cond_swap( X->p, Y->p, X->n, swap ); cleanup: return( ret ); diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index d6769de5b4..4f5b69d285 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -866,7 +866,7 @@ void mpi_core_cond_swap( data_t * input_X, TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - mbedtls_mpi_core_cond_swap( X, len_X, Y, len_Y, cond ); + mbedtls_mpi_core_cond_swap( X, Y, len_X, cond ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); From f4dd3b6a6d6b86eb39c2114c25df602d1c04f846 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 16 Sep 2022 09:38:53 +0200 Subject: [PATCH 0449/1028] Fix documentation Signed-off-by: Gabor Mezei --- library/bignum_core.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 779fb08d9c..cb932388e6 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -106,10 +106,9 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, * * \param[IN,OUT] X The address of the first MPI. * This must be initialized. - * \param X_limbs The number of limbs of \p X. * \param[IN,OUT] Y The address of the second MPI. * This must be initialized. - * \param Y_limbs The number of limbs of \p Y. + * \param limbs The number of limbs of \p Y and \p X. * \param swap The condition deciding whether to perform * the swap or not. Must be either 0 or 1: * * \c 1: Swap the values of \p X and \p Y. From b2763ef50755ed454d7ffb139872aa1f11f6f736 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 16 Sep 2022 17:14:22 +0200 Subject: [PATCH 0450/1028] Do not read uninitialized memory Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 4f5b69d285..6b3f8318e6 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -810,7 +810,8 @@ void mpi_core_cond_assign( data_t * input_X, Y, len_Y * sizeof( mbedtls_mpi_uint ) ); else - TEST_ASSERT( memcmp( X, Y, len_X * sizeof( mbedtls_mpi_uint ) ) != 0 ); + TEST_ASSERT( memcmp( X, Y, MIN( len_X, len_Y ) * + sizeof( mbedtls_mpi_uint ) ) != 0 ); exit: ; From 027d6964345c2a84ac0fe82d6b38b521b9a2610c Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 16 Sep 2022 17:16:27 +0200 Subject: [PATCH 0451/1028] Remove unused code Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 128 +++++++-------------------- 1 file changed, 32 insertions(+), 96 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 6b3f8318e6..1bb54e10c6 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -769,33 +769,19 @@ void mpi_core_cond_assign( data_t * input_X, int cond ) { #define MAX_LEN 64 - mbedtls_mpi_uint buff_X[MAX_LEN]; - mbedtls_mpi_uint buff_Y[MAX_LEN]; - mbedtls_mpi_uint *X = buff_X; - mbedtls_mpi_uint *Y = buff_Y; + mbedtls_mpi_uint X[MAX_LEN]; + mbedtls_mpi_uint Y[MAX_LEN]; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); TEST_ASSERT( len_X <= MAX_LEN ); TEST_ASSERT( len_Y <= MAX_LEN ); - if( len_X == 0 ) - { - X = NULL; - len_X = len_Y; - } - else - TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, input_X->x, input_X->len ) - == 0 ); + TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, input_X->x, input_X->len ) + == 0 ); - if( len_Y == 0 ) - { - Y = NULL; - len_Y = len_X; - } - else - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, input_Y->x, input_Y->len ) - == 0 ); + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, input_Y->x, input_Y->len ) + == 0 ); TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); @@ -828,41 +814,23 @@ void mpi_core_cond_swap( data_t * input_X, #define MAX_LEN 64 mbedtls_mpi_uint tmp_X[MAX_LEN]; mbedtls_mpi_uint tmp_Y[MAX_LEN]; - mbedtls_mpi_uint buff_X[MAX_LEN]; - mbedtls_mpi_uint buff_Y[MAX_LEN]; - mbedtls_mpi_uint *X = buff_X; - mbedtls_mpi_uint *Y = buff_Y; + mbedtls_mpi_uint X[MAX_LEN]; + mbedtls_mpi_uint Y[MAX_LEN]; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); TEST_ASSERT( len_X <= MAX_LEN ); TEST_ASSERT( len_Y <= MAX_LEN ); - if( len_X == 0 ) - { - X = NULL; - len_X = len_Y; - } - else - { - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, - input_X->x, input_X->len ) - == 0 ); - memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - } + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, + input_X->x, input_X->len ) + == 0 ); + memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - if( len_Y == 0 ) - { - Y = NULL; - len_Y = len_X; - } - else - { - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, - input_Y->x, input_Y->len ) - == 0 ); - memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - } + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, + input_Y->x, input_Y->len ) + == 0 ); + memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); @@ -901,11 +869,9 @@ void mpi_mod_raw_cond_assign( data_t * input_X, int cond ) { #define MAX_LEN 64 - mbedtls_mpi_uint buff_X[MAX_LEN]; - mbedtls_mpi_uint buff_Y[MAX_LEN]; + mbedtls_mpi_uint X[MAX_LEN]; + mbedtls_mpi_uint Y[MAX_LEN]; mbedtls_mpi_uint buff_m[MAX_LEN]; - mbedtls_mpi_uint *X = buff_X; - mbedtls_mpi_uint *Y = buff_Y; mbedtls_mpi_mod_modulus m; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); @@ -922,25 +888,13 @@ void mpi_mod_raw_cond_assign( data_t * input_X, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); - if( len_X == 0 ) - { - X = NULL; - len_X = len_Y; - } - else - TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, - input_X->x, input_X->len ) - == 0 ); + TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, + input_X->x, input_X->len ) + == 0 ); - if( len_Y == 0 ) - { - Y = NULL; - len_Y = len_X; - } - else - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, - input_Y->x, input_Y->len ) - == 0 ); + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, + input_Y->x, input_Y->len ) + == 0 ); TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); @@ -972,11 +926,9 @@ void mpi_mod_raw_cond_swap( data_t * input_X, #define MAX_LEN 64 mbedtls_mpi_uint tmp_X[MAX_LEN]; mbedtls_mpi_uint tmp_Y[MAX_LEN]; - mbedtls_mpi_uint buff_X[MAX_LEN]; - mbedtls_mpi_uint buff_Y[MAX_LEN]; + mbedtls_mpi_uint X[MAX_LEN]; + mbedtls_mpi_uint Y[MAX_LEN]; mbedtls_mpi_uint buff_m[MAX_LEN]; - mbedtls_mpi_uint *X = buff_X; - mbedtls_mpi_uint *Y = buff_Y; mbedtls_mpi_mod_modulus m; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); @@ -993,29 +945,13 @@ void mpi_mod_raw_cond_swap( data_t * input_X, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); - if( len_X == 0 ) - { - X = NULL; - len_X = len_Y; - } - else - { - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, input_X->x, input_X->len ) - == 0 ); - memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - } + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, input_X->x, input_X->len ) + == 0 ); + memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - if( len_Y == 0 ) - { - Y = NULL; - len_Y = len_X; - } - else - { - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, input_Y->x, input_Y->len ) - == 0 ); - memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - } + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, input_Y->x, input_Y->len ) + == 0 ); + memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); From 2b5bf4cec7166e126b5f68bb1c2bafa8973ea2d2 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 26 Sep 2022 17:09:58 +0200 Subject: [PATCH 0452/1028] Fix doumentation Signed-off-by: Gabor Mezei --- library/bignum_core.h | 2 +- library/bignum_mod_raw.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index cb932388e6..d8951486ca 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -101,7 +101,7 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, unsigned char assign ); /** - * \brief Perform a safe conditional copy of MPI which doesn't reveal whether + * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * * \param[IN,OUT] X The address of the first MPI. diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index bdd2eada90..82a8ce8517 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -58,7 +58,7 @@ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, unsigned char assign ); /** - * \brief Perform a safe conditional copy of MPI which doesn't reveal whether + * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * * \param[IN,OUT] X The address of the first MPI. This must be initialized. From 81e57021c67a1a624fd8085ae287de50121e19bd Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 26 Sep 2022 17:13:33 +0200 Subject: [PATCH 0453/1028] Change the input parameters to be const Signed-off-by: Gabor Mezei --- library/bignum_mod_raw.c | 2 +- library/bignum_mod_raw.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index bb4a37a1ab..98994ab361 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -42,7 +42,7 @@ #include "constant_time_internal.h" void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, + const mbedtls_mpi_uint *Y, const mbedtls_mpi_mod_modulus *m, unsigned char assign ) { diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 82a8ce8517..60c8d8acf4 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -53,7 +53,7 @@ * neither its original value nor the value in \p Y. */ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, + const mbedtls_mpi_uint *Y, const mbedtls_mpi_mod_modulus *m, unsigned char assign ); From 3eff425b1ae1a3f65fefbf47afcb1e868ced007a Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 26 Sep 2022 17:26:42 +0200 Subject: [PATCH 0454/1028] Use only one limb parameter for assign Signed-off-by: Gabor Mezei --- library/bignum_core.c | 11 ++--------- library/bignum_core.h | 7 +++---- library/bignum_mod_raw.c | 3 +-- library/constant_time.c | 8 +++++++- tests/suites/test_suite_mpi.function | 2 +- 5 files changed, 14 insertions(+), 17 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 7074a0962b..83c115e11e 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -163,18 +163,11 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, } void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, - size_t X_limbs, const mbedtls_mpi_uint *Y, - size_t Y_limbs, + size_t limbs, unsigned char assign ) { - /* all-bits 1 if assign is 1, all-bits 0 if assign is 0 */ - mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( assign ); - - mbedtls_ct_mpi_uint_cond_assign( Y_limbs, X, Y, assign ); - - for( size_t i = Y_limbs; i < X_limbs; i++ ) - X[i] &= ~limb_mask; + mbedtls_ct_mpi_uint_cond_assign( limbs, X, Y, assign ); } void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, diff --git a/library/bignum_core.h b/library/bignum_core.h index d8951486ca..cf7688d17a 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -79,9 +79,9 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * the condition was true or not. * * \param[OUT] X The address of the first MPI. This must be initialized. - * \param X_limbs The number of limbs of \p X. + * It must have at least \p limbs limbs. * \param[IN] Y The address of the second MPI. This must be initialized. - * \param Y_limbs The number of limbs of \p Y. + * \param limbs The number of limbs of \p Y. * \param assign The condition deciding whether to perform the * assignment or not. Must be either 0 or 1: * * \c 1: Perform the assignment `X = Y`. @@ -95,9 +95,8 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * neither its original value nor the value in \p Y. */ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, - size_t X_limbs, const mbedtls_mpi_uint *Y, - size_t Y_limbs, + size_t limbs, unsigned char assign ); /** diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 98994ab361..3c7f889663 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -46,8 +46,7 @@ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, const mbedtls_mpi_mod_modulus *m, unsigned char assign ) { - mbedtls_mpi_core_cond_assign( X, m->limbs, - Y, m->limbs, assign ); + mbedtls_mpi_core_cond_assign( X, Y, m->limbs, assign ); } void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, diff --git a/library/constant_time.c b/library/constant_time.c index 7bf67f4328..d01998bd72 100644 --- a/library/constant_time.c +++ b/library/constant_time.c @@ -682,11 +682,17 @@ int mbedtls_mpi_safe_cond_assign( mbedtls_mpi *X, MPI_VALIDATE_RET( X != NULL ); MPI_VALIDATE_RET( Y != NULL ); + /* all-bits 1 if assign is 1, all-bits 0 if assign is 0 */ + mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( assign ); + MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, Y->n ) ); X->s = mbedtls_ct_cond_select_sign( assign, Y->s, X->s ); - mbedtls_mpi_core_cond_assign( X->p, X->n, Y->p, Y->n, assign ); + mbedtls_mpi_core_cond_assign( X->p, Y->p, Y->n, assign ); + + for( size_t i = Y->n; i < X->n; i++ ) + X->p[i] &= ~limb_mask; cleanup: return( ret ); diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 1bb54e10c6..9cb2d90961 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -786,7 +786,7 @@ void mpi_core_cond_assign( data_t * input_X, TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - mbedtls_mpi_core_cond_assign( X, len_X, Y, len_Y, cond ); + mbedtls_mpi_core_cond_assign( X, Y, len_Y, cond ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); From 1c628d57006fb43718c0a60db9fa129db6bfe0b3 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 27 Sep 2022 12:13:51 +0200 Subject: [PATCH 0455/1028] Follow parameter naming comvention Signed-off-by: Gabor Mezei --- library/bignum_core.c | 14 +++++++------- library/bignum_core.h | 24 ++++++++++++------------ library/bignum_mod_raw.c | 10 +++++----- library/bignum_mod_raw.h | 26 +++++++++++++------------- 4 files changed, 37 insertions(+), 37 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 83c115e11e..473ef1ae24 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -163,15 +163,15 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, } void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *Y, + const mbedtls_mpi_uint *A, size_t limbs, unsigned char assign ) { - mbedtls_ct_mpi_uint_cond_assign( limbs, X, Y, assign ); + mbedtls_ct_mpi_uint_cond_assign( limbs, X, A, assign ); } -void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, +void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *A, + mbedtls_mpi_uint *B, size_t limbs, unsigned char swap ) { @@ -180,9 +180,9 @@ void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, for( size_t i = 0; i < limbs; i++ ) { - mbedtls_mpi_uint tmp = X[i]; - X[i] = ( X[i] & ~limb_mask ) | ( Y[i] & limb_mask ); - Y[i] = ( Y[i] & ~limb_mask ) | ( tmp & limb_mask ); + mbedtls_mpi_uint tmp = A[i]; + A[i] = ( A[i] & ~limb_mask ) | ( B[i] & limb_mask ); + B[i] = ( B[i] & ~limb_mask ) | ( tmp & limb_mask ); } } diff --git a/library/bignum_core.h b/library/bignum_core.h index cf7688d17a..86180d3ebc 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -80,11 +80,11 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * * \param[OUT] X The address of the first MPI. This must be initialized. * It must have at least \p limbs limbs. - * \param[IN] Y The address of the second MPI. This must be initialized. - * \param limbs The number of limbs of \p Y. + * \param[IN] A The address of the second MPI. This must be initialized. + * \param limbs The number of limbs of \p A. * \param assign The condition deciding whether to perform the * assignment or not. Must be either 0 or 1: - * * \c 1: Perform the assignment `X = Y`. + * * \c 1: Perform the assignment `X = A`. * * \c 0: Keep the original value of \p X. * * \note This function avoids leaking any information about whether @@ -95,7 +95,7 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * neither its original value nor the value in \p Y. */ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *Y, + const mbedtls_mpi_uint *A, size_t limbs, unsigned char assign ); @@ -103,25 +103,25 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * - * \param[IN,OUT] X The address of the first MPI. + * \param[IN,OUT] A The address of the first MPI. * This must be initialized. - * \param[IN,OUT] Y The address of the second MPI. + * \param[IN,OUT] B The address of the second MPI. * This must be initialized. - * \param limbs The number of limbs of \p Y and \p X. + * \param limbs The number of limbs of \p A and \p B. * \param swap The condition deciding whether to perform * the swap or not. Must be either 0 or 1: - * * \c 1: Swap the values of \p X and \p Y. - * * \c 0: Keep the original values of \p X and \p Y. + * * \c 1: Swap the values of \p A and \p B. + * * \c 0: Keep the original values of \p A and \p B. * * \note This function avoids leaking any information about whether * the swap was done or not. * * \warning If \p swap is neither 0 nor 1, the result of this function - * is indeterminate, and both \p X and \p Y might end up with + * is indeterminate, and both \p A and \p B might end up with * values different to either of the original ones. */ -void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, +void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *A, + mbedtls_mpi_uint *B, size_t limbs, unsigned char swap ); diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 3c7f889663..82ef645f0a 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -42,19 +42,19 @@ #include "constant_time_internal.h" void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *Y, + const mbedtls_mpi_uint *A, const mbedtls_mpi_mod_modulus *m, unsigned char assign ) { - mbedtls_mpi_core_cond_assign( X, Y, m->limbs, assign ); + mbedtls_mpi_core_cond_assign( X, A, m->limbs, assign ); } -void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, +void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *A, + mbedtls_mpi_uint *B, const mbedtls_mpi_mod_modulus *m, unsigned char swap ) { - mbedtls_mpi_core_cond_swap( X, Y, m->limbs, swap ); + mbedtls_mpi_core_cond_swap( A, B, m->limbs, swap ); } int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 60c8d8acf4..edd356ce2c 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -38,11 +38,11 @@ * the condition was true or not. * * \param[OUT] X The address of the first MPI. This must be initialized. - * \param[IN] Y The address of the second MPI. This must be initialized. - * \param[IN] m The address of the modulus related to \p X and \p Y. + * \param[IN] A The address of the second MPI. This must be initialized. + * \param[IN] m The address of the modulus related to \p X and \p A. * \param assign The condition deciding whether to perform the * assignment or not. Must be either 0 or 1: - * * \c 1: Perform the assignment `X = Y`. + * * \c 1: Perform the assignment `X = A`. * * \c 0: Keep the original value of \p X. * * \note This function avoids leaking any information about whether @@ -50,10 +50,10 @@ * * \warning If \p assign is neither 0 nor 1, the result of this function * is indeterminate, and the resulting value in \p X might be - * neither its original value nor the value in \p Y. + * neither its original value nor the value in \p B. */ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *Y, + const mbedtls_mpi_uint *A, const mbedtls_mpi_mod_modulus *m, unsigned char assign ); @@ -61,23 +61,23 @@ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * - * \param[IN,OUT] X The address of the first MPI. This must be initialized. - * \param[IN,OUT] Y The address of the second MPI. This must be initialized. - * \param[IN] m The address of the modulus related to \p X and \p Y. + * \param[IN,OUT] A The address of the first MPI. This must be initialized. + * \param[IN,OUT] B The address of the second MPI. This must be initialized. + * \param[IN] m The address of the modulus related to \p A and \p B. * \param swap The condition deciding whether to perform * the swap or not. Must be either 0 or 1: - * * \c 1: Swap the values of \p X and \p Y. - * * \c 0: Keep the original values of \p X and \p Y. + * * \c 1: Swap the values of \p A and \p B. + * * \c 0: Keep the original values of \p A and \p B. * * \note This function avoids leaking any information about whether * the swap was done or not. * * \warning If \p swap is neither 0 nor 1, the result of this function - * is indeterminate, and both \p X and \p Y might end up with + * is indeterminate, and both \p A and \p B might end up with * values different to either of the original ones. */ -void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, +void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *A, + mbedtls_mpi_uint *B, const mbedtls_mpi_mod_modulus *m, unsigned char swap ); From 821d15107b47580040bed176315fa34bd43ebaad Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 27 Sep 2022 12:41:28 +0200 Subject: [PATCH 0456/1028] Check true and false condition in the same test case Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.data | 42 +++------ tests/suites/test_suite_mpi.function | 122 ++++++++++++++++----------- 2 files changed, 83 insertions(+), 81 deletions(-) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index a4cd07a239..7868a24f8a 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -681,41 +681,23 @@ mpi_core_lt_ct:"11FFFFFFFFFFFFFFFF":"FF1111111111111111":1 mbedtls_mpi_core_lt_ct: x>y (alternating limbs) mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 -mbedtls_mpi_core_cond_assign: same size, true condition -mpi_core_cond_assign:"FFFFFFFF":"11111111":1 +mbedtls_mpi_core_cond_assign +mpi_core_cond_assign:"FFFFFFFF":"11111111" -mbedtls_mpi_core_cond_assign: same size, false condition -mpi_core_cond_assign:"FFFFFFFF":"11111111":0 +mbedtls_mpi_core_cond_swap: same value +mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF" -mbedtls_mpi_core_cond_assign: target larger, true condition -mpi_core_cond_assign:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":1 +mbedtls_mpi_core_cond_swap: different value +mpi_core_cond_swap:"FFFFFFFF":"11111111" -mbedtls_mpi_core_cond_assign: target larger, false condition -mpi_core_cond_assign:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":0 +mbedtls_mpi_mod_raw_cond_assign +mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111" -mbedtls_mpi_core_cond_swap: same value, true condition -mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":1 +mbedtls_mpi_mod_raw_cond_swap: same value +mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF" -mbedtls_mpi_core_cond_swap: same size, true condition -mpi_core_cond_swap:"FFFFFFFF":"11111111":1 - -mbedtls_mpi_core_cond_swap: same size, false condition -mpi_core_cond_swap:"FFFFFFFF":"11111111":0 - -mbedtls_mpi_mod_raw_cond_assign: same size, true condition -mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":1 - -mbedtls_mpi_mod_raw_cond_assign: same size, false condition -mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":0 - -mbedtls_mpi_mod_raw_cond_swap: same value, true condition -mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":1 - -mbedtls_mpi_mod_raw_cond_swap: same size, true condition -mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":1 - -mbedtls_mpi_mod_raw_cond_swap: same size, false condition -mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":0 +mbedtls_mpi_mod_raw_cond_swap: different value +mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111" Base test mbedtls_mpi_lt_mpi_ct #1 mpi_lt_mpi_ct:1:"2B5":1:"2B5":0:0 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 9cb2d90961..7a87c0738d 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -765,8 +765,7 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_assign( data_t * input_X, - data_t * input_Y, - int cond ) + data_t * input_Y ) { #define MAX_LEN 64 mbedtls_mpi_uint X[MAX_LEN]; @@ -783,21 +782,29 @@ void mpi_core_cond_assign( data_t * input_X, TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, input_Y->x, input_Y->len ) == 0 ); + /* condition is false */ TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - mbedtls_mpi_core_cond_assign( X, Y, len_Y, cond ); + mbedtls_mpi_core_cond_assign( X, Y, len_Y, 0 ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - if( cond ) - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_ASSERT( memcmp( X, Y, MIN( len_X, len_Y ) * + sizeof( mbedtls_mpi_uint ) ) != 0 ); - else - TEST_ASSERT( memcmp( X, Y, MIN( len_X, len_Y ) * - sizeof( mbedtls_mpi_uint ) ) != 0 ); + /* condition is true */ + TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + mbedtls_mpi_core_cond_assign( X, Y, len_Y, 1 ); + + TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + Y, len_Y * sizeof( mbedtls_mpi_uint ) ); exit: ; @@ -808,8 +815,7 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_swap( data_t * input_X, - data_t * input_Y, - int cond ) + data_t * input_Y ) { #define MAX_LEN 64 mbedtls_mpi_uint tmp_X[MAX_LEN]; @@ -832,29 +838,33 @@ void mpi_core_cond_swap( data_t * input_X, == 0 ); memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + /* condition is false */ TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - mbedtls_mpi_core_cond_swap( X, Y, len_X, cond ); + mbedtls_mpi_core_cond_swap( X, Y, len_X, 0 ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - if( cond ) - { - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - } + ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - else - { - ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - } + /* condition is true */ + TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + mbedtls_mpi_core_cond_swap( X, Y, len_X, 1 ); + + TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); exit: ; @@ -865,8 +875,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_assign( data_t * input_X, - data_t * input_Y, - int cond ) + data_t * input_Y ) { #define MAX_LEN 64 mbedtls_mpi_uint X[MAX_LEN]; @@ -896,20 +905,28 @@ void mpi_mod_raw_cond_assign( data_t * input_X, input_Y->x, input_Y->len ) == 0 ); + /* condition is false */ TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, cond ); + mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - if( cond ) - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); - else - TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); + /* condition is true */ + TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); + + TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + Y, len_Y * sizeof( mbedtls_mpi_uint ) ); exit: ; @@ -920,8 +937,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_swap( data_t * input_X, - data_t * input_Y, - int cond ) + data_t * input_Y ) { #define MAX_LEN 64 mbedtls_mpi_uint tmp_X[MAX_LEN]; @@ -953,29 +969,33 @@ void mpi_mod_raw_cond_swap( data_t * input_X, == 0 ); memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + /* condition is false */ TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, cond ); + mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 0 ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - if( cond ) - { - ASSERT_COMPARE( X, m.limbs * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, m.limbs * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - } + ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, m.limbs * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, m.limbs * sizeof( mbedtls_mpi_uint ) ); - else - { - ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, m.limbs * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, m.limbs * sizeof( mbedtls_mpi_uint ) ); - } + /* condition is true */ + TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 1 ); + + TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + ASSERT_COMPARE( X, m.limbs * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, m.limbs * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); exit: ; From a7584888da70802d757dfa662afaff5eef9cf5cf Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 27 Sep 2022 13:18:02 +0200 Subject: [PATCH 0457/1028] Use exact-size buffers for inputs and outputs to library functions in tests Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 160 ++++++++++++++------------- 1 file changed, 86 insertions(+), 74 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 7a87c0738d..6118efc585 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -768,14 +768,19 @@ void mpi_core_cond_assign( data_t * input_X, data_t * input_Y ) { #define MAX_LEN 64 - mbedtls_mpi_uint X[MAX_LEN]; - mbedtls_mpi_uint Y[MAX_LEN]; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); TEST_ASSERT( len_X <= MAX_LEN ); TEST_ASSERT( len_Y <= MAX_LEN ); + ASSERT_ALLOC( X, len_X_byte ); + ASSERT_ALLOC( Y, len_Y_byte ); + TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, input_X->x, input_X->len ) == 0 ); @@ -783,28 +788,26 @@ void mpi_core_cond_assign( data_t * input_X, == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_core_cond_assign( X, Y, len_Y, 0 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - TEST_ASSERT( memcmp( X, Y, MIN( len_X, len_Y ) * - sizeof( mbedtls_mpi_uint ) ) != 0 ); + TEST_ASSERT( memcmp( X, Y, MIN( len_X_byte, len_Y_byte ) ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_core_cond_assign( X, Y, len_Y, 1 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_Y_byte, Y, len_Y_byte ); exit: ; @@ -818,53 +821,56 @@ void mpi_core_cond_swap( data_t * input_X, data_t * input_Y ) { #define MAX_LEN 64 - mbedtls_mpi_uint tmp_X[MAX_LEN]; - mbedtls_mpi_uint tmp_Y[MAX_LEN]; - mbedtls_mpi_uint X[MAX_LEN]; - mbedtls_mpi_uint Y[MAX_LEN]; + mbedtls_mpi_uint *tmp_X = NULL; + mbedtls_mpi_uint *tmp_Y = NULL; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); TEST_ASSERT( len_X <= MAX_LEN ); TEST_ASSERT( len_Y <= MAX_LEN ); + ASSERT_ALLOC( tmp_X, len_X_byte ); + ASSERT_ALLOC( tmp_Y, len_Y_byte ); + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, input_X->x, input_X->len ) == 0 ); - memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_ALLOC( X, len_X_byte ); + memcpy( X, tmp_X, len_X_byte ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, input_Y->x, input_Y->len ) == 0 ); - memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_ALLOC( Y, len_Y_byte ); + memcpy( Y, tmp_Y, len_Y_byte ); /* condition is false */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_core_cond_swap( X, Y, len_X, 0 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_X_byte, tmp_X, len_X_byte ); + ASSERT_COMPARE( Y, len_Y_byte, tmp_Y, len_Y_byte ); /* condition is true */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_core_cond_swap( X, Y, len_X, 1 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_Y_byte, tmp_Y, len_Y_byte ); + ASSERT_COMPARE( Y, len_X_byte, tmp_X, len_X_byte ); exit: ; @@ -878,21 +884,25 @@ void mpi_mod_raw_cond_assign( data_t * input_X, data_t * input_Y ) { #define MAX_LEN 64 - mbedtls_mpi_uint X[MAX_LEN]; - mbedtls_mpi_uint Y[MAX_LEN]; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; mbedtls_mpi_uint buff_m[MAX_LEN]; mbedtls_mpi_mod_modulus m; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); TEST_ASSERT( len_X <= MAX_LEN ); TEST_ASSERT( len_Y <= MAX_LEN ); + ASSERT_ALLOC( X, len_X_byte ); + ASSERT_ALLOC( Y, len_Y_byte ); + memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, - len_X <= len_Y ? len_X : len_Y, + &m, buff_m, len_Y, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); @@ -906,27 +916,26 @@ void mpi_mod_raw_cond_assign( data_t * input_X, == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_Y_byte, Y, len_Y_byte ); exit: ; @@ -940,62 +949,65 @@ void mpi_mod_raw_cond_swap( data_t * input_X, data_t * input_Y ) { #define MAX_LEN 64 - mbedtls_mpi_uint tmp_X[MAX_LEN]; - mbedtls_mpi_uint tmp_Y[MAX_LEN]; - mbedtls_mpi_uint X[MAX_LEN]; - mbedtls_mpi_uint Y[MAX_LEN]; + mbedtls_mpi_uint *tmp_X = NULL; + mbedtls_mpi_uint *tmp_Y = NULL; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; mbedtls_mpi_uint buff_m[MAX_LEN]; mbedtls_mpi_mod_modulus m; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); + size_t len_m_byte = len_X_byte; TEST_ASSERT( len_X <= MAX_LEN ); TEST_ASSERT( len_Y <= MAX_LEN ); + ASSERT_ALLOC( tmp_X, len_X_byte ); + ASSERT_ALLOC( tmp_Y, len_Y_byte ); + memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, - len_X <= len_Y ? len_X : len_Y, + &m, buff_m, len_X, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, input_X->x, input_X->len ) == 0 ); - memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_ALLOC( X, len_X_byte ); + memcpy( X, tmp_X, len_X_byte ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, input_Y->x, input_Y->len ) == 0 ); - memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_ALLOC( Y, len_Y_byte ); + memcpy( Y, tmp_Y, len_Y_byte ); /* condition is false */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, m.limbs * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, m.limbs * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_X_byte, tmp_X, len_X_byte ); + ASSERT_COMPARE( Y, len_Y_byte, tmp_Y, len_Y_byte ); /* condition is true */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, m.limbs * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, m.limbs * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_m_byte, tmp_Y, len_Y_byte ); + ASSERT_COMPARE( Y, len_m_byte, tmp_X, len_X_byte ); exit: ; From 8b05e3b148a99be05e05f884b546480baa958ac3 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Wed, 28 Sep 2022 12:37:02 +0200 Subject: [PATCH 0458/1028] Add memory freeing Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 6118efc585..6dda5ef1e2 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -810,7 +810,8 @@ void mpi_core_cond_assign( data_t * input_X, ASSERT_COMPARE( X, len_Y_byte, Y, len_Y_byte ); exit: - ; + mbedtls_free( X ); + mbedtls_free( Y ); #undef MAX_LEN } @@ -873,7 +874,10 @@ void mpi_core_cond_swap( data_t * input_X, ASSERT_COMPARE( Y, len_X_byte, tmp_X, len_X_byte ); exit: - ; + mbedtls_free( tmp_X ); + mbedtls_free( tmp_Y ); + mbedtls_free( X ); + mbedtls_free( Y ); #undef MAX_LEN } @@ -938,7 +942,10 @@ void mpi_mod_raw_cond_assign( data_t * input_X, ASSERT_COMPARE( X, len_Y_byte, Y, len_Y_byte ); exit: - ; + mbedtls_free( X ); + mbedtls_free( Y ); + + mbedtls_mpi_mod_modulus_free( &m ); #undef MAX_LEN } @@ -1010,7 +1017,12 @@ void mpi_mod_raw_cond_swap( data_t * input_X, ASSERT_COMPARE( Y, len_m_byte, tmp_X, len_X_byte ); exit: - ; + mbedtls_free( tmp_X ); + mbedtls_free( tmp_Y ); + mbedtls_free( X ); + mbedtls_free( Y ); + + mbedtls_mpi_mod_modulus_free( &m ); #undef MAX_LEN } From e5b8585f1eeff116f599102da614af8be2a641ab Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 30 Sep 2022 13:54:02 +0200 Subject: [PATCH 0459/1028] Follow parameter naming convention Signed-off-by: Gabor Mezei --- library/bignum_core.c | 10 +++++----- library/bignum_core.h | 16 ++++++++-------- library/bignum_mod_raw.c | 12 ++++++------ library/bignum_mod_raw.h | 22 +++++++++++----------- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 473ef1ae24..233b22ded6 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -170,8 +170,8 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, mbedtls_ct_mpi_uint_cond_assign( limbs, X, A, assign ); } -void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *A, - mbedtls_mpi_uint *B, +void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, size_t limbs, unsigned char swap ) { @@ -180,9 +180,9 @@ void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *A, for( size_t i = 0; i < limbs; i++ ) { - mbedtls_mpi_uint tmp = A[i]; - A[i] = ( A[i] & ~limb_mask ) | ( B[i] & limb_mask ); - B[i] = ( B[i] & ~limb_mask ) | ( tmp & limb_mask ); + mbedtls_mpi_uint tmp = X[i]; + X[i] = ( X[i] & ~limb_mask ) | ( Y[i] & limb_mask ); + Y[i] = ( Y[i] & ~limb_mask ) | ( tmp & limb_mask ); } } diff --git a/library/bignum_core.h b/library/bignum_core.h index 86180d3ebc..0dd507a3e1 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -103,25 +103,25 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * - * \param[IN,OUT] A The address of the first MPI. + * \param[IN,OUT] X The address of the first MPI. * This must be initialized. - * \param[IN,OUT] B The address of the second MPI. + * \param[IN,OUT] Y The address of the second MPI. * This must be initialized. - * \param limbs The number of limbs of \p A and \p B. + * \param limbs The number of limbs of \p X and \p Y. * \param swap The condition deciding whether to perform * the swap or not. Must be either 0 or 1: - * * \c 1: Swap the values of \p A and \p B. - * * \c 0: Keep the original values of \p A and \p B. + * * \c 1: Swap the values of \p X and \p Y. + * * \c 0: Keep the original values of \p X and \p Y. * * \note This function avoids leaking any information about whether * the swap was done or not. * * \warning If \p swap is neither 0 nor 1, the result of this function - * is indeterminate, and both \p A and \p B might end up with + * is indeterminate, and both \p X and \p Y might end up with * values different to either of the original ones. */ -void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *A, - mbedtls_mpi_uint *B, +void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, size_t limbs, unsigned char swap ); diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 82ef645f0a..7200f003c1 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -43,18 +43,18 @@ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, - const mbedtls_mpi_mod_modulus *m, + const mbedtls_mpi_mod_modulus *N, unsigned char assign ) { - mbedtls_mpi_core_cond_assign( X, A, m->limbs, assign ); + mbedtls_mpi_core_cond_assign( X, A, N->limbs, assign ); } -void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *A, - mbedtls_mpi_uint *B, - const mbedtls_mpi_mod_modulus *m, +void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *N, unsigned char swap ) { - mbedtls_mpi_core_cond_swap( A, B, m->limbs, swap ); + mbedtls_mpi_core_cond_swap( X, Y, N->limbs, swap ); } int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index edd356ce2c..b2f333ee46 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -39,7 +39,7 @@ * * \param[OUT] X The address of the first MPI. This must be initialized. * \param[IN] A The address of the second MPI. This must be initialized. - * \param[IN] m The address of the modulus related to \p X and \p A. + * \param[IN] N The address of the modulus related to \p X and \p A. * \param assign The condition deciding whether to perform the * assignment or not. Must be either 0 or 1: * * \c 1: Perform the assignment `X = A`. @@ -54,31 +54,31 @@ */ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, - const mbedtls_mpi_mod_modulus *m, + const mbedtls_mpi_mod_modulus *N, unsigned char assign ); /** * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * - * \param[IN,OUT] A The address of the first MPI. This must be initialized. - * \param[IN,OUT] B The address of the second MPI. This must be initialized. - * \param[IN] m The address of the modulus related to \p A and \p B. + * \param[IN,OUT] X The address of the first MPI. This must be initialized. + * \param[IN,OUT] Y The address of the second MPI. This must be initialized. + * \param[IN] N The address of the modulus related to \p X and \p Y. * \param swap The condition deciding whether to perform * the swap or not. Must be either 0 or 1: - * * \c 1: Swap the values of \p A and \p B. - * * \c 0: Keep the original values of \p A and \p B. + * * \c 1: Swap the values of \p X and \p Y. + * * \c 0: Keep the original values of \p X and \p Y. * * \note This function avoids leaking any information about whether * the swap was done or not. * * \warning If \p swap is neither 0 nor 1, the result of this function - * is indeterminate, and both \p A and \p B might end up with + * is indeterminate, and both \p X and \p Y might end up with * values different to either of the original ones. */ -void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *A, - mbedtls_mpi_uint *B, - const mbedtls_mpi_mod_modulus *m, +void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *N, unsigned char swap ); /** Import X from unsigned binary data. From 86dfe384c2b33de95e0116683bbc8b4ffc8e164d Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 30 Sep 2022 14:03:04 +0200 Subject: [PATCH 0460/1028] Fix documentation tags to be lower case Signed-off-by: Gabor Mezei --- library/bignum_core.h | 8 ++++---- library/bignum_mod_raw.h | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 0dd507a3e1..493ec12cdc 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -78,9 +78,9 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * \brief Perform a safe conditional copy of MPI which doesn't reveal whether * the condition was true or not. * - * \param[OUT] X The address of the first MPI. This must be initialized. + * \param[out] X The address of the first MPI. This must be initialized. * It must have at least \p limbs limbs. - * \param[IN] A The address of the second MPI. This must be initialized. + * \param[in] A The address of the second MPI. This must be initialized. * \param limbs The number of limbs of \p A. * \param assign The condition deciding whether to perform the * assignment or not. Must be either 0 or 1: @@ -103,9 +103,9 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * - * \param[IN,OUT] X The address of the first MPI. + * \param[in,out] X The address of the first MPI. * This must be initialized. - * \param[IN,OUT] Y The address of the second MPI. + * \param[in,out] Y The address of the second MPI. * This must be initialized. * \param limbs The number of limbs of \p X and \p Y. * \param swap The condition deciding whether to perform diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index b2f333ee46..231bb72d38 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -37,9 +37,9 @@ * \brief Perform a safe conditional copy of MPI which doesn't reveal whether * the condition was true or not. * - * \param[OUT] X The address of the first MPI. This must be initialized. - * \param[IN] A The address of the second MPI. This must be initialized. - * \param[IN] N The address of the modulus related to \p X and \p A. + * \param[out] X The address of the first MPI. This must be initialized. + * \param[in] A The address of the second MPI. This must be initialized. + * \param[in] N The address of the modulus related to \p X and \p A. * \param assign The condition deciding whether to perform the * assignment or not. Must be either 0 or 1: * * \c 1: Perform the assignment `X = A`. @@ -61,9 +61,9 @@ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * - * \param[IN,OUT] X The address of the first MPI. This must be initialized. - * \param[IN,OUT] Y The address of the second MPI. This must be initialized. - * \param[IN] N The address of the modulus related to \p X and \p Y. + * \param[in,out] X The address of the first MPI. This must be initialized. + * \param[in,out] Y The address of the second MPI. This must be initialized. + * \param[in] N The address of the modulus related to \p X and \p Y. * \param swap The condition deciding whether to perform * the swap or not. Must be either 0 or 1: * * \c 1: Swap the values of \p X and \p Y. From f5ca726ce1a1b0f29982c3afce2ef97ae93a1686 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 30 Sep 2022 14:28:26 +0200 Subject: [PATCH 0461/1028] Rename variables to match bettr to its purpose The length in bytes is used with the 'len' prefix and the length in limbs is used with the 'limbs' prefix. Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 196 +++++++++++++-------------- 1 file changed, 98 insertions(+), 98 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 6dda5ef1e2..f90fee3110 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -770,44 +770,44 @@ void mpi_core_cond_assign( data_t * input_X, #define MAX_LEN 64 mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; - size_t len_X = CHARS_TO_LIMBS( input_X->len ); - size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); - size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); + size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); + size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( len_X <= MAX_LEN ); - TEST_ASSERT( len_Y <= MAX_LEN ); + TEST_ASSERT( limbs_X <= MAX_LEN ); + TEST_ASSERT( limbs_Y <= MAX_LEN ); - ASSERT_ALLOC( X, len_X_byte ); - ASSERT_ALLOC( Y, len_Y_byte ); + ASSERT_ALLOC( X, len_X ); + ASSERT_ALLOC( Y, len_Y ); - TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, input_X->x, input_X->len ) + TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs_X, input_X->x, input_X->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, input_Y->x, input_Y->len ) + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs_Y, input_Y->x, input_Y->len ) == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len_X_byte ); - TEST_CF_SECRET( Y, len_Y_byte ); + TEST_CF_SECRET( X, len_X ); + TEST_CF_SECRET( Y, len_Y ); - mbedtls_mpi_core_cond_assign( X, Y, len_Y, 0 ); + mbedtls_mpi_core_cond_assign( X, Y, limbs_Y, 0 ); - TEST_CF_PUBLIC( X, len_X_byte ); - TEST_CF_PUBLIC( Y, len_Y_byte ); + TEST_CF_PUBLIC( X, len_X ); + TEST_CF_PUBLIC( Y, len_Y ); - TEST_ASSERT( memcmp( X, Y, MIN( len_X_byte, len_Y_byte ) ) != 0 ); + TEST_ASSERT( memcmp( X, Y, MIN( len_X, len_Y ) ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len_X_byte ); - TEST_CF_SECRET( Y, len_Y_byte ); + TEST_CF_SECRET( X, len_X ); + TEST_CF_SECRET( Y, len_Y ); - mbedtls_mpi_core_cond_assign( X, Y, len_Y, 1 ); + mbedtls_mpi_core_cond_assign( X, Y, limbs_Y, 1 ); - TEST_CF_PUBLIC( X, len_X_byte ); - TEST_CF_PUBLIC( Y, len_Y_byte ); + TEST_CF_PUBLIC( X, len_X ); + TEST_CF_PUBLIC( Y, len_Y ); - ASSERT_COMPARE( X, len_Y_byte, Y, len_Y_byte ); + ASSERT_COMPARE( X, len_Y, Y, len_Y ); exit: mbedtls_free( X ); @@ -826,52 +826,52 @@ void mpi_core_cond_swap( data_t * input_X, mbedtls_mpi_uint *tmp_Y = NULL; mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; - size_t len_X = CHARS_TO_LIMBS( input_X->len ); - size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); - size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); + size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); + size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( len_X <= MAX_LEN ); - TEST_ASSERT( len_Y <= MAX_LEN ); + TEST_ASSERT( limbs_X <= MAX_LEN ); + TEST_ASSERT( limbs_Y <= MAX_LEN ); - ASSERT_ALLOC( tmp_X, len_X_byte ); - ASSERT_ALLOC( tmp_Y, len_Y_byte ); + ASSERT_ALLOC( tmp_X, len_X ); + ASSERT_ALLOC( tmp_Y, len_Y ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs_X, input_X->x, input_X->len ) == 0 ); - ASSERT_ALLOC( X, len_X_byte ); - memcpy( X, tmp_X, len_X_byte ); + ASSERT_ALLOC( X, len_X ); + memcpy( X, tmp_X, len_X ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs_Y, input_Y->x, input_Y->len ) == 0 ); - ASSERT_ALLOC( Y, len_Y_byte ); - memcpy( Y, tmp_Y, len_Y_byte ); + ASSERT_ALLOC( Y, len_Y ); + memcpy( Y, tmp_Y, len_Y ); /* condition is false */ - TEST_CF_SECRET( X, len_X_byte ); - TEST_CF_SECRET( Y, len_Y_byte ); + TEST_CF_SECRET( X, len_X ); + TEST_CF_SECRET( Y, len_Y ); - mbedtls_mpi_core_cond_swap( X, Y, len_X, 0 ); + mbedtls_mpi_core_cond_swap( X, Y, limbs_X, 0 ); - TEST_CF_PUBLIC( X, len_X_byte ); - TEST_CF_PUBLIC( Y, len_Y_byte ); + TEST_CF_PUBLIC( X, len_X ); + TEST_CF_PUBLIC( Y, len_Y ); - ASSERT_COMPARE( X, len_X_byte, tmp_X, len_X_byte ); - ASSERT_COMPARE( Y, len_Y_byte, tmp_Y, len_Y_byte ); + ASSERT_COMPARE( X, len_X, tmp_X, len_X ); + ASSERT_COMPARE( Y, len_Y, tmp_Y, len_Y ); /* condition is true */ - TEST_CF_SECRET( X, len_X_byte ); - TEST_CF_SECRET( Y, len_Y_byte ); + TEST_CF_SECRET( X, len_X ); + TEST_CF_SECRET( Y, len_Y ); - mbedtls_mpi_core_cond_swap( X, Y, len_X, 1 ); + mbedtls_mpi_core_cond_swap( X, Y, limbs_X, 1 ); - TEST_CF_PUBLIC( X, len_X_byte ); - TEST_CF_PUBLIC( Y, len_Y_byte ); + TEST_CF_PUBLIC( X, len_X ); + TEST_CF_PUBLIC( Y, len_Y ); - ASSERT_COMPARE( X, len_Y_byte, tmp_Y, len_Y_byte ); - ASSERT_COMPARE( Y, len_X_byte, tmp_X, len_X_byte ); + ASSERT_COMPARE( X, len_Y, tmp_Y, len_Y ); + ASSERT_COMPARE( Y, len_X, tmp_X, len_X ); exit: mbedtls_free( tmp_X ); @@ -892,54 +892,54 @@ void mpi_mod_raw_cond_assign( data_t * input_X, mbedtls_mpi_uint *Y = NULL; mbedtls_mpi_uint buff_m[MAX_LEN]; mbedtls_mpi_mod_modulus m; - size_t len_X = CHARS_TO_LIMBS( input_X->len ); - size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); - size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); + size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); + size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( len_X <= MAX_LEN ); - TEST_ASSERT( len_Y <= MAX_LEN ); + TEST_ASSERT( limbs_X <= MAX_LEN ); + TEST_ASSERT( limbs_Y <= MAX_LEN ); - ASSERT_ALLOC( X, len_X_byte ); - ASSERT_ALLOC( Y, len_Y_byte ); + ASSERT_ALLOC( X, len_X ); + ASSERT_ALLOC( Y, len_Y ); memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, len_Y, + &m, buff_m, limbs_Y, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, + TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs_X, input_X->x, input_X->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs_Y, input_Y->x, input_Y->len ) == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len_X_byte ); - TEST_CF_SECRET( Y, len_Y_byte ); + TEST_CF_SECRET( X, len_X ); + TEST_CF_SECRET( Y, len_Y ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len_X_byte ); - TEST_CF_PUBLIC( Y, len_Y_byte ); + TEST_CF_PUBLIC( X, len_X ); + TEST_CF_PUBLIC( Y, len_Y ); TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len_X_byte ); - TEST_CF_SECRET( Y, len_Y_byte ); + TEST_CF_SECRET( X, len_X ); + TEST_CF_SECRET( Y, len_Y ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len_X_byte ); - TEST_CF_PUBLIC( Y, len_Y_byte ); + TEST_CF_PUBLIC( X, len_X ); + TEST_CF_PUBLIC( Y, len_Y ); - ASSERT_COMPARE( X, len_Y_byte, Y, len_Y_byte ); + ASSERT_COMPARE( X, len_Y, Y, len_Y ); exit: mbedtls_free( X ); @@ -962,59 +962,59 @@ void mpi_mod_raw_cond_swap( data_t * input_X, mbedtls_mpi_uint *Y = NULL; mbedtls_mpi_uint buff_m[MAX_LEN]; mbedtls_mpi_mod_modulus m; - size_t len_X = CHARS_TO_LIMBS( input_X->len ); - size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); - size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); - size_t len_m_byte = len_X_byte; + size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); + size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); + size_t len_m = len_X; - TEST_ASSERT( len_X <= MAX_LEN ); - TEST_ASSERT( len_Y <= MAX_LEN ); + TEST_ASSERT( limbs_X <= MAX_LEN ); + TEST_ASSERT( limbs_Y <= MAX_LEN ); - ASSERT_ALLOC( tmp_X, len_X_byte ); - ASSERT_ALLOC( tmp_Y, len_Y_byte ); + ASSERT_ALLOC( tmp_X, len_X ); + ASSERT_ALLOC( tmp_Y, len_Y ); memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, len_X, + &m, buff_m, limbs_X, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, input_X->x, input_X->len ) + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs_X, input_X->x, input_X->len ) == 0 ); - ASSERT_ALLOC( X, len_X_byte ); - memcpy( X, tmp_X, len_X_byte ); + ASSERT_ALLOC( X, len_X ); + memcpy( X, tmp_X, len_X ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, input_Y->x, input_Y->len ) + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs_Y, input_Y->x, input_Y->len ) == 0 ); - ASSERT_ALLOC( Y, len_Y_byte ); - memcpy( Y, tmp_Y, len_Y_byte ); + ASSERT_ALLOC( Y, len_Y ); + memcpy( Y, tmp_Y, len_Y ); /* condition is false */ - TEST_CF_SECRET( X, len_X_byte ); - TEST_CF_SECRET( Y, len_Y_byte ); + TEST_CF_SECRET( X, len_X ); + TEST_CF_SECRET( Y, len_Y ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len_X_byte ); - TEST_CF_PUBLIC( Y, len_Y_byte ); + TEST_CF_PUBLIC( X, len_X ); + TEST_CF_PUBLIC( Y, len_Y ); - ASSERT_COMPARE( X, len_X_byte, tmp_X, len_X_byte ); - ASSERT_COMPARE( Y, len_Y_byte, tmp_Y, len_Y_byte ); + ASSERT_COMPARE( X, len_X, tmp_X, len_X ); + ASSERT_COMPARE( Y, len_Y, tmp_Y, len_Y ); /* condition is true */ - TEST_CF_SECRET( X, len_X_byte ); - TEST_CF_SECRET( Y, len_Y_byte ); + TEST_CF_SECRET( X, len_X ); + TEST_CF_SECRET( Y, len_Y ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len_X_byte ); - TEST_CF_PUBLIC( Y, len_Y_byte ); + TEST_CF_PUBLIC( X, len_X ); + TEST_CF_PUBLIC( Y, len_Y ); - ASSERT_COMPARE( X, len_m_byte, tmp_Y, len_Y_byte ); - ASSERT_COMPARE( Y, len_m_byte, tmp_X, len_X_byte ); + ASSERT_COMPARE( X, len_m, tmp_Y, len_Y ); + ASSERT_COMPARE( Y, len_m, tmp_X, len_X ); exit: mbedtls_free( tmp_X ); From ec5685f1ee4a284ceda566da101bf0d0e84b8486 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 30 Sep 2022 14:41:13 +0200 Subject: [PATCH 0462/1028] Use exact-size buffers for inputs and outputs to library functions in tests Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index f90fee3110..cf22e3736f 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -890,12 +890,13 @@ void mpi_mod_raw_cond_assign( data_t * input_X, #define MAX_LEN 64 mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; - mbedtls_mpi_uint buff_m[MAX_LEN]; + mbedtls_mpi_uint *buff_m = NULL; mbedtls_mpi_mod_modulus m; size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); + size_t len_m = len_Y; TEST_ASSERT( limbs_X <= MAX_LEN ); TEST_ASSERT( limbs_Y <= MAX_LEN ); @@ -903,7 +904,8 @@ void mpi_mod_raw_cond_assign( data_t * input_X, ASSERT_ALLOC( X, len_X ); ASSERT_ALLOC( Y, len_Y ); - memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); + ASSERT_ALLOC( buff_m, len_m ); + memset( buff_m, 0, len_m ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, limbs_Y, @@ -946,6 +948,7 @@ exit: mbedtls_free( Y ); mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_free( buff_m ); #undef MAX_LEN } @@ -960,7 +963,7 @@ void mpi_mod_raw_cond_swap( data_t * input_X, mbedtls_mpi_uint *tmp_Y = NULL; mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; - mbedtls_mpi_uint buff_m[MAX_LEN]; + mbedtls_mpi_uint *buff_m = NULL; mbedtls_mpi_mod_modulus m; size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); @@ -974,7 +977,8 @@ void mpi_mod_raw_cond_swap( data_t * input_X, ASSERT_ALLOC( tmp_X, len_X ); ASSERT_ALLOC( tmp_Y, len_Y ); - memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); + ASSERT_ALLOC( buff_m, len_m ); + memset( buff_m, 0, len_m ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, limbs_X, @@ -1023,6 +1027,7 @@ exit: mbedtls_free( Y ); mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_free( buff_m ); #undef MAX_LEN } From 97483b0fd424504d1b706279909acb0027e0cb30 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Sep 2022 20:38:42 +0200 Subject: [PATCH 0463/1028] Remove incorrect comment This comment (which used to be attached to the implementation, and should not have been moved to the header file) is incorrect: the library function mbedtls_mpi_read_string preserves leading zeros as desired, but does not create a zero-limb object for an empty string. Signed-off-by: Gilles Peskine --- tests/include/test/helpers.h | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/include/test/helpers.h b/tests/include/test/helpers.h index 93a3e11323..c0677a99d4 100644 --- a/tests/include/test/helpers.h +++ b/tests/include/test/helpers.h @@ -291,7 +291,6 @@ void mbedtls_test_err_add_check( int high, int low, * * \return \c 0 on success, an \c MBEDTLS_ERR_MPI_xxx error code otherwise. */ -/* Since the library has exactly the desired behavior, this is trivial. */ int mbedtls_test_read_mpi( mbedtls_mpi *X, const char *s ); #endif /* MBEDTLS_BIGNUM_C */ From bdc7b8bb6ac3afb96953dec92a01abc2706972e6 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Sep 2022 18:31:30 +0200 Subject: [PATCH 0464/1028] Allow test assertions on constant-flow scalar data When testing a function that is supposed to be constant-flow, we declare the inputs as constant-flow secrets with TEST_CF_SECRET. The result of such a function is itself a constant-flow secret, so it can't be tested with comparison operators. In TEST_EQUAL, TEST_LE_U and TEST_LE_S, declare the values to be compared as public. This way, test code doesn't need to explicitly declare results as public if they're only used by one of these macros. Signed-off-by: Gilles Peskine --- tests/src/helpers.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/src/helpers.c b/tests/src/helpers.c index 4f976a27b0..673a8412b9 100644 --- a/tests/src/helpers.c +++ b/tests/src/helpers.c @@ -15,6 +15,7 @@ * limitations under the License. */ +#include #include #include #include @@ -102,8 +103,12 @@ void mbedtls_test_info_reset( void ) int mbedtls_test_equal( const char *test, int line_no, const char* filename, unsigned long long value1, unsigned long long value2 ) { + TEST_CF_PUBLIC( &value1, sizeof( value1 ) ); + TEST_CF_PUBLIC( &value2, sizeof( value2 ) ); + if( value1 == value2 ) return( 1 ); + if( mbedtls_test_info.result == MBEDTLS_TEST_RESULT_FAILED ) { /* We've already recorded the test as having failed. Don't @@ -125,8 +130,12 @@ int mbedtls_test_equal( const char *test, int line_no, const char* filename, int mbedtls_test_le_u( const char *test, int line_no, const char* filename, unsigned long long value1, unsigned long long value2 ) { + TEST_CF_PUBLIC( &value1, sizeof( value1 ) ); + TEST_CF_PUBLIC( &value2, sizeof( value2 ) ); + if( value1 <= value2 ) return( 1 ); + if( mbedtls_test_info.result == MBEDTLS_TEST_RESULT_FAILED ) { /* We've already recorded the test as having failed. Don't @@ -148,8 +157,12 @@ int mbedtls_test_le_u( const char *test, int line_no, const char* filename, int mbedtls_test_le_s( const char *test, int line_no, const char* filename, long long value1, long long value2 ) { + TEST_CF_PUBLIC( &value1, sizeof( value1 ) ); + TEST_CF_PUBLIC( &value2, sizeof( value2 ) ); + if( value1 <= value2 ) return( 1 ); + if( mbedtls_test_info.result == MBEDTLS_TEST_RESULT_FAILED ) { /* We've already recorded the test as having failed. Don't From 571576fc5cb8de0fc1eb3ea9de3edca641585bc2 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Sep 2022 21:37:56 +0200 Subject: [PATCH 0465/1028] Move the definition of data_t to a header file This way it can be used in helper functions. Signed-off-by: Gilles Peskine --- tests/include/test/helpers.h | 7 +++++++ tests/suites/helpers.function | 7 ------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/include/test/helpers.h b/tests/include/test/helpers.h index c0677a99d4..823635c00e 100644 --- a/tests/include/test/helpers.h +++ b/tests/include/test/helpers.h @@ -59,6 +59,13 @@ #include "mbedtls/bignum.h" #endif +/** The type of test case arguments that contain binary data. */ +typedef struct data_tag +{ + uint8_t * x; + uint32_t len; +} data_t; + typedef enum { MBEDTLS_TEST_RESULT_SUCCESS = 0, diff --git a/tests/suites/helpers.function b/tests/suites/helpers.function index a620178f61..33cfc10624 100644 --- a/tests/suites/helpers.function +++ b/tests/suites/helpers.function @@ -52,13 +52,6 @@ typedef UINT32 uint32_t; #include #endif -/* Type for Hex parameters */ -typedef struct data_tag -{ - uint8_t * x; - uint32_t len; -} data_t; - /*----------------------------------------------------------------------------*/ /* Status and error constants */ From 3aae4e815ec1777ea220bccb6306f2d50b42787b Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Sep 2022 21:38:33 +0200 Subject: [PATCH 0466/1028] New function mbedtls_test_read_mpi_core Allocate and read an MPI from a binary test argument. Signed-off-by: Gilles Peskine --- tests/include/test/helpers.h | 22 ++++++++++++++++++++++ tests/src/helpers.c | 18 ++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/tests/include/test/helpers.h b/tests/include/test/helpers.h index 823635c00e..fe3b787fda 100644 --- a/tests/include/test/helpers.h +++ b/tests/include/test/helpers.h @@ -283,6 +283,28 @@ void mbedtls_test_err_add_check( int high, int low, #endif #if defined(MBEDTLS_BIGNUM_C) +/** Allocate and populate a core MPI from a test case argument. + * + * This function allocates exactly as many limbs as necessary to fit + * the length of the input. In other words, it preserves leading zeros. + * + * The limb array is allocated with mbedtls_calloc() and must later be + * freed with mbedtls_free(). + * + * \param[in,out] pX The address where a pointer to the allocated limb + * array will be stored. + * \c *pX must be null on entry. + * On exit, \c *pX is null on error or if the number + * of limbs is 0. + * \param[out] plimbs The address where the number of limbs will be stored. + * \param[in] input The test argument to read. + * It is interpreted as a big-endian integer in base 256. + * + * \return \c 0 on success, an \c MBEDTLS_ERR_MPI_xxx error code otherwise. + */ +int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, + const data_t *input ); + /** Read an MPI from a hexadecimal string. * * Like mbedtls_mpi_read_string(), but size the resulting bignum based diff --git a/tests/src/helpers.c b/tests/src/helpers.c index 673a8412b9..da2c047b4d 100644 --- a/tests/src/helpers.c +++ b/tests/src/helpers.c @@ -345,6 +345,24 @@ void mbedtls_test_err_add_check( int high, int low, #endif /* MBEDTLS_TEST_HOOKS */ #if defined(MBEDTLS_BIGNUM_C) +#include "bignum_core.h" + +int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, + const data_t *input ) +{ + /* Sanity check */ + if( *pX != NULL ) + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + + *plimbs = ( input->len + sizeof( **pX ) - 1 ) / sizeof( **pX ); + if( *plimbs == 0 ) + return( 0 ); + *pX = mbedtls_calloc( *plimbs, sizeof( **pX ) ); + if( *pX == NULL ) + return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); + return( mbedtls_mpi_core_read_be( *pX, *plimbs, input->x, input->len ) ); +} + int mbedtls_test_read_mpi( mbedtls_mpi *X, const char *s ) { /* mbedtls_mpi_read_string() currently retains leading zeros. From 5bbdfce44cdd5ffc14c21d23f9f4d452d937c247 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Sep 2022 21:39:25 +0200 Subject: [PATCH 0467/1028] Streamline mbedtls_mpi_core_lt_ct unit test Use mbedtls_test_read_mpi_core() to read the test data. Among other benefits, X and Y are now allocated to their exact size, so analyzers (Asan, Valgrind, Coverity, ...) have a chance of complaining if the tested function overflows the buffer. Remove TEST_CF_PUBLIC calls which are no longer necessary. Signed-off-by: Gilles Peskine --- tests/suites/test_suite_mpi.data | 32 +++++++++++------------ tests/suites/test_suite_mpi.function | 39 +++++++++++----------------- 2 files changed, 31 insertions(+), 40 deletions(-) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 85812f5080..be4c056d79 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -607,10 +607,10 @@ mbedtls_mpi_core_lt_ct: x=y (0 limbs) mpi_core_lt_ct:"":"":0 mbedtls_mpi_core_lt_ct: x>y (63 bit x, y first byte greater) -mpi_core_lt_ct:"7FFFFFFFFFFFFFFF":"FF":0 +mpi_core_lt_ct:"7FFFFFFFFFFFFFFF":"00000000000000FF":0 mbedtls_mpi_core_lt_ct: xy (64 bit x, y=x-1) mpi_core_lt_ct:"8000000000000000":"7FFFFFFFFFFFFFFF":0 @@ -619,28 +619,28 @@ mbedtls_mpi_core_lt_ct: xy (64 bit x, y=1) -mpi_core_lt_ct:"8000000000000000":"01":0 +mpi_core_lt_ct:"8000000000000000":"0000000000000001":0 mbedtls_mpi_core_lt_ct: xy (64 bit x, y=0) -mpi_core_lt_ct:"8000000000000000":"00":0 +mpi_core_lt_ct:"8000000000000000":"0000000000000000":0 mbedtls_mpi_core_lt_ct: xy (64 bit x, first bytes equal) -mpi_core_lt_ct:"FFFFFFFFFFFFFFFF":"FF":0 +mpi_core_lt_ct:"FFFFFFFFFFFFFFFF":"00000000000000FF":0 mbedtls_mpi_core_lt_ct: xy (31 bit x, y first byte greater) -mpi_core_lt_ct:"7FFFFFFF":"FF":0 +mpi_core_lt_ct:"7FFFFFFF":"000000FF":0 mbedtls_mpi_core_lt_ct: xy (32 bit x, y=x-1) mpi_core_lt_ct:"80000000":"7FFFFFFF":0 @@ -649,22 +649,22 @@ mbedtls_mpi_core_lt_ct: xy (32 bit x, y=1) -mpi_core_lt_ct:"80000000":"01":0 +mpi_core_lt_ct:"80000000":"00000001":0 mbedtls_mpi_core_lt_ct: xy (32 bit x, y=0) -mpi_core_lt_ct:"80000000":"00":0 +mpi_core_lt_ct:"80000000":"00000000":0 mbedtls_mpi_core_lt_ct: xy (32 bit x, first bytes equal) -mpi_core_lt_ct:"FFFFFFFF":"FF":0 +mpi_core_lt_ct:"FFFFFFFF":"000000FF":0 mbedtls_mpi_core_lt_ct: xlen > input_Y->len ? input_X->len : input_Y->len ); + mbedtls_mpi_uint *X = NULL; + size_t X_limbs; + mbedtls_mpi_uint *Y = NULL; + size_t Y_limbs; + int ret; - TEST_LE_U( len, MAX_LEN ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &X_limbs, input_X ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &Y, &Y_limbs, input_Y ) ); - TEST_ASSERT( mbedtls_mpi_core_read_be( X, len, input_X->x, input_X->len ) - == 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len, input_Y->x, input_Y->len ) - == 0 ); + /* We need two same-length limb arrays */ + TEST_EQUAL( X_limbs, Y_limbs ); - TEST_CF_SECRET( X, len * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len * sizeof( mbedtls_mpi_uint ) ); - - ret = mbedtls_mpi_core_lt_ct( X, Y, len ); - - TEST_CF_PUBLIC( X, len * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( &ret, sizeof( ret ) ); + TEST_CF_SECRET( X, X_limbs * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, X_limbs * sizeof( mbedtls_mpi_uint ) ); + ret = mbedtls_mpi_core_lt_ct( X, Y, X_limbs ); TEST_EQUAL( ret, exp_ret ); exit: - ; - - #undef MAX_LEN + mbedtls_free( X ); + mbedtls_free( Y ); } /* END_CASE */ From e290f2ea1495ecdd35638fa1ab47b733c67d0634 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Sun, 2 Oct 2022 20:58:39 +0200 Subject: [PATCH 0468/1028] all.sh: add testing of AEAD drivers with libtestdriver1 Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 28a20d2b77..8d7bd5bf4c 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1941,6 +1941,32 @@ component_test_psa_crypto_config_accel_cipher () { make test } +component_test_psa_crypto_config_accel_aead () { + msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated AEAD" + + # Disable ALG_STREAM_CIPHER and ALG_ECB_NO_PADDING to avoid having + # partial support for cipher operations in the driver test library. + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING + + loc_accel_list="ALG_GCM ALG_CCM ALG_CHACHA20_POLY1305 KEY_TYPE_AES KEY_TYPE_CHACHA20" + loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g' ) + make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS" + + scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS + scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG + + scripts/config.py unset MBEDTLS_MODE_GCM + scripts/config.py unset MBEDTLS_MODE_CCM + scripts/config.py unset MBEDTLS_MODE_CHACHAPOLY + + loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" + make CFLAGS="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" + + msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated AEAD" + make test +} + component_test_psa_crypto_config_no_driver() { # full plus MBEDTLS_PSA_CRYPTO_CONFIG msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG minus MBEDTLS_PSA_CRYPTO_DRIVERS" From bd99a0221b15839f83c6b55083315e4f98e9e851 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Sun, 2 Oct 2022 21:01:23 +0200 Subject: [PATCH 0469/1028] test_driver_aead.c: add support for LIBTESTDRIVER1 tests Signed-off-by: Przemek Stekiel --- tests/src/drivers/test_driver_aead.c | 102 +++++++++++++++++++++++---- 1 file changed, 90 insertions(+), 12 deletions(-) diff --git a/tests/src/drivers/test_driver_aead.c b/tests/src/drivers/test_driver_aead.c index b5619603fd..93a75f68a3 100644 --- a/tests/src/drivers/test_driver_aead.c +++ b/tests/src/drivers/test_driver_aead.c @@ -25,6 +25,10 @@ #include "test/drivers/aead.h" +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) +#include "libtestdriver1/library/psa_crypto_aead.h" +#endif + mbedtls_test_driver_aead_hooks_t mbedtls_test_driver_aead_hooks = MBEDTLS_TEST_DRIVER_AEAD_INIT; @@ -46,7 +50,18 @@ psa_status_t mbedtls_test_transparent_aead_encrypt( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_encrypt( + (const libtestdriver1_psa_key_attributes_t *)attributes, + key_buffer, key_buffer_size, + alg, + nonce, nonce_length, + additional_data, additional_data_length, + plaintext, plaintext_length, + ciphertext, ciphertext_size, ciphertext_length ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_encrypt( attributes, key_buffer, key_buffer_size, @@ -94,7 +109,18 @@ psa_status_t mbedtls_test_transparent_aead_decrypt( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_decrypt( + (const libtestdriver1_psa_key_attributes_t *)attributes, + key_buffer, key_buffer_size, + alg, + nonce, nonce_length, + additional_data, additional_data_length, + ciphertext, ciphertext_length, + plaintext, plaintext_size, plaintext_length ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_decrypt( attributes, key_buffer, key_buffer_size, @@ -139,7 +165,14 @@ psa_status_t mbedtls_test_transparent_aead_encrypt_setup( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_encrypt_setup( operation, + (const libtestdriver1_psa_key_attributes_t *)attributes, + key_buffer, + key_buffer_size, alg ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_encrypt_setup( operation, attributes, key_buffer, key_buffer_size, alg ); @@ -171,7 +204,13 @@ psa_status_t mbedtls_test_transparent_aead_decrypt_setup( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_decrypt_setup( operation, + (const libtestdriver1_psa_key_attributes_t *)attributes, + key_buffer, key_buffer_size, alg ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_decrypt_setup( operation, attributes, key_buffer, key_buffer_size, alg ); @@ -202,7 +241,11 @@ psa_status_t mbedtls_test_transparent_aead_set_nonce( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_set_nonce( operation, nonce, nonce_length ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_set_nonce( operation, nonce, nonce_length ); #else @@ -230,7 +273,12 @@ psa_status_t mbedtls_test_transparent_aead_set_lengths( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_set_lengths( operation, ad_length, + plaintext_length ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_set_lengths( operation, ad_length, plaintext_length ); @@ -259,7 +307,11 @@ psa_status_t mbedtls_test_transparent_aead_update_ad( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_update_ad( operation, input, input_length ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_update_ad( operation, input, input_length ); #else @@ -290,7 +342,13 @@ psa_status_t mbedtls_test_transparent_aead_update( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_update( operation, input, + input_length, output, + output_size, output_length ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_update( operation, input, input_length, output, output_size, output_length ); @@ -326,7 +384,13 @@ psa_status_t mbedtls_test_transparent_aead_finish( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_finish( operation, ciphertext, + ciphertext_size, ciphertext_length, + tag, tag_size, tag_length ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_finish( operation, ciphertext, ciphertext_size, ciphertext_length, tag, tag_size, @@ -364,9 +428,19 @@ psa_status_t mbedtls_test_transparent_aead_verify( else { uint8_t check_tag[PSA_AEAD_TAG_MAX_SIZE]; - size_t check_tag_length; + size_t check_tag_length = 0; -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_finish( operation, + plaintext, + plaintext_size, + plaintext_length, + check_tag, + sizeof( check_tag ), + &check_tag_length ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_finish( operation, plaintext, @@ -410,7 +484,11 @@ psa_status_t mbedtls_test_transparent_aead_abort( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_abort( operation ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_abort( operation ); #else From 460192ee19a9d83292c464cb754513aa8a3c64d0 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 3 Oct 2022 08:55:29 +0200 Subject: [PATCH 0470/1028] Fix and sync configuration file and configuration verifiation Signed-off-by: Przemek Stekiel --- include/mbedtls/check_config.h | 5 +++++ include/mbedtls/mbedtls_config.h | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 63c2f4f9a0..54bed2fe9e 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -962,6 +962,11 @@ #error "MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH defined, but not all prerequisites" #endif +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && \ + !( defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) || defined(MBEDTLS_CHACHAPOLY_C) || defined(MBEDTLS_NIST_KW_C) ) +#error "MBEDTLS_SSL_SESSION_TICKETS defined, but not all prerequisites" +#endif + #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) && !( defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) || defined(MBEDTLS_CHACHAPOLY_C) ) #error "MBEDTLS_SSL_CONTEXT_SERIALIZATION defined, but not all prerequisites" #endif diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 9e8ae37c7f..bde948d542 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1380,6 +1380,8 @@ * saved after the handshake to allow for more efficient serialization, so if * you don't need this feature you'll save RAM by disabling it. * + * Requires: MBEDTLS_GCM_C or MBEDTLS_CCM_C or MBEDTLS_CHACHAPOLY_C + * * Comment to disable the context serialization APIs. */ #define MBEDTLS_SSL_CONTEXT_SERIALIZATION @@ -1701,6 +1703,9 @@ * tickets, including authenticated encryption and key management. Example * callbacks are provided by MBEDTLS_SSL_TICKET_C. * + * Requires: MBEDTLS_GCM_C or MBEDTLS_CCM_C or MBEDTLS_CHACHAPOLY_C or + * MBEDTLS_NIST_KW_C + * * Comment this macro to disable support for SSL session tickets */ #define MBEDTLS_SSL_SESSION_TICKETS From 6a5cc74cc4dc424650368596bf9dc0614cdd73f3 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 3 Oct 2022 09:04:16 +0200 Subject: [PATCH 0471/1028] Fix typos and comments Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 60cd7b305e..7f83314a4a 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1287,7 +1287,7 @@ component_test_tls1_2_default_stream_cipher_only () { scripts/config.py unset MBEDTLS_SSL_ENCRYPT_THEN_MAC # Enable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) scripts/config.py set MBEDTLS_CIPHER_NULL_CIPHER - # Indirect dependencies + # Modules that depend on AEAD scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS @@ -1295,10 +1295,12 @@ component_test_tls1_2_default_stream_cipher_only () { msg "test: default with only stream cipher" make test + + # Not running ssl-opt.sh because most tests require a non-NULL ciphersuite. } component_test_tls1_2_default_stream_cipher_only_use_psa () { - msg "build: deafult with only stream cipher use psa" + msg "build: default with only stream cipher use psa" scripts/config.py set MBEDTLS_USE_PSA_CRYPTO # Disable AEAD (controlled by the presence of one of GCM_C, CCM_C, CHACHAPOLY_C) @@ -1311,14 +1313,16 @@ component_test_tls1_2_default_stream_cipher_only_use_psa () { scripts/config.py unset MBEDTLS_SSL_ENCRYPT_THEN_MAC # Enable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) scripts/config.py set MBEDTLS_CIPHER_NULL_CIPHER - # Indirect dependencies + # Modules that depend on AEAD scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS make - msg "test: deafult with only stream cipher use psa" + msg "test: default with only stream cipher use psa" make test + + # Not running ssl-opt.sh because most tests require a non-NULL ciphersuite. } component_test_tls1_2_default_cbc_legacy_cipher_only () { @@ -1334,7 +1338,7 @@ component_test_tls1_2_default_cbc_legacy_cipher_only () { scripts/config.py unset MBEDTLS_SSL_ENCRYPT_THEN_MAC # Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER - # Indirect dependencies + # Modules that depend on AEAD scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS @@ -1361,7 +1365,7 @@ component_test_tls1_2_deafult_cbc_legacy_cipher_only_use_psa () { scripts/config.py unset MBEDTLS_SSL_ENCRYPT_THEN_MAC # Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER - # Indirect dependencies + # Modules that depend on AEAD scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS @@ -1387,7 +1391,7 @@ component_test_tls1_2_default_cbc_legacy_cbc_etm_cipher_only () { scripts/config.py set MBEDTLS_SSL_ENCRYPT_THEN_MAC # Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER - # Indirect dependencies + # Modules that depend on AEAD scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS @@ -1414,7 +1418,7 @@ component_test_tls1_2_default_cbc_legacy_cbc_etm_cipher_only_use_psa () { scripts/config.py set MBEDTLS_SSL_ENCRYPT_THEN_MAC # Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_CIPHER)) scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER - # Indirect dependencies + # Modules that depend on AEAD scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS From 0957e7bfc5fe1a99c9d9e9a22e0e3f8b1a99b01b Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 3 Oct 2022 11:39:02 +0200 Subject: [PATCH 0472/1028] Rmove MBEDTLS_NIST_KW_C dependency from MBEDTLS_SSL_TICKET_C Signed-off-by: Przemek Stekiel --- include/mbedtls/check_config.h | 2 +- include/mbedtls/mbedtls_config.h | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 54bed2fe9e..1bbbb4046d 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -963,7 +963,7 @@ #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) && \ - !( defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) || defined(MBEDTLS_CHACHAPOLY_C) || defined(MBEDTLS_NIST_KW_C) ) + !( defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) || defined(MBEDTLS_CHACHAPOLY_C) ) #error "MBEDTLS_SSL_SESSION_TICKETS defined, but not all prerequisites" #endif diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index bde948d542..e45d395bcf 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1703,8 +1703,7 @@ * tickets, including authenticated encryption and key management. Example * callbacks are provided by MBEDTLS_SSL_TICKET_C. * - * Requires: MBEDTLS_GCM_C or MBEDTLS_CCM_C or MBEDTLS_CHACHAPOLY_C or - * MBEDTLS_NIST_KW_C + * Requires: MBEDTLS_GCM_C or MBEDTLS_CCM_C or MBEDTLS_CHACHAPOLY_C * * Comment this macro to disable support for SSL session tickets */ From 6546a6cc03235e51e02c9162fd4ffb52a884a9e8 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 30 Sep 2022 14:55:16 +0200 Subject: [PATCH 0473/1028] Rewrite tests for cond_assign/swap The cond_swap and cond_assign test functions now requires the same limb size for the MPI parameters. Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 195 ++++++++++++--------------- 1 file changed, 89 insertions(+), 106 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index cf22e3736f..a74136bccc 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -767,53 +767,49 @@ exit: void mpi_core_cond_assign( data_t * input_X, data_t * input_Y ) { - #define MAX_LEN 64 mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); - size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); + size_t limbs = limbs_X; + size_t len = limbs * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( limbs_X <= MAX_LEN ); - TEST_ASSERT( limbs_Y <= MAX_LEN ); + TEST_ASSERT( limbs_X == limbs_Y ); - ASSERT_ALLOC( X, len_X ); - ASSERT_ALLOC( Y, len_Y ); + ASSERT_ALLOC( X, len ); + ASSERT_ALLOC( Y, len ); - TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs_X, input_X->x, input_X->len ) + TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, input_X->x, input_X->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs_Y, input_Y->x, input_Y->len ) + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs, input_Y->x, input_Y->len ) == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len_X ); - TEST_CF_SECRET( Y, len_Y ); + TEST_CF_SECRET( X, len ); + TEST_CF_SECRET( Y, len ); - mbedtls_mpi_core_cond_assign( X, Y, limbs_Y, 0 ); + mbedtls_mpi_core_cond_assign( X, Y, limbs, 0 ); - TEST_CF_PUBLIC( X, len_X ); - TEST_CF_PUBLIC( Y, len_Y ); + TEST_CF_PUBLIC( X, len ); + TEST_CF_PUBLIC( Y, len ); - TEST_ASSERT( memcmp( X, Y, MIN( len_X, len_Y ) ) != 0 ); + TEST_ASSERT( memcmp( X, Y, len ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len_X ); - TEST_CF_SECRET( Y, len_Y ); + TEST_CF_SECRET( X, len ); + TEST_CF_SECRET( Y, len ); - mbedtls_mpi_core_cond_assign( X, Y, limbs_Y, 1 ); + mbedtls_mpi_core_cond_assign( X, Y, limbs, 1 ); - TEST_CF_PUBLIC( X, len_X ); - TEST_CF_PUBLIC( Y, len_Y ); + TEST_CF_PUBLIC( X, len ); + TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len_Y, Y, len_Y ); + ASSERT_COMPARE( X, len, Y, len ); exit: mbedtls_free( X ); mbedtls_free( Y ); - - #undef MAX_LEN } /* END_CASE */ @@ -821,65 +817,61 @@ exit: void mpi_core_cond_swap( data_t * input_X, data_t * input_Y ) { - #define MAX_LEN 64 mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); - size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); + size_t limbs = limbs_X; + size_t len = limbs * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( limbs_X <= MAX_LEN ); - TEST_ASSERT( limbs_Y <= MAX_LEN ); + TEST_ASSERT( limbs_X == limbs_Y ); - ASSERT_ALLOC( tmp_X, len_X ); - ASSERT_ALLOC( tmp_Y, len_Y ); + ASSERT_ALLOC( tmp_X, len ); + ASSERT_ALLOC( tmp_Y, len ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs_X, + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, input_X->x, input_X->len ) == 0 ); - ASSERT_ALLOC( X, len_X ); - memcpy( X, tmp_X, len_X ); + ASSERT_ALLOC( X, len ); + memcpy( X, tmp_X, len ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs_Y, + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) == 0 ); - ASSERT_ALLOC( Y, len_Y ); - memcpy( Y, tmp_Y, len_Y ); + ASSERT_ALLOC( Y, len ); + memcpy( Y, tmp_Y, len ); /* condition is false */ - TEST_CF_SECRET( X, len_X ); - TEST_CF_SECRET( Y, len_Y ); + TEST_CF_SECRET( X, len ); + TEST_CF_SECRET( Y, len ); - mbedtls_mpi_core_cond_swap( X, Y, limbs_X, 0 ); + mbedtls_mpi_core_cond_swap( X, Y, limbs, 0 ); - TEST_CF_PUBLIC( X, len_X ); - TEST_CF_PUBLIC( Y, len_Y ); + TEST_CF_PUBLIC( X, len ); + TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len_X, tmp_X, len_X ); - ASSERT_COMPARE( Y, len_Y, tmp_Y, len_Y ); + ASSERT_COMPARE( X, len, tmp_X, len ); + ASSERT_COMPARE( Y, len, tmp_Y, len ); /* condition is true */ - TEST_CF_SECRET( X, len_X ); - TEST_CF_SECRET( Y, len_Y ); + TEST_CF_SECRET( X, len ); + TEST_CF_SECRET( Y, len ); - mbedtls_mpi_core_cond_swap( X, Y, limbs_X, 1 ); + mbedtls_mpi_core_cond_swap( X, Y, limbs, 1 ); - TEST_CF_PUBLIC( X, len_X ); - TEST_CF_PUBLIC( Y, len_Y ); + TEST_CF_PUBLIC( X, len ); + TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len_Y, tmp_Y, len_Y ); - ASSERT_COMPARE( Y, len_X, tmp_X, len_X ); + ASSERT_COMPARE( X, len, tmp_Y, len ); + ASSERT_COMPARE( Y, len, tmp_X, len ); exit: mbedtls_free( tmp_X ); mbedtls_free( tmp_Y ); mbedtls_free( X ); mbedtls_free( Y ); - - #undef MAX_LEN } /* END_CASE */ @@ -894,54 +886,52 @@ void mpi_mod_raw_cond_assign( data_t * input_X, mbedtls_mpi_mod_modulus m; size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); - size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); - size_t len_m = len_Y; + size_t limbs = limbs_X; + size_t len = limbs * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( limbs_X <= MAX_LEN ); - TEST_ASSERT( limbs_Y <= MAX_LEN ); + TEST_ASSERT( limbs_X == limbs_Y ); - ASSERT_ALLOC( X, len_X ); - ASSERT_ALLOC( Y, len_Y ); + ASSERT_ALLOC( X, len ); + ASSERT_ALLOC( Y, len ); - ASSERT_ALLOC( buff_m, len_m ); - memset( buff_m, 0, len_m ); + ASSERT_ALLOC( buff_m, len ); + memset( buff_m, 0, len ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, limbs_Y, + &m, buff_m, limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs_X, + TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, input_X->x, input_X->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs_Y, + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs, input_Y->x, input_Y->len ) == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len_X ); - TEST_CF_SECRET( Y, len_Y ); + TEST_CF_SECRET( X, len ); + TEST_CF_SECRET( Y, len ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len_X ); - TEST_CF_PUBLIC( Y, len_Y ); + TEST_CF_PUBLIC( X, len ); + TEST_CF_PUBLIC( Y, len ); TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len_X ); - TEST_CF_SECRET( Y, len_Y ); + TEST_CF_SECRET( X, len ); + TEST_CF_SECRET( Y, len ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len_X ); - TEST_CF_PUBLIC( Y, len_Y ); + TEST_CF_PUBLIC( X, len ); + TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len_Y, Y, len_Y ); + ASSERT_COMPARE( X, len, Y, len ); exit: mbedtls_free( X ); @@ -949,8 +939,6 @@ exit: mbedtls_mpi_mod_modulus_free( &m ); mbedtls_free( buff_m ); - - #undef MAX_LEN } /* END_CASE */ @@ -958,7 +946,6 @@ exit: void mpi_mod_raw_cond_swap( data_t * input_X, data_t * input_Y ) { - #define MAX_LEN 64 mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; mbedtls_mpi_uint *X = NULL; @@ -967,58 +954,56 @@ void mpi_mod_raw_cond_swap( data_t * input_X, mbedtls_mpi_mod_modulus m; size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); - size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); - size_t len_m = len_X; + size_t limbs = limbs_X; + size_t len = limbs * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( limbs_X <= MAX_LEN ); - TEST_ASSERT( limbs_Y <= MAX_LEN ); + TEST_ASSERT( limbs_X == limbs_Y ); - ASSERT_ALLOC( tmp_X, len_X ); - ASSERT_ALLOC( tmp_Y, len_Y ); + ASSERT_ALLOC( tmp_X, len ); + ASSERT_ALLOC( tmp_Y, len ); - ASSERT_ALLOC( buff_m, len_m ); - memset( buff_m, 0, len_m ); + ASSERT_ALLOC( buff_m, len ); + memset( buff_m, 0, len ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, limbs_X, + &m, buff_m, limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs_X, input_X->x, input_X->len ) + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, input_X->x, input_X->len ) == 0 ); - ASSERT_ALLOC( X, len_X ); - memcpy( X, tmp_X, len_X ); + ASSERT_ALLOC( X, len ); + memcpy( X, tmp_X, len ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs_Y, input_Y->x, input_Y->len ) + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) == 0 ); - ASSERT_ALLOC( Y, len_Y ); - memcpy( Y, tmp_Y, len_Y ); + ASSERT_ALLOC( Y, len ); + memcpy( Y, tmp_Y, len ); /* condition is false */ - TEST_CF_SECRET( X, len_X ); - TEST_CF_SECRET( Y, len_Y ); + TEST_CF_SECRET( X, len ); + TEST_CF_SECRET( Y, len ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len_X ); - TEST_CF_PUBLIC( Y, len_Y ); + TEST_CF_PUBLIC( X, len ); + TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len_X, tmp_X, len_X ); - ASSERT_COMPARE( Y, len_Y, tmp_Y, len_Y ); + ASSERT_COMPARE( X, len, tmp_X, len ); + ASSERT_COMPARE( Y, len, tmp_Y, len ); /* condition is true */ - TEST_CF_SECRET( X, len_X ); - TEST_CF_SECRET( Y, len_Y ); + TEST_CF_SECRET( X, len ); + TEST_CF_SECRET( Y, len ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len_X ); - TEST_CF_PUBLIC( Y, len_Y ); + TEST_CF_PUBLIC( X, len ); + TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len_m, tmp_Y, len_Y ); - ASSERT_COMPARE( Y, len_m, tmp_X, len_X ); + ASSERT_COMPARE( X, len, tmp_Y, len ); + ASSERT_COMPARE( Y, len, tmp_X, len ); exit: mbedtls_free( tmp_X ); @@ -1028,8 +1013,6 @@ exit: mbedtls_mpi_mod_modulus_free( &m ); mbedtls_free( buff_m ); - - #undef MAX_LEN } /* END_CASE */ From 02e5d439dbe81a932aacfe2ed549954a6f04c00d Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 3 Oct 2022 16:45:11 +0200 Subject: [PATCH 0474/1028] Add more tests for cond_assign/swap functions Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.data | 59 ++++++++++++++++---- tests/suites/test_suite_mpi.function | 80 +++++++++++++++++++++------- 2 files changed, 110 insertions(+), 29 deletions(-) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 7868a24f8a..754652be69 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -681,23 +681,62 @@ mpi_core_lt_ct:"11FFFFFFFFFFFFFFFF":"FF1111111111111111":1 mbedtls_mpi_core_lt_ct: x>y (alternating limbs) mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 -mbedtls_mpi_core_cond_assign -mpi_core_cond_assign:"FFFFFFFF":"11111111" +mbedtls_mpi_core_cond_assign: 1 limb +mpi_core_cond_assign:"FFFFFFFF":"11111111":4:0 + +mbedtls_mpi_core_cond_assign: more limbs +mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16:0 + +mbedtls_mpi_core_cond_assign: copy 256 bytes of limbs +mpi_core_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"6E3173EEAC8D68A5AB53D259F32D9E9C298FD2C4FAD3BEE9151DC103EA2382F5480C7D11F451C060A1E3D887E05A620EF6395763CB7A40FC473DD0771456A018E18635EA971C36DCAD09D60E8BD0E2E0CCD1AECB8BE0ABA881DBE60163F6C45947EC0B05FDAAA3DF944627DD4FACBAD3FF2AB4B99D91E548C06A4AF320A9CA0D2FD0CB19B90B9D6A8BF59CB631DD925B6DEA621FE962099D3D0BED6B13C0C546DC6B563A7FC63B1B77D277897DD7B9DF28C4C9213A183B83D982964C6AD8192CE7354B11ED727EDEF85074C46E4E2E6C1728FB7980385CDB36512F927847C6A14A118624ABC12B09DBEE60D651B5431AAD982228C61655EABB80C263871AE1CF":256:0 + +mbedtls_mpi_core_cond_assign: copy half of the limbs +mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8:1 mbedtls_mpi_core_cond_swap: same value -mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF" +mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":4:0 -mbedtls_mpi_core_cond_swap: different value -mpi_core_cond_swap:"FFFFFFFF":"11111111" +mbedtls_mpi_core_cond_swap: 1 limb +mpi_core_cond_swap:"FFFFFFFF":"11111111":4:0 -mbedtls_mpi_mod_raw_cond_assign -mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111" +mbedtls_mpi_core_cond_swap: more limbs +mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16:0 + +mbedtls_mpi_core_cond_swap: copy 256 bytes of limbs +mpi_core_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"9FBBA284460D8EAB5E0D66B634BD18FBA58C0C25417DD637526A7622C6425B46E09AEFBB8C2340AC823DFE990A62C85DB23BCDBEA734134606CEEB4BCF7444569D5EC4E32341ED09D7A5D0BB8B11D7B726BAECCF37D4FC1BEBD892CADD7BE9E093343C1A68D7A188DFE145C1EDBD8048B24E20A076F981D75ABE44318ADC40ED316C444774B6A90D3EE49557315AA6FAB162A498C0B2E2C15BD94186A665E12DDC39211583FA5F21218A3B46999FEBA4DFF454FB6ED35B8F3AE5F8EA840838BD76006DA112F85EDAA2CC07518FFC9724D5695BAF74F16C8D1A3A06029D2F5C1023D9E8A84D1267BD9AF82D1F5F77092D34BE4E8C4D1EA8C58F90B094DCFD6920":256:0 + +mbedtls_mpi_core_cond_swap: copy half of the limbs +mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8:1 + +mbedtls_mpi_mod_raw_cond_assign: 1 limb +mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":4:0 + +mbedtls_mpi_mod_raw_cond_assign: more limbs +mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16:0 + +mbedtls_mpi_mod_raw_cond_assign: copy 256 bytes of limbs +mpi_mod_raw_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"38AAE958A11CCE9F4B4D0EDF64D31DF6FEA451D56B3BAB3DB796739B96C5C9C619DAE2AD5394D41FC3746A4F35BA186F02D908E900A2BA5AC95D494378A6A6FC619801DA3F3B4C5BAAA49B16DD3B2EF9AFB4B82449F90628E1438405D321ACA8476EA3E7124D46D5F25CD57143F2C6A022F7D6EBF7C726AEF56D97E3944EACD627A814D2F546F5A659DD316AE57584BC46F0D976D537E78AB09D2599BB0F073366C541CEF4B6D76FE72D000A01167FCE506B805B295C12BFCAA3B768D8E6AA50D939BDB519A94000B7B18B2D36AE888EDC33DC933E9612D112BB7A95D0748F175E69F00B9D8470C64E27B4FF39551B09FF046F864E9FC22A3E1F73570DF31214":256:0 + +mbedtls_mpi_mod_raw_cond_assign: copy half of the limbs +mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8:1 mbedtls_mpi_mod_raw_cond_swap: same value -mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF" +mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4:0 -mbedtls_mpi_mod_raw_cond_swap: different value -mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111" +mbedtls_mpi_mod_raw_cond_swap: same value +mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4:0 + +mbedtls_mpi_mod_raw_cond_swap: 1 limb +mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":4:0 + +mbedtls_mpi_mod_raw_cond_swap: more limbs +mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16:0 + +mbedtls_mpi_mod_raw_cond_swap: copy 256 bytes of limbs +mpi_mod_raw_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"A6154F6146E5AE06C705EF228DB022B4C0C908D9FF11E83CB0836A37DD11D72B5AE0D053B6D0B376B015E3B09DCC04644F12CBCBD0407300DEDA1D817E99A030BA128A57494F6C6BC650A840B70B3A1CDF8A75A387184C93DEF02DD538C60E8764AD2E4600952E09D24DC5524AB34070D25D204174D23B2BFDACBC67F8973C47FAF01CE9810130934AB6A94C5E6D223EDEAE904FD18368231AC3113C2CD73E879124CE21FC379C695C41D6861F5FB957570C3E6EF61F4FBA5D9945FB42931FC8E68370177DB313BEB7AF79B1F0F872368946FF35BD059E60677342EB3A0431714044AD508CD244B7CE200C5DC75B3BC7846A4CF0436C9288F2153124C9283171":256:0 + +mbedtls_mpi_mod_raw_cond_swap: copy half of the limbs +mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8:1 Base test mbedtls_mpi_lt_mpi_ct #1 mpi_lt_mpi_ct:1:"2B5":1:"2B5":0:0 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index a74136bccc..1e579e99e9 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -765,16 +765,20 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_assign( data_t * input_X, - data_t * input_Y ) + data_t * input_Y, + int input_len, + int is_fail ) { mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t limbs = limbs_X; + size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); TEST_ASSERT( limbs_X == limbs_Y ); + TEST_ASSERT( copy_limbs <= limbs ); ASSERT_ALLOC( X, len ); ASSERT_ALLOC( Y, len ); @@ -789,7 +793,7 @@ void mpi_core_cond_assign( data_t * input_X, TEST_CF_SECRET( X, len ); TEST_CF_SECRET( Y, len ); - mbedtls_mpi_core_cond_assign( X, Y, limbs, 0 ); + mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 0 ); TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); @@ -800,12 +804,15 @@ void mpi_core_cond_assign( data_t * input_X, TEST_CF_SECRET( X, len ); TEST_CF_SECRET( Y, len ); - mbedtls_mpi_core_cond_assign( X, Y, limbs, 1 ); + mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 1 ); TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len, Y, len ); + if( is_fail ) + TEST_ASSERT( memcmp( X, Y, len ) != 0 ); + else + ASSERT_COMPARE( X, len, Y, len ); exit: mbedtls_free( X ); @@ -815,7 +822,9 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_swap( data_t * input_X, - data_t * input_Y ) + data_t * input_Y, + int input_len, + int is_fail ) { mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; @@ -824,9 +833,11 @@ void mpi_core_cond_swap( data_t * input_X, size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t limbs = limbs_X; + size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); TEST_ASSERT( limbs_X == limbs_Y ); + TEST_ASSERT( copy_limbs <= limbs ); ASSERT_ALLOC( tmp_X, len ); ASSERT_ALLOC( tmp_Y, len ); @@ -847,7 +858,7 @@ void mpi_core_cond_swap( data_t * input_X, TEST_CF_SECRET( X, len ); TEST_CF_SECRET( Y, len ); - mbedtls_mpi_core_cond_swap( X, Y, limbs, 0 ); + mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 0 ); TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); @@ -859,13 +870,23 @@ void mpi_core_cond_swap( data_t * input_X, TEST_CF_SECRET( X, len ); TEST_CF_SECRET( Y, len ); - mbedtls_mpi_core_cond_swap( X, Y, limbs, 1 ); + mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 1 ); TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len, tmp_Y, len ); - ASSERT_COMPARE( Y, len, tmp_X, len ); + if( is_fail ) + { + TEST_ASSERT( memcmp( X, tmp_X, len ) != 0 ); + TEST_ASSERT( memcmp( X, tmp_Y, len ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_X, len ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_Y, len ) != 0 ); + } + else + { + ASSERT_COMPARE( X, len, tmp_Y, len ); + ASSERT_COMPARE( Y, len, tmp_X, len ); + } exit: mbedtls_free( tmp_X ); @@ -877,7 +898,9 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_assign( data_t * input_X, - data_t * input_Y ) + data_t * input_Y, + int input_len, + int is_fail ) { #define MAX_LEN 64 mbedtls_mpi_uint *X = NULL; @@ -887,9 +910,11 @@ void mpi_mod_raw_cond_assign( data_t * input_X, size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t limbs = limbs_X; + size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); TEST_ASSERT( limbs_X == limbs_Y ); + TEST_ASSERT( copy_limbs <= limbs ); ASSERT_ALLOC( X, len ); ASSERT_ALLOC( Y, len ); @@ -898,7 +923,7 @@ void mpi_mod_raw_cond_assign( data_t * input_X, memset( buff_m, 0, len ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, limbs, + &m, buff_m, copy_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); @@ -920,7 +945,7 @@ void mpi_mod_raw_cond_assign( data_t * input_X, TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); + TEST_ASSERT( memcmp( X, Y, len ) != 0 ); /* condition is true */ TEST_CF_SECRET( X, len ); @@ -931,7 +956,10 @@ void mpi_mod_raw_cond_assign( data_t * input_X, TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len, Y, len ); + if( is_fail ) + TEST_ASSERT( memcmp( X, Y, len ) != 0 ); + else + ASSERT_COMPARE( X, len, Y, len ); exit: mbedtls_free( X ); @@ -944,7 +972,9 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_swap( data_t * input_X, - data_t * input_Y ) + data_t * input_Y, + int input_len, + int is_fail ) { mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; @@ -955,18 +985,20 @@ void mpi_mod_raw_cond_swap( data_t * input_X, size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t limbs = limbs_X; + size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); TEST_ASSERT( limbs_X == limbs_Y ); + TEST_ASSERT( copy_limbs <= limbs ); ASSERT_ALLOC( tmp_X, len ); ASSERT_ALLOC( tmp_Y, len ); - ASSERT_ALLOC( buff_m, len ); - memset( buff_m, 0, len ); + ASSERT_ALLOC( buff_m, input_len ); + memset( buff_m, 0, input_len ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, limbs, + &m, buff_m, copy_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); @@ -1002,8 +1034,18 @@ void mpi_mod_raw_cond_swap( data_t * input_X, TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len, tmp_Y, len ); - ASSERT_COMPARE( Y, len, tmp_X, len ); + if( is_fail ) + { + TEST_ASSERT( memcmp( X, tmp_X, len ) != 0 ); + TEST_ASSERT( memcmp( X, tmp_Y, len ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_X, len ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_Y, len ) != 0 ); + } + else + { + ASSERT_COMPARE( X, len, tmp_Y, len ); + ASSERT_COMPARE( Y, len, tmp_X, len ); + } exit: mbedtls_free( tmp_X ); From dba2677597c5aa11f7b931b0f85186ebdb06c87d Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 3 Oct 2022 17:01:02 +0200 Subject: [PATCH 0475/1028] Update documentation Signed-off-by: Gabor Mezei --- library/bignum_core.h | 2 +- library/bignum_mod_raw.h | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 493ec12cdc..bd246d5e36 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -79,7 +79,7 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * the condition was true or not. * * \param[out] X The address of the first MPI. This must be initialized. - * It must have at least \p limbs limbs. + * Must have enough limbs to store the full value of \p A. * \param[in] A The address of the second MPI. This must be initialized. * \param limbs The number of limbs of \p A. * \param assign The condition deciding whether to perform the diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 231bb72d38..845ebaa5a7 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -37,7 +37,10 @@ * \brief Perform a safe conditional copy of MPI which doesn't reveal whether * the condition was true or not. * + * The size to copy is determined by \p N. + * * \param[out] X The address of the first MPI. This must be initialized. + * Must have enough limbs to store the full value of \p A. * \param[in] A The address of the second MPI. This must be initialized. * \param[in] N The address of the modulus related to \p X and \p A. * \param assign The condition deciding whether to perform the @@ -61,6 +64,8 @@ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * + * The size to swap is determined by \p N. + * * \param[in,out] X The address of the first MPI. This must be initialized. * \param[in,out] Y The address of the second MPI. This must be initialized. * \param[in] N The address of the modulus related to \p X and \p Y. From 8fcde5bb8ee4b08ddf3ebf346474568f3b952440 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 4 Oct 2022 13:53:33 +0200 Subject: [PATCH 0476/1028] Remove duplicate test case Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.data | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 754652be69..581f2f4d2a 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -723,9 +723,6 @@ mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDC mbedtls_mpi_mod_raw_cond_swap: same value mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4:0 -mbedtls_mpi_mod_raw_cond_swap: same value -mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4:0 - mbedtls_mpi_mod_raw_cond_swap: 1 limb mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":4:0 From 7f887bdc05765e357116f7f47cbbd9a4a1080333 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 27 Sep 2022 13:12:30 +0200 Subject: [PATCH 0477/1028] Move license out of Doxygen comment Signed-off-by: Gilles Peskine --- library/bignum_core.h | 3 +++ library/bignum_mod.h | 4 +++- library/bignum_mod_raw.h | 4 +++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 8e227f8d8e..dc802ab4ef 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -6,6 +6,9 @@ * modules should use the high-level modular bignum interface (bignum_mod.h) * or the legacy bignum interface (bignum.h). * + */ + +/* * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 9d28bc7e45..982a9ac5c9 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -1,6 +1,8 @@ /** * Modular bignum functions - * + */ + +/* * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 7b3a0c177b..aba5d0699d 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -5,7 +5,9 @@ * module (bignum_mod.c) and the ECP module (ecp.c, ecp_curves.c). All other * modules should use the high-level modular bignum interface (bignum_mod.h) * or the legacy bignum interface (bignum.h). - * + */ + +/* * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * From 7aab2fbe419ac06ad19185dd2caf3bf28f5c536e Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 27 Sep 2022 13:19:13 +0200 Subject: [PATCH 0478/1028] Add a short description of what each module does There was already a short introduction to _who_ should use each module, but not to _what_ each module does. Signed-off-by: Gilles Peskine --- library/bignum_core.h | 5 +++++ library/bignum_mod.h | 2 ++ library/bignum_mod_raw.h | 6 ++++++ 3 files changed, 13 insertions(+) diff --git a/library/bignum_core.h b/library/bignum_core.h index dc802ab4ef..d64111b18e 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -6,6 +6,11 @@ * modules should use the high-level modular bignum interface (bignum_mod.h) * or the legacy bignum interface (bignum.h). * + * This module is about processing non-negative integers with a fixed upper + * bound that's of the form 2^#biL-1. Many operations treat these numbers + * as the principal representation of a number modulo 2^#biL or a smaller + * bound. + * */ /* diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 982a9ac5c9..c25eb87423 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -1,5 +1,7 @@ /** * Modular bignum functions + * + * This module implements operations on integers modulo some fixed modulus. */ /* diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index aba5d0699d..aef8a04e26 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -5,6 +5,12 @@ * module (bignum_mod.c) and the ECP module (ecp.c, ecp_curves.c). All other * modules should use the high-level modular bignum interface (bignum_mod.h) * or the legacy bignum interface (bignum.h). + * + * This is a low-level interface to operations on integers modulo which + * has no protection against passing invalid arguments such as arrays of + * the wrong size. The functions in bignum_mod.h provide a higher-level + * interface that includes protections against accidental misuse, at the + * expense of code size and sometimes more cumbersome memory management. */ /* From 2926484de15cfa6f26ff5a3c55ead699f3fba123 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 27 Sep 2022 13:19:50 +0200 Subject: [PATCH 0479/1028] Describe generic conventions for the bignum core module This commit codifies some conventions that result from the original design goals and others that have emerged after starting the implementation. * Value ranges * Bignum parameter naming and ordering * Sizes * Aliasing and overlap * Error handling Signed-off-by: Gilles Peskine --- library/bignum_core.h | 51 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index d64111b18e..2274a8a904 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -11,6 +11,51 @@ * as the principal representation of a number modulo 2^#biL or a smaller * bound. * + * The functions in this module obey the following conventions unless + * explicitly indicated otherwise: + * + * - **Overflow**: some functions indicate overflow from the range + * [0, 2^#biL-1] by returning carry parameters, while others operate + * modulo and so cannot overflow. This should be clear from the function + * documentation. + * - **Bignum parameters**: Bignums are passed as pointers to an array of + * limbs. A limb has the type #mbedtls_mpi_uint. Unless otherwise specified: + * - Bignum parameters called \p A, \p B, ... are inputs, and are + * not modified by the function. + * - For operations modulo some number, the modulus is called \p N + * and is input-only. + * - Bignum parameters called \p X, \p Y are outputs or input-output. + * The initial content of output-only parameters is ignored. + * - Some functions use different names that reflect traditional + * naming of operands of certain operations (e.g. + * divisor/dividend/quotient/remainder). + * - \p T is a temporary storage area. The initial content of such + * parameter is ignored and the final content is unspecified. + * - **Bignum sizes**: bignum sizes are always expressed in limbs. + * Most functions work on bignums of a given size and take a single + * \p limbs parameter that applies to all parameters that are limb arrays. + * All bignum sizes must be at least 1 and must be significantly less than + * #SIZE_MAX. The behavior if a size is 0 is undefined. The behavior if the + * total size of all parameters overflows #SIZE_MAX is undefined. + * - **Parameter ordering**: for bignum parameters, outputs come before inputs. + * Temporaries come last. + * - **Aliasing**: in general, output bignums may be aliased to one or more + * inputs. As an exception, parameters that are documented as a modulus value + * may not be aliased to an output. Temporaries may not be aliased to + * any other parameter. + * - **Overlap**: apart from aliasing of limb array pointers (where two + * arguments are equal pointers), overlap is not supported and may result + * in undefined behavior. + * - **Error handling**: This is a low-level module. Functions generally do not + * try to protect against invalid arguments such as nonsensical sizes or + * null pointers. Note that some functions that operate on bignums of + * different sizes have constraints about their size, and violating those + * constraints may lead to buffer overflows. + * - **Modular representatives**: functions that operate modulo \p N expect + * all modular inputs to be in the range [0, \p N - 1] and guarantee outputs + * in the range [0, \p N - 1]. If an input is out of range, outputs are + * fully unspecified, though bignum values out of range should not cause + * buffer overflows (beware that this is not extensively tested). */ /* @@ -39,9 +84,9 @@ #include "mbedtls/bignum.h" #endif -#define ciL ( sizeof(mbedtls_mpi_uint) ) /* chars in limb */ -#define biL ( ciL << 3 ) /* bits in limb */ -#define biH ( ciL << 2 ) /* half limb size */ +#define ciL ( sizeof(mbedtls_mpi_uint) ) /** chars in limb */ +#define biL ( ciL << 3 ) /** bits in limb */ +#define biH ( ciL << 2 ) /** half limb size */ /* * Convert between bits/chars and number of limbs From 22514eb99bb517be79083b6d156bed19bc19f860 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Sep 2022 23:13:04 +0200 Subject: [PATCH 0480/1028] Fix typo in documentation Signed-off-by: Gilles Peskine --- tests/scripts/generate_bignum_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 7626ecd650..8a4d281c0c 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -31,7 +31,7 @@ following: function. - arguments(): a method to generate the list of arguments required for the test_function. - - generate_function_test(): a method to generate TestCases for the function. + - generate_function_tests(): a method to generate TestCases for the function. This should create instances of the class with required input data, and call `.create_test_case()` to yield the TestCase. From c217f4825179484e4c95072fcc715f092228c7c0 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Sep 2022 22:00:06 +0200 Subject: [PATCH 0481/1028] Replace the output file atomically When writing the new .data file, first write the new content, then replace the target. This way, there isn't a temporary state in which the file is partially written. This temporary state can be misleading if the build is interrupted. It's annoying if you're watching changes to the output and the changes appear as emptying the file following by the new version appearing. Now interrupted builds don't leave a file that appears to be up to date but isn't, and when watching the output, there's a single transition to the new version. Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/test_case.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/test_case.py b/scripts/mbedtls_dev/test_case.py index 6a46e4209b..d0afa592fd 100644 --- a/scripts/mbedtls_dev/test_case.py +++ b/scripts/mbedtls_dev/test_case.py @@ -92,9 +92,11 @@ def write_data_file(filename: str, """ if caller is None: caller = os.path.basename(sys.argv[0]) - with open(filename, 'w') as out: + tempfile = filename + '.new' + with open(tempfile, 'w') as out: out.write('# Automatically generated by {}. Do not edit!\n' .format(caller)) for tc in test_cases: tc.write(out) out.write('\n# End of automatically generated file.\n') + os.replace(tempfile, filename) From 01af3ddc82e101974dd1e8b9c45ac909d9032c34 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 4 Oct 2022 16:23:29 +0200 Subject: [PATCH 0482/1028] Fixed confusion between number size and limb size; define limb Signed-off-by: Gilles Peskine --- library/bignum_core.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 2274a8a904..c64ce4e866 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -7,15 +7,17 @@ * or the legacy bignum interface (bignum.h). * * This module is about processing non-negative integers with a fixed upper - * bound that's of the form 2^#biL-1. Many operations treat these numbers - * as the principal representation of a number modulo 2^#biL or a smaller - * bound. + * bound that's of the form 2^n-1 where n is a multiple of #biL. + * These can be thought of integers written in base 2^#biL with a fixed + * number of digits. Digits in this base are called *limbs*. + * Many operations treat these numbers as the principal representation of + * a number modulo 2^n or a smaller bound. * * The functions in this module obey the following conventions unless * explicitly indicated otherwise: * * - **Overflow**: some functions indicate overflow from the range - * [0, 2^#biL-1] by returning carry parameters, while others operate + * [0, 2^n-1] by returning carry parameters, while others operate * modulo and so cannot overflow. This should be clear from the function * documentation. * - **Bignum parameters**: Bignums are passed as pointers to an array of From e32cd44490b5e26321b1c13a89645207470b2fda Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 5 Oct 2022 09:46:35 +0200 Subject: [PATCH 0483/1028] Add changelog entry: tls 1.2 builds with single encryption type Signed-off-by: Przemek Stekiel --- ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt diff --git a/ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt b/ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt new file mode 100644 index 0000000000..d24f32c284 --- /dev/null +++ b/ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt @@ -0,0 +1,3 @@ +Bugfix + * Fix bugs to enable TLS 1.2 builds with + single encryption type + tests From 99a82dce74c8a22ef57cfaea69ab1bbcaf798bed Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 5 Oct 2022 11:20:56 +0200 Subject: [PATCH 0484/1028] Readability improvement Signed-off-by: Gilles Peskine --- tests/src/helpers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/src/helpers.c b/tests/src/helpers.c index da2c047b4d..557c13c336 100644 --- a/tests/src/helpers.c +++ b/tests/src/helpers.c @@ -354,7 +354,7 @@ int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, if( *pX != NULL ) return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - *plimbs = ( input->len + sizeof( **pX ) - 1 ) / sizeof( **pX ); + *plimbs = CHARS_TO_LIMBS( input->len ); if( *plimbs == 0 ) return( 0 ); *pX = mbedtls_calloc( *plimbs, sizeof( **pX ) ); From ed79483aca30bff301cb420dcf5828530eea6603 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 4 Oct 2022 18:12:06 +0100 Subject: [PATCH 0485/1028] Free structs in mbedtls_x509_get_name() on error mbedtls_x509_get_name() allocates a linked list of mbedtls_x509_name structs but does not free these when there is an error, leaving the caller to free them itself. Change this to cleanup these objects within the function in case of an error. Signed-off-by: David Horstmann --- library/x509.c | 46 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/library/x509.c b/library/x509.c index f1d988aa75..cdc87e53eb 100644 --- a/library/x509.c +++ b/library/x509.c @@ -468,6 +468,11 @@ static int x509_get_attr_type_value( unsigned char **p, * For the general case we still use a flat list, but we mark elements of the * same set so that they are "merged" together in the functions that consume * this list, eg mbedtls_x509_dn_gets(). + * + * On success, this function allocates a linked list starting at cur->next + * that must later be free'd by the caller using mbedtls_free(). In error + * cases, this function frees all allocated memory internally and the caller + * has no freeing responsibilities. */ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, mbedtls_x509_name *cur ) @@ -475,6 +480,8 @@ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t set_len; const unsigned char *end_set; + mbedtls_x509_name *head = cur; + mbedtls_x509_name *prev, *allocated; /* don't use recursion, we'd risk stack overflow if not optimized */ while( 1 ) @@ -484,14 +491,17 @@ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, */ if( ( ret = mbedtls_asn1_get_tag( p, end, &set_len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_NAME, ret ) ); + { + ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_NAME, ret ); + goto error; + } end_set = *p + set_len; while( 1 ) { if( ( ret = x509_get_attr_type_value( p, end_set, cur ) ) != 0 ) - return( ret ); + goto error; if( *p == end_set ) break; @@ -502,7 +512,10 @@ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, cur->next = mbedtls_calloc( 1, sizeof( mbedtls_x509_name ) ); if( cur->next == NULL ) - return( MBEDTLS_ERR_X509_ALLOC_FAILED ); + { + ret = MBEDTLS_ERR_X509_ALLOC_FAILED; + goto error; + } cur = cur->next; } @@ -516,10 +529,35 @@ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, cur->next = mbedtls_calloc( 1, sizeof( mbedtls_x509_name ) ); if( cur->next == NULL ) - return( MBEDTLS_ERR_X509_ALLOC_FAILED ); + { + ret = MBEDTLS_ERR_X509_ALLOC_FAILED; + goto error; + } cur = cur->next; } + +error: + prev = NULL; + + /* Skip the first element as we did not allocate it */ + allocated = head->next; + + /* Make sure we cannot be followed along this list */ + head->next = NULL; + + while( allocated != NULL ) + { + prev = allocated; + allocated = allocated->next; + + mbedtls_platform_zeroize( prev, sizeof( *prev ) ); + mbedtls_free( prev ); + } + + mbedtls_platform_zeroize( head, sizeof( *head ) ); + + return ret; } static int x509_parse_int( unsigned char **p, size_t n, int *res ) From ec7012dbc766611395c55b3f6760b6bca0180797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 5 Oct 2022 12:17:34 +0200 Subject: [PATCH 0486/1028] Fix I/O format of PSA EC J-PAKE for compliance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The format used by the mbedtls_ecjpake_xxx() APIs and that defined by the PSA Crypto PAKE extension are quite different; the former is tailored to the needs of TLS while the later is quite generic and plain. Previously we only addressed some part of this impedance mismatch: the different number of I/O rounds, but failed to address the part where the legacy API adds some extras (length bytes, ECParameters) that shouldn't be present in the PSA Crypto version. See comments in the code. Add some length testing as well; would have caught the issue. Signed-off-by: Manuel Pégourié-Gonnard --- include/psa/crypto_extra.h | 21 +++--- library/psa_crypto_pake.c | 81 ++++++++++++--------- tests/suites/test_suite_psa_crypto.data | 4 + tests/suites/test_suite_psa_crypto.function | 71 ++++++++++++++++++ 4 files changed, 134 insertions(+), 43 deletions(-) diff --git a/include/psa/crypto_extra.h b/include/psa/crypto_extra.h index 6c2e06e503..ef9d13886e 100644 --- a/include/psa/crypto_extra.h +++ b/include/psa/crypto_extra.h @@ -1765,9 +1765,9 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); primitive == PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, \ PSA_ECC_FAMILY_SECP_R1, 256) ? \ ( \ - output_step == PSA_PAKE_STEP_KEY_SHARE ? 69 : \ - output_step == PSA_PAKE_STEP_ZK_PUBLIC ? 66 : \ - 33 \ + output_step == PSA_PAKE_STEP_KEY_SHARE ? 65 : \ + output_step == PSA_PAKE_STEP_ZK_PUBLIC ? 65 : \ + 32 \ ) : \ 0 ) @@ -1795,9 +1795,9 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); primitive == PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, \ PSA_ECC_FAMILY_SECP_R1, 256) ? \ ( \ - input_step == PSA_PAKE_STEP_KEY_SHARE ? 69 : \ - input_step == PSA_PAKE_STEP_ZK_PUBLIC ? 66 : \ - 33 \ + input_step == PSA_PAKE_STEP_KEY_SHARE ? 65 : \ + input_step == PSA_PAKE_STEP_ZK_PUBLIC ? 65 : \ + 32 \ ) : \ 0 ) @@ -1808,7 +1808,7 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); * * See also #PSA_PAKE_OUTPUT_SIZE(\p alg, \p primitive, \p step). */ -#define PSA_PAKE_OUTPUT_MAX_SIZE 69 +#define PSA_PAKE_OUTPUT_MAX_SIZE 65 /** Input buffer size for psa_pake_input() for any of the supported PAKE * algorithm and primitive suites and input step. @@ -1817,7 +1817,7 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); * * See also #PSA_PAKE_INPUT_SIZE(\p alg, \p primitive, \p step). */ -#define PSA_PAKE_INPUT_MAX_SIZE 69 +#define PSA_PAKE_INPUT_MAX_SIZE 65 /** Returns a suitable initializer for a PAKE cipher suite object of type * psa_pake_cipher_suite_t. @@ -1906,7 +1906,10 @@ static inline void psa_pake_cs_set_hash( psa_pake_cipher_suite_t *cipher_suite, #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) #include -#define PSA_PAKE_BUFFER_SIZE ( ( 69 + 66 + 33 ) * 2 ) +/* Note: the format for mbedtls_ecjpake_read/write function has an extra + * length byte for each step, plus an extra 3 bytes for ECParameters in the + * server's 2nd round. */ +#define PSA_PAKE_BUFFER_SIZE ( ( 3 + 1 + 65 + 1 + 65 + 1 + 32 ) * 2 ) #endif struct psa_pake_operation_s diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 10d3e4a1b0..df091bc2ca 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -522,44 +522,29 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, } /* - * Steps sequences are stored as: - * struct { - * opaque point <1..2^8-1>; - * } ECPoint; + * mbedtls_ecjpake_write_round_xxx() outputs thing in the format + * defined by draft-cragie-tls-ecjpake-01 section 7. The summary is + * that the data for each step is prepended with a length byte, and + * then they're concatenated. Additionally, the server's second round + * output is prepended with a 3-bytes ECParameters structure. * - * Where byte 0 stores the ECPoint curve point length. - * - * The sequence length is equal to: - * - data length extracted from byte 0 - * - byte 0 size (1) + * In PSA, we output each step separately, and don't prepend the + * output with a length byte, even less a curve identifier, as that + * information is already available. */ if( operation->state == PSA_PAKE_OUTPUT_X2S && - operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE ) + operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE && + operation->role == PSA_PAKE_ROLE_SERVER ) { - if( operation->role == PSA_PAKE_ROLE_SERVER ) - /* - * The X2S KEY SHARE Server steps sequence is stored as: - * struct { - * ECPoint X; - * opaque r <1..2^8-1>; - * } ECSchnorrZKP; - * - * And MbedTLS uses a 3 bytes Ephemeral public key ECPoint, - * so byte 3 stores the r Schnorr signature length. - * - * The sequence length is equal to: - * - curve storage size (3) - * - data length extracted from byte 3 - * - byte 3 size (1) - */ - length = 3 + operation->buffer[3] + 1; - else - length = operation->buffer[0] + 1; + /* Skip ECParameters, with is 3 bytes (RFC 8422) */ + operation->buffer_offset += 3; } - else - length = operation->buffer[operation->buffer_offset] + 1; - if( length > operation->buffer_length ) + /* Read the length byte then move past it to the data */ + length = operation->buffer[operation->buffer_offset]; + operation->buffer_offset += 1; + + if( operation->buffer_offset + length > operation->buffer_length ) return( PSA_ERROR_DATA_CORRUPT ); if( output_size < length ) @@ -569,7 +554,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, } memcpy( output, - operation->buffer + operation->buffer_offset, + operation->buffer + operation->buffer_offset, length ); *output_length = length; @@ -709,7 +694,35 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, return( PSA_ERROR_BAD_STATE ); } - /* Copy input to local buffer */ + /* + * Copy input to local buffer and format it as the Mbed TLS API + * expects, i.e. as defined by draft-cragie-tls-ecjpake-01 section 7. + * The summary is that the data for each step is prepended with a + * length byte, and then they're concatenated. Additionally, the + * server's second round output is prepended with a 3-bytes + * ECParameters structure - which means we have to prepend that when + * we're a client. + */ + if( operation->state == PSA_PAKE_INPUT_X4S && + operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE && + operation->role == PSA_PAKE_ROLE_CLIENT ) + { + /* We only support secp256r1. */ + /* This is the ECParameters structure defined by RFC 8422. */ + unsigned char ecparameters[3] = { + 3, /* named_curve */ + 0, 23 /* secp256r1 */ + }; + memcpy( operation->buffer + operation->buffer_length, + ecparameters, sizeof( ecparameters ) ); + operation->buffer_length += sizeof( ecparameters ); + } + + /* Write the length byte */ + operation->buffer[operation->buffer_length] = input_length; + operation->buffer_length += 1; + + /* Finally copy the data */ memcpy( operation->buffer + operation->buffer_length, input, input_length ); operation->buffer_length += input_length; diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index f2478be5f5..91fced88b1 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -6594,3 +6594,7 @@ ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_E PSA PAKE: ecjpake inject input errors, second round server, client input first depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:4:"abcdef" + +PSA PAKE: ecjpake size macros +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256 +ecjpake_size_macros: diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index fa237d3667..1b144df35a 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -717,6 +717,15 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_KEY_SHARE) + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_ZK_PUBLIC) + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_ZK_PROOF)) * 2; + /* The output should be exactly this size according to the spec */ + const size_t expected_size_key_share = + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_KEY_SHARE); + /* The output should be exactly this size according to the spec */ + const size_t expected_size_zk_public = + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_ZK_PUBLIC); + /* The output can be smaller: the spec allows stripping leading zeroes */ + const size_t max_expected_size_zk_proof = + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_ZK_PROOF); size_t buffer0_off = 0; size_t buffer1_off = 0; size_t s_g1_len, s_g2_len, s_a_len; @@ -744,31 +753,37 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, buffer0 + buffer0_off, 512 - buffer0_off, &s_g1_len ) ); + TEST_EQUAL( s_g1_len, expected_size_key_share ); s_g1_off = buffer0_off; buffer0_off += s_g1_len; PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, buffer0 + buffer0_off, 512 - buffer0_off, &s_x1_pk_len ) ); + TEST_EQUAL( s_x1_pk_len, expected_size_zk_public ); s_x1_pk_off = buffer0_off; buffer0_off += s_x1_pk_len; PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, buffer0 + buffer0_off, 512 - buffer0_off, &s_x1_pr_len ) ); + TEST_LE_U( s_x1_pr_len, max_expected_size_zk_proof ); s_x1_pr_off = buffer0_off; buffer0_off += s_x1_pr_len; PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, buffer0 + buffer0_off, 512 - buffer0_off, &s_g2_len ) ); + TEST_EQUAL( s_g2_len, expected_size_key_share ); s_g2_off = buffer0_off; buffer0_off += s_g2_len; PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, buffer0 + buffer0_off, 512 - buffer0_off, &s_x2_pk_len ) ); + TEST_EQUAL( s_x2_pk_len, expected_size_zk_public ); s_x2_pk_off = buffer0_off; buffer0_off += s_x2_pk_len; PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, buffer0 + buffer0_off, 512 - buffer0_off, &s_x2_pr_len ) ); + TEST_LE_U( s_x2_pr_len, max_expected_size_zk_proof ); s_x2_pr_off = buffer0_off; buffer0_off += s_x2_pr_len; @@ -876,31 +891,37 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, buffer1 + buffer1_off, 512 - buffer1_off, &c_g1_len ) ); + TEST_EQUAL( c_g1_len, expected_size_key_share ); c_g1_off = buffer1_off; buffer1_off += c_g1_len; PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, buffer1 + buffer1_off, 512 - buffer1_off, &c_x1_pk_len ) ); + TEST_EQUAL( c_x1_pk_len, expected_size_zk_public ); c_x1_pk_off = buffer1_off; buffer1_off += c_x1_pk_len; PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, buffer1 + buffer1_off, 512 - buffer1_off, &c_x1_pr_len ) ); + TEST_LE_U( c_x1_pr_len, max_expected_size_zk_proof ); c_x1_pr_off = buffer1_off; buffer1_off += c_x1_pr_len; PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, buffer1 + buffer1_off, 512 - buffer1_off, &c_g2_len ) ); + TEST_EQUAL( c_g2_len, expected_size_key_share ); c_g2_off = buffer1_off; buffer1_off += c_g2_len; PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, buffer1 + buffer1_off, 512 - buffer1_off, &c_x2_pk_len ) ); + TEST_EQUAL( c_x2_pk_len, expected_size_zk_public ); c_x2_pk_off = buffer1_off; buffer1_off += c_x2_pk_len; PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, buffer1 + buffer1_off, 512 - buffer1_off, &c_x2_pr_len ) ); + TEST_LE_U( c_x2_pr_len, max_expected_size_zk_proof ); c_x2_pr_off = buffer1_off; buffer1_off += c_x2_pr_len; @@ -1082,16 +1103,19 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, buffer0 + buffer0_off, 512 - buffer0_off, &s_a_len ) ); + TEST_EQUAL( s_a_len, expected_size_key_share ); s_a_off = buffer0_off; buffer0_off += s_a_len; PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, buffer0 + buffer0_off, 512 - buffer0_off, &s_x2s_pk_len ) ); + TEST_EQUAL( s_x2s_pk_len, expected_size_zk_public ); s_x2s_pk_off = buffer0_off; buffer0_off += s_x2s_pk_len; PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, buffer0 + buffer0_off, 512 - buffer0_off, &s_x2s_pr_len ) ); + TEST_LE_U( s_x2s_pr_len, max_expected_size_zk_proof ); s_x2s_pr_off = buffer0_off; buffer0_off += s_x2s_pr_len; @@ -1153,16 +1177,19 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, buffer1 + buffer1_off, 512 - buffer1_off, &c_a_len ) ); + TEST_EQUAL( c_a_len, expected_size_key_share ); c_a_off = buffer1_off; buffer1_off += c_a_len; PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, buffer1 + buffer1_off, 512 - buffer1_off, &c_x2s_pk_len ) ); + TEST_EQUAL( c_x2s_pk_len, expected_size_zk_public ); c_x2s_pk_off = buffer1_off; buffer1_off += c_x2s_pk_len; PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, buffer1 + buffer1_off, 512 - buffer1_off, &c_x2s_pr_len ) ); + TEST_LE_U( c_x2s_pr_len, max_expected_size_zk_proof ); c_x2s_pr_off = buffer1_off; buffer1_off += c_x2s_pr_len; @@ -9008,3 +9035,47 @@ exit: PSA_DONE( ); } /* END_CASE */ + +/* BEGIN_CASE */ +void ecjpake_size_macros( ) +{ + const psa_algorithm_t alg = PSA_ALG_JPAKE; + const size_t bits = 256; + const psa_pake_primitive_t prim = PSA_PAKE_PRIMITIVE( + PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, bits ); + const psa_key_type_t key_type = PSA_KEY_TYPE_ECC_KEY_PAIR( + PSA_ECC_FAMILY_SECP_R1 ); + + // https://armmbed.github.io/mbed-crypto/1.1_PAKE_Extension.0-bet.0/html/pake.html#pake-step-types + /* The output for KEY_SHARE and ZK_PUBLIC is the same as a public key */ + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE( key_type, bits ) ); + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE( key_type, bits ) ); + /* The output for ZK_PROOF is the same bitsize as the curve */ + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_BITS_TO_BYTES( bits ) ); + + /* Input sizes are the same as output sizes */ + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE) ); + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC) ); + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF) ); + + /* These inequalities will always hold even when other PAKEs are added */ + TEST_LE_U( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_PAKE_OUTPUT_MAX_SIZE ); + TEST_LE_U( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_PAKE_OUTPUT_MAX_SIZE ); + TEST_LE_U( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_PAKE_OUTPUT_MAX_SIZE ); + TEST_LE_U( PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_PAKE_INPUT_MAX_SIZE ); + TEST_LE_U( PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_PAKE_INPUT_MAX_SIZE ); + TEST_LE_U( PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_PAKE_INPUT_MAX_SIZE ); +} +/* END_CASE */ From 79617d99aefff403e0e82c84cdd4ae1419d1d6c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 5 Oct 2022 12:55:50 +0200 Subject: [PATCH 0487/1028] Fix namespacing issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This macro is specific to the Mbed TLS implementation and not part of the public API, so it shouldn't used the PSA_ namespace. Signed-off-by: Manuel Pégourié-Gonnard --- include/psa/crypto_extra.h | 4 ++-- library/psa_crypto_pake.c | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/include/psa/crypto_extra.h b/include/psa/crypto_extra.h index ef9d13886e..4f65398e24 100644 --- a/include/psa/crypto_extra.h +++ b/include/psa/crypto_extra.h @@ -1909,7 +1909,7 @@ static inline void psa_pake_cs_set_hash( psa_pake_cipher_suite_t *cipher_suite, /* Note: the format for mbedtls_ecjpake_read/write function has an extra * length byte for each step, plus an extra 3 bytes for ECParameters in the * server's 2nd round. */ -#define PSA_PAKE_BUFFER_SIZE ( ( 3 + 1 + 65 + 1 + 65 + 1 + 32 ) * 2 ) +#define MBEDTLS_PSA_PAKE_BUFFER_SIZE ( ( 3 + 1 + 65 + 1 + 65 + 1 + 32 ) * 2 ) #endif struct psa_pake_operation_s @@ -1922,7 +1922,7 @@ struct psa_pake_operation_s unsigned int MBEDTLS_PRIVATE(output_step); mbedtls_svc_key_id_t MBEDTLS_PRIVATE(password); psa_pake_role_t MBEDTLS_PRIVATE(role); - uint8_t MBEDTLS_PRIVATE(buffer[PSA_PAKE_BUFFER_SIZE]); + uint8_t MBEDTLS_PRIVATE(buffer[MBEDTLS_PSA_PAKE_BUFFER_SIZE]); size_t MBEDTLS_PRIVATE(buffer_length); size_t MBEDTLS_PRIVATE(buffer_offset); #endif diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index df091bc2ca..a8b02e3961 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -230,7 +230,7 @@ psa_status_t psa_pake_setup( psa_pake_operation_t *operation, operation->input_step = PSA_PAKE_STEP_X1_X2; operation->output_step = PSA_PAKE_STEP_X1_X2; - mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); operation->buffer_length = 0; operation->buffer_offset = 0; @@ -491,7 +491,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, { ret = mbedtls_ecjpake_write_round_one( &operation->ctx.ecjpake, operation->buffer, - PSA_PAKE_BUFFER_SIZE, + MBEDTLS_PSA_PAKE_BUFFER_SIZE, &operation->buffer_length, mbedtls_psa_get_random, MBEDTLS_PSA_RANDOM_STATE ); @@ -508,7 +508,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, { ret = mbedtls_ecjpake_write_round_two( &operation->ctx.ecjpake, operation->buffer, - PSA_PAKE_BUFFER_SIZE, + MBEDTLS_PSA_PAKE_BUFFER_SIZE, &operation->buffer_length, mbedtls_psa_get_random, MBEDTLS_PSA_RANDOM_STATE ); @@ -566,7 +566,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, ( operation->state == PSA_PAKE_OUTPUT_X2S && operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF ) ) { - mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); operation->buffer_length = 0; operation->buffer_offset = 0; @@ -660,7 +660,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, operation->sequence = PSA_PAKE_X1_STEP_KEY_SHARE; } - buffer_remain = PSA_PAKE_BUFFER_SIZE - operation->buffer_length; + buffer_remain = MBEDTLS_PSA_PAKE_BUFFER_SIZE - operation->buffer_length; if( input_length == 0 || input_length > buffer_remain ) @@ -735,7 +735,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, operation->buffer, operation->buffer_length ); - mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); operation->buffer_length = 0; if( ret != 0 ) @@ -751,7 +751,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, operation->buffer, operation->buffer_length ); - mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); operation->buffer_length = 0; if( ret != 0 ) @@ -797,7 +797,7 @@ psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, { ret = mbedtls_ecjpake_write_shared_key( &operation->ctx.ecjpake, operation->buffer, - PSA_PAKE_BUFFER_SIZE, + MBEDTLS_PSA_PAKE_BUFFER_SIZE, &operation->buffer_length, mbedtls_psa_get_random, MBEDTLS_PSA_RANDOM_STATE ); @@ -812,7 +812,7 @@ psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, operation->buffer, operation->buffer_length ); - mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); psa_pake_abort( operation ); @@ -837,7 +837,7 @@ psa_status_t psa_pake_abort(psa_pake_operation_t * operation) operation->output_step = PSA_PAKE_STEP_INVALID; operation->password = MBEDTLS_SVC_KEY_ID_INIT; operation->role = PSA_PAKE_ROLE_NONE; - mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); operation->buffer_length = 0; operation->buffer_offset = 0; mbedtls_ecjpake_free( &operation->ctx.ecjpake ); From 05bb2c5d0e61b2804edfafc080e584c3be6ab5e4 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Wed, 5 Oct 2022 12:06:23 +0100 Subject: [PATCH 0488/1028] Add ChangeLog entry for memory leak fix Signed-off-by: David Horstmann --- ChangeLog.d/fix_x509_get_name_mem_leak.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ChangeLog.d/fix_x509_get_name_mem_leak.txt diff --git a/ChangeLog.d/fix_x509_get_name_mem_leak.txt b/ChangeLog.d/fix_x509_get_name_mem_leak.txt new file mode 100644 index 0000000000..358d1afa72 --- /dev/null +++ b/ChangeLog.d/fix_x509_get_name_mem_leak.txt @@ -0,0 +1,4 @@ +Bugfix + * Fix memory leak in ssl_parse_certificate_request() caused by + mbedtls_x509_get_name() not freeing allocated objects in case of error. + Change mbedtls_x509_get_name() to clean up allocated objects on error. From db73d3b149becb510f3515b7e7e6f1b8dc3111ee Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 4 Oct 2022 16:49:16 +0100 Subject: [PATCH 0489/1028] Add mbedtls_x509_get_name memory leak unit test Introduce a unit test to test mbedtls_x509_get_name() and add a testcase with a corrupt DER-encoded name that causes mbedtls_x509_get_name() to have to cleanup things it is allocated. If it fails to do this, a memory leak is detected under Asan builds. Signed-off-by: David Horstmann --- tests/suites/test_suite_x509parse.data | 6 ++++ tests/suites/test_suite_x509parse.function | 36 ++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index 6263fba2cd..1db09826e4 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -415,6 +415,12 @@ mbedtls_x509_dn_get_next:"C=NL, O=PolarSSL, CN=PolarSSL Server 1":0x03:"C":1:"C= X509 Get Next DN #4 Consecutive Multivalue RDNs mbedtls_x509_dn_get_next:"C=NL, O=PolarSSL, title=Example, CN=PolarSSL Server 1":0x05:"C title":2:"C=NL + O=PolarSSL, title=Example + CN=PolarSSL Server 1" +X509 Get Name Valid DN +mbedtls_x509_get_name:"310B3009060355040613024E4C3111300F060355040A0C08506F6C617253534C3119301706035504030C10506F6C617253534C2054657374204341":0 + +X509 Get Name Corrupted DN Mem Leak +mbedtls_x509_get_name:"310B3009060355040613024E4C3111300F060355040A0C08506F6C617253534C3019301706035504030C10506F6C617253534C2054657374204341":MBEDTLS_ERR_X509_INVALID_NAME + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG + X509 Time Expired #1 depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_HAVE_TIME_DATE:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA mbedtls_x509_time_is_past:"data_files/server1.crt":"valid_from":1 diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index 60e703a948..e8a2bb9713 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -818,6 +818,42 @@ exit: } /* END_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C */ +void mbedtls_x509_get_name( char * hex_name, int exp_ret ) +{ + unsigned char *name; + unsigned char *p; + size_t name_len; + mbedtls_x509_name head; + mbedtls_x509_name *allocated, *prev; + int res; + + name = mbedtls_test_unhexify_alloc( hex_name, &name_len ); + p = name; + + res = mbedtls_x509_get_name( &p, ( name + name_len ), &head ); + + if( res == 0 ) + { + allocated = head.next; + head.next = NULL; + prev = NULL; + + while( allocated != NULL ) + { + prev = allocated; + allocated = allocated->next; + + mbedtls_free( prev ); + } + } + + TEST_ASSERT( res == exp_ret ); + + mbedtls_free( name ); +} +/* END_CASE */ + /* BEGIN_CASE depends_on:MBEDTLS_X509_CREATE_C:MBEDTLS_X509_USE_C:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_X509_REMOVE_INFO */ void mbedtls_x509_dn_get_next( char * name_str, int next_merged, char * expected_oids, int exp_count, char * exp_dn_gets ) { From 0771d41584fc9c72514e798624473fe1ef6d3318 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 6 Oct 2022 09:30:34 +0200 Subject: [PATCH 0490/1028] Fix missing length check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There was a check against the remaining size of the buffer, which used to be correct, but was broken two commits ago when we started not just copying the input but also adding to it. Replace it with a check that the input length is not greater that what's expected for this step. This guarantees we won't overflow the internal buffer. While at it, add an explicit cast to uint8_t when writing the length to the buffer, so silence an MSVC warning. This cast is safe because we checked that the length is no larger than 65 or 32 (depending on the step), so in any case is fits in one byte. This was found because some lengths had not been adjusted in the test suite, and instead of failing cleanly, library code performed buffer overflows. I'll fix the tests in the next commit. Signed-off-by: Manuel Pégourié-Gonnard --- library/psa_crypto_pake.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index a8b02e3961..262d44d203 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -591,7 +591,6 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - size_t buffer_remain; if( operation->alg == PSA_ALG_NONE || operation->state == PSA_PAKE_STATE_INVALID ) @@ -623,6 +622,11 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, step != PSA_PAKE_STEP_ZK_PROOF ) return( PSA_ERROR_INVALID_ARGUMENT ); + const psa_pake_primitive_t prim = PSA_PAKE_PRIMITIVE( + PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256 ); + if( input_length > PSA_PAKE_INPUT_SIZE( PSA_ALG_JPAKE, prim, step ) ) + return( PSA_ERROR_INVALID_ARGUMENT ); + if( operation->state == PSA_PAKE_STATE_SETUP ) { status = psa_pake_ecjpake_setup( operation ); @@ -660,15 +664,6 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, operation->sequence = PSA_PAKE_X1_STEP_KEY_SHARE; } - buffer_remain = MBEDTLS_PSA_PAKE_BUFFER_SIZE - operation->buffer_length; - - if( input_length == 0 || - input_length > buffer_remain ) - { - psa_pake_abort( operation ); - return( PSA_ERROR_INSUFFICIENT_MEMORY ); - } - /* Check if step matches current sequence */ switch( operation->sequence ) { @@ -719,7 +714,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, } /* Write the length byte */ - operation->buffer[operation->buffer_length] = input_length; + operation->buffer[operation->buffer_length] = (uint8_t) input_length; operation->buffer_length += 1; /* Finally copy the data */ From b33f6e5ee24c50360ad7e9ea7d541daf4110b6a5 Mon Sep 17 00:00:00 2001 From: Jan Bruckner Date: Thu, 6 Oct 2022 11:23:49 +0200 Subject: [PATCH 0491/1028] Fix typo Signed-off-by: Jan Bruckner --- include/mbedtls/x509_crt.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/mbedtls/x509_crt.h b/include/mbedtls/x509_crt.h index add6b030ed..6c09b3a618 100644 --- a/include/mbedtls/x509_crt.h +++ b/include/mbedtls/x509_crt.h @@ -516,7 +516,7 @@ int mbedtls_x509_crt_parse_der_with_ext_cb( mbedtls_x509_crt *chain, * mbedtls_x509_crt_init(). * \param buf The address of the readable buffer holding the DER encoded * certificate to use. On success, this buffer must be - * retained and not be changed for the liftetime of the + * retained and not be changed for the lifetime of the * CRT chain \p chain, that is, until \p chain is destroyed * through a call to mbedtls_x509_crt_free(). * \param buflen The size in Bytes of \p buf. From 0763ccf04f9a433bb02a98c467046fd049611ccd Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 14:32:30 +0100 Subject: [PATCH 0492/1028] Refactor ARIA_SELF_TEST_IF_FAIL macro Change the ARIA_SELF_TEST_IF_FAIL macro to be more code-style friendly. Currently it expands to the body of an if statement, which causes problems for automatic brace-addition for if statements. Convert the macro to a function-like macro that takes the condition as an argument and expands to a full if statement inside a do {} while (0) idiom. Signed-off-by: David Horstmann --- library/aria.c | 49 ++++++++++++++++++++++++------------------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/library/aria.c b/library/aria.c index bc05c4a319..43ca762e11 100644 --- a/library/aria.c +++ b/library/aria.c @@ -895,15 +895,17 @@ static const uint8_t aria_test2_ctr_ct[3][48] = // CTR ciphertext }; #endif /* MBEDTLS_CIPHER_MODE_CFB */ -#define ARIA_SELF_TEST_IF_FAIL \ - { \ - if( verbose ) \ - mbedtls_printf( "failed\n" ); \ - goto exit; \ - } else { \ - if( verbose ) \ - mbedtls_printf( "passed\n" ); \ - } +#define ARIA_SELF_TEST_IF_FAIL( cond ) \ + do { \ + if( cond ) { \ + if( verbose ) \ + mbedtls_printf( "failed\n" ); \ + goto exit; \ + } else { \ + if( verbose ) \ + mbedtls_printf( "passed\n" ); \ + } \ + } while( 0 ) /* * Checkup routine @@ -937,16 +939,18 @@ int mbedtls_aria_self_test( int verbose ) mbedtls_printf( " ARIA-ECB-%d (enc): ", 128 + 64 * i ); mbedtls_aria_setkey_enc( &ctx, aria_test1_ecb_key, 128 + 64 * i ); mbedtls_aria_crypt_ecb( &ctx, aria_test1_ecb_pt, blk ); - if( memcmp( blk, aria_test1_ecb_ct[i], MBEDTLS_ARIA_BLOCKSIZE ) != 0 ) - ARIA_SELF_TEST_IF_FAIL; + ARIA_SELF_TEST_IF_FAIL( + memcmp( blk, aria_test1_ecb_ct[i], MBEDTLS_ARIA_BLOCKSIZE ) + != 0 ); /* test ECB decryption */ if( verbose ) mbedtls_printf( " ARIA-ECB-%d (dec): ", 128 + 64 * i ); mbedtls_aria_setkey_dec( &ctx, aria_test1_ecb_key, 128 + 64 * i ); mbedtls_aria_crypt_ecb( &ctx, aria_test1_ecb_ct[i], blk ); - if( memcmp( blk, aria_test1_ecb_pt, MBEDTLS_ARIA_BLOCKSIZE ) != 0 ) - ARIA_SELF_TEST_IF_FAIL; + ARIA_SELF_TEST_IF_FAIL( + memcmp( blk, aria_test1_ecb_pt, MBEDTLS_ARIA_BLOCKSIZE ) + != 0 ); } if( verbose ) mbedtls_printf( "\n" ); @@ -965,8 +969,8 @@ int mbedtls_aria_self_test( int verbose ) memset( buf, 0x55, sizeof( buf ) ); mbedtls_aria_crypt_cbc( &ctx, MBEDTLS_ARIA_ENCRYPT, 48, iv, aria_test2_pt, buf ); - if( memcmp( buf, aria_test2_cbc_ct[i], 48 ) != 0 ) - ARIA_SELF_TEST_IF_FAIL; + ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_cbc_ct[i], 48 ) + != 0 ); /* Test CBC decryption */ if( verbose ) @@ -976,8 +980,7 @@ int mbedtls_aria_self_test( int verbose ) memset( buf, 0xAA, sizeof( buf ) ); mbedtls_aria_crypt_cbc( &ctx, MBEDTLS_ARIA_DECRYPT, 48, iv, aria_test2_cbc_ct[i], buf ); - if( memcmp( buf, aria_test2_pt, 48 ) != 0 ) - ARIA_SELF_TEST_IF_FAIL; + ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_pt, 48 ) != 0 ); } if( verbose ) mbedtls_printf( "\n" ); @@ -996,8 +999,7 @@ int mbedtls_aria_self_test( int verbose ) j = 0; mbedtls_aria_crypt_cfb128( &ctx, MBEDTLS_ARIA_ENCRYPT, 48, &j, iv, aria_test2_pt, buf ); - if( memcmp( buf, aria_test2_cfb_ct[i], 48 ) != 0 ) - ARIA_SELF_TEST_IF_FAIL; + ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_cfb_ct[i], 48 ) != 0 ); /* Test CFB decryption */ if( verbose ) @@ -1008,8 +1010,7 @@ int mbedtls_aria_self_test( int verbose ) j = 0; mbedtls_aria_crypt_cfb128( &ctx, MBEDTLS_ARIA_DECRYPT, 48, &j, iv, aria_test2_cfb_ct[i], buf ); - if( memcmp( buf, aria_test2_pt, 48 ) != 0 ) - ARIA_SELF_TEST_IF_FAIL; + ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_pt, 48 ) != 0 ); } if( verbose ) mbedtls_printf( "\n" ); @@ -1027,8 +1028,7 @@ int mbedtls_aria_self_test( int verbose ) j = 0; mbedtls_aria_crypt_ctr( &ctx, 48, &j, iv, blk, aria_test2_pt, buf ); - if( memcmp( buf, aria_test2_ctr_ct[i], 48 ) != 0 ) - ARIA_SELF_TEST_IF_FAIL; + ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_ctr_ct[i], 48 ) != 0 ); /* Test CTR decryption */ if( verbose ) @@ -1039,8 +1039,7 @@ int mbedtls_aria_self_test( int verbose ) j = 0; mbedtls_aria_crypt_ctr( &ctx, 48, &j, iv, blk, aria_test2_ctr_ct[i], buf ); - if( memcmp( buf, aria_test2_pt, 48 ) != 0 ) - ARIA_SELF_TEST_IF_FAIL; + ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_pt, 48 ) != 0 ); } if( verbose ) mbedtls_printf( "\n" ); From ff1efc9a8472513511caab8fe676151a035f0431 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Sun, 2 Oct 2022 21:12:17 +0200 Subject: [PATCH 0493/1028] psa_aead_check_nonce_length: Fix unused variable warining Signed-off-by: Przemek Stekiel --- library/psa_crypto.c | 1 + 1 file changed, 1 insertion(+) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 4a0bd83316..e45b5d70af 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -3592,6 +3592,7 @@ static psa_status_t psa_aead_check_nonce_length( psa_algorithm_t alg, break; #endif /* PSA_WANT_ALG_CHACHA20_POLY1305 */ default: + (void) nonce_length; return( PSA_ERROR_NOT_SUPPORTED ); } From c1ceae48486d7cd7229fb43f76cc9dc3bd0b45f2 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 5 Oct 2022 08:18:55 +0200 Subject: [PATCH 0494/1028] crypto_config_test_driver_extension.h: add support for ChaCha20 - Poly1305 This is done to have LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 defined in libtestdriver1. Signed-off-by: Przemek Stekiel --- .../crypto_config_test_driver_extension.h | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/tests/include/test/drivers/crypto_config_test_driver_extension.h b/tests/include/test/drivers/crypto_config_test_driver_extension.h index 8052a85fbc..0bbca4aefe 100644 --- a/tests/include/test/drivers/crypto_config_test_driver_extension.h +++ b/tests/include/test/drivers/crypto_config_test_driver_extension.h @@ -142,6 +142,14 @@ #endif #endif +#if defined(PSA_WANT_ALG_CHACHA20_POLY1305) +#if defined(MBEDTLS_PSA_ACCEL_ALG_CHACHA20_POLY1305) +#undef MBEDTLS_PSA_ACCEL_ALG_CHACHA20_POLY1305 +#else +#define MBEDTLS_PSA_ACCEL_ALG_CHACHA20_POLY1305 1 +#endif +#endif + #if defined(PSA_WANT_KEY_TYPE_AES) #if defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_AES) #undef MBEDTLS_PSA_ACCEL_KEY_TYPE_AES @@ -182,9 +190,16 @@ #endif #endif +#if defined(PSA_WANT_KEY_TYPE_CHACHA20) +#if defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20) +#undef MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20 +#else +#define MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20 1 +#endif +#endif + #define MBEDTLS_PSA_ACCEL_ALG_CBC_MAC 1 #define MBEDTLS_PSA_ACCEL_ALG_CCM 1 -#define MBEDTLS_PSA_ACCEL_ALG_CHACHA20_POLY1305 1 #define MBEDTLS_PSA_ACCEL_ALG_CMAC 1 #define MBEDTLS_PSA_ACCEL_ALG_ECB_NO_PADDING 1 #define MBEDTLS_PSA_ACCEL_ALG_ECDH 1 @@ -217,7 +232,6 @@ #define MBEDTLS_PSA_ACCEL_KEY_TYPE_DERIVE 1 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_HMAC 1 -#define MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20 1 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_DES 1 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY 1 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_RAW_DATA 1 From 8a05a646f4bc0378f9e491205e5b9360e18517bd Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 6 Oct 2022 17:01:58 +0200 Subject: [PATCH 0495/1028] Remove psa_driver_get_tag_len() and use PSA_ALG_AEAD_GET_TAG_LENGTH macro instead Signed-off-by: Przemek Stekiel --- library/psa_crypto.c | 6 +----- library/psa_crypto_driver_wrappers.h | 4 ---- .../psa_crypto_driver_wrappers.c.jinja | 16 ---------------- 3 files changed, 1 insertion(+), 25 deletions(-) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index e45b5d70af..aef18ac418 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -3711,11 +3711,7 @@ exit: static psa_status_t psa_validate_tag_length( psa_aead_operation_t *operation, psa_algorithm_t alg ) { - uint8_t tag_len = 0; - if( psa_driver_get_tag_len( operation, &tag_len ) != PSA_SUCCESS ) - { - return( PSA_ERROR_INVALID_ARGUMENT ); - } + const uint8_t tag_len = PSA_ALG_AEAD_GET_TAG_LENGTH( alg ); switch( PSA_ALG_AEAD_WITH_SHORTENED_TAG( alg, 0 ) ) { diff --git a/library/psa_crypto_driver_wrappers.h b/library/psa_crypto_driver_wrappers.h index 12c649da37..ee23b6f3fe 100644 --- a/library/psa_crypto_driver_wrappers.h +++ b/library/psa_crypto_driver_wrappers.h @@ -226,10 +226,6 @@ psa_status_t psa_driver_wrapper_aead_decrypt( const uint8_t *ciphertext, size_t ciphertext_length, uint8_t *plaintext, size_t plaintext_size, size_t *plaintext_length ); -psa_status_t psa_driver_get_tag_len( - psa_aead_operation_t *operation, - uint8_t *tag_len ); - psa_status_t psa_driver_wrapper_aead_encrypt_setup( psa_aead_operation_t *operation, const psa_key_attributes_t *attributes, diff --git a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja index a5ae6a29e4..8ef2e6d874 100644 --- a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja +++ b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja @@ -1616,22 +1616,6 @@ psa_status_t psa_driver_wrapper_aead_decrypt( } } -psa_status_t psa_driver_get_tag_len( psa_aead_operation_t *operation, - uint8_t *tag_len ) -{ - if( operation == NULL || tag_len == NULL ) - return( PSA_ERROR_INVALID_ARGUMENT ); - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - *tag_len = operation->ctx.transparent_test_driver_ctx.tag_length; - return ( PSA_SUCCESS ); -#endif -#endif - *tag_len = operation->ctx.mbedtls_ctx.tag_length; - return ( PSA_SUCCESS ); -} - psa_status_t psa_driver_wrapper_aead_encrypt_setup( psa_aead_operation_t *operation, const psa_key_attributes_t *attributes, From 3b2276a43922f600ac6a1bb80a25aca9548044ba Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 14:49:08 +0100 Subject: [PATCH 0496/1028] Refactor macro-spanning ifs in ssl_tls.c Signed-off-by: David Horstmann --- library/ssl_tls.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index f0615ea7d1..075a65b647 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1211,9 +1211,11 @@ int mbedtls_ssl_session_reset_int( mbedtls_ssl_context *ssl, int partial ) #endif #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) && defined(MBEDTLS_SSL_SRV_C) + int free_cli_id = 1; #if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) - if( partial == 0 ) + free_cli_id = ( partial == 0 ); #endif + if( free_cli_id ) { mbedtls_free( ssl->cli_id ); ssl->cli_id = NULL; @@ -7601,11 +7603,16 @@ static int ssl_tls12_populate_transform( mbedtls_ssl_transform *transform, * sequence number). */ transform->ivlen = 12; + + int is_chachapoly = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( key_type == PSA_KEY_TYPE_CHACHA20 ) + is_chachapoly = ( key_type == PSA_KEY_TYPE_CHACHA20 ); #else - if( mbedtls_cipher_info_get_mode( cipher_info ) == MBEDTLS_MODE_CHACHAPOLY ) + is_chachapoly = ( mbedtls_cipher_info_get_mode( cipher_info ) + == MBEDTLS_MODE_CHACHAPOLY ); #endif /* MBEDTLS_USE_PSA_CRYPTO */ + + if( is_chachapoly ) transform->fixed_ivlen = 12; else transform->fixed_ivlen = 4; From b21bbef06187b521df31151c1795716684400cef Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 17:49:31 +0100 Subject: [PATCH 0497/1028] Refactor macro-spanning if in ssl_tls12_client.c Signed-off-by: David Horstmann --- library/ssl_tls12_client.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index d1ec55cfcb..ba39d89813 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -2471,9 +2471,11 @@ start_processing: if( ret != 0 ) { + int send_alert_msg = 1; #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ret != MBEDTLS_ERR_ECP_IN_PROGRESS ) + send_alert_msg = ( ret != MBEDTLS_ERR_ECP_IN_PROGRESS ); #endif + if( send_alert_msg ) mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, From 8897c070756e66b9b01441ea282470ae4f958714 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 12 Aug 2022 13:56:53 +0800 Subject: [PATCH 0498/1028] Add server only guards for psk callback Signed-off-by: Jerry Yu --- include/mbedtls/ssl.h | 4 ++++ library/ssl_tls.c | 3 +++ tests/suites/test_suite_ssl.function | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index eda6bc2f21..5a02182c0e 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1390,10 +1390,12 @@ struct mbedtls_ssl_config #endif #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_SRV_C) /** Callback to retrieve PSK key from identity */ int (*MBEDTLS_PRIVATE(f_psk))(void *, mbedtls_ssl_context *, const unsigned char *, size_t); void *MBEDTLS_PRIVATE(p_psk); /*!< context for PSK callback */ #endif +#endif #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) && defined(MBEDTLS_SSL_SRV_C) /** Callback to create & write a cookie for ClientHello verification */ @@ -3415,6 +3417,7 @@ int mbedtls_ssl_set_hs_psk_opaque( mbedtls_ssl_context *ssl, mbedtls_svc_key_id_t psk ); #endif /* MBEDTLS_USE_PSA_CRYPTO */ +#if defined(MBEDTLS_SSL_SRV_C) /** * \brief Set the PSK callback (server-side only). * @@ -3457,6 +3460,7 @@ void mbedtls_ssl_conf_psk_cb( mbedtls_ssl_config *conf, int (*f_psk)(void *, mbedtls_ssl_context *, const unsigned char *, size_t), void *p_psk ); +#endif /* MBEDTLS_SSL_SRV_C */ #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_SSL_SRV_C) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index f0615ea7d1..616df07de8 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1795,6 +1795,7 @@ int mbedtls_ssl_set_hs_psk_opaque( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_USE_PSA_CRYPTO */ +#if defined(MBEDTLS_SSL_SRV_C) void mbedtls_ssl_conf_psk_cb( mbedtls_ssl_config *conf, int (*f_psk)(void *, mbedtls_ssl_context *, const unsigned char *, size_t), @@ -1803,6 +1804,8 @@ void mbedtls_ssl_conf_psk_cb( mbedtls_ssl_config *conf, conf->f_psk = f_psk; conf->p_psk = p_psk; } +#endif /* MBEDTLS_SSL_SRV_C */ + #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ #if defined(MBEDTLS_USE_PSA_CRYPTO) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index f24d1a4933..7b5743ece6 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -2184,8 +2184,9 @@ void perform_handshake( handshake_test_options *options ) options->psk_str->len, (const unsigned char *) psk_identity, strlen( psk_identity ) ) == 0 ); - +#if defined(MBEDTLS_SSL_SRV_C) mbedtls_ssl_conf_psk_cb( &server.conf, psk_dummy_callback, NULL ); +#endif } #endif #if defined(MBEDTLS_SSL_RENEGOTIATION) From 0c6105bc9ed69a02706abd28b9ec92eec4796e4b Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 12 Aug 2022 17:26:40 +0800 Subject: [PATCH 0499/1028] empty pre_shared_key functions To easy review Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 365 ++++--------------------------------- 1 file changed, 39 insertions(+), 326 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 40e3cfd70d..645479b830 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -665,56 +665,6 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, return ( 0 ); } -/* Check if we have any PSK to offer, returns 0 if a PSK is available. */ -MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_get_psk_to_offer( - const mbedtls_ssl_context *ssl, - int *psk_type, - const unsigned char **psk, size_t *psk_len, - const unsigned char **psk_identity, size_t *psk_identity_len ) -{ - *psk = NULL; - *psk_len = 0; - *psk_identity = NULL; - *psk_identity_len = 0; - *psk_type = MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL; - -#if defined(MBEDTLS_SSL_SESSION_TICKETS) - /* Check if a ticket has been configured. */ - if( ssl->session_negotiate != NULL && - ssl->session_negotiate->ticket != NULL ) - { -#if defined(MBEDTLS_HAVE_TIME) - mbedtls_time_t now = mbedtls_time( NULL ); - if( ssl->session_negotiate->ticket_received <= now && - (uint64_t)( now - ssl->session_negotiate->ticket_received ) - <= ssl->session_negotiate->ticket_lifetime ) - { - *psk_type = MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION; - *psk = ssl->session_negotiate->resumption_key; - *psk_len = ssl->session_negotiate->resumption_key_len; - *psk_identity = ssl->session_negotiate->ticket; - *psk_identity_len = ssl->session_negotiate->ticket_len; - return( 0 ); - } -#endif /* MBEDTLS_HAVE_TIME */ - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket expired" ) ); - } -#endif - - /* Check if an external PSK has been configured. */ - if( ssl->conf->psk != NULL ) - { - *psk = ssl->conf->psk; - *psk_len = ssl->conf->psk_len; - *psk_identity = ssl->conf->psk_identity; - *psk_identity_len = ssl->conf->psk_identity_len; - return( 0 ); - } - - return( MBEDTLS_ERR_ERROR_GENERIC_ERROR ); -} - /* * mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext() structure: * @@ -743,204 +693,53 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( unsigned char *buf, unsigned char *end, size_t *out_len, size_t *binders_len ) { - unsigned char *p = buf; - const unsigned char *psk; - size_t psk_len; - const unsigned char *psk_identity; - size_t psk_identity_len; - int psk_type; - const mbedtls_ssl_ciphersuite_t *ciphersuite_info = NULL; - const int *ciphersuites; - psa_algorithm_t psa_hash_alg; - int hash_len = 0; - size_t identities_len, l_binders_len; - uint32_t obfuscated_ticket_age = 0; - - *out_len = 0; - *binders_len = 0; - - /* Check if we have any PSKs to offer. If so, return the first. - * - * NOTE: Ultimately, we want to be able to offer multiple PSKs, - * in which case we want to iterate over them here. - * - * As it stands, however, we only ever offer one, chosen - * by the following heuristic: - * - If a ticket has been configured, offer the corresponding PSK. - * - If no ticket has been configured by an external PSK has been - * configured, offer that. - * - Otherwise, skip the PSK extension. - */ - if( ssl_tls13_get_psk_to_offer( ssl, &psk_type, &psk, &psk_len, - &psk_identity, &psk_identity_len ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "skip pre_shared_key extensions" ) ); - return( 0 ); - } - - if( psk_type == MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL ) - { - /* - * Ciphersuite list - */ - ciphersuites = ssl->conf->ciphersuite_list; - for( int i = 0; ciphersuites[i] != 0; i++ ) - { - ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( - ciphersuites[i] ); - - if( mbedtls_ssl_validate_ciphersuite( - ssl, ciphersuite_info, - MBEDTLS_SSL_VERSION_TLS1_3, - MBEDTLS_SSL_VERSION_TLS1_3 ) != 0 ) - continue; - - /* In this implementation we only add one pre-shared-key - * extension. - */ - ssl->session_negotiate->ciphersuite = ciphersuites[i]; - break; - } - } - else -#if defined(MBEDTLS_SSL_SESSION_TICKETS) - if( psk_type == MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION ) - { -#if defined(MBEDTLS_HAVE_TIME) - mbedtls_time_t now = mbedtls_time( NULL ); - - obfuscated_ticket_age = - ( (uint32_t)( now - ssl->session_negotiate->ticket_received ) * 1000 ) - + ssl->session_negotiate->ticket_age_add; -#endif - } - else -#endif /* MBEDTLS_SSL_SESSION_TICKETS */ - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "write_identities_of_pre_shared_key_ext: " - "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - } - - - ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( - ssl->session_negotiate->ciphersuite ); - /* No suitable ciphersuite for the PSK */ - if( ciphersuite_info == NULL ) - return( 0 ); - - psa_hash_alg = mbedtls_psa_translate_md( ciphersuite_info->mac ); - hash_len = PSA_HASH_LENGTH( psa_hash_alg ); - if( hash_len == -1 ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - - /* Check if we have space to write the extension, binder included. - * - extension_type (2 bytes) - * - extension_data_len (2 bytes) - * - identities_len (2 bytes) - * - identity_len (2 bytes) - * - identity (psk_identity_len bytes) - * - obfuscated_ticket_age (4 bytes) - * - binders_len (2 bytes) - * - binder_len (1 byte) - * - binder (hash_len bytes) - */ - - identities_len = 6 + psk_identity_len; - l_binders_len = 1 + hash_len; - - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "client hello, adding pre_shared_key extension, " - "omitting PSK binder list" ) ); - - /* Extension header */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 8 ); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_PRE_SHARED_KEY, p, 0 ); - MBEDTLS_PUT_UINT16_BE( 2 + identities_len + 2 + l_binders_len , p, 2 ); - - MBEDTLS_PUT_UINT16_BE( identities_len, p, 4 ); - MBEDTLS_PUT_UINT16_BE( psk_identity_len, p, 6 ); - p += 8; - MBEDTLS_SSL_CHK_BUF_PTR( p, end, psk_identity_len ); - memcpy( p, psk_identity, psk_identity_len ); - p += psk_identity_len; - - /* add obfuscated ticket age */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 ); - MBEDTLS_PUT_UINT32_BE( obfuscated_ticket_age, p, 0 ); - p += 4; - - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 + l_binders_len ); - *out_len = ( p - buf ) + l_binders_len + 2; - *binders_len = l_binders_len + 2; - - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PRE_SHARED_KEY; - + ((void) ssl); + ((void) buf); + ((void) end); + ((void) out_len); + ((void) binders_len); return( 0 ); } int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( - mbedtls_ssl_context *ssl, - unsigned char *buf, unsigned char *end ) + mbedtls_ssl_context *ssl, unsigned char *buf, unsigned char *end ) { - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - unsigned char *p = buf; - const unsigned char *psk_identity; - size_t psk_identity_len; - const mbedtls_ssl_ciphersuite_t *ciphersuite_info = NULL; - psa_algorithm_t psa_hash_alg; - int hash_len = 0; - const unsigned char *psk = NULL; - size_t psk_len = 0; - int psk_type; - unsigned char transcript[MBEDTLS_MD_MAX_SIZE]; - size_t transcript_len; - - if( ssl_tls13_get_psk_to_offer( ssl, &psk_type, &psk, &psk_len, - &psk_identity, &psk_identity_len ) != 0 ) - { - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - } - - ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( - ssl->session_negotiate->ciphersuite ); - if( ciphersuite_info == NULL ) - return( 0 ); - - psa_hash_alg = mbedtls_psa_translate_md( ciphersuite_info->mac ); - hash_len = PSA_HASH_LENGTH( psa_hash_alg ); - if( ( hash_len == -1 ) || ( ( end - buf ) != 3 + hash_len ) ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding PSK binder list" ) ); - - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 3 + hash_len ); - /* 2 bytes length field for array of psk binders */ - MBEDTLS_PUT_UINT16_BE( hash_len + 1, p, 0 ); - p += 2; - - /* 1 bytes length field for next psk binder */ - *p++ = MBEDTLS_BYTE_0( hash_len ); - - /* Get current state of handshake transcript. */ - ret = mbedtls_ssl_get_handshake_transcript( ssl, ciphersuite_info->mac, - transcript, sizeof( transcript ), - &transcript_len ); - if( ret != 0 ) - return( ret ); - - ret = mbedtls_ssl_tls13_create_psk_binder( ssl, - mbedtls_psa_translate_md( ciphersuite_info->mac ), - psk, psk_len, psk_type, - transcript, p ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_create_psk_binder", ret ); - return( ret ); - } + ((void) ssl); + ((void) buf); + ((void) end); return( 0 ); } + +/* + * struct { + * opaque identity<1..2^16-1>; + * uint32 obfuscated_ticket_age; + * } PskIdentity; + * + * opaque PskBinderEntry<32..255>; + * + * struct { + * + * select (Handshake.msg_type) { + * ... + * case server_hello: uint16 selected_identity; + * }; + * + * } PreSharedKeyExtension; + * + */ +MBEDTLS_CHECK_RETURN_CRITICAL +static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end ) +{ + ((void) ssl); + ((void) buf); + ((void) end); + return( 0 ); +} + #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, @@ -1299,92 +1098,6 @@ static int ssl_tls13_check_server_hello_session_id_echo( mbedtls_ssl_context *ss return( 0 ); } -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) -/* - * struct { - * opaque identity<1..2^16-1>; - * uint32 obfuscated_ticket_age; - * } PskIdentity; - * - * opaque PskBinderEntry<32..255>; - * - * struct { - * - * select (Handshake.msg_type) { - * ... - * case server_hello: uint16 selected_identity; - * }; - * - * } PreSharedKeyExtension; - * - */ - -MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) -{ - int ret = 0; - size_t selected_identity; - - int psk_type; - const unsigned char *psk; - size_t psk_len; - const unsigned char *psk_identity; - size_t psk_identity_len; - - /* Check which PSK we've offered. - * - * NOTE: Ultimately, we want to offer multiple PSKs, and in this - * case, we need to iterate over them here. - */ - if( ssl_tls13_get_psk_to_offer( ssl, &psk_type, &psk, &psk_len, - &psk_identity, &psk_identity_len ) != 0 ) - { - /* If we haven't offered a PSK, the server must not send - * a PSK identity extension. */ - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - } - - MBEDTLS_SSL_CHK_BUF_PTR( buf, end, 2 ); - selected_identity = MBEDTLS_GET_UINT16_BE( buf, 0 ); - - /* We have offered only one PSK, so the only valid choice - * for the server is PSK index 0. - * - * This will change once we support multiple PSKs. */ - if( selected_identity > 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Server's chosen PSK identity out of range" ) ); - - if( ( ret = mbedtls_ssl_send_alert_message( ssl, - MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ) ) != 0 ) - { - return( ret ); - } - - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); - } - - /* Set the chosen PSK - * - * TODO: We don't have to do this in case we offered 0-RTT and the - * server accepted it, because in this case we've already - * set the handshake PSK. */ - ret = mbedtls_ssl_set_hs_psk( ssl, psk, psk_len ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_set_hs_psk", ret ); - return( ret ); - } - - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PRE_SHARED_KEY; - return( 0 ); -} - -#endif - /* Parse ServerHello message and configure context * * struct { From f7c125917c56026bc80c9ae87d22ba63c08d65c5 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 28 Sep 2022 22:09:38 +0800 Subject: [PATCH 0500/1028] Add identites writer Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 219 ++++++++++++++++++++++++++++++++++++- 1 file changed, 214 insertions(+), 5 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 645479b830..547651d971 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -665,6 +665,74 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, return ( 0 ); } +static psa_algorithm_t ssl_tls13_ciphersuite_to_alg( mbedtls_ssl_context *ssl, + int ciphersuite ) +{ + const mbedtls_ssl_ciphersuite_t *ciphersuite_info = NULL; + ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( ciphersuite ); + + if( mbedtls_ssl_validate_ciphersuite( + ssl, ciphersuite_info, + MBEDTLS_SSL_VERSION_TLS1_3, + MBEDTLS_SSL_VERSION_TLS1_3 ) == 0 ) + { + return( mbedtls_psa_translate_md( ciphersuite_info->mac ) ); + } + return( PSA_ALG_NONE ); +} + +static int ssl_tls13_has_configured_psk( mbedtls_ssl_context *ssl ) +{ + return( ssl->conf->psk != NULL && + ssl->conf->psk_len != 0 && + ssl->conf->psk_identity != NULL && + ssl->conf->psk_identity_len != 0 ); +} + +static int ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl ) +{ + +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + mbedtls_ssl_session *session = ssl->session_negotiate; + return( session != NULL && + session->ticket != NULL && + ssl_tls13_ciphersuite_to_alg( ssl, + ssl->session_negotiate->ciphersuite ) != PSA_ALG_NONE ); +#else + ((void) ssl); + return( 0 ); +#endif +} + +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + +MBEDTLS_CHECK_RETURN_CRITICAL +static int ssl_tls13_session_tickets_get_identity( + mbedtls_ssl_context *ssl, psa_algorithm_t *psa_alg, + const unsigned char **identity, size_t *identity_len ) +{ + mbedtls_ssl_session *session = ssl->session_negotiate; + *psa_alg = ssl_tls13_ciphersuite_to_alg( ssl, session->ciphersuite ); + *identity = session->ticket; + *identity_len = session->ticket_len; + return( 0 ); +} + +#endif /* MBEDTLS_SSL_SESSION_TICKETS */ + +MBEDTLS_CHECK_RETURN_CRITICAL +static int ssl_tls13_psk_get_identity( mbedtls_ssl_context *ssl, + psa_algorithm_t *psa_alg, + const unsigned char **identity, + size_t *identity_len ) +{ + + *psa_alg = PSA_ALG_SHA_256; + *identity = ssl->conf->psk_identity; + *identity_len = ssl->conf->psk_identity_len; + return( 0 ); +} + /* * mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext() structure: * @@ -688,16 +756,157 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, * } PreSharedKeyExtension; * */ +MBEDTLS_CHECK_RETURN_CRITICAL +static int ssl_tls13_write_identity( mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + int psk_type, + size_t *out_len, + size_t *binder_len ) +{ + unsigned char *p = buf; + psa_algorithm_t psa_alg; + const unsigned char *identity; + size_t identity_len; + uint32_t obfuscated_ticket_age = 0; + int hash_len; + + *out_len = 0; + *binder_len = 0; + + switch( psk_type ) + { +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + case MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION: + if( ssl_tls13_session_tickets_get_identity( + ssl, &psa_alg, &identity, &identity_len ) == 0 ) + { +#if defined(MBEDTLS_HAVE_TIME) + mbedtls_time_t now = mbedtls_time( NULL ); + mbedtls_ssl_session *session = ssl->session_negotiate; + obfuscated_ticket_age = + (uint32_t)( now - session->ticket_received ); + obfuscated_ticket_age *= 1000; + obfuscated_ticket_age += session->ticket_age_add ; +#endif /* MBEDTLS_HAVE_TIME */ + } + else + { + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + } + break; +#endif /* MBEDTLS_SSL_SESSION_TICKETS */ + case MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL: + if( ssl_tls13_psk_get_identity( + ssl, &psa_alg, &identity, &identity_len ) != 0 ) + { + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + } + break; + default: + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + } + + hash_len = PSA_HASH_LENGTH( psa_alg ); + if( hash_len == -1 ) + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + + /* + * - identity_len (2 bytes) + * - identity (psk_identity_len bytes) + * - obfuscated_ticket_age (4 bytes) + */ + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 6 + identity_len ); + + MBEDTLS_PUT_UINT16_BE( identity_len, p, 0 ); + memcpy( p + 2, identity, identity_len ); + MBEDTLS_PUT_UINT32_BE( obfuscated_ticket_age, p, 2 + identity_len ); + + MBEDTLS_SSL_DEBUG_BUF( 4, "write identity", p, 6 + identity_len ); + + *out_len = 6 + identity_len; + *binder_len = 1 + hash_len; + + return( 0 ); +} + int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( mbedtls_ssl_context *ssl, unsigned char *buf, unsigned char *end, size_t *out_len, size_t *binders_len ) { - ((void) ssl); - ((void) buf); - ((void) end); - ((void) out_len); - ((void) binders_len); + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + unsigned char *p = buf; + size_t l_binders_len = 0; + + *out_len = 0; + *binders_len = 0; + + /* Check if we have any PSKs to offer. If no, skip pre_shared_key */ + if( !ssl_tls13_has_configured_psk( ssl ) && + !ssl_tls13_has_configured_ticket( ssl ) ) + { + MBEDTLS_SSL_DEBUG_MSG( 3, ( "skip pre_shared_key extensions" ) ); + return( 0 ); + } + + MBEDTLS_SSL_DEBUG_MSG( 4, ( "Pre-configured PSK number = %d", + ssl_tls13_has_configured_psk( ssl ) + + ssl_tls13_has_configured_ticket( ssl ) ) ); + /* Check if we have space to write the extension, binders included. + * - extension_type (2 bytes) + * - extension_data_len (2 bytes) + * - identities_len (2 bytes) + */ + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 6 ); + p += 6; + + if( ssl_tls13_has_configured_ticket( ssl ) ) + { + size_t output_len, binder_len; + ret = ssl_tls13_write_identity( ssl, p, end, + MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION, + &output_len, &binder_len ); + if( ret != 0 ) + return( ret ); + p += output_len; + l_binders_len += binder_len; + } + + if( ssl_tls13_has_configured_psk( ssl ) ) + { + size_t output_len, binder_len; + ret = ssl_tls13_write_identity( ssl, p, end, + MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL, + &output_len, &binder_len ); + if( ret != 0 ) + return( ret ); + p += output_len; + l_binders_len += binder_len; + } + + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "client hello, adding pre_shared_key extension, " + "omitting PSK binder list" ) ); + /* + * - extension_type (2 bytes) + * - extension_data_len (2 bytes) + * - identities_len (2 bytes) + */ + MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_PRE_SHARED_KEY, buf, 0 ); + MBEDTLS_PUT_UINT16_BE( p - buf - 4 + 2 + l_binders_len , buf, 2 ); + MBEDTLS_PUT_UINT16_BE( p - buf - 6 , buf, 4 ); + + /* Check if there are enough space for binders */ + MBEDTLS_SSL_CHK_BUF_PTR( p, end, l_binders_len + 2 ); + + *out_len = ( p - buf ) + l_binders_len + 2; + *binders_len = l_binders_len + 2; + + MBEDTLS_SSL_DEBUG_BUF( 3, "pre_shared_key identities", buf, p - buf ); + + ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PRE_SHARED_KEY; + return( 0 ); } From 1a0a0f4416944ff93717be268304e540ca520592 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 28 Sep 2022 22:11:02 +0800 Subject: [PATCH 0501/1028] Add binders writer Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 146 ++++++++++++++++++++++++++++++++++++- 1 file changed, 143 insertions(+), 3 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 547651d971..babbbbdc63 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -718,6 +718,22 @@ static int ssl_tls13_session_tickets_get_identity( return( 0 ); } +MBEDTLS_CHECK_RETURN_CRITICAL +static int ssl_tls13_session_tickets_get_psk( mbedtls_ssl_context *ssl, + psa_algorithm_t *psa_alg, + const unsigned char **psk, + size_t *psk_len ) +{ + + mbedtls_ssl_session *session = ssl->session_negotiate; + + *psa_alg = ssl_tls13_ciphersuite_to_alg( ssl, session->ciphersuite ); + *psk = session->resumption_key; + *psk_len = session->resumption_key_len; + + return( 0 ); +} + #endif /* MBEDTLS_SSL_SESSION_TICKETS */ MBEDTLS_CHECK_RETURN_CRITICAL @@ -733,6 +749,18 @@ static int ssl_tls13_psk_get_identity( mbedtls_ssl_context *ssl, return( 0 ); } +MBEDTLS_CHECK_RETURN_CRITICAL +static int ssl_tls13_psk_get_psk( mbedtls_ssl_context *ssl, + psa_algorithm_t *psa_alg, + const unsigned char **psk, + size_t *psk_len ) +{ + *psa_alg = PSA_ALG_SHA_256; + *psk = ssl->conf->psk; + *psk_len = ssl->conf->psk_len; + return( 0 ); +} + /* * mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext() structure: * @@ -910,12 +938,124 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( return( 0 ); } +MBEDTLS_CHECK_RETURN_CRITICAL +static int ssl_tls13_write_binder( mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + int psk_type, + size_t *out_len ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + unsigned char *p = buf; + const unsigned char *psk; + psa_algorithm_t psa_alg = PSA_ALG_NONE; + size_t psk_len; + unsigned char binder_len; + unsigned char transcript[MBEDTLS_MD_MAX_SIZE]; + size_t transcript_len = 0; + + *out_len = 0; + + switch( psk_type ) + { +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_HAVE_TIME) + case MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION: + if( ssl_tls13_session_tickets_get_psk( + ssl, &psa_alg, &psk, &psk_len ) != 0 ) + { + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + } + break; +#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_HAVE_TIME*/ + case MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL: + if( ssl_tls13_psk_get_psk( ssl, &psa_alg, &psk, &psk_len ) != 0 ) + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + break; + default: + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + } + + binder_len = PSA_HASH_LENGTH( psa_alg ); + if( binder_len == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( 3, ( "should never happen" ) ); + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + } + + /* + * - binder_len (1 bytes) + * - binder (binder_len bytes) + */ + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 1 + binder_len ); + + p[0] = binder_len; + + /* Get current state of handshake transcript. */ + ret = mbedtls_ssl_get_handshake_transcript( + ssl, mbedtls_hash_info_md_from_psa( psa_alg ), + transcript, MBEDTLS_MD_MAX_SIZE, &transcript_len ); + if( ret != 0 ) + return( ret ); + + + + ret = mbedtls_ssl_tls13_create_psk_binder( ssl, psa_alg, + psk, psk_len, psk_type, + transcript, p + 1 ); + if( ret != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_create_psk_binder", ret ); + return( ret ); + } + MBEDTLS_SSL_DEBUG_BUF( 4, "write binder", p, 1 + binder_len ); + + *out_len = 1 + binder_len; + + return( ret ); +} + int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( mbedtls_ssl_context *ssl, unsigned char *buf, unsigned char *end ) { - ((void) ssl); - ((void) buf); - ((void) end); + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + unsigned char *p = buf; + + /* Check if we have space to write binders_len. + * - binders_len (2 bytes) + */ + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); + p += 2; + + if( ssl_tls13_has_configured_ticket( ssl ) ) + { + size_t output_len; + ret = ssl_tls13_write_binder( ssl, p, end, + MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION, + &output_len ); + if( ret != 0 ) + return( ret ); + p += output_len; + } + + if( ssl_tls13_has_configured_psk( ssl ) ) + { + size_t output_len; + ret = ssl_tls13_write_binder( ssl, p, end, + MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL, + &output_len ); + if( ret != 0 ) + return( ret ); + p += output_len; + } + + MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding PSK binder list." ) ); + + /* + * - binders_len (2 bytes) + */ + MBEDTLS_PUT_UINT16_BE( p - buf - 2, buf, 0 ); + + MBEDTLS_SSL_DEBUG_BUF( 3, "pre_shared_key binders", buf, p - buf ); return( 0 ); } From b300e3c5be3f1a749b73fd89e1a089b957f31bca Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 28 Sep 2022 22:12:07 +0800 Subject: [PATCH 0502/1028] add selected_identity parser Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 88 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 84 insertions(+), 4 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index babbbbdc63..67ecdc9591 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1083,10 +1083,90 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, const unsigned char *buf, const unsigned char *end ) { - ((void) ssl); - ((void) buf); - ((void) end); - return( 0 ); + int ret = 0; + int selected_identity; + int psk_type = MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL; + const unsigned char *psk; + size_t psk_len; + psa_algorithm_t psa_alg; + + MBEDTLS_SSL_CHK_BUF_PTR( buf, end, 2 ); + selected_identity = MBEDTLS_GET_UINT16_BE( buf, 0 ); + MBEDTLS_SSL_DEBUG_MSG( 3, ( "selected_identity = %d", selected_identity ) ); + + if( ssl_tls13_has_configured_psk( ssl ) && + ssl_tls13_has_configured_ticket( ssl ) ) + { + if( selected_identity >= 2 ) + { + MBEDTLS_SSL_DEBUG_MSG( 1, ( "Out of range" ) ); + goto exit; + } + switch( selected_identity ) + { + case 0: + psk_type = MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION; + break; + case 1: + psk_type = MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL; + break; + } + } + else if( ssl_tls13_has_configured_psk( ssl ) || + ssl_tls13_has_configured_ticket( ssl ) ) + { + if( selected_identity >= 1 ) + { + MBEDTLS_SSL_DEBUG_MSG( 1, ( "Out of range" ) ); + goto exit; + } + + if( ssl_tls13_has_configured_psk( ssl ) ) + psk_type = MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL; + else if( ssl_tls13_has_configured_ticket( ssl ) ) + psk_type = MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION; + } + else + { + MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + } + switch( psk_type ) + { +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + case MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION: + ret = ssl_tls13_session_tickets_get_psk( + ssl, &psa_alg, &psk, &psk_len ); + break; +#endif + case MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL: + ret = ssl_tls13_psk_get_psk( + ssl, &psa_alg, &psk, &psk_len ); + break; + default: + MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + } + if( ret != 0 ) + return( ret ); + + ret = mbedtls_ssl_set_hs_psk( ssl, psk, psk_len ); + if( ret != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_set_hs_psk", ret ); + } + else + ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PRE_SHARED_KEY; + + return( ret ); + +exit: + MBEDTLS_SSL_DEBUG_MSG( + 1, ( "Invalid chosen PSK identity." ) ); + + MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ From 25ab65478123884ab9222fe3a3949929bbbfb7a2 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 15 Sep 2022 18:32:34 +0800 Subject: [PATCH 0503/1028] Add dummy ticket support Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 5 +- programs/ssl/ssl_server2.c | 119 +++++++++++-- tests/opt-testcases/tls13-kex-modes.sh | 227 +++++++++++++++++++++++++ tests/ssl-opt.sh | 1 - 4 files changed, 339 insertions(+), 13 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 6591ecba00..6e754a3f81 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -186,8 +186,9 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( if( now < session->start ) { MBEDTLS_SSL_DEBUG_MSG( - 3, ( "Ticket expired: now=%" MBEDTLS_PRINTF_LONGLONG - ", start=%" MBEDTLS_PRINTF_LONGLONG, + 3, ( "Ticket expired: start is in future " + "( now=%" MBEDTLS_PRINTF_LONGLONG + ", start=%" MBEDTLS_PRINTF_LONGLONG " )", (long long)now, (long long)session->start ) ); goto exit; } diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 7526bc6cf5..25565d13b7 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -120,6 +120,7 @@ int main( void ) #define DFL_MFL_CODE MBEDTLS_SSL_MAX_FRAG_LEN_NONE #define DFL_TRUNC_HMAC -1 #define DFL_TICKETS MBEDTLS_SSL_SESSION_TICKETS_ENABLED +#define DFL_DUMMY_TICKET 0 #define DFL_TICKET_ROTATE 0 #define DFL_TICKET_TIMEOUT 86400 #define DFL_TICKET_AEAD MBEDTLS_CIPHER_AES_256_GCM @@ -638,6 +639,7 @@ struct options unsigned char mfl_code; /* code for maximum fragment length */ int trunc_hmac; /* accept truncated hmac? */ int tickets; /* enable / disable session tickets */ + int dummy_ticket; /* enable / disable dummy ticket generator */ int ticket_rotate; /* session ticket rotate (code coverage) */ int ticket_timeout; /* session ticket lifetime */ int ticket_aead; /* session ticket protection */ @@ -1351,6 +1353,79 @@ int report_cid_usage( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ + defined(MBEDTLS_HAVE_TIME) +/* Functions for session ticket tests + * + */ +int dummy_ticket_write( void *p_ticket, const mbedtls_ssl_session *session, + unsigned char *start, const unsigned char *end, + size_t *tlen, uint32_t *ticket_lifetime ) +{ + int ret; + unsigned char *p = start; + size_t clear_len; + ((void) p_ticket); + + if( end - p < 4 ) + { + return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + } + *((uint32_t *)p) = 7 * 24 * 3600; + *ticket_lifetime = 7 * 24 * 3600; + p += 4; + + /* Dump session state */ + if( ( ret = mbedtls_ssl_session_save( session, p, end - p, + &clear_len ) ) != 0 ) + { + return( ret ); + } + + *tlen = 4 + clear_len; + + return( 0 ); +} + +int dummy_ticket_parse( void *p_ticket, mbedtls_ssl_session *session, + unsigned char *buf, size_t len ) +{ + int ret; + ((void) p_ticket); + + if( ( ret = mbedtls_ssl_session_load( session, buf + 4, len - 4 ) ) != 0 ) + return( ret ); + + switch( opt.dummy_ticket % 7 ) + { + case 1: + return( MBEDTLS_ERR_SSL_INVALID_MAC ); + case 2: + return( MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED ); + case 3: + session->start = mbedtls_time( NULL ) + 10; + break; + case 4: + session->start = mbedtls_time( NULL ) - 10 - 7 * 24 * 3600; + break; + case 5: + session->start = mbedtls_time( NULL ) - 10; + break; + case 6: + session->start = mbedtls_time( NULL ); + session->ticket_age_add -= 1000; + break; + default: + break; + } + + return( ret ); +} +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && + MBEDTLS_SSL_SESSION_TICKETS && + MBEDTLS_HAVE_TIME */ + int main( int argc, char *argv[] ) { int ret = 0, len, written, frags, exchanges_left; @@ -1607,6 +1682,7 @@ int main( int argc, char *argv[] ) opt.mfl_code = DFL_MFL_CODE; opt.trunc_hmac = DFL_TRUNC_HMAC; opt.tickets = DFL_TICKETS; + opt.dummy_ticket = DFL_DUMMY_TICKET; opt.ticket_rotate = DFL_TICKET_ROTATE; opt.ticket_timeout = DFL_TICKET_TIMEOUT; opt.ticket_aead = DFL_TICKET_AEAD; @@ -2002,6 +2078,12 @@ int main( int argc, char *argv[] ) if( opt.tickets < 0 ) goto usage; } + else if( strcmp( p, "dummy_ticket" ) == 0 ) + { + opt.dummy_ticket = atoi( q ); + if( opt.dummy_ticket < 0 ) + goto usage; + } else if( strcmp( p, "ticket_rotate" ) == 0 ) { opt.ticket_rotate = atoi( q ); @@ -2919,19 +3001,36 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_SSL_SESSION_TICKETS) if( opt.tickets != MBEDTLS_SSL_SESSION_TICKETS_DISABLED ) { - if( ( ret = mbedtls_ssl_ticket_setup( &ticket_ctx, - rng_get, &rng, - opt.ticket_aead, - opt.ticket_timeout ) ) != 0 ) +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ + defined(MBEDTLS_HAVE_TIME) + if( opt.dummy_ticket ) { - mbedtls_printf( " failed\n ! mbedtls_ssl_ticket_setup returned %d\n\n", ret ); - goto exit; + mbedtls_ssl_conf_session_tickets_cb( &conf, + dummy_ticket_write, + dummy_ticket_parse, + NULL ); + } + else +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && + MBEDTLS_SSL_SESSION_TICKETS && + MBEDTLS_HAVE_TIME */ + { + if( ( ret = mbedtls_ssl_ticket_setup( &ticket_ctx, + rng_get, &rng, + opt.ticket_aead, + opt.ticket_timeout ) ) != 0 ) + { + mbedtls_printf( " failed\n ! mbedtls_ssl_ticket_setup returned %d\n\n", ret ); + goto exit; + } + + mbedtls_ssl_conf_session_tickets_cb( &conf, + mbedtls_ssl_ticket_write, + mbedtls_ssl_ticket_parse, + &ticket_ctx ); } - mbedtls_ssl_conf_session_tickets_cb( &conf, - mbedtls_ssl_ticket_write, - mbedtls_ssl_ticket_parse, - &ticket_ctx ); #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_conf_new_session_tickets( &conf, opt.tickets ); #endif diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 3487026206..a6bbd082ba 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -66,6 +66,233 @@ run_test "TLS 1.3: PSK: No valid ciphersuite. O->m" \ -s "Found PSK KEX MODE" \ -s "No matched ciphersuite" +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: NewSessionTicket: psk_ephemeral, auth fail, m->m" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=1" \ + "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 2" \ + -s "sent selected_identity: 1" \ + -s "key exchange mode: psk_ephemeral" \ + -s "ticket is not authentic" \ + -S "ticket is expired" \ + -S "Ticket expired: start is in future" \ + -S "Ticket expired: Ticket age exceed limitation" \ + -S "Ticket expired: Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: NewSessionTicket: ephemeral, auth fail, m->m" \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=1" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -s "ticket is not authentic" \ + -S "ticket is expired" \ + -S "Ticket expired: start is in future" \ + -S "Ticket expired: Ticket age exceed limitation" \ + -S "Ticket expired: Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: NewSessionTicket: psk_ephemeral, expired, m->m" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=2" \ + "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 2" \ + -s "sent selected_identity: 1" \ + -s "key exchange mode: psk_ephemeral" \ + -S "ticket is not authentic" \ + -s "ticket is expired" \ + -S "Ticket expired: start is in future" \ + -S "Ticket expired: Ticket age exceed limitation" \ + -S "Ticket expired: Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: NewSessionTicket: ephemeral, expired, m->m" \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=2" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "ticket is not authentic" \ + -s "ticket is expired" \ + -S "Ticket expired: start is in future" \ + -S "Ticket expired: Ticket age exceed limitation" \ + -S "Ticket expired: Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: NewSessionTicket: psk_ephemeral, future start, m->m" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=3" \ + "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 2" \ + -s "sent selected_identity: 1" \ + -s "key exchange mode: psk_ephemeral" \ + -S "ticket is not authentic" \ + -S "ticket is expired" \ + -s "Ticket expired: start is in future" \ + -S "Ticket expired: Ticket age exceed limitation" \ + -S "Ticket expired: Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: NewSessionTicket: ephemeral, future start, m->m" \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=3" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "ticket is not authentic" \ + -S "ticket is expired" \ + -s "Ticket expired: start is in future" \ + -S "Ticket expired: Ticket age exceed limitation" \ + -S "Ticket expired: Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: NewSessionTicket: psk_ephemeral, out of max age, m->m" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=4" \ + "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 2" \ + -s "sent selected_identity: 1" \ + -s "key exchange mode: psk_ephemeral" \ + -S "ticket is not authentic" \ + -S "ticket is expired" \ + -S "Ticket expired: start is in future" \ + -s "Ticket expired: Ticket age exceed limitation" \ + -S "Ticket expired: Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: NewSessionTicket: ephemeral, out of max age, m->m" \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=4" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "ticket is not authentic" \ + -S "ticket is expired" \ + -S "Ticket expired: start is in future" \ + -s "Ticket expired: Ticket age exceed limitation" \ + -S "Ticket expired: Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: NewSessionTicket: psk_ephemeral, negative tolerance exceed, m->m" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=5" \ + "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 2" \ + -s "sent selected_identity: 1" \ + -s "key exchange mode: psk_ephemeral" \ + -S "ticket is not authentic" \ + -S "ticket is expired" \ + -S "Ticket expired: start is in future" \ + -S "Ticket expired: Ticket age exceed limitation" \ + -s "Ticket expired: Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: NewSessionTicket: ephemeral, negative tolerance exceed, m->m" \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=5" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "ticket is not authentic" \ + -S "ticket is expired" \ + -S "Ticket expired: start is in future" \ + -S "Ticket expired: Ticket age exceed limitation" \ + -s "Ticket expired: Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: NewSessionTicket: psk_ephemeral, tolerance exceed, m->m" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=6" \ + "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 2" \ + -s "sent selected_identity: 1" \ + -s "key exchange mode: psk_ephemeral" \ + -S "ticket is not authentic" \ + -S "ticket is expired" \ + -S "Ticket expired: start is in future" \ + -S "Ticket expired: Ticket age exceed limitation" \ + -s "Ticket expired: Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3: NewSessionTicket: ephemeral, tolerance exceed, m->m" \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=6" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "ticket is not authentic" \ + -S "ticket is expired" \ + -S "Ticket expired: start is in future" \ + -S "Ticket expired: Ticket age exceed limitation" \ + -s "Ticket expired: Ticket age outside tolerance window" requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 67e9cfb9f9..48dd89e357 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12842,7 +12842,6 @@ run_test "TLS 1.3: NewSessionTicket: Basic check, m->m" \ -s "key exchange mode: psk_ephemeral" \ -s "found pre_shared_key extension" - requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_DEBUG_C From 19ae6f62c7a4e6cf14bf61fcb6ea070d34e70f2a Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 30 Sep 2022 09:22:21 +0800 Subject: [PATCH 0504/1028] move ciphersuite validation to set_session Signed-off-by: Jerry Yu --- library/ssl_misc.h | 4 ++++ library/ssl_tls.c | 9 +++++++++ library/ssl_tls13_client.c | 22 +++++++++++----------- library/ssl_tls13_generic.c | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 56 insertions(+), 11 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index afacb76f01..0450b3d77f 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -1911,6 +1911,10 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( size_t *out_len ); #endif /* MBEDTLS_ECDH_C */ +MBEDTLS_CHECK_RETURN_CRITICAL +int mbedtls_ssl_tls13_ciphersuite_to_alg( mbedtls_ssl_context *ssl, + int ciphersuite, + psa_algorithm_t *psa_alg ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 616df07de8..892a868482 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1373,6 +1373,15 @@ int mbedtls_ssl_set_session( mbedtls_ssl_context *ssl, const mbedtls_ssl_session if( ssl->handshake->resume == 1 ) return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + if( session->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && + ( ( ret = mbedtls_ssl_tls13_ciphersuite_to_alg( + ssl, session->ciphersuite, NULL ) ) != 0 ) ) + { + return( ret ); + } +#endif + if( ( ret = mbedtls_ssl_session_copy( ssl->session_negotiate, session ) ) != 0 ) return( ret ); diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 67ecdc9591..8f932d9394 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -668,17 +668,19 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, static psa_algorithm_t ssl_tls13_ciphersuite_to_alg( mbedtls_ssl_context *ssl, int ciphersuite ) { - const mbedtls_ssl_ciphersuite_t *ciphersuite_info = NULL; - ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( ciphersuite ); - if( mbedtls_ssl_validate_ciphersuite( - ssl, ciphersuite_info, - MBEDTLS_SSL_VERSION_TLS1_3, - MBEDTLS_SSL_VERSION_TLS1_3 ) == 0 ) + psa_algorithm_t psa_alg; + if( mbedtls_ssl_tls13_ciphersuite_to_alg( + ssl, ciphersuite, &psa_alg ) != 0 ) { - return( mbedtls_psa_translate_md( ciphersuite_info->mac ) ); + /* ciphersuite is `ssl->session_negotiate->ciphersuite` or + * PSA_ALG_SHA256, both are validated before writting pre_shared_key. + */ + MBEDTLS_SSL_DEBUG_MSG( 2, ( "should never happen" ) ); + return( PSA_ALG_NONE ); } - return( PSA_ALG_NONE ); + + return( psa_alg ); } static int ssl_tls13_has_configured_psk( mbedtls_ssl_context *ssl ) @@ -695,9 +697,7 @@ static int ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_SSL_SESSION_TICKETS) mbedtls_ssl_session *session = ssl->session_negotiate; return( session != NULL && - session->ticket != NULL && - ssl_tls13_ciphersuite_to_alg( ssl, - ssl->session_negotiate->ciphersuite ) != PSA_ALG_NONE ); + session->ticket != NULL ); #else ((void) ssl); return( 0 ); diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index abb7a14816..56841c4ed1 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1485,4 +1485,36 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( } #endif /* MBEDTLS_ECDH_C */ +int mbedtls_ssl_tls13_ciphersuite_to_alg( mbedtls_ssl_context *ssl, + int ciphersuite, + psa_algorithm_t *psa_alg ) +{ + const mbedtls_ssl_ciphersuite_t *ciphersuite_info = NULL; + psa_algorithm_t alg; + + ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( ciphersuite ); + if( psa_alg ) + *psa_alg = PSA_ALG_NONE; + + if( mbedtls_ssl_validate_ciphersuite( + ssl, ciphersuite_info, + MBEDTLS_SSL_VERSION_TLS1_3, + MBEDTLS_SSL_VERSION_TLS1_3 ) != 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( 4, ( "%d is not valid.", ciphersuite ) ); + return( MBEDTLS_ERR_SSL_INVALID_MAC ); + } + + alg = mbedtls_psa_translate_md( ciphersuite_info->mac ); + if( alg == PSA_ALG_NONE ) + { + MBEDTLS_SSL_DEBUG_MSG( 4, ( "%d is not valid.", ciphersuite ) ); + return( MBEDTLS_ERR_SSL_INVALID_MAC ); + } + + if( psa_alg ) + *psa_alg = alg; + return( 0 ); +} + #endif /* MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_PROTO_TLS1_3 */ From 8b41e893a2515f92b6aa1eb1746556de628da3c3 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 30 Sep 2022 10:00:20 +0800 Subject: [PATCH 0505/1028] fix various issues - Re-order code and comments - move comment above `write_identities` - move `write_binder` above `write_identities`. - Add has_{psk,identity} into {ticket,psk}_get_{psk,identity} - rename `*_session_tickets_*` to `_ticket_` Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 244 ++++++++++++++++++++----------------- 1 file changed, 135 insertions(+), 109 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 8f932d9394..96a1e27b1e 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -707,11 +707,20 @@ static int ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_SSL_SESSION_TICKETS) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_session_tickets_get_identity( - mbedtls_ssl_context *ssl, psa_algorithm_t *psa_alg, - const unsigned char **identity, size_t *identity_len ) +static int ssl_tls13_ticket_get_identity( mbedtls_ssl_context *ssl, + psa_algorithm_t *psa_alg, + const unsigned char **identity, + size_t *identity_len ) { mbedtls_ssl_session *session = ssl->session_negotiate; + + *psa_alg = PSA_ALG_NONE; + *identity = NULL; + *identity_len = 0; + + if( !ssl_tls13_has_configured_ticket( ssl ) ) + return( -1 ); + *psa_alg = ssl_tls13_ciphersuite_to_alg( ssl, session->ciphersuite ); *identity = session->ticket; *identity_len = session->ticket_len; @@ -719,14 +728,21 @@ static int ssl_tls13_session_tickets_get_identity( } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_session_tickets_get_psk( mbedtls_ssl_context *ssl, - psa_algorithm_t *psa_alg, - const unsigned char **psk, - size_t *psk_len ) +static int ssl_tls13_ticket_get_psk( mbedtls_ssl_context *ssl, + psa_algorithm_t *psa_alg, + const unsigned char **psk, + size_t *psk_len ) { mbedtls_ssl_session *session = ssl->session_negotiate; + *psa_alg = PSA_ALG_NONE; + *psk = NULL; + *psk_len = 0; + + if( !ssl_tls13_has_configured_ticket( ssl ) ) + return( -1 ); + *psa_alg = ssl_tls13_ciphersuite_to_alg( ssl, session->ciphersuite ); *psk = session->resumption_key; *psk_len = session->resumption_key_len; @@ -742,6 +758,12 @@ static int ssl_tls13_psk_get_identity( mbedtls_ssl_context *ssl, const unsigned char **identity, size_t *identity_len ) { + *psa_alg = PSA_ALG_NONE; + *identity = NULL; + *identity_len = 0; + + if( !ssl_tls13_has_configured_psk( ssl ) ) + return( -1 ); *psa_alg = PSA_ALG_SHA_256; *identity = ssl->conf->psk_identity; @@ -755,35 +777,19 @@ static int ssl_tls13_psk_get_psk( mbedtls_ssl_context *ssl, const unsigned char **psk, size_t *psk_len ) { + *psa_alg = PSA_ALG_NONE; + *psk = NULL; + *psk_len = 0; + + if( !ssl_tls13_has_configured_psk( ssl ) ) + return( -1 ); + *psa_alg = PSA_ALG_SHA_256; *psk = ssl->conf->psk; *psk_len = ssl->conf->psk_len; return( 0 ); } -/* - * mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext() structure: - * - * struct { - * opaque identity<1..2^16-1>; - * uint32 obfuscated_ticket_age; - * } PskIdentity; - * - * opaque PskBinderEntry<32..255>; - * - * struct { - * PskIdentity identities<7..2^16-1>; - * PskBinderEntry binders<33..2^16-1>; - * } OfferedPsks; - * - * struct { - * select (Handshake.msg_type) { - * case client_hello: OfferedPsks; - * ... - * }; - * } PreSharedKeyExtension; - * - */ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_write_identity( mbedtls_ssl_context *ssl, unsigned char *buf, @@ -806,7 +812,7 @@ static int ssl_tls13_write_identity( mbedtls_ssl_context *ssl, { #if defined(MBEDTLS_SSL_SESSION_TICKETS) case MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION: - if( ssl_tls13_session_tickets_get_identity( + if( ssl_tls13_ticket_get_identity( ssl, &psa_alg, &identity, &identity_len ) == 0 ) { #if defined(MBEDTLS_HAVE_TIME) @@ -858,6 +864,103 @@ static int ssl_tls13_write_identity( mbedtls_ssl_context *ssl, return( 0 ); } + +MBEDTLS_CHECK_RETURN_CRITICAL +static int ssl_tls13_write_binder( mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + int psk_type, + size_t *out_len ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + unsigned char *p = buf; + const unsigned char *psk; + psa_algorithm_t psa_alg = PSA_ALG_NONE; + size_t psk_len; + unsigned char binder_len; + unsigned char transcript[MBEDTLS_MD_MAX_SIZE]; + size_t transcript_len = 0; + + *out_len = 0; + + switch( psk_type ) + { +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_HAVE_TIME) + case MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION: + if( ssl_tls13_ticket_get_psk( ssl, &psa_alg, &psk, &psk_len ) != 0 ) + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + break; +#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_HAVE_TIME*/ + case MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL: + if( ssl_tls13_psk_get_psk( ssl, &psa_alg, &psk, &psk_len ) != 0 ) + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + break; + default: + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + } + + binder_len = PSA_HASH_LENGTH( psa_alg ); + if( binder_len == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( 3, ( "should never happen" ) ); + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + } + + /* + * - binder_len (1 bytes) + * - binder (binder_len bytes) + */ + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 1 + binder_len ); + + p[0] = binder_len; + + /* Get current state of handshake transcript. */ + ret = mbedtls_ssl_get_handshake_transcript( + ssl, mbedtls_hash_info_md_from_psa( psa_alg ), + transcript, MBEDTLS_MD_MAX_SIZE, &transcript_len ); + if( ret != 0 ) + return( ret ); + + + + ret = mbedtls_ssl_tls13_create_psk_binder( ssl, psa_alg, + psk, psk_len, psk_type, + transcript, p + 1 ); + if( ret != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_create_psk_binder", ret ); + return( ret ); + } + MBEDTLS_SSL_DEBUG_BUF( 4, "write binder", p, 1 + binder_len ); + + *out_len = 1 + binder_len; + + return( ret ); +} + +/* + * mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext() structure: + * + * struct { + * opaque identity<1..2^16-1>; + * uint32 obfuscated_ticket_age; + * } PskIdentity; + * + * opaque PskBinderEntry<32..255>; + * + * struct { + * PskIdentity identities<7..2^16-1>; + * PskBinderEntry binders<33..2^16-1>; + * } OfferedPsks; + * + * struct { + * select (Handshake.msg_type) { + * case client_hello: OfferedPsks; + * ... + * }; + * } PreSharedKeyExtension; + * + */ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( mbedtls_ssl_context *ssl, unsigned char *buf, unsigned char *end, @@ -938,82 +1041,6 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( return( 0 ); } -MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_binder( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - int psk_type, - size_t *out_len ) -{ - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - unsigned char *p = buf; - const unsigned char *psk; - psa_algorithm_t psa_alg = PSA_ALG_NONE; - size_t psk_len; - unsigned char binder_len; - unsigned char transcript[MBEDTLS_MD_MAX_SIZE]; - size_t transcript_len = 0; - - *out_len = 0; - - switch( psk_type ) - { -#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_HAVE_TIME) - case MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION: - if( ssl_tls13_session_tickets_get_psk( - ssl, &psa_alg, &psk, &psk_len ) != 0 ) - { - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - } - break; -#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_HAVE_TIME*/ - case MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL: - if( ssl_tls13_psk_get_psk( ssl, &psa_alg, &psk, &psk_len ) != 0 ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - break; - default: - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - } - - binder_len = PSA_HASH_LENGTH( psa_alg ); - if( binder_len == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - } - - /* - * - binder_len (1 bytes) - * - binder (binder_len bytes) - */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 1 + binder_len ); - - p[0] = binder_len; - - /* Get current state of handshake transcript. */ - ret = mbedtls_ssl_get_handshake_transcript( - ssl, mbedtls_hash_info_md_from_psa( psa_alg ), - transcript, MBEDTLS_MD_MAX_SIZE, &transcript_len ); - if( ret != 0 ) - return( ret ); - - - - ret = mbedtls_ssl_tls13_create_psk_binder( ssl, psa_alg, - psk, psk_len, psk_type, - transcript, p + 1 ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_create_psk_binder", ret ); - return( ret ); - } - MBEDTLS_SSL_DEBUG_BUF( 4, "write binder", p, 1 + binder_len ); - - *out_len = 1 + binder_len; - - return( ret ); -} - int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( mbedtls_ssl_context *ssl, unsigned char *buf, unsigned char *end ) { @@ -1135,8 +1162,7 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, { #if defined(MBEDTLS_SSL_SESSION_TICKETS) case MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION: - ret = ssl_tls13_session_tickets_get_psk( - ssl, &psa_alg, &psk, &psk_len ); + ret = ssl_tls13_ticket_get_psk( ssl, &psa_alg, &psk, &psk_len ); break; #endif case MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL: From f75364bee13a27b0e855a5379ce8344e457af459 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 30 Sep 2022 10:30:31 +0800 Subject: [PATCH 0506/1028] Re-organize identities writer Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 165 ++++++++++++++++++------------------- 1 file changed, 81 insertions(+), 84 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 96a1e27b1e..c757c6cbaa 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -683,29 +683,14 @@ static psa_algorithm_t ssl_tls13_ciphersuite_to_alg( mbedtls_ssl_context *ssl, return( psa_alg ); } -static int ssl_tls13_has_configured_psk( mbedtls_ssl_context *ssl ) -{ - return( ssl->conf->psk != NULL && - ssl->conf->psk_len != 0 && - ssl->conf->psk_identity != NULL && - ssl->conf->psk_identity_len != 0 ); -} +#if defined(MBEDTLS_SSL_SESSION_TICKETS) static int ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl ) { - -#if defined(MBEDTLS_SSL_SESSION_TICKETS) mbedtls_ssl_session *session = ssl->session_negotiate; - return( session != NULL && - session->ticket != NULL ); -#else - ((void) ssl); - return( 0 ); -#endif + return( session != NULL && session->ticket != NULL ); } -#if defined(MBEDTLS_SSL_SESSION_TICKETS) - MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_ticket_get_identity( mbedtls_ssl_context *ssl, psa_algorithm_t *psa_alg, @@ -752,6 +737,14 @@ static int ssl_tls13_ticket_get_psk( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_SSL_SESSION_TICKETS */ +static int ssl_tls13_has_configured_psk( mbedtls_ssl_context *ssl ) +{ + return( ssl->conf->psk != NULL && + ssl->conf->psk_len != 0 && + ssl->conf->psk_identity != NULL && + ssl->conf->psk_identity_len != 0 ); +} + MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_psk_get_identity( mbedtls_ssl_context *ssl, psa_algorithm_t *psa_alg, @@ -790,60 +783,37 @@ static int ssl_tls13_psk_get_psk( mbedtls_ssl_context *ssl, return( 0 ); } +static int ssl_tls13_get_configured_psk_count( mbedtls_ssl_context *ssl ) +{ + int configured_psk_count = 0; +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + if( ssl_tls13_has_configured_ticket( ssl ) ) + { + MBEDTLS_SSL_DEBUG_MSG( 3, ( "Ticket is configured" ) ); + configured_psk_count++; + } +#endif + if( ssl_tls13_has_configured_psk( ssl ) ) + { + MBEDTLS_SSL_DEBUG_MSG( 3, ( "PSK is configured" ) ); + configured_psk_count++; + } + return( configured_psk_count ); +} + MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_write_identity( mbedtls_ssl_context *ssl, unsigned char *buf, unsigned char *end, - int psk_type, - size_t *out_len, - size_t *binder_len ) + const unsigned char *identity, + size_t identity_len, + uint32_t obfuscated_ticket_age, + size_t *out_len ) { unsigned char *p = buf; - psa_algorithm_t psa_alg; - const unsigned char *identity; - size_t identity_len; - uint32_t obfuscated_ticket_age = 0; - int hash_len; + ((void) ssl); *out_len = 0; - *binder_len = 0; - - switch( psk_type ) - { -#if defined(MBEDTLS_SSL_SESSION_TICKETS) - case MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION: - if( ssl_tls13_ticket_get_identity( - ssl, &psa_alg, &identity, &identity_len ) == 0 ) - { -#if defined(MBEDTLS_HAVE_TIME) - mbedtls_time_t now = mbedtls_time( NULL ); - mbedtls_ssl_session *session = ssl->session_negotiate; - obfuscated_ticket_age = - (uint32_t)( now - session->ticket_received ); - obfuscated_ticket_age *= 1000; - obfuscated_ticket_age += session->ticket_age_add ; -#endif /* MBEDTLS_HAVE_TIME */ - } - else - { - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - } - break; -#endif /* MBEDTLS_SSL_SESSION_TICKETS */ - case MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL: - if( ssl_tls13_psk_get_identity( - ssl, &psa_alg, &identity, &identity_len ) != 0 ) - { - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - } - break; - default: - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - } - - hash_len = PSA_HASH_LENGTH( psa_alg ); - if( hash_len == -1 ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); /* * - identity_len (2 bytes) @@ -859,12 +829,10 @@ static int ssl_tls13_write_identity( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 4, "write identity", p, 6 + identity_len ); *out_len = 6 + identity_len; - *binder_len = 1 + hash_len; return( 0 ); } - MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_write_binder( mbedtls_ssl_context *ssl, unsigned char *buf, @@ -962,28 +930,35 @@ static int ssl_tls13_write_binder( mbedtls_ssl_context *ssl, * */ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( - mbedtls_ssl_context *ssl, - unsigned char *buf, unsigned char *end, - size_t *out_len, size_t *binders_len ) + mbedtls_ssl_context *ssl, unsigned char *buf, unsigned char *end, + size_t *out_len, size_t *binders_len ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + int configured_psk_count = 0; unsigned char *p = buf; + psa_algorithm_t hash_alg; + const unsigned char *identity; + size_t identity_len; + uint32_t obfuscated_ticket_age = 0; + int hash_len; size_t l_binders_len = 0; + size_t output_len; *out_len = 0; *binders_len = 0; + /* Check if we have any PSKs to offer. If no, skip pre_shared_key */ - if( !ssl_tls13_has_configured_psk( ssl ) && - !ssl_tls13_has_configured_ticket( ssl ) ) + configured_psk_count = ssl_tls13_get_configured_psk_count( ssl ); + if( configured_psk_count == 0 ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "skip pre_shared_key extensions" ) ); return( 0 ); } MBEDTLS_SSL_DEBUG_MSG( 4, ( "Pre-configured PSK number = %d", - ssl_tls13_has_configured_psk( ssl ) + - ssl_tls13_has_configured_ticket( ssl ) ) ); + configured_psk_count ) ); + /* Check if we have space to write the extension, binders included. * - extension_type (2 bytes) * - extension_data_len (2 bytes) @@ -992,28 +967,50 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( MBEDTLS_SSL_CHK_BUF_PTR( p, end, 6 ); p += 6; - if( ssl_tls13_has_configured_ticket( ssl ) ) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + if( ssl_tls13_ticket_get_identity( + ssl, &hash_alg, &identity, &identity_len ) == 0 ) { - size_t output_len, binder_len; +#if defined(MBEDTLS_HAVE_TIME) + mbedtls_time_t now = mbedtls_time( NULL ); + mbedtls_ssl_session *session = ssl->session_negotiate; + obfuscated_ticket_age = (uint32_t)( now - session->ticket_received ); + obfuscated_ticket_age *= 1000; + obfuscated_ticket_age += session->ticket_age_add; +#endif /* MBEDTLS_HAVE_TIME */ ret = ssl_tls13_write_identity( ssl, p, end, - MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION, - &output_len, &binder_len ); + identity, identity_len, + obfuscated_ticket_age, + &output_len ); if( ret != 0 ) return( ret ); - p += output_len; - l_binders_len += binder_len; - } - if( ssl_tls13_has_configured_psk( ssl ) ) + hash_len = PSA_HASH_LENGTH( hash_alg ); + if( hash_len == 0 ) + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + + p += output_len; + l_binders_len += 1 + hash_len; + } +#endif /* MBEDTLS_SSL_SESSION_TICKETS */ + + if( ssl_tls13_psk_get_identity( + ssl, &hash_alg, &identity, &identity_len ) == 0 ) { - size_t output_len, binder_len; + ret = ssl_tls13_write_identity( ssl, p, end, - MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL, - &output_len, &binder_len ); + identity, identity_len, + obfuscated_ticket_age, + &output_len ); if( ret != 0 ) return( ret ); + + hash_len = PSA_HASH_LENGTH( hash_alg ); + if( hash_len == 0 ) + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + p += output_len; - l_binders_len += binder_len; + l_binders_len += 1 + hash_len; } MBEDTLS_SSL_DEBUG_MSG( 3, From 6183cc7470ff31a16cd2c92988c686d57fddd350 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 30 Sep 2022 11:08:57 +0800 Subject: [PATCH 0507/1028] Re-org binders writer Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 46 +++++++++++++++----------------------- 1 file changed, 18 insertions(+), 28 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index c757c6cbaa..bca7f9e298 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -838,36 +838,20 @@ static int ssl_tls13_write_binder( mbedtls_ssl_context *ssl, unsigned char *buf, unsigned char *end, int psk_type, + psa_algorithm_t hash_alg, + const unsigned char *psk, + size_t psk_len, size_t *out_len ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = buf; - const unsigned char *psk; - psa_algorithm_t psa_alg = PSA_ALG_NONE; - size_t psk_len; unsigned char binder_len; unsigned char transcript[MBEDTLS_MD_MAX_SIZE]; size_t transcript_len = 0; *out_len = 0; - switch( psk_type ) - { -#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_HAVE_TIME) - case MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION: - if( ssl_tls13_ticket_get_psk( ssl, &psa_alg, &psk, &psk_len ) != 0 ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - break; -#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_HAVE_TIME*/ - case MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL: - if( ssl_tls13_psk_get_psk( ssl, &psa_alg, &psk, &psk_len ) != 0 ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - break; - default: - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - } - - binder_len = PSA_HASH_LENGTH( psa_alg ); + binder_len = PSA_HASH_LENGTH( hash_alg ); if( binder_len == 0 ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "should never happen" ) ); @@ -884,14 +868,12 @@ static int ssl_tls13_write_binder( mbedtls_ssl_context *ssl, /* Get current state of handshake transcript. */ ret = mbedtls_ssl_get_handshake_transcript( - ssl, mbedtls_hash_info_md_from_psa( psa_alg ), + ssl, mbedtls_hash_info_md_from_psa( hash_alg ), transcript, MBEDTLS_MD_MAX_SIZE, &transcript_len ); if( ret != 0 ) return( ret ); - - - ret = mbedtls_ssl_tls13_create_psk_binder( ssl, psa_alg, + ret = mbedtls_ssl_tls13_create_psk_binder( ssl, hash_alg, psk, psk_len, psk_type, transcript, p + 1 ); if( ret != 0 ) @@ -1043,6 +1025,10 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = buf; + psa_algorithm_t hash_alg = PSA_ALG_NONE; + const unsigned char *psk; + size_t psk_len; + size_t output_len; /* Check if we have space to write binders_len. * - binders_len (2 bytes) @@ -1050,22 +1036,26 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); p += 2; - if( ssl_tls13_has_configured_ticket( ssl ) ) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + if( ssl_tls13_ticket_get_psk( ssl, &hash_alg, &psk, &psk_len ) == 0 ) { - size_t output_len; + ret = ssl_tls13_write_binder( ssl, p, end, MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION, + hash_alg, psk, psk_len, &output_len ); if( ret != 0 ) return( ret ); p += output_len; } +#endif /* MBEDTLS_SSL_SESSION_TICKETS */ - if( ssl_tls13_has_configured_psk( ssl ) ) + if( ssl_tls13_psk_get_psk( ssl, &hash_alg, &psk, &psk_len ) == 0 ) { - size_t output_len; + ret = ssl_tls13_write_binder( ssl, p, end, MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL, + hash_alg, psk, psk_len, &output_len ); if( ret != 0 ) return( ret ); From 4a698341c91b2e944b9ea64d555a3b8162670e20 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 30 Sep 2022 12:22:01 +0800 Subject: [PATCH 0508/1028] Re-org selected_identity parser Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 69 +++++++++----------------------------- 1 file changed, 16 insertions(+), 53 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index bca7f9e298..7b85c70e57 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1099,7 +1099,6 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, { int ret = 0; int selected_identity; - int psk_type = MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL; const unsigned char *psk; size_t psk_len; psa_algorithm_t psa_alg; @@ -1107,59 +1106,31 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_PTR( buf, end, 2 ); selected_identity = MBEDTLS_GET_UINT16_BE( buf, 0 ); MBEDTLS_SSL_DEBUG_MSG( 3, ( "selected_identity = %d", selected_identity ) ); - - if( ssl_tls13_has_configured_psk( ssl ) && - ssl_tls13_has_configured_ticket( ssl ) ) + if( selected_identity >= ssl_tls13_get_configured_psk_count( ssl ) ) { - if( selected_identity >= 2 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Out of range" ) ); - goto exit; - } - switch( selected_identity ) - { - case 0: - psk_type = MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION; - break; - case 1: - psk_type = MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL; - break; - } + MBEDTLS_SSL_DEBUG_MSG( 1, ( "Out of range" ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, ( "Invalid chosen PSK identity." ) ); + + MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); } - else if( ssl_tls13_has_configured_psk( ssl ) || - ssl_tls13_has_configured_ticket( ssl ) ) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + if( selected_identity == 0 && ssl_tls13_has_configured_ticket( ssl ) ) { - if( selected_identity >= 1 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Out of range" ) ); - goto exit; - } - - if( ssl_tls13_has_configured_psk( ssl ) ) - psk_type = MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL; - else if( ssl_tls13_has_configured_ticket( ssl ) ) - psk_type = MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION; + ret = ssl_tls13_ticket_get_psk( ssl, &psa_alg, &psk, &psk_len ); + } + else +#endif + if( ssl_tls13_has_configured_psk( ssl ) ) + { + ret = ssl_tls13_psk_get_psk( ssl, &psa_alg, &psk, &psk_len ); } else { MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); } - switch( psk_type ) - { -#if defined(MBEDTLS_SSL_SESSION_TICKETS) - case MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION: - ret = ssl_tls13_ticket_get_psk( ssl, &psa_alg, &psk, &psk_len ); - break; -#endif - case MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL: - ret = ssl_tls13_psk_get_psk( - ssl, &psa_alg, &psk, &psk_len ); - break; - default: - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - } if( ret != 0 ) return( ret ); @@ -1172,14 +1143,6 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PRE_SHARED_KEY; return( ret ); - -exit: - MBEDTLS_SSL_DEBUG_MSG( - 1, ( "Invalid chosen PSK identity." ) ); - - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ From 86679c7bd8856a1a89b4576344554123d8a42c24 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 6 Oct 2022 17:06:56 +0200 Subject: [PATCH 0509/1028] psa_validate_tag_length(): use PSA_WANT_ALG_xxx instead MBEDTLS_PSA_BUILTIN_ALG_xxx guards Signed-off-by: Przemek Stekiel --- library/psa_crypto.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index aef18ac418..7bce3916be 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -3709,35 +3709,34 @@ exit: return( status ); } -static psa_status_t psa_validate_tag_length( psa_aead_operation_t *operation, - psa_algorithm_t alg ) { +static psa_status_t psa_validate_tag_length( psa_algorithm_t alg ) { const uint8_t tag_len = PSA_ALG_AEAD_GET_TAG_LENGTH( alg ); switch( PSA_ALG_AEAD_WITH_SHORTENED_TAG( alg, 0 ) ) { -#if defined(MBEDTLS_PSA_BUILTIN_ALG_CCM) +#if defined(PSA_WANT_ALG_CCM) case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, 0 ): /* CCM allows the following tag lengths: 4, 6, 8, 10, 12, 14, 16.*/ if( tag_len < 4 || tag_len > 16 || tag_len % 2 ) return( PSA_ERROR_INVALID_ARGUMENT ); break; -#endif /* MBEDTLS_PSA_BUILTIN_ALG_CCM */ +#endif /* PSA_WANT_ALG_CCM */ -#if defined(MBEDTLS_PSA_BUILTIN_ALG_GCM) +#if defined(PSA_WANT_ALG_GCM) case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_GCM, 0 ): /* GCM allows the following tag lengths: 4, 8, 12, 13, 14, 15, 16. */ if( tag_len != 4 && tag_len != 8 && ( tag_len < 12 || tag_len > 16 ) ) return( PSA_ERROR_INVALID_ARGUMENT ); break; -#endif /* MBEDTLS_PSA_BUILTIN_ALG_GCM */ +#endif /* PSA_WANT_ALG_GCM */ -#if defined(MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305) +#if defined(PSA_WANT_ALG_CHACHA20_POLY1305) case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CHACHA20_POLY1305, 0 ): /* We only support the default tag length. */ if( tag_len != 16 ) return( PSA_ERROR_INVALID_ARGUMENT ); break; -#endif /* MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 */ +#endif /* PSA_WANT_ALG_CHACHA20_POLY1305 */ default: (void) tag_len; @@ -3803,7 +3802,7 @@ static psa_status_t psa_aead_setup( psa_aead_operation_t *operation, if( status != PSA_SUCCESS ) goto exit; - if( ( status = psa_validate_tag_length( operation, alg ) ) != PSA_SUCCESS ) + if( ( status = psa_validate_tag_length( alg ) ) != PSA_SUCCESS ) goto exit; operation->key_type = psa_get_key_type( &attributes ); From e0af39a2efd4463dd01cc37baa68b0db6514ea56 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 18:19:18 +0100 Subject: [PATCH 0510/1028] Refactor macro-spanning ifs in ssl_tls12_server.c Signed-off-by: David Horstmann --- library/ssl_tls12_server.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index 997f5848ea..fcf8e9a06e 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -714,11 +714,13 @@ static int ssl_pick_cert( mbedtls_ssl_context *ssl, #endif list = ssl->conf->key_cert; + int pk_alg_none = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( pk_alg == PSA_ALG_NONE ) + pk_alg_none = ( pk_alg == PSA_ALG_NONE ); #else - if( pk_alg == MBEDTLS_PK_NONE ) + pk_alg_none = ( pk_alg == MBEDTLS_PK_NONE ); #endif /* MBEDTLS_USE_PSA_CRYPTO */ + if( pk_alg_none ) return( 0 ); MBEDTLS_SSL_DEBUG_MSG( 3, ( "ciphersuite requires certificate" ) ); @@ -735,18 +737,21 @@ static int ssl_pick_cert( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_CRT( 3, "candidate certificate chain, certificate", cur->cert ); + int key_type_mismatch = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - if( ( ssl->conf->f_async_sign_start == NULL && - ssl->conf->f_async_decrypt_start == NULL && - ! mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ) || - ! mbedtls_pk_can_do_ext( &cur->cert->pk, pk_alg, pk_usage ) ) + key_type_mismatch = ( ( ssl->conf->f_async_sign_start == NULL && + ssl->conf->f_async_decrypt_start == NULL && + ! mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ) || + ! mbedtls_pk_can_do_ext( &cur->cert->pk, pk_alg, pk_usage ) ); #else - if( ! mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ) + key_type_mismatch = ( + ! mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ); #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ #else - if( ! mbedtls_pk_can_do( &cur->cert->pk, pk_alg ) ) + key_type_mismatch = ( ! mbedtls_pk_can_do( &cur->cert->pk, pk_alg ) ); #endif /* MBEDTLS_USE_PSA_CRYPTO */ + if( key_type_mismatch ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "certificate mismatch: key type" ) ); continue; @@ -923,6 +928,8 @@ static int ssl_parse_client_hello( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse client hello" ) ); + int renegotiating; + #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) read_record_header: #endif @@ -931,9 +938,11 @@ read_record_header: * otherwise read it ourselves manually in order to support SSLv2 * ClientHello, which doesn't use the same record layer format. */ + renegotiating = 0; #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status == MBEDTLS_SSL_INITIAL_HANDSHAKE ) + renegotiating = ( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ); #endif + if( !renegotiating ) { if( ( ret = mbedtls_ssl_fetch_input( ssl, 5 ) ) != 0 ) { From 4a28563e84946423ea1ae6c67d9de918d68b3708 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 18:30:10 +0100 Subject: [PATCH 0511/1028] Refactor macro-spanning ifs in ssl_client.c Signed-off-by: David Horstmann --- library/ssl_client.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index e7453d5730..08cb3421e6 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -376,9 +376,11 @@ static int ssl_write_client_hello_cipher_suites( /* * Add TLS_EMPTY_RENEGOTIATION_INFO_SCSV */ + int renegotiating = 0; #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status == MBEDTLS_SSL_INITIAL_HANDSHAKE ) + renegotiating = ( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ); #endif + if( !renegotiating ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "adding EMPTY_RENEGOTIATION_INFO_SCSV" ) ); MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); @@ -790,9 +792,11 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) * RFC 5077 section 3.4: "When presenting a ticket, the client MAY * generate and include a Session ID in the TLS ClientHello." */ + int renegotiating = 0; #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status == MBEDTLS_SSL_INITIAL_HANDSHAKE ) + renegotiating = ( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ); #endif + if( !renegotiating ) { if( ( ssl->session_negotiate->ticket != NULL ) && ( ssl->session_negotiate->ticket_len != 0 ) ) From 10be134d8ef1e08862e1e2884dde3926e1435d0c Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 18:31:25 +0100 Subject: [PATCH 0512/1028] Refactor macro-spanning if in ssl_msg.c Signed-off-by: David Horstmann --- library/ssl_msg.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/ssl_msg.c b/library/ssl_msg.c index dbef29b3f9..f48f9f1b33 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -3851,8 +3851,8 @@ int mbedtls_ssl_read_record( mbedtls_ssl_context *ssl, if( ssl_record_is_in_progress( ssl ) == 0 ) { + int dtls_have_buffered = 0; #if defined(MBEDTLS_SSL_PROTO_DTLS) - int have_buffered = 0; /* We only check for buffered messages if the * current datagram is fully consumed. */ @@ -3860,11 +3860,11 @@ int mbedtls_ssl_read_record( mbedtls_ssl_context *ssl, ssl_next_record_is_in_datagram( ssl ) == 0 ) { if( ssl_load_buffered_message( ssl ) == 0 ) - have_buffered = 1; + dtls_have_buffered = 1; } - if( have_buffered == 0 ) #endif /* MBEDTLS_SSL_PROTO_DTLS */ + if( dtls_have_buffered == 0 ) { ret = ssl_get_next_record( ssl ); if( ret == MBEDTLS_ERR_SSL_CONTINUE_PROCESSING ) From 21b89761f899c9b40f03500c98910b855a5fe831 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 18:34:28 +0100 Subject: [PATCH 0513/1028] Refactor macro-spanning if in ssl_tls13_server.c Signed-off-by: David Horstmann --- library/ssl_tls13_server.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 6591ecba00..f61c634b26 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -680,11 +680,13 @@ static int ssl_tls13_write_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, *olen = 0; + int not_using_psk = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( mbedtls_svc_key_id_is_null( ssl->handshake->psk_opaque ) ) + not_using_psk = ( mbedtls_svc_key_id_is_null( ssl->handshake->psk_opaque ) ); #else - if( ssl->handshake->psk == NULL ) + not_using_psk = ( ssl->handshake->psk == NULL ); #endif + if( not_using_psk ) { /* We shouldn't have called this extension writer unless we've * chosen to use a PSK. */ From 687262ca7d735499627ca09e66196b51c1bb1147 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 17:54:57 +0100 Subject: [PATCH 0514/1028] Refactor macro-spanning if in sha256.c Signed-off-by: David Horstmann --- library/sha256.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/library/sha256.c b/library/sha256.c index 4819ba3ad1..a20a3e96d0 100644 --- a/library/sha256.c +++ b/library/sha256.c @@ -665,9 +665,11 @@ int mbedtls_sha256_finish( mbedtls_sha256_context *ctx, MBEDTLS_PUT_UINT32_BE( ctx->state[5], output, 20 ); MBEDTLS_PUT_UINT32_BE( ctx->state[6], output, 24 ); + int truncated = 0; #if defined(MBEDTLS_SHA224_C) - if( ctx->is224 == 0 ) + truncated = ctx->is224; #endif + if( !truncated ) MBEDTLS_PUT_UINT32_BE( ctx->state[7], output, 28 ); return( 0 ); From 2788f6b6685c8c0e41e7ee57e788a07b99edfb43 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 18:45:09 +0100 Subject: [PATCH 0515/1028] Refactor macro-spanning if in sha512.c Signed-off-by: David Horstmann --- library/sha512.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/library/sha512.c b/library/sha512.c index f96580db52..9be05cb7ee 100644 --- a/library/sha512.c +++ b/library/sha512.c @@ -820,9 +820,11 @@ int mbedtls_sha512_finish( mbedtls_sha512_context *ctx, sha512_put_uint64_be( ctx->state[4], output, 32 ); sha512_put_uint64_be( ctx->state[5], output, 40 ); + int truncated = 0; #if defined(MBEDTLS_SHA384_C) - if( ctx->is384 == 0 ) + truncated = ctx->is384; #endif + if( !truncated ) { sha512_put_uint64_be( ctx->state[6], output, 48 ); sha512_put_uint64_be( ctx->state[7], output, 56 ); From 8a7629fd0ffc0709eb47cdaf4607e76f35fc009b Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 18:57:57 +0100 Subject: [PATCH 0516/1028] Refactor macro-spanning if in asn1write.c Signed-off-by: David Horstmann --- library/asn1write.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/library/asn1write.c b/library/asn1write.c index 053dbb669f..6c2a71f004 100644 --- a/library/asn1write.c +++ b/library/asn1write.c @@ -78,9 +78,11 @@ int mbedtls_asn1_write_len( unsigned char **p, const unsigned char *start, size_ return( 4 ); } + int len_valid = 1; #if SIZE_MAX > 0xFFFFFFFF - if( len <= 0xFFFFFFFF ) + len_valid = ( len <= 0xFFFFFFFF ); #endif + if( len_valid ) { if( *p - start < 5 ) return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); @@ -92,10 +94,10 @@ int mbedtls_asn1_write_len( unsigned char **p, const unsigned char *start, size_ *--(*p) = 0x84; return( 5 ); } - -#if SIZE_MAX > 0xFFFFFFFF - return( MBEDTLS_ERR_ASN1_INVALID_LENGTH ); -#endif + else + { + return( MBEDTLS_ERR_ASN1_INVALID_LENGTH ); + } } int mbedtls_asn1_write_tag( unsigned char **p, const unsigned char *start, unsigned char tag ) From fc735dffd600808fb998141274c8323e98bfb79f Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 19:11:04 +0100 Subject: [PATCH 0517/1028] Refactor macro-spanning ifs in ecp.c Signed-off-by: David Horstmann --- library/ecp.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/library/ecp.c b/library/ecp.c index 009be61fc5..2cec0a0b0c 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -2287,12 +2287,14 @@ cleanup: mbedtls_free( T ); } - /* don't free R while in progress in case R == P */ -#if defined(MBEDTLS_ECP_RESTARTABLE) - if( ret != MBEDTLS_ERR_ECP_IN_PROGRESS ) -#endif + int should_free_R = 0; /* prevent caller from using invalid value */ - if( ret != 0 ) + should_free_R = ( ret != 0 ); +#if defined(MBEDTLS_ECP_RESTARTABLE) + /* don't free R while in progress in case R == P */ + should_free_R = should_free_R && ( ret != MBEDTLS_ERR_ECP_IN_PROGRESS ); +#endif + if( should_free_R ) mbedtls_ecp_point_free( R ); ECP_RS_LEAVE( rsm ); @@ -2537,10 +2539,12 @@ static int ecp_mul_restartable_internal( mbedtls_ecp_group *grp, mbedtls_ecp_poi MBEDTLS_MPI_CHK( mbedtls_internal_ecp_init( grp ) ); #endif /* MBEDTLS_ECP_INTERNAL_ALT */ + int restarting = 0; #if defined(MBEDTLS_ECP_RESTARTABLE) - /* skip argument check when restarting */ - if( rs_ctx == NULL || rs_ctx->rsm == NULL ) + restarting = ( rs_ctx != NULL && rs_ctx->rsm != NULL ); #endif + /* skip argument check when restarting */ + if( !restarting ) { /* check_privkey is free */ MBEDTLS_ECP_BUDGET( MBEDTLS_ECP_OPS_CHK ); From 91e20a0580b811cbb398b7a9e8d2a9fc26145858 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 19:11:28 +0100 Subject: [PATCH 0518/1028] Refactor macro-spanning ifs in ecdh.c Signed-off-by: David Horstmann --- library/ecdh.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/library/ecdh.c b/library/ecdh.c index 35ab1b7044..c9c2e06bd1 100644 --- a/library/ecdh.c +++ b/library/ecdh.c @@ -71,10 +71,12 @@ static int ecdh_gen_public_restartable( mbedtls_ecp_group *grp, { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - /* If multiplication is in progress, we already generated a privkey */ + int restarting = 0; #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx == NULL || rs_ctx->rsm == NULL ) + restarting = ( rs_ctx != NULL && rs_ctx->rsm != NULL ); #endif + /* If multiplication is in progress, we already generated a privkey */ + if( !restarting ) MBEDTLS_MPI_CHK( mbedtls_ecp_gen_privkey( grp, d, f_rng, p_rng ) ); MBEDTLS_MPI_CHK( mbedtls_ecp_mul_restartable( grp, Q, d, &grp->G, From 379b91a393b8d81e25408458a7573e026e1d80b6 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sat, 8 Oct 2022 10:21:15 +0800 Subject: [PATCH 0519/1028] add ticket age check Remove ticket if it is expired. Signed-off-by: Jerry Yu --- library/ssl_client.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/library/ssl_client.c b/library/ssl_client.c index e7453d5730..2a9868a601 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -843,6 +843,32 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) } } +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ + defined(MBEDTLS_HAVE_TIME) + /* Check if a tls13 ticket has been configured. */ + if( ssl->session_negotiate->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && + ssl->session_negotiate != NULL && + ssl->session_negotiate->ticket != NULL ) + { + mbedtls_time_t now = mbedtls_time( NULL ); + if( ssl->session_negotiate->ticket_received > now || + (uint64_t)( now - ssl->session_negotiate->ticket_received ) + > ssl->session_negotiate->ticket_lifetime ) + { + MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket expired" ) ); + mbedtls_platform_zeroize( ssl->session_negotiate->ticket, + ssl->session_negotiate->ticket_len ); + mbedtls_free( ssl->session_negotiate->ticket ); + ssl->session_negotiate->ticket = NULL; + ssl->session_negotiate->ticket_len = 0; + } + + } +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && + MBEDTLS_SSL_SESSION_TICKETS && + MBEDTLS_HAVE_TIME */ + return( 0 ); } From 21f9095fa8fe7cd0badd2573595807d1143d2773 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sat, 8 Oct 2022 10:30:53 +0800 Subject: [PATCH 0520/1028] Revert "move ciphersuite validation to set_session" This reverts commit 19ae6f62c7a4e6cf14bf61fcb6ea070d34e70f2a. Signed-off-by: Jerry Yu --- library/ssl_client.c | 1 + library/ssl_misc.h | 4 ---- library/ssl_tls.c | 9 --------- library/ssl_tls13_client.c | 18 ++++++++---------- library/ssl_tls13_generic.c | 32 -------------------------------- 5 files changed, 9 insertions(+), 55 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 2a9868a601..73a854d61b 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -848,6 +848,7 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) defined(MBEDTLS_HAVE_TIME) /* Check if a tls13 ticket has been configured. */ if( ssl->session_negotiate->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && + ssl->handshake->resume != 0 && ssl->session_negotiate != NULL && ssl->session_negotiate->ticket != NULL ) { diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 0450b3d77f..afacb76f01 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -1911,10 +1911,6 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( size_t *out_len ); #endif /* MBEDTLS_ECDH_C */ -MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_ciphersuite_to_alg( mbedtls_ssl_context *ssl, - int ciphersuite, - psa_algorithm_t *psa_alg ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 892a868482..616df07de8 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1373,15 +1373,6 @@ int mbedtls_ssl_set_session( mbedtls_ssl_context *ssl, const mbedtls_ssl_session if( ssl->handshake->resume == 1 ) return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( session->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && - ( ( ret = mbedtls_ssl_tls13_ciphersuite_to_alg( - ssl, session->ciphersuite, NULL ) ) != 0 ) ) - { - return( ret ); - } -#endif - if( ( ret = mbedtls_ssl_session_copy( ssl->session_negotiate, session ) ) != 0 ) return( ret ); diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 7b85c70e57..b0c2a3fb35 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -668,19 +668,17 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, static psa_algorithm_t ssl_tls13_ciphersuite_to_alg( mbedtls_ssl_context *ssl, int ciphersuite ) { + const mbedtls_ssl_ciphersuite_t *ciphersuite_info = NULL; + ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( ciphersuite ); - psa_algorithm_t psa_alg; - if( mbedtls_ssl_tls13_ciphersuite_to_alg( - ssl, ciphersuite, &psa_alg ) != 0 ) + if( mbedtls_ssl_validate_ciphersuite( + ssl, ciphersuite_info, + MBEDTLS_SSL_VERSION_TLS1_3, + MBEDTLS_SSL_VERSION_TLS1_3 ) == 0 ) { - /* ciphersuite is `ssl->session_negotiate->ciphersuite` or - * PSA_ALG_SHA256, both are validated before writting pre_shared_key. - */ - MBEDTLS_SSL_DEBUG_MSG( 2, ( "should never happen" ) ); - return( PSA_ALG_NONE ); + return( mbedtls_psa_translate_md( ciphersuite_info->mac ) ); } - - return( psa_alg ); + return( PSA_ALG_NONE ); } #if defined(MBEDTLS_SSL_SESSION_TICKETS) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 56841c4ed1..abb7a14816 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1485,36 +1485,4 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( } #endif /* MBEDTLS_ECDH_C */ -int mbedtls_ssl_tls13_ciphersuite_to_alg( mbedtls_ssl_context *ssl, - int ciphersuite, - psa_algorithm_t *psa_alg ) -{ - const mbedtls_ssl_ciphersuite_t *ciphersuite_info = NULL; - psa_algorithm_t alg; - - ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( ciphersuite ); - if( psa_alg ) - *psa_alg = PSA_ALG_NONE; - - if( mbedtls_ssl_validate_ciphersuite( - ssl, ciphersuite_info, - MBEDTLS_SSL_VERSION_TLS1_3, - MBEDTLS_SSL_VERSION_TLS1_3 ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 4, ( "%d is not valid.", ciphersuite ) ); - return( MBEDTLS_ERR_SSL_INVALID_MAC ); - } - - alg = mbedtls_psa_translate_md( ciphersuite_info->mac ); - if( alg == PSA_ALG_NONE ) - { - MBEDTLS_SSL_DEBUG_MSG( 4, ( "%d is not valid.", ciphersuite ) ); - return( MBEDTLS_ERR_SSL_INVALID_MAC ); - } - - if( psa_alg ) - *psa_alg = alg; - return( 0 ); -} - #endif /* MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_PROTO_TLS1_3 */ From 40afab61a87fe5bcc7c7cde7e10c2bf72fe49e5b Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sat, 8 Oct 2022 10:42:13 +0800 Subject: [PATCH 0521/1028] Add ciphersuite check in set_session Signed-off-by: Jerry Yu --- library/ssl_tls.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 616df07de8..d32d58e2df 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1361,6 +1361,7 @@ void mbedtls_ssl_conf_session_cache( mbedtls_ssl_config *conf, int mbedtls_ssl_set_session( mbedtls_ssl_context *ssl, const mbedtls_ssl_session *session ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + const mbedtls_ssl_ciphersuite_t *ciphersuite_info; if( ssl == NULL || session == NULL || @@ -1373,6 +1374,16 @@ int mbedtls_ssl_set_session( mbedtls_ssl_context *ssl, const mbedtls_ssl_session if( ssl->handshake->resume == 1 ) return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( session->ciphersuite ); + if( mbedtls_ssl_validate_ciphersuite( ssl, ciphersuite_info, + session->tls_version, + session->tls_version ) != 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( 4, ( "%d is not a valid ciphersuite.", + session->ciphersuite ) ); + return( MBEDTLS_ERR_SSL_INVALID_MAC ); + } + if( ( ret = mbedtls_ssl_session_copy( ssl->session_negotiate, session ) ) != 0 ) return( ret ); From a99cbfa2d3bbb4d2c4948ad3ccf8705c03873995 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sat, 8 Oct 2022 11:17:14 +0800 Subject: [PATCH 0522/1028] fix various issues - rename function and variable - change signature of `ssl_tls13_has_configured_psk` - remove unnecessary statements - remove unnecessary local variables - wrong variable initial value - improve output message Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 145 +++++++++++++++---------------------- library/ssl_tls13_server.c | 8 +- 2 files changed, 61 insertions(+), 92 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index b0c2a3fb35..f90e66ea7d 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -665,19 +665,14 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, return ( 0 ); } -static psa_algorithm_t ssl_tls13_ciphersuite_to_alg( mbedtls_ssl_context *ssl, - int ciphersuite ) +static psa_algorithm_t ssl_tls13_get_ciphersuite_hash_alg( int ciphersuite ) { const mbedtls_ssl_ciphersuite_t *ciphersuite_info = NULL; ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( ciphersuite ); - if( mbedtls_ssl_validate_ciphersuite( - ssl, ciphersuite_info, - MBEDTLS_SSL_VERSION_TLS1_3, - MBEDTLS_SSL_VERSION_TLS1_3 ) == 0 ) - { - return( mbedtls_psa_translate_md( ciphersuite_info->mac ) ); - } + if( ciphersuite_info != NULL ) + return( mbedtls_psa_translate_md( ciphersuite_info->mac ) ); + return( PSA_ALG_NONE ); } @@ -691,20 +686,16 @@ static int ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl ) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_ticket_get_identity( mbedtls_ssl_context *ssl, - psa_algorithm_t *psa_alg, + psa_algorithm_t *hash_alg, const unsigned char **identity, size_t *identity_len ) { mbedtls_ssl_session *session = ssl->session_negotiate; - *psa_alg = PSA_ALG_NONE; - *identity = NULL; - *identity_len = 0; - if( !ssl_tls13_has_configured_ticket( ssl ) ) return( -1 ); - *psa_alg = ssl_tls13_ciphersuite_to_alg( ssl, session->ciphersuite ); + *hash_alg = ssl_tls13_get_ciphersuite_hash_alg( session->ciphersuite ); *identity = session->ticket; *identity_len = session->ticket_len; return( 0 ); @@ -712,21 +703,17 @@ static int ssl_tls13_ticket_get_identity( mbedtls_ssl_context *ssl, MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_ticket_get_psk( mbedtls_ssl_context *ssl, - psa_algorithm_t *psa_alg, + psa_algorithm_t *hash_alg, const unsigned char **psk, size_t *psk_len ) { mbedtls_ssl_session *session = ssl->session_negotiate; - *psa_alg = PSA_ALG_NONE; - *psk = NULL; - *psk_len = 0; - if( !ssl_tls13_has_configured_ticket( ssl ) ) return( -1 ); - *psa_alg = ssl_tls13_ciphersuite_to_alg( ssl, session->ciphersuite ); + *hash_alg = ssl_tls13_get_ciphersuite_hash_alg( session->ciphersuite ); *psk = session->resumption_key; *psk_len = session->resumption_key_len; @@ -735,28 +722,22 @@ static int ssl_tls13_ticket_get_psk( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_SSL_SESSION_TICKETS */ -static int ssl_tls13_has_configured_psk( mbedtls_ssl_context *ssl ) +static int ssl_tls13_has_configured_psk( const mbedtls_ssl_config *conf ) { - return( ssl->conf->psk != NULL && - ssl->conf->psk_len != 0 && - ssl->conf->psk_identity != NULL && - ssl->conf->psk_identity_len != 0 ); + return( conf->psk != NULL && conf->psk_identity != NULL ); } MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_psk_get_identity( mbedtls_ssl_context *ssl, - psa_algorithm_t *psa_alg, + psa_algorithm_t *hash_alg, const unsigned char **identity, size_t *identity_len ) { - *psa_alg = PSA_ALG_NONE; - *identity = NULL; - *identity_len = 0; - if( !ssl_tls13_has_configured_psk( ssl ) ) + if( !ssl_tls13_has_configured_psk( ssl->conf ) ) return( -1 ); - *psa_alg = PSA_ALG_SHA_256; + *hash_alg = PSA_ALG_SHA_256; *identity = ssl->conf->psk_identity; *identity_len = ssl->conf->psk_identity_len; return( 0 ); @@ -764,18 +745,15 @@ static int ssl_tls13_psk_get_identity( mbedtls_ssl_context *ssl, MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_psk_get_psk( mbedtls_ssl_context *ssl, - psa_algorithm_t *psa_alg, + psa_algorithm_t *hash_alg, const unsigned char **psk, size_t *psk_len ) { - *psa_alg = PSA_ALG_NONE; - *psk = NULL; - *psk_len = 0; - if( !ssl_tls13_has_configured_psk( ssl ) ) + if( !ssl_tls13_has_configured_psk( ssl->conf ) ) return( -1 ); - *psa_alg = PSA_ALG_SHA_256; + *hash_alg = PSA_ALG_SHA_256; *psk = ssl->conf->psk; *psk_len = ssl->conf->psk_len; return( 0 ); @@ -791,7 +769,7 @@ static int ssl_tls13_get_configured_psk_count( mbedtls_ssl_context *ssl ) configured_psk_count++; } #endif - if( ssl_tls13_has_configured_psk( ssl ) ) + if( ssl_tls13_has_configured_psk( ssl->conf ) ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "PSK is configured" ) ); configured_psk_count++; @@ -808,8 +786,6 @@ static int ssl_tls13_write_identity( mbedtls_ssl_context *ssl, uint32_t obfuscated_ticket_age, size_t *out_len ) { - unsigned char *p = buf; - ((void) ssl); *out_len = 0; @@ -818,13 +794,13 @@ static int ssl_tls13_write_identity( mbedtls_ssl_context *ssl, * - identity (psk_identity_len bytes) * - obfuscated_ticket_age (4 bytes) */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 6 + identity_len ); + MBEDTLS_SSL_CHK_BUF_PTR( buf, end, 6 + identity_len ); - MBEDTLS_PUT_UINT16_BE( identity_len, p, 0 ); - memcpy( p + 2, identity, identity_len ); - MBEDTLS_PUT_UINT32_BE( obfuscated_ticket_age, p, 2 + identity_len ); + MBEDTLS_PUT_UINT16_BE( identity_len, buf, 0 ); + memcpy( buf + 2, identity, identity_len ); + MBEDTLS_PUT_UINT32_BE( obfuscated_ticket_age, buf, 2 + identity_len ); - MBEDTLS_SSL_DEBUG_BUF( 4, "write identity", p, 6 + identity_len ); + MBEDTLS_SSL_DEBUG_BUF( 4, "write identity", buf, 6 + identity_len ); *out_len = 6 + identity_len; @@ -842,27 +818,21 @@ static int ssl_tls13_write_binder( mbedtls_ssl_context *ssl, size_t *out_len ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - unsigned char *p = buf; unsigned char binder_len; - unsigned char transcript[MBEDTLS_MD_MAX_SIZE]; + unsigned char transcript[ MBEDTLS_TLS1_3_MD_MAX_SIZE ]; size_t transcript_len = 0; *out_len = 0; binder_len = PSA_HASH_LENGTH( hash_alg ); - if( binder_len == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - } /* * - binder_len (1 bytes) * - binder (binder_len bytes) */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 1 + binder_len ); + MBEDTLS_SSL_CHK_BUF_PTR( buf, end, 1 + binder_len ); - p[0] = binder_len; + buf[0] = binder_len; /* Get current state of handshake transcript. */ ret = mbedtls_ssl_get_handshake_transcript( @@ -873,13 +843,13 @@ static int ssl_tls13_write_binder( mbedtls_ssl_context *ssl, ret = mbedtls_ssl_tls13_create_psk_binder( ssl, hash_alg, psk, psk_len, psk_type, - transcript, p + 1 ); + transcript, buf + 1 ); if( ret != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_create_psk_binder", ret ); return( ret ); } - MBEDTLS_SSL_DEBUG_BUF( 4, "write binder", p, 1 + binder_len ); + MBEDTLS_SSL_DEBUG_BUF( 4, "write binder", buf, 1 + binder_len ); *out_len = 1 + binder_len; @@ -919,15 +889,12 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( psa_algorithm_t hash_alg; const unsigned char *identity; size_t identity_len; - uint32_t obfuscated_ticket_age = 0; - int hash_len; size_t l_binders_len = 0; size_t output_len; *out_len = 0; *binders_len = 0; - /* Check if we have any PSKs to offer. If no, skip pre_shared_key */ configured_psk_count = ssl_tls13_get_configured_psk_count( ssl ); if( configured_psk_count == 0 ) @@ -951,26 +918,29 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( if( ssl_tls13_ticket_get_identity( ssl, &hash_alg, &identity, &identity_len ) == 0 ) { + #if defined(MBEDTLS_HAVE_TIME) + uint32_t obfuscated_ticket_age = 0; mbedtls_time_t now = mbedtls_time( NULL ); mbedtls_ssl_session *session = ssl->session_negotiate; obfuscated_ticket_age = (uint32_t)( now - session->ticket_received ); + obfuscated_ticket_age *= 1000; obfuscated_ticket_age += session->ticket_age_add; -#endif /* MBEDTLS_HAVE_TIME */ + ret = ssl_tls13_write_identity( ssl, p, end, identity, identity_len, obfuscated_ticket_age, &output_len ); +#else + ret = ssl_tls13_write_identity( ssl, p, end, identity, identity_len, + 0, &output_len ); +#endif /* MBEDTLS_HAVE_TIME */ if( ret != 0 ) return( ret ); - hash_len = PSA_HASH_LENGTH( hash_alg ); - if( hash_len == 0 ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - p += output_len; - l_binders_len += 1 + hash_len; + l_binders_len += 1 + PSA_HASH_LENGTH( hash_alg ); } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ @@ -978,38 +948,35 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( ssl, &hash_alg, &identity, &identity_len ) == 0 ) { - ret = ssl_tls13_write_identity( ssl, p, end, - identity, identity_len, - obfuscated_ticket_age, + ret = ssl_tls13_write_identity( ssl, p, end, identity, identity_len, 0, &output_len ); if( ret != 0 ) return( ret ); - hash_len = PSA_HASH_LENGTH( hash_alg ); - if( hash_len == 0 ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - p += output_len; - l_binders_len += 1 + hash_len; + l_binders_len += 1 + PSA_HASH_LENGTH( hash_alg ); } MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding pre_shared_key extension, " "omitting PSK binder list" ) ); + + /* Take into account the two bytes for the length of the binders. */ + l_binders_len += 2; + /* Check if there are enough space for binders */ + MBEDTLS_SSL_CHK_BUF_PTR( p, end, l_binders_len ); + /* * - extension_type (2 bytes) * - extension_data_len (2 bytes) * - identities_len (2 bytes) */ MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_PRE_SHARED_KEY, buf, 0 ); - MBEDTLS_PUT_UINT16_BE( p - buf - 4 + 2 + l_binders_len , buf, 2 ); + MBEDTLS_PUT_UINT16_BE( p - buf - 4 + l_binders_len , buf, 2 ); MBEDTLS_PUT_UINT16_BE( p - buf - 6 , buf, 4 ); - /* Check if there are enough space for binders */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, l_binders_len + 2 ); - - *out_len = ( p - buf ) + l_binders_len + 2; - *binders_len = l_binders_len + 2; + *out_len = ( p - buf ) + l_binders_len; + *binders_len = l_binders_len; MBEDTLS_SSL_DEBUG_BUF( 3, "pre_shared_key identities", buf, p - buf ); @@ -1095,34 +1062,36 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, const unsigned char *buf, const unsigned char *end ) { - int ret = 0; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int selected_identity; const unsigned char *psk; size_t psk_len; - psa_algorithm_t psa_alg; + psa_algorithm_t hash_alg; - MBEDTLS_SSL_CHK_BUF_PTR( buf, end, 2 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR( buf, end, 2 ); selected_identity = MBEDTLS_GET_UINT16_BE( buf, 0 ); + MBEDTLS_SSL_DEBUG_MSG( 3, ( "selected_identity = %d", selected_identity ) ); + if( selected_identity >= ssl_tls13_get_configured_psk_count( ssl ) ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Out of range" ) ); - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Invalid chosen PSK identity." ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, ( "Invalid PSK identity." ) ); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); } + #if defined(MBEDTLS_SSL_SESSION_TICKETS) if( selected_identity == 0 && ssl_tls13_has_configured_ticket( ssl ) ) { - ret = ssl_tls13_ticket_get_psk( ssl, &psa_alg, &psk, &psk_len ); + ret = ssl_tls13_ticket_get_psk( ssl, &hash_alg, &psk, &psk_len ); } else #endif - if( ssl_tls13_has_configured_psk( ssl ) ) + if( ssl_tls13_has_configured_psk( ssl->conf ) ) { - ret = ssl_tls13_psk_get_psk( ssl, &psa_alg, &psk, &psk_len ); + ret = ssl_tls13_psk_get_psk( ssl, &hash_alg, &psk, &psk_len ); } else { diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 6e754a3f81..08f48b8735 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -186,10 +186,10 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( if( now < session->start ) { MBEDTLS_SSL_DEBUG_MSG( - 3, ( "Ticket expired: start is in future " - "( now=%" MBEDTLS_PRINTF_LONGLONG - ", start=%" MBEDTLS_PRINTF_LONGLONG " )", - (long long)now, (long long)session->start ) ); + 3, ( "Ticket expired: Invalid ticket start time " + "( now=%" MBEDTLS_PRINTF_LONGLONG + ", start=%" MBEDTLS_PRINTF_LONGLONG " )", + (long long)now, (long long)session->start ) ); goto exit; } From 03b8f9d29939959a958641a784fcfbcc7374ebfa Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sat, 8 Oct 2022 12:40:33 +0800 Subject: [PATCH 0523/1028] Adjust guards for `dummy_tickets` Signed-off-by: Jerry Yu --- programs/ssl/ssl_server2.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 25565d13b7..a209eef33d 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -1353,12 +1353,9 @@ int report_cid_usage( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_SSL_SESSION_TICKETS) && \ +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_HAVE_TIME) -/* Functions for session ticket tests - * - */ +/* Functions for session ticket tests */ int dummy_ticket_write( void *p_ticket, const mbedtls_ssl_session *session, unsigned char *start, const unsigned char *end, size_t *tlen, uint32_t *ticket_lifetime ) @@ -1403,6 +1400,7 @@ int dummy_ticket_parse( void *p_ticket, mbedtls_ssl_session *session, return( MBEDTLS_ERR_SSL_INVALID_MAC ); case 2: return( MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED ); +#if defined(MBEDTLS_HAVE_TIME) case 3: session->start = mbedtls_time( NULL ) + 10; break; @@ -1414,16 +1412,18 @@ int dummy_ticket_parse( void *p_ticket, mbedtls_ssl_session *session, break; case 6: session->start = mbedtls_time( NULL ); +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) session->ticket_age_add -= 1000; +#endif break; +#endif default: break; } return( ret ); } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && - MBEDTLS_SSL_SESSION_TICKETS && +#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_HAVE_TIME */ int main( int argc, char *argv[] ) @@ -3001,9 +3001,7 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_SSL_SESSION_TICKETS) if( opt.tickets != MBEDTLS_SSL_SESSION_TICKETS_DISABLED ) { -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_SSL_SESSION_TICKETS) && \ - defined(MBEDTLS_HAVE_TIME) +#if defined(MBEDTLS_HAVE_TIME) if( opt.dummy_ticket ) { mbedtls_ssl_conf_session_tickets_cb( &conf, @@ -3012,9 +3010,7 @@ int main( int argc, char *argv[] ) NULL ); } else -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && - MBEDTLS_SSL_SESSION_TICKETS && - MBEDTLS_HAVE_TIME */ +#endif /* MBEDTLS_HAVE_TIME */ { if( ( ret = mbedtls_ssl_ticket_setup( &ticket_ctx, rng_get, &rng, From 63b06ea06ec75795b9fcef24a0da243bf7c4b419 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sat, 8 Oct 2022 14:24:46 +0800 Subject: [PATCH 0524/1028] Update test cases Signed-off-by: Jerry Yu --- tests/opt-testcases/tls13-kex-modes.sh | 158 +++++++------------------ 1 file changed, 45 insertions(+), 113 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index a6bbd082ba..dd907c1d41 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -72,18 +72,33 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHAN MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: NewSessionTicket: psk_ephemeral, auth fail, m->m" \ +run_test "TLS 1.3 m->m: Multiple PSKs: valid ticket, reconnect with ticket" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8" \ + "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 2" \ + -s "sent selected_identity: 0" \ + -s "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -S "key exchange mode: ephemeral$" \ + -S "ticket is not authentic" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Multiple PSKs: invalid ticket, reconnect with PSK" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=1" \ "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ 0 \ -c "Pre-configured PSK number = 2" \ -s "sent selected_identity: 1" \ -s "key exchange mode: psk_ephemeral" \ - -s "ticket is not authentic" \ - -S "ticket is expired" \ - -S "Ticket expired: start is in future" \ - -S "Ticket expired: Ticket age exceed limitation" \ - -S "Ticket expired: Ticket age outside tolerance window" + -S "key exchange mode: psk$" \ + -S "key exchange mode: ephemeral$" \ + -s "ticket is not authentic" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME @@ -91,35 +106,18 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHAN MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: NewSessionTicket: ephemeral, auth fail, m->m" \ +run_test "TLS 1.3 m->m: Multiple PSKs: authentication failed" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=1" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "sent selected_identity:" \ -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ -s "ticket is not authentic" \ -S "ticket is expired" \ - -S "Ticket expired: start is in future" \ - -S "Ticket expired: Ticket age exceed limitation" \ - -S "Ticket expired: Ticket age outside tolerance window" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: NewSessionTicket: psk_ephemeral, expired, m->m" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=2" \ - "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 2" \ - -s "sent selected_identity: 1" \ - -s "key exchange mode: psk_ephemeral" \ - -S "ticket is not authentic" \ - -s "ticket is expired" \ - -S "Ticket expired: start is in future" \ + -S "Ticket expired: Invalid ticket start time" \ -S "Ticket expired: Ticket age exceed limitation" \ -S "Ticket expired: Ticket age outside tolerance window" @@ -129,35 +127,18 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHAN MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: NewSessionTicket: ephemeral, expired, m->m" \ +run_test "TLS 1.3 m->m: Multiple PSKs: ticket expired, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=2" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "sent selected_identity:" \ -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ -S "ticket is not authentic" \ -s "ticket is expired" \ - -S "Ticket expired: start is in future" \ - -S "Ticket expired: Ticket age exceed limitation" \ - -S "Ticket expired: Ticket age outside tolerance window" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: NewSessionTicket: psk_ephemeral, future start, m->m" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=3" \ - "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 2" \ - -s "sent selected_identity: 1" \ - -s "key exchange mode: psk_ephemeral" \ - -S "ticket is not authentic" \ - -S "ticket is expired" \ - -s "Ticket expired: start is in future" \ + -S "Ticket expired: Invalid ticket start time" \ -S "Ticket expired: Ticket age exceed limitation" \ -S "Ticket expired: Ticket age outside tolerance window" @@ -167,111 +148,60 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHAN MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: NewSessionTicket: ephemeral, future start, m->m" \ +run_test "TLS 1.3 m->m: Multiple PSKs: Invalid start time check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=3" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "sent selected_identity:" \ -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ -S "ticket is not authentic" \ -S "ticket is expired" \ - -s "Ticket expired: start is in future" \ + -s "Ticket expired: Invalid ticket start time" \ -S "Ticket expired: Ticket age exceed limitation" \ -S "Ticket expired: Ticket age outside tolerance window" -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: NewSessionTicket: psk_ephemeral, out of max age, m->m" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=4" \ - "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 2" \ - -s "sent selected_identity: 1" \ - -s "key exchange mode: psk_ephemeral" \ - -S "ticket is not authentic" \ - -S "ticket is expired" \ - -S "Ticket expired: start is in future" \ - -s "Ticket expired: Ticket age exceed limitation" \ - -S "Ticket expired: Ticket age outside tolerance window" - requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: NewSessionTicket: ephemeral, out of max age, m->m" \ +run_test "TLS 1.3 m->m: Multiple PSKs: Max age check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=4" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "sent selected_identity:" \ -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ -S "ticket is not authentic" \ -S "ticket is expired" \ - -S "Ticket expired: start is in future" \ + -S "Ticket expired: Invalid ticket start time" \ -s "Ticket expired: Ticket age exceed limitation" \ -S "Ticket expired: Ticket age outside tolerance window" -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: NewSessionTicket: psk_ephemeral, negative tolerance exceed, m->m" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=5" \ - "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 2" \ - -s "sent selected_identity: 1" \ - -s "key exchange mode: psk_ephemeral" \ - -S "ticket is not authentic" \ - -S "ticket is expired" \ - -S "Ticket expired: start is in future" \ - -S "Ticket expired: Ticket age exceed limitation" \ - -s "Ticket expired: Ticket age outside tolerance window" - requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: NewSessionTicket: ephemeral, negative tolerance exceed, m->m" \ +run_test "TLS 1.3 m->m: Multiple PSKs: Tolerance window bottom check." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=5" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "sent selected_identity:" \ -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ -S "ticket is not authentic" \ -S "ticket is expired" \ - -S "Ticket expired: start is in future" \ - -S "Ticket expired: Ticket age exceed limitation" \ - -s "Ticket expired: Ticket age outside tolerance window" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: NewSessionTicket: psk_ephemeral, tolerance exceed, m->m" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=6" \ - "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 2" \ - -s "sent selected_identity: 1" \ - -s "key exchange mode: psk_ephemeral" \ - -S "ticket is not authentic" \ - -S "ticket is expired" \ - -S "Ticket expired: start is in future" \ + -S "Ticket expired: Invalid ticket start time" \ -S "Ticket expired: Ticket age exceed limitation" \ -s "Ticket expired: Ticket age outside tolerance window" @@ -281,16 +211,18 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHAN MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3: NewSessionTicket: ephemeral, tolerance exceed, m->m" \ +run_test "TLS 1.3 m->m: Multiple PSKs: Tolerance window top check." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=6" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "sent selected_identity:" \ -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ -S "ticket is not authentic" \ -S "ticket is expired" \ - -S "Ticket expired: start is in future" \ + -S "Ticket expired: Invalid ticket start time" \ -S "Ticket expired: Ticket age exceed limitation" \ -s "Ticket expired: Ticket age outside tolerance window" From 6ab50762e0c3a13c8ae9198b66ae895e5739d3b7 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Sat, 8 Oct 2022 17:54:30 +0200 Subject: [PATCH 0525/1028] psa_aead_setup: validate tag length before calling driver setup Signed-off-by: Przemek Stekiel --- library/psa_crypto.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 7bce3916be..2ff168d3f7 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -3787,6 +3787,9 @@ static psa_status_t psa_aead_setup( psa_aead_operation_t *operation, .core = slot->attr }; + if( ( status = psa_validate_tag_length( alg ) ) != PSA_SUCCESS ) + goto exit; + if( is_encrypt ) status = psa_driver_wrapper_aead_encrypt_setup( operation, &attributes, @@ -3802,9 +3805,6 @@ static psa_status_t psa_aead_setup( psa_aead_operation_t *operation, if( status != PSA_SUCCESS ) goto exit; - if( ( status = psa_validate_tag_length( alg ) ) != PSA_SUCCESS ) - goto exit; - operation->key_type = psa_get_key_type( &attributes ); exit: From 88ade84735d74f245c1fca531d6f0c5077281223 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Sat, 8 Oct 2022 17:56:18 +0200 Subject: [PATCH 0526/1028] psa_aead_setup: remove redundant tag length check Signed-off-by: Przemek Stekiel --- library/psa_crypto_aead.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/library/psa_crypto_aead.c b/library/psa_crypto_aead.c index 714d950a14..fcc2f8415f 100644 --- a/library/psa_crypto_aead.c +++ b/library/psa_crypto_aead.c @@ -49,7 +49,6 @@ static psa_status_t psa_aead_setup( size_t key_bits; const mbedtls_cipher_info_t *cipher_info; mbedtls_cipher_id_t cipher_id; - size_t full_tag_length = 0; ( void ) key_buffer_size; @@ -66,7 +65,6 @@ static psa_status_t psa_aead_setup( #if defined(MBEDTLS_PSA_BUILTIN_ALG_CCM) case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, 0 ): operation->alg = PSA_ALG_CCM; - full_tag_length = 16; /* CCM allows the following tag lengths: 4, 6, 8, 10, 12, 14, 16. * The call to mbedtls_ccm_encrypt_and_tag or * mbedtls_ccm_auth_decrypt will validate the tag length. */ @@ -85,7 +83,6 @@ static psa_status_t psa_aead_setup( #if defined(MBEDTLS_PSA_BUILTIN_ALG_GCM) case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_GCM, 0 ): operation->alg = PSA_ALG_GCM; - full_tag_length = 16; /* GCM allows the following tag lengths: 4, 8, 12, 13, 14, 15, 16. * The call to mbedtls_gcm_crypt_and_tag or * mbedtls_gcm_auth_decrypt will validate the tag length. */ @@ -104,7 +101,6 @@ static psa_status_t psa_aead_setup( #if defined(MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305) case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CHACHA20_POLY1305, 0 ): operation->alg = PSA_ALG_CHACHA20_POLY1305; - full_tag_length = 16; /* We only support the default tag length. */ if( alg != PSA_ALG_CHACHA20_POLY1305 ) return( PSA_ERROR_NOT_SUPPORTED ); @@ -124,16 +120,9 @@ static psa_status_t psa_aead_setup( return( PSA_ERROR_NOT_SUPPORTED ); } - if( PSA_AEAD_TAG_LENGTH( attributes->core.type, - key_bits, alg ) - > full_tag_length ) - return( PSA_ERROR_INVALID_ARGUMENT ); - operation->key_type = psa_get_key_type( attributes ); - operation->tag_length = PSA_AEAD_TAG_LENGTH( operation->key_type, - key_bits, - alg ); + operation->tag_length = PSA_ALG_AEAD_GET_TAG_LENGTH( alg ); return( PSA_SUCCESS ); } From 42bb3ff40b1a94760dd1bc124e7ebb97f5425cbc Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 10 Oct 2022 07:28:40 +0200 Subject: [PATCH 0527/1028] Adapt expected results in ChaCha20-Poly1305 ( invalid tag length) Signed-off-by: Przemek Stekiel --- tests/suites/test_suite_psa_crypto.data | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index c8b229c7f4..4de485a0d4 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -3643,15 +3643,15 @@ aead_multipart_verify:PSA_KEY_TYPE_AES:"a0ec7b0052541d9e9c091fb7fc481409":PSA_AL PSA Multipart AEAD verify: ChaCha20 - Poly1305, invalid tag length 0 depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -aead_multipart_verify:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,0):"070000004041424344454647":"50515253c0c1c2c3c4c5c6c7":"d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116":"1ae10b594f09e26a7e902ecbd0600690":1:PSA_ERROR_NOT_SUPPORTED:PSA_ERROR_INVALID_ARGUMENT +aead_multipart_verify:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,0):"070000004041424344454647":"50515253c0c1c2c3c4c5c6c7":"d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116":"1ae10b594f09e26a7e902ecbd0600690":1:PSA_ERROR_INVALID_ARGUMENT:PSA_ERROR_INVALID_ARGUMENT PSA Multipart AEAD verify: ChaCha20 - Poly1305, invalid tag length 15 depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -aead_multipart_verify:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,15):"070000004041424344454647":"50515253c0c1c2c3c4c5c6c7":"d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116":"1ae10b594f09e26a7e902ecbd0600690":1:PSA_ERROR_NOT_SUPPORTED:PSA_ERROR_INVALID_ARGUMENT +aead_multipart_verify:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,15):"070000004041424344454647":"50515253c0c1c2c3c4c5c6c7":"d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116":"1ae10b594f09e26a7e902ecbd0600690":1:PSA_ERROR_INVALID_ARGUMENT:PSA_ERROR_INVALID_ARGUMENT PSA Multipart AEAD verify: ChaCha20 - Poly1305, invalid tag length 17 depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -aead_multipart_verify:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,17):"070000004041424344454647":"50515253c0c1c2c3c4c5c6c7":"d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116":"1ae10b594f09e26a7e902ecbd0600690":1:PSA_ERROR_NOT_SUPPORTED:PSA_ERROR_INVALID_ARGUMENT +aead_multipart_verify:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,17):"070000004041424344454647":"50515253c0c1c2c3c4c5c6c7":"d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116":"1ae10b594f09e26a7e902ecbd0600690":1:PSA_ERROR_INVALID_ARGUMENT:PSA_ERROR_INVALID_ARGUMENT PSA Multipart AEAD verify: ChaCha20 - Poly1305 (RFC7539, bad tag) depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 @@ -3951,7 +3951,7 @@ aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f9091 PSA AEAD setup: invalid algorithm (ChaCha20 - Poly1305 with short tag) depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,12):PSA_ERROR_NOT_SUPPORTED +aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,12):PSA_ERROR_INVALID_ARGUMENT PSA AEAD setup: AES - CCM, invalid tag length 0 depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES @@ -4031,15 +4031,15 @@ aead_multipart_setup:PSA_KEY_TYPE_AES:"4189351B5CAEA375A0299E81C621BF43":PSA_ALG PSA AEAD setup: ChaCha20-Poly1305, invalid tag length 0 depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,0):PSA_ERROR_NOT_SUPPORTED +aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,0):PSA_ERROR_INVALID_ARGUMENT PSA AEAD setup: ChaCha20-Poly1305, invalid tag length 15 depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,15):PSA_ERROR_NOT_SUPPORTED +aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,15):PSA_ERROR_INVALID_ARGUMENT PSA AEAD setup: ChaCha20-Poly1305, invalid tag length 17 depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,17):PSA_ERROR_NOT_SUPPORTED +aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,17):PSA_ERROR_INVALID_ARGUMENT PSA Multipart State Checks, AES - GCM depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES From 52a428b824c544125753c651ca97c49f17d9a515 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 10 Oct 2022 08:47:13 +0200 Subject: [PATCH 0528/1028] Fix MBEDTLS_SSL_TICKET_C, MBEDTLS_SSL_SESSION_TICKETS dependencies Signed-off-by: Przemek Stekiel --- include/mbedtls/check_config.h | 10 +++++----- include/mbedtls/mbedtls_config.h | 5 ++--- tests/scripts/all.sh | 12 ++++++------ 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 1bbbb4046d..52ada44e68 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -874,6 +874,11 @@ #error "MBEDTLS_SSL_TICKET_C defined, but not all prerequisites" #endif +#if defined(MBEDTLS_SSL_TICKET_C) && \ + !( defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) || defined(MBEDTLS_CHACHAPOLY_C) ) +#error "MBEDTLS_SSL_TICKET_C defined, but not all prerequisites" +#endif + #if defined(MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH) && \ MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH >= 256 #error "MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH must be less than 256" @@ -962,11 +967,6 @@ #error "MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH defined, but not all prerequisites" #endif -#if defined(MBEDTLS_SSL_SESSION_TICKETS) && \ - !( defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) || defined(MBEDTLS_CHACHAPOLY_C) ) -#error "MBEDTLS_SSL_SESSION_TICKETS defined, but not all prerequisites" -#endif - #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) && !( defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) || defined(MBEDTLS_CHACHAPOLY_C) ) #error "MBEDTLS_SSL_CONTEXT_SERIALIZATION defined, but not all prerequisites" #endif diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index e45d395bcf..23e601b32d 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1703,8 +1703,6 @@ * tickets, including authenticated encryption and key management. Example * callbacks are provided by MBEDTLS_SSL_TICKET_C. * - * Requires: MBEDTLS_GCM_C or MBEDTLS_CCM_C or MBEDTLS_CHACHAPOLY_C - * * Comment this macro to disable support for SSL session tickets */ #define MBEDTLS_SSL_SESSION_TICKETS @@ -3056,7 +3054,8 @@ * Module: library/ssl_ticket.c * Caller: * - * Requires: MBEDTLS_CIPHER_C || MBEDTLS_USE_PSA_CRYPTO + * Requires: (MBEDTLS_CIPHER_C || MBEDTLS_USE_PSA_CRYPTO) && + * (MBEDTLS_GCM_C || MBEDTLS_CCM_C || MBEDTLS_CHACHAPOLY_C) */ #define MBEDTLS_SSL_TICKET_C diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 7f83314a4a..dade439fe7 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1289,7 +1289,7 @@ component_test_tls1_2_default_stream_cipher_only () { scripts/config.py set MBEDTLS_CIPHER_NULL_CIPHER # Modules that depend on AEAD scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION - scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS + scripts/config.py unset MBEDTLS_SSL_TICKET_C make @@ -1315,7 +1315,7 @@ component_test_tls1_2_default_stream_cipher_only_use_psa () { scripts/config.py set MBEDTLS_CIPHER_NULL_CIPHER # Modules that depend on AEAD scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION - scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS + scripts/config.py unset MBEDTLS_SSL_TICKET_C make @@ -1340,7 +1340,7 @@ component_test_tls1_2_default_cbc_legacy_cipher_only () { scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER # Modules that depend on AEAD scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION - scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS + scripts/config.py unset MBEDTLS_SSL_TICKET_C make @@ -1367,7 +1367,7 @@ component_test_tls1_2_deafult_cbc_legacy_cipher_only_use_psa () { scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER # Modules that depend on AEAD scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION - scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS + scripts/config.py unset MBEDTLS_SSL_TICKET_C make @@ -1393,7 +1393,7 @@ component_test_tls1_2_default_cbc_legacy_cbc_etm_cipher_only () { scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER # Modules that depend on AEAD scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION - scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS + scripts/config.py unset MBEDTLS_SSL_TICKET_C make @@ -1420,7 +1420,7 @@ component_test_tls1_2_default_cbc_legacy_cbc_etm_cipher_only_use_psa () { scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER # Modules that depend on AEAD scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION - scripts/config.py unset MBEDTLS_SSL_SESSION_TICKETS + scripts/config.py unset MBEDTLS_SSL_TICKET_C make From 251cb632f113814f9f089d19c4ab2771ba033cf5 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 10 Oct 2022 13:02:21 +0200 Subject: [PATCH 0529/1028] Remove unused macro definition Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 1e579e99e9..985801b9a6 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -902,7 +902,6 @@ void mpi_mod_raw_cond_assign( data_t * input_X, int input_len, int is_fail ) { - #define MAX_LEN 64 mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; mbedtls_mpi_uint *buff_m = NULL; From d6441da4c50f0c88930d3fd9158c516c99c73812 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 10 Oct 2022 13:05:16 +0200 Subject: [PATCH 0530/1028] Remove redundant memory initialization When memory is allocated it is also initialized with 0. Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 985801b9a6..bfadde9d3c 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -919,7 +919,6 @@ void mpi_mod_raw_cond_assign( data_t * input_X, ASSERT_ALLOC( Y, len ); ASSERT_ALLOC( buff_m, len ); - memset( buff_m, 0, len ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, @@ -994,7 +993,6 @@ void mpi_mod_raw_cond_swap( data_t * input_X, ASSERT_ALLOC( tmp_Y, len ); ASSERT_ALLOC( buff_m, input_len ); - memset( buff_m, 0, input_len ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, From d71eb0c3ac1295f70506e97ef73b612e8e526cb6 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 10 Oct 2022 13:09:04 +0200 Subject: [PATCH 0531/1028] Use better test macro Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index bfadde9d3c..f1673814f9 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -777,7 +777,7 @@ void mpi_core_cond_assign( data_t * input_X, size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( limbs_X == limbs_Y ); + TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); ASSERT_ALLOC( X, len ); @@ -836,7 +836,7 @@ void mpi_core_cond_swap( data_t * input_X, size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( limbs_X == limbs_Y ); + TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); ASSERT_ALLOC( tmp_X, len ); @@ -912,7 +912,7 @@ void mpi_mod_raw_cond_assign( data_t * input_X, size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( limbs_X == limbs_Y ); + TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); ASSERT_ALLOC( X, len ); @@ -986,7 +986,7 @@ void mpi_mod_raw_cond_swap( data_t * input_X, size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( limbs_X == limbs_Y ); + TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); ASSERT_ALLOC( tmp_X, len ); From 68a01a6720b12ec059df7b8f7a5861a5261c7a5e Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 10 Oct 2022 11:31:58 +0200 Subject: [PATCH 0532/1028] Fix session tickets related build flags in fuzz_server and ssl_server2 Signed-off-by: Przemek Stekiel --- programs/fuzz/fuzz_server.c | 8 ++++---- programs/ssl/ssl_server2.c | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/programs/fuzz/fuzz_server.c b/programs/fuzz/fuzz_server.c index 3d11d474cd..95f43b8ffa 100644 --- a/programs/fuzz/fuzz_server.c +++ b/programs/fuzz/fuzz_server.c @@ -42,7 +42,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { mbedtls_ssl_config conf; mbedtls_ctr_drbg_context ctr_drbg; mbedtls_entropy_context entropy; -#if defined(MBEDTLS_SSL_SESSION_TICKETS) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C) mbedtls_ssl_ticket_context ticket_ctx; #endif unsigned char buf[4096]; @@ -89,7 +89,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { } mbedtls_ssl_init( &ssl ); mbedtls_ssl_config_init( &conf ); -#if defined(MBEDTLS_SSL_SESSION_TICKETS) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C) mbedtls_ssl_ticket_init( &ticket_ctx ); #endif @@ -114,7 +114,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { mbedtls_ssl_conf_alpn_protocols( &conf, alpn_list ); } #endif -#if defined(MBEDTLS_SSL_SESSION_TICKETS) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C) if( options & 0x4 ) { if( mbedtls_ssl_ticket_setup( &ticket_ctx, @@ -173,7 +173,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { } exit: -#if defined(MBEDTLS_SSL_SESSION_TICKETS) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C) mbedtls_ssl_ticket_free( &ticket_ctx ); #endif mbedtls_entropy_free( &entropy ); diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index a129de65e3..9f767c9f54 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -49,7 +49,7 @@ int main( void ) #include "mbedtls/ssl_cache.h" #endif -#if defined(MBEDTLS_SSL_TICKET_C) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C) #include "mbedtls/ssl_ticket.h" #endif @@ -1404,7 +1404,7 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_SSL_CACHE_C) mbedtls_ssl_cache_context cache; #endif -#if defined(MBEDTLS_SSL_SESSION_TICKETS) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C) mbedtls_ssl_ticket_context ticket_ctx; #endif #if defined(SNI_OPTION) @@ -1495,7 +1495,7 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_SSL_CACHE_C) mbedtls_ssl_cache_init( &cache ); #endif -#if defined(MBEDTLS_SSL_SESSION_TICKETS) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C) mbedtls_ssl_ticket_init( &ticket_ctx ); #endif #if defined(MBEDTLS_SSL_ALPN) @@ -2914,7 +2914,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_cache_set ); #endif -#if defined(MBEDTLS_SSL_SESSION_TICKETS) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C) if( opt.tickets != MBEDTLS_SSL_SESSION_TICKETS_DISABLED ) { if( ( ret = mbedtls_ssl_ticket_setup( &ticket_ctx, @@ -4210,7 +4210,7 @@ exit: #if defined(MBEDTLS_SSL_CACHE_C) mbedtls_ssl_cache_free( &cache ); #endif -#if defined(MBEDTLS_SSL_SESSION_TICKETS) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C) mbedtls_ssl_ticket_free( &ticket_ctx ); #endif #if defined(MBEDTLS_SSL_COOKIE_C) From 1f02c6c25e29875bb324866d37231a6f2cc9f326 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 10 Oct 2022 11:41:30 +0200 Subject: [PATCH 0533/1028] Reword change log entry Signed-off-by: Przemek Stekiel --- ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt b/ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt index d24f32c284..bac4910264 100644 --- a/ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt +++ b/ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt @@ -1,3 +1,4 @@ Bugfix - * Fix bugs to enable TLS 1.2 builds with - single encryption type + tests + * Fix bugs and missing dependencies when + building and testing configurations with + only one encryption type enabled in TLS 1.2. From e9c013c22218981a79d98fe7a472786b68c5fc41 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 10 Oct 2022 14:26:57 +0200 Subject: [PATCH 0534/1028] Handle if parameters are alised Signed-off-by: Gabor Mezei --- library/bignum_core.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/library/bignum_core.c b/library/bignum_core.c index 233b22ded6..847ed6eb0f 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -167,6 +167,9 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, size_t limbs, unsigned char assign ) { + if( X == A ) + return; + mbedtls_ct_mpi_uint_cond_assign( limbs, X, A, assign ); } @@ -175,6 +178,9 @@ void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, size_t limbs, unsigned char swap ) { + if( X == Y ) + return; + /* all-bits 1 if swap is 1, all-bits 0 if swap is 0 */ mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( swap ); From d7edb1d22569dd7b92593983a158f3876883873e Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 10 Oct 2022 14:32:09 +0200 Subject: [PATCH 0535/1028] Initialize variable Signed-off-by: Gabor Mezei --- library/constant_time.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/constant_time.c b/library/constant_time.c index d01998bd72..2b62bc176b 100644 --- a/library/constant_time.c +++ b/library/constant_time.c @@ -708,7 +708,8 @@ int mbedtls_mpi_safe_cond_swap( mbedtls_mpi *X, mbedtls_mpi *Y, unsigned char swap ) { - int ret, s; + int ret = 0; + int s; MPI_VALIDATE_RET( X != NULL ); MPI_VALIDATE_RET( Y != NULL ); From 21092062f39d23287e6d3875dcd4d6d6f1639309 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 10 Oct 2022 21:21:31 +0800 Subject: [PATCH 0536/1028] Restrict cipher suite validation to TLS1.3 Signed-off-by: Jerry Yu --- library/ssl_tls.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index d32d58e2df..9741a6ef5f 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1361,7 +1361,6 @@ void mbedtls_ssl_conf_session_cache( mbedtls_ssl_config *conf, int mbedtls_ssl_set_session( mbedtls_ssl_context *ssl, const mbedtls_ssl_session *session ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - const mbedtls_ssl_ciphersuite_t *ciphersuite_info; if( ssl == NULL || session == NULL || @@ -1374,15 +1373,22 @@ int mbedtls_ssl_set_session( mbedtls_ssl_context *ssl, const mbedtls_ssl_session if( ssl->handshake->resume == 1 ) return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); - ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( session->ciphersuite ); - if( mbedtls_ssl_validate_ciphersuite( ssl, ciphersuite_info, - session->tls_version, - session->tls_version ) != 0 ) +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + if( session->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) { - MBEDTLS_SSL_DEBUG_MSG( 4, ( "%d is not a valid ciphersuite.", - session->ciphersuite ) ); - return( MBEDTLS_ERR_SSL_INVALID_MAC ); + const mbedtls_ssl_ciphersuite_t *ciphersuite_info = + mbedtls_ssl_ciphersuite_from_id( session->ciphersuite ); + + if( mbedtls_ssl_validate_ciphersuite( + ssl, ciphersuite_info, MBEDTLS_SSL_VERSION_TLS1_3, + MBEDTLS_SSL_VERSION_TLS1_3 ) != 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( 4, ( "%d is not a valid TLS 1.3 ciphersuite.", + session->ciphersuite ) ); + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + } } +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ if( ( ret = mbedtls_ssl_session_copy( ssl->session_negotiate, session ) ) != 0 ) From a67a1a3ebc170a4d4dbe0d054159103a75698d07 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 10 Oct 2022 15:25:59 +0200 Subject: [PATCH 0537/1028] Remove the 'is_fail' parameter from the test functions Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.data | 36 ++++++++++++------------ tests/suites/test_suite_mpi.function | 42 ++++++++++++++++++++-------- 2 files changed, 48 insertions(+), 30 deletions(-) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 581f2f4d2a..e7d0665e99 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -682,58 +682,58 @@ mbedtls_mpi_core_lt_ct: x>y (alternating limbs) mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 mbedtls_mpi_core_cond_assign: 1 limb -mpi_core_cond_assign:"FFFFFFFF":"11111111":4:0 +mpi_core_cond_assign:"FFFFFFFF":"11111111":4 mbedtls_mpi_core_cond_assign: more limbs -mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16:0 +mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 mbedtls_mpi_core_cond_assign: copy 256 bytes of limbs -mpi_core_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"6E3173EEAC8D68A5AB53D259F32D9E9C298FD2C4FAD3BEE9151DC103EA2382F5480C7D11F451C060A1E3D887E05A620EF6395763CB7A40FC473DD0771456A018E18635EA971C36DCAD09D60E8BD0E2E0CCD1AECB8BE0ABA881DBE60163F6C45947EC0B05FDAAA3DF944627DD4FACBAD3FF2AB4B99D91E548C06A4AF320A9CA0D2FD0CB19B90B9D6A8BF59CB631DD925B6DEA621FE962099D3D0BED6B13C0C546DC6B563A7FC63B1B77D277897DD7B9DF28C4C9213A183B83D982964C6AD8192CE7354B11ED727EDEF85074C46E4E2E6C1728FB7980385CDB36512F927847C6A14A118624ABC12B09DBEE60D651B5431AAD982228C61655EABB80C263871AE1CF":256:0 +mpi_core_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"6E3173EEAC8D68A5AB53D259F32D9E9C298FD2C4FAD3BEE9151DC103EA2382F5480C7D11F451C060A1E3D887E05A620EF6395763CB7A40FC473DD0771456A018E18635EA971C36DCAD09D60E8BD0E2E0CCD1AECB8BE0ABA881DBE60163F6C45947EC0B05FDAAA3DF944627DD4FACBAD3FF2AB4B99D91E548C06A4AF320A9CA0D2FD0CB19B90B9D6A8BF59CB631DD925B6DEA621FE962099D3D0BED6B13C0C546DC6B563A7FC63B1B77D277897DD7B9DF28C4C9213A183B83D982964C6AD8192CE7354B11ED727EDEF85074C46E4E2E6C1728FB7980385CDB36512F927847C6A14A118624ABC12B09DBEE60D651B5431AAD982228C61655EABB80C263871AE1CF":256 mbedtls_mpi_core_cond_assign: copy half of the limbs -mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8:1 +mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 mbedtls_mpi_core_cond_swap: same value -mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":4:0 +mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":4 mbedtls_mpi_core_cond_swap: 1 limb -mpi_core_cond_swap:"FFFFFFFF":"11111111":4:0 +mpi_core_cond_swap:"FFFFFFFF":"11111111":4 mbedtls_mpi_core_cond_swap: more limbs -mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16:0 +mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 mbedtls_mpi_core_cond_swap: copy 256 bytes of limbs -mpi_core_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"9FBBA284460D8EAB5E0D66B634BD18FBA58C0C25417DD637526A7622C6425B46E09AEFBB8C2340AC823DFE990A62C85DB23BCDBEA734134606CEEB4BCF7444569D5EC4E32341ED09D7A5D0BB8B11D7B726BAECCF37D4FC1BEBD892CADD7BE9E093343C1A68D7A188DFE145C1EDBD8048B24E20A076F981D75ABE44318ADC40ED316C444774B6A90D3EE49557315AA6FAB162A498C0B2E2C15BD94186A665E12DDC39211583FA5F21218A3B46999FEBA4DFF454FB6ED35B8F3AE5F8EA840838BD76006DA112F85EDAA2CC07518FFC9724D5695BAF74F16C8D1A3A06029D2F5C1023D9E8A84D1267BD9AF82D1F5F77092D34BE4E8C4D1EA8C58F90B094DCFD6920":256:0 +mpi_core_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"9FBBA284460D8EAB5E0D66B634BD18FBA58C0C25417DD637526A7622C6425B46E09AEFBB8C2340AC823DFE990A62C85DB23BCDBEA734134606CEEB4BCF7444569D5EC4E32341ED09D7A5D0BB8B11D7B726BAECCF37D4FC1BEBD892CADD7BE9E093343C1A68D7A188DFE145C1EDBD8048B24E20A076F981D75ABE44318ADC40ED316C444774B6A90D3EE49557315AA6FAB162A498C0B2E2C15BD94186A665E12DDC39211583FA5F21218A3B46999FEBA4DFF454FB6ED35B8F3AE5F8EA840838BD76006DA112F85EDAA2CC07518FFC9724D5695BAF74F16C8D1A3A06029D2F5C1023D9E8A84D1267BD9AF82D1F5F77092D34BE4E8C4D1EA8C58F90B094DCFD6920":256 mbedtls_mpi_core_cond_swap: copy half of the limbs -mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8:1 +mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 mbedtls_mpi_mod_raw_cond_assign: 1 limb -mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":4:0 +mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":4 mbedtls_mpi_mod_raw_cond_assign: more limbs -mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16:0 +mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 mbedtls_mpi_mod_raw_cond_assign: copy 256 bytes of limbs -mpi_mod_raw_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"38AAE958A11CCE9F4B4D0EDF64D31DF6FEA451D56B3BAB3DB796739B96C5C9C619DAE2AD5394D41FC3746A4F35BA186F02D908E900A2BA5AC95D494378A6A6FC619801DA3F3B4C5BAAA49B16DD3B2EF9AFB4B82449F90628E1438405D321ACA8476EA3E7124D46D5F25CD57143F2C6A022F7D6EBF7C726AEF56D97E3944EACD627A814D2F546F5A659DD316AE57584BC46F0D976D537E78AB09D2599BB0F073366C541CEF4B6D76FE72D000A01167FCE506B805B295C12BFCAA3B768D8E6AA50D939BDB519A94000B7B18B2D36AE888EDC33DC933E9612D112BB7A95D0748F175E69F00B9D8470C64E27B4FF39551B09FF046F864E9FC22A3E1F73570DF31214":256:0 +mpi_mod_raw_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"38AAE958A11CCE9F4B4D0EDF64D31DF6FEA451D56B3BAB3DB796739B96C5C9C619DAE2AD5394D41FC3746A4F35BA186F02D908E900A2BA5AC95D494378A6A6FC619801DA3F3B4C5BAAA49B16DD3B2EF9AFB4B82449F90628E1438405D321ACA8476EA3E7124D46D5F25CD57143F2C6A022F7D6EBF7C726AEF56D97E3944EACD627A814D2F546F5A659DD316AE57584BC46F0D976D537E78AB09D2599BB0F073366C541CEF4B6D76FE72D000A01167FCE506B805B295C12BFCAA3B768D8E6AA50D939BDB519A94000B7B18B2D36AE888EDC33DC933E9612D112BB7A95D0748F175E69F00B9D8470C64E27B4FF39551B09FF046F864E9FC22A3E1F73570DF31214":256 mbedtls_mpi_mod_raw_cond_assign: copy half of the limbs -mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8:1 +mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 mbedtls_mpi_mod_raw_cond_swap: same value -mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4:0 +mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4 mbedtls_mpi_mod_raw_cond_swap: 1 limb -mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":4:0 +mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":4 mbedtls_mpi_mod_raw_cond_swap: more limbs -mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16:0 +mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 mbedtls_mpi_mod_raw_cond_swap: copy 256 bytes of limbs -mpi_mod_raw_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"A6154F6146E5AE06C705EF228DB022B4C0C908D9FF11E83CB0836A37DD11D72B5AE0D053B6D0B376B015E3B09DCC04644F12CBCBD0407300DEDA1D817E99A030BA128A57494F6C6BC650A840B70B3A1CDF8A75A387184C93DEF02DD538C60E8764AD2E4600952E09D24DC5524AB34070D25D204174D23B2BFDACBC67F8973C47FAF01CE9810130934AB6A94C5E6D223EDEAE904FD18368231AC3113C2CD73E879124CE21FC379C695C41D6861F5FB957570C3E6EF61F4FBA5D9945FB42931FC8E68370177DB313BEB7AF79B1F0F872368946FF35BD059E60677342EB3A0431714044AD508CD244B7CE200C5DC75B3BC7846A4CF0436C9288F2153124C9283171":256:0 +mpi_mod_raw_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"A6154F6146E5AE06C705EF228DB022B4C0C908D9FF11E83CB0836A37DD11D72B5AE0D053B6D0B376B015E3B09DCC04644F12CBCBD0407300DEDA1D817E99A030BA128A57494F6C6BC650A840B70B3A1CDF8A75A387184C93DEF02DD538C60E8764AD2E4600952E09D24DC5524AB34070D25D204174D23B2BFDACBC67F8973C47FAF01CE9810130934AB6A94C5E6D223EDEAE904FD18368231AC3113C2CD73E879124CE21FC379C695C41D6861F5FB957570C3E6EF61F4FBA5D9945FB42931FC8E68370177DB313BEB7AF79B1F0F872368946FF35BD059E60677342EB3A0431714044AD508CD244B7CE200C5DC75B3BC7846A4CF0436C9288F2153124C9283171":256 mbedtls_mpi_mod_raw_cond_swap: copy half of the limbs -mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8:1 +mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 Base test mbedtls_mpi_lt_mpi_ct #1 mpi_lt_mpi_ct:1:"2B5":1:"2B5":0:0 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index f1673814f9..6ac36c40a1 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -766,8 +766,7 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_assign( data_t * input_X, data_t * input_Y, - int input_len, - int is_fail ) + int input_len ) { mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; @@ -776,6 +775,7 @@ void mpi_core_cond_assign( data_t * input_X, size_t limbs = limbs_X; size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_len = copy_limbs * sizeof( mbedtls_mpi_uint ); TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -809,8 +809,13 @@ void mpi_core_cond_assign( data_t * input_X, TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - if( is_fail ) + /* Check if the given length is copied even it is smaller + than the length of the given MPIs. */ + if( copy_limbs != limbs ) + { + ASSERT_COMPARE( X, copy_len, Y, copy_len ); TEST_ASSERT( memcmp( X, Y, len ) != 0 ); + } else ASSERT_COMPARE( X, len, Y, len ); @@ -823,8 +828,7 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_swap( data_t * input_X, data_t * input_Y, - int input_len, - int is_fail ) + int input_len ) { mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; @@ -835,6 +839,7 @@ void mpi_core_cond_swap( data_t * input_X, size_t limbs = limbs_X; size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_len = copy_limbs * sizeof( mbedtls_mpi_uint ); TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -875,8 +880,12 @@ void mpi_core_cond_swap( data_t * input_X, TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - if( is_fail ) + /* Check if the given length is copied even it is smaller + than the length of the given MPIs. */ + if( copy_limbs != limbs ) { + ASSERT_COMPARE( X, copy_len, tmp_Y, copy_len ); + ASSERT_COMPARE( Y, copy_len, tmp_X, copy_len ); TEST_ASSERT( memcmp( X, tmp_X, len ) != 0 ); TEST_ASSERT( memcmp( X, tmp_Y, len ) != 0 ); TEST_ASSERT( memcmp( Y, tmp_X, len ) != 0 ); @@ -899,8 +908,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_assign( data_t * input_X, data_t * input_Y, - int input_len, - int is_fail ) + int input_len ) { mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; @@ -911,6 +919,7 @@ void mpi_mod_raw_cond_assign( data_t * input_X, size_t limbs = limbs_X; size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_len = copy_limbs * sizeof( mbedtls_mpi_uint ); TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -954,8 +963,13 @@ void mpi_mod_raw_cond_assign( data_t * input_X, TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - if( is_fail ) + /* Check if the given length is copied even it is smaller + than the length of the given MPIs. */ + if( copy_limbs != limbs ) + { + ASSERT_COMPARE( X, copy_len, Y, copy_len ); TEST_ASSERT( memcmp( X, Y, len ) != 0 ); + } else ASSERT_COMPARE( X, len, Y, len ); @@ -971,8 +985,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_swap( data_t * input_X, data_t * input_Y, - int input_len, - int is_fail ) + int input_len ) { mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; @@ -985,6 +998,7 @@ void mpi_mod_raw_cond_swap( data_t * input_X, size_t limbs = limbs_X; size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_len = copy_limbs * sizeof( mbedtls_mpi_uint ); TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -1031,8 +1045,12 @@ void mpi_mod_raw_cond_swap( data_t * input_X, TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - if( is_fail ) + /* Check if the given length is copied even it is smaller + than the length of the given MPIs. */ + if( copy_limbs != limbs ) { + ASSERT_COMPARE( X, copy_len, tmp_Y, copy_len ); + ASSERT_COMPARE( Y, copy_len, tmp_X, copy_len ); TEST_ASSERT( memcmp( X, tmp_X, len ) != 0 ); TEST_ASSERT( memcmp( X, tmp_Y, len ) != 0 ); TEST_ASSERT( memcmp( Y, tmp_X, len ) != 0 ); From 44ba2f6db919fc0e7008e4eb2c9b546e9c6b78c6 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 10 Oct 2022 15:32:12 +0200 Subject: [PATCH 0538/1028] Add more test cases Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.data | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index e7d0665e99..860546edd4 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -684,9 +684,15 @@ mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 mbedtls_mpi_core_cond_assign: 1 limb mpi_core_cond_assign:"FFFFFFFF":"11111111":4 -mbedtls_mpi_core_cond_assign: more limbs +mbedtls_mpi_core_cond_assign: more limbs #1 mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 +mbedtls_mpi_core_cond_assign: more limbs #2 +mpi_core_cond_assign:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 + +mbedtls_mpi_core_cond_assign: more limbs #3 +mpi_core_cond_assign:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 + mbedtls_mpi_core_cond_assign: copy 256 bytes of limbs mpi_core_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"6E3173EEAC8D68A5AB53D259F32D9E9C298FD2C4FAD3BEE9151DC103EA2382F5480C7D11F451C060A1E3D887E05A620EF6395763CB7A40FC473DD0771456A018E18635EA971C36DCAD09D60E8BD0E2E0CCD1AECB8BE0ABA881DBE60163F6C45947EC0B05FDAAA3DF944627DD4FACBAD3FF2AB4B99D91E548C06A4AF320A9CA0D2FD0CB19B90B9D6A8BF59CB631DD925B6DEA621FE962099D3D0BED6B13C0C546DC6B563A7FC63B1B77D277897DD7B9DF28C4C9213A183B83D982964C6AD8192CE7354B11ED727EDEF85074C46E4E2E6C1728FB7980385CDB36512F927847C6A14A118624ABC12B09DBEE60D651B5431AAD982228C61655EABB80C263871AE1CF":256 @@ -699,9 +705,15 @@ mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":4 mbedtls_mpi_core_cond_swap: 1 limb mpi_core_cond_swap:"FFFFFFFF":"11111111":4 -mbedtls_mpi_core_cond_swap: more limbs +mbedtls_mpi_core_cond_swap: more limbs #1 mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 +mbedtls_mpi_core_cond_swap: more limbs #2 +mpi_core_cond_swap:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 + +mbedtls_mpi_core_cond_swap: more limbs #3 +mpi_core_cond_swap:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 + mbedtls_mpi_core_cond_swap: copy 256 bytes of limbs mpi_core_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"9FBBA284460D8EAB5E0D66B634BD18FBA58C0C25417DD637526A7622C6425B46E09AEFBB8C2340AC823DFE990A62C85DB23BCDBEA734134606CEEB4BCF7444569D5EC4E32341ED09D7A5D0BB8B11D7B726BAECCF37D4FC1BEBD892CADD7BE9E093343C1A68D7A188DFE145C1EDBD8048B24E20A076F981D75ABE44318ADC40ED316C444774B6A90D3EE49557315AA6FAB162A498C0B2E2C15BD94186A665E12DDC39211583FA5F21218A3B46999FEBA4DFF454FB6ED35B8F3AE5F8EA840838BD76006DA112F85EDAA2CC07518FFC9724D5695BAF74F16C8D1A3A06029D2F5C1023D9E8A84D1267BD9AF82D1F5F77092D34BE4E8C4D1EA8C58F90B094DCFD6920":256 @@ -711,9 +723,15 @@ mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA987 mbedtls_mpi_mod_raw_cond_assign: 1 limb mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":4 -mbedtls_mpi_mod_raw_cond_assign: more limbs +mbedtls_mpi_mod_raw_cond_assign: more limbs #1 mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 +mbedtls_mpi_mod_raw_cond_assign: more limbs #2 +mpi_mod_raw_cond_assign:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 + +mbedtls_mpi_mod_raw_cond_assign: more limbs #3 +mpi_mod_raw_cond_assign:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 + mbedtls_mpi_mod_raw_cond_assign: copy 256 bytes of limbs mpi_mod_raw_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"38AAE958A11CCE9F4B4D0EDF64D31DF6FEA451D56B3BAB3DB796739B96C5C9C619DAE2AD5394D41FC3746A4F35BA186F02D908E900A2BA5AC95D494378A6A6FC619801DA3F3B4C5BAAA49B16DD3B2EF9AFB4B82449F90628E1438405D321ACA8476EA3E7124D46D5F25CD57143F2C6A022F7D6EBF7C726AEF56D97E3944EACD627A814D2F546F5A659DD316AE57584BC46F0D976D537E78AB09D2599BB0F073366C541CEF4B6D76FE72D000A01167FCE506B805B295C12BFCAA3B768D8E6AA50D939BDB519A94000B7B18B2D36AE888EDC33DC933E9612D112BB7A95D0748F175E69F00B9D8470C64E27B4FF39551B09FF046F864E9FC22A3E1F73570DF31214":256 @@ -726,9 +744,15 @@ mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4 mbedtls_mpi_mod_raw_cond_swap: 1 limb mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":4 -mbedtls_mpi_mod_raw_cond_swap: more limbs +mbedtls_mpi_mod_raw_cond_swap: more limbs #1 mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 +mbedtls_mpi_mod_raw_cond_swap: more limbs #2 +mpi_mod_raw_cond_swap:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 + +mbedtls_mpi_mod_raw_cond_swap: more limbs #3 +mpi_mod_raw_cond_swap:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 + mbedtls_mpi_mod_raw_cond_swap: copy 256 bytes of limbs mpi_mod_raw_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"A6154F6146E5AE06C705EF228DB022B4C0C908D9FF11E83CB0836A37DD11D72B5AE0D053B6D0B376B015E3B09DCC04644F12CBCBD0407300DEDA1D817E99A030BA128A57494F6C6BC650A840B70B3A1CDF8A75A387184C93DEF02DD538C60E8764AD2E4600952E09D24DC5524AB34070D25D204174D23B2BFDACBC67F8973C47FAF01CE9810130934AB6A94C5E6D223EDEAE904FD18368231AC3113C2CD73E879124CE21FC379C695C41D6861F5FB957570C3E6EF61F4FBA5D9945FB42931FC8E68370177DB313BEB7AF79B1F0F872368946FF35BD059E60677342EB3A0431714044AD508CD244B7CE200C5DC75B3BC7846A4CF0436C9288F2153124C9283171":256 From 6916e7052112e1bbef36bf3bedcae621446bb4d0 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 10 Oct 2022 21:33:51 +0800 Subject: [PATCH 0539/1028] fix various issues - adjust guards. Remove duplicate guards and adjust format. - Return success at function end. Not `ret` - change input len Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 18 +++++++++--------- programs/ssl/ssl_server2.c | 8 ++------ 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index f90e66ea7d..ee4c24d213 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -837,7 +837,7 @@ static int ssl_tls13_write_binder( mbedtls_ssl_context *ssl, /* Get current state of handshake transcript. */ ret = mbedtls_ssl_get_handshake_transcript( ssl, mbedtls_hash_info_md_from_psa( hash_alg ), - transcript, MBEDTLS_MD_MAX_SIZE, &transcript_len ); + transcript, sizeof( transcript ), &transcript_len ); if( ret != 0 ) return( ret ); @@ -853,7 +853,7 @@ static int ssl_tls13_write_binder( mbedtls_ssl_context *ssl, *out_len = 1 + binder_len; - return( ret ); + return( 0 ); } /* @@ -918,12 +918,11 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( if( ssl_tls13_ticket_get_identity( ssl, &hash_alg, &identity, &identity_len ) == 0 ) { - #if defined(MBEDTLS_HAVE_TIME) - uint32_t obfuscated_ticket_age = 0; mbedtls_time_t now = mbedtls_time( NULL ); mbedtls_ssl_session *session = ssl->session_negotiate; - obfuscated_ticket_age = (uint32_t)( now - session->ticket_received ); + uint32_t obfuscated_ticket_age = + (uint32_t)( now - session->ticket_received ); obfuscated_ticket_age *= 1000; obfuscated_ticket_age += session->ticket_age_add; @@ -963,7 +962,7 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( /* Take into account the two bytes for the length of the binders. */ l_binders_len += 2; - /* Check if there are enough space for binders */ + /* Check if there is enough space for binders */ MBEDTLS_SSL_CHK_BUF_PTR( p, end, l_binders_len ); /* @@ -1105,11 +1104,12 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, if( ret != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_set_hs_psk", ret ); + return( ret ); } - else - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PRE_SHARED_KEY; - return( ret ); + ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PRE_SHARED_KEY; + + return( 0 ); } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index a209eef33d..a68136c171 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -1353,8 +1353,7 @@ int report_cid_usage( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ -#if defined(MBEDTLS_SSL_SESSION_TICKETS) && \ - defined(MBEDTLS_HAVE_TIME) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_HAVE_TIME) /* Functions for session ticket tests */ int dummy_ticket_write( void *p_ticket, const mbedtls_ssl_session *session, unsigned char *start, const unsigned char *end, @@ -1400,7 +1399,6 @@ int dummy_ticket_parse( void *p_ticket, mbedtls_ssl_session *session, return( MBEDTLS_ERR_SSL_INVALID_MAC ); case 2: return( MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED ); -#if defined(MBEDTLS_HAVE_TIME) case 3: session->start = mbedtls_time( NULL ) + 10; break; @@ -1416,15 +1414,13 @@ int dummy_ticket_parse( void *p_ticket, mbedtls_ssl_session *session, session->ticket_age_add -= 1000; #endif break; -#endif default: break; } return( ret ); } -#endif /* MBEDTLS_SSL_SESSION_TICKETS && - MBEDTLS_HAVE_TIME */ +#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_HAVE_TIME */ int main( int argc, char *argv[] ) { From 03aa174d7c42e02c1a122c5ee6b43af2965319f5 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 10 Oct 2022 21:48:37 +0800 Subject: [PATCH 0540/1028] Improve test message and title Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 9 +++-- tests/opt-testcases/tls13-kex-modes.sh | 48 +++++++++++++------------- 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 08f48b8735..cc65703182 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -186,8 +186,7 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( if( now < session->start ) { MBEDTLS_SSL_DEBUG_MSG( - 3, ( "Ticket expired: Invalid ticket start time " - "( now=%" MBEDTLS_PRINTF_LONGLONG + 3, ( "Invalid ticket start time ( now=%" MBEDTLS_PRINTF_LONGLONG ", start=%" MBEDTLS_PRINTF_LONGLONG " )", (long long)now, (long long)session->start ) ); goto exit; @@ -209,7 +208,7 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( if( age_in_s > 604800 ) { MBEDTLS_SSL_DEBUG_MSG( - 3, ( "Ticket expired: Ticket age exceed limitation ticket_age=%lu", + 3, ( "Ticket age exceed limitation ticket_age=%lu", (long unsigned int)age_in_s ) ); goto exit; } @@ -232,8 +231,8 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( age_diff_in_ms > MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE ) { MBEDTLS_SSL_DEBUG_MSG( - 3, ( "Ticket expired: Ticket age outside tolerance window " - "( diff=%d )", (int)age_diff_in_ms ) ); + 3, ( "Ticket age outside tolerance window ( diff=%d )", + (int)age_diff_in_ms ) ); goto exit; } diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index dd907c1d41..6c0489af0b 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -106,7 +106,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHAN MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Multiple PSKs: authentication failed" \ +run_test "TLS 1.3 m->m: Session resumption failure, ticket authentication failed." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=1" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ 0 \ @@ -117,9 +117,9 @@ run_test "TLS 1.3 m->m: Multiple PSKs: authentication failed" \ -S "key exchange mode: psk$" \ -s "ticket is not authentic" \ -S "ticket is expired" \ - -S "Ticket expired: Invalid ticket start time" \ - -S "Ticket expired: Ticket age exceed limitation" \ - -S "Ticket expired: Ticket age outside tolerance window" + -S "Invalid ticket start time" \ + -S "Ticket age exceed limitation" \ + -S "Ticket age outside tolerance window" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME @@ -127,7 +127,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHAN MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Multiple PSKs: ticket expired, m->m" \ +run_test "TLS 1.3 m->m: Session resumption failure, ticket expired." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=2" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ 0 \ @@ -138,9 +138,9 @@ run_test "TLS 1.3 m->m: Multiple PSKs: ticket expired, m->m" \ -S "key exchange mode: psk$" \ -S "ticket is not authentic" \ -s "ticket is expired" \ - -S "Ticket expired: Invalid ticket start time" \ - -S "Ticket expired: Ticket age exceed limitation" \ - -S "Ticket expired: Ticket age outside tolerance window" + -S "Invalid ticket start time" \ + -S "Ticket age exceed limitation" \ + -S "Ticket age outside tolerance window" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME @@ -148,7 +148,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHAN MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Multiple PSKs: Invalid start time check, m->m" \ +run_test "TLS 1.3 m->m: Session resumption failure, invalid start time." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=3" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ 0 \ @@ -159,9 +159,9 @@ run_test "TLS 1.3 m->m: Multiple PSKs: Invalid start time check, m->m" \ -S "key exchange mode: psk$" \ -S "ticket is not authentic" \ -S "ticket is expired" \ - -s "Ticket expired: Invalid ticket start time" \ - -S "Ticket expired: Ticket age exceed limitation" \ - -S "Ticket expired: Ticket age outside tolerance window" + -s "Invalid ticket start time" \ + -S "Ticket age exceed limitation" \ + -S "Ticket age outside tolerance window" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME @@ -169,7 +169,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHAN MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Multiple PSKs: Max age check, m->m" \ +run_test "TLS 1.3 m->m: Session resumption failure, ticket expired. too old" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=4" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ 0 \ @@ -180,9 +180,9 @@ run_test "TLS 1.3 m->m: Multiple PSKs: Max age check, m->m" \ -S "key exchange mode: psk$" \ -S "ticket is not authentic" \ -S "ticket is expired" \ - -S "Ticket expired: Invalid ticket start time" \ - -s "Ticket expired: Ticket age exceed limitation" \ - -S "Ticket expired: Ticket age outside tolerance window" + -S "Invalid ticket start time" \ + -s "Ticket age exceed limitation" \ + -S "Ticket age outside tolerance window" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME @@ -190,7 +190,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHAN MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Multiple PSKs: Tolerance window bottom check." \ +run_test "TLS 1.3 m->m: Session resumption failure, age outside tolerance window, too young." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=5" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ 0 \ @@ -201,9 +201,9 @@ run_test "TLS 1.3 m->m: Multiple PSKs: Tolerance window bottom check." \ -S "key exchange mode: psk$" \ -S "ticket is not authentic" \ -S "ticket is expired" \ - -S "Ticket expired: Invalid ticket start time" \ - -S "Ticket expired: Ticket age exceed limitation" \ - -s "Ticket expired: Ticket age outside tolerance window" + -S "Invalid ticket start time" \ + -S "Ticket age exceed limitation" \ + -s "Ticket age outside tolerance window" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME @@ -211,7 +211,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHAN MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Multiple PSKs: Tolerance window top check." \ +run_test "TLS 1.3 m->m: Session resumption failure, age outside tolerance window, too old." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=6" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ 0 \ @@ -222,9 +222,9 @@ run_test "TLS 1.3 m->m: Multiple PSKs: Tolerance window top check." \ -S "key exchange mode: psk$" \ -S "ticket is not authentic" \ -S "ticket is expired" \ - -S "Ticket expired: Invalid ticket start time" \ - -S "Ticket expired: Ticket age exceed limitation" \ - -s "Ticket expired: Ticket age outside tolerance window" + -S "Invalid ticket start time" \ + -S "Ticket age exceed limitation" \ + -s "Ticket age outside tolerance window" requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C From 4f77ecf40957aca1ad8519b5ccf05caf4043b8bc Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 10 Oct 2022 22:10:08 +0800 Subject: [PATCH 0541/1028] disable session resumption when ticket expired Signed-off-by: Jerry Yu --- library/ssl_client.c | 51 ++++++++++++++++++-------------------- library/ssl_tls13_client.c | 3 ++- 2 files changed, 26 insertions(+), 28 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 73a854d61b..2ed6ce6853 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -720,6 +720,30 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) int ret; size_t session_id_len; +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ + defined(MBEDTLS_HAVE_TIME) + /* Check if a tls13 ticket has been configured. */ + if( ssl->session_negotiate->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && + ssl->handshake->resume != 0 && + ssl->session_negotiate != NULL && + ssl->session_negotiate->ticket != NULL ) + { + mbedtls_time_t now = mbedtls_time( NULL ); + if( ssl->session_negotiate->ticket_received > now || + (uint64_t)( now - ssl->session_negotiate->ticket_received ) + > ssl->session_negotiate->ticket_lifetime ) + { + /* Without valid ticket, disable session resumption.*/ + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "Ticket expired, disable session resumption" ) ); + ssl->handshake->resume = 0; + } + } +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && + MBEDTLS_SSL_SESSION_TICKETS && + MBEDTLS_HAVE_TIME */ + if( ssl->conf->f_rng == NULL ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "no RNG provided" ) ); @@ -843,33 +867,6 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) } } -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_SSL_SESSION_TICKETS) && \ - defined(MBEDTLS_HAVE_TIME) - /* Check if a tls13 ticket has been configured. */ - if( ssl->session_negotiate->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && - ssl->handshake->resume != 0 && - ssl->session_negotiate != NULL && - ssl->session_negotiate->ticket != NULL ) - { - mbedtls_time_t now = mbedtls_time( NULL ); - if( ssl->session_negotiate->ticket_received > now || - (uint64_t)( now - ssl->session_negotiate->ticket_received ) - > ssl->session_negotiate->ticket_lifetime ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket expired" ) ); - mbedtls_platform_zeroize( ssl->session_negotiate->ticket, - ssl->session_negotiate->ticket_len ); - mbedtls_free( ssl->session_negotiate->ticket ); - ssl->session_negotiate->ticket = NULL; - ssl->session_negotiate->ticket_len = 0; - } - - } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && - MBEDTLS_SSL_SESSION_TICKETS && - MBEDTLS_HAVE_TIME */ - return( 0 ); } diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index ee4c24d213..6227f3d0b0 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -681,7 +681,8 @@ static psa_algorithm_t ssl_tls13_get_ciphersuite_hash_alg( int ciphersuite ) static int ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl ) { mbedtls_ssl_session *session = ssl->session_negotiate; - return( session != NULL && session->ticket != NULL ); + return( ssl->handshake->resume && + session != NULL && session->ticket != NULL ); } MBEDTLS_CHECK_RETURN_CRITICAL From 6eaa75a79d5ed39632a42cd94970802c09aa24a1 Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Mon, 10 Oct 2022 19:55:40 +0200 Subject: [PATCH 0542/1028] fixed docstring sentence Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index babba5d15b..e0c479350c 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -170,7 +170,6 @@ def trace_exception(e: Exception, file=sys.stderr) -> None: def main() -> int: """ Main with command line arguments. - returns 1 when read_driver_descriptions returns False """ def_arg_mbedtls_root = build_tree.guess_mbedtls_root() From cf42536d4e1c69c92b6fafa62744372fda611593 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Mon, 10 Oct 2022 22:52:30 +0200 Subject: [PATCH 0543/1028] Add a note that config.py must remain compatible with Python 3.4 Signed-off-by: Gilles Peskine --- scripts/config.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/config.py b/scripts/config.py index f045f98f95..470c63dc8f 100755 --- a/scripts/config.py +++ b/scripts/config.py @@ -7,6 +7,11 @@ Basic usage, to read the Mbed TLS or Mbed Crypto configuration: 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 ## From c5772a194e9ec52c3060979de0f966b24083da22 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 9 Oct 2022 21:14:09 +0200 Subject: [PATCH 0544/1028] mbedtls_test_read_mpi_core: allow odd number of hex digits Test functions must now take a char* argument rather than data_t*. This does not affect existing test data. Signed-off-by: Gilles Peskine --- tests/include/test/helpers.h | 5 +++-- tests/src/helpers.c | 33 +++++++++++++++++++++++++--- tests/suites/test_suite_mpi.data | 8 +++---- tests/suites/test_suite_mpi.function | 2 +- 4 files changed, 38 insertions(+), 10 deletions(-) diff --git a/tests/include/test/helpers.h b/tests/include/test/helpers.h index fe3b787fda..6ec967e184 100644 --- a/tests/include/test/helpers.h +++ b/tests/include/test/helpers.h @@ -298,12 +298,13 @@ void mbedtls_test_err_add_check( int high, int low, * of limbs is 0. * \param[out] plimbs The address where the number of limbs will be stored. * \param[in] input The test argument to read. - * It is interpreted as a big-endian integer in base 256. + * It is interpreted as a hexadecimal representation + * of a non-negative integer. * * \return \c 0 on success, an \c MBEDTLS_ERR_MPI_xxx error code otherwise. */ int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, - const data_t *input ); + const char *input ); /** Read an MPI from a hexadecimal string. * diff --git a/tests/src/helpers.c b/tests/src/helpers.c index 557c13c336..b7c83646c1 100644 --- a/tests/src/helpers.c +++ b/tests/src/helpers.c @@ -348,19 +348,46 @@ void mbedtls_test_err_add_check( int high, int low, #include "bignum_core.h" int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, - const data_t *input ) + const char *input ) { /* Sanity check */ if( *pX != NULL ) return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - *plimbs = CHARS_TO_LIMBS( input->len ); + size_t hex_len = strlen( input ); + size_t byte_len = ( hex_len + 1 ) / 2; + *plimbs = CHARS_TO_LIMBS( byte_len ); if( *plimbs == 0 ) return( 0 ); + *pX = mbedtls_calloc( *plimbs, sizeof( **pX ) ); if( *pX == NULL ) return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); - return( mbedtls_mpi_core_read_be( *pX, *plimbs, input->x, input->len ) ); + + unsigned char *byte_start = ( unsigned char * ) *pX; + if( byte_len % sizeof( mbedtls_mpi_uint ) != 0 ) + { + byte_start += sizeof( mbedtls_mpi_uint ) - byte_len % sizeof( mbedtls_mpi_uint ); + } + if( ( hex_len & 1 ) != 0 ) + { + /* mbedtls_test_unhexify wants an even number of hex digits */ + TEST_ASSERT( ascii2uc( *input, byte_start ) == 0 ); + ++byte_start; + ++input; + --byte_len; + } + TEST_ASSERT( mbedtls_test_unhexify( byte_start, + byte_len, + input, + &byte_len ) == 0 ); + + mbedtls_mpi_core_bigendian_to_host( *pX, *plimbs ); + return( 0 ); + +exit: + mbedtls_free( *pX ); + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); } int mbedtls_test_read_mpi( mbedtls_mpi *X, const char *s ) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index be4c056d79..2a1e48f2e4 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -595,13 +595,13 @@ Test mbedtls_mpi_cmp_mpi: large negative < 0 (1 limb) mpi_cmp_mpi:"-1230000000000000000":"0":-1 mbedtls_mpi_core_lt_ct: x=y (1 limb) -mpi_core_lt_ct:"02B5":"02B5":0 +mpi_core_lt_ct:"2B5":"2B5":0 mbedtls_mpi_core_lt_ct: x>y (1 limb) -mpi_core_lt_ct:"02B5":"02B4":0 +mpi_core_lt_ct:"2B5":"2B4":0 mbedtls_mpi_core_lt_ct: xy, equal MS limbs mpi_core_lt_ct:"EEFFFFFFFFFFFFFFFF":"EEFFFFFFFFFFFFFFF1":0 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index d4501972de..2528b9cba2 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -728,7 +728,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_lt_ct( data_t * input_X, data_t * input_Y, int exp_ret ) +void mpi_core_lt_ct( char *input_X, char *input_Y, int exp_ret ) { mbedtls_mpi_uint *X = NULL; size_t X_limbs; From 24baa81043e963d1a01b1444dc3d89c726fd8934 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 9 Oct 2022 21:16:28 +0200 Subject: [PATCH 0545/1028] Improve mbedtls_mpi_bitlen test descriptions Signed-off-by: Gilles Peskine --- tests/suites/test_suite_mpi.data | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 2a1e48f2e4..52dee898da 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -441,28 +441,28 @@ mpi_lsb:"24":2 Base test mbedtls_mpi_lsb #4 mpi_lsb:"2000":13 -Base test mbedtls_mpi_bitlen #1 +Test mbedtls_mpi_bitlen 764-bit mpi_bitlen:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":764 -Base test mbedtls_mpi_bitlen #2 +Test mbedtls_mpi_bitlen 0x18 mpi_bitlen:"18":5 -Base test mbedtls_mpi_bitlen #3 +Test mbedtls_mpi_bitlen 0x01 mpi_bitlen:"1":1 -Base test mbedtls_mpi_bitlen #4 +Test mbedtls_mpi_bitlen 0x0f mpi_bitlen:"f":4 -Base test mbedtls_mpi_bitlen #5 +Test mbedtls_mpi_bitlen 0x10 mpi_bitlen:"10":5 -Base test mbedtls_mpi_bitlen #6 +Test mbedtls_mpi_bitlen 0x0a mpi_bitlen:"a":4 -Base test mbedtls_mpi_bitlen: 0 (null) +Test mbedtls_mpi_bitlen: 0 (null) mpi_bitlen:"":0 -Base test mbedtls_mpi_bitlen: 0 (1 limb) +Test mbedtls_mpi_bitlen: 0 (1 limb) mpi_bitlen:"0":0 Base test mbedtls_mpi_cmp_int #1 From e943283f2f4741a4c489134dcc389c63c3f4ee32 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 9 Oct 2022 21:16:51 +0200 Subject: [PATCH 0546/1028] More mbedtls_mpi_bitlen test cases * with leading zero limb * with trailing zero limb * negative Signed-off-by: Gilles Peskine --- tests/suites/test_suite_mpi.data | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 52dee898da..d88ae13cba 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -447,6 +447,12 @@ mpi_bitlen:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe70 Test mbedtls_mpi_bitlen 0x18 mpi_bitlen:"18":5 +Test mbedtls_mpi_bitlen 0x18 with leading 0 limb(s) +mpi_bitlen:"00000000000000018":5 + +Test mbedtls_mpi_bitlen 0x18 << 64 +mpi_bitlen:"180000000000000000":69 + Test mbedtls_mpi_bitlen 0x01 mpi_bitlen:"1":1 @@ -465,6 +471,9 @@ mpi_bitlen:"":0 Test mbedtls_mpi_bitlen: 0 (1 limb) mpi_bitlen:"0":0 +Test mbedtls_mpi_bitlen: -0x18 +mpi_bitlen:"-18":5 + Base test mbedtls_mpi_cmp_int #1 mpi_cmp_int:693:693:0 From b50e433b66df1ad0042e8f066861e427c241e727 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 9 Oct 2022 21:17:26 +0200 Subject: [PATCH 0547/1028] Test mbedtls_mpi_core_bitlen Copy the test data for mbedtls_mpi_bitlen except for 0-length and negative cases. Signed-off-by: Gilles Peskine --- tests/suites/test_suite_mpi.data | 27 +++++++++++++++++++++++++++ tests/suites/test_suite_mpi.function | 14 ++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index d88ae13cba..95e0d3199d 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -441,6 +441,33 @@ mpi_lsb:"24":2 Base test mbedtls_mpi_lsb #4 mpi_lsb:"2000":13 +Test mbedtls_mpi_core_bitlen 764-bit +mpi_core_bitlen:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":764 + +Test mbedtls_mpi_core_bitlen 0x18 +mpi_core_bitlen:"18":5 + +Test mbedtls_mpi_core_bitlen 0x18 with leading 0 limb(s) +mpi_core_bitlen:"00000000000000018":5 + +Test mbedtls_mpi_core_bitlen 0x18 << 64 +mpi_core_bitlen:"180000000000000000":69 + +Test mbedtls_mpi_core_bitlen 0x01 +mpi_core_bitlen:"1":1 + +Test mbedtls_mpi_core_bitlen 0x0f +mpi_core_bitlen:"f":4 + +Test mbedtls_mpi_core_bitlen 0x10 +mpi_core_bitlen:"10":5 + +Test mbedtls_mpi_core_bitlen 0x0a +mpi_core_bitlen:"a":4 + +Test mbedtls_mpi_core_bitlen: 0 (1 limb) +mpi_core_bitlen:"0":0 + Test mbedtls_mpi_bitlen 764-bit mpi_bitlen:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":764 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 2528b9cba2..9812c56b51 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -664,6 +664,20 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_core_bitlen( char *input_X, int nr_bits ) +{ + mbedtls_mpi_uint *X = NULL; + size_t limbs; + + TEST_EQUAL( mbedtls_test_read_mpi_core( &X, &limbs, input_X ), 0 ); + TEST_EQUAL( mbedtls_mpi_core_bitlen( X, limbs ), nr_bits ); + +exit: + mbedtls_free( X ); +} +/* END_CASE */ + /* BEGIN_CASE */ void mpi_bitlen( char * input_X, int nr_bits ) { From d61a4d3d1ababed6c9c7e9bd52e9443fe6b86b8f Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 11 Oct 2022 09:40:40 +0200 Subject: [PATCH 0548/1028] Fix missing guard and double-space Signed-off-by: Przemek Stekiel --- include/mbedtls/check_config.h | 2 +- programs/ssl/ssl_server2.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 52ada44e68..6997ffde64 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -876,7 +876,7 @@ #if defined(MBEDTLS_SSL_TICKET_C) && \ !( defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) || defined(MBEDTLS_CHACHAPOLY_C) ) -#error "MBEDTLS_SSL_TICKET_C defined, but not all prerequisites" +#error "MBEDTLS_SSL_TICKET_C defined, but not all prerequisites" #endif #if defined(MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH) && \ diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 9f767c9f54..fc19c8efc8 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -283,7 +283,7 @@ int main( void ) #else #define USAGE_CA_CALLBACK "" #endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ -#if defined(MBEDTLS_SSL_SESSION_TICKETS) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C) #define USAGE_TICKETS \ " tickets=%%d default: 1 (enabled)\n" \ " ticket_rotate=%%d default: 0 (disabled)\n" \ @@ -291,7 +291,7 @@ int main( void ) " ticket_aead=%%s default: \"AES-256-GCM\"\n" #else #define USAGE_TICKETS "" -#endif /* MBEDTLS_SSL_SESSION_TICKETS */ +#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_TICKET_C */ #define USAGE_EAP_TLS \ " eap_tls=%%d default: 0 (disabled)\n" @@ -1406,7 +1406,7 @@ int main( int argc, char *argv[] ) #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C) mbedtls_ssl_ticket_context ticket_ctx; -#endif +#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_TICKET_C */ #if defined(SNI_OPTION) sni_entry *sni_info = NULL; #endif From ac6c67053d4cb7842851cf73b375752d8286d8c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 11 Oct 2022 10:48:32 +0200 Subject: [PATCH 0549/1028] Print the list of failed suites in verbose mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In verbose mode, the full output of each failing suite is printed out, which for some suites runs in the 1000s of lines. If you didn't redirect output to a file, this is a lot to scroll and can make it hard to quickly identify which test suites failed. So, let's print out that information at the end. This is useful information for starting to figure out what went wrong. Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/run-test-suites.pl | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/scripts/run-test-suites.pl b/tests/scripts/run-test-suites.pl index 15fa8bcf7a..22eadd1805 100755 --- a/tests/scripts/run-test-suites.pl +++ b/tests/scripts/run-test-suites.pl @@ -74,7 +74,7 @@ $ENV{'DYLD_LIBRARY_PATH'} = '../library'; my $prefix = $^O eq "MSWin32" ? '' : './'; -my ($failed_suites, $total_tests_run, $failed, $suite_cases_passed, +my (@failed_suites, $total_tests_run, $failed, $suite_cases_passed, $suite_cases_failed, $suite_cases_skipped, $total_cases_passed, $total_cases_failed, $total_cases_skipped ); my $suites_skipped = 0; @@ -112,7 +112,7 @@ for my $suite (@suites) pad_print_center( 72, '-', "End $suite" ); } } else { - $failed_suites++; + push @failed_suites, $suite; print "FAIL\n"; if( $verbose ) { pad_print_center( 72, '-', "Begin $suite" ); @@ -139,12 +139,17 @@ for my $suite (@suites) } print "-" x 72, "\n"; -print $failed_suites ? "FAILED" : "PASSED"; +print @failed_suites ? "FAILED" : "PASSED"; printf( " (%d suites, %d tests run%s)\n", scalar(@suites) - $suites_skipped, $total_tests_run, $suites_skipped ? ", $suites_skipped suites skipped" : "" ); +if( $verbose && @failed_suites ) { + # the output can be very long, so provide a summary of which suites failed + print " failed suites : @failed_suites\n"; +} + if( $verbose > 1 ) { print " test cases passed :", $total_cases_passed, "\n"; print " failed :", $total_cases_failed, "\n"; @@ -159,5 +164,5 @@ if( $verbose > 1 ) { } } -exit( $failed_suites ? 1 : 0 ); +exit( @failed_suites ? 1 : 0 ); From c2bfaf00d955ec09dc337c95e720c0637d39ba89 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 11 Oct 2022 15:55:52 +0800 Subject: [PATCH 0550/1028] fix wrong typo Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 2 +- tests/opt-testcases/tls13-kex-modes.sh | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index cc65703182..61a1bad578 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -208,7 +208,7 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( if( age_in_s > 604800 ) { MBEDTLS_SSL_DEBUG_MSG( - 3, ( "Ticket age exceed limitation ticket_age=%lu", + 3, ( "Ticket age exceeds limitation ticket_age=%lu", (long unsigned int)age_in_s ) ); goto exit; } diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 6c0489af0b..c8586d2c27 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -118,7 +118,7 @@ run_test "TLS 1.3 m->m: Session resumption failure, ticket authentication failed -s "ticket is not authentic" \ -S "ticket is expired" \ -S "Invalid ticket start time" \ - -S "Ticket age exceed limitation" \ + -S "Ticket age exceeds limitation" \ -S "Ticket age outside tolerance window" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ @@ -139,7 +139,7 @@ run_test "TLS 1.3 m->m: Session resumption failure, ticket expired." \ -S "ticket is not authentic" \ -s "ticket is expired" \ -S "Invalid ticket start time" \ - -S "Ticket age exceed limitation" \ + -S "Ticket age exceeds limitation" \ -S "Ticket age outside tolerance window" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ @@ -160,7 +160,7 @@ run_test "TLS 1.3 m->m: Session resumption failure, invalid start time." \ -S "ticket is not authentic" \ -S "ticket is expired" \ -s "Invalid ticket start time" \ - -S "Ticket age exceed limitation" \ + -S "Ticket age exceeds limitation" \ -S "Ticket age outside tolerance window" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ @@ -181,7 +181,7 @@ run_test "TLS 1.3 m->m: Session resumption failure, ticket expired. too old" \ -S "ticket is not authentic" \ -S "ticket is expired" \ -S "Invalid ticket start time" \ - -s "Ticket age exceed limitation" \ + -s "Ticket age exceeds limitation" \ -S "Ticket age outside tolerance window" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ @@ -202,7 +202,7 @@ run_test "TLS 1.3 m->m: Session resumption failure, age outside tolerance window -S "ticket is not authentic" \ -S "ticket is expired" \ -S "Invalid ticket start time" \ - -S "Ticket age exceed limitation" \ + -S "Ticket age exceeds limitation" \ -s "Ticket age outside tolerance window" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ @@ -223,7 +223,7 @@ run_test "TLS 1.3 m->m: Session resumption failure, age outside tolerance window -S "ticket is not authentic" \ -S "ticket is expired" \ -S "Invalid ticket start time" \ - -S "Ticket age exceed limitation" \ + -S "Ticket age exceeds limitation" \ -s "Ticket age outside tolerance window" requires_gnutls_tls1_3 From 22c18c14320b171ca3cc11eb022891f265fa09c5 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 11 Oct 2022 15:58:51 +0800 Subject: [PATCH 0551/1028] Add NULL check in prepare hello `session_negotiate` is used directly in `ssl_prepare_client_hello` without NULL check. Add the check in the beggining to avoid segment fault. Signed-off-by: Jerry Yu --- library/ssl_client.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 2ed6ce6853..1b591253f8 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -713,26 +713,29 @@ static int ssl_generate_random( mbedtls_ssl_context *ssl ) MBEDTLS_CLIENT_HELLO_RANDOM_LEN - gmt_unix_time_len ); return( ret ); } - MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) { int ret; size_t session_id_len; + mbedtls_ssl_session *session_negotiate = ssl->session_negotiate; + + if( session_negotiate == NULL ) + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_HAVE_TIME) + /* Check if a tls13 ticket has been configured. */ - if( ssl->session_negotiate->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && - ssl->handshake->resume != 0 && - ssl->session_negotiate != NULL && - ssl->session_negotiate->ticket != NULL ) + if( ssl->handshake->resume != 0 && + session_negotiate->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && + session_negotiate->ticket != NULL ) { mbedtls_time_t now = mbedtls_time( NULL ); - if( ssl->session_negotiate->ticket_received > now || - (uint64_t)( now - ssl->session_negotiate->ticket_received ) - > ssl->session_negotiate->ticket_lifetime ) + uint64_t age = (uint64_t)( now - session_negotiate->ticket_received ); + if( session_negotiate->ticket_received > now || + age > session_negotiate->ticket_lifetime ) { /* Without valid ticket, disable session resumption.*/ MBEDTLS_SSL_DEBUG_MSG( @@ -761,7 +764,7 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) { if( ssl->handshake->resume ) { - ssl->tls_version = ssl->session_negotiate->tls_version; + ssl->tls_version = session_negotiate->tls_version; ssl->handshake->min_tls_version = ssl->tls_version; } else @@ -795,7 +798,7 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) * to zero, except in the case of a TLS 1.2 session renegotiation or * session resumption. */ - session_id_len = ssl->session_negotiate->id_len; + session_id_len = session_negotiate->id_len; #if defined(MBEDTLS_SSL_PROTO_TLS1_2) if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_2 ) @@ -818,8 +821,8 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) if( ssl->renego_status == MBEDTLS_SSL_INITIAL_HANDSHAKE ) #endif { - if( ( ssl->session_negotiate->ticket != NULL ) && - ( ssl->session_negotiate->ticket_len != 0 ) ) + if( ( session_negotiate->ticket != NULL ) && + ( session_negotiate->ticket_len != 0 ) ) { session_id_len = 32; } @@ -851,13 +854,13 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) } #endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ - if( session_id_len != ssl->session_negotiate->id_len ) + if( session_id_len != session_negotiate->id_len ) { - ssl->session_negotiate->id_len = session_id_len; + session_negotiate->id_len = session_id_len; if( session_id_len > 0 ) { ret = ssl->conf->f_rng( ssl->conf->p_rng, - ssl->session_negotiate->id, + session_negotiate->id, session_id_len ); if( ret != 0 ) { @@ -869,7 +872,6 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) return( 0 ); } - /* * Write ClientHello handshake message. * Handler for MBEDTLS_SSL_CLIENT_HELLO From c79742303d5aea0c94cc922452da2e7bfa267aa0 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 11 Oct 2022 21:22:33 +0800 Subject: [PATCH 0552/1028] Remove unnecessary empty line and fix format issue Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 2 -- programs/ssl/ssl_server2.c | 4 +++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 6227f3d0b0..2b59b4aae1 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -677,7 +677,6 @@ static psa_algorithm_t ssl_tls13_get_ciphersuite_hash_alg( int ciphersuite ) } #if defined(MBEDTLS_SSL_SESSION_TICKETS) - static int ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl ) { mbedtls_ssl_session *session = ssl->session_negotiate; @@ -720,7 +719,6 @@ static int ssl_tls13_ticket_get_psk( mbedtls_ssl_context *ssl, return( 0 ); } - #endif /* MBEDTLS_SSL_SESSION_TICKETS */ static int ssl_tls13_has_configured_psk( const mbedtls_ssl_config *conf ) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index a68136c171..6242e6eeb9 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -3013,7 +3013,9 @@ int main( int argc, char *argv[] ) opt.ticket_aead, opt.ticket_timeout ) ) != 0 ) { - mbedtls_printf( " failed\n ! mbedtls_ssl_ticket_setup returned %d\n\n", ret ); + mbedtls_printf( + " failed\n ! mbedtls_ssl_ticket_setup returned %d\n\n", + ret ); goto exit; } From 9624a5932e4ab296ed81bfe44411e7a7651f15cc Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 11 Oct 2022 20:52:34 +0200 Subject: [PATCH 0553/1028] Add mbedtls_dhm_parse_dhmfile test case with DER input dh.optlen.der is the result of converting dh.optlen.pem from PEM to DER. Signed-off-by: Gilles Peskine --- tests/data_files/dh.optlen.der | Bin 0 -> 530 bytes tests/suites/test_suite_dhm.data | 3 +++ 2 files changed, 3 insertions(+) create mode 100644 tests/data_files/dh.optlen.der diff --git a/tests/data_files/dh.optlen.der b/tests/data_files/dh.optlen.der new file mode 100644 index 0000000000000000000000000000000000000000..3c3bf1780ea3b148899d2d22dc85b45b5f3c2165 GIT binary patch literal 530 zcmV+t0`2`Uf&vZ#f&l>lvl43R^l?+i)_*`SFtU=hy;^LZt{fA3^FW9E;-hL;jc~=q zV67|Ll1xfXzTyfNalUZ_&WGOmc94lSfIYs-V8cEViNT;c!p6kplm+FGFQ8d!9J;8L z%s?$t6YWZ0A6uxk;q5)CQKZCmuj>q^V7E4mILPP;^McuG;htdJm`-8KLbc!5BQh$_ zGJl>yJlbRc!CYG|q53pHU4xh}xUM{F1$Kw`K+0NA+!Ox#|HaBttyz+zLeV)8q)y U Date: Tue, 11 Oct 2022 20:53:20 +0200 Subject: [PATCH 0554/1028] test_suite_dhm: Add missing dependencies on MBEDTLS_PEM_PARSE_C Signed-off-by: Gilles Peskine --- tests/suites/test_suite_dhm.data | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_dhm.data b/tests/suites/test_suite_dhm.data index c17cfd1d08..2ab5c43746 100644 --- a/tests/suites/test_suite_dhm.data +++ b/tests/suites/test_suite_dhm.data @@ -109,10 +109,12 @@ dhm_make_public:MBEDTLS_MPI_MAX_SIZE:"5":0 Diffie-Hellman MPI_MAX_SIZE + 1 modulus dhm_make_public:MBEDTLS_MPI_MAX_SIZE + 1:"5":MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED+MBEDTLS_ERR_MPI_BAD_INPUT_DATA -Diffie-Hellman load parameters from file [#1] +DH load parameters from PEM file (1024-bit, g=2) +depends_on:MBEDTLS_PEM_PARSE_C dhm_file:"data_files/dhparams.pem":"9e35f430443a09904f3a39a979797d070df53378e79c2438bef4e761f3c714553328589b041c809be1d6c6b5f1fc9f47d3a25443188253a992a56818b37ba9de5a40d362e56eff0be5417474c125c199272c8fe41dea733df6f662c92ae76556e755d10c64e6a50968f67fc6ea73d0dca8569be2ba204e23580d8bca2f4975b3":"02":128 -Diffie-Hellman load parameters from file [#2] +DH load parameters from PEM file (2048-bit, large g, privateValueLength) +depends_on:MBEDTLS_PEM_PARSE_C dhm_file:"data_files/dh.optlen.pem":"b3126aeaf47153c7d67f403030b292b5bd5a6c9eae1c137af34087fce2a36a578d70c5c560ad2bdb924c4a4dbee20a1671be7103ce87defa76908936803dbeca60c33e1289c1a03ac2c6c4e49405e5902fa0596a1cbaa895cc402d5213ed4a5f1f5ba8b5e1ed3da951a4c475afeb0ca660b7368c38c8e809f382d96ae19e60dc984e61cb42b5dfd723322acf327f9e413cda6400c15c5b2ea1fa34405d83982fba40e6d852da3d91019bf23511314254dc211a90833e5b1798ee52a78198c555644729ad92f060367c74ded37704adfc273a4a33fec821bd2ebd3bc051730e97a4dd14d2b766062592f5eec09d16bb50efebf2cc00dd3e0e3418e60ec84870f7":"800abfe7dc667aa17bcd7c04614bc221a65482ccc04b604602b0e131908a938ea11b48dc515dab7abcbb1e0c7fd66511edc0d86551b7632496e03df94357e1c4ea07a7ce1e381a2fcafdff5f5bf00df828806020e875c00926e4d011f88477a1b01927d73813cad4847c6396b9244621be2b00b63c659253318413443cd244215cd7fd4cbe796e82c6cf70f89cc0c528fb8e344809b31876e7ef739d5160d095c9684188b0c8755c7a468d47f56d6db9ea012924ecb0556fb71312a8d7c93bb2898ea08ee54eeb594548285f06a973cbbe2a0cb02e90f323fe045521f34c68354a6d3e95dbfff1eb64692edc0a44f3d3e408d0e479a541e779a6054259e2d854":256 DH load parameters from DER file (2048-bit, large g, privateValueLength) From 58e5d804ee2bed03a6d41e7288d5378a9150c657 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 11 Oct 2022 20:57:38 +0200 Subject: [PATCH 0555/1028] test_suite_pk: Add missing dependencies on MBEDTLS_PEM_PARSE_C Signed-off-by: Gilles Peskine --- tests/suites/test_suite_pk.data | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/suites/test_suite_pk.data b/tests/suites/test_suite_pk.data index 3dc2b8ba1b..bd5d31ec41 100644 --- a/tests/suites/test_suite_pk.data +++ b/tests/suites/test_suite_pk.data @@ -521,23 +521,23 @@ depends_on:MBEDTLS_PKCS1_V21:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA pk_rsa_verify_ext_test_vec:"ae6e43dd387c25741e42fc3570cdfc52e4f51a2343294f3b677dfe01cd5339f6":MBEDTLS_MD_SHA256:1024:"00dd118a9f99bab068ca2aea3b6a6d5997ed4ec954e40deecea07da01eaae80ec2bb1340db8a128e891324a5c5f5fad8f590d7c8cacbc5fe931dafda1223735279461abaa0572b761631b3a8afe7389b088b63993a0a25ee45d21858bab9931aedd4589a631b37fcf714089f856549f359326dd1e0e86dde52ed66b4a90bda4095":"010001":"0d2bdb0456a3d651d5bd48a4204493898f72cf1aaddd71387cc058bc3f4c235ea6be4010fd61b28e1fbb275462b53775c04be9022d38b6a2e0387dddba86a3f8554d2858044a59fddbd594753fc056fe33c8daddb85dc70d164690b1182209ff84824e0be10e35c379f2f378bf176a9f7cb94d95e44d90276a298c8810f741c9":MBEDTLS_PK_RSASSA_PSS:MBEDTLS_MD_SHA256:94:129:MBEDTLS_ERR_RSA_VERIFY_FAILED Check pair #1 (EC, OK) -depends_on:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED +depends_on:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_PEM_PARSE_C mbedtls_pk_check_pair:"data_files/ec_256_pub.pem":"data_files/ec_256_prv.pem":0 Check pair #2 (EC, bad) -depends_on:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED +depends_on:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_PEM_PARSE_C mbedtls_pk_check_pair:"data_files/ec_256_pub.pem":"data_files/server5.key":MBEDTLS_ERR_ECP_BAD_INPUT_DATA Check pair #3 (RSA, OK) -depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15 +depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_PEM_PARSE_C mbedtls_pk_check_pair:"data_files/server1.pubkey":"data_files/server1.key":0 Check pair #4 (RSA, bad) -depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15 +depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_PEM_PARSE_C mbedtls_pk_check_pair:"data_files/server1.pubkey":"data_files/server2.key":MBEDTLS_ERR_RSA_KEY_CHECK_FAILED Check pair #5 (RSA vs EC) -depends_on:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_RSA_C +depends_on:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_RSA_C:MBEDTLS_PEM_PARSE_C mbedtls_pk_check_pair:"data_files/ec_256_pub.pem":"data_files/server1.key":MBEDTLS_ERR_PK_TYPE_MISMATCH RSA hash_len overflow (size_t vs unsigned int) From fd94304f9d547f826e2cbc044e9cfb725f539a95 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 11 Oct 2022 20:59:29 +0200 Subject: [PATCH 0556/1028] PSA RSA needs pk_write The PSA crypto code needs mbedtls_pk_write_key_der() and mbedtls_pk_write_pubkey() when using RSA without drivers. We were already forcing MBEDTLS_PK_WRITE_C when MBEDTLS_USE_PSA_CRYPTO is enabled. Do so also when MBEDTLS_PSA_CRYPTO_C is enabled as well as MBEDTLS_RSA_C, even without MBEDTLS_USE_PSA_CRYPTO. Fixes #6408. Signed-off-by: Gilles Peskine --- ChangeLog.d/psa_rsa_needs_pk.txt | 3 +++ include/mbedtls/build_info.h | 17 ++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 ChangeLog.d/psa_rsa_needs_pk.txt diff --git a/ChangeLog.d/psa_rsa_needs_pk.txt b/ChangeLog.d/psa_rsa_needs_pk.txt new file mode 100644 index 0000000000..3421affc7a --- /dev/null +++ b/ChangeLog.d/psa_rsa_needs_pk.txt @@ -0,0 +1,3 @@ +Bugfix + * Fix build failure with MBEDTLS_RSA_C and MBEDTLS_PSA_CRYPTO_C but not + MBEDTLS_USE_PSA_CRYPTO or MBEDTLS_PK_WRITE_C. Fixes #6408. diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index 6195ac979b..21e63f125f 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -74,7 +74,22 @@ #include MBEDTLS_USER_CONFIG_FILE #endif -#if defined(MBEDTLS_PK_C) && defined(MBEDTLS_USE_PSA_CRYPTO) +/* The PK wrappers need pk_write functions to format RSA key objects + * when they are dispatching to the PSA API. This happens under USE_PSA_CRYPTO, + * and also even without USE_PSA_CRYPTO for mbedtls_pk_sign_ext(). + * PSA crypto also needs pk_write to export RSA keys (otherwise the build + * goes through but psa_export_key() and psa_export_public_key() fail on + * RSA keys). + */ +#if defined(MBEDTLS_PSA_CRYPTO_C) && defined(MBEDTLS_RSA_C) +#define MBEDTLS_PK_C +#define MBEDTLS_PK_WRITE_C +#endif + +/* Under MBEDTLS_USE_PSA_CRYPTO, the pk module needs pk_write functions + * to pass ECC keys to PSA. */ +#if defined(MBEDTLS_PK_C) && \ + defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_ECP_C) #define MBEDTLS_PK_WRITE_C #endif From aef1ba679d6a9e09aa08912c0a704570141d3cba Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 11 Oct 2022 21:05:06 +0200 Subject: [PATCH 0557/1028] Add build with a typical configuration for a PSA crypto service Disable non-crypto features that can't be called through the PSA API, as well as algorithms that have no PSA interface. This serves as a non-regression test for #6408 and #6409. Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index a1b47f4669..fa41604158 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1554,6 +1554,33 @@ component_build_crypto_full () { are_empty_libraries library/libmbedx509.* library/libmbedtls.* } +component_build_crypto_light () { + msg "build: make, config for PSA crypto service" + scripts/config.py crypto + scripts/config.py set MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER + # Disable things that are not needed for just cryptography, to + # reach a configuration that would be typical for a PSA cryptography + # service providing all implemented PSA algorithms. + # System stuff + scripts/config.py unset MBEDTLS_ERROR_C + scripts/config.py unset MBEDTLS_TIMING_C + scripts/config.py unset MBEDTLS_VERSION_FEATURES_C + # Crypto stuff with no PSA interface + scripts/config.py unset MBEDTLS_BASE64_C + scripts/config.py unset MBEDTLS_NIST_KW_C + scripts/config.py unset MBEDTLS_PEM_PARSE_C + scripts/config.py unset MBEDTLS_PEM_WRITE_C + scripts/config.py unset MBEDTLS_PKCS12_C + scripts/config.py unset MBEDTLS_PKCS5_C + # MBEDTLS_PK_WRITE_C is actually currently needed for RSA key export, + # but build_info.h will reenable it. + scripts/config.py unset MBEDTLS_PK_WRITE_C + # At this time, we can't unset MBEDTLS_PK_PARSE_C, because it's needed + # for RSA in PSA (see https://github.com/Mbed-TLS/mbedtls/issues/6408). + make CFLAGS='-O1 -Werror' all test + are_empty_libraries library/libmbedx509.* library/libmbedtls.* +} + component_build_crypto_baremetal () { msg "build: make, crypto only, baremetal config" scripts/config.py crypto_baremetal From fcee740b835f6dcbca1fa4aa42998c3269caad8e Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 11 Oct 2022 21:15:24 +0200 Subject: [PATCH 0558/1028] Automatically enable PK_PARSE for RSA in PSA PSA crypto currently needs MBEDTLS_PK_PARSE_C to parse RSA keys to do almost anything with them (import, get attributes, export public from private, any cryptographic operations). Force it on, for symmetry with what we're doing for MBEDTLS_PK_WRITE_C. Fixes #6409. Signed-off-by: Gilles Peskine --- ChangeLog.d/psa_rsa_needs_pk.txt | 2 ++ include/mbedtls/build_info.h | 3 ++- tests/scripts/all.sh | 8 ++++---- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ChangeLog.d/psa_rsa_needs_pk.txt b/ChangeLog.d/psa_rsa_needs_pk.txt index 3421affc7a..995963d7e4 100644 --- a/ChangeLog.d/psa_rsa_needs_pk.txt +++ b/ChangeLog.d/psa_rsa_needs_pk.txt @@ -1,3 +1,5 @@ Bugfix * Fix build failure with MBEDTLS_RSA_C and MBEDTLS_PSA_CRYPTO_C but not MBEDTLS_USE_PSA_CRYPTO or MBEDTLS_PK_WRITE_C. Fixes #6408. + * Fix build failure with MBEDTLS_RSA_C and MBEDTLS_PSA_CRYPTO_C but not + MBEDTLS_PK_PARSE_C. Fixes #6409. diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index 21e63f125f..b043789298 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -79,11 +79,12 @@ * and also even without USE_PSA_CRYPTO for mbedtls_pk_sign_ext(). * PSA crypto also needs pk_write to export RSA keys (otherwise the build * goes through but psa_export_key() and psa_export_public_key() fail on - * RSA keys). + * RSA keys), and pk_parse to work with RSA keys in almost any way. */ #if defined(MBEDTLS_PSA_CRYPTO_C) && defined(MBEDTLS_RSA_C) #define MBEDTLS_PK_C #define MBEDTLS_PK_WRITE_C +#define MBEDTLS_PK_PARSE_C #endif /* Under MBEDTLS_USE_PSA_CRYPTO, the pk module needs pk_write functions diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index fa41604158..30ab9ba632 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1572,11 +1572,11 @@ component_build_crypto_light () { scripts/config.py unset MBEDTLS_PEM_WRITE_C scripts/config.py unset MBEDTLS_PKCS12_C scripts/config.py unset MBEDTLS_PKCS5_C - # MBEDTLS_PK_WRITE_C is actually currently needed for RSA key export, - # but build_info.h will reenable it. + # MBEDTLS_PK_PARSE_C and MBEDTLS_PK_WRITE_C are actually currently needed + # in PSA code to work with RSA keys. We don't require users to set those: + # they will be reenabled in build_info.h. + scripts/config.py unset MBEDTLS_PK_PARSE_C scripts/config.py unset MBEDTLS_PK_WRITE_C - # At this time, we can't unset MBEDTLS_PK_PARSE_C, because it's needed - # for RSA in PSA (see https://github.com/Mbed-TLS/mbedtls/issues/6408). make CFLAGS='-O1 -Werror' all test are_empty_libraries library/libmbedx509.* library/libmbedtls.* } From ee1bb4145f4b225dddf78f76e0574714518ed27c Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 11 Oct 2022 11:52:25 +0200 Subject: [PATCH 0559/1028] Make sure that disabled features are not included in image and fix test config Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 8d7bd5bf4c..34028801df 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1949,20 +1949,28 @@ component_test_psa_crypto_config_accel_aead () { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING - loc_accel_list="ALG_GCM ALG_CCM ALG_CHACHA20_POLY1305 KEY_TYPE_AES KEY_TYPE_CHACHA20" + loc_accel_list="ALG_GCM ALG_CCM ALG_CHACHA20_POLY1305 KEY_TYPE_AES KEY_TYPE_CHACHA20 KEY_TYPE_ARIA KEY_TYPE_CAMELLIA" loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g' ) make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS" scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG - scripts/config.py unset MBEDTLS_MODE_GCM - scripts/config.py unset MBEDTLS_MODE_CCM - scripts/config.py unset MBEDTLS_MODE_CHACHAPOLY + scripts/config.py unset MBEDTLS_GCM_C + scripts/config.py unset MBEDTLS_CCM_C + scripts/config.py unset MBEDTLS_CHACHAPOLY_C + # Features that depend on AEAD + scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" make CFLAGS="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" + # There's a risk of something getting re-enabled via config_psa.h + # make sure it did not happen. + not grep mbedtls_ccm library/ccm.o + not grep mbedtls_gcm library/gcm.o + not grep mbedtls_chachapoly library/chachapoly.o + msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated AEAD" make test } From ea37bb2403f24a2f1b7ca96f2af17aa7acac3728 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 12 Oct 2022 10:11:25 +0200 Subject: [PATCH 0560/1028] Add changelog entry Signed-off-by: Przemek Stekiel --- ChangeLog.d/fix_aead_psa_driver_build.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 ChangeLog.d/fix_aead_psa_driver_build.txt diff --git a/ChangeLog.d/fix_aead_psa_driver_build.txt b/ChangeLog.d/fix_aead_psa_driver_build.txt new file mode 100644 index 0000000000..a6d11d38d0 --- /dev/null +++ b/ChangeLog.d/fix_aead_psa_driver_build.txt @@ -0,0 +1,3 @@ +Bugfix + * Fix compilation errors when trying to build with + PSA drivers for AEAD (GCM, CCM, Chacha20-Poly1305). From 281fd1bdd8aacc3c68ea42e305a5ed2469635571 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 20 Sep 2022 11:35:41 +0000 Subject: [PATCH 0561/1028] Add server name check when proposeing pre-share key Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 26 ++++++++++++ library/ssl_client.c | 18 +++++++++ library/ssl_tls.c | 83 ++++++++++++++++++++++++++++++++++++++ library/ssl_tls13_server.c | 14 +++++++ programs/ssl/ssl_client2.c | 15 +++++++ tests/ssl-opt.sh | 41 +++++++++++++++++++ 6 files changed, 197 insertions(+) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 5a02182c0e..5e493f5f27 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1201,6 +1201,11 @@ struct mbedtls_ssl_session #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_tls13_application_secrets MBEDTLS_PRIVATE(app_secrets); #endif +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + uint8_t MBEDTLS_PRIVATE(hostname_len); /*!< host_name length */ + char *MBEDTLS_PRIVATE(hostname); /*!< host name binded with tickets */ + uint8_t hostname_mismatch; /*!< whether new host_name match with saved one */ +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ }; /* @@ -3662,6 +3667,27 @@ void mbedtls_ssl_conf_sig_algs( mbedtls_ssl_config *conf, * On too long input failure, old hostname is unchanged. */ int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ); + +/** + * \brief Reset the hostname to the new server name when reconnection. + * + * \param ssl SSL context + * \param hostname the server hostname, may be NULL + * \param rec_hostname the server rec_hostname, may be NULL + + * \note Maximum hostname length MBEDTLS_SSL_MAX_HOST_NAME_LEN. + * + * \return 0 if successful, MBEDTLS_ERR_SSL_ALLOC_FAILED on + * allocation failure, MBEDTLS_ERR_SSL_BAD_INPUT_DATA on + * too long input rec_hostname. + * + * Rec_hostname set to the one provided on success. + * On allocation failure hostname is unchanged. + * On too long input failure, old hostname is unchanged. + */ +int mbedtls_ssl_reset_hostname( mbedtls_ssl_context *ssl, + const char *hostname, + const char *rec_hostname ); #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) diff --git a/library/ssl_client.c b/library/ssl_client.c index 1b591253f8..bd9edf15f0 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -54,6 +54,7 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, { unsigned char *p = buf; size_t hostname_len; + size_t cmp_hostname_len; *olen = 0; @@ -64,8 +65,25 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, ( "client hello, adding server name extension: %s", ssl->hostname ) ); + ssl->session_negotiate->hostname_mismatch = 0; hostname_len = strlen( ssl->hostname ); + cmp_hostname_len = hostname_len < ssl->session_negotiate->hostname_len ? + hostname_len : ssl->session_negotiate->hostname_len; + + if( hostname_len != ssl->session_negotiate->hostname_len || + memcmp( ssl->hostname, ssl->session_negotiate->hostname, cmp_hostname_len ) ) + ssl->session_negotiate->hostname_mismatch = 1; + + if( ssl->session_negotiate->hostname == NULL ) + { + ssl->session_negotiate->hostname = mbedtls_calloc( 1, hostname_len ); + if( ssl->session_negotiate->hostname == NULL ) + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + memcpy(ssl->session_negotiate->hostname, ssl->hostname, hostname_len); + } + ssl->session_negotiate->hostname_len = hostname_len; + MBEDTLS_SSL_CHK_BUF_PTR( p, end, hostname_len + 9 ); /* diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 9741a6ef5f..9238761639 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -297,6 +297,18 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, } #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + if( src->hostname != NULL ) + { + dst->hostname = mbedtls_calloc( 1, src->hostname_len + 1 ); + if( dst->hostname == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + + memcpy( dst->hostname, src->hostname, src->hostname_len ); + dst->hostname[src->hostname_len] = '\0'; + } +#endif + return( 0 ); } @@ -1978,6 +1990,11 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + needed += 1 /* hostname_len */ + + session->hostname_len; /* hostname */ +#endif + needed += 4 /* ticket_lifetime */ + 2; /* ticket_len */ @@ -2004,6 +2021,19 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, memcpy( p, session->resumption_key, session->resumption_key_len ); p += session->resumption_key_len; +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) + if( session->endpoint == MBEDTLS_SSL_IS_CLIENT && + session->hostname_len != 0 && + session->hostname != NULL ) + { + /* save host name */ + p[0] = session->hostname_len; + p++; + memcpy( p, session->hostname, session->hostname_len ); + p += session->hostname_len; + } +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ + #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_SRV_C) if( session->endpoint == MBEDTLS_SSL_IS_SERVER ) { @@ -2062,6 +2092,22 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, memcpy( session->resumption_key, p, session->resumption_key_len ); p += session->resumption_key_len; +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) + if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) + { + /* load host name */ + session->hostname_len = p[0]; + p += 1; + if( end - p < session->hostname_len ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + session->hostname = mbedtls_calloc( 1, session->hostname_len ); + if( session->hostname == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + memcpy( session->hostname, p, session->hostname_len ); + p += session->hostname_len; + } +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ + #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_SRV_C) if( session->endpoint == MBEDTLS_SSL_IS_SERVER ) { @@ -2430,6 +2476,39 @@ int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ) return( 0 ); } + +int mbedtls_ssl_reset_hostname( mbedtls_ssl_context *ssl, + const char *hostname, + const char *rec_hostname ) +{ + /* Initialize to suppress unnecessary compiler warning */ + size_t rec_hostname_len = 0; + + if( hostname == NULL || rec_hostname == NULL ) + return( 0 ); + + rec_hostname_len = strlen( rec_hostname ); + if( rec_hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + + if( rec_hostname_len == strlen( hostname ) && + memcmp( hostname, rec_hostname, rec_hostname_len ) == 0 ) + return( 0 ); + + if( ssl->hostname != NULL ) + { + mbedtls_platform_zeroize( ssl->hostname, strlen( ssl->hostname ) ); + mbedtls_free( ssl->hostname ); + ssl->hostname = NULL; + ssl->hostname = mbedtls_calloc( 1, rec_hostname_len + 1 ); + if( ssl->hostname == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + memcpy( ssl->hostname, rec_hostname, rec_hostname_len ); + ssl->hostname[rec_hostname_len] = '\0'; + } + + return( 0 ); +} #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) @@ -3679,6 +3758,10 @@ void mbedtls_ssl_session_free( mbedtls_ssl_session *session ) mbedtls_free( session->ticket ); #endif +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + mbedtls_free( session->hostname ); +#endif + mbedtls_platform_zeroize( session, sizeof( mbedtls_ssl_session ) ); } diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 61a1bad578..60b1e05f43 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -235,6 +235,20 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( (int)age_diff_in_ms ) ); goto exit; } +#if 0 +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + if( ssl->session_negotiate->hostname != NULL && + ssl->session_negotiate->hostname_len != 0 && + memcmp( ssl->session_negotiate->hostname, + ssl->session->hostname, ssl->session->hostname_len ) != 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "Session hostname not matched with stored session ticket" ) ); + goto exit; + } + +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ +#endif ret = 0; diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 6377162b2d..bc93352707 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -366,6 +366,7 @@ int main( void ) "\n usage: ssl_client2 param=<>...\n" \ "\n acceptable parameters:\n" \ " server_name=%%s default: localhost\n" \ + " rec_server_name=%%s default: localhost\n" \ " server_addr=%%s default: given by name\n" \ " server_port=%%d default: 4433\n" \ " request_page=%%s default: \".\"\n" \ @@ -455,6 +456,7 @@ int main( void ) struct options { const char *server_name; /* hostname of the server (client only) */ + const char *rec_s_name; /* hostname of the server (re-connect) */ const char *server_addr; /* address of the server (client only) */ const char *server_port; /* port on which the ssl service runs */ int debug_level; /* level of debugging */ @@ -876,6 +878,7 @@ int main( int argc, char *argv[] ) } opt.server_name = DFL_SERVER_NAME; + opt.rec_s_name = DFL_SERVER_NAME; opt.server_addr = DFL_SERVER_ADDR; opt.server_port = DFL_SERVER_PORT; opt.debug_level = DFL_DEBUG_LEVEL; @@ -961,6 +964,8 @@ int main( int argc, char *argv[] ) if( strcmp( p, "server_name" ) == 0 ) opt.server_name = q; + else if( strcmp( p, "rec_server_name" ) == 0 ) + opt.rec_s_name = q; else if( strcmp( p, "server_addr" ) == 0 ) opt.server_addr = q; else if( strcmp( p, "server_port" ) == 0 ) @@ -3113,6 +3118,16 @@ reconnect: goto exit; } +#if defined(MBEDTLS_X509_CRT_PARSE_C) + if( ( ret = mbedtls_ssl_reset_hostname( &ssl, opt.server_name, + opt.rec_s_name ) ) != 0 ) + { + mbedtls_printf( " failed\n ! mbedtls_ssl_reset_hostname returned %d\n\n", + ret ); + goto exit; + } +#endif + if( ( ret = mbedtls_net_connect( &server_fd, opt.server_addr, opt.server_port, opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 48dd89e357..414b8607bb 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12873,6 +12873,47 @@ run_test "TLS 1.2: Check rsa_pss_rsae compatibility issue, m->G" \ -c "Protocol is TLSv1.2" \ -c "HTTP/1.0 200 [Oo][Kk]" +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_DEBUG_C +run_test "TLS 1.3: NewSessionTicket: servername check, m->m" \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=1 \ + sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ + "$P_CLI debug_level=4 server_name=localhost reco_mode=1 reconnect=1" \ + 0 \ + -c "Protocol is TLSv1.3" \ + -c "got new session ticket." \ + -c "Saving session for reuse... ok" \ + -c "Reconnecting with saved session" \ + -c "HTTP/1.0 200 OK" \ + -s "=> write NewSessionTicket msg" \ + -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ + -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" \ + -s "key exchange mode: ephemeral" \ + -s "key exchange mode: psk_ephemeral" \ + -s "found pre_shared_key extension" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_DEBUG_C +run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=1 \ + sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ + "$P_CLI debug_level=4 server_name=localhost rec_server_name=remote reco_mode=1 reconnect=1" \ + 1 \ + -c "Protocol is TLSv1.3" \ + -c "got new session ticket." \ + -c "Saving session for reuse... ok" \ + -c "Reconnecting with saved session" \ + -c "hostname mismatch the session ticker, should not resume" \ + -s "=> write NewSessionTicket msg" \ + -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ + -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" + # Test heap memory usage after handshake requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_MEMORY_DEBUG From ecd7528c7f0973752556b6c688a4cbe3042c4754 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 28 Sep 2022 07:11:02 +0000 Subject: [PATCH 0562/1028] Address some comments Hostname_len has at least one byte Change structure serialized_session_tls13 Fix various issues Signed-off-by: Xiaokang Qian --- library/ssl_client.c | 2 +- library/ssl_tls.c | 23 +++++++++++++---------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index bd9edf15f0..2c5f664945 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -79,7 +79,7 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, { ssl->session_negotiate->hostname = mbedtls_calloc( 1, hostname_len ); if( ssl->session_negotiate->hostname == NULL ) - return MBEDTLS_ERR_SSL_ALLOC_FAILED; + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); memcpy(ssl->session_negotiate->hostname, ssl->hostname, hostname_len); } ssl->session_negotiate->hostname_len = hostname_len; diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 9238761639..fa4e6930e5 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -300,12 +300,11 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) if( src->hostname != NULL ) { - dst->hostname = mbedtls_calloc( 1, src->hostname_len + 1 ); + dst->hostname = mbedtls_calloc( 1, src->hostname_len ); if( dst->hostname == NULL ) return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); memcpy( dst->hostname, src->hostname, src->hostname_len ); - dst->hostname[src->hostname_len] = '\0'; } #endif @@ -1957,6 +1956,7 @@ mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite( * uint32 ticket_age_add; * uint8 ticket_flags; * opaque resumption_key<0..255>; + * opaque hostname<1..2^8-1>; * select ( endpoint ) { * case client: ClientOnlyData; * case server: uint64 start_time; @@ -2021,14 +2021,14 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, memcpy( p, session->resumption_key, session->resumption_key_len ); p += session->resumption_key_len; + p[0] = session->hostname_len; + p++; #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT && - session->hostname_len != 0 && + session->hostname_len > 0 && session->hostname != NULL ) { /* save host name */ - p[0] = session->hostname_len; - p++; memcpy( p, session->hostname, session->hostname_len ); p += session->hostname_len; } @@ -2100,11 +2100,14 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, p += 1; if( end - p < session->hostname_len ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - session->hostname = mbedtls_calloc( 1, session->hostname_len ); - if( session->hostname == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - memcpy( session->hostname, p, session->hostname_len ); - p += session->hostname_len; + if( session->hostname_len > 0 ) + { + session->hostname = mbedtls_calloc( 1, session->hostname_len ); + if( session->hostname == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + memcpy( session->hostname, p, session->hostname_len ); + p += session->hostname_len; + } } #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ From 6af2a6da74c62b8e788f40d9e377042404a6f328 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Sat, 8 Oct 2022 10:50:19 +0000 Subject: [PATCH 0563/1028] Fix session save-load overflow issue Signed-off-by: Xiaokang Qian --- library/ssl_tls.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index fa4e6930e5..6a0a67800c 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -297,14 +297,15 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, } #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( src->hostname != NULL ) +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) + if( src->endpoint == MBEDTLS_SSL_IS_CLIENT && src->hostname != NULL ) { dst->hostname = mbedtls_calloc( 1, src->hostname_len ); if( dst->hostname == NULL ) return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); memcpy( dst->hostname, src->hostname, src->hostname_len ); + dst->hostname_len = src->hostname_len; } #endif @@ -1945,6 +1946,7 @@ mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite( /* Serialization of TLS 1.3 sessions: * * struct { + * opaque hostname<1..2^16-1>; * uint64 ticket_received; * uint32 ticket_lifetime; * opaque ticket<1..2^16-1>; @@ -1956,7 +1958,7 @@ mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite( * uint32 ticket_age_add; * uint8 ticket_flags; * opaque resumption_key<0..255>; - * opaque hostname<1..2^8-1>; + * * select ( endpoint ) { * case client: ClientOnlyData; * case server: uint64 start_time; @@ -2021,13 +2023,13 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, memcpy( p, session->resumption_key, session->resumption_key_len ); p += session->resumption_key_len; - p[0] = session->hostname_len; - p++; #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) - if( session->endpoint == MBEDTLS_SSL_IS_CLIENT && - session->hostname_len > 0 && - session->hostname != NULL ) + if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { + p[0] = session->hostname_len; + p++; + if ( session->hostname_len > 0 && + session->hostname != NULL ) /* save host name */ memcpy( p, session->hostname, session->hostname_len ); p += session->hostname_len; @@ -2096,8 +2098,11 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { /* load host name */ + if( end - p < 1 ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); session->hostname_len = p[0]; p += 1; + if( end - p < session->hostname_len ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); if( session->hostname_len > 0 ) From be98f96de2dc7f41497c87e2b48bcaaf6f4d2a6e Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Sat, 8 Oct 2022 11:09:20 +0000 Subject: [PATCH 0564/1028] Remove useless hostname check in server side Signed-off-by: Xiaokang Qian --- library/ssl_tls13_server.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 60b1e05f43..61a1bad578 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -235,20 +235,6 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( (int)age_diff_in_ms ) ); goto exit; } -#if 0 -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( ssl->session_negotiate->hostname != NULL && - ssl->session_negotiate->hostname_len != 0 && - memcmp( ssl->session_negotiate->hostname, - ssl->session->hostname, ssl->session->hostname_len ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "Session hostname not matched with stored session ticket" ) ); - goto exit; - } - -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ -#endif ret = 0; From fb8ac46add99338d5c706555e2621d880f0c1090 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Sat, 8 Oct 2022 11:09:54 +0000 Subject: [PATCH 0565/1028] Change the name of servername when re-connect Signed-off-by: Xiaokang Qian --- programs/ssl/ssl_client2.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index bc93352707..a7705ac9fa 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -366,7 +366,6 @@ int main( void ) "\n usage: ssl_client2 param=<>...\n" \ "\n acceptable parameters:\n" \ " server_name=%%s default: localhost\n" \ - " rec_server_name=%%s default: localhost\n" \ " server_addr=%%s default: given by name\n" \ " server_port=%%d default: 4433\n" \ " request_page=%%s default: \".\"\n" \ @@ -406,6 +405,7 @@ int main( void ) " exchanges=%%d default: 1\n" \ " reconnect=%%d number of reconnections using session resumption\n" \ " default: 0 (disabled)\n" \ + " reco_server_name=%%s default: localhost\n" \ " reco_delay=%%d default: 0 seconds\n" \ " reco_mode=%%d 0: copy session, 1: serialize session\n" \ " default: 1\n" \ @@ -456,7 +456,6 @@ int main( void ) struct options { const char *server_name; /* hostname of the server (client only) */ - const char *rec_s_name; /* hostname of the server (re-connect) */ const char *server_addr; /* address of the server (client only) */ const char *server_port; /* port on which the ssl service runs */ int debug_level; /* level of debugging */ @@ -500,6 +499,7 @@ struct options int recsplit; /* enable record splitting? */ int dhmlen; /* minimum DHM params len in bits */ int reconnect; /* attempt to resume session */ + const char *reco_server_name; /* hostname of the server (re-connect) */ int reco_delay; /* delay in seconds before resuming session */ int reco_mode; /* how to keep the session around */ int reconnect_hard; /* unexpectedly reconnect from the same port */ @@ -878,7 +878,6 @@ int main( int argc, char *argv[] ) } opt.server_name = DFL_SERVER_NAME; - opt.rec_s_name = DFL_SERVER_NAME; opt.server_addr = DFL_SERVER_ADDR; opt.server_port = DFL_SERVER_PORT; opt.debug_level = DFL_DEBUG_LEVEL; @@ -926,6 +925,7 @@ int main( int argc, char *argv[] ) opt.recsplit = DFL_RECSPLIT; opt.dhmlen = DFL_DHMLEN; opt.reconnect = DFL_RECONNECT; + opt.reco_server_name = DFL_SERVER_NAME; opt.reco_delay = DFL_RECO_DELAY; opt.reco_mode = DFL_RECO_MODE; opt.reconnect_hard = DFL_RECONNECT_HARD; @@ -964,8 +964,6 @@ int main( int argc, char *argv[] ) if( strcmp( p, "server_name" ) == 0 ) opt.server_name = q; - else if( strcmp( p, "rec_server_name" ) == 0 ) - opt.rec_s_name = q; else if( strcmp( p, "server_addr" ) == 0 ) opt.server_addr = q; else if( strcmp( p, "server_port" ) == 0 ) @@ -1124,6 +1122,8 @@ int main( int argc, char *argv[] ) if( opt.reconnect < 0 || opt.reconnect > 2 ) goto usage; } + else if( strcmp( p, "rec_server_name" ) == 0 ) + opt.reco_server_name = q; else if( strcmp( p, "reco_delay" ) == 0 ) { opt.reco_delay = atoi( q ); @@ -3120,7 +3120,7 @@ reconnect: #if defined(MBEDTLS_X509_CRT_PARSE_C) if( ( ret = mbedtls_ssl_reset_hostname( &ssl, opt.server_name, - opt.rec_s_name ) ) != 0 ) + opt.reco_server_name ) ) != 0 ) { mbedtls_printf( " failed\n ! mbedtls_ssl_reset_hostname returned %d\n\n", ret ); From adf84a4a8c036268beed5b92a7430e30b905b91a Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Sun, 9 Oct 2022 09:21:22 +0000 Subject: [PATCH 0566/1028] Remove public api mbedtls_ssl_reset_hostname() Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 26 +++----------------------- library/ssl_tls.c | 33 --------------------------------- programs/ssl/ssl_client2.c | 4 ++-- tests/ssl-opt.sh | 2 +- 4 files changed, 6 insertions(+), 59 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 5e493f5f27..e6c545e058 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1182,7 +1182,6 @@ struct mbedtls_ssl_session #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) - uint8_t MBEDTLS_PRIVATE(endpoint); /*!< 0: client, 1: server */ uint8_t MBEDTLS_PRIVATE(ticket_flags); /*!< Ticket flags */ uint32_t MBEDTLS_PRIVATE(ticket_age_add); /*!< Randomly generated value used to obscure the age of the ticket */ uint8_t MBEDTLS_PRIVATE(resumption_key_len); /*!< resumption_key length */ @@ -1200,12 +1199,14 @@ struct mbedtls_ssl_session #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_tls13_application_secrets MBEDTLS_PRIVATE(app_secrets); -#endif + + uint8_t MBEDTLS_PRIVATE(endpoint); /*!< 0: client, 1: server */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) uint8_t MBEDTLS_PRIVATE(hostname_len); /*!< host_name length */ char *MBEDTLS_PRIVATE(hostname); /*!< host name binded with tickets */ uint8_t hostname_mismatch; /*!< whether new host_name match with saved one */ #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ }; /* @@ -3667,27 +3668,6 @@ void mbedtls_ssl_conf_sig_algs( mbedtls_ssl_config *conf, * On too long input failure, old hostname is unchanged. */ int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ); - -/** - * \brief Reset the hostname to the new server name when reconnection. - * - * \param ssl SSL context - * \param hostname the server hostname, may be NULL - * \param rec_hostname the server rec_hostname, may be NULL - - * \note Maximum hostname length MBEDTLS_SSL_MAX_HOST_NAME_LEN. - * - * \return 0 if successful, MBEDTLS_ERR_SSL_ALLOC_FAILED on - * allocation failure, MBEDTLS_ERR_SSL_BAD_INPUT_DATA on - * too long input rec_hostname. - * - * Rec_hostname set to the one provided on success. - * On allocation failure hostname is unchanged. - * On too long input failure, old hostname is unchanged. - */ -int mbedtls_ssl_reset_hostname( mbedtls_ssl_context *ssl, - const char *hostname, - const char *rec_hostname ); #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 6a0a67800c..abadc80d01 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -2484,39 +2484,6 @@ int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ) return( 0 ); } - -int mbedtls_ssl_reset_hostname( mbedtls_ssl_context *ssl, - const char *hostname, - const char *rec_hostname ) -{ - /* Initialize to suppress unnecessary compiler warning */ - size_t rec_hostname_len = 0; - - if( hostname == NULL || rec_hostname == NULL ) - return( 0 ); - - rec_hostname_len = strlen( rec_hostname ); - if( rec_hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - - if( rec_hostname_len == strlen( hostname ) && - memcmp( hostname, rec_hostname, rec_hostname_len ) == 0 ) - return( 0 ); - - if( ssl->hostname != NULL ) - { - mbedtls_platform_zeroize( ssl->hostname, strlen( ssl->hostname ) ); - mbedtls_free( ssl->hostname ); - ssl->hostname = NULL; - ssl->hostname = mbedtls_calloc( 1, rec_hostname_len + 1 ); - if( ssl->hostname == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - memcpy( ssl->hostname, rec_hostname, rec_hostname_len ); - ssl->hostname[rec_hostname_len] = '\0'; - } - - return( 0 ); -} #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index a7705ac9fa..9102ab40a1 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -3119,10 +3119,10 @@ reconnect: } #if defined(MBEDTLS_X509_CRT_PARSE_C) - if( ( ret = mbedtls_ssl_reset_hostname( &ssl, opt.server_name, + if( ( ret = mbedtls_ssl_set_hostname( &ssl, opt.reco_server_name ) ) != 0 ) { - mbedtls_printf( " failed\n ! mbedtls_ssl_reset_hostname returned %d\n\n", + mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret ); goto exit; } diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 414b8607bb..2a63610df7 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12909,7 +12909,7 @@ run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ -c "got new session ticket." \ -c "Saving session for reuse... ok" \ -c "Reconnecting with saved session" \ - -c "hostname mismatch the session ticker, should not resume" \ + -c "hostname mismatch the session ticket, should not resume" \ -s "=> write NewSessionTicket msg" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" From bc663a04612be598fad51ecf5450345196ee50ae Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Sun, 9 Oct 2022 11:14:39 +0000 Subject: [PATCH 0567/1028] Refine code based on commnets Change code layout Change hostname_len type to size_t Fix various issues Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 3 +-- library/ssl_client.c | 46 ++++++++++++++++++++++-------------- library/ssl_misc.h | 4 ++++ library/ssl_tls.c | 37 ++++++++++++++++------------- library/ssl_tls13_generic.c | 47 +++++++++++++++++++++++++++++++++++++ programs/ssl/ssl_client2.c | 2 +- 6 files changed, 102 insertions(+), 37 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index e6c545e058..93ad7f3512 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1202,9 +1202,8 @@ struct mbedtls_ssl_session uint8_t MBEDTLS_PRIVATE(endpoint); /*!< 0: client, 1: server */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - uint8_t MBEDTLS_PRIVATE(hostname_len); /*!< host_name length */ + size_t MBEDTLS_PRIVATE(hostname_len); /*!< host_name length */ char *MBEDTLS_PRIVATE(hostname); /*!< host name binded with tickets */ - uint8_t hostname_mismatch; /*!< whether new host_name match with saved one */ #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ }; diff --git a/library/ssl_client.c b/library/ssl_client.c index 2c5f664945..8080e3ee79 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -54,7 +54,6 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, { unsigned char *p = buf; size_t hostname_len; - size_t cmp_hostname_len; *olen = 0; @@ -65,25 +64,8 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, ( "client hello, adding server name extension: %s", ssl->hostname ) ); - ssl->session_negotiate->hostname_mismatch = 0; hostname_len = strlen( ssl->hostname ); - cmp_hostname_len = hostname_len < ssl->session_negotiate->hostname_len ? - hostname_len : ssl->session_negotiate->hostname_len; - - if( hostname_len != ssl->session_negotiate->hostname_len || - memcmp( ssl->hostname, ssl->session_negotiate->hostname, cmp_hostname_len ) ) - ssl->session_negotiate->hostname_mismatch = 1; - - if( ssl->session_negotiate->hostname == NULL ) - { - ssl->session_negotiate->hostname = mbedtls_calloc( 1, hostname_len ); - if( ssl->session_negotiate->hostname == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - memcpy(ssl->session_negotiate->hostname, ssl->hostname, hostname_len); - } - ssl->session_negotiate->hostname_len = hostname_len; - MBEDTLS_SSL_CHK_BUF_PTR( p, end, hostname_len + 9 ); /* @@ -888,6 +870,34 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) } } +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + if( ssl->handshake->resume ) + { + if( ssl->hostname != NULL && ssl->session_negotiate->hostname != NULL ) + { + if( strcmp( ssl->hostname, ssl->session_negotiate->hostname ) ) + { + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "hostname mismatch the session ticket, should not resume " ) ); + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + } + } + else if( ssl->session_negotiate->hostname != NULL ) + { + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "hostname missed, should not resume " ) ); + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + } + } + else + { + mbedtls_ssl_session_set_hostname( ssl->session_negotiate, + ssl->hostname ); + } +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && + MBEDTLS_SSL_SERVER_NAME_INDICATION */ + return( 0 ); } /* diff --git a/library/ssl_misc.h b/library/ssl_misc.h index afacb76f01..f92a4dbecc 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2201,6 +2201,10 @@ static inline int mbedtls_ssl_tls13_sig_alg_is_supported( return( 1 ); } +#if defined(MBEDTLS_X509_CRT_PARSE_C) +int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *ssl, + const char *hostname ); +#endif #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index abadc80d01..959d01540d 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -297,14 +297,16 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, } #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ + defined(MBEDTLS_SSL_CLI_C) if( src->endpoint == MBEDTLS_SSL_IS_CLIENT && src->hostname != NULL ) { - dst->hostname = mbedtls_calloc( 1, src->hostname_len ); + dst->hostname = mbedtls_calloc( 1, src->hostname_len + 1 ); if( dst->hostname == NULL ) return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - memcpy( dst->hostname, src->hostname, src->hostname_len ); + strcpy( dst->hostname, src->hostname ); dst->hostname_len = src->hostname_len; } #endif @@ -1958,7 +1960,6 @@ mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite( * uint32 ticket_age_add; * uint8 ticket_flags; * opaque resumption_key<0..255>; - * * select ( endpoint ) { * case client: ClientOnlyData; * case server: uint64 start_time; @@ -1993,7 +1994,7 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - needed += 1 /* hostname_len */ + needed += 2 /* hostname_len */ + session->hostname_len; /* hostname */ #endif @@ -2026,13 +2027,15 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { - p[0] = session->hostname_len; - p++; + MBEDTLS_PUT_UINT16_BE( session->hostname_len, p, 0 ); + p += 2; if ( session->hostname_len > 0 && session->hostname != NULL ) - /* save host name */ - memcpy( p, session->hostname, session->hostname_len ); - p += session->hostname_len; + { + /* save host name */ + memcpy( p, session->hostname, session->hostname_len ); + p += session->hostname_len; + } } #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ @@ -2098,19 +2101,20 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { /* load host name */ - if( end - p < 1 ) + if( end - p < 2 ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - session->hostname_len = p[0]; - p += 1; + session->hostname_len = MBEDTLS_GET_UINT16_BE( p, 0); + p += 2; - if( end - p < session->hostname_len ) + if( end - p < ( long int )session->hostname_len ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); if( session->hostname_len > 0 ) { - session->hostname = mbedtls_calloc( 1, session->hostname_len ); + session->hostname = mbedtls_calloc( 1, session->hostname_len + 1 ); if( session->hostname == NULL ) return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); memcpy( session->hostname, p, session->hostname_len ); + session->hostname[session->hostname_len] = '\0'; p += session->hostname_len; } } @@ -3733,7 +3737,8 @@ void mbedtls_ssl_session_free( mbedtls_ssl_session *session ) mbedtls_free( session->ticket ); #endif -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) mbedtls_free( session->hostname ); #endif diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index abb7a14816..1b827ac60e 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1485,4 +1485,51 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( } #endif /* MBEDTLS_ECDH_C */ +#if defined(MBEDTLS_X509_CRT_PARSE_C) +int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *ssl, + const char *hostname ) +{ + /* Initialize to suppress unnecessary compiler warning */ + size_t hostname_len = 0; + + /* Check if new hostname is valid before + * making any change to current one */ + if( hostname != NULL ) + { + hostname_len = strlen( hostname ); + + if( hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + } + + /* Now it's clear that we will overwrite the old hostname, + * so we can free it safely */ + + if( ssl->hostname != NULL ) + { + mbedtls_platform_zeroize( ssl->hostname, strlen( ssl->hostname ) ); + mbedtls_free( ssl->hostname ); + } + + /* Passing NULL as hostname shall clear the old one */ + + if( hostname == NULL ) + { + ssl->hostname = NULL; + } + else + { + ssl->hostname = mbedtls_calloc( 1, hostname_len + 1 ); + if( ssl->hostname == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + + memcpy( ssl->hostname, hostname, hostname_len ); + + ssl->hostname[hostname_len] = '\0'; + ssl->hostname_len = hostname_len; + } + + return( 0 ); +} +#endif /* MBEDTLS_X509_CRT_PARSE_C */ #endif /* MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 9102ab40a1..be474d4737 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -3120,7 +3120,7 @@ reconnect: #if defined(MBEDTLS_X509_CRT_PARSE_C) if( ( ret = mbedtls_ssl_set_hostname( &ssl, - opt.reco_server_name ) ) != 0 ) + opt.reco_server_name ) ) != 0 ) { mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret ); From 2f9efd3038468da8760149d17716b4ec3bb0c5b3 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Mon, 10 Oct 2022 11:24:08 +0000 Subject: [PATCH 0568/1028] Address comments base on review Change function name to ssl_session_set_hostname() Remove hostname_len Change hostname to c_string Update test cases to multi session tickets Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 1 - library/ssl_client.c | 56 +++++++++++++++++++++++++++++++++++-- library/ssl_misc.h | 5 ---- library/ssl_tls.c | 32 +++++++++++---------- library/ssl_tls13_generic.c | 47 ------------------------------- tests/ssl-opt.sh | 4 +-- 6 files changed, 72 insertions(+), 73 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 93ad7f3512..0efc8e7c81 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1202,7 +1202,6 @@ struct mbedtls_ssl_session uint8_t MBEDTLS_PRIVATE(endpoint); /*!< 0: client, 1: server */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - size_t MBEDTLS_PRIVATE(hostname_len); /*!< host_name length */ char *MBEDTLS_PRIVATE(hostname); /*!< host name binded with tickets */ #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_client.c b/library/ssl_client.c index 8080e3ee79..0fda2712e4 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -713,6 +713,51 @@ static int ssl_generate_random( mbedtls_ssl_context *ssl ) MBEDTLS_CLIENT_HELLO_RANDOM_LEN - gmt_unix_time_len ); return( ret ); } + +static int ssl_session_set_hostname( mbedtls_ssl_session *session, + const char *hostname ) +{ + /* Initialize to suppress unnecessary compiler warning */ + size_t hostname_len = 0; + + /* Check if new hostname is valid before + * making any change to current one */ + if( hostname != NULL ) + { + hostname_len = strlen( hostname ); + + if( hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + } + + /* Now it's clear that we will overwrite the old hostname, + * so we can free it safely */ + + if( session->hostname != NULL ) + { + mbedtls_platform_zeroize( session->hostname, + strlen( session->hostname ) ); + mbedtls_free( session->hostname ); + } + + /* Passing NULL as hostname shall clear the old one */ + + if( hostname == NULL ) + { + session->hostname = NULL; + } + else + { + session->hostname = mbedtls_calloc( 1, hostname_len + 1 ); + if( session->hostname == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + + memcpy( session->hostname, hostname, hostname_len ); + } + + return( 0 ); +} + MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) { @@ -876,7 +921,12 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) { if( ssl->hostname != NULL && ssl->session_negotiate->hostname != NULL ) { - if( strcmp( ssl->hostname, ssl->session_negotiate->hostname ) ) + size_t hostname_len = strlen( ssl->hostname ); + size_t negotiate_hostname_len = + strlen( ssl->session_negotiate->hostname ); + if( hostname_len != negotiate_hostname_len || \ + strncmp( ssl->hostname, ssl->session_negotiate->hostname, + hostname_len ) ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "hostname mismatch the session ticket, should not resume " ) ); @@ -892,8 +942,8 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) } else { - mbedtls_ssl_session_set_hostname( ssl->session_negotiate, - ssl->hostname ); + ssl_session_set_hostname( ssl->session_negotiate, + ssl->hostname ); } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SERVER_NAME_INDICATION */ diff --git a/library/ssl_misc.h b/library/ssl_misc.h index f92a4dbecc..3ac81a365d 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2200,11 +2200,6 @@ static inline int mbedtls_ssl_tls13_sig_alg_is_supported( } return( 1 ); } - -#if defined(MBEDTLS_X509_CRT_PARSE_C) -int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *ssl, - const char *hostname ); -#endif #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 959d01540d..35e9fecf5d 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -302,12 +302,12 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, defined(MBEDTLS_SSL_CLI_C) if( src->endpoint == MBEDTLS_SSL_IS_CLIENT && src->hostname != NULL ) { - dst->hostname = mbedtls_calloc( 1, src->hostname_len + 1 ); + size_t hostname_len = strlen( src->hostname ); + dst->hostname = mbedtls_calloc( 1, hostname_len + 1 ); if( dst->hostname == NULL ) return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - strcpy( dst->hostname, src->hostname ); - dst->hostname_len = src->hostname_len; + strncpy( dst->hostname, src->hostname, hostname_len ); } #endif @@ -1993,9 +1993,10 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { + size_t hostname_len = session->hostname == NULL?0:strlen( session->hostname ); #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) needed += 2 /* hostname_len */ - + session->hostname_len; /* hostname */ + + hostname_len; /* hostname */ #endif needed += 4 /* ticket_lifetime */ @@ -2027,14 +2028,15 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { - MBEDTLS_PUT_UINT16_BE( session->hostname_len, p, 0 ); + size_t hostname_len = session->hostname == NULL?0:strlen(session->hostname); + MBEDTLS_PUT_UINT16_BE( hostname_len, p, 0 ); p += 2; - if ( session->hostname_len > 0 && + if ( hostname_len > 0 && session->hostname != NULL ) { /* save host name */ - memcpy( p, session->hostname, session->hostname_len ); - p += session->hostname_len; + memcpy( p, session->hostname, hostname_len ); + p += hostname_len; } } #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ @@ -2100,22 +2102,22 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { + size_t hostname_len; /* load host name */ if( end - p < 2 ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - session->hostname_len = MBEDTLS_GET_UINT16_BE( p, 0); + hostname_len = MBEDTLS_GET_UINT16_BE( p, 0); p += 2; - if( end - p < ( long int )session->hostname_len ) + if( end - p < ( long int )hostname_len ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - if( session->hostname_len > 0 ) + if( hostname_len > 0 ) { - session->hostname = mbedtls_calloc( 1, session->hostname_len + 1 ); + session->hostname = mbedtls_calloc( 1, hostname_len + 1 ); if( session->hostname == NULL ) return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - memcpy( session->hostname, p, session->hostname_len ); - session->hostname[session->hostname_len] = '\0'; - p += session->hostname_len; + memcpy( session->hostname, p, hostname_len ); + p += hostname_len; } } #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 1b827ac60e..abb7a14816 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1485,51 +1485,4 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( } #endif /* MBEDTLS_ECDH_C */ -#if defined(MBEDTLS_X509_CRT_PARSE_C) -int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *ssl, - const char *hostname ) -{ - /* Initialize to suppress unnecessary compiler warning */ - size_t hostname_len = 0; - - /* Check if new hostname is valid before - * making any change to current one */ - if( hostname != NULL ) - { - hostname_len = strlen( hostname ); - - if( hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - } - - /* Now it's clear that we will overwrite the old hostname, - * so we can free it safely */ - - if( ssl->hostname != NULL ) - { - mbedtls_platform_zeroize( ssl->hostname, strlen( ssl->hostname ) ); - mbedtls_free( ssl->hostname ); - } - - /* Passing NULL as hostname shall clear the old one */ - - if( hostname == NULL ) - { - ssl->hostname = NULL; - } - else - { - ssl->hostname = mbedtls_calloc( 1, hostname_len + 1 ); - if( ssl->hostname == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - - memcpy( ssl->hostname, hostname, hostname_len ); - - ssl->hostname[hostname_len] = '\0'; - ssl->hostname_len = hostname_len; - } - - return( 0 ); -} -#endif /* MBEDTLS_X509_CRT_PARSE_C */ #endif /* MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 2a63610df7..2be5506a41 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12879,7 +12879,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C run_test "TLS 1.3: NewSessionTicket: servername check, m->m" \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=1 \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ "$P_CLI debug_level=4 server_name=localhost reco_mode=1 reconnect=1" \ 0 \ @@ -12901,7 +12901,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=1 \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ "$P_CLI debug_level=4 server_name=localhost rec_server_name=remote reco_mode=1 reconnect=1" \ 1 \ From a3b451f9502b495171a2df825dc78be6452b286f Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 11 Oct 2022 06:20:56 +0000 Subject: [PATCH 0569/1028] Adress kinds of comments base on review Rename function name to mbedtls_ssl_session_set_hostname Add two extra check cases for server name Fix some coding styles Signed-off-by: Xiaokang Qian --- library/ssl_client.c | 81 ++++++++++---------------------------------- library/ssl_misc.h | 7 ++++ library/ssl_tls.c | 67 +++++++++++++++++++++++++++++------- 3 files changed, 80 insertions(+), 75 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 0fda2712e4..993539573b 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -714,50 +714,6 @@ static int ssl_generate_random( mbedtls_ssl_context *ssl ) return( ret ); } -static int ssl_session_set_hostname( mbedtls_ssl_session *session, - const char *hostname ) -{ - /* Initialize to suppress unnecessary compiler warning */ - size_t hostname_len = 0; - - /* Check if new hostname is valid before - * making any change to current one */ - if( hostname != NULL ) - { - hostname_len = strlen( hostname ); - - if( hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - } - - /* Now it's clear that we will overwrite the old hostname, - * so we can free it safely */ - - if( session->hostname != NULL ) - { - mbedtls_platform_zeroize( session->hostname, - strlen( session->hostname ) ); - mbedtls_free( session->hostname ); - } - - /* Passing NULL as hostname shall clear the old one */ - - if( hostname == NULL ) - { - session->hostname = NULL; - } - else - { - session->hostname = mbedtls_calloc( 1, hostname_len + 1 ); - if( session->hostname == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - - memcpy( session->hostname, hostname, hostname_len ); - } - - return( 0 ); -} - MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) { @@ -917,34 +873,33 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( ssl->handshake->resume ) + if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && + ssl->handshake->resume ) { - if( ssl->hostname != NULL && ssl->session_negotiate->hostname != NULL ) + int hostname_mismatch = 0; + if( ssl->session_negotiate->hostname != NULL ) { - size_t hostname_len = strlen( ssl->hostname ); - size_t negotiate_hostname_len = - strlen( ssl->session_negotiate->hostname ); - if( hostname_len != negotiate_hostname_len || \ - strncmp( ssl->hostname, ssl->session_negotiate->hostname, - hostname_len ) ) + if( ssl->hostname != NULL ) { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "hostname mismatch the session ticket, should not resume " ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if( strcmp( ssl->hostname, ssl->session_negotiate->hostname) ) + hostname_mismatch = 1; } + else + hostname_mismatch = 1; } - else if( ssl->session_negotiate->hostname != NULL ) + else + hostname_mismatch = ssl->hostname != NULL; + + if( hostname_mismatch ) { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "hostname missed, should not resume " ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "hostname mismatch the session ticket, should not resume " ) ); + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } } else - { - ssl_session_set_hostname( ssl->session_negotiate, - ssl->hostname ); - } + mbedtls_ssl_session_set_hostname( ssl->session_negotiate, + ssl->hostname ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SERVER_NAME_INDICATION */ diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 3ac81a365d..f20897d1c3 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2200,6 +2200,7 @@ static inline int mbedtls_ssl_tls13_sig_alg_is_supported( } return( 1 ); } + #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) @@ -2493,4 +2494,10 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( unsigned char *buf, unsigned char *end ); #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) +int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, + const char *hostname ); +#endif + #endif /* ssl_misc.h */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 35e9fecf5d..062259b5cd 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -300,14 +300,11 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ defined(MBEDTLS_SSL_CLI_C) - if( src->endpoint == MBEDTLS_SSL_IS_CLIENT && src->hostname != NULL ) + if( src->endpoint == MBEDTLS_SSL_IS_CLIENT ) { - size_t hostname_len = strlen( src->hostname ); - dst->hostname = mbedtls_calloc( 1, hostname_len + 1 ); - if( dst->hostname == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - - strncpy( dst->hostname, src->hostname, hostname_len ); + dst->hostname = NULL; + mbedtls_ssl_session_set_hostname( dst, + src->hostname ); } #endif @@ -1975,6 +1972,11 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, size_t *olen ) { unsigned char *p = buf; +#if defined(MBEDTLS_SSL_CLI_C) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + size_t hostname_len = ( session->hostname == NULL ) ? + 0 : strlen( session->hostname ); +#endif size_t needed = 1 /* endpoint */ + 2 /* ciphersuite */ + 4 /* ticket_age_add */ @@ -1993,7 +1995,6 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { - size_t hostname_len = session->hostname == NULL?0:strlen( session->hostname ); #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) needed += 2 /* hostname_len */ + hostname_len; /* hostname */ @@ -2028,7 +2029,6 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { - size_t hostname_len = session->hostname == NULL?0:strlen(session->hostname); MBEDTLS_PUT_UINT16_BE( hostname_len, p, 0 ); p += 2; if ( hostname_len > 0 && @@ -2106,7 +2106,7 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, /* load host name */ if( end - p < 2 ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - hostname_len = MBEDTLS_GET_UINT16_BE( p, 0); + hostname_len = MBEDTLS_GET_UINT16_BE( p, 0 ); p += 2; if( end - p < ( long int )hostname_len ) @@ -2464,7 +2464,6 @@ int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ) /* Now it's clear that we will overwrite the old hostname, * so we can free it safely */ - if( ssl->hostname != NULL ) { mbedtls_platform_zeroize( ssl->hostname, strlen( ssl->hostname ) ); @@ -2472,7 +2471,6 @@ int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ) } /* Passing NULL as hostname shall clear the old one */ - if( hostname == NULL ) { ssl->hostname = NULL; @@ -8863,4 +8861,49 @@ int mbedtls_ssl_write_alpn_ext( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_SSL_ALPN */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) +int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, + const char *hostname ) +{ + /* Initialize to suppress unnecessary compiler warning */ + size_t hostname_len = 0; + + /* Check if new hostname is valid before + * making any change to current one */ + if( hostname != NULL ) + { + hostname_len = strlen( hostname ); + + if( hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + } + + /* Now it's clear that we will overwrite the old hostname, + * so we can free it safely */ + if( session->hostname != NULL ) + { + mbedtls_platform_zeroize( session->hostname, + strlen( session->hostname ) ); + mbedtls_free( session->hostname ); + } + + /* Passing NULL as hostname shall clear the old one */ + if( hostname == NULL ) + { + session->hostname = NULL; + } + else + { + session->hostname = mbedtls_calloc( 1, hostname_len + 1 ); + if( session->hostname == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + + memcpy( session->hostname, hostname, hostname_len ); + } + + return( 0 ); +} +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SERVER_NAME_INDICATION */ + #endif /* MBEDTLS_SSL_TLS_C */ From d7adc374d325dea0647e0c0c99b1270046116f90 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 11 Oct 2022 09:05:11 +0000 Subject: [PATCH 0570/1028] Refine the server name compare logic Signed-off-by: Xiaokang Qian --- library/ssl_client.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 993539573b..48a19c9e4d 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -876,19 +876,11 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && ssl->handshake->resume ) { - int hostname_mismatch = 0; - if( ssl->session_negotiate->hostname != NULL ) - { - if( ssl->hostname != NULL ) - { - if( strcmp( ssl->hostname, ssl->session_negotiate->hostname) ) - hostname_mismatch = 1; - } - else - hostname_mismatch = 1; - } - else - hostname_mismatch = ssl->hostname != NULL; + int hostname_mismatch = ssl->hostname != NULL || + ssl->session_negotiate->hostname != NULL; + if( ssl->hostname != NULL && ssl->session_negotiate->hostname != NULL ) + hostname_mismatch = strcmp( + ssl->hostname, ssl->session_negotiate->hostname ) != 0; if( hostname_mismatch ) { From 03409290d2bd418d0e105f1283b131f5dbe15d6f Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 12 Oct 2022 02:49:52 +0000 Subject: [PATCH 0571/1028] Add MBEDTLS_SSL_SESSION_TICKETS guard to server name check Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 7 ++++--- library/ssl_client.c | 11 ++++++++--- library/ssl_misc.h | 2 ++ library/ssl_tls.c | 30 ++++++++++++++++++++++-------- 4 files changed, 36 insertions(+), 14 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 0efc8e7c81..4cf67044ae 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1182,6 +1182,7 @@ struct mbedtls_ssl_session #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) + uint8_t MBEDTLS_PRIVATE(endpoint); /*!< 0: client, 1: server */ uint8_t MBEDTLS_PRIVATE(ticket_flags); /*!< Ticket flags */ uint32_t MBEDTLS_PRIVATE(ticket_age_add); /*!< Randomly generated value used to obscure the age of the ticket */ uint8_t MBEDTLS_PRIVATE(resumption_key_len); /*!< resumption_key length */ @@ -1200,10 +1201,10 @@ struct mbedtls_ssl_session #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_tls13_application_secrets MBEDTLS_PRIVATE(app_secrets); - uint8_t MBEDTLS_PRIVATE(endpoint); /*!< 0: client, 1: server */ -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) char *MBEDTLS_PRIVATE(hostname); /*!< host name binded with tickets */ -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_SESSION_TICKETS */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ }; diff --git a/library/ssl_client.c b/library/ssl_client.c index 48a19c9e4d..baf82a69de 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -872,6 +872,7 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && ssl->handshake->resume ) @@ -885,14 +886,18 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) if( hostname_mismatch ) { MBEDTLS_SSL_DEBUG_MSG( 1, - ( "hostname mismatch the session ticket, should not resume " ) ); + ( "hostname mismatch the session ticket," + " should not resume " ) ); return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } } else - mbedtls_ssl_session_set_hostname( ssl->session_negotiate, - ssl->hostname ); + { + return mbedtls_ssl_session_set_hostname( ssl->session_negotiate, + ssl->hostname ); + } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && + MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_SERVER_NAME_INDICATION */ return( 0 ); diff --git a/library/ssl_misc.h b/library/ssl_misc.h index f20897d1c3..6ba9ad519e 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2495,7 +2495,9 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) +MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, const char *hostname ); #endif diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 062259b5cd..6563b907c5 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -298,13 +298,14 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ defined(MBEDTLS_SSL_CLI_C) if( src->endpoint == MBEDTLS_SSL_IS_CLIENT ) { dst->hostname = NULL; - mbedtls_ssl_session_set_hostname( dst, - src->hostname ); + return mbedtls_ssl_session_set_hostname( dst, + src->hostname ); } #endif @@ -1973,6 +1974,7 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, { unsigned char *p = buf; #if defined(MBEDTLS_SSL_CLI_C) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) size_t hostname_len = ( session->hostname == NULL ) ? 0 : strlen( session->hostname ); @@ -1995,7 +1997,8 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) needed += 2 /* hostname_len */ + hostname_len; /* hostname */ #endif @@ -2026,7 +2029,9 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, memcpy( p, session->resumption_key, session->resumption_key_len ); p += session->resumption_key_len; -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ + defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { MBEDTLS_PUT_UINT16_BE( hostname_len, p, 0 ); @@ -2039,7 +2044,9 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, p += hostname_len; } } -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && + MBEDTLS_SSL_SESSION_TICKETS && + MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_SRV_C) if( session->endpoint == MBEDTLS_SSL_IS_SERVER ) @@ -2099,7 +2106,9 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, memcpy( session->resumption_key, p, session->resumption_key_len ); p += session->resumption_key_len; -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ + defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { size_t hostname_len; @@ -2120,7 +2129,9 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, p += hostname_len; } } -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && + MBEDTLS_SSL_SESSION_TICKETS && + MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_SRV_C) if( session->endpoint == MBEDTLS_SSL_IS_SERVER ) @@ -8862,6 +8873,7 @@ int mbedtls_ssl_write_alpn_ext( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_SSL_ALPN */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, const char *hostname ) @@ -8904,6 +8916,8 @@ int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, return( 0 ); } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SERVER_NAME_INDICATION */ +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && + MBEDTLS_SSL_SESSION_TICKETS && + MBEDTLS_SSL_SERVER_NAME_INDICATION */ #endif /* MBEDTLS_SSL_TLS_C */ From ed0620cb1372f8e17da6d771bc26a8f41089bfe2 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 12 Oct 2022 06:58:13 +0000 Subject: [PATCH 0572/1028] Refine code base on comments Move code to proper macro guards protection Fix typo issues Signed-off-by: Xiaokang Qian --- library/ssl_client.c | 6 +-- library/ssl_misc.h | 3 +- library/ssl_tls.c | 101 +++++++++++++++++++------------------------ tests/ssl-opt.sh | 2 +- 4 files changed, 51 insertions(+), 61 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index baf82a69de..341e882cce 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -885,9 +885,9 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) if( hostname_mismatch ) { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "hostname mismatch the session ticket," - " should not resume " ) ); + MBEDTLS_SSL_DEBUG_MSG( + 1, ( "Hostname mismatch the session ticket, " + "disable session resumption." ) ); return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } } diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 6ba9ad519e..82a0d5c8a2 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2496,7 +2496,8 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SESSION_TICKETS) && \ - defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ + defined(MBEDTLS_SSL_TLS_C) MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, const char *hostname ); diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 6563b907c5..521b922b7d 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -295,12 +295,9 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, memcpy( dst->ticket, src->ticket, src->ticket_len ); } -#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_SSL_SESSION_TICKETS) && \ - defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ - defined(MBEDTLS_SSL_CLI_C) + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) if( src->endpoint == MBEDTLS_SSL_IS_CLIENT ) { dst->hostname = NULL; @@ -308,6 +305,7 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, src->hostname ); } #endif +#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ return( 0 ); } @@ -1974,10 +1972,9 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, { unsigned char *p = buf; #if defined(MBEDTLS_SSL_CLI_C) && \ - defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) size_t hostname_len = ( session->hostname == NULL ) ? - 0 : strlen( session->hostname ); + 0 : strlen( session->hostname ) + 1; #endif size_t needed = 1 /* endpoint */ + 2 /* ciphersuite */ @@ -2029,24 +2026,7 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, memcpy( p, session->resumption_key, session->resumption_key_len ); p += session->resumption_key_len; -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ - defined(MBEDTLS_SSL_SESSION_TICKETS) && \ - defined(MBEDTLS_SSL_CLI_C) - if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { - MBEDTLS_PUT_UINT16_BE( hostname_len, p, 0 ); - p += 2; - if ( hostname_len > 0 && - session->hostname != NULL ) - { - /* save host name */ - memcpy( p, session->hostname, hostname_len ); - p += hostname_len; - } - } -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && - MBEDTLS_SSL_SESSION_TICKETS && - MBEDTLS_SSL_CLI_C */ + #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_SRV_C) if( session->endpoint == MBEDTLS_SSL_IS_SERVER ) @@ -2059,6 +2039,17 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + MBEDTLS_PUT_UINT16_BE( hostname_len, p, 0 ); + p += 2; + if ( hostname_len > 0 ) + { + /* save host name */ + memcpy( p, session->hostname, hostname_len ); + p += hostname_len; + } +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ + #if defined(MBEDTLS_HAVE_TIME) MBEDTLS_PUT_UINT64_BE( (uint64_t) session->ticket_received, p, 0 ); p += 8; @@ -2106,33 +2097,6 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, memcpy( session->resumption_key, p, session->resumption_key_len ); p += session->resumption_key_len; -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ - defined(MBEDTLS_SSL_SESSION_TICKETS) && \ - defined(MBEDTLS_SSL_CLI_C) - if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { - size_t hostname_len; - /* load host name */ - if( end - p < 2 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - hostname_len = MBEDTLS_GET_UINT16_BE( p, 0 ); - p += 2; - - if( end - p < ( long int )hostname_len ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - if( hostname_len > 0 ) - { - session->hostname = mbedtls_calloc( 1, hostname_len + 1 ); - if( session->hostname == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - memcpy( session->hostname, p, hostname_len ); - p += hostname_len; - } - } -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && - MBEDTLS_SSL_SESSION_TICKETS && - MBEDTLS_SSL_CLI_C */ - #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_SRV_C) if( session->endpoint == MBEDTLS_SSL_IS_SERVER ) { @@ -2146,6 +2110,28 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) + size_t hostname_len; + /* load host name */ + if( end - p < 2 ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + hostname_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + p += 2; + + if( end - p < ( long int )hostname_len ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if( hostname_len > 0 ) + { + session->hostname = mbedtls_calloc( 1, hostname_len ); + if( session->hostname == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + memcpy( session->hostname, p, hostname_len ); + p += hostname_len; + } +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && + MBEDTLS_SSL_SESSION_TICKETS */ + #if defined(MBEDTLS_HAVE_TIME) if( end - p < 8 ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); @@ -2475,6 +2461,7 @@ int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ) /* Now it's clear that we will overwrite the old hostname, * so we can free it safely */ + if( ssl->hostname != NULL ) { mbedtls_platform_zeroize( ssl->hostname, strlen( ssl->hostname ) ); @@ -2482,6 +2469,7 @@ int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ) } /* Passing NULL as hostname shall clear the old one */ + if( hostname == NULL ) { ssl->hostname = NULL; @@ -3745,13 +3733,12 @@ void mbedtls_ssl_session_free( mbedtls_ssl_session *session ) #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) - mbedtls_free( session->ticket ); -#endif - #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) mbedtls_free( session->hostname ); #endif + mbedtls_free( session->ticket ); +#endif mbedtls_platform_zeroize( session, sizeof( mbedtls_ssl_session ) ); } @@ -8874,7 +8861,8 @@ int mbedtls_ssl_write_alpn_ext( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SESSION_TICKETS) && \ - defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ + defined(MBEDTLS_SSL_TLS_C) int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, const char *hostname ) { @@ -8918,6 +8906,7 @@ int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS && - MBEDTLS_SSL_SERVER_NAME_INDICATION */ + MBEDTLS_SSL_SERVER_NAME_INDICATION && + MBEDTLS_SSL_TLS_C */ #endif /* MBEDTLS_SSL_TLS_C */ diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 2be5506a41..f6437f5153 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12909,7 +12909,7 @@ run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ -c "got new session ticket." \ -c "Saving session for reuse... ok" \ -c "Reconnecting with saved session" \ - -c "hostname mismatch the session ticket, should not resume" \ + -c "Hostname mismatch the session ticket, disable session resumption." \ -s "=> write NewSessionTicket msg" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" From ed3afcd6c31a12e33fe02a70d646dcf4f90e3259 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 12 Oct 2022 08:31:11 +0000 Subject: [PATCH 0573/1028] Fix various typo and macro guards issues Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 8 ++++---- library/ssl_client.c | 2 ++ library/ssl_misc.h | 2 +- library/ssl_tls.c | 4 ++-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 4cf67044ae..88ccb27c4f 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1188,6 +1188,10 @@ struct mbedtls_ssl_session uint8_t MBEDTLS_PRIVATE(resumption_key_len); /*!< resumption_key length */ unsigned char MBEDTLS_PRIVATE(resumption_key)[MBEDTLS_SSL_TLS1_3_TICKET_RESUMPTION_KEY_LEN]; +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) + char *MBEDTLS_PRIVATE(hostname); /*!< host name binded with tickets */ +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ + #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_CLI_C) mbedtls_time_t MBEDTLS_PRIVATE(ticket_received); /*!< time ticket was received */ #endif /* MBEDTLS_HAVE_TIME && MBEDTLS_SSL_CLI_C */ @@ -1201,10 +1205,6 @@ struct mbedtls_ssl_session #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_tls13_application_secrets MBEDTLS_PRIVATE(app_secrets); -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ - defined(MBEDTLS_SSL_SESSION_TICKETS) - char *MBEDTLS_PRIVATE(hostname); /*!< host name binded with tickets */ -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_SESSION_TICKETS */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ }; diff --git a/library/ssl_client.c b/library/ssl_client.c index 341e882cce..10566deaa9 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -880,8 +880,10 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) int hostname_mismatch = ssl->hostname != NULL || ssl->session_negotiate->hostname != NULL; if( ssl->hostname != NULL && ssl->session_negotiate->hostname != NULL ) + { hostname_mismatch = strcmp( ssl->hostname, ssl->session_negotiate->hostname ) != 0; + } if( hostname_mismatch ) { diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 82a0d5c8a2..828937c3f6 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2497,7 +2497,7 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ - defined(MBEDTLS_SSL_TLS_C) + defined(MBEDTLS_SSL_CLI_C) MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, const char *hostname ); diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 521b922b7d..c677455132 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -8862,7 +8862,7 @@ int mbedtls_ssl_write_alpn_ext( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ - defined(MBEDTLS_SSL_TLS_C) + defined(MBEDTLS_SSL_CLI_C) int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, const char *hostname ) { @@ -8907,6 +8907,6 @@ int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_SERVER_NAME_INDICATION && - MBEDTLS_SSL_TLS_C */ + MBEDTLS_SSL_CLI_C */ #endif /* MBEDTLS_SSL_TLS_C */ From 8730644da1601547e3aaf4c551fcc993ada95b5a Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 12 Oct 2022 09:47:38 +0000 Subject: [PATCH 0574/1028] Move ticket and hostname set code just after shallow-copy Signed-off-by: Xiaokang Qian --- library/ssl_tls.c | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index c677455132..d37102657a 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -245,8 +245,25 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, memcpy( dst, src, sizeof( mbedtls_ssl_session ) ); #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) - dst->ticket = NULL; + if( src->ticket != NULL ) + { + dst->ticket = mbedtls_calloc( 1, src->ticket_len ); + if( dst->ticket == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + + memcpy( dst->ticket, src->ticket, src->ticket_len ); + } + +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + if( src->endpoint == MBEDTLS_SSL_IS_CLIENT ) + { + dst->hostname = NULL; + return mbedtls_ssl_session_set_hostname( dst, + src->hostname ); + } #endif +#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_X509_CRT_PARSE_C) @@ -286,27 +303,6 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, #endif /* MBEDTLS_X509_CRT_PARSE_C */ -#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) - if( src->ticket != NULL ) - { - dst->ticket = mbedtls_calloc( 1, src->ticket_len ); - if( dst->ticket == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - - memcpy( dst->ticket, src->ticket, src->ticket_len ); - } - -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( src->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { - dst->hostname = NULL; - return mbedtls_ssl_session_set_hostname( dst, - src->hostname ); - } -#endif -#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ - return( 0 ); } From baa4764d770ba5829453755d77610f215ba7e84e Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 12 Oct 2022 10:21:27 +0000 Subject: [PATCH 0575/1028] Fix typo issues Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 3 +-- library/ssl_tls.c | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 88ccb27c4f..09b1dfcf85 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1204,8 +1204,7 @@ struct mbedtls_ssl_session #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_tls13_application_secrets MBEDTLS_PRIVATE(app_secrets); - -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ +#endif }; /* diff --git a/library/ssl_tls.c b/library/ssl_tls.c index d37102657a..2de52314d0 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -262,7 +262,7 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, return mbedtls_ssl_session_set_hostname( dst, src->hostname ); } -#endif +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SERVER_NAME_INDICATION */ #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_X509_CRT_PARSE_C) @@ -2022,8 +2022,6 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, memcpy( p, session->resumption_key, session->resumption_key_len ); p += session->resumption_key_len; - - #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_SRV_C) if( session->endpoint == MBEDTLS_SSL_IS_SERVER ) { From 307a7303fda210f86be5ac04d4a677337ae0b719 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 12 Oct 2022 11:14:32 +0000 Subject: [PATCH 0576/1028] Rebase and replace session_negotiate Signed-off-by: Xiaokang Qian --- library/ssl_client.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 10566deaa9..9e4f0218f9 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -878,11 +878,11 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) ssl->handshake->resume ) { int hostname_mismatch = ssl->hostname != NULL || - ssl->session_negotiate->hostname != NULL; - if( ssl->hostname != NULL && ssl->session_negotiate->hostname != NULL ) + session_negotiate->hostname != NULL; + if( ssl->hostname != NULL && session_negotiate->hostname != NULL ) { hostname_mismatch = strcmp( - ssl->hostname, ssl->session_negotiate->hostname ) != 0; + ssl->hostname, session_negotiate->hostname ) != 0; } if( hostname_mismatch ) @@ -895,7 +895,7 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) } else { - return mbedtls_ssl_session_set_hostname( ssl->session_negotiate, + return mbedtls_ssl_session_set_hostname( session_negotiate, ssl->hostname ); } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && From 997669aeeba045e8573a1c49f5922f8aa4d4f85f Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 12 Oct 2022 14:30:27 +0000 Subject: [PATCH 0577/1028] Fix heap use-after-free corruption issue Signed-off-by: Xiaokang Qian --- library/ssl_tls.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 2de52314d0..a36f5b1f12 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -258,9 +258,12 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) if( src->endpoint == MBEDTLS_SSL_IS_CLIENT ) { + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; dst->hostname = NULL; - return mbedtls_ssl_session_set_hostname( dst, - src->hostname ); + ret = mbedtls_ssl_session_set_hostname( dst, + src->hostname ); + if( ret != 0) + return ret; } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SERVER_NAME_INDICATION */ #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ From 7c195160df1141640920d0ce7226024db73355df Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 12 Oct 2022 16:27:14 +0100 Subject: [PATCH 0578/1028] Update documentation links Signed-off-by: Dave Rodgman --- CONTRIBUTING.md | 6 +++--- README.md | 14 ++++++++------ SUPPORT.md | 2 +- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 319f02d204..66fe5f1af0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,7 +7,7 @@ We gratefully accept bug reports and contributions from the community. There are Coding Standards ---------------- -- We would ask that contributions conform to [our coding standards](https://tls.mbed.org/kb/development/mbedtls-coding-standards), and that contributions are fully tested before submission, as mentioned in the [Tests](#tests) and [Continuous Integration](#continuous-integration-tests) sections. +- We would ask that contributions conform to [our coding standards](https://mbed-tls.readthedocs.io/en/latest/kb/development/mbedtls-coding-standards/), and that contributions are fully tested before submission, as mentioned in the [Tests](#tests) and [Continuous Integration](#continuous-integration-tests) sections. - The code should be written in a clean and readable style. - The code should be written in a portable generic way, that will benefit the whole community, and not only your own needs. - The code should be secure, and will be reviewed from a security point of view as well. @@ -56,7 +56,7 @@ As mentioned, tests that show the correctness of the feature or bug fix should b Mbed TLS includes a comprehensive set of test suites in the `tests/` directory that are dynamically generated to produce the actual test source files (e.g. `test_suite_mpi.c`). These files are generated from a `function file` (e.g. `suites/test_suite_mpi.function`) and a `data file` (e.g. `suites/test_suite_mpi.data`). The function file contains the test functions. The data file contains the test cases, specified as parameters that will be passed to the test function. -[A Knowledge Base article describing how to add additional tests is available on the Mbed TLS website](https://tls.mbed.org/kb/development/test_suites). +[A Knowledge Base article describing how to add additional tests is available on the Mbed TLS website](https://mbed-tls.readthedocs.io/en/latest/kb/development/test_suites/). A test script `tests/scripts/basic-build-test.sh` is available to show test coverage of the library. New code contributions should provide a similar level of code coverage to that which already exists for the library. @@ -75,7 +75,7 @@ Mbed TLS is well documented, but if you think documentation is needed, speak out 1. All interfaces should be documented through Doxygen. New APIs should introduce Doxygen documentation. 1. Complex parts in the code should include comments. 1. If needed, a Readme file is advised. -1. If a [Knowledge Base (KB)](https://tls.mbed.org/kb) article should be added, write this as a comment in the PR description. +1. If a [Knowledge Base (KB)](https://mbed-tls.readthedocs.io/en/latest/kb/) article should be added, write this as a comment in the PR description. 1. A [ChangeLog](https://github.com/Mbed-TLS/mbedtls/blob/development/ChangeLog.d/00README.md) entry should be added for this contribution. License and Copyright diff --git a/README.md b/README.md index 8978fafb61..859275991d 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,9 @@ We provide some non-standard configurations focused on specific use cases in the Documentation ------------- -Documentation for the Mbed TLS interfaces in the default library configuration is available as part of the [Mbed TLS documentation](https://tls.mbed.org/api/). +The main Mbed TLS documentation is available via [ReadTheDocs](https://mbed-tls.readthedocs.io/). + +Documentation for the PSA Crypto interface is available [on GitHub](https://armmbed.github.io/mbed-crypto/psa/#application-programming-interface). To generate a local copy of the library documentation in HTML format, tailored to your compile-time configuration: @@ -103,9 +105,9 @@ Setting the variable `SHARED` in your environment will build shared libraries in Please note that setting `CFLAGS` overrides its default value of `-O2` and setting `WARNING_CFLAGS` overrides its default value (starting with `-Wall -Wextra`), so if you just want to add some warning options to the default ones, you can do so by setting `CFLAGS=-O2 -Werror` for example. Setting `WARNING_CFLAGS` is useful when you want to get rid of its default content (for example because your compiler doesn't accept `-Wall` as an option). Directory-specific options cannot be overridden from the command line. -Depending on your platform, you might run into some issues. Please check the Makefiles in `library/`, `programs/` and `tests/` for options to manually add or remove for specific platforms. You can also check [the Mbed TLS Knowledge Base](https://tls.mbed.org/kb) for articles on your platform or issue. +Depending on your platform, you might run into some issues. Please check the Makefiles in `library/`, `programs/` and `tests/` for options to manually add or remove for specific platforms. You can also check [the Mbed TLS Knowledge Base](https://mbed-tls.readthedocs.io/en/latest/kb/) for articles on your platform or issue. -In case you find that you need to do something else as well, please let us know what, so we can add it to the [Mbed TLS Knowledge Base](https://tls.mbed.org/kb). +In case you find that you need to do something else as well, please let us know what, so we can add it to the [Mbed TLS Knowledge Base](https://mbed-tls.readthedocs.io/en/latest/kb/). ### CMake @@ -248,9 +250,9 @@ Porting Mbed TLS Mbed TLS can be ported to many different architectures, OS's and platforms. Before starting a port, you may find the following Knowledge Base articles useful: -- [Porting Mbed TLS to a new environment or OS](https://tls.mbed.org/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS) -- [What external dependencies does Mbed TLS rely on?](https://tls.mbed.org/kb/development/what-external-dependencies-does-mbedtls-rely-on) -- [How do I configure Mbed TLS](https://tls.mbed.org/kb/compiling-and-building/how-do-i-configure-mbedtls) +- [Porting Mbed TLS to a new environment or OS](https://mbed-tls.readthedocs.io/en/latest/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS/) +- [What external dependencies does Mbed TLS rely on?](https://mbed-tls.readthedocs.io/en/latest/kb/development/what-external-dependencies-does-mbedtls-rely-on/) +- [How do I configure Mbed TLS](https://mbed-tls.readthedocs.io/en/latest/kb/compiling-and-building/how-do-i-configure-mbedtls/) Mbed TLS is mostly written in portable C99; however, it has a few platform requirements that go beyond the standard, but are met by most modern architectures: diff --git a/SUPPORT.md b/SUPPORT.md index dab7ac54f2..8fec8b2a85 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -2,10 +2,10 @@ Here are some useful sources of information about using Mbed TLS: +- [ReadTheDocs](https://tls.mbed.org/kb); - API documentation, see the [Documentation section of the README](README.md#License); - the `docs` directory in the source tree; -- the [Mbed TLS knowledge Base](https://tls.mbed.org/kb); - the [Mbed TLS mailing-list archives](https://lists.trustedfirmware.org/archives/list/mbed-tls@lists.trustedfirmware.org/). From b319684bca4eabcfabe069aafc57c17820fe5b60 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 12 Oct 2022 16:47:08 +0100 Subject: [PATCH 0579/1028] Additional updates to docs links Signed-off-by: Dave Rodgman --- ChangeLog | 2 +- SUPPORT.md | 2 +- docs/3.0-migration-guide.md | 2 +- docs/architecture/alternative-implementations.md | 2 +- docs/architecture/testing/test-framework.md | 2 +- docs/architecture/tls13-support.md | 2 +- include/mbedtls/mbedtls_config.h | 6 +++--- include/mbedtls/ssl.h | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6dfb23fa6a..80b86175f0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -463,7 +463,7 @@ API changes provides better randomness. Instead of HAVEGE, declare OS or hardware RNG interfaces with mbedtls_entropy_add_source() and/or use an entropy seed file created securely during device provisioning. See - https://tls.mbed.org/kb/how-to/add-entropy-sources-to-entropy-pool for + https://mbed-tls.readthedocs.io/en/latest/kb/how-to/add-entropy-sources-to-entropy-pool/ for more information. * Add missing const attributes to API functions. * Remove helpers for the transition from Mbed TLS 1.3 to Mbed TLS 2.0: the diff --git a/SUPPORT.md b/SUPPORT.md index 8fec8b2a85..2ef5b54eb9 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -2,7 +2,7 @@ Here are some useful sources of information about using Mbed TLS: -- [ReadTheDocs](https://tls.mbed.org/kb); +- [ReadTheDocs](https://mbed-tls.readthedocs.io/); - API documentation, see the [Documentation section of the README](README.md#License); - the `docs` directory in the source tree; diff --git a/docs/3.0-migration-guide.md b/docs/3.0-migration-guide.md index 884810da50..63a13ad876 100644 --- a/docs/3.0-migration-guide.md +++ b/docs/3.0-migration-guide.md @@ -141,7 +141,7 @@ recommended), or users who used it through the entropy module but had it as the only source of entropy. If you're in that case, please declare OS or hardware RNG interfaces with `mbedtls_entropy_add_source()` and/or use an entropy seed file created securely during device provisioning. See - for more + for more information. ### Remove helpers for the transition from Mbed TLS 1.3 to Mbed TLS 2.0 diff --git a/docs/architecture/alternative-implementations.md b/docs/architecture/alternative-implementations.md index 7fe6332b47..eacdea7c3a 100644 --- a/docs/architecture/alternative-implementations.md +++ b/docs/architecture/alternative-implementations.md @@ -38,7 +38,7 @@ The general principle of an alternative implementation is: * Create a header file `xxx_alt.h` that defines the context type(s) used by the module. For example, `mbedtls_aes_context` for AES. * Implement all the functions from the module, i.e. the functions declared in `include/mbedtls/xxx.h`. -See https://tls.mbed.org/kb/development/hw_acc_guidelines for a more detailed guide. +See https://mbed-tls.readthedocs.io/en/latest/kb/development/hw_acc_guidelines for a more detailed guide. ### Constraints on context types diff --git a/docs/architecture/testing/test-framework.md b/docs/architecture/testing/test-framework.md index d0d4776112..7780949e16 100644 --- a/docs/architecture/testing/test-framework.md +++ b/docs/architecture/testing/test-framework.md @@ -6,7 +6,7 @@ This document is incomplete. You can help by expanding it. ## Unit tests -See +See ### Unit test descriptions diff --git a/docs/architecture/tls13-support.md b/docs/architecture/tls13-support.md index 10da3c5ab2..fc0087ff83 100644 --- a/docs/architecture/tls13-support.md +++ b/docs/architecture/tls13-support.md @@ -181,7 +181,7 @@ Coding rules checklist for TLS 1.3 The following coding rules are aimed to be a checklist for TLS 1.3 upstreaming work to reduce review rounds and the number of comments in each round. They come along (do NOT replace) the project coding rules -(https://tls.mbed.org/kb/development/mbedtls-coding-standards). They have been +(https://mbed-tls.readthedocs.io/en/latest/kb/development/mbedtls-coding-standards). They have been established and discussed following the review of #4882 that was the PR upstreaming the first part of TLS 1.3 ClientHello writing code. diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 9e8ae37c7f..7269f135b3 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2552,7 +2552,7 @@ * * \note See also our Knowledge Base article about porting to a new * environment: - * https://tls.mbed.org/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS + * https://mbed-tls.readthedocs.io/en/latest/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS * * Module: library/net_sockets.c * @@ -3108,7 +3108,7 @@ * contexts are not shared between threads. If you do intend to use contexts * between threads, you will need to enable this layer to prevent race * conditions. See also our Knowledge Base article about threading: - * https://tls.mbed.org/kb/development/thread-safety-and-multi-threading + * https://mbed-tls.readthedocs.io/en/latest/kb/development/thread-safety-and-multi-threading * * Module: library/threading.c * @@ -3140,7 +3140,7 @@ * * \note See also our Knowledge Base article about porting to a new * environment: - * https://tls.mbed.org/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS + * https://mbed-tls.readthedocs.io/en/latest/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS * * Module: library/timing.c */ diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index eda6bc2f21..385c250292 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -2322,7 +2322,7 @@ int mbedtls_ssl_check_record( mbedtls_ssl_context const *ssl, * here, except if using an event-driven style. * * \note See also the "DTLS tutorial" article in our knowledge base. - * https://tls.mbed.org/kb/how-to/dtls-tutorial + * https://mbed-tls.readthedocs.io/en/latest/kb/how-to/dtls-tutorial */ void mbedtls_ssl_set_timer_cb( mbedtls_ssl_context *ssl, void *p_timer, From 7dbfed3b449abf2e993a887ea4a33bfcf7e2be8d Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 12 Oct 2022 17:27:32 +0100 Subject: [PATCH 0580/1028] Improve wording re: PSA Crypto Signed-off-by: Dave Rodgman --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 859275991d..9c9cf9112e 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Documentation The main Mbed TLS documentation is available via [ReadTheDocs](https://mbed-tls.readthedocs.io/). -Documentation for the PSA Crypto interface is available [on GitHub](https://armmbed.github.io/mbed-crypto/psa/#application-programming-interface). +Documentation for the PSA Cryptography API is available [on GitHub](https://armmbed.github.io/mbed-crypto/psa/#application-programming-interface). To generate a local copy of the library documentation in HTML format, tailored to your compile-time configuration: From 126bf8e4d78b72420cb728f749e2973bf7e66fdc Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 13 Oct 2022 02:22:40 +0000 Subject: [PATCH 0581/1028] Address some comments Delete reference immediately after shallow copy Fix format issues Signed-off-by: Xiaokang Qian --- library/ssl_tls.c | 53 ++++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index a36f5b1f12..610df54b4e 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -243,29 +243,12 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, { mbedtls_ssl_session_free( dst ); memcpy( dst, src, sizeof( mbedtls_ssl_session ) ); - #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) - if( src->ticket != NULL ) - { - dst->ticket = mbedtls_calloc( 1, src->ticket_len ); - if( dst->ticket == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - - memcpy( dst->ticket, src->ticket, src->ticket_len ); - } - + dst->ticket = NULL; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( src->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - dst->hostname = NULL; - ret = mbedtls_ssl_session_set_hostname( dst, - src->hostname ); - if( ret != 0) - return ret; - } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SERVER_NAME_INDICATION */ + dst->hostname = NULL; +#endif #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_X509_CRT_PARSE_C) @@ -306,6 +289,29 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, #endif /* MBEDTLS_X509_CRT_PARSE_C */ +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) + if( src->ticket != NULL ) + { + dst->ticket = mbedtls_calloc( 1, src->ticket_len ); + if( dst->ticket == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + + memcpy( dst->ticket, src->ticket, src->ticket_len ); + } + +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + if( src->endpoint == MBEDTLS_SSL_IS_CLIENT ) + { + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + ret = mbedtls_ssl_session_set_hostname( dst, src->hostname ); + if( ret != 0 ) + return ( ret ); + } +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && + MBEDTLS_SSL_SERVER_NAME_INDICATION */ +#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ + return( 0 ); } @@ -1943,7 +1949,7 @@ mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite( /* Serialization of TLS 1.3 sessions: * * struct { - * opaque hostname<1..2^16-1>; + * opaque hostname<0..2^16-1>; * uint64 ticket_received; * uint32 ticket_lifetime; * opaque ticket<1..2^16-1>; @@ -1993,8 +1999,7 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { -#if defined(MBEDTLS_SSL_SESSION_TICKETS) && \ - defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) needed += 2 /* hostname_len */ + hostname_len; /* hostname */ #endif @@ -2039,7 +2044,7 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) MBEDTLS_PUT_UINT16_BE( hostname_len, p, 0 ); p += 2; - if ( hostname_len > 0 ) + if( hostname_len > 0 ) { /* save host name */ memcpy( p, session->hostname, hostname_len ); From 072fad12d9783055e3d3e7ed68747217f2f10f67 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 13 Oct 2022 09:59:52 +0200 Subject: [PATCH 0582/1028] Disable MBEDTLS_SSL_TICKET_C in aead driver test. MBEDTLS_SSL_TICKET_C depends now on: MBEDTLS_GCM_C || MBEDTLS_CCM_C || MBEDTLS_CHACHAPOLY_C. All features are disabled in this config. Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 34028801df..0f31d9e44d 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1961,6 +1961,7 @@ component_test_psa_crypto_config_accel_aead () { scripts/config.py unset MBEDTLS_CHACHAPOLY_C # Features that depend on AEAD scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION + scripts/config.py unset MBEDTLS_SSL_TICKET_C loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" make CFLAGS="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" From 28af501cae7f74a352c9b4f0ab5b41768f653a8c Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 13 Oct 2022 08:18:19 +0000 Subject: [PATCH 0583/1028] Fix the ticket_lifetime equal to 0 issue Signed-off-by: Xiaokang Qian --- library/ssl_tls13_server.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 61a1bad578..c8a7827501 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2848,7 +2848,8 @@ static int ssl_tls13_write_new_session_ticket_body( mbedtls_ssl_context *ssl, * MAY treat a ticket as valid for a shorter period of time than what * is stated in the ticket_lifetime. */ - ticket_lifetime %= 604800; + if( ticket_lifetime > 604800 ) + ticket_lifetime = 604800; MBEDTLS_PUT_UINT32_BE( ticket_lifetime, p, 0 ); MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket_lifetime: %u", ( unsigned int )ticket_lifetime ) ); From b63a9ef09f6dd8d03ebcbf4b6c8744ffa90ef877 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 6 Oct 2022 10:55:19 +0200 Subject: [PATCH 0584/1028] Fix buffer sizes in ecjpake_setup test function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also, the error code changed from INSUFFICIENT_MEMORY to INVALID_DATA. Temporarily remove a test about aborting the operation on error. Auto-abort will be re-introduced in the next commit in a more systematic way. Signed-off-by: Manuel Pégourié-Gonnard --- tests/suites/test_suite_psa_crypto.function | 44 ++++++++++----------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 1b144df35a..49887b5fc7 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -8740,6 +8740,7 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t operation = psa_pake_operation_init(); psa_algorithm_t alg = alg_arg; + psa_pake_primitive_t primitive = primitive_arg; psa_key_type_t key_type_pw = key_type_pw_arg; psa_key_usage_t key_usage_pw = key_usage_pw_arg; psa_algorithm_t hash_alg = hash_arg; @@ -8757,9 +8758,9 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, PSA_INIT( ); - ASSERT_ALLOC( output_buffer, - PSA_PAKE_OUTPUT_SIZE(alg, primitive_arg, - PSA_PAKE_STEP_KEY_SHARE) ); + size_t buf_size = PSA_PAKE_OUTPUT_SIZE(alg, primitive_arg, + PSA_PAKE_STEP_KEY_SHARE); + ASSERT_ALLOC( output_buffer, buf_size ); if( pw_data->len > 0 ) { @@ -8771,7 +8772,7 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, } psa_pake_cs_set_algorithm( &cipher_suite, alg ); - psa_pake_cs_set_primitive( &cipher_suite, primitive_arg ); + psa_pake_cs_set_primitive( &cipher_suite, primitive ); psa_pake_cs_set_hash( &cipher_suite, hash_alg ); PSA_ASSERT( psa_pake_abort( &operation ) ); @@ -8825,6 +8826,13 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, TEST_EQUAL( psa_pake_set_peer( &operation, unsupported_id, 4 ), PSA_ERROR_NOT_SUPPORTED ); + const size_t size_key_share = PSA_PAKE_INPUT_SIZE( alg, primitive, + PSA_PAKE_STEP_KEY_SHARE ); + const size_t size_zk_public = PSA_PAKE_INPUT_SIZE( alg, primitive, + PSA_PAKE_STEP_ZK_PUBLIC ); + const size_t size_zk_proof = PSA_PAKE_INPUT_SIZE( alg, primitive, + PSA_PAKE_STEP_ZK_PROOF ); + /* First round */ if( input_first ) { @@ -8833,28 +8841,23 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, NULL, 0 ), PSA_ERROR_INVALID_ARGUMENT ); TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, - output_buffer, 66 ), + output_buffer, size_zk_proof ), PSA_ERROR_INVALID_ARGUMENT ); /* Invalid first step */ TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, - output_buffer, 66 ), + output_buffer, size_zk_proof ), PSA_ERROR_BAD_STATE ); TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, - output_buffer, 66 ), + output_buffer, size_key_share ), expected_status_input_output); if( expected_status_input_output == PSA_SUCCESS ) { /* Buffer too large */ TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, 512 ), - PSA_ERROR_INSUFFICIENT_MEMORY ); - - /* The operation should be aborted at this point */ - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, 66 ), - PSA_ERROR_BAD_STATE ); + output_buffer, size_zk_public + 1 ), + PSA_ERROR_INVALID_ARGUMENT ); } } else @@ -8864,15 +8867,15 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, NULL, 0, NULL ), PSA_ERROR_INVALID_ARGUMENT ); TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, - output_buffer, 512, &output_len ), + output_buffer, buf_size, &output_len ), PSA_ERROR_INVALID_ARGUMENT ); /* Invalid first step */ TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, - output_buffer, 512, &output_len ), + output_buffer, buf_size, &output_len ), PSA_ERROR_BAD_STATE ); TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, - output_buffer, 512, &output_len ), + output_buffer, buf_size, &output_len ), expected_status_input_output ); if( expected_status_input_output == PSA_SUCCESS ) @@ -8881,13 +8884,8 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, /* Buffer too small */ TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, 5, &output_len ), + output_buffer, size_zk_public - 1, &output_len ), PSA_ERROR_BUFFER_TOO_SMALL ); - - /* The operation should be aborted at this point */ - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, 512, &output_len ), - PSA_ERROR_BAD_STATE ); } } From f155ab9a9102820d478f8aa375a737a582922916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 13 Oct 2022 13:11:52 +0200 Subject: [PATCH 0585/1028] Abort on errors when we should MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We're not strictly required to abort, but at least to leave the context is an invalid state. For "late" functions like input() and output(), calling abort() is the easiest way to do that. Do it systematically for input() and output() by using a wrapper. psa_pake_get_implicit_key() was already doing it. For "early" function, we can just leave the operation in its current state which is already invalid. Restore previous tests about that. Not adding systematic tests, though, just test the two functions that are the most important, and more likely to return errors. Since we now abort in more cases, we need to make sure we don't invalidate the operation that's going to be re-used later in the test. For that reason, use a copy of the operation for calls to input() and output() that are expected to return errors. Signed-off-by: Manuel Pégourié-Gonnard --- library/psa_crypto_pake.c | 56 ++++++++++++--------- tests/suites/test_suite_psa_crypto.function | 37 +++++++++++--- 2 files changed, 62 insertions(+), 31 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 262d44d203..541e6c44b6 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -385,7 +385,8 @@ static psa_status_t psa_pake_ecjpake_setup( psa_pake_operation_t *operation ) } #endif -psa_status_t psa_pake_output( psa_pake_operation_t *operation, +static psa_status_t psa_pake_output_internal( + psa_pake_operation_t *operation, psa_pake_step_t step, uint8_t *output, size_t output_size, @@ -427,10 +428,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, if( operation->state == PSA_PAKE_STATE_SETUP ) { status = psa_pake_ecjpake_setup( operation ); if( status != PSA_SUCCESS ) - { - psa_pake_abort( operation ); return( status ); - } } if( operation->state != PSA_PAKE_STATE_READY && @@ -496,10 +494,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, mbedtls_psa_get_random, MBEDTLS_PSA_RANDOM_STATE ); if( ret != 0 ) - { - psa_pake_abort( operation ); return( mbedtls_ecjpake_to_psa_error( ret ) ); - } operation->buffer_offset = 0; } @@ -513,10 +508,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, mbedtls_psa_get_random, MBEDTLS_PSA_RANDOM_STATE ); if( ret != 0 ) - { - psa_pake_abort( operation ); return( mbedtls_ecjpake_to_psa_error( ret ) ); - } operation->buffer_offset = 0; } @@ -548,10 +540,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, return( PSA_ERROR_DATA_CORRUPT ); if( output_size < length ) - { - psa_pake_abort( operation ); return( PSA_ERROR_BUFFER_TOO_SMALL ); - } memcpy( output, operation->buffer + operation->buffer_offset, @@ -584,7 +573,23 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, return( PSA_ERROR_NOT_SUPPORTED ); } -psa_status_t psa_pake_input( psa_pake_operation_t *operation, +psa_status_t psa_pake_output( psa_pake_operation_t *operation, + psa_pake_step_t step, + uint8_t *output, + size_t output_size, + size_t *output_length ) +{ + psa_status_t status = psa_pake_output_internal( + operation, step, output, output_size, output_length ); + + if( status != PSA_SUCCESS ) + psa_pake_abort( operation ); + + return( status ); +} + +static psa_status_t psa_pake_input_internal( + psa_pake_operation_t *operation, psa_pake_step_t step, const uint8_t *input, size_t input_length ) @@ -631,10 +636,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, { status = psa_pake_ecjpake_setup( operation ); if( status != PSA_SUCCESS ) - { - psa_pake_abort( operation ); return( status ); - } } if( operation->state != PSA_PAKE_STATE_READY && @@ -734,10 +736,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, operation->buffer_length = 0; if( ret != 0 ) - { - psa_pake_abort( operation ); return( mbedtls_ecjpake_to_psa_error( ret ) ); - } } else if( operation->state == PSA_PAKE_INPUT_X4S && operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF ) @@ -750,10 +749,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, operation->buffer_length = 0; if( ret != 0 ) - { - psa_pake_abort( operation ); return( mbedtls_ecjpake_to_psa_error( ret ) ); - } } if( ( operation->state == PSA_PAKE_INPUT_X1_X2 && @@ -775,6 +771,20 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, return( PSA_ERROR_NOT_SUPPORTED ); } +psa_status_t psa_pake_input( psa_pake_operation_t *operation, + psa_pake_step_t step, + const uint8_t *input, + size_t input_length ) +{ + psa_status_t status = psa_pake_input_internal( + operation, step, input, input_length ); + + if( status != PSA_SUCCESS ) + psa_pake_abort( operation ); + + return( status ); +} + psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, psa_key_derivation_operation_t *output) { diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 49887b5fc7..a44c67b6ac 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -8739,6 +8739,7 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t operation = psa_pake_operation_init(); + psa_pake_operation_t op_copy = psa_pake_operation_init(); psa_algorithm_t alg = alg_arg; psa_pake_primitive_t primitive = primitive_arg; psa_key_type_t key_type_pw = key_type_pw_arg; @@ -8836,18 +8837,23 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, /* First round */ if( input_first ) { - /* Invalid parameters */ - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, + /* Invalid parameters (input) */ + op_copy = operation; + TEST_EQUAL( psa_pake_input( &op_copy, PSA_PAKE_STEP_ZK_PROOF, NULL, 0 ), PSA_ERROR_INVALID_ARGUMENT ); - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, + /* Invalid parameters (step) */ + op_copy = operation; + TEST_EQUAL( psa_pake_input( &op_copy, PSA_PAKE_STEP_ZK_PROOF + 10, output_buffer, size_zk_proof ), PSA_ERROR_INVALID_ARGUMENT ); /* Invalid first step */ - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, + op_copy = operation; + TEST_EQUAL( psa_pake_input( &op_copy, PSA_PAKE_STEP_ZK_PROOF, output_buffer, size_zk_proof ), PSA_ERROR_BAD_STATE ); + /* Possibly valid */ TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, output_buffer, size_key_share ), expected_status_input_output); @@ -8858,22 +8864,32 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, output_buffer, size_zk_public + 1 ), PSA_ERROR_INVALID_ARGUMENT ); + + /* The operation's state should be invalidated at this point */ + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public ), + PSA_ERROR_BAD_STATE ); } } else { - /* Invalid parameters */ - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, + /* Invalid parameters (output) */ + op_copy = operation; + TEST_EQUAL( psa_pake_output( &op_copy, PSA_PAKE_STEP_ZK_PROOF, NULL, 0, NULL ), PSA_ERROR_INVALID_ARGUMENT ); - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, + op_copy = operation; + /* Invalid parameters (step) */ + TEST_EQUAL( psa_pake_output( &op_copy, PSA_PAKE_STEP_ZK_PROOF + 10, output_buffer, buf_size, &output_len ), PSA_ERROR_INVALID_ARGUMENT ); /* Invalid first step */ - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, + op_copy = operation; + TEST_EQUAL( psa_pake_output( &op_copy, PSA_PAKE_STEP_ZK_PROOF, output_buffer, buf_size, &output_len ), PSA_ERROR_BAD_STATE ); + /* Possibly valid */ TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, output_buffer, buf_size, &output_len ), expected_status_input_output ); @@ -8886,6 +8902,11 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, output_buffer, size_zk_public - 1, &output_len ), PSA_ERROR_BUFFER_TOO_SMALL ); + + /* The operation's state should be invalidated at this point */ + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, buf_size, &output_len ), + PSA_ERROR_BAD_STATE ); } } From 02f82bbfa9fbc9eaad4007464c0d53717ae12b10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 13 Oct 2022 13:32:02 +0200 Subject: [PATCH 0586/1028] Fix MSVC warning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- library/psa_crypto_pake.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 541e6c44b6..870b5b5654 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -629,7 +629,7 @@ static psa_status_t psa_pake_input_internal( const psa_pake_primitive_t prim = PSA_PAKE_PRIMITIVE( PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256 ); - if( input_length > PSA_PAKE_INPUT_SIZE( PSA_ALG_JPAKE, prim, step ) ) + if( input_length > (size_t) PSA_PAKE_INPUT_SIZE( PSA_ALG_JPAKE, prim, step ) ) return( PSA_ERROR_INVALID_ARGUMENT ); if( operation->state == PSA_PAKE_STATE_SETUP ) From 8ff6df538c506bfcd83d9e4ab8bfaf2f4e671d11 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 21 Jul 2021 12:42:15 +0100 Subject: [PATCH 0587/1028] Add LMS implementation Also an LM-OTS implementation as one is required for LMS. Signed-off-by: Raef Coles --- ChangeLog.d/LMS.txt | 12 + include/mbedtls/check_config.h | 10 + include/mbedtls/error.h | 2 + include/mbedtls/lmots.h | 292 ++++++++++ include/mbedtls/lms.h | 254 +++++++++ include/mbedtls/mbedtls_config.h | 28 + library/CMakeLists.txt | 2 + library/Makefile | 2 + library/lmots.c | 684 +++++++++++++++++++++++ library/lms.c | 718 +++++++++++++++++++++++++ scripts/generate_errors.pl | 2 +- tests/suites/test_suite_lmots.data | 29 + tests/suites/test_suite_lmots.function | 108 ++++ tests/suites/test_suite_lms.data | 32 ++ tests/suites/test_suite_lms.function | 85 +++ 15 files changed, 2259 insertions(+), 1 deletion(-) create mode 100644 ChangeLog.d/LMS.txt create mode 100644 include/mbedtls/lmots.h create mode 100644 include/mbedtls/lms.h create mode 100644 library/lmots.c create mode 100644 library/lms.c create mode 100644 tests/suites/test_suite_lmots.data create mode 100644 tests/suites/test_suite_lmots.function create mode 100644 tests/suites/test_suite_lms.data create mode 100644 tests/suites/test_suite_lms.function diff --git a/ChangeLog.d/LMS.txt b/ChangeLog.d/LMS.txt new file mode 100644 index 0000000000..0f09f01860 --- /dev/null +++ b/ChangeLog.d/LMS.txt @@ -0,0 +1,12 @@ +Features + * Add the LMS post-quantum-safe stateful-hash asymmetric signature scheme + as defined in RFC8554 and NIST.SP.200-208. This currently only supports + one parameter set (LMS_SHA256_M32_H10), meaning that each private key can + be used to sign 1024 messages. As such, it is not intended for use in TLS, + but instead for verification of assets transmitted over an insecure + channel, particularly firmware images. This is one of the signature + schemes recommended by the IETF draft SUIT standard for IOT firmware + upgrades (RFC9019). + * Add the LM-OTS post-quantum-safe one-time signature scheme, which is + required for LMS. This can be used independently, but each key can only be + used to sign one message so is impractical for most circumstances. diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 6b330a75ba..37253ab525 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -353,6 +353,16 @@ #error "MBEDTLS_MD_C defined, but not all prerequisites" #endif +#if defined(MBEDTLS_LMOTS_C) && \ + ( !defined(MBEDTLS_MD_C) ) +#error "MBEDTLS_LMOTS_C requires MBEDTLS_MD_C" +#endif + +#if defined(MBEDTLS_LMS_C) && \ + ( !defined(MBEDTLS_LMOTS_C) || !defined(MBEDTLS_MD_C) ) +#error "MBEDTLS_LMS_C requires MBEDTLS_LMOTS_C and MBEDTLS_MD_C" +#endif + #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \ ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) ) #error "MBEDTLS_MEMORY_BUFFER_ALLOC_C defined, but not all prerequisites" diff --git a/include/mbedtls/error.h b/include/mbedtls/error.h index 8b2b9ea580..73d61dbc63 100644 --- a/include/mbedtls/error.h +++ b/include/mbedtls/error.h @@ -82,6 +82,8 @@ * POLY1305 3 0x0057-0x005B * CHACHAPOLY 2 0x0054-0x0056 * PLATFORM 2 0x0070-0x0072 + * LMOTS 2 0x0076-0x0078 + * LMS 2 0x0011-0x0017 * * High-level module nr (3 bits - 0x0...-0x7...) * Name ID Nr of Errors diff --git a/include/mbedtls/lmots.h b/include/mbedtls/lmots.h new file mode 100644 index 0000000000..a177ad4a57 --- /dev/null +++ b/include/mbedtls/lmots.h @@ -0,0 +1,292 @@ +/** + * \file lmots.h + * + * \brief This file provides an API for the LM-OTS post-quantum-safe one-time + * public-key signature scheme. + */ +/* + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef MBEDTLS_LMOTS_H +#define MBEDTLS_LMOTS_H + +#include "mbedtls/private_access.h" + +#include +#include + +#define MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA -0x0076 /**< Bad data has been input to an LMOTS function */ +#define MBEDTLS_ERR_LMOTS_VERIFY_FAILED -0x0078 /**< LMOTS signature verification failed */ + +#define MBEDTLS_LMOTS_N_HASH_LEN (32) +#define MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN (34) +#define MBEDTLS_LMOTS_TYPE_LEN (4) +#define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN (MBEDTLS_LMOTS_N_HASH_LEN) +#define MBEDTLS_LMOTS_I_KEY_ID_LEN (16) +#define MBEDTLS_LMOTS_Q_LEAF_ID_LEN (4) + +#define MBEDTLS_LMOTS_SIG_LEN (MBEDTLS_LMOTS_TYPE_LEN + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN + \ + (MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN * MBEDTLS_LMOTS_N_HASH_LEN)) + +#define MBEDTLS_LMOTS_PUBKEY_LEN (MBEDTLS_LMOTS_TYPE_LEN + MBEDTLS_LMOTS_I_KEY_ID_LEN + \ + MBEDTLS_LMOTS_Q_LEAF_ID_LEN + MBEDTLS_LMOTS_N_HASH_LEN) + +#define MBEDTLS_LMOTS_SIG_TYPE_OFFSET (0) +#define MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET (MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN) + +#define MBEDTLS_LMOTS_PUBKEY_TYPE_OFFSET (0) +#define MBEDTLS_LMOTS_PUBKEY_I_KEY_ID_OFFSET (MBEDTLS_LMOTS_PUBKEY_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMOTS_PUBKEY_Q_LEAF_ID_OFFSET (MBEDTLS_LMOTS_PUBKEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) +#define MBEDTLS_LMOTS_PUBKEY_KEY_HASH_OFFSET (MBEDTLS_LMOTS_PUBKEY_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) + + +#ifdef __cplusplus +extern "C" { +#endif + +/* We are only implementing a subset of the types, particularly n32_w8, for the + * sake of simplicty + */ +typedef enum { + MBEDTLS_LMOTS_SHA256_N32_W8 = 4 +} mbedtls_lmots_algorithm_type_t; + + +typedef struct { + unsigned char MBEDTLS_PRIVATE(have_privkey); + unsigned char MBEDTLS_PRIVATE(have_pubkey); + unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); + unsigned int MBEDTLS_PRIVATE(q_leaf_identifier); + unsigned char MBEDTLS_PRIVATE(q_leaf_identifier_bytes)[MBEDTLS_LMOTS_Q_LEAF_ID_LEN]; + mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(type); + unsigned char MBEDTLS_PRIVATE(priv_key[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32]); + unsigned char MBEDTLS_PRIVATE(pub_key[32]); +} mbedtls_lmots_context; + + +/** + * \brief This function initializes an LMOTS context + * + * \param ctx The uninitialized LMOTS context that will then be + * initialized. + */ +void mbedtls_lmots_init( mbedtls_lmots_context *ctx ); + +/** + * \brief This function uninitializes an LMOTS context + * + * \param ctx The initialized LMOTS context that will then be + * uninitialized. + */ +void mbedtls_lmots_free( mbedtls_lmots_context *ctx ); + +/** + * \brief This function sets the type of an LMOTS context + * + * \note The parameter set in the context will then be used + * for keygen operations etc. + * + * \param ctx The initialized LMOTS context. + * \param type The type that will be set in the context. + */ +int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, + mbedtls_lmots_algorithm_type_t type ); + +/** + * \brief This function creates a candidate public key from + * an LMOTS signature. This can then be compared to + * the real public key to determine the validity of + * the signature. + * + * \note This function is exposed publicly to be used in LMS + * signature verification, it is expected that + * mbedtls_lmots_verify will be used for LMOTS + * signature verification. + * + * \param I_key_identifier The key identifier of the key, as a 16 byte + * bytestring. + * \param q_leaf_identifier The leaf identifier of key. If this LMOTS key is + * not being used as part of an LMS key, this should + * be set to 0. + * \param msg The buffer from which the message will be read. + * \param msg_len The size of the message that will be read. + * \param sig The buff from which the signature will be read. + * MBEDTLS_LMOTS_SIG_LEN bytes will be read from this. + * \param out The buffer where the candidate public key will be + * stored. Must be at least #MBEDTLS_LMOTS_N_HASH_LEN + * bytes in size. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_generate_pub_key_candidate( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], + const unsigned char *msg, + size_t msg_len, + const unsigned char *sig, + unsigned char *out ); + +/** + * \brief This function creates a LMOTS signature, using a + * LMOTS context that contains a private key. + * + * \note Before this function is called, the context must + * have been initialized and must contain a private + * key. + * + * \note LMOTS private keys can only be used once, otherwise + * attackers may be able to create forged signatures. + * If the signing operation is successful, the private + * key in the context will be erased, and no further + * signing will be possible until another private key + * is loaded + * + * \param ctx The initialized LMOTS context from which the + * private key will be read. + * \param f_rng The RNG function to be used for signature + * generation. + * \param p_rng The RNG context to be passed to f_rng + * \param msg The buffer from which the message will be read. + * \param msg_len The size of the message that will be read. + * \param sig The buf into which the signature will be stored. + * Must be at least #MBEDTLS_LMOTS_SIG_LEN in size. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_sign( mbedtls_lmots_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, const unsigned char *msg, size_t msg_len, + unsigned char *sig ); + +/** + * \brief This function verifies a LMOTS signature, using a + * LMOTS context that contains a public key. + * + * \note Before this function is called, the context must + * have been initialized and must contain a public key + * (either by import or generation). + * + * \param ctx The initialized LMOTS context from which the public + * key will be read. + * \param msg The buffer from which the message will be read. + * \param msg_len The size of the message that will be read. + * \param sig The buf from which the signature will be read. + * #MBEDTLS_LMOTS_SIG_LEN bytes will be read from + * this. + * + * \return \c 0 on successful verification. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_verify( mbedtls_lmots_context *ctx, const unsigned char *msg, + size_t msg_len, const unsigned char *sig ); + +/** + * \brief This function imports an LMOTS public key into a + * LMOTS context. + * + * \note Before this function is called, the context must + * have been initialized. + * + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMOTS context store the key in. + * \param key The buffer from which the key will be read. + * #MBEDTLS_LMOTS_PUBKEY_LEN bytes will be read from + * this. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_import_pubkey( mbedtls_lmots_context *ctx, + const unsigned char *key ); + +/** + * \brief This function exports an LMOTS public key from a + * LMOTS context that already contains a public key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a public key. + * + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMOTS context that contains the + * publc key. + * \param key The buffer into which the key will be output. Must + * be at least #MBEDTLS_LMOTS_PUBKEY_LEN in size. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_export_pubkey( mbedtls_lmots_context *ctx, + unsigned char *key ); + +/** + * \brief This function generates an LMOTS public key from a + * LMOTS context that already contains a private key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a private key. + * + * \param ctx The initialized LMOTS context to generate the key + * from and store it into. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_gen_pubkey( mbedtls_lmots_context *ctx ); + +/** + * \brief This function generates an LMOTS private key, and + * stores in into an LMOTS context. + * + * \note Before this function is called, the context must + * have been initialized and the type of the LMOTS + * context set using mbedtls_lmots_set_algorithm_type + * + * \note The seed must have at least 256 bits of entropy. + * + * \param ctx The initialized LMOTS context to generate the key + * into. + * \param I_key_identifier The key identifier of the key, as a 16 byte + * bytestring. + * \param q_leaf_identifier The leaf identifier of key. If this LMOTS key is + * not being used as part of an LMS key, this should + * be set to 0. + * \param seed The seed used to deterministically generate the + * key. + * \param seed_len The length of the seed. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_gen_privkey( mbedtls_lmots_context *ctx, + const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + unsigned int q_leaf_identifier, + const unsigned char *seed, + size_t seed_len ); + +#ifdef __cplusplus +} +#endif + +#endif /* MBEDTLS_LMOTS_H */ diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h new file mode 100644 index 0000000000..868a667e6a --- /dev/null +++ b/include/mbedtls/lms.h @@ -0,0 +1,254 @@ +/** + * \file lms.h + * + * \brief This file provides an API for the LMS post-quantum-safe stateful-hash + * public-key signature scheme. + */ +/* + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef MBEDTLS_LMS_H +#define MBEDTLS_LMS_H + +#include +#include + +#include "mbedtls/private_access.h" +#include "mbedtls/lmots.h" + +#define MBEDTLS_ERR_LMS_BAD_INPUT_DATA -0x0011 /**< Bad data has been input to an LMS function */ +#define MBEDTLS_ERR_LMS_OUT_OF_PRIV_KEYS -0x0013 /**< Specified LMS key has utilised all of its private keys */ +#define MBEDTLS_ERR_LMS_VERIFY_FAILED -0x0015 /**< LMS signature verification failed */ +#define MBEDTLS_ERR_LMS_ALLOC_FAILED -0x0017 /**< LMS failed to allocate space for a private key */ + +#define MBEDTLS_LMS_TYPE_LEN (4) +#define MBEDTLS_LMS_H_TREE_HEIGHT (10) +#define MBEDTLS_LMS_M_NODE_BYTES (32) + +#define MBEDTLS_LMS_SIG_LEN (MBEDTLS_LMOTS_Q_LEAF_ID_LEN + MBEDTLS_LMOTS_SIG_LEN + \ + MBEDTLS_LMS_TYPE_LEN + MBEDTLS_LMS_H_TREE_HEIGHT * MBEDTLS_LMS_M_NODE_BYTES) + +#define MBEDTLS_LMS_PUBKEY_LEN (MBEDTLS_LMS_TYPE_LEN + MBEDTLS_LMOTS_TYPE_LEN + \ + MBEDTLS_LMOTS_I_KEY_ID_LEN + MBEDTLS_LMS_M_NODE_BYTES) + +#define MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET (0) +#define MBEDTLS_LMS_SIG_OTS_SIG_OFFSET (MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) +#define MBEDTLS_LMS_SIG_TYPE_OFFSET (MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_LEN) +#define MBEDTLS_LMS_SIG_PATH_OFFSET (MBEDTLS_LMS_SIG_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) + +#define MBEDTLS_LMS_PUBKEY_TYPE_OFFSET (0) +#define MBEDTLS_LMS_PUBKEY_OTSTYPE_OFFSET (MBEDTLS_LMS_PUBKEY_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) +#define MBEDTLS_LMS_PUBKEY_I_KEY_ID_OFFSET (MBEDTLS_LMS_PUBKEY_OTSTYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMS_PUBKEY_ROOT_NODE_OFFSET (MBEDTLS_LMS_PUBKEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + MBEDTLS_LMS_SHA256_M32_H10 = 0x6, +} mbedtls_lms_algorithm_type_t; + + +typedef struct { + unsigned char MBEDTLS_PRIVATE(have_privkey); + unsigned char MBEDTLS_PRIVATE(have_pubkey); + unsigned char MBEDTLS_PRIVATE(I_key_identifier)[MBEDTLS_LMOTS_I_KEY_ID_LEN]; + mbedtls_lms_algorithm_type_t MBEDTLS_PRIVATE(type); + mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(otstype); + unsigned int MBEDTLS_PRIVATE(q_next_usable_key); + mbedtls_lmots_context *MBEDTLS_PRIVATE(priv_keys); + unsigned char MBEDTLS_PRIVATE(T_1_pub_key)[MBEDTLS_LMS_M_NODE_BYTES]; +} mbedtls_lms_context; + + +/** + * \brief This function initializes an LMS context + * + * \param ctx The uninitialized LMS context that will then be + * initialized. + */ +void mbedtls_lms_init( mbedtls_lms_context *ctx ); + +/** + * \brief This function uninitializes an LMS context + * + * \param ctx The initialized LMS context that will then be + * uninitialized. + */ +void mbedtls_lms_free( mbedtls_lms_context *ctx ); + +/** + * \brief This function sets the type of an LMS context + * + * \note The parameter set in the context will then be used + * for keygen operations etc. + * + * \param ctx The initialized LMS context. + * \param type The type that will be set in the context. + * \param otstype The type of the LMOTS implementation used by this + * context. + */ +int mbedtls_lms_set_algorithm_type( mbedtls_lms_context *ctx, + mbedtls_lms_algorithm_type_t type, + mbedtls_lmots_algorithm_type_t otstype); + +/** + * \brief This function creates a LMS signature, using a + * LMOTS context that contains a private key. + * + * \note Before this function is called, the context must + * have been initialized and must contain a private + * key. + * + * \note Each of the LMOTS private keys inside a LMS private + * key can only be used once. If they are reused, then + * attackers may be able to forge signatures with that + * key. This is all handled transparently, but it is + * important to not perform copy operations on LMS + * contexts that contain private key material. + * + * \param ctx The initialized LMS context from which the + * private key will be read. + * \param f_rng The RNG function to be used for signature + * generation. + * \param p_rng The RNG context to be passed to f_rng + * \param msg The buffer from which the message will be read. + * \param msg_len The size of the message that will be read. + * \param sig The buf into which the signature will be stored. + * Must be at least #MBEDTLS_LMOTS_SIG_LEN in size. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_sign( mbedtls_lms_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void* p_rng, unsigned char *msg, unsigned int msg_len, + unsigned char *sig); + +/** + * \brief This function verifies a LMS signature, using a + * LMS context that contains a public key. + * + * \note Before this function is called, the context must + * have been initialized and must contain a public key + * (either by import or generation). + * + * \param ctx The initialized LMS context from which the public + * key will be read. + * \param msg The buffer from which the message will be read. + * \param msg_len The size of the message that will be read. + * \param sig The buf from which the signature will be read. + * #MBEDTLS_LMS_SIG_LEN bytes will be read from + * this. + * + * \return \c 0 on successful verification. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_verify( const mbedtls_lms_context *ctx, + const unsigned char *msg, unsigned int msg_len, + const unsigned char *sig ); + +/** + * \brief This function imports an LMOTS public key into a + * LMS context. + * + * \note Before this function is called, the context must + * have been initialized. + * + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMS context store the key in. + * \param key The buffer from which the key will be read. + * #MBEDTLS_LMS_PUBKEY_LEN bytes will be read from + * this. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_import_pubkey( mbedtls_lms_context *ctx, + const unsigned char *key ); + +/** + * \brief This function exports an LMOTS public key from a + * LMS context that already contains a public key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a public key. + * + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMS context that contains the + * publc key. + * \param key The buffer into which the key will be output. Must + * be at least #MBEDTLS_LMS_PUBKEY_LEN in size. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_export_pubkey( mbedtls_lms_context *ctx, + unsigned char *key ); + +/** + * \brief This function generates an LMS public key from a + * LMS context that already contains a private key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a private key. + * + * \param ctx The initialized LMS context to generate the key + * from and store it into. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_gen_pubkey( mbedtls_lms_context *ctx ); + +/** + * \brief This function generates an LMS private key, and + * stores in into an LMS context. + * + * \note Before this function is called, the context must + * have been initialized and the type of the LMS + * context set using mbedtls_lmots_set_algorithm_type + * + * \note The seed must have at least 256 bits of entropy. + * + * \param ctx The initialized LMOTS context to generate the key + * into. + * \param f_rng The RNG function to be used to generate the key ID. + * \param p_rng The RNG context to be passed to f_rng + * \param seed The seed used to deterministically generate the + * key. + * \param seed_len The length of the seed. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_gen_privkey( mbedtls_lms_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void* p_rng, unsigned char *seed, + size_t seed_len ); + +#ifdef __cplusplus +} +#endif + +#endif /* MBEDTLS_LMS_H */ diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 23e601b32d..1da395b5c3 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2461,6 +2461,34 @@ */ #define MBEDTLS_HMAC_DRBG_C +/** + * \def MBEDTLS_LMOTS_C + * + * Enable the LMOTS one-time asymmetric hash signature algorithm. + * + * Module: library/lm_ots.c + * Caller: + * + * Requires: MBEDTLS_SHA256_C + * + * Uncomment to enable the LMOTS signature algorithm. + */ +#define MBEDTLS_LMOTS_C + +/** + * \def MBEDTLS_LMS_C + * + * Enable the LMS stateful-hash asymmetric signature algorithm. + * + * Module: library/lms.c + * Caller: + * + * Requires: MBEDTLS_LMS_C + * + * Uncomment to enable the LMS signature algorithm. + */ +#define MBEDTLS_LMS_C + /** * \def MBEDTLS_NIST_KW_C * diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index 951381475e..7c325f7bae 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -44,6 +44,8 @@ set(src_crypto hash_info.c hkdf.c hmac_drbg.c + lmots.c + lms.c md.c md5.c memory_buffer_alloc.c diff --git a/library/Makefile b/library/Makefile index 9c3af3b9b5..624773dc19 100644 --- a/library/Makefile +++ b/library/Makefile @@ -109,6 +109,8 @@ OBJS_CRYPTO= \ hash_info.o \ hkdf.o \ hmac_drbg.o \ + lmots.o \ + lms.o \ md.o \ md5.o \ memory_buffer_alloc.o \ diff --git a/library/lmots.c b/library/lmots.c new file mode 100644 index 0000000000..7319d29be7 --- /dev/null +++ b/library/lmots.c @@ -0,0 +1,684 @@ +/* + * The LM-OTS one-time public-key signature scheme + * + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * The following sources were referenced in the design of this implementation + * of the LM-OTS algorithm: + * + * [1] IETF RFC8554 + * D. McGrew, M. Curcio, S.Fluhrer + * https://datatracker.ietf.org/doc/html/rfc8554 + * + * [2] NIST Special Publication 800-208 + * David A. Cooper et. al. + * https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-208.pdf + */ + +#include "common.h" + +#ifdef MBEDTLS_LMOTS_C + +#include + +#include "mbedtls/lmots.h" +#include "mbedtls/md.h" +#include "mbedtls/platform_util.h" +#include "mbedtls/error.h" + +#define W_SYMBOL_BIT_LEN (8) +#define CHECKSUM_LEN (2) +#define I_SYMBOL_IDX_LEN (2) +#define J_HASH_IDX_LEN (1) +#define D_CONST_LEN (2) + +#define SYMBOL_MAX_VAL ((1 << W_SYMBOL_BIT_LEN) - 1) + +#define D_PBLC_CONSTANT (0x8080) +#define D_MESG_CONSTANT (0x8181) + +static void val_to_network_bytes(unsigned int val, size_t len, unsigned char *bytes) +{ + size_t idx; + + for (idx = 0; idx < len; idx++) { + bytes[idx] = (val >> ((len - 1 - idx) * 8)) & 0xFF; + } +} + +static unsigned int network_bytes_to_val(size_t len, const unsigned char *bytes) +{ + size_t idx; + unsigned int val = 0; + + for (idx = 0; idx < len; idx++) { + val |= ((unsigned int)bytes[idx]) << (8 * (len - 1 - idx)); + } + + return val; +} + +static unsigned short lmots_checksum_generate( const unsigned char* digest ) +{ + size_t idx; + unsigned short sum = 0; + + for ( idx = 0; idx < MBEDTLS_LMOTS_N_HASH_LEN; idx++ ) + { + sum += ( 1 << W_SYMBOL_BIT_LEN ) - 1 - digest[idx]; + } + + return sum; +} + +static int create_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], + const unsigned char *msg, + size_t msg_len, + const unsigned char C_random_value[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN], + unsigned char out[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN] ) +{ + mbedtls_md_context_t hash_ctx; + unsigned char D_MESG_BYTES[D_CONST_LEN]; + unsigned short checksum; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + mbedtls_md_init( &hash_ctx ); + ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); + if( ret ) + { + goto out; + } + ret = mbedtls_md_starts( &hash_ctx ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + if ( ret ) + { + goto out; + } + + val_to_network_bytes( D_MESG_CONSTANT, D_CONST_LEN, D_MESG_BYTES ); + ret = mbedtls_md_update( &hash_ctx, D_MESG_BYTES, sizeof( D_MESG_BYTES ) ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, C_random_value, MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, msg, msg_len ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_finish( &hash_ctx, out ); + if ( ret ) + { + goto out; + } + + checksum = lmots_checksum_generate( out ); + val_to_network_bytes( checksum, CHECKSUM_LEN, out + MBEDTLS_LMOTS_N_HASH_LEN ); + +out: + mbedtls_md_free( &hash_ctx ); + + return( ret ); +} + +static int hash_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], + const unsigned char x_symbol_array[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32], + const unsigned char hash_idx_min_values[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN], + const unsigned char hash_idx_max_values[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN], + unsigned char output[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32] ) +{ + unsigned char i_symbol_idx; + unsigned char j_hash_idx; + unsigned char i_symbol_idx_bytes[I_SYMBOL_IDX_LEN]; + unsigned char j_hash_idx_bytes[1]; + unsigned short j_hash_idx_min; + unsigned short j_hash_idx_max; + mbedtls_md_context_t hash_ctx; + unsigned char tmp_hash[32]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + for ( i_symbol_idx = 0; i_symbol_idx < MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN; i_symbol_idx++ ) + { + + memcpy( tmp_hash, &x_symbol_array[i_symbol_idx], MBEDTLS_LMOTS_N_HASH_LEN ); + + j_hash_idx_min = hash_idx_min_values != NULL ? hash_idx_min_values[i_symbol_idx] : 0; + j_hash_idx_max = hash_idx_max_values != NULL ? hash_idx_max_values[i_symbol_idx] : SYMBOL_MAX_VAL; + + for ( j_hash_idx = (unsigned char)j_hash_idx_min; j_hash_idx < j_hash_idx_max; j_hash_idx++ ) + { + mbedtls_md_init( &hash_ctx ); + ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); + if( ret ) + { + goto out; + } + ret = mbedtls_md_starts( &hash_ctx ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + if ( ret ) + { + goto out; + } + + val_to_network_bytes( i_symbol_idx, I_SYMBOL_IDX_LEN, i_symbol_idx_bytes ); + ret = mbedtls_md_update( &hash_ctx, i_symbol_idx_bytes, I_SYMBOL_IDX_LEN ); + if ( ret ) + { + goto out; + } + + val_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, j_hash_idx_bytes ); + ret = mbedtls_md_update( &hash_ctx, j_hash_idx_bytes, J_HASH_IDX_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_finish( &hash_ctx, tmp_hash ); + if ( ret ) + { + goto out; + } + + mbedtls_md_free( &hash_ctx ); + } + + memcpy( &output[i_symbol_idx], tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); + } + +out: + if( ret ) + { + mbedtls_md_free( &hash_ctx ); + return( ret ); + } + + return ret; +} + +static int public_key_from_hashed_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], + const unsigned char y_hashed_symbols[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32], + unsigned char *pub_key ) +{ + unsigned char D_PBLC_bytes[D_CONST_LEN]; + mbedtls_md_context_t hash_ctx; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + mbedtls_md_init( &hash_ctx ); + ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); + if( ret ) + { + goto out; + } + ret = mbedtls_md_starts( &hash_ctx ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + if ( ret ) + { + goto out; + } + + val_to_network_bytes( D_PBLC_CONSTANT, D_CONST_LEN, D_PBLC_bytes ); + ret = mbedtls_md_update( &hash_ctx, D_PBLC_bytes, D_CONST_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, ( unsigned char * )y_hashed_symbols, + MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN * MBEDTLS_LMOTS_N_HASH_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_finish( &hash_ctx, pub_key ); + +out: + mbedtls_md_free( &hash_ctx ); + return( ret ); +} + +void mbedtls_lmots_init( mbedtls_lmots_context *ctx ) +{ + if( ctx == NULL ) { + return; + } + + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_context ) ) ; +} + +void mbedtls_lmots_free( mbedtls_lmots_context *ctx ) +{ + if( ctx == NULL ) + { + return; + } + + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_context ) ) ; +} + +int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, + mbedtls_lmots_algorithm_type_t type ) +{ + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + ctx->MBEDTLS_PRIVATE(type) = type; + + return( 0 ); +} + +int mbedtls_lmots_generate_pub_key_candidate( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], + const unsigned char *msg, + size_t msg_len, + const unsigned char *sig, + unsigned char *out ) +{ + unsigned char tmp_symbol_array[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN]; + unsigned char y_hashed_symbols[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if (I_key_identifier == NULL || msg == NULL || sig == NULL || out == NULL) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + ret = create_symbol_array( I_key_identifier, q_leaf_identifier, msg, msg_len, + sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, tmp_symbol_array ); + if ( ret ) + { + return ( ret ); + } + + ret = hash_symbol_array( I_key_identifier, q_leaf_identifier, + ( const unsigned char( *)[32] )(sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET), + tmp_symbol_array, NULL, y_hashed_symbols ); + if ( ret ) + { + return ( ret ); + } + + ret = public_key_from_hashed_symbol_array( I_key_identifier, q_leaf_identifier, + ( const unsigned char( *)[32] )y_hashed_symbols, + out ); + if ( ret ) + { + return ( ret ); + } + + return( 0 ); +} + +int mbedtls_lmots_sign( mbedtls_lmots_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, const unsigned char *msg, size_t msg_len, + unsigned char *sig ) +{ + unsigned char tmp_symbol_array[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN]; + unsigned char tmp_sig[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][MBEDTLS_LMOTS_N_HASH_LEN]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL || f_rng == NULL || p_rng == NULL || msg == NULL || sig == NULL) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + /* Check that a private key is loaded */ + if ( !ctx->MBEDTLS_PRIVATE(have_privkey) ) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + ret = f_rng( p_rng, sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, MBEDTLS_LMOTS_N_HASH_LEN ); + if ( ret ) + { + return( ret ); + } + + ret = create_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), + ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), + msg, msg_len, sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, + tmp_symbol_array ); + if ( ret ) + { + return( ret ); + } + + ret = hash_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), + ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), + ( const unsigned char( *)[32] )(ctx->MBEDTLS_PRIVATE(priv_key)), + NULL, tmp_symbol_array, tmp_sig ); + if ( ret ) + { + return( ret ); + } + + val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), MBEDTLS_LMOTS_TYPE_LEN, + sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + + /* We've got a valid signature now, so it's time to make sure the private + * key can't be reused. + */ + ctx->MBEDTLS_PRIVATE(have_privkey) = 0; + mbedtls_platform_zeroize(ctx->MBEDTLS_PRIVATE(priv_key), + sizeof(ctx->MBEDTLS_PRIVATE(priv_key))); + + memcpy(sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET, tmp_sig, + MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN * MBEDTLS_LMOTS_N_HASH_LEN); + + return( 0 ); +} + +int mbedtls_lmots_verify( mbedtls_lmots_context *ctx, const unsigned char *msg, + size_t msg_len, const unsigned char *sig ) +{ + unsigned char Kc_public_key_candidate[32]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL || msg == NULL || sig == NULL) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + if ( !ctx->MBEDTLS_PRIVATE(have_pubkey) ) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(type ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + if ( network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, + sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMOTS_VERIFY_FAILED ); + } + + ret = mbedtls_lmots_generate_pub_key_candidate( ctx->MBEDTLS_PRIVATE(I_key_identifier), + ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), + msg, msg_len, sig, + Kc_public_key_candidate ); + if ( ret ) + { + return( ret ); + } + + if ( memcmp( &Kc_public_key_candidate, ctx->MBEDTLS_PRIVATE(pub_key), + sizeof( ctx->MBEDTLS_PRIVATE(pub_key) ) ) ) + { + return( MBEDTLS_ERR_LMOTS_VERIFY_FAILED ); + } + + return( 0 ); +} + +int mbedtls_lmots_import_pubkey( mbedtls_lmots_context *ctx, + const unsigned char *key ) +{ + if ( ctx == NULL || key == NULL) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + ctx->MBEDTLS_PRIVATE(type) = network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + + memcpy( ctx->MBEDTLS_PRIVATE(I_key_identifier), key + MBEDTLS_LMOTS_PUBKEY_I_KEY_ID_OFFSET, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + + memcpy( ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), key + MBEDTLS_LMOTS_PUBKEY_Q_LEAF_ID_OFFSET, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + ctx->MBEDTLS_PRIVATE(q_leaf_identifier) = network_bytes_to_val( MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes) ); + + memcpy( ctx->MBEDTLS_PRIVATE(pub_key), key + MBEDTLS_LMOTS_PUBKEY_KEY_HASH_OFFSET, MBEDTLS_LMOTS_N_HASH_LEN ); + + ctx->MBEDTLS_PRIVATE(have_pubkey) = 1; + + return( 0 ); +} + +int mbedtls_lmots_export_pubkey( mbedtls_lmots_context *ctx, + unsigned char *key ) +{ + if ( ctx == NULL || key == NULL) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + if ( ! ctx->MBEDTLS_PRIVATE(have_pubkey) ) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + + memcpy( key + MBEDTLS_LMOTS_PUBKEY_I_KEY_ID_OFFSET, ctx->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + + memcpy( key + MBEDTLS_LMOTS_PUBKEY_Q_LEAF_ID_OFFSET, ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + + memcpy( key + MBEDTLS_LMOTS_PUBKEY_KEY_HASH_OFFSET, ctx->MBEDTLS_PRIVATE(pub_key), + MBEDTLS_LMOTS_N_HASH_LEN ); + + return( 0 ); +} + + +int mbedtls_lmots_gen_pubkey( mbedtls_lmots_context *ctx ) +{ + unsigned char y_hashed_symbols[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + /* Check that a private key is loaded */ + if ( !ctx->MBEDTLS_PRIVATE(have_privkey) ) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + ret = hash_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), + ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), + ( const unsigned char( *)[32] )(ctx->MBEDTLS_PRIVATE(priv_key)), + NULL, NULL, y_hashed_symbols ); + if ( ret ) + { + return( ret ); + } + + ret = public_key_from_hashed_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), + ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), + ( const unsigned char( *)[32] )y_hashed_symbols, + ctx->MBEDTLS_PRIVATE(pub_key) ); + if ( ret ) + { + return( ret ); + } + + ctx->MBEDTLS_PRIVATE(have_pubkey = 1); + + return( ret ); +} + +int mbedtls_lmots_gen_privkey( mbedtls_lmots_context *ctx, + const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + unsigned int q_leaf_identifier, + const unsigned char *seed, + size_t seed_len ) +{ + mbedtls_md_context_t hash_ctx; + unsigned int i_symbol_idx; + unsigned char i_symbol_idx_bytes[2]; + unsigned char const_bytes[1]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL || I_key_identifier == NULL || seed == NULL) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + if ( ctx->MBEDTLS_PRIVATE(have_privkey) ) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + if ( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + memcpy( ctx->MBEDTLS_PRIVATE(I_key_identifier), I_key_identifier, + sizeof( ctx->MBEDTLS_PRIVATE(I_key_identifier) ) ); + + ctx->MBEDTLS_PRIVATE(q_leaf_identifier) = q_leaf_identifier; + + val_to_network_bytes( ctx->MBEDTLS_PRIVATE(q_leaf_identifier), MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes) ); + + val_to_network_bytes( 0xFF, sizeof( const_bytes ), const_bytes ); + + for ( i_symbol_idx = 0; i_symbol_idx < MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN; i_symbol_idx++ ) + { + mbedtls_md_init( &hash_ctx ); + ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); + if( ret ) + { + goto out; + } + ret = mbedtls_md_starts( &hash_ctx ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, ctx->MBEDTLS_PRIVATE(I_key_identifier), + sizeof( ctx->MBEDTLS_PRIVATE(I_key_identifier) ) ); + if ( ret ) { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), + sizeof( ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes) ) ); + if ( ret ) + { + goto out; + } + + val_to_network_bytes( i_symbol_idx, I_SYMBOL_IDX_LEN, i_symbol_idx_bytes ); + ret = mbedtls_md_update( &hash_ctx, i_symbol_idx_bytes, I_SYMBOL_IDX_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, const_bytes, sizeof( const_bytes) ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, seed, seed_len ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_finish( &hash_ctx, ctx->MBEDTLS_PRIVATE(priv_key)[i_symbol_idx] ); + if ( ret ) + { + goto out; + } + + mbedtls_md_free( &hash_ctx); + } + + ctx->MBEDTLS_PRIVATE(have_privkey) = 1; + +out: + if( ret ) + { + mbedtls_md_free( &hash_ctx ); + return( ret ); + } + + return ret; +} + +#endif /* MBEDTLS_LMOTS_C */ diff --git a/library/lms.c b/library/lms.c new file mode 100644 index 0000000000..e1ac7b9353 --- /dev/null +++ b/library/lms.c @@ -0,0 +1,718 @@ +/* + * The LMS stateful-hash public-key signature scheme + * + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * The following sources were referenced in the design of this implementation + * of the LMS algorithm: + * + * [1] IETF RFC8554 + * D. McGrew, M. Curcio, S.Fluhrer + * https://datatracker.ietf.org/doc/html/rfc8554 + * + * [2] NIST Special Publication 800-208 + * David A. Cooper et. al. + * https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-208.pdf + */ + +#include "common.h" + +#ifdef MBEDTLS_LMS_C + +#include + +#include "mbedtls/lms.h" +#include "mbedtls/lmots.h" +#include "mbedtls/md.h" +#include "mbedtls/error.h" +#include "mbedtls/platform_util.h" + +#if defined(MBEDTLS_PLATFORM_C) +#include "mbedtls/platform.h" +#else +#include +#include +#define mbedtls_printf printf +#define mbedtls_calloc calloc +#define mbedtls_free free +#endif + +#define MERKLE_TREE_NODE_AM (1 << (MBEDTLS_LMS_H_TREE_HEIGHT + 1)) +#define MERKLE_TREE_LEAF_AM (1 << MBEDTLS_LMS_H_TREE_HEIGHT) +#define MERKLE_TREE_INTR_AM (1 << MBEDTLS_LMS_H_TREE_HEIGHT) + +#define D_CONST_LEN (2) + +#define D_LEAF_CONSTANT (0x8282) +#define D_INTR_CONSTANT (0x8383) + +static void val_to_network_bytes(unsigned int val, size_t len, unsigned char *bytes) +{ + size_t idx; + + for (idx = 0; idx < len; idx++) { + bytes[idx] = (val >> ((len - 1 - idx) * 8)) & 0xFF; + } +} + +static unsigned int network_bytes_to_val(size_t len, const unsigned char *bytes) +{ + size_t idx; + unsigned int val = 0; + + for (idx = 0; idx < len; idx++) { + val |= ((unsigned int)bytes[idx]) << (8 * (len - 1 - idx)); + } + + return val; +} + +static int create_merkle_leaf_node( const mbedtls_lms_context *ctx, + unsigned char pub_key[MBEDTLS_LMOTS_N_HASH_LEN], + unsigned int r_node_idx, + unsigned char out[32] ) +{ + mbedtls_md_context_t hash_ctx; + unsigned char D_LEAF_bytes[D_CONST_LEN]; + unsigned char r_node_idx_bytes[4]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + mbedtls_md_init( &hash_ctx ); + ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); + if( ret ) + { + goto out; + } + ret = mbedtls_md_starts( &hash_ctx ); + if( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, + ctx->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + if( ret ) + { + goto out; + } + + val_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); + ret = mbedtls_md_update( &hash_ctx, r_node_idx_bytes, 4 ); + if( ret ) + { + goto out; + } + + val_to_network_bytes( D_LEAF_CONSTANT, D_CONST_LEN, D_LEAF_bytes ); + ret = mbedtls_md_update( &hash_ctx, D_LEAF_bytes, D_CONST_LEN ); + if( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, pub_key, MBEDTLS_LMOTS_N_HASH_LEN ); + if( ret ) + { + goto out; + } + + ret = mbedtls_md_finish( &hash_ctx, out ); + if( ret ) + { + goto out; + } + +out: + mbedtls_md_free( &hash_ctx ); + + return( ret ); +} + +static int create_merkle_intr_node( const mbedtls_lms_context *ctx, + const unsigned char left_node[32], + const unsigned char rght_node[32], + unsigned int r_node_idx, + unsigned char out[32] ) +{ + mbedtls_md_context_t hash_ctx; + unsigned char D_INTR_bytes[D_CONST_LEN]; + unsigned char r_node_idx_bytes[4]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + mbedtls_md_init( &hash_ctx ); + ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); + if( ret ) + { + goto out; + } + ret = mbedtls_md_starts( &hash_ctx ); + if( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, ctx->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + if( ret ) + { + goto out; + } + + val_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); + ret = mbedtls_md_update( &hash_ctx, r_node_idx_bytes, 4 ); + if( ret ) + { + goto out; + } + + val_to_network_bytes( D_INTR_CONSTANT, D_CONST_LEN, D_INTR_bytes ); + ret = mbedtls_md_update( &hash_ctx, D_INTR_bytes, D_CONST_LEN ); + if( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, left_node, MBEDTLS_LMOTS_N_HASH_LEN ); + if( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, rght_node, MBEDTLS_LMOTS_N_HASH_LEN ); + if( ret ) + { + goto out; + } + + ret = mbedtls_md_finish( &hash_ctx, out ); + if( ret ) + { + goto out; + } + +out: + mbedtls_md_free( &hash_ctx ); + + return ret; +} + +static int generate_merkle_tree( mbedtls_lms_context *ctx, + unsigned char tree[MERKLE_TREE_NODE_AM][32] ) +{ + unsigned int priv_key_idx; + unsigned int r_node_idx; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + /* First create the leaf nodes, in ascending order */ + for( priv_key_idx = 0; priv_key_idx < MERKLE_TREE_INTR_AM; priv_key_idx++ ) + { + r_node_idx = MERKLE_TREE_INTR_AM + priv_key_idx; + + ret = create_merkle_leaf_node( ctx, ctx->MBEDTLS_PRIVATE(priv_keys)[priv_key_idx].pub_key, + r_node_idx, tree[r_node_idx] ); + if( ret ) + { + return( ret ); + } + } + + /* Then the internal nodes, in reverse order so that we can guarantee the + * parent has been created */ + for( r_node_idx = MERKLE_TREE_INTR_AM - 1; r_node_idx > 0; r_node_idx-- ) + { + ret = create_merkle_intr_node( ctx, tree[(r_node_idx * 2)], + tree[(r_node_idx * 2 + 1)], + r_node_idx, tree[r_node_idx] ); + if( ret ) + { + return( ret ); + } + } + + return( 0 ); +} + +static int get_merkle_path( mbedtls_lms_context *ctx, + unsigned int leaf_node_id, unsigned char path[MBEDTLS_LMS_H_TREE_HEIGHT][32] ) +{ + unsigned char tree[MERKLE_TREE_NODE_AM][32]; + unsigned int curr_node_id = leaf_node_id; + unsigned int parent_node_id; + unsigned char sibling_relative_id; + unsigned int adjacent_node_id; + unsigned int height; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + ret = generate_merkle_tree( ctx, tree); + if( ret ) + { + return( ret ); + } + + for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT; height++ ) + { + parent_node_id = ( curr_node_id / 2 ); + + /* 0 if the node is a left child, 1 if the node is a right child */ + sibling_relative_id = curr_node_id & 1; + + adjacent_node_id = ( parent_node_id * 2 ) + ( 1 - sibling_relative_id ); + + memcpy( &path[height], &tree[adjacent_node_id], MBEDTLS_LMOTS_N_HASH_LEN ); + + curr_node_id = parent_node_id; + } + + return( 0 ); +} + +void mbedtls_lms_init( mbedtls_lms_context *ctx ) +{ + if( ctx == NULL ) + { + return; + } + + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_context ) ) ; +} + +void mbedtls_lms_free( mbedtls_lms_context *ctx ) +{ + unsigned int idx; + + if( ctx == NULL ) + { + return; + } + + if( ctx->MBEDTLS_PRIVATE(have_privkey) ) + { + for( idx = 0; idx < MERKLE_TREE_LEAF_AM; idx++ ) + { + mbedtls_lmots_free( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx] ); + } + + mbedtls_free( ctx->MBEDTLS_PRIVATE(priv_keys) ); + } + + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_context ) ); +} + +int mbedtls_lms_set_algorithm_type( mbedtls_lms_context *ctx, + mbedtls_lms_algorithm_type_t type, + mbedtls_lmots_algorithm_type_t otstype ) +{ + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + ctx->MBEDTLS_PRIVATE(type) = type; + ctx->MBEDTLS_PRIVATE(otstype) = otstype; + + return( 0 ); +} + +int mbedtls_lms_sign( mbedtls_lms_context *ctx, + int ( *f_rng)(void *, unsigned char *, size_t), + void* p_rng, unsigned char *msg, unsigned int msg_len, + unsigned char *sig ) +{ + unsigned int q_leaf_identifier; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ! ctx->MBEDTLS_PRIVATE(have_privkey) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( msg == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( sig == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + + if( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(otstype) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + + if( ctx->MBEDTLS_PRIVATE(q_next_usable_key) >= MERKLE_TREE_LEAF_AM ) + { + return( MBEDTLS_ERR_LMS_OUT_OF_PRIV_KEYS ); + } + + + q_leaf_identifier = ctx->MBEDTLS_PRIVATE(q_next_usable_key); + /* This new value must _always_ be written back to the disk before the + * signature is returned. + */ + ctx->MBEDTLS_PRIVATE(q_next_usable_key) += 1; + + ret = mbedtls_lmots_sign( &ctx->MBEDTLS_PRIVATE(priv_keys)[q_leaf_identifier], + f_rng, p_rng, msg, msg_len, + sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET ); + if( ret ) + { + return( ret ); + } + + val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), MBEDTLS_LMS_TYPE_LEN, + sig + MBEDTLS_LMS_SIG_TYPE_OFFSET ); + val_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET); + + ret = get_merkle_path( ctx, MERKLE_TREE_INTR_AM + q_leaf_identifier, + ( unsigned char( * )[32] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) ); + if( ret ) + { + return( ret ); + } + + return( 0 ); +} + +int mbedtls_lms_verify( const mbedtls_lms_context *ctx, + const unsigned char *msg, unsigned int msg_len, + const unsigned char *sig ) +{ + unsigned int q_leaf_identifier; + unsigned char Kc_candidate_ots_pub_key[MBEDTLS_LMOTS_N_HASH_LEN]; + unsigned char Tc_candidate_root_node[32]; + unsigned int height; + unsigned int curr_node_id; + unsigned int parent_node_id; + const unsigned char* left_node; + const unsigned char* rght_node; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ! ctx->MBEDTLS_PRIVATE(have_pubkey) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( msg == NULL) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( sig == NULL) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(otstype) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + + if( network_bytes_to_val( MBEDTLS_LMS_TYPE_LEN, + sig + MBEDTLS_LMS_SIG_TYPE_OFFSET) != MBEDTLS_LMS_SHA256_M32_H10 ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + + if( network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, + sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET) + != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + + + q_leaf_identifier = network_bytes_to_val( MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); + + if( q_leaf_identifier >= MERKLE_TREE_LEAF_AM ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + + ret = mbedtls_lmots_generate_pub_key_candidate( ctx->MBEDTLS_PRIVATE(I_key_identifier), + sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET, + msg, msg_len, + sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, + Kc_candidate_ots_pub_key ); + if( ret ) + { + return( ret ); + } + + create_merkle_leaf_node( ctx, Kc_candidate_ots_pub_key, + MERKLE_TREE_INTR_AM + q_leaf_identifier, + Tc_candidate_root_node ); + + curr_node_id = MERKLE_TREE_INTR_AM + q_leaf_identifier; + + for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT; height++ ) + { + parent_node_id = curr_node_id / 2; + + /* Left/right node ordering matters for the hash */ + if( curr_node_id & 1 ) + { + left_node = ( ( const unsigned char( * )[32] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; + rght_node = Tc_candidate_root_node; + } + else + { + left_node = Tc_candidate_root_node; + rght_node = ( ( const unsigned char( * )[32] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; + } + + create_merkle_intr_node( ctx, left_node, rght_node, parent_node_id, + Tc_candidate_root_node); + + curr_node_id /= 2; + } + + if( memcmp( Tc_candidate_root_node, ctx->MBEDTLS_PRIVATE(T_1_pub_key), + MBEDTLS_LMOTS_N_HASH_LEN) ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + + return( 0 ); +} + +int mbedtls_lms_import_pubkey( mbedtls_lms_context *ctx, + const unsigned char *key ) +{ + mbedtls_lms_algorithm_type_t type; + mbedtls_lmots_algorithm_type_t otstype; + + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( key == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + type = network_bytes_to_val( MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBKEY_TYPE_OFFSET ); + if( type != MBEDTLS_LMS_SHA256_M32_H10 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + ctx->MBEDTLS_PRIVATE(type) = type; + + otstype = network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMS_PUBKEY_OTSTYPE_OFFSET ); + if( otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + ctx->MBEDTLS_PRIVATE(otstype) = otstype; + + memcpy( ctx->MBEDTLS_PRIVATE(I_key_identifier), key + MBEDTLS_LMS_PUBKEY_I_KEY_ID_OFFSET, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + memcpy( ctx->MBEDTLS_PRIVATE(T_1_pub_key), key + MBEDTLS_LMS_PUBKEY_ROOT_NODE_OFFSET, + MBEDTLS_LMOTS_N_HASH_LEN ); + + ctx->MBEDTLS_PRIVATE(have_pubkey) = 1; + + return( 0 ); +} + +int mbedtls_lms_export_pubkey( mbedtls_lms_context *ctx, + unsigned char *key ) +{ + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( key == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ! ctx->MBEDTLS_PRIVATE(have_pubkey) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), + MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBKEY_TYPE_OFFSET ); + val_to_network_bytes( ctx->MBEDTLS_PRIVATE(otstype), + MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMS_PUBKEY_OTSTYPE_OFFSET ); + memcpy( key + MBEDTLS_LMS_PUBKEY_I_KEY_ID_OFFSET, + ctx->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + memcpy( key + MBEDTLS_LMS_PUBKEY_ROOT_NODE_OFFSET, + ctx->MBEDTLS_PRIVATE(T_1_pub_key), + MBEDTLS_LMOTS_N_HASH_LEN ); + + return( 0 ); +} + +int mbedtls_lms_gen_pubkey( mbedtls_lms_context *ctx ) +{ + unsigned char tree[MERKLE_TREE_NODE_AM][32]; + unsigned int idx; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ! ctx->MBEDTLS_PRIVATE( have_privkey ) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(otstype) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + for( idx = 0; idx < MERKLE_TREE_LEAF_AM; idx++ ) + { + ret = mbedtls_lmots_gen_pubkey( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx] ); + if( ret ) + { + return( ret ); + } + } + + ret = generate_merkle_tree( ctx, tree); + if( ret ) + { + return( ret ); + } + + /* Root node is always at position 1, due to 1-based indexing */ + memcpy( ctx->MBEDTLS_PRIVATE(T_1_pub_key), &tree[1], MBEDTLS_LMOTS_N_HASH_LEN ); + + ctx->MBEDTLS_PRIVATE(have_pubkey) = 1; + + return( 0 ); +} + +int mbedtls_lms_gen_privkey( mbedtls_lms_context *ctx, + int ( *f_rng)(void *, unsigned char *, size_t), + void* p_rng, unsigned char *seed, + size_t seed_len ) +{ + unsigned int idx; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(otstype) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(have_privkey) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + f_rng( p_rng, ctx->MBEDTLS_PRIVATE(I_key_identifier), + sizeof( ctx->MBEDTLS_PRIVATE(I_key_identifier) ) ); + + ctx->MBEDTLS_PRIVATE(priv_keys) = mbedtls_calloc( MERKLE_TREE_LEAF_AM, + sizeof( mbedtls_lmots_context)); + if( ctx->MBEDTLS_PRIVATE(priv_keys) == NULL ) + { + ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; + goto out; + } + + for( idx = 0; idx < MERKLE_TREE_LEAF_AM; idx++ ) + { + mbedtls_lmots_init( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx] ); + ret = mbedtls_lmots_set_algorithm_type( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx], + ctx->MBEDTLS_PRIVATE(otstype) ); + if( ret) + { + goto out; + } + } + + + for( idx = 0; idx < MERKLE_TREE_LEAF_AM; idx++ ) + { + ret = mbedtls_lmots_gen_privkey( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx], + ctx->MBEDTLS_PRIVATE(I_key_identifier), + idx, seed, seed_len ); + if( ret) + { + goto out; + } + } + + ctx->MBEDTLS_PRIVATE(q_next_usable_key) = 0; + ctx->MBEDTLS_PRIVATE(have_privkey) = 1; + +out: + if( ret ) + { + mbedtls_free( ctx->MBEDTLS_PRIVATE(priv_keys) ); + return( ret ); + } + + return( 0 ); +} + +#endif /* MBEDTLS_LMS_C */ diff --git a/scripts/generate_errors.pl b/scripts/generate_errors.pl index 0a03f02e96..d333f6590f 100755 --- a/scripts/generate_errors.pl +++ b/scripts/generate_errors.pl @@ -47,7 +47,7 @@ my $error_format_file = $data_dir.'/error.fmt'; my @low_level_modules = qw( AES ARIA ASN1 BASE64 BIGNUM CAMELLIA CCM CHACHA20 CHACHAPOLY CMAC CTR_DRBG DES - ENTROPY ERROR GCM HKDF HMAC_DRBG MD5 + ENTROPY ERROR GCM HKDF HMAC_DRBG LMS LMOTS MD5 NET OID PADLOCK PBKDF2 PLATFORM POLY1305 RIPEMD160 SHA1 SHA256 SHA512 THREADING ); my @high_level_modules = qw( CIPHER DHM ECP MD diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data new file mode 100644 index 0000000000..ed192bf7d7 --- /dev/null +++ b/tests/suites/test_suite_lmots.data @@ -0,0 +1,29 @@ +LMOTS sign-verify test #1 +lmots_sign_verify_test:"c41ba177a0ca1ec31dfb2e145237e65b" + +LMOTS sign-verify test #2 +lmots_sign_verify_test:"55a6647a581004306792b653a561d9f3" + +LMOTS hash-sigs interop test #1 +lmots_verify_test:"C80B24A82D52963AB241C84DCF0EEE55BB24F9F0":"00000004DB3B6B24FD191CE8894AE3C4E2CE2DE0C3F5D508691A9162F37704E07838488466CCD746E55BC8E3055C7A4D4DA2E10775DAFA2E8E5FEFB1CEB25973BC3323B61DE5E2EA7DCFF15DA482320F958023CA2E718C69B977019E8F2FCD47151388E2E5E11170AFE93BDEB508362B3A317835A9DDEB18F0CDCCC0731902DB3D37F441C93A490DE53962A915AB5060A1C157D61DDF061F272362AB7FD9EE95AE48D3448F204C81A3F260792784E1BFB49871A27C09CC549A406520F0B40BC74CAAD082EAAB12C994B8495B8C80E96384FF2222255BE6C4EE5AF439534E616F9C0B53E951F69D59BD0506C0C0366A679A8329ACF6E2D1D4E4EF49D35375A8EA46FCF3C9B2F8E033C242EC61B796E43B901407077A2AF3F0AABD2D0CB9004F10D91B57C2D5E8BA7BA9268FF94962CC102F55B5120D7D2F7A3BE281BA01D78895ADA2F05B77967EDA0E1EDEAFBB9BBC3D68DCBF682FBC70467FA2BEE5DE65F54247C4BE5BEF41F5108B6CD09E7698E3AAEA04B60746EDD0E2623B66B092DDA21EFA5A0D36805D101D805CC06F0E818B46059B3984C8B8A526C4239F66ED34B8CA57E178DC5E7B8D2BE029114B4CE466E2B5A081729B3F3A3F3845DDE177062F201C09125ED3CC381AF35EAD795440C421A136F941F09F3E4BA9E0203CBA875AF477AB0246342700F323E65DC327D27966377D871FD9C58BEC8797DEF35E1D0751A554719828B87332F601884EBFECB63A8D4F390785B3826BFA384BE502D2322C919ABD12A486C2AB124DCB7B74DE91241A30EF0388411E52145A88971C6C0A4E7C4F23EDD8D6008065A3D108C6B1EC5219BB0DFDBD37EE3A7A8DD37E3563A5777838FCA61E9E744813F39CF70B5A0F50E1BD4FF8733A3BDA76D2135969809D91A9786F22DC2ACBA4E0164C411019EC77A0BD253A42AC7528FC7C0DA1711FBD6C23825207060463080F9E04B7D819C8B150C22B8BA87C6277696EC409369C48AC0E3233DE52D31EF6D2207D2B57DFC2D0C43BE8212EAE6CB1BACBC2D3568E5527A14065D5F1F56AAE2AFB5FB1CEFFC228A30692BD030C71F4872DB54F2632CD919DA61576CF58D1EBE3D7988183A9C789EB74A3D7F6BBEBAC035A43397BF684C9E1130B252940DBA4454311A6A3D54D9386D48E1D5A3E70944EDF725AEDC5440CD610F79AB05A43C917FFC15213295EB8CB8432B6554A47C2AD419ADD52E0F5E0BD7A1E0F873257E69F8647F3A07093387B7A64C4812CDBEE536E45D531F89653AC5F14A4715CFF40692346FE6CBF2F9B92D9F1101C379AFD5E6154605059C1DA463B407E79C139396623DC7F15EEFCE424C8E214C6A645EF002F90A230D8F62177CBCF2A688D4F822B119835AD3D3A619F46230257A5AD59CB0924B2584DBA96AADE0A2487E7409EE5993A4F0E3DC46C10B96595CDD17D72C35EF4A52C5906655B0AE649B5DE03B7D46F3839E808761EE05E9300050647593C048669A952324B0188ED225AD11BED3FD94E44E134FB9D6DAD53CC34ECF62695E30637C4528C450D62174E2F8ABA2C09F134412EF889C24B36224BE4259B363A9D8EB89BAEE16BE1898D46":"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A":0 + +LMOTS hash-sigs interop test #2 +lmots_verify_test:"85A77D026E8C704B14EF665DEB0A648350FA8859":"00000004BEEF900CA9A14982E011A5A94503D566288932AD4B9CB85D1551C766A56F788B0D223FBA0E1AD722BE48365B4CE5DA21051B3A79EAD8C1046944192EE51E162DE1E9AE9B13DD8FA90867A17666CB8967F7CD7F4F5383703CCFF555EEBDC8123AF3C4E39D0A5D61725B6A7F23CE587D256C08D31510BCD895106CD524B432A9211CDCBDF5ADDAD5F1D76D428A76DF2556FFA8AB546CFAAA7F2FE86164B976FDA2940498DB0D1A2DE29972FFD55D83E7CA3318DBAC31670565A1E5F59E36342F887E0EF7855AD93CA5F1951307D79EEA375168BC35A3A0B053AEBDB4D7157AD929B0D7DE9FC1E8C32C9A2D679843CBC77560EEDA5959D0AC8407648344C6952649A303E7B6FCC2EE979E1B2786B898A01E2918894DB4E37A0ED79A30260A45959B4BB3016F081181190CB740376389827B2D56DF7EC00871DC9A198B74C7C6086C940A845D54198F2D5DD7A47F97A192F33A85AAA1304A3251B82AC33C5E7B3BA20D2A9BD49BBEE0B2DA2338E578E6F139BB7596DC3BD89E86CB393C42765B9FE85457116906C3F9A8499CF5E539A5CCB3F6D1F36CA209DE6942F807E579AF0EBF072EA110A812C9E420647CE7C8B2BDBB5F56C5B3B7EA80A53C3574F4ED32E4708DFEED60280ABBE2021B3791B0CB09C1F0731353234A6A327CDDFD4E3E2D9DD5A16FCDE3EEF09C67065BD702C07B53A005D3FE7D23FFD77D40E49C82165EB104343A166E808A3CAEDE1A43AE3A82E1788B49C565CF88A2AB8E2FD37657D53E3679D7A818D864F55144011AB498A4A985C46342F3562FD80ECB86497C3DBB759006E5FFFDC01CAA15C69B716174EDCB6E9870CF391003D3826451D1BEFDCC84C093428EE01DAF883190F5D2542B36A7DE44A453AECD5E93B768ACEE75076BE3D73A66F17CFD8E4A49B1F61CE9446815A86FF5FB0EA070A751893C85360C038A161D3DD4D2C66F440E7265153AB346EF620156605C028DD9636FAE0C9A20DF09303ECC5E57A6424505530F70D25F1C95FE51CBD82C2AD0015EB9AD5379CEC463FA0331A14DD971B7C2311FC45979C531653E7252884BAB7C49F8CD652BDF6FDFA76984445C63B54ED22B4A8A267D091381BE7B9B7608133968BA46106BF42B9091F78C085E674D1F70FB91C68D07733F6412B1583DD2F37C6ECAD6BCCE1A1C7D0A7CA80677F679A5AFE08D15427E5C78CE6EB9AA90F51F40343DC9FD1316DCEB2C1EF8EA217B714B0DE1AEECE04D19D0D7757481EDA6E8C51BE85B7B24720E8D62B8AEC56C1A1B9D278B874AACC0B492CF44ED4E7B1200C82323C1AFA0FC776E92B227E8979E3A92EAB05FCF18A43AE648397088F4991F73ECE22C03B3F42F51C0C0FE0DF37919D048FB473F7AB0E33310B9782DE56384BD888CE5E2A644E20A52DD47F710DB0D3169991E29E716ABFD84CA4850080B6C252CB96CD8979189819E532DF56ECB172F773919733BF4D442901EBFB656EBFED4C6D83FAFF288279779499091C94432ECDF83188048AB596D65BC48FA708D485F9CDC50C8B470DFE22157E8F5EE366722A04E8CE7B861573E5FC97D34055BB50B562738F803B202F7F8":"00000004DE9CE10EA7125AC6399B6B3C7EE24224000000161D61E675F3EA19C5B95DA4EE2E35BA061B39E7639F3989F8AE4B0696B3F87E4E":0 + +LMOTS hash-sigs interop test #3 +lmots_verify_test:"C32F83EFBFD87F386A6C0850CBB93A75F2506A35":"00000004BD2D174BEBEEF1CAF06E4BF1088DE2AAB17C0528579BD4E1C4A1ED583C36BDACA49798373961B605EAEFAEFC0B4BC39C7AD30572CD29BEBE9AEE503CA2D8BF8C31C8A1B71CF67A18EE01A8A878699F22A1AEE32731E51E3EAD3775EFD8339E263C5A4544559506BA5502B9AEF59217ABC24923EC5E28D18BA18B0D964DB277007A76B8075B39F48CDA92148C9BAE1C7E5421CA753FA2D6BEAE8F49977E4E5B6F38D35BA28A526A53061E57BB92DA0EBBD4AE01AE9FADBED74F503DC39FA2E10C20B47DFB3DFBE25EC35618D2307D21716B10F8FB5095B42C289D1847E5D6F9988C6763D288667D3B658A4F3613E084DAE8B78E0B295A6ED28E88C676995AA5EB1533CDF8EB6F95A5E5117F06B1759495A9CB6E40FBF1F97FF73FDCBFD315C48DA631AB0425CA0633817C46F25E84AEEA37DD77310EE56815E83F862EF14E15FC1246243AA02F40EA32567237D5ADC2944BD63CF55FA4F0DE251B3F5C067D9EC396D5E20F9CEF2C555D89DA721D91D6D607653B97636AB10B74F39FA984D23A3D276EFF5F49C336274A66AC491EDE34686C6CFC17F5312FD3E3E5749A2E472011FA391A5ACF09D918B01704B447FD5E3EA6BB726A3475775DFE6A98CE5473CDEDB630EA4D604BAF36A8B8A8E567F05929E8A74970AA742FBC945021017E464E753D5AC497925AA4AECA0CBF562B2E39F891E177FD8E4E61A698B099D21F13EFD0DE5357A1970314D8E3AA1D2A84D3BCF75A7876C16F585322CC4C613FE3AC8FEA5F258FC9C7200765E9209378C362AFC1A478A117D913CE2BEFEB51103E48D0802618C50918005F1AA4228B67BA1A1B001A91A032019A135B8AEEE3D0158A602C8DCCE5A6580DECC16204E410CBB15FCF36704BB2ECB826A229E45C454B4A5DFC12796E636B300C624DB4E6EAB424B17A18A5A5F52399F247A1507A5985D06F90889FE381129148AF8447B392D4EC0775D91502B48D9F212FCE3F81639901C462F752E27FBEEC9E2B7F8CCD16053FB839E8ADF8CD3E8FF8AF3B3E884F4F524C2026BD3B337B7058B53CFC7596F9C813FFD746B8AC0012C60E96140934B4EED1D8602E57A1A6EBC01FCFD66053AF9614FAF0D0F7320D50D440F2A3148A0DAEF5E2FA31F854D56045065AFAA52A60DC3321E2D7C104FF505057D55CD94C53C31C14DB0DAA4D55C4065CD9BCD78E1B8532A680F7DC3544021346CC59ADEC061DDA1B7606BAF28AD87C39AB8AF3D03E981EFFE50B4D5347175517EF212E61F02B594A96492091AC82625D334504EF19BEEE52E01B111D43313F35EC69C88EF38926071506AB3A5B372DD6F2B901AC1E12E61CCB3ACD3D0777A7A10F137126DAD0D1970D369A067C3A1F19D9CB8756D7130B7EB0C08CF725EB2ADFAD61204195CE14F3C99A88A9B8FA2FDCBD612DF9266614DEA073C9EDABE07B3793048167D4DA49B305AE27974D48A296871350DE036CAA348D2F9A9CB19DC094E5904E25DDCF5657227DCD2A4E620121FBDA032A58836EDC14F3A7C4E51319A60F91F941CC61757498B769799394574C9D198426AC3499F0D0BA1770AD6BAA0D3716333F785A9D7D":"00000004DA66203A7E7BCA2362DB3C8E897A84B10000000D1BD4EE08FAA341C2CE018BD12776E1B8E6B8B2C1EEDAE6BD0998E52F089936FE":0 + +LMOTS hash-sigs interop negative test (altered random value) +lmots_verify_test:"C80B24A82D52963AB241C84DCF0EEE55BB24F9F0":"00000004CB3B6B24FD191CE8894AE3C4E2CE2DE0C3F5D508691A9162F37704E07838488466CCD746E55BC8E3055C7A4D4DA2E10775DAFA2E8E5FEFB1CEB25973BC3323B61DE5E2EA7DCFF15DA482320F958023CA2E718C69B977019E8F2FCD47151388E2E5E11170AFE93BDEB508362B3A317835A9DDEB18F0CDCCC0731902DB3D37F441C93A490DE53962A915AB5060A1C157D61DDF061F272362AB7FD9EE95AE48D3448F204C81A3F260792784E1BFB49871A27C09CC549A406520F0B40BC74CAAD082EAAB12C994B8495B8C80E96384FF2222255BE6C4EE5AF439534E616F9C0B53E951F69D59BD0506C0C0366A679A8329ACF6E2D1D4E4EF49D35375A8EA46FCF3C9B2F8E033C242EC61B796E43B901407077A2AF3F0AABD2D0CB9004F10D91B57C2D5E8BA7BA9268FF94962CC102F55B5120D7D2F7A3BE281BA01D78895ADA2F05B77967EDA0E1EDEAFBB9BBC3D68DCBF682FBC70467FA2BEE5DE65F54247C4BE5BEF41F5108B6CD09E7698E3AAEA04B60746EDD0E2623B66B092DDA21EFA5A0D36805D101D805CC06F0E818B46059B3984C8B8A526C4239F66ED34B8CA57E178DC5E7B8D2BE029114B4CE466E2B5A081729B3F3A3F3845DDE177062F201C09125ED3CC381AF35EAD795440C421A136F941F09F3E4BA9E0203CBA875AF477AB0246342700F323E65DC327D27966377D871FD9C58BEC8797DEF35E1D0751A554719828B87332F601884EBFECB63A8D4F390785B3826BFA384BE502D2322C919ABD12A486C2AB124DCB7B74DE91241A30EF0388411E52145A88971C6C0A4E7C4F23EDD8D6008065A3D108C6B1EC5219BB0DFDBD37EE3A7A8DD37E3563A5777838FCA61E9E744813F39CF70B5A0F50E1BD4FF8733A3BDA76D2135969809D91A9786F22DC2ACBA4E0164C411019EC77A0BD253A42AC7528FC7C0DA1711FBD6C23825207060463080F9E04B7D819C8B150C22B8BA87C6277696EC409369C48AC0E3233DE52D31EF6D2207D2B57DFC2D0C43BE8212EAE6CB1BACBC2D3568E5527A14065D5F1F56AAE2AFB5FB1CEFFC228A30692BD030C71F4872DB54F2632CD919DA61576CF58D1EBE3D7988183A9C789EB74A3D7F6BBEBAC035A43397BF684C9E1130B252940DBA4454311A6A3D54D9386D48E1D5A3E70944EDF725AEDC5440CD610F79AB05A43C917FFC15213295EB8CB8432B6554A47C2AD419ADD52E0F5E0BD7A1E0F873257E69F8647F3A07093387B7A64C4812CDBEE536E45D531F89653AC5F14A4715CFF40692346FE6CBF2F9B92D9F1101C379AFD5E6154605059C1DA463B407E79C139396623DC7F15EEFCE424C8E214C6A645EF002F90A230D8F62177CBCF2A688D4F822B119835AD3D3A619F46230257A5AD59CB0924B2584DBA96AADE0A2487E7409EE5993A4F0E3DC46C10B96595CDD17D72C35EF4A52C5906655B0AE649B5DE03B7D46F3839E808761EE05E9300050647593C048669A952324B0188ED225AD11BED3FD94E44E134FB9D6DAD53CC34ECF62695E30637C4528C450D62174E2F8ABA2C09F134412EF889C24B36224BE4259B363A9D8EB89BAEE16BE1898D46":"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A":MBEDTLS_ERR_LMOTS_VERIFY_FAILED + +LMOTS negative test (invalid type) #1 +lmots_verify_test:"0000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA + +LMOTS negative test (invalid type) #2 +lmots_verify_test:"0000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA + +LMOTS key import / export test +lmots_import_export_test:"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A" + +LMOTS key reuse test +lmots_reuse_test:"cfcd1e81193e310c9d931d1b00818d14" diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function new file mode 100644 index 0000000000..6de94d1247 --- /dev/null +++ b/tests/suites/test_suite_lmots.function @@ -0,0 +1,108 @@ +/* BEGIN_HEADER */ +#include "mbedtls/lmots.h" +#include "mbedtls/entropy.h" +#include "mbedtls/ctr_drbg.h" + +/* END_HEADER */ + +/* BEGIN_DEPENDENCIES + * depends_on:MBEDTLS_LMOTS_C:MBEDTLS_SHA256_C:MBEDTLS_CTR_DRBG_C + * END_DEPENDENCIES + */ + +/* BEGIN_CASE */ +void lmots_sign_verify_test ( data_t * msg ) +{ + mbedtls_lmots_context ctx; + unsigned char sig[MBEDTLS_LMOTS_SIG_LEN]; + mbedtls_entropy_context entropy_ctx; + mbedtls_ctr_drbg_context drbg_ctx; + uint8_t seed[16]; + + mbedtls_entropy_init( &entropy_ctx ); + mbedtls_ctr_drbg_init( &drbg_ctx ); + mbedtls_lmots_init( &ctx ); + + TEST_ASSERT( mbedtls_ctr_drbg_seed( &drbg_ctx, mbedtls_entropy_func, + &entropy_ctx, (uint8_t*)"", 0 ) == 0 ); + TEST_ASSERT( mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ) == 0 ); + + TEST_ASSERT( mbedtls_lmots_set_algorithm_type(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8) == 0 ); + TEST_ASSERT( mbedtls_lmots_gen_privkey(&ctx, (uint8_t[16]){0}, 0x12, seed, sizeof( seed ) ) == 0 ); + TEST_ASSERT( mbedtls_lmots_gen_pubkey(&ctx) == 0 ); + TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, msg->x, msg->len, sig ) == 0 ); + TEST_ASSERT( mbedtls_lmots_verify(&ctx, msg->x, msg->len, sig) == 0 ); + +exit: + mbedtls_entropy_free( &entropy_ctx ); + mbedtls_ctr_drbg_free( &drbg_ctx ); + mbedtls_lmots_free( &ctx ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void lmots_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, + int expected_rc ) +{ + mbedtls_lmots_context ctx; + + mbedtls_lmots_init( &ctx ); + + mbedtls_lmots_import_pubkey( &ctx, pub_key->x ); + + TEST_ASSERT(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x ) == expected_rc ); + +exit: + mbedtls_lmots_free( &ctx ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void lmots_import_export_test ( data_t * pub_key ) +{ + mbedtls_lmots_context ctx; + uint8_t exported_pub_key[MBEDTLS_LMOTS_PUBKEY_LEN]; + + mbedtls_lmots_init( &ctx ); + TEST_ASSERT( mbedtls_lmots_import_pubkey( &ctx, pub_key->x ) == 0 ); + TEST_ASSERT( mbedtls_lmots_export_pubkey( &ctx, exported_pub_key ) == 0 ); + + TEST_ASSERT( memcmp( pub_key->x, exported_pub_key, MBEDTLS_LMOTS_PUBKEY_LEN ) == 0 ); + +exit: + mbedtls_lmots_free( &ctx ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void lmots_reuse_test ( data_t * msg ) +{ + mbedtls_lmots_context ctx; + unsigned char sig[MBEDTLS_LMOTS_SIG_LEN]; + mbedtls_entropy_context entropy_ctx; + mbedtls_ctr_drbg_context drbg_ctx; + uint8_t seed[16]; + + mbedtls_entropy_init( &entropy_ctx ); + mbedtls_ctr_drbg_init( &drbg_ctx ); + TEST_ASSERT( mbedtls_ctr_drbg_seed(&drbg_ctx, mbedtls_entropy_func, + &entropy_ctx, (uint8_t*)"", 0 ) == 0 ); + + mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ); + + mbedtls_lmots_init( &ctx ); + TEST_ASSERT( mbedtls_lmots_set_algorithm_type( &ctx, MBEDTLS_LMOTS_SHA256_N32_W8 ) == 0 ); + TEST_ASSERT( mbedtls_lmots_gen_privkey(&ctx, (uint8_t[16]){0}, 0x12, seed, sizeof( seed ) ) == 0 ); + TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, msg->x, msg->len, sig ) == 0 ); + + /* Running another sign operation should fail, since the key should now have + * been erased. + */ + TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, msg->x, msg->len, sig ) != 0 ); + +exit: + mbedtls_entropy_free( &entropy_ctx ); + mbedtls_ctr_drbg_free( &drbg_ctx ); + mbedtls_lmots_free( &ctx ); +} +/* END_CASE */ diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data new file mode 100644 index 0000000000..b17fddc153 --- /dev/null +++ b/tests/suites/test_suite_lms.data @@ -0,0 +1,32 @@ +LMS sign-verify test +lms_sign_verify_test:"c41ba177a0ca1ec31dfb2e145237e65b" + +LMS hash-sigs interop test #1 +lms_verify_test:"D5557C719EBB0DBECF563E5CDB16568BB11CD779":"0000000000000004C167A9AC495BD4EA34CD8EE5AAA2A656D518C33612FD87171421BFC3977CFA99765C6D496499C72A1DE21360DA57EB96BC83DB8AA92E560054C7805B04E336162FB4C411B509F76959F2458B0E53CF830E0145CCD439D494259EA4818CA68924A7E8B9DD36D6A9C7849B72F9338ED6C80A3E70B717E8E65B991B2FF9D8B49820E8ABC9E2ECC17DB38E855DA75D84DF9885C7F9DFB4ABC209CFF1D37D66595371D688A203CB89168945200C39169F784B19665CE1FB47D58BFA734C3E0E7E31D1206A033C6D8E25B7E45CA779A5FDE00C6B1CAC44884F2B52A380E1F6D8753549F7F4948A95AEA83703CF3AA108FA4F735AFC0DA1A03C378033D8B5959E7BE05D3C5070E709181AC09EFEC04128ABD7E8F37304FAD4B66373D4A83CFC1EF632DF6DB95577C2C6101CBDC807109ED8AE831FFB73DBC80942C58F334663B980F982C74B943BF7C57147250AADE595310387E3BB1A2705E9EC73DE7FABDA5EC0B1141A18798215B9A70F8D688357C833ED869059A2AA3360155EF84426288198D0FBB78223816B17093684C48942ED18FCD351C34E108E5B71D1CE39E318B5D991B650C46A91112E013E1180F2054C7A22429CAB31512BA34EA3AD9B68C5001EB70C993297CCF11914ECAF059922DAEE7D90ACE2567495ADA066E7DA1679CA45DAC1990B17184E7BE2E6A0F26AD77F19855D074F5B37372277484CE30B80A0540173C1B310C3E7B683A487B5D0676218EA1F65FEA444C493FC535E948EAB62252DCC90516BB45B60D4253DB6979FE342DC5CA1B86B01B2D8EBA79B0BC7B6984535616B792BB45F3C0E20B506E0694E1D5BA28FE96D34FE2BE354777D090404DD3508E9F7918FF5593ADB468478CA8A1F6AF752CC76F401E373B71471D9D70F455C8A73E4E7B6714394B1DD0E2A816AF3D5149835DAE477A70DEE0BDAC22F99A04BFB7C2D4AD53079C326F620DFD3F7CED4AB7F2E291507AA046331050F9E2205C52B36CBAEE817C5C3B1FBCDE61C54C8CB7B67E0570FA44728EC8FD091D5CEDC19C6B99840F7A0E49086F707E959D34B30E255B67BBAA24FADE532BF3D21825626E114BD8213170B0C2F01733D4ED420D01EE3ACD5F84DACE674AE7127DB0A80ACE252CAD9ADADDAFAB27281AFD6DDD72DB5AF878326C45D7DB1EFF8BC40895A3473A52461D076881310AD9937307217B5C0448B509EF9BA075936CC09E11B8838D3A6BC5EF9FAEA85A3EC87EEFDF2E38CD9732730085375A4FFC4E0A213B0E1FC3DE2D37F1EDACC3030F617F3459A03BFCF776A05FD3B7FD135782F6D6E7C5E92B56A1316525B26D3AE1CEA3C0C7CF3AA7B1E72B7599A31B50837D79A7AB61B9A9E2B7AABD2D605C97E302EB4B66C0588C24147955EA0892A54D42843568FE0863E7EFEAE336D302E672EA62689B4DAA02DD5BC99D93886EC7F411C53CE1CAEAB59FBC0B06E0E294F1900F8C626C6FF520AE2323DA797CDC120DBC19F7FEBA0E13429508C5B838A0F8B9B28A069C5DD40E2F6CC2C95FC6ACE7E1351516817BD2DC1AE08D498AD2B0BD1D8374942FF31FC6A4689C592244C919C3561E73DD4986FA500000006BBF34F6EE152B64FCDD1CB6848D2DA761798707060431761006E2EBD9312851F4F3DF3C46E10F643DDD58CB3D9F4D371F655EE26271F2DDE84A14CAA6A077DD96AF83849DE6CA8F2F3248902CBF49630C18C3EE3123D951CE9162D0E742B899AF9E5DA8D28A41C7CADF0194CDB09418BF48BF322F8C5E9563524196FA8AB785B43C4EA41A36148028D2F4C7356CDEEB09532CD7F2C80FC36589FF7A9954100C8697AEB014997C3088C242B4F70D26CE7F7E77384A9CF536EC5C5329E08BD6C1D65EFEFC1389A42D16FFB43A0E1D7661220E92A4A59703FB28410E73A677E803D4441929DFD7269E6F77AE8CA8C70B67B250A8728291EA5D4E3F03D505639408C88156DCBECC137142FA3585C09D99B84D8C380A5D29CE2ADA10A25F7CF939FE23288551F37FE2B7233BF97C0F5726B972E087BCBA095957CCD794794A4F50027":"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D":0 + +LMS hash-sigs interop test #2 +lms_verify_test:"DA16BE0B8FB691248486ACAFD531BE6EE4C362E0":"000000000000000484FCD0D791D175A0F86D64B2E8949F793CA9FFDC0347DE125DDB2F895BB9D2B43740B9B326B24F934D67586812BE6F3FB57E76FB12FBAD60A685F22A82C95C84AFAE63F47BB3CD951D483F61F5626B2B5FB6FDCA0CF02293EFDE1EB0AF6712D635678E825099E95435B43EF83C49C6589054D0905D82D597FB11A721D2232AD168FD179724539699C21163D5ADEB52290CB711C368572FF8BB95AA61DF2AD128307E768E73D3CF2BAFEAC8B6CD165BDD0316D2663D1ED61A15FB974082FC66A55E13ABA4FD084970EF6A59B0DFA1E934BF0E056C86E9B4C5B94CF863AB9F23BE2DB6A140A9CAA8DB31C83B21BDBDCD07304A52EB8501869D86BFDB68A376D94F847EED7E4CAB6A6EEC063945AE4DAF657D5509249E7FE430F5A13B188C4DD311F01746CE28F4F6540041EF6ADB299F712F591C83B0C12C1FB3E4A878C63217E25E08C004571FFC69E9C684E46F4D36C36409EBF3EB15F32A187176F4D177E0FE0E71ADFD4DA4AD2D57A0256B29AD5DAA6867AED20CC862AF5729D030514D41BB8D74551D8E925322C81A357A586227BBC885AB683BF835E9333A056AFEE96F2AD0FF6D6E235A9E2BC342ACBCF0B8EACC95E7B74215F6C65F12829433301F004EE1D9CFD16A4A1D092F48E99AEAE9E1FA4619ECE5E05F5C19F33C4C94A774EB8955409E3CFA73D8807CAA7C55FE45E980C7E7626AAA193F18A3AA7E525FFA6466D728FA25563DD383D855A0B6F8C011AC8C79C853CBED3A016DC26EF6E90B3E78119E465B9962A42B6AC168C1CDC9DB860D740B0C797303E2A62445FA618B5EB417BD4385C15BC548FEDF4D4842CA43F95188FFF63EB5D4AC85DAE618FDFB6CF5969EA0A3A52F73A4AC4957BC4EBCFEF593923EC79196021B25ED8D7558E4AF41ED74941585AC575CF1971D4F4C7C9E9516276734FF9FAFC7DE661F3090F71C98962789B31EA0FE406E2EF02F6F16B1708258C7559B8E05E27D647AD472805C865299FE30A5FE451DA7F2C493A37AA1655D492EC891B9AF559E12104CDD2EEB2E54138A1FB5A403AA32CEEB3946471A299604FA2DD3CA3E9567D01A3CEE5D09A1C2768B521C0C6142AF297CA5BFB3878B32D37D415542C15F655CB051240F3BA8FCE0E38449A0D7010A9B56BA2283E3A2047215813ED2090F7BDF16A40ADE32AB4E669684E6DEB6A94633E6643F29D10914F5A361C964CA9145514D4B80B45F3276EB0C649622034E71925FA038EB35E64C71CBDB11E91D779339516A351BD2A722CB60C2CBF145689B2E3F6FAEB74C3B58283929F70023503A96FED6A5D7D8A9E495FE1D85E0FCEC555F86747347D2FB5219FF65EFD144A5E1E88C63BE4259C42F6899C103536D75E0526508649E2836CACB94E88BD954B88EAC26F17B27BF62546C5C7573E2BC9EF4B65B8AE4951AF532F968FF050E504CC236DC48379E4390079DE451DCE710F9674D753C85B9FF7E7B09ED051EDD14C33AAFC8A188AE06234DFB61FE5A75C7A760B5286E1D6993BCEA0AB8A2C1D632145BD6A9F109ABB04E0B102D50DCB8C607AD6BA8C5FA5B21663E5A40194CA5DC2294BE10044E8D96AA0000000694ABC63BC5B27730C5223943C8341461474033BE3A221AFFDE66242AF14510CC656480CBDFC0B35205C89258A18BF6C29C4708CB2572DE15EE5DD481BC47060254954B5C5DD881AE6B358F7CDAB6F117235AAAC625B2750DB72BA4A96D7DFAA889BE780416E1CB264A413C6713710102D1D433BC6D0A47BF08AA74FD613D292A867261181BBD73557EE3AEB0F63579B71E58E97BAC1AACA3F34646350A13BB7ACE0AB3B062C41518768ABF3D32FB2F6A5E5C7F6B8B04C943D25A82F03F977755D74FD717A4B7E7674B03B577405210E23A2FE050E036DB0730359366A9436AD2CBCCE3E649F9E40023B2C12D9F5AA824319EAF571FD4842E573BB100BE9715D7B71F75521640D9B69B889349A283D62350D3A37264C89930F40603A5458B124EA850BA59024A46A8F325C9A9776817D739692FFAEA2758249888BF79D66FD496":"00000006000000043FC8322D04908C7C06C0D8B7A0CE24FA3AC253393CF9A56CF760294A06E75223E38C9E5329DDC493D8B51B1A4BBE41F8":0 + +LMS hash-sigs interop test #3 +lms_verify_test:"331D543362A163390508127AFB9894B8C18C6E0A":"0000000000000004F5378439E9C229550D40B725FD56BE48DB785093E62BD29B723C61FABEDCFD486EFA120445339DE2A21A8C7465073ACBFD6DE3E50F395AAC20E0BCB23B088C416199F80B540AA81B2C0B12B7785152263522E8F79AEBE3B28315CC834AEB68475CADBC724DB6B7B7F594A7F9DA2505F5F44DAA7EEF70B72665A250C1F61A19F3FA4CBF389BEB9B31DC327882D7983EEED46DA8E00AEBEF85AE179EBF6D8CC7F720E9F963C4D30DD4015DAA27993D0780AFD7A45688422B1444AD866FEFE12EBD94B4D313517708A6E652D6206A8B263E234685D8133C2258EF6CA9E9C6FFD6D153598B13B59576897DC4F77C71609427866A347AE62B5C3BACB0A2E44B60F2CCB4989B0C57F3E785CDCF22B1FC8C3460A163FF2BE7A578E82429BA823F392A13C11A5639A42453972D2185E81809EF0666F8F01F575FBD9A46135F45651AA814D9BA84F774A9E9303FD55038CA41A21484BA9C38E69BCE4E37052971690ED3EEC4ED9AD41B0AEAE4DCC913443B9FA5418FB75DC1725FA989BA8DB5D9E221804FC7F36F3135C8B93AFF66DF89408CFD50993D308E51DF00540F380C0AD06266B80F646B917BA58384B55658EAD2D453766C4843FCDD934E8352A6DF6A081A15BDE07BF67E977E72BFE1AC37F411111A0A4D101A2CCF95EBEC7FCFC82B45DBA88939B0831987AE4D15C05A2E08F713BB0B6BB0E2436B7F9C83D2D869432465DEB9185913DE215937EFB4A52DA50BEF88688F5AB4397A04B14CDBFA5BFD948CD6EA1122D9D3C2927DE9D066297AA2C6FE8E478EC0F41459287EF9B8A1A56164C72AE3DCE5E914E8BC3C3821E0ADD6D1C9048D71BD71F71F3A6E04E63687298DE5A3704ADA82AA369CCD7F342F79E988A7BE066CA55944E0E3712F472891761E5617DC048C69AA4C250AA1560D6591FC0E7492027BEED67310E3482B1487E41DEA5E070894A5FB93FF4462D1F60C4B1CA7C15275EEA2B3790ED12EA930FD7F7F07D60807E4AAB73D1F889DABF2E687A487F331AC17D8DE24E8448E672F87424F0D1A73721A1A987519D0E3BB91D15D012B1FCDB6E23EEA17E93869C5199984CE8A068CA96C3096273F8B23160A79EE0C208D9B70ED5E23CB3586DFD33E02D06F1C646250BD664C27D2BB9614FF5F043A6FEE1A235DA10DCAADB19205CB839BD616BB36B738AA28E1D4F767BD8BAB6C2F84887C7B2E16CF6E07AF90C1FCB6E6E5A4CC894072AF4393C63F7119FF694BF0A043AF5F0825557A99C40BABBDA97D5648687D493367812743335A8AD7696562538C8BA5DED182C4DC818E7E9F630B29A9534E2583E0F4B5862D4E4DB250A350BAF360EF133838FE55AA683E253746A704654EF692F4F818F5A172AB0B84673D0AF77CC1DF189AA5BB013E833D1B0943918768AC6A83E6BFB306D3C3786BD2C87129BFEA1C380A84C4983D262184427284BF3DEB9B4C58FB1899B07B9F60B4402618168B1445653E8E48CD92C048684302A6F5C217F110D6699707BA42316CB31FE8F4DA6B82243CF1264751225594AF1BB670339A9189163DB9E985A99BCF83A3039AF3E65BBCD8364745356B29D761853E00000006CDE5B63B9763DA3EABCFFDA517688BDEC2AE9213E6B0FD7003D95458798AE9449DE4F1135E093B39F597A34B14AAB7F596E25BA469533442F54C14921ABCC5D04A05486CD16C8564E6A19C11BEDA574A9800107DCEAD013A7E6A32966B5BBE9FDFDB0184FE0707209B6D9EC43066899717E487E5FDEE02061EA5069B2D6C9C87D6BEB1310F1B9E723AE372DB7BE9EF6657F51FD0DE62464D3B37755095829F625EA76F5FD7FCD5829863F963FCD7F9FFFF3729688D025DF7952B067C62198E4C6CE06E960B0BAC6ADBC9459D9AC0BE1BAD46F95A121BBBE6953BAA10252419E2AB6BCA1B0AA1FA64DF728160B4FB7A62499C24D269FF59977649064C5986D615E6952EA0DA5B1C04C443BC27A63D391D5BFAE824F0161791E65896DC100EAF80037FD800A5079337554BD990E0D0A1A4C4C45741E72FB3E840665F2881D2CCC5":"000000060000000461F2DF219685CF313043780A57C18071725490AB8D53B676D484238BA8C373572407938CC578045649964958C0A872FA":0 + +LMS hash-sigs interop negative test (altered random value) +lms_verify_test:"D5557C719EBB0DBECF563E5CDB16568BB11CD779":"0000000000000004B167A9AC495BD4EA34CD8EE5AAA2A656D518C33612FD87171421BFC3977CFA99765C6D496499C72A1DE21360DA57EB96BC83DB8AA92E560054C7805B04E336162FB4C411B509F76959F2458B0E53CF830E0145CCD439D494259EA4818CA68924A7E8B9DD36D6A9C7849B72F9338ED6C80A3E70B717E8E65B991B2FF9D8B49820E8ABC9E2ECC17DB38E855DA75D84DF9885C7F9DFB4ABC209CFF1D37D66595371D688A203CB89168945200C39169F784B19665CE1FB47D58BFA734C3E0E7E31D1206A033C6D8E25B7E45CA779A5FDE00C6B1CAC44884F2B52A380E1F6D8753549F7F4948A95AEA83703CF3AA108FA4F735AFC0DA1A03C378033D8B5959E7BE05D3C5070E709181AC09EFEC04128ABD7E8F37304FAD4B66373D4A83CFC1EF632DF6DB95577C2C6101CBDC807109ED8AE831FFB73DBC80942C58F334663B980F982C74B943BF7C57147250AADE595310387E3BB1A2705E9EC73DE7FABDA5EC0B1141A18798215B9A70F8D688357C833ED869059A2AA3360155EF84426288198D0FBB78223816B17093684C48942ED18FCD351C34E108E5B71D1CE39E318B5D991B650C46A91112E013E1180F2054C7A22429CAB31512BA34EA3AD9B68C5001EB70C993297CCF11914ECAF059922DAEE7D90ACE2567495ADA066E7DA1679CA45DAC1990B17184E7BE2E6A0F26AD77F19855D074F5B37372277484CE30B80A0540173C1B310C3E7B683A487B5D0676218EA1F65FEA444C493FC535E948EAB62252DCC90516BB45B60D4253DB6979FE342DC5CA1B86B01B2D8EBA79B0BC7B6984535616B792BB45F3C0E20B506E0694E1D5BA28FE96D34FE2BE354777D090404DD3508E9F7918FF5593ADB468478CA8A1F6AF752CC76F401E373B71471D9D70F455C8A73E4E7B6714394B1DD0E2A816AF3D5149835DAE477A70DEE0BDAC22F99A04BFB7C2D4AD53079C326F620DFD3F7CED4AB7F2E291507AA046331050F9E2205C52B36CBAEE817C5C3B1FBCDE61C54C8CB7B67E0570FA44728EC8FD091D5CEDC19C6B99840F7A0E49086F707E959D34B30E255B67BBAA24FADE532BF3D21825626E114BD8213170B0C2F01733D4ED420D01EE3ACD5F84DACE674AE7127DB0A80ACE252CAD9ADADDAFAB27281AFD6DDD72DB5AF878326C45D7DB1EFF8BC40895A3473A52461D076881310AD9937307217B5C0448B509EF9BA075936CC09E11B8838D3A6BC5EF9FAEA85A3EC87EEFDF2E38CD9732730085375A4FFC4E0A213B0E1FC3DE2D37F1EDACC3030F617F3459A03BFCF776A05FD3B7FD135782F6D6E7C5E92B56A1316525B26D3AE1CEA3C0C7CF3AA7B1E72B7599A31B50837D79A7AB61B9A9E2B7AABD2D605C97E302EB4B66C0588C24147955EA0892A54D42843568FE0863E7EFEAE336D302E672EA62689B4DAA02DD5BC99D93886EC7F411C53CE1CAEAB59FBC0B06E0E294F1900F8C626C6FF520AE2323DA797CDC120DBC19F7FEBA0E13429508C5B838A0F8B9B28A069C5DD40E2F6CC2C95FC6ACE7E1351516817BD2DC1AE08D498AD2B0BD1D8374942FF31FC6A4689C592244C919C3561E73DD4986FA500000006BBF34F6EE152B64FCDD1CB6848D2DA761798707060431761006E2EBD9312851F4F3DF3C46E10F643DDD58CB3D9F4D371F655EE26271F2DDE84A14CAA6A077DD96AF83849DE6CA8F2F3248902CBF49630C18C3EE3123D951CE9162D0E742B899AF9E5DA8D28A41C7CADF0194CDB09418BF48BF322F8C5E9563524196FA8AB785B43C4EA41A36148028D2F4C7356CDEEB09532CD7F2C80FC36589FF7A9954100C8697AEB014997C3088C242B4F70D26CE7F7E77384A9CF536EC5C5329E08BD6C1D65EFEFC1389A42D16FFB43A0E1D7661220E92A4A59703FB28410E73A677E803D4441929DFD7269E6F77AE8CA8C70B67B250A8728291EA5D4E3F03D505639408C88156DCBECC137142FA3585C09D99B84D8C380A5D29CE2ADA10A25F7CF939FE23288551F37FE2B7233BF97C0F5726B972E087BCBA095957CCD794794A4F50027":"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D":MBEDTLS_ERR_LMS_VERIFY_FAILED + +LMS negative test (invalid lms type) #1 +lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000700000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS negative test (invalid lms type) #2 +lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000500000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS negative test (invalid lm_ots type) #1 +lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS negative test (invalid lm_ots type) #2 +lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS negative test (invalid leaf ID) +lms_verify_test:"0000000000000000000000000000000000000000":"000004000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_VERIFY_FAILED + +LMS import/export test +lms_import_export_test:"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D" diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function new file mode 100644 index 0000000000..b19d074fa7 --- /dev/null +++ b/tests/suites/test_suite_lms.function @@ -0,0 +1,85 @@ +/* BEGIN_HEADER */ +#include "mbedtls/lms.h" +#include "mbedtls/entropy.h" +#include "mbedtls/ctr_drbg.h" + +/* END_HEADER */ + +/* BEGIN_DEPENDENCIES + * depends_on:MBEDTLS_LMS_C:MBEDTLS_SHA256_C:MBEDTLS_CTR_DRBG_C + * END_DEPENDENCIES + */ + +/* BEGIN_CASE */ +void lms_sign_verify_test ( data_t * msg ) +{ + mbedtls_lms_context ctx; + unsigned char sig[MBEDTLS_LMS_SIG_LEN]; + mbedtls_entropy_context entropy_ctx; + mbedtls_ctr_drbg_context drbg_ctx; + uint8_t seed[16]; + int rc; + + mbedtls_entropy_init( &entropy_ctx ); + mbedtls_ctr_drbg_init( &drbg_ctx ); + mbedtls_lms_init( &ctx ); + + TEST_ASSERT( mbedtls_ctr_drbg_seed( &drbg_ctx, mbedtls_entropy_func, + &entropy_ctx, ( uint8_t* )"", 0 ) == 0 ); + TEST_ASSERT( mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ) == 0 ); + + TEST_ASSERT( mbedtls_lms_set_algorithm_type( &ctx, MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8 ) == 0 ); + + /* Allocation failure isn't a test failure, since it likely just means there's not enough memory to run the test */ + rc = mbedtls_lms_gen_privkey( &ctx, mbedtls_ctr_drbg_random, &drbg_ctx, seed, sizeof( seed ) ); + TEST_ASSUME( rc != MBEDTLS_ERR_LMS_ALLOC_FAILED ); + TEST_ASSERT( rc == 0 ); + + TEST_ASSERT( mbedtls_lms_gen_pubkey( &ctx) == 0 ); + + TEST_ASSERT( mbedtls_lms_sign( &ctx, mbedtls_ctr_drbg_random, &drbg_ctx, msg->x, msg->len, sig ) == 0 ); + + TEST_ASSERT( mbedtls_lms_verify( &ctx, msg->x, msg->len, sig) == 0 ); + +exit: + mbedtls_entropy_free( &entropy_ctx ); + mbedtls_ctr_drbg_free( &drbg_ctx ); + mbedtls_lms_free( &ctx ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void lms_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, + int expected_rc ) +{ + mbedtls_lms_context ctx; + + mbedtls_lms_init( &ctx); + + mbedtls_lms_import_pubkey( &ctx, pub_key->x ); + + TEST_ASSERT( mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x ) == expected_rc ); + +exit: + mbedtls_lms_free( &ctx ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void lms_import_export_test ( data_t * pub_key ) +{ + mbedtls_lms_context ctx; + uint8_t exported_pub_key[MBEDTLS_LMS_PUBKEY_LEN]; + + mbedtls_lms_init(&ctx); + TEST_ASSERT( mbedtls_lms_import_pubkey( &ctx, pub_key->x ) == 0 ); + TEST_ASSERT( mbedtls_lms_export_pubkey( &ctx, exported_pub_key) == 0 ); + + ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBKEY_LEN, + exported_pub_key, MBEDTLS_LMS_PUBKEY_LEN ); + +exit: + mbedtls_lms_free( &ctx ); +} +/* END_CASE */ + From c464746d456557135ec04b22c602865dc532ff8c Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 15 Jun 2022 12:17:51 +0100 Subject: [PATCH 0588/1028] Document LMS and LMOTS contexts And add some comments about the source of their type IDs Signed-off-by: Raef Coles --- include/mbedtls/lmots.h | 31 +++++++++++++++++++++---------- include/mbedtls/lms.h | 29 +++++++++++++++++++++-------- 2 files changed, 42 insertions(+), 18 deletions(-) diff --git a/include/mbedtls/lmots.h b/include/mbedtls/lmots.h index a177ad4a57..c98f3bfd7e 100644 --- a/include/mbedtls/lmots.h +++ b/include/mbedtls/lmots.h @@ -59,8 +59,8 @@ extern "C" { #endif -/* We are only implementing a subset of the types, particularly n32_w8, for the - * sake of simplicty +/* https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml + * We are only implementing a subset of the types, particularly n32_w8, for the sake of simplicty. */ typedef enum { MBEDTLS_LMOTS_SHA256_N32_W8 = 4 @@ -68,14 +68,25 @@ typedef enum { typedef struct { - unsigned char MBEDTLS_PRIVATE(have_privkey); - unsigned char MBEDTLS_PRIVATE(have_pubkey); - unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); - unsigned int MBEDTLS_PRIVATE(q_leaf_identifier); - unsigned char MBEDTLS_PRIVATE(q_leaf_identifier_bytes)[MBEDTLS_LMOTS_Q_LEAF_ID_LEN]; - mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(type); - unsigned char MBEDTLS_PRIVATE(priv_key[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32]); - unsigned char MBEDTLS_PRIVATE(pub_key[32]); + unsigned char MBEDTLS_PRIVATE(have_privkey); /*!< Whether the context contains a private key. + Boolean values only. */ + unsigned char MBEDTLS_PRIVATE(have_pubkey); /*!< Whether the context contains a public key. + Boolean values only. */ + unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); /*!< The key + identifier. */ + unsigned int MBEDTLS_PRIVATE(q_leaf_identifier); /*!< Which leaf of the LMS key this is. + 0 if the key is not part of an LMS key. */ + unsigned char MBEDTLS_PRIVATE(q_leaf_identifier_bytes)[MBEDTLS_LMOTS_Q_LEAF_ID_LEN];/*!< The + leaf identifier in network bytes form. */ + mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LM-OTS key type identifier as + per IANA. Only SHA256_N32_W8 is currently + supported. */ + unsigned char MBEDTLS_PRIVATE(priv_key[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32]); /*!< The private + key, one hash output per byte of the encoded + symbol string P (32 bytes of hash output + + 2 bytes of checksum). */ + unsigned char MBEDTLS_PRIVATE(pub_key[32]); /*!< The public key, in the form of a SHA256 + output. */ } mbedtls_lmots_context; diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 868a667e6a..2de03f7ef6 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -58,20 +58,33 @@ extern "C" { #endif +/* https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml + * We are only implementing a subset of the types, particularly H10, for the sake of simplicty. + */ typedef enum { MBEDTLS_LMS_SHA256_M32_H10 = 0x6, } mbedtls_lms_algorithm_type_t; typedef struct { - unsigned char MBEDTLS_PRIVATE(have_privkey); - unsigned char MBEDTLS_PRIVATE(have_pubkey); - unsigned char MBEDTLS_PRIVATE(I_key_identifier)[MBEDTLS_LMOTS_I_KEY_ID_LEN]; - mbedtls_lms_algorithm_type_t MBEDTLS_PRIVATE(type); - mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(otstype); - unsigned int MBEDTLS_PRIVATE(q_next_usable_key); - mbedtls_lmots_context *MBEDTLS_PRIVATE(priv_keys); - unsigned char MBEDTLS_PRIVATE(T_1_pub_key)[MBEDTLS_LMS_M_NODE_BYTES]; + unsigned char MBEDTLS_PRIVATE(have_privkey); /*!< Whether the context contains a private key. + Boolean values only. */ + unsigned char MBEDTLS_PRIVATE(have_pubkey); /*!< Whether the context contains a public key. + Boolean values only. */ + unsigned char MBEDTLS_PRIVATE(I_key_identifier)[MBEDTLS_LMOTS_I_KEY_ID_LEN]; /*!< The key + identifier. */ + mbedtls_lms_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LMS key type identifier as per + IANA. Only SHA256_M32_H10 is currently + supported. */ + mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(otstype); /*!< The LM-OTS key type identifier as + per IANA. Only SHA256_N32_W8 is currently + supported. */ + unsigned int MBEDTLS_PRIVATE(q_next_usable_key); /*!< The index of the next OTS key that has not + been used. */ + mbedtls_lmots_context *MBEDTLS_PRIVATE(priv_keys); /*!< The private key material. One OTS key + for each leaf node in the merkle tree. */ + unsigned char MBEDTLS_PRIVATE(T_1_pub_key)[MBEDTLS_LMS_M_NODE_BYTES]; /*!< The public key, in + the form of the merkle tree root node. */ } mbedtls_lms_context; From 0aa18e041fe03a841a190e00f36395f0286dba8c Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 15 Jun 2022 13:05:56 +0100 Subject: [PATCH 0589/1028] Note that LMS sign function is for testing only Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 2de03f7ef6..77559e24b7 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -34,7 +34,7 @@ #define MBEDTLS_ERR_LMS_VERIFY_FAILED -0x0015 /**< LMS signature verification failed */ #define MBEDTLS_ERR_LMS_ALLOC_FAILED -0x0017 /**< LMS failed to allocate space for a private key */ -#define MBEDTLS_LMS_TYPE_LEN (4) +#define MBEDTLS_LMS_TYPE_LEN (4) #define MBEDTLS_LMS_H_TREE_HEIGHT (10) #define MBEDTLS_LMS_M_NODE_BYTES (32) @@ -123,6 +123,10 @@ int mbedtls_lms_set_algorithm_type( mbedtls_lms_context *ctx, * \brief This function creates a LMS signature, using a * LMOTS context that contains a private key. * + * \note This function is intended for _testing purposes + * only_, due to complexities around updating stateful + * keys. + * * \note Before this function is called, the context must * have been initialized and must contain a private * key. From 2ad6e611f06a32a0721a1df2c625bc731d6e04f4 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 24 Aug 2022 13:33:35 +0100 Subject: [PATCH 0590/1028] Update LMS/LMOTS documentation Signed-off-by: Raef Coles --- ChangeLog.d/LMS.txt | 15 ++++++------- include/mbedtls/lmots.h | 49 +++++++++++++++++++++++++++++++++++------ include/mbedtls/lms.h | 41 +++++++++++++++++++++++++++++----- 3 files changed, 85 insertions(+), 20 deletions(-) diff --git a/ChangeLog.d/LMS.txt b/ChangeLog.d/LMS.txt index 0f09f01860..6de374f865 100644 --- a/ChangeLog.d/LMS.txt +++ b/ChangeLog.d/LMS.txt @@ -1,12 +1,11 @@ Features - * Add the LMS post-quantum-safe stateful-hash asymmetric signature scheme - as defined in RFC8554 and NIST.SP.200-208. This currently only supports - one parameter set (LMS_SHA256_M32_H10), meaning that each private key can - be used to sign 1024 messages. As such, it is not intended for use in TLS, - but instead for verification of assets transmitted over an insecure - channel, particularly firmware images. This is one of the signature - schemes recommended by the IETF draft SUIT standard for IOT firmware - upgrades (RFC9019). + * Add the LMS post-quantum-safe stateful-hash asymmetric signature scheme. + Signature verification is production-ready, but generation is for testing + purposes only. This currently only supports one parameter set + (LMS_SHA256_M32_H10), meaning that each private key can be used to sign + 1024 messages. As such, it is not intended for use in TLS, but instead for + verification of assets transmitted over an insecure channel, particularly + firmware images. * Add the LM-OTS post-quantum-safe one-time signature scheme, which is required for LMS. This can be used independently, but each key can only be used to sign one message so is impractical for most circumstances. diff --git a/include/mbedtls/lmots.h b/include/mbedtls/lmots.h index c98f3bfd7e..d89f5bb1c0 100644 --- a/include/mbedtls/lmots.h +++ b/include/mbedtls/lmots.h @@ -2,7 +2,9 @@ * \file lmots.h * * \brief This file provides an API for the LM-OTS post-quantum-safe one-time - * public-key signature scheme. + * public-key signature scheme as defined in RFC8554 and NIST.SP.200-208. + * This implementation currently only supports a single parameter set + * MBEDTLS_LMOTS_SHA256_N32_W8 in order to reduce complexity. */ /* * Copyright The Mbed TLS Contributors @@ -67,6 +69,33 @@ typedef enum { } mbedtls_lmots_algorithm_type_t; +/** LMOTS context structure. + * + * The context must be initialized before it is used. A public key must either + * be imported, or an algorithm type set, a private key generated and the public + * key calculated from it. A context that does not contain a public key cannot + * verify, and a context that does not contain a private key cannot sign. + * Signing a message will remove the private key from the context, as private + * keys can only be used a single time. + * + * \dot + * digraph lmots { + * UNINITIALIZED -> INIT [label="init"]; + * TYPE_SET -> INIT [label="free"]; + * PRIVATE -> INIT [label="free"]; + * PUBLIC -> INIT [label="free"]; + * "PRIVATE+PUBLIC" -> INIT [label="free"]; + * INIT -> TYPE_SET [label="set_algorithm_type"]; + * PRIVATE -> TYPE_SET [label="sign"]; + * "PRIVATE+PUBLIC" -> PUBLIC [label="sign"]; + * INIT -> PUBLIC [label="import_public"]; + * PUBLIC -> PUBLIC [label="export_pubkey"]; + * "PRIVATE+PUBLIC" -> "PRIVATE+PUBLIC" [label="export_pubkey"]; + * PRIVATE -> "PRIVATE+PUBLIC" [label="gen_pubkey"]; + * TYPE_SET -> PRIVATE [label="gen_privkey"]; + * } + * \enddot + */ typedef struct { unsigned char MBEDTLS_PRIVATE(have_privkey); /*!< Whether the context contains a private key. Boolean values only. */ @@ -129,15 +158,14 @@ int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, * mbedtls_lmots_verify will be used for LMOTS * signature verification. * - * \param I_key_identifier The key identifier of the key, as a 16 byte - * bytestring. + * \param I_key_identifier The key identifier of the key, as a 16-byte string. * \param q_leaf_identifier The leaf identifier of key. If this LMOTS key is * not being used as part of an LMS key, this should * be set to 0. * \param msg The buffer from which the message will be read. * \param msg_len The size of the message that will be read. - * \param sig The buff from which the signature will be read. - * MBEDTLS_LMOTS_SIG_LEN bytes will be read from this. + * \param sig The buffer from which the signature will be read. + * #MBEDTLS_LMOTS_SIG_LEN bytes will be read from this. * \param out The buffer where the candidate public key will be * stored. Must be at least #MBEDTLS_LMOTS_N_HASH_LEN * bytes in size. @@ -189,6 +217,10 @@ int mbedtls_lmots_sign( mbedtls_lmots_context *ctx, * \brief This function verifies a LMOTS signature, using a * LMOTS context that contains a public key. * + * \warning This function is **not intended for use in + * production**, due to as-yet unsolved problems with + * handling stateful keys. + * * \note Before this function is called, the context must * have been initialized and must contain a public key * (either by import or generation). @@ -270,6 +302,10 @@ int mbedtls_lmots_gen_pubkey( mbedtls_lmots_context *ctx ); * \brief This function generates an LMOTS private key, and * stores in into an LMOTS context. * + * \warning This function is **not intended for use in + * production**, due to as-yet unsolved problems with + * handling stateful keys. + * * \note Before this function is called, the context must * have been initialized and the type of the LMOTS * context set using mbedtls_lmots_set_algorithm_type @@ -278,8 +314,7 @@ int mbedtls_lmots_gen_pubkey( mbedtls_lmots_context *ctx ); * * \param ctx The initialized LMOTS context to generate the key * into. - * \param I_key_identifier The key identifier of the key, as a 16 byte - * bytestring. + * \param I_key_identifier The key identifier of the key, as a 16-byte string. * \param q_leaf_identifier The leaf identifier of key. If this LMOTS key is * not being used as part of an LMS key, this should * be set to 0. diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 77559e24b7..72ed521fee 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -2,7 +2,11 @@ * \file lms.h * * \brief This file provides an API for the LMS post-quantum-safe stateful-hash - * public-key signature scheme. + public-key signature scheme as defined in RFC8554 and NIST.SP.200-208. + * This implementation currently only supports a single parameter set + * MBEDTLS_LMS_SHA256_M32_H10 in order to reduce complexity. This is one + * of the signature schemes recommended by the IETF draft SUIT standard + * for IOT firmware upgrades (RFC9019). */ /* * Copyright The Mbed TLS Contributors @@ -36,7 +40,7 @@ #define MBEDTLS_LMS_TYPE_LEN (4) #define MBEDTLS_LMS_H_TREE_HEIGHT (10) -#define MBEDTLS_LMS_M_NODE_BYTES (32) +#define MBEDTLS_LMS_M_NODE_BYTES (32) /* The length of a hash output, 32 for SHA256 */ #define MBEDTLS_LMS_SIG_LEN (MBEDTLS_LMOTS_Q_LEAF_ID_LEN + MBEDTLS_LMOTS_SIG_LEN + \ MBEDTLS_LMS_TYPE_LEN + MBEDTLS_LMS_H_TREE_HEIGHT * MBEDTLS_LMS_M_NODE_BYTES) @@ -66,6 +70,29 @@ typedef enum { } mbedtls_lms_algorithm_type_t; +/** LMS context structure. + * + * The context must be initialized before it is used. A public key must either + * be imported, or an algorithm type set, a private key generated and the public + * key calculated from it. A context that does not contain a public key cannot + * verify, and a context that does not contain a private key cannot sign. + * + * \dot + * digraph lmots { + * UNINITIALIZED -> INIT [label="init"]; + * TYPE_SET -> INIT [label="free"]; + * PRIVATE -> INIT [label="free"]; + * PUBLIC -> INIT [label="free"]; + * "PRIVATE+PUBLIC" -> INIT [label="free"]; + * INIT -> TYPE_SET [label="set_algorithm_type"]; + * INIT -> PUBLIC [label="import_public"]; + * PUBLIC -> PUBLIC [label="export_pubkey"]; + * "PRIVATE+PUBLIC" -> "PRIVATE+PUBLIC" [label="export_pubkey"]; + * PRIVATE -> "PRIVATE+PUBLIC" [label="gen_pubkey"]; + * TYPE_SET -> PRIVATE [label="gen_privkey"]; + * } + * \enddot + */ typedef struct { unsigned char MBEDTLS_PRIVATE(have_privkey); /*!< Whether the context contains a private key. Boolean values only. */ @@ -123,9 +150,9 @@ int mbedtls_lms_set_algorithm_type( mbedtls_lms_context *ctx, * \brief This function creates a LMS signature, using a * LMOTS context that contains a private key. * - * \note This function is intended for _testing purposes - * only_, due to complexities around updating stateful - * keys. + * \warning This function is **not intended for use in + * production**, due to as-yet unsolved problems with + * handling stateful keys. * * \note Before this function is called, the context must * have been initialized and must contain a private @@ -242,6 +269,10 @@ int mbedtls_lms_gen_pubkey( mbedtls_lms_context *ctx ); * \brief This function generates an LMS private key, and * stores in into an LMS context. * + * \warning This function is **not intended for use in + * production**, due to as-yet unsolved problems with + * handling stateful keys. + * * \note Before this function is called, the context must * have been initialized and the type of the LMS * context set using mbedtls_lmots_set_algorithm_type From 7dce69a27aa606ac4b7be1199599a7ded3fc9397 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 24 Aug 2022 14:07:06 +0100 Subject: [PATCH 0591/1028] Make LMOTS a private api Signed-off-by: Raef Coles --- include/mbedtls/check_config.h | 9 ++---- include/mbedtls/error.h | 1 - include/mbedtls/lms.h | 3 +- include/mbedtls/mbedtls_config.h | 16 +--------- library/lmots.c | 41 +++++++++++++------------- {include/mbedtls => library}/lmots.h | 3 -- library/lms.c | 3 +- scripts/generate_errors.pl | 2 +- tests/suites/test_suite_lmots.data | 6 ++-- tests/suites/test_suite_lmots.function | 6 ++-- 10 files changed, 36 insertions(+), 54 deletions(-) rename {include/mbedtls => library}/lmots.h (98%) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 37253ab525..99e863cccf 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -353,14 +353,9 @@ #error "MBEDTLS_MD_C defined, but not all prerequisites" #endif -#if defined(MBEDTLS_LMOTS_C) && \ - ( !defined(MBEDTLS_MD_C) ) -#error "MBEDTLS_LMOTS_C requires MBEDTLS_MD_C" -#endif - #if defined(MBEDTLS_LMS_C) && \ - ( !defined(MBEDTLS_LMOTS_C) || !defined(MBEDTLS_MD_C) ) -#error "MBEDTLS_LMS_C requires MBEDTLS_LMOTS_C and MBEDTLS_MD_C" + ( !defined(MBEDTLS_MD_C) ) +#error "MBEDTLS_LMS_C requires MBEDTLS_MD_C" #endif #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \ diff --git a/include/mbedtls/error.h b/include/mbedtls/error.h index 73d61dbc63..fe5d497929 100644 --- a/include/mbedtls/error.h +++ b/include/mbedtls/error.h @@ -82,7 +82,6 @@ * POLY1305 3 0x0057-0x005B * CHACHAPOLY 2 0x0054-0x0056 * PLATFORM 2 0x0070-0x0072 - * LMOTS 2 0x0076-0x0078 * LMS 2 0x0011-0x0017 * * High-level module nr (3 bits - 0x0...-0x7...) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 72ed521fee..99fe678bf3 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -30,8 +30,9 @@ #include #include +#include "lmots.h" + #include "mbedtls/private_access.h" -#include "mbedtls/lmots.h" #define MBEDTLS_ERR_LMS_BAD_INPUT_DATA -0x0011 /**< Bad data has been input to an LMS function */ #define MBEDTLS_ERR_LMS_OUT_OF_PRIV_KEYS -0x0013 /**< Specified LMS key has utilised all of its private keys */ diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 1da395b5c3..8c833b1cf9 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2461,20 +2461,6 @@ */ #define MBEDTLS_HMAC_DRBG_C -/** - * \def MBEDTLS_LMOTS_C - * - * Enable the LMOTS one-time asymmetric hash signature algorithm. - * - * Module: library/lm_ots.c - * Caller: - * - * Requires: MBEDTLS_SHA256_C - * - * Uncomment to enable the LMOTS signature algorithm. - */ -#define MBEDTLS_LMOTS_C - /** * \def MBEDTLS_LMS_C * @@ -2483,7 +2469,7 @@ * Module: library/lms.c * Caller: * - * Requires: MBEDTLS_LMS_C + * Requires: MBEDTLS_MD_C * * Uncomment to enable the LMS signature algorithm. */ diff --git a/library/lmots.c b/library/lmots.c index 7319d29be7..2c44772348 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -32,11 +32,12 @@ #include "common.h" -#ifdef MBEDTLS_LMOTS_C +#ifdef MBEDTLS_LMS_C #include -#include "mbedtls/lmots.h" +#include "lmots.h" + #include "mbedtls/md.h" #include "mbedtls/platform_util.h" #include "mbedtls/error.h" @@ -329,7 +330,7 @@ int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, { if( ctx == NULL ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } ctx->MBEDTLS_PRIVATE(type) = type; @@ -350,7 +351,7 @@ int mbedtls_lmots_generate_pub_key_candidate( const unsigned char I_key_identifi if (I_key_identifier == NULL || msg == NULL || sig == NULL || out == NULL) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } ret = create_symbol_array( I_key_identifier, q_leaf_identifier, msg, msg_len, @@ -390,13 +391,13 @@ int mbedtls_lmots_sign( mbedtls_lmots_context *ctx, if( ctx == NULL || f_rng == NULL || p_rng == NULL || msg == NULL || sig == NULL) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } /* Check that a private key is loaded */ if ( !ctx->MBEDTLS_PRIVATE(have_privkey) ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } ret = f_rng( p_rng, sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, MBEDTLS_LMOTS_N_HASH_LEN ); @@ -447,23 +448,23 @@ int mbedtls_lmots_verify( mbedtls_lmots_context *ctx, const unsigned char *msg, if( ctx == NULL || msg == NULL || sig == NULL) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } if ( !ctx->MBEDTLS_PRIVATE(have_pubkey) ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } if( ctx->MBEDTLS_PRIVATE(type ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } if ( network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { - return( MBEDTLS_ERR_LMOTS_VERIFY_FAILED ); + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } ret = mbedtls_lmots_generate_pub_key_candidate( ctx->MBEDTLS_PRIVATE(I_key_identifier), @@ -478,7 +479,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_context *ctx, const unsigned char *msg, if ( memcmp( &Kc_public_key_candidate, ctx->MBEDTLS_PRIVATE(pub_key), sizeof( ctx->MBEDTLS_PRIVATE(pub_key) ) ) ) { - return( MBEDTLS_ERR_LMOTS_VERIFY_FAILED ); + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } return( 0 ); @@ -489,7 +490,7 @@ int mbedtls_lmots_import_pubkey( mbedtls_lmots_context *ctx, { if ( ctx == NULL || key == NULL) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } ctx->MBEDTLS_PRIVATE(type) = network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, @@ -515,12 +516,12 @@ int mbedtls_lmots_export_pubkey( mbedtls_lmots_context *ctx, { if ( ctx == NULL || key == NULL) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } if ( ! ctx->MBEDTLS_PRIVATE(have_pubkey) ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), MBEDTLS_LMOTS_TYPE_LEN, @@ -546,13 +547,13 @@ int mbedtls_lmots_gen_pubkey( mbedtls_lmots_context *ctx ) if( ctx == NULL ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } /* Check that a private key is loaded */ if ( !ctx->MBEDTLS_PRIVATE(have_privkey) ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } ret = hash_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), @@ -592,16 +593,16 @@ int mbedtls_lmots_gen_privkey( mbedtls_lmots_context *ctx, if( ctx == NULL || I_key_identifier == NULL || seed == NULL) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } if ( ctx->MBEDTLS_PRIVATE(have_privkey) ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } if ( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } memcpy( ctx->MBEDTLS_PRIVATE(I_key_identifier), I_key_identifier, @@ -681,4 +682,4 @@ out: return ret; } -#endif /* MBEDTLS_LMOTS_C */ +#endif /* MBEDTLS_LMS_C */ diff --git a/include/mbedtls/lmots.h b/library/lmots.h similarity index 98% rename from include/mbedtls/lmots.h rename to library/lmots.h index d89f5bb1c0..e425f9ec70 100644 --- a/include/mbedtls/lmots.h +++ b/library/lmots.h @@ -31,9 +31,6 @@ #include #include -#define MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA -0x0076 /**< Bad data has been input to an LMOTS function */ -#define MBEDTLS_ERR_LMOTS_VERIFY_FAILED -0x0078 /**< LMOTS signature verification failed */ - #define MBEDTLS_LMOTS_N_HASH_LEN (32) #define MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN (34) #define MBEDTLS_LMOTS_TYPE_LEN (4) diff --git a/library/lms.c b/library/lms.c index e1ac7b9353..d8969ba390 100644 --- a/library/lms.c +++ b/library/lms.c @@ -36,8 +36,9 @@ #include +#include "lmots.h" + #include "mbedtls/lms.h" -#include "mbedtls/lmots.h" #include "mbedtls/md.h" #include "mbedtls/error.h" #include "mbedtls/platform_util.h" diff --git a/scripts/generate_errors.pl b/scripts/generate_errors.pl index d333f6590f..41b03377d0 100755 --- a/scripts/generate_errors.pl +++ b/scripts/generate_errors.pl @@ -47,7 +47,7 @@ my $error_format_file = $data_dir.'/error.fmt'; my @low_level_modules = qw( AES ARIA ASN1 BASE64 BIGNUM CAMELLIA CCM CHACHA20 CHACHAPOLY CMAC CTR_DRBG DES - ENTROPY ERROR GCM HKDF HMAC_DRBG LMS LMOTS MD5 + ENTROPY ERROR GCM HKDF HMAC_DRBG LMS MD5 NET OID PADLOCK PBKDF2 PLATFORM POLY1305 RIPEMD160 SHA1 SHA256 SHA512 THREADING ); my @high_level_modules = qw( CIPHER DHM ECP MD diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index ed192bf7d7..d5088f9e57 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -14,13 +14,13 @@ LMOTS hash-sigs interop test #3 lmots_verify_test:"C32F83EFBFD87F386A6C0850CBB93A75F2506A35":"00000004BD2D174BEBEEF1CAF06E4BF1088DE2AAB17C0528579BD4E1C4A1ED583C36BDACA49798373961B605EAEFAEFC0B4BC39C7AD30572CD29BEBE9AEE503CA2D8BF8C31C8A1B71CF67A18EE01A8A878699F22A1AEE32731E51E3EAD3775EFD8339E263C5A4544559506BA5502B9AEF59217ABC24923EC5E28D18BA18B0D964DB277007A76B8075B39F48CDA92148C9BAE1C7E5421CA753FA2D6BEAE8F49977E4E5B6F38D35BA28A526A53061E57BB92DA0EBBD4AE01AE9FADBED74F503DC39FA2E10C20B47DFB3DFBE25EC35618D2307D21716B10F8FB5095B42C289D1847E5D6F9988C6763D288667D3B658A4F3613E084DAE8B78E0B295A6ED28E88C676995AA5EB1533CDF8EB6F95A5E5117F06B1759495A9CB6E40FBF1F97FF73FDCBFD315C48DA631AB0425CA0633817C46F25E84AEEA37DD77310EE56815E83F862EF14E15FC1246243AA02F40EA32567237D5ADC2944BD63CF55FA4F0DE251B3F5C067D9EC396D5E20F9CEF2C555D89DA721D91D6D607653B97636AB10B74F39FA984D23A3D276EFF5F49C336274A66AC491EDE34686C6CFC17F5312FD3E3E5749A2E472011FA391A5ACF09D918B01704B447FD5E3EA6BB726A3475775DFE6A98CE5473CDEDB630EA4D604BAF36A8B8A8E567F05929E8A74970AA742FBC945021017E464E753D5AC497925AA4AECA0CBF562B2E39F891E177FD8E4E61A698B099D21F13EFD0DE5357A1970314D8E3AA1D2A84D3BCF75A7876C16F585322CC4C613FE3AC8FEA5F258FC9C7200765E9209378C362AFC1A478A117D913CE2BEFEB51103E48D0802618C50918005F1AA4228B67BA1A1B001A91A032019A135B8AEEE3D0158A602C8DCCE5A6580DECC16204E410CBB15FCF36704BB2ECB826A229E45C454B4A5DFC12796E636B300C624DB4E6EAB424B17A18A5A5F52399F247A1507A5985D06F90889FE381129148AF8447B392D4EC0775D91502B48D9F212FCE3F81639901C462F752E27FBEEC9E2B7F8CCD16053FB839E8ADF8CD3E8FF8AF3B3E884F4F524C2026BD3B337B7058B53CFC7596F9C813FFD746B8AC0012C60E96140934B4EED1D8602E57A1A6EBC01FCFD66053AF9614FAF0D0F7320D50D440F2A3148A0DAEF5E2FA31F854D56045065AFAA52A60DC3321E2D7C104FF505057D55CD94C53C31C14DB0DAA4D55C4065CD9BCD78E1B8532A680F7DC3544021346CC59ADEC061DDA1B7606BAF28AD87C39AB8AF3D03E981EFFE50B4D5347175517EF212E61F02B594A96492091AC82625D334504EF19BEEE52E01B111D43313F35EC69C88EF38926071506AB3A5B372DD6F2B901AC1E12E61CCB3ACD3D0777A7A10F137126DAD0D1970D369A067C3A1F19D9CB8756D7130B7EB0C08CF725EB2ADFAD61204195CE14F3C99A88A9B8FA2FDCBD612DF9266614DEA073C9EDABE07B3793048167D4DA49B305AE27974D48A296871350DE036CAA348D2F9A9CB19DC094E5904E25DDCF5657227DCD2A4E620121FBDA032A58836EDC14F3A7C4E51319A60F91F941CC61757498B769799394574C9D198426AC3499F0D0BA1770AD6BAA0D3716333F785A9D7D":"00000004DA66203A7E7BCA2362DB3C8E897A84B10000000D1BD4EE08FAA341C2CE018BD12776E1B8E6B8B2C1EEDAE6BD0998E52F089936FE":0 LMOTS hash-sigs interop negative test (altered random value) -lmots_verify_test:"C80B24A82D52963AB241C84DCF0EEE55BB24F9F0":"00000004CB3B6B24FD191CE8894AE3C4E2CE2DE0C3F5D508691A9162F37704E07838488466CCD746E55BC8E3055C7A4D4DA2E10775DAFA2E8E5FEFB1CEB25973BC3323B61DE5E2EA7DCFF15DA482320F958023CA2E718C69B977019E8F2FCD47151388E2E5E11170AFE93BDEB508362B3A317835A9DDEB18F0CDCCC0731902DB3D37F441C93A490DE53962A915AB5060A1C157D61DDF061F272362AB7FD9EE95AE48D3448F204C81A3F260792784E1BFB49871A27C09CC549A406520F0B40BC74CAAD082EAAB12C994B8495B8C80E96384FF2222255BE6C4EE5AF439534E616F9C0B53E951F69D59BD0506C0C0366A679A8329ACF6E2D1D4E4EF49D35375A8EA46FCF3C9B2F8E033C242EC61B796E43B901407077A2AF3F0AABD2D0CB9004F10D91B57C2D5E8BA7BA9268FF94962CC102F55B5120D7D2F7A3BE281BA01D78895ADA2F05B77967EDA0E1EDEAFBB9BBC3D68DCBF682FBC70467FA2BEE5DE65F54247C4BE5BEF41F5108B6CD09E7698E3AAEA04B60746EDD0E2623B66B092DDA21EFA5A0D36805D101D805CC06F0E818B46059B3984C8B8A526C4239F66ED34B8CA57E178DC5E7B8D2BE029114B4CE466E2B5A081729B3F3A3F3845DDE177062F201C09125ED3CC381AF35EAD795440C421A136F941F09F3E4BA9E0203CBA875AF477AB0246342700F323E65DC327D27966377D871FD9C58BEC8797DEF35E1D0751A554719828B87332F601884EBFECB63A8D4F390785B3826BFA384BE502D2322C919ABD12A486C2AB124DCB7B74DE91241A30EF0388411E52145A88971C6C0A4E7C4F23EDD8D6008065A3D108C6B1EC5219BB0DFDBD37EE3A7A8DD37E3563A5777838FCA61E9E744813F39CF70B5A0F50E1BD4FF8733A3BDA76D2135969809D91A9786F22DC2ACBA4E0164C411019EC77A0BD253A42AC7528FC7C0DA1711FBD6C23825207060463080F9E04B7D819C8B150C22B8BA87C6277696EC409369C48AC0E3233DE52D31EF6D2207D2B57DFC2D0C43BE8212EAE6CB1BACBC2D3568E5527A14065D5F1F56AAE2AFB5FB1CEFFC228A30692BD030C71F4872DB54F2632CD919DA61576CF58D1EBE3D7988183A9C789EB74A3D7F6BBEBAC035A43397BF684C9E1130B252940DBA4454311A6A3D54D9386D48E1D5A3E70944EDF725AEDC5440CD610F79AB05A43C917FFC15213295EB8CB8432B6554A47C2AD419ADD52E0F5E0BD7A1E0F873257E69F8647F3A07093387B7A64C4812CDBEE536E45D531F89653AC5F14A4715CFF40692346FE6CBF2F9B92D9F1101C379AFD5E6154605059C1DA463B407E79C139396623DC7F15EEFCE424C8E214C6A645EF002F90A230D8F62177CBCF2A688D4F822B119835AD3D3A619F46230257A5AD59CB0924B2584DBA96AADE0A2487E7409EE5993A4F0E3DC46C10B96595CDD17D72C35EF4A52C5906655B0AE649B5DE03B7D46F3839E808761EE05E9300050647593C048669A952324B0188ED225AD11BED3FD94E44E134FB9D6DAD53CC34ECF62695E30637C4528C450D62174E2F8ABA2C09F134412EF889C24B36224BE4259B363A9D8EB89BAEE16BE1898D46":"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A":MBEDTLS_ERR_LMOTS_VERIFY_FAILED +lmots_verify_test:"C80B24A82D52963AB241C84DCF0EEE55BB24F9F0":"00000004CB3B6B24FD191CE8894AE3C4E2CE2DE0C3F5D508691A9162F37704E07838488466CCD746E55BC8E3055C7A4D4DA2E10775DAFA2E8E5FEFB1CEB25973BC3323B61DE5E2EA7DCFF15DA482320F958023CA2E718C69B977019E8F2FCD47151388E2E5E11170AFE93BDEB508362B3A317835A9DDEB18F0CDCCC0731902DB3D37F441C93A490DE53962A915AB5060A1C157D61DDF061F272362AB7FD9EE95AE48D3448F204C81A3F260792784E1BFB49871A27C09CC549A406520F0B40BC74CAAD082EAAB12C994B8495B8C80E96384FF2222255BE6C4EE5AF439534E616F9C0B53E951F69D59BD0506C0C0366A679A8329ACF6E2D1D4E4EF49D35375A8EA46FCF3C9B2F8E033C242EC61B796E43B901407077A2AF3F0AABD2D0CB9004F10D91B57C2D5E8BA7BA9268FF94962CC102F55B5120D7D2F7A3BE281BA01D78895ADA2F05B77967EDA0E1EDEAFBB9BBC3D68DCBF682FBC70467FA2BEE5DE65F54247C4BE5BEF41F5108B6CD09E7698E3AAEA04B60746EDD0E2623B66B092DDA21EFA5A0D36805D101D805CC06F0E818B46059B3984C8B8A526C4239F66ED34B8CA57E178DC5E7B8D2BE029114B4CE466E2B5A081729B3F3A3F3845DDE177062F201C09125ED3CC381AF35EAD795440C421A136F941F09F3E4BA9E0203CBA875AF477AB0246342700F323E65DC327D27966377D871FD9C58BEC8797DEF35E1D0751A554719828B87332F601884EBFECB63A8D4F390785B3826BFA384BE502D2322C919ABD12A486C2AB124DCB7B74DE91241A30EF0388411E52145A88971C6C0A4E7C4F23EDD8D6008065A3D108C6B1EC5219BB0DFDBD37EE3A7A8DD37E3563A5777838FCA61E9E744813F39CF70B5A0F50E1BD4FF8733A3BDA76D2135969809D91A9786F22DC2ACBA4E0164C411019EC77A0BD253A42AC7528FC7C0DA1711FBD6C23825207060463080F9E04B7D819C8B150C22B8BA87C6277696EC409369C48AC0E3233DE52D31EF6D2207D2B57DFC2D0C43BE8212EAE6CB1BACBC2D3568E5527A14065D5F1F56AAE2AFB5FB1CEFFC228A30692BD030C71F4872DB54F2632CD919DA61576CF58D1EBE3D7988183A9C789EB74A3D7F6BBEBAC035A43397BF684C9E1130B252940DBA4454311A6A3D54D9386D48E1D5A3E70944EDF725AEDC5440CD610F79AB05A43C917FFC15213295EB8CB8432B6554A47C2AD419ADD52E0F5E0BD7A1E0F873257E69F8647F3A07093387B7A64C4812CDBEE536E45D531F89653AC5F14A4715CFF40692346FE6CBF2F9B92D9F1101C379AFD5E6154605059C1DA463B407E79C139396623DC7F15EEFCE424C8E214C6A645EF002F90A230D8F62177CBCF2A688D4F822B119835AD3D3A619F46230257A5AD59CB0924B2584DBA96AADE0A2487E7409EE5993A4F0E3DC46C10B96595CDD17D72C35EF4A52C5906655B0AE649B5DE03B7D46F3839E808761EE05E9300050647593C048669A952324B0188ED225AD11BED3FD94E44E134FB9D6DAD53CC34ECF62695E30637C4528C450D62174E2F8ABA2C09F134412EF889C24B36224BE4259B363A9D8EB89BAEE16BE1898D46":"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A":MBEDTLS_ERR_LMS_VERIFY_FAILED LMOTS negative test (invalid type) #1 -lmots_verify_test:"0000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA +lmots_verify_test:"0000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMOTS negative test (invalid type) #2 -lmots_verify_test:"0000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA +lmots_verify_test:"0000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMOTS key import / export test lmots_import_export_test:"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A" diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 6de94d1247..0f76aa6dfc 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -1,12 +1,14 @@ /* BEGIN_HEADER */ -#include "mbedtls/lmots.h" +#include "lmots.h" +#include "mbedtls/lms.h" + #include "mbedtls/entropy.h" #include "mbedtls/ctr_drbg.h" /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMOTS_C:MBEDTLS_SHA256_C:MBEDTLS_CTR_DRBG_C + * depends_on:MBEDTLS_LMS_C:MBEDTLS_SHA256_C:MBEDTLS_CTR_DRBG_C * END_DEPENDENCIES */ From c8f9604d7b5eb75fe45759f936438f3f008405a9 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 25 Aug 2022 13:49:54 +0100 Subject: [PATCH 0592/1028] Use PSA hashing for LMS and LMOTS Signed-off-by: Raef Coles --- include/mbedtls/check_config.h | 4 +- include/mbedtls/error.h | 2 +- include/mbedtls/lms.h | 1 + library/lmots.c | 209 +++++++++++++++---------- library/lmots.h | 15 ++ library/lms.c | 77 ++++----- tests/suites/test_suite_lmots.function | 2 +- tests/suites/test_suite_lms.function | 2 +- 8 files changed, 185 insertions(+), 127 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 99e863cccf..2921278b32 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -354,8 +354,8 @@ #endif #if defined(MBEDTLS_LMS_C) && \ - ( !defined(MBEDTLS_MD_C) ) -#error "MBEDTLS_LMS_C requires MBEDTLS_MD_C" + ( !defined(MBEDTLS_PSA_CRYPTO_C) ) +#error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C" #endif #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \ diff --git a/include/mbedtls/error.h b/include/mbedtls/error.h index fe5d497929..eb8391311f 100644 --- a/include/mbedtls/error.h +++ b/include/mbedtls/error.h @@ -82,7 +82,7 @@ * POLY1305 3 0x0057-0x005B * CHACHAPOLY 2 0x0054-0x0056 * PLATFORM 2 0x0070-0x0072 - * LMS 2 0x0011-0x0017 + * LMS 5 0x0011-0x0019 * * High-level module nr (3 bits - 0x0...-0x7...) * Name ID Nr of Errors diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 99fe678bf3..8430309d46 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -38,6 +38,7 @@ #define MBEDTLS_ERR_LMS_OUT_OF_PRIV_KEYS -0x0013 /**< Specified LMS key has utilised all of its private keys */ #define MBEDTLS_ERR_LMS_VERIFY_FAILED -0x0015 /**< LMS signature verification failed */ #define MBEDTLS_ERR_LMS_ALLOC_FAILED -0x0017 /**< LMS failed to allocate space for a private key */ +#define MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL -0x0019 /**< Input/output buffer is too small to contain requited data */ #define MBEDTLS_LMS_TYPE_LEN (4) #define MBEDTLS_LMS_H_TREE_HEIGHT (10) diff --git a/library/lmots.c b/library/lmots.c index 2c44772348..915291c272 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -38,10 +38,12 @@ #include "lmots.h" -#include "mbedtls/md.h" +#include "mbedtls/lms.h" #include "mbedtls/platform_util.h" #include "mbedtls/error.h" +#include "psa/crypto.h" + #define W_SYMBOL_BIT_LEN (8) #define CHECKSUM_LEN (2) #define I_SYMBOL_IDX_LEN (2) @@ -94,56 +96,61 @@ static int create_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMO const unsigned char C_random_value[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN], unsigned char out[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN] ) { - mbedtls_md_context_t hash_ctx; + psa_hash_operation_t op; + psa_status_t status; + size_t output_hash_len; unsigned char D_MESG_BYTES[D_CONST_LEN]; unsigned short checksum; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_md_init( &hash_ctx ); - ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); - if( ret ) - { - goto out; - } - ret = mbedtls_md_starts( &hash_ctx ); - if ( ret ) + op = psa_hash_operation_init(); + status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - if ( ret ) + status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - if ( ret ) + status = psa_hash_update( &op, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } val_to_network_bytes( D_MESG_CONSTANT, D_CONST_LEN, D_MESG_BYTES ); - ret = mbedtls_md_update( &hash_ctx, D_MESG_BYTES, sizeof( D_MESG_BYTES ) ); - if ( ret ) + status = psa_hash_update( &op, D_MESG_BYTES, sizeof( D_MESG_BYTES ) ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, C_random_value, MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN ); - if ( ret ) + status = psa_hash_update( &op, C_random_value, MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, msg, msg_len ); - if ( ret ) + status = psa_hash_update( &op, msg, msg_len ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_finish( &hash_ctx, out ); - if ( ret ) + status = psa_hash_finish( &op, out, MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN, + &output_hash_len ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } @@ -152,7 +159,7 @@ static int create_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMO val_to_network_bytes( checksum, CHECKSUM_LEN, out + MBEDTLS_LMOTS_N_HASH_LEN ); out: - mbedtls_md_free( &hash_ctx ); + psa_hash_abort( &op ); return( ret ); } @@ -170,7 +177,9 @@ static int hash_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS unsigned char j_hash_idx_bytes[1]; unsigned short j_hash_idx_min; unsigned short j_hash_idx_max; - mbedtls_md_context_t hash_ctx; + psa_hash_operation_t op; + psa_status_t status; + size_t output_hash_len; unsigned char tmp_hash[32]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -184,57 +193,59 @@ static int hash_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS for ( j_hash_idx = (unsigned char)j_hash_idx_min; j_hash_idx < j_hash_idx_max; j_hash_idx++ ) { - mbedtls_md_init( &hash_ctx ); - ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); - if( ret ) - { - goto out; - } - ret = mbedtls_md_starts( &hash_ctx ); - if ( ret ) + op = psa_hash_operation_init(); + status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - if ( ret ) + status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - if ( ret ) + status = psa_hash_update( &op, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } val_to_network_bytes( i_symbol_idx, I_SYMBOL_IDX_LEN, i_symbol_idx_bytes ); - ret = mbedtls_md_update( &hash_ctx, i_symbol_idx_bytes, I_SYMBOL_IDX_LEN ); - if ( ret ) + status = psa_hash_update( &op, i_symbol_idx_bytes, I_SYMBOL_IDX_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } val_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, j_hash_idx_bytes ); - ret = mbedtls_md_update( &hash_ctx, j_hash_idx_bytes, J_HASH_IDX_LEN ); - if ( ret ) + status = psa_hash_update( &op, j_hash_idx_bytes, J_HASH_IDX_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); - if ( ret ) + status = psa_hash_update( &op, tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_finish( &hash_ctx, tmp_hash ); - if ( ret ) + status = psa_hash_finish( &op, tmp_hash, sizeof( tmp_hash ), &output_hash_len ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - mbedtls_md_free( &hash_ctx ); + psa_hash_abort( &op ); } memcpy( &output[i_symbol_idx], tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); @@ -243,7 +254,7 @@ static int hash_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS out: if( ret ) { - mbedtls_md_free( &hash_ctx ); + psa_hash_abort( &op ); return( ret ); } @@ -256,56 +267,75 @@ static int public_key_from_hashed_symbol_array( const unsigned char I_key_identi unsigned char *pub_key ) { unsigned char D_PBLC_bytes[D_CONST_LEN]; - mbedtls_md_context_t hash_ctx; + psa_hash_operation_t op; + psa_status_t status; + size_t output_hash_len; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_md_init( &hash_ctx ); - ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); - if( ret ) - { - goto out; - } - ret = mbedtls_md_starts( &hash_ctx ); - if ( ret ) + op = psa_hash_operation_init( ); + status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - if ( ret ) + status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - if ( ret ) + status = psa_hash_update( &op, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } val_to_network_bytes( D_PBLC_CONSTANT, D_CONST_LEN, D_PBLC_bytes ); - ret = mbedtls_md_update( &hash_ctx, D_PBLC_bytes, D_CONST_LEN ); - if ( ret ) + status = psa_hash_update( &op, D_PBLC_bytes, D_CONST_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, ( unsigned char * )y_hashed_symbols, - MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN * MBEDTLS_LMOTS_N_HASH_LEN ); - if ( ret ) + status = psa_hash_update( &op, ( unsigned char * )y_hashed_symbols, + MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN * MBEDTLS_LMOTS_N_HASH_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_finish( &hash_ctx, pub_key ); + status = psa_hash_finish( &op, pub_key, 32, &output_hash_len ); + ret = mbedtls_lms_error_from_psa( status ); out: - mbedtls_md_free( &hash_ctx ); + psa_hash_abort( &op ); return( ret ); } +int mbedtls_lms_error_from_psa(psa_status_t status) +{ + switch( status ) { + case PSA_SUCCESS: + return( 0 ); + case PSA_ERROR_HARDWARE_FAILURE: + return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + case PSA_ERROR_NOT_SUPPORTED: + return( MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED ); + case PSA_ERROR_BUFFER_TOO_SMALL: + return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + case PSA_ERROR_INVALID_ARGUMENT: + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + default: + return( MBEDTLS_ERR_ERROR_GENERIC_ERROR ); + } +} + void mbedtls_lmots_init( mbedtls_lmots_context *ctx ) { if( ctx == NULL ) { @@ -585,7 +615,9 @@ int mbedtls_lmots_gen_privkey( mbedtls_lmots_context *ctx, const unsigned char *seed, size_t seed_len ) { - mbedtls_md_context_t hash_ctx; + psa_hash_operation_t op; + psa_status_t status; + size_t output_hash_len; unsigned int i_symbol_idx; unsigned char i_symbol_idx_bytes[2]; unsigned char const_bytes[1]; @@ -617,57 +649,60 @@ int mbedtls_lmots_gen_privkey( mbedtls_lmots_context *ctx, for ( i_symbol_idx = 0; i_symbol_idx < MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN; i_symbol_idx++ ) { - mbedtls_md_init( &hash_ctx ); - ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); - if( ret ) - { - goto out; - } - ret = mbedtls_md_starts( &hash_ctx ); - if ( ret ) + op = psa_hash_operation_init( ); + status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, ctx->MBEDTLS_PRIVATE(I_key_identifier), - sizeof( ctx->MBEDTLS_PRIVATE(I_key_identifier) ) ); + ret = psa_hash_update( &op, ctx->MBEDTLS_PRIVATE(I_key_identifier), + sizeof( ctx->MBEDTLS_PRIVATE(I_key_identifier) ) ); + ret = mbedtls_lms_error_from_psa( status ); if ( ret ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), - sizeof( ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes) ) ); + status = psa_hash_update( &op, ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), + sizeof( ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes) ) ); + ret = mbedtls_lms_error_from_psa( status ); if ( ret ) { goto out; } val_to_network_bytes( i_symbol_idx, I_SYMBOL_IDX_LEN, i_symbol_idx_bytes ); - ret = mbedtls_md_update( &hash_ctx, i_symbol_idx_bytes, I_SYMBOL_IDX_LEN ); + status = psa_hash_update( &op, i_symbol_idx_bytes, I_SYMBOL_IDX_LEN ); + ret = mbedtls_lms_error_from_psa( status ); if ( ret ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, const_bytes, sizeof( const_bytes) ); + status = psa_hash_update( &op, const_bytes, sizeof( const_bytes) ); + ret = mbedtls_lms_error_from_psa( status ); if ( ret ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, seed, seed_len ); + status = psa_hash_update( &op, seed, seed_len ); + ret = mbedtls_lms_error_from_psa( status ); if ( ret ) { goto out; } - ret = mbedtls_md_finish( &hash_ctx, ctx->MBEDTLS_PRIVATE(priv_key)[i_symbol_idx] ); + status = psa_hash_finish( &op, ctx->MBEDTLS_PRIVATE(priv_key)[i_symbol_idx], + 32, &output_hash_len ); + ret = mbedtls_lms_error_from_psa( status ); if ( ret ) { goto out; } - mbedtls_md_free( &hash_ctx); + psa_hash_abort( &op ); } ctx->MBEDTLS_PRIVATE(have_privkey) = 1; @@ -675,7 +710,7 @@ int mbedtls_lmots_gen_privkey( mbedtls_lmots_context *ctx, out: if( ret ) { - mbedtls_md_free( &hash_ctx ); + psa_hash_abort( &op ); return( ret ); } diff --git a/library/lmots.h b/library/lmots.h index e425f9ec70..ec68967bea 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -28,6 +28,8 @@ #include "mbedtls/private_access.h" +#include "psa/crypto.h" + #include #include @@ -115,6 +117,16 @@ typedef struct { output. */ } mbedtls_lmots_context; +/** + * \brief This function converts a \ref psa_status_t to a + * low-level LMS error code. + * + * \param status The psa_status_t to convert + * + * \return The corresponding LMS error code. + */ +int mbedtls_lms_error_from_psa(psa_status_t status); + /** * \brief This function initializes an LMOTS context @@ -140,6 +152,9 @@ void mbedtls_lmots_free( mbedtls_lmots_context *ctx ); * * \param ctx The initialized LMOTS context. * \param type The type that will be set in the context. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. */ int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, mbedtls_lmots_algorithm_type_t type ); diff --git a/library/lms.c b/library/lms.c index d8969ba390..4b4f151283 100644 --- a/library/lms.c +++ b/library/lms.c @@ -38,8 +38,9 @@ #include "lmots.h" +#include "psa/crypto.h" + #include "mbedtls/lms.h" -#include "mbedtls/md.h" #include "mbedtls/error.h" #include "mbedtls/platform_util.h" @@ -88,59 +89,61 @@ static int create_merkle_leaf_node( const mbedtls_lms_context *ctx, unsigned int r_node_idx, unsigned char out[32] ) { - mbedtls_md_context_t hash_ctx; + psa_hash_operation_t op; + psa_status_t status; + size_t output_hash_len; unsigned char D_LEAF_bytes[D_CONST_LEN]; unsigned char r_node_idx_bytes[4]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_md_init( &hash_ctx ); - ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); - if( ret ) - { - goto out; - } - ret = mbedtls_md_starts( &hash_ctx ); - if( ret ) + op = psa_hash_operation_init( ); + status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, - ctx->MBEDTLS_PRIVATE(I_key_identifier), - MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, ctx->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } val_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); - ret = mbedtls_md_update( &hash_ctx, r_node_idx_bytes, 4 ); + status = psa_hash_update( &op, r_node_idx_bytes, 4 ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } val_to_network_bytes( D_LEAF_CONSTANT, D_CONST_LEN, D_LEAF_bytes ); - ret = mbedtls_md_update( &hash_ctx, D_LEAF_bytes, D_CONST_LEN ); + status = psa_hash_update( &op, D_LEAF_bytes, D_CONST_LEN ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, pub_key, MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, pub_key, MBEDTLS_LMOTS_N_HASH_LEN ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } - ret = mbedtls_md_finish( &hash_ctx, out ); + status = psa_hash_finish( &op, out, 32, &output_hash_len); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } out: - mbedtls_md_free( &hash_ctx ); + psa_hash_abort( &op ); return( ret ); } @@ -151,64 +154,68 @@ static int create_merkle_intr_node( const mbedtls_lms_context *ctx, unsigned int r_node_idx, unsigned char out[32] ) { - mbedtls_md_context_t hash_ctx; + psa_hash_operation_t op; + psa_status_t status; + size_t output_hash_len; unsigned char D_INTR_bytes[D_CONST_LEN]; unsigned char r_node_idx_bytes[4]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_md_init( &hash_ctx ); - ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); - if( ret ) - { - goto out; - } - ret = mbedtls_md_starts( &hash_ctx ); - if( ret ) + op = psa_hash_operation_init( ); + status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, ctx->MBEDTLS_PRIVATE(I_key_identifier), - MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, ctx->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } val_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); - ret = mbedtls_md_update( &hash_ctx, r_node_idx_bytes, 4 ); + status = psa_hash_update( &op, r_node_idx_bytes, 4 ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } val_to_network_bytes( D_INTR_CONSTANT, D_CONST_LEN, D_INTR_bytes ); - ret = mbedtls_md_update( &hash_ctx, D_INTR_bytes, D_CONST_LEN ); + status = psa_hash_update( &op, D_INTR_bytes, D_CONST_LEN ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, left_node, MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, left_node, MBEDTLS_LMOTS_N_HASH_LEN ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, rght_node, MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, rght_node, MBEDTLS_LMOTS_N_HASH_LEN ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } - ret = mbedtls_md_finish( &hash_ctx, out ); + ret = psa_hash_finish( &op, out, 32, &output_hash_len); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } out: - mbedtls_md_free( &hash_ctx ); + psa_hash_abort( &op ); return ret; } diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 0f76aa6dfc..82dbcbab27 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -8,7 +8,7 @@ /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_SHA256_C:MBEDTLS_CTR_DRBG_C + * depends_on:MBEDTLS_LMS_C:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_CTR_DRBG_C * END_DEPENDENCIES */ diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index b19d074fa7..c6c706139c 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -6,7 +6,7 @@ /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_SHA256_C:MBEDTLS_CTR_DRBG_C + * depends_on:MBEDTLS_LMS_C:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_CTR_DRBG_C * END_DEPENDENCIES */ From 01c71a17b33bac6c11759df71f0cc56d02ade733 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 31 Aug 2022 15:55:00 +0100 Subject: [PATCH 0593/1028] Update LMS and LMOTS api Fix function names and parameters. Move macros to be more private. Update implementation. Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 390 ++++++------ library/lmots.c | 835 ++++++++++++------------- library/lmots.h | 419 +++++++------ library/lms.c | 701 ++++++++++----------- tests/suites/test_suite_lmots.function | 60 +- tests/suites/test_suite_lms.function | 52 +- 6 files changed, 1238 insertions(+), 1219 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 8430309d46..c463b2abb7 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -32,33 +32,24 @@ #include "lmots.h" -#include "mbedtls/private_access.h" +#include "mbedtls/build_info.h" #define MBEDTLS_ERR_LMS_BAD_INPUT_DATA -0x0011 /**< Bad data has been input to an LMS function */ -#define MBEDTLS_ERR_LMS_OUT_OF_PRIV_KEYS -0x0013 /**< Specified LMS key has utilised all of its private keys */ +#define MBEDTLS_ERR_LMS_OUT_OF_PRIVATE_KEYS -0x0013 /**< Specified LMS key has utilised all of its private keys */ #define MBEDTLS_ERR_LMS_VERIFY_FAILED -0x0015 /**< LMS signature verification failed */ #define MBEDTLS_ERR_LMS_ALLOC_FAILED -0x0017 /**< LMS failed to allocate space for a private key */ #define MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL -0x0019 /**< Input/output buffer is too small to contain requited data */ -#define MBEDTLS_LMS_TYPE_LEN (4) -#define MBEDTLS_LMS_H_TREE_HEIGHT (10) #define MBEDTLS_LMS_M_NODE_BYTES (32) /* The length of a hash output, 32 for SHA256 */ +#define MBEDTLS_LMS_TYPE_LEN (4) +#define MBEDTLS_LMS_H_TREE_HEIGHT (10u) #define MBEDTLS_LMS_SIG_LEN (MBEDTLS_LMOTS_Q_LEAF_ID_LEN + MBEDTLS_LMOTS_SIG_LEN + \ MBEDTLS_LMS_TYPE_LEN + MBEDTLS_LMS_H_TREE_HEIGHT * MBEDTLS_LMS_M_NODE_BYTES) -#define MBEDTLS_LMS_PUBKEY_LEN (MBEDTLS_LMS_TYPE_LEN + MBEDTLS_LMOTS_TYPE_LEN + \ +#define MBEDTLS_LMS_PUBLIC_KEY_LEN (MBEDTLS_LMS_TYPE_LEN + MBEDTLS_LMOTS_TYPE_LEN + \ MBEDTLS_LMOTS_I_KEY_ID_LEN + MBEDTLS_LMS_M_NODE_BYTES) -#define MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET (0) -#define MBEDTLS_LMS_SIG_OTS_SIG_OFFSET (MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) -#define MBEDTLS_LMS_SIG_TYPE_OFFSET (MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_LEN) -#define MBEDTLS_LMS_SIG_PATH_OFFSET (MBEDTLS_LMS_SIG_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) - -#define MBEDTLS_LMS_PUBKEY_TYPE_OFFSET (0) -#define MBEDTLS_LMS_PUBKEY_OTSTYPE_OFFSET (MBEDTLS_LMS_PUBKEY_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) -#define MBEDTLS_LMS_PUBKEY_I_KEY_ID_OFFSET (MBEDTLS_LMS_PUBKEY_OTSTYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMS_PUBKEY_ROOT_NODE_OFFSET (MBEDTLS_LMS_PUBKEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) #ifdef __cplusplus extern "C" { @@ -72,85 +63,234 @@ typedef enum { } mbedtls_lms_algorithm_type_t; -/** LMS context structure. +/** LMS parameters structure. + * + * This contains the metadata associated with an LMS key, detailing the + * algorithm type, the type of the underlying OTS algorithm, and the key ID. + */ +typedef struct { + unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); /*!< The key + identifier. */ + mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(otstype); /*!< The LM-OTS key type identifier as + per IANA. Only SHA256_N32_W8 is + currently supported. */ + mbedtls_lms_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LMS key type identifier as per + IANA. Only SHA256_M32_H10 is currently + supported. */ +} mbedtls_lms_parameters_t; + +/** LMS public context structure. + * + *A LMS public key is the hash output that is the root of the merkle tree, and + * the applicable parameter set * * The context must be initialized before it is used. A public key must either - * be imported, or an algorithm type set, a private key generated and the public - * key calculated from it. A context that does not contain a public key cannot - * verify, and a context that does not contain a private key cannot sign. + * be imported or generated from a private context. * * \dot - * digraph lmots { + * digraph lms_public_t { * UNINITIALIZED -> INIT [label="init"]; - * TYPE_SET -> INIT [label="free"]; - * PRIVATE -> INIT [label="free"]; - * PUBLIC -> INIT [label="free"]; - * "PRIVATE+PUBLIC" -> INIT [label="free"]; - * INIT -> TYPE_SET [label="set_algorithm_type"]; - * INIT -> PUBLIC [label="import_public"]; - * PUBLIC -> PUBLIC [label="export_pubkey"]; - * "PRIVATE+PUBLIC" -> "PRIVATE+PUBLIC" [label="export_pubkey"]; - * PRIVATE -> "PRIVATE+PUBLIC" [label="gen_pubkey"]; - * TYPE_SET -> PRIVATE [label="gen_privkey"]; + * HAVE_PUBLIC_KEY -> INIT [label="free"]; + * INIT -> HAVE_PUBLIC_KEY [label="import_public_key"]; + * INIT -> HAVE_PUBLIC_KEY [label="calculate_public_key from private key"]; + * HAVE_PUBLIC_KEY -> HAVE_PUBLIC_KEY [label="export_public_key"]; * } * \enddot */ typedef struct { - unsigned char MBEDTLS_PRIVATE(have_privkey); /*!< Whether the context contains a private key. - Boolean values only. */ - unsigned char MBEDTLS_PRIVATE(have_pubkey); /*!< Whether the context contains a public key. - Boolean values only. */ - unsigned char MBEDTLS_PRIVATE(I_key_identifier)[MBEDTLS_LMOTS_I_KEY_ID_LEN]; /*!< The key - identifier. */ - mbedtls_lms_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LMS key type identifier as per - IANA. Only SHA256_M32_H10 is currently - supported. */ - mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(otstype); /*!< The LM-OTS key type identifier as - per IANA. Only SHA256_N32_W8 is currently - supported. */ - unsigned int MBEDTLS_PRIVATE(q_next_usable_key); /*!< The index of the next OTS key that has not - been used. */ - mbedtls_lmots_context *MBEDTLS_PRIVATE(priv_keys); /*!< The private key material. One OTS key - for each leaf node in the merkle tree. */ + mbedtls_lms_parameters_t MBEDTLS_PRIVATE(params); unsigned char MBEDTLS_PRIVATE(T_1_pub_key)[MBEDTLS_LMS_M_NODE_BYTES]; /*!< The public key, in the form of the merkle tree root node. */ -} mbedtls_lms_context; + unsigned char MBEDTLS_PRIVATE(have_public_key); /*!< Whether the context contains a public key. + Boolean values only. */ +} mbedtls_lms_public_t; +/** LMS private context structure. + * + * A LMS private key is a set of LMOTS private keys, an index to the next usable + * key, and the applicable parameter set. + * + * The context must be initialized before it is used. A public key must either + * be imported or generated from a private context. + * + * \dot + * digraph lms_public_t { + * UNINITIALIZED -> INIT [label="init"]; + * HAVE_PRIVATE_KEY -> INIT [label="free"]; + * INIT -> HAVE_PRIVATE_KEY [label="generate_private_key"]; + * } + * \enddot + */ +typedef struct { + mbedtls_lms_parameters_t MBEDTLS_PRIVATE(params); + uint32_t MBEDTLS_PRIVATE(q_next_usable_key); /*!< The index of the next OTS key that has not + been used. */ + mbedtls_lmots_private_t *MBEDTLS_PRIVATE(ots_private_keys); /*!< The private key material. One OTS key + for each leaf node in the merkle tree. */ + mbedtls_lmots_public_t *MBEDTLS_PRIVATE(ots_public_keys); /*!< The OTS key public keys, used to + build the merkle tree. */ + unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. + Boolean values only. */ +} mbedtls_lms_private_t; + /** - * \brief This function initializes an LMS context + * \brief This function initializes an LMS public context * * \param ctx The uninitialized LMS context that will then be * initialized. */ -void mbedtls_lms_init( mbedtls_lms_context *ctx ); +void mbedtls_lms_init_public( mbedtls_lms_public_t *ctx ); /** - * \brief This function uninitializes an LMS context + * \brief This function uninitializes an LMS public context * * \param ctx The initialized LMS context that will then be * uninitialized. */ -void mbedtls_lms_free( mbedtls_lms_context *ctx ); +void mbedtls_lms_free_public( mbedtls_lms_public_t *ctx ); /** - * \brief This function sets the type of an LMS context + * \brief This function imports an LMS public key into a + * public LMS context. * - * \note The parameter set in the context will then be used - * for keygen operations etc. + * \note Before this function is called, the context must + * have been initialized. * - * \param ctx The initialized LMS context. - * \param type The type that will be set in the context. - * \param otstype The type of the LMOTS implementation used by this - * context. + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMS context store the key in. + * \param key The buffer from which the key will be read. + * #MBEDTLS_LMS_PUBLIC_KEY_LEN bytes will be read from + * this. + * \param key_size The size of the key being imported. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. */ -int mbedtls_lms_set_algorithm_type( mbedtls_lms_context *ctx, - mbedtls_lms_algorithm_type_t type, - mbedtls_lmots_algorithm_type_t otstype); +int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, + const unsigned char *key, size_t key_size ); + +/** + * \brief This function verifies a LMS signature, using a + * LMS context that contains a public key. + * + * \note Before this function is called, the context must + * have been initialized and must contain a public key + * (either by import or generation). + * + * \param ctx The initialized LMS public context from which the + * public key will be read. + * \param msg The buffer from which the message will be read. + * \param msg_size The size of the message that will be read. + * \param sig The buf from which the signature will be read. + * #MBEDTLS_LMS_SIG_LEN bytes will be read from + * this. + * \param sig_size The size of the signature to be verified. + * + * \return \c 0 on successful verification. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, + const unsigned char *msg, size_t msg_size, + const unsigned char *sig, size_t sig_size ); + +/** + * \brief This function initializes an LMS private context + * + * \param ctx The uninitialized LMS private context that will + * then be initialized. */ +void mbedtls_lms_init_private( mbedtls_lms_private_t *ctx ); + +/** + * \brief This function uninitializes an LMS private context + * + * \param ctx The initialized LMS private context that will then + * be uninitialized. + */ +void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ); + +/** + * \brief This function generates an LMS private key, and + * stores in into an LMS private context. + * + * \warning This function is **not intended for use in + * production**, due to as-yet unsolved problems with + * handling stateful keys. + * + * \note The seed must have at least 256 bits of entropy. + * + * \param ctx The initialized LMOTS context to generate the key + * into. + * \param type The LMS parameter set identifier. + * \param otstype The LMOTS parameter set identifier. + * \param f_rng The RNG function to be used to generate the key ID. + * \param p_rng The RNG context to be passed to f_rng + * \param seed The seed used to deterministically generate the + * key. + * \param seed_size The length of the seed. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, + mbedtls_lms_algorithm_type_t type, + mbedtls_lmots_algorithm_type_t otstype, + int (*f_rng)(void *, unsigned char *, size_t), + void* p_rng, unsigned char *seed, + size_t seed_size ); + +/** + * \brief This function generates an LMS public key from a + * LMS context that already contains a private key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a private key. + * + * \param ctx The initialized LMS public context to generate the key + * from and store it into. + * + * \param ctx The LMS private context to read the private key + * from. This must have been initialized and contain a + * private key. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, + mbedtls_lms_private_t *priv_ctx ); + +/** + * \brief This function exports an LMS public key from a + * LMS public context that already contains a public + * key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a public key. + * + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMS public context that contains + * the public key. + * \param key The buffer into which the key will be output. Must + * be at least #MBEDTLS_LMS_PUBLIC_KEY_LEN in size. + * \param key_size The size of the key buffer. + * \param key_len If not NULL, will be written with the size of the + * key. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key, + size_t key_size, size_t *key_len ); /** * \brief This function creates a LMS signature, using a - * LMOTS context that contains a private key. + * LMS context that contains unused private keys. * * \warning This function is **not intended for use in * production**, due to as-yet unsolved problems with @@ -167,135 +307,27 @@ int mbedtls_lms_set_algorithm_type( mbedtls_lms_context *ctx, * important to not perform copy operations on LMS * contexts that contain private key material. * - * \param ctx The initialized LMS context from which the + * \param ctx The initialized LMS private context from which the * private key will be read. * \param f_rng The RNG function to be used for signature * generation. * \param p_rng The RNG context to be passed to f_rng * \param msg The buffer from which the message will be read. - * \param msg_len The size of the message that will be read. + * \param msg_size The size of the message that will be read. * \param sig The buf into which the signature will be stored. - * Must be at least #MBEDTLS_LMOTS_SIG_LEN in size. + * Must be at least #MBEDTLS_LMS_SIG_LEN in size. + * \param sig_size The size of the buffer the signature will be + * written into. + * \param sig_len If not NULL, will be written with the size of the + * signature. * * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lms_sign( mbedtls_lms_context *ctx, +int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *msg, unsigned int msg_len, - unsigned char *sig); - -/** - * \brief This function verifies a LMS signature, using a - * LMS context that contains a public key. - * - * \note Before this function is called, the context must - * have been initialized and must contain a public key - * (either by import or generation). - * - * \param ctx The initialized LMS context from which the public - * key will be read. - * \param msg The buffer from which the message will be read. - * \param msg_len The size of the message that will be read. - * \param sig The buf from which the signature will be read. - * #MBEDTLS_LMS_SIG_LEN bytes will be read from - * this. - * - * \return \c 0 on successful verification. - * \return A non-zero error code on failure. - */ -int mbedtls_lms_verify( const mbedtls_lms_context *ctx, - const unsigned char *msg, unsigned int msg_len, - const unsigned char *sig ); - -/** - * \brief This function imports an LMOTS public key into a - * LMS context. - * - * \note Before this function is called, the context must - * have been initialized. - * - * \note See IETF RFC8554 for details of the encoding of - * this public key. - * - * \param ctx The initialized LMS context store the key in. - * \param key The buffer from which the key will be read. - * #MBEDTLS_LMS_PUBKEY_LEN bytes will be read from - * this. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lms_import_pubkey( mbedtls_lms_context *ctx, - const unsigned char *key ); - -/** - * \brief This function exports an LMOTS public key from a - * LMS context that already contains a public key. - * - * \note Before this function is called, the context must - * have been initialized and the context must contain - * a public key. - * - * \note See IETF RFC8554 for details of the encoding of - * this public key. - * - * \param ctx The initialized LMS context that contains the - * publc key. - * \param key The buffer into which the key will be output. Must - * be at least #MBEDTLS_LMS_PUBKEY_LEN in size. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lms_export_pubkey( mbedtls_lms_context *ctx, - unsigned char *key ); - -/** - * \brief This function generates an LMS public key from a - * LMS context that already contains a private key. - * - * \note Before this function is called, the context must - * have been initialized and the context must contain - * a private key. - * - * \param ctx The initialized LMS context to generate the key - * from and store it into. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lms_gen_pubkey( mbedtls_lms_context *ctx ); - -/** - * \brief This function generates an LMS private key, and - * stores in into an LMS context. - * - * \warning This function is **not intended for use in - * production**, due to as-yet unsolved problems with - * handling stateful keys. - * - * \note Before this function is called, the context must - * have been initialized and the type of the LMS - * context set using mbedtls_lmots_set_algorithm_type - * - * \note The seed must have at least 256 bits of entropy. - * - * \param ctx The initialized LMOTS context to generate the key - * into. - * \param f_rng The RNG function to be used to generate the key ID. - * \param p_rng The RNG context to be passed to f_rng - * \param seed The seed used to deterministically generate the - * key. - * \param seed_len The length of the seed. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lms_gen_privkey( mbedtls_lms_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *seed, - size_t seed_len ); + void* p_rng, unsigned char *msg, unsigned int msg_size, + unsigned char *sig, size_t sig_size, size_t *sig_len); #ifdef __cplusplus } diff --git a/library/lmots.c b/library/lmots.c index 915291c272..e2f86e62d2 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -44,18 +44,29 @@ #include "psa/crypto.h" -#define W_SYMBOL_BIT_LEN (8) -#define CHECKSUM_LEN (2) -#define I_SYMBOL_IDX_LEN (2) -#define J_HASH_IDX_LEN (1) +#define MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET (MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN) + +#define MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET (0) +#define MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) +#define MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) + +/* We only support parameter sets that use 8-bit digits, as it does not require + * translation logic between digits and bytes */ +#define W_WINTERNITZ_PARAMETER (8u) +#define CHECKSUM_LEN (2) +#define I_DIGIT_IDX_LEN (2) +#define J_HASH_IDX_LEN (1) +#define D_CONST_LEN (2) + +#define DIGIT_MAX_VALUE ((1u << W_WINTERNITZ_PARAMETER) - 1u) + #define D_CONST_LEN (2) +static const unsigned char D_PUBLIC_CONSTANT_BYTES[D_CONST_LEN] = {0x80, 0x80}; +static const unsigned char D_MESSAGE_CONSTANT_BYTES[D_CONST_LEN] = {0x81, 0x81}; -#define SYMBOL_MAX_VAL ((1 << W_SYMBOL_BIT_LEN) - 1) - -#define D_PBLC_CONSTANT (0x8080) -#define D_MESG_CONSTANT (0x8181) - -static void val_to_network_bytes(unsigned int val, size_t len, unsigned char *bytes) +void unsigned_int_to_network_bytes(unsigned int val, size_t len, unsigned char *bytes) { size_t idx; @@ -64,7 +75,7 @@ static void val_to_network_bytes(unsigned int val, size_t len, unsigned char *by } } -static unsigned int network_bytes_to_val(size_t len, const unsigned char *bytes) +unsigned int network_bytes_to_unsigned_int(size_t len, const unsigned char *bytes) { size_t idx; unsigned int val = 0; @@ -76,30 +87,28 @@ static unsigned int network_bytes_to_val(size_t len, const unsigned char *bytes) return val; } -static unsigned short lmots_checksum_generate( const unsigned char* digest ) +static unsigned short lmots_checksum_calculate( const unsigned char* digest ) { size_t idx; - unsigned short sum = 0; + unsigned sum = 0; for ( idx = 0; idx < MBEDTLS_LMOTS_N_HASH_LEN; idx++ ) { - sum += ( 1 << W_SYMBOL_BIT_LEN ) - 1 - digest[idx]; + sum += DIGIT_MAX_VALUE - digest[idx]; } return sum; } -static int create_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], - const unsigned char *msg, - size_t msg_len, - const unsigned char C_random_value[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN], - unsigned char out[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN] ) +static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *params, + const unsigned char *msg, + size_t msg_len, + const unsigned char C_random_value[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN], + unsigned char out[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT] ) { psa_hash_operation_t op; psa_status_t status; size_t output_hash_len; - unsigned char D_MESG_BYTES[D_CONST_LEN]; unsigned short checksum; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -107,166 +116,146 @@ static int create_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMO status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, params->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + status = psa_hash_update( &op, params->MBEDTLS_PRIVATE(q_leaf_identifier), + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - val_to_network_bytes( D_MESG_CONSTANT, D_CONST_LEN, D_MESG_BYTES ); - status = psa_hash_update( &op, D_MESG_BYTES, sizeof( D_MESG_BYTES ) ); + status = psa_hash_update( &op, D_MESSAGE_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; status = psa_hash_update( &op, C_random_value, MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; status = psa_hash_update( &op, msg, msg_len ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_finish( &op, out, MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN, + status = psa_hash_finish( &op, out, MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT, &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - checksum = lmots_checksum_generate( out ); - val_to_network_bytes( checksum, CHECKSUM_LEN, out + MBEDTLS_LMOTS_N_HASH_LEN ); + checksum = lmots_checksum_calculate( out ); + unsigned_int_to_network_bytes( checksum, CHECKSUM_LEN, out + MBEDTLS_LMOTS_N_HASH_LEN ); -out: +exit: psa_hash_abort( &op ); return( ret ); } -static int hash_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], - const unsigned char x_symbol_array[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32], - const unsigned char hash_idx_min_values[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN], - const unsigned char hash_idx_max_values[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN], - unsigned char output[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32] ) +static int hash_digit_array( const mbedtls_lmots_parameters_t *params, + const unsigned char x_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN], + const unsigned char *hash_idx_min_values, + const unsigned char *hash_idx_max_values, + unsigned char output[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN] ) { - unsigned char i_symbol_idx; + unsigned char i_digit_idx; unsigned char j_hash_idx; - unsigned char i_symbol_idx_bytes[I_SYMBOL_IDX_LEN]; + unsigned char i_digit_idx_bytes[I_DIGIT_IDX_LEN]; unsigned char j_hash_idx_bytes[1]; - unsigned short j_hash_idx_min; - unsigned short j_hash_idx_max; + /* These can't be unsigned chars, because they are sometimes set to + * #DIGIT_MAX_VALUE, which has a value of 256 + */ + unsigned int j_hash_idx_min; + unsigned int j_hash_idx_max; psa_hash_operation_t op; psa_status_t status; size_t output_hash_len; - unsigned char tmp_hash[32]; + unsigned char tmp_hash[MBEDTLS_LMOTS_N_HASH_LEN]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - for ( i_symbol_idx = 0; i_symbol_idx < MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN; i_symbol_idx++ ) + op = psa_hash_operation_init(); + + for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT; i_digit_idx++ ) { - memcpy( tmp_hash, &x_symbol_array[i_symbol_idx], MBEDTLS_LMOTS_N_HASH_LEN ); + memcpy( tmp_hash, &x_digit_array[i_digit_idx], MBEDTLS_LMOTS_N_HASH_LEN ); - j_hash_idx_min = hash_idx_min_values != NULL ? hash_idx_min_values[i_symbol_idx] : 0; - j_hash_idx_max = hash_idx_max_values != NULL ? hash_idx_max_values[i_symbol_idx] : SYMBOL_MAX_VAL; + j_hash_idx_min = hash_idx_min_values != NULL ? hash_idx_min_values[i_digit_idx] : 0; + j_hash_idx_max = hash_idx_max_values != NULL ? hash_idx_max_values[i_digit_idx] : DIGIT_MAX_VALUE; for ( j_hash_idx = (unsigned char)j_hash_idx_min; j_hash_idx < j_hash_idx_max; j_hash_idx++ ) { - op = psa_hash_operation_init(); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, + params->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + status = psa_hash_update( &op, + params->MBEDTLS_PRIVATE(q_leaf_identifier), + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - val_to_network_bytes( i_symbol_idx, I_SYMBOL_IDX_LEN, i_symbol_idx_bytes ); - status = psa_hash_update( &op, i_symbol_idx_bytes, I_SYMBOL_IDX_LEN ); + unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, i_digit_idx_bytes ); + status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - val_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, j_hash_idx_bytes ); + unsigned_int_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, j_hash_idx_bytes ); status = psa_hash_update( &op, j_hash_idx_bytes, J_HASH_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; status = psa_hash_update( &op, tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; status = psa_hash_finish( &op, tmp_hash, sizeof( tmp_hash ), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; psa_hash_abort( &op ); } - memcpy( &output[i_symbol_idx], tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); + memcpy( &output[i_digit_idx], tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); } -out: +exit: if( ret ) { psa_hash_abort( &op ); return( ret ); } + mbedtls_platform_zeroize( tmp_hash, sizeof( tmp_hash ) ); + return ret; } -static int public_key_from_hashed_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], - const unsigned char y_hashed_symbols[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32], - unsigned char *pub_key ) +static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t *params, + const unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN], + unsigned char *pub_key ) { - unsigned char D_PBLC_bytes[D_CONST_LEN]; psa_hash_operation_t op; psa_status_t status; size_t output_hash_len; @@ -276,44 +265,36 @@ static int public_key_from_hashed_symbol_array( const unsigned char I_key_identi status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, + params->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + status = psa_hash_update( &op, params->MBEDTLS_PRIVATE(q_leaf_identifier), + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - val_to_network_bytes( D_PBLC_CONSTANT, D_CONST_LEN, D_PBLC_bytes ); - status = psa_hash_update( &op, D_PBLC_bytes, D_CONST_LEN ); + status = psa_hash_update( &op, D_PUBLIC_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, ( unsigned char * )y_hashed_symbols, - MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN * MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, ( unsigned char * )y_hashed_digits, + MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; status = psa_hash_finish( &op, pub_key, 32, &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); -out: +exit: psa_hash_abort( &op ); return( ret ); } @@ -336,96 +317,352 @@ int mbedtls_lms_error_from_psa(psa_status_t status) } } -void mbedtls_lmots_init( mbedtls_lmots_context *ctx ) +void mbedtls_lmots_init_public( mbedtls_lmots_public_t *ctx ) { - if( ctx == NULL ) { - return; - } - - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_context ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_public_t ) ) ; } -void mbedtls_lmots_free( mbedtls_lmots_context *ctx ) +void mbedtls_lmots_free_public( mbedtls_lmots_public_t *ctx ) { - if( ctx == NULL ) - { - return; - } - - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_context ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_public_t ) ) ; } -int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, - mbedtls_lmots_algorithm_type_t type ) +int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, + const unsigned char *key, size_t key_len ) { - if( ctx == NULL ) + if ( key_len < MBEDTLS_LMOTS_PUBLIC_KEY_LEN ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ctx->MBEDTLS_PRIVATE(type) = type; + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) = + network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + + memcpy( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + + memcpy( ctx->MBEDTLS_PRIVATE(MBEDTLS_PRIVATE(params).q_leaf_identifier), + key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + + memcpy( ctx->MBEDTLS_PRIVATE(public_key), + key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, + MBEDTLS_LMOTS_N_HASH_LEN ); + + ctx->MBEDTLS_PRIVATE(have_public_key) = 1; return( 0 ); } -int mbedtls_lmots_generate_pub_key_candidate( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], - const unsigned char *msg, - size_t msg_len, - const unsigned char *sig, - unsigned char *out ) +int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters_t *params, + const unsigned char *msg, + size_t msg_size, + const unsigned char *sig, + size_t sig_size, + unsigned char *out, + size_t out_size, + size_t *out_len) { - unsigned char tmp_symbol_array[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN]; - unsigned char y_hashed_symbols[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32]; + unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT]; + unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if (I_key_identifier == NULL || msg == NULL || sig == NULL || out == NULL) + if ( msg == NULL && msg_size != 0 ) + { + return ( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if ( sig_size != MBEDTLS_LMOTS_SIG_LEN || out_size < MBEDTLS_LMOTS_N_HASH_LEN ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ret = create_symbol_array( I_key_identifier, q_leaf_identifier, msg, msg_len, - sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, tmp_symbol_array ); + ret = create_digit_array_with_checksum( params, msg, msg_size, + sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, + tmp_digit_array ); if ( ret ) { return ( ret ); } - ret = hash_symbol_array( I_key_identifier, q_leaf_identifier, - ( const unsigned char( *)[32] )(sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET), - tmp_symbol_array, NULL, y_hashed_symbols ); + ret = hash_digit_array( params, + ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET), + tmp_digit_array, NULL, y_hashed_digits ); if ( ret ) { return ( ret ); } - ret = public_key_from_hashed_symbol_array( I_key_identifier, q_leaf_identifier, - ( const unsigned char( *)[32] )y_hashed_symbols, + ret = public_key_from_hashed_digit_array( params, + ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )y_hashed_digits, out ); if ( ret ) { return ( ret ); } + if ( out_len != NULL ) + { + *out_len = MBEDTLS_LMOTS_N_HASH_LEN; + } + return( 0 ); } -int mbedtls_lmots_sign( mbedtls_lmots_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, const unsigned char *msg, size_t msg_len, - unsigned char *sig ) +int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, + size_t msg_size, const unsigned char *sig, + size_t sig_size ) { - unsigned char tmp_symbol_array[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN]; - unsigned char tmp_sig[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][MBEDTLS_LMOTS_N_HASH_LEN]; + unsigned char Kc_public_key_candidate[MBEDTLS_LMOTS_N_HASH_LEN]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ctx == NULL || f_rng == NULL || p_rng == NULL || msg == NULL || sig == NULL) + if ( msg == NULL && msg_size != 0 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if ( !ctx->MBEDTLS_PRIVATE(have_public_key) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE( type ) + != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if ( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + + ret = mbedtls_lmots_calculate_public_key_candidate( &ctx->MBEDTLS_PRIVATE(params), + msg, msg_size, sig, sig_size, + Kc_public_key_candidate, + MBEDTLS_LMOTS_N_HASH_LEN, + NULL); + if ( ret ) + { + return( ret ); + } + + if ( memcmp( &Kc_public_key_candidate, ctx->MBEDTLS_PRIVATE(public_key), + sizeof( ctx->MBEDTLS_PRIVATE(public_key) ) ) ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + + return( 0 ); +} + +void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ) +{ + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_private_t ) ) ; +} + +void mbedtls_lmots_free_private( mbedtls_lmots_private_t *ctx ) +{ + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_private_t ) ) ; +} + +int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, + mbedtls_lmots_algorithm_type_t type, + const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + uint32_t q_leaf_identifier, + const unsigned char *seed, + size_t seed_size ) +{ + psa_hash_operation_t op; + psa_status_t status; + size_t output_hash_len; + unsigned int i_digit_idx; + unsigned char i_digit_idx_bytes[2]; + unsigned char const_bytes[1]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if ( ctx->MBEDTLS_PRIVATE(have_private_key) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if ( type != MBEDTLS_LMOTS_SHA256_N32_W8 ) { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) = type; + + memcpy( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + I_key_identifier, + sizeof( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier) ) ); + + unsigned_int_to_network_bytes(q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(q_leaf_identifier) ); + + unsigned_int_to_network_bytes( 0xFF, sizeof( const_bytes ), const_bytes ); + + for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT; i_digit_idx++ ) + { + op = psa_hash_operation_init( ); + status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) + goto exit; + + ret = psa_hash_update( &op, + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + sizeof( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier) ) ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret ) + goto exit; + + status = psa_hash_update( &op, + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(q_leaf_identifier), + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret ) + goto exit; + + unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, i_digit_idx_bytes ); + status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret ) + goto exit; + + status = psa_hash_update( &op, const_bytes, sizeof( const_bytes) ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret ) + goto exit; + + status = psa_hash_update( &op, seed, seed_size ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret ) + goto exit; + + status = psa_hash_finish( &op, + ctx->MBEDTLS_PRIVATE(private_key)[i_digit_idx], + 32, &output_hash_len ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret ) + goto exit; + + psa_hash_abort( &op ); + } + + ctx->MBEDTLS_PRIVATE(have_private_key) = 1; + +exit: + if( ret ) + { + psa_hash_abort( &op ); + return( ret ); + } + + return ret; +} + +int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, + mbedtls_lmots_private_t *priv_ctx) +{ + unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } /* Check that a private key is loaded */ - if ( !ctx->MBEDTLS_PRIVATE(have_privkey) ) + if ( !priv_ctx->MBEDTLS_PRIVATE(have_private_key) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + ret = hash_digit_array( &priv_ctx->MBEDTLS_PRIVATE(params), + ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(priv_ctx->MBEDTLS_PRIVATE(private_key)), + NULL, NULL, y_hashed_digits ); + if ( ret ) + { + return( ret ); + } + + ret = public_key_from_hashed_digit_array( &priv_ctx->MBEDTLS_PRIVATE(params), + ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )y_hashed_digits, + ctx->MBEDTLS_PRIVATE(public_key) ); + if ( ret ) + { + return( ret ); + } + + memcpy( &ctx->MBEDTLS_PRIVATE(params), &priv_ctx->MBEDTLS_PRIVATE(params), + sizeof( ctx->MBEDTLS_PRIVATE(params) ) ); + + ctx->MBEDTLS_PRIVATE(have_public_key = 1); + + return( ret ); +} + + +int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, + unsigned char *key, size_t key_size, + size_t *key_len ) +{ + if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN ) + { + return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + } + + if( ! ctx->MBEDTLS_PRIVATE(have_public_key) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + unsigned_int_to_network_bytes( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type), + MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + + memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + + memcpy(key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(q_leaf_identifier), + MBEDTLS_LMOTS_Q_LEAF_ID_LEN); + + memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, ctx->MBEDTLS_PRIVATE(public_key), + MBEDTLS_LMOTS_N_HASH_LEN ); + + if( key_len != NULL ) + { + *key_len = MBEDTLS_LMS_PUBLIC_KEY_LEN; + } + + return( 0 ); +} + +int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, const unsigned char *msg, size_t msg_size, + unsigned char *sig, size_t sig_size, size_t* sig_len ) +{ + unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT]; + unsigned char tmp_sig[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if ( msg == NULL && msg_size != 0 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( sig_size < MBEDTLS_LMOTS_SIG_LEN ) + { + return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + } + + /* Check that a private key is loaded */ + if ( !ctx->MBEDTLS_PRIVATE(have_private_key) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -436,285 +673,43 @@ int mbedtls_lmots_sign( mbedtls_lmots_context *ctx, return( ret ); } - ret = create_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), - ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), - msg, msg_len, sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, - tmp_symbol_array ); + ret = create_digit_array_with_checksum( &ctx->MBEDTLS_PRIVATE(params), + msg, msg_size, + sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, + tmp_digit_array ); if ( ret ) { return( ret ); } - ret = hash_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), - ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), - ( const unsigned char( *)[32] )(ctx->MBEDTLS_PRIVATE(priv_key)), - NULL, tmp_symbol_array, tmp_sig ); + ret = hash_digit_array( &ctx->MBEDTLS_PRIVATE(params), + ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(ctx->MBEDTLS_PRIVATE(private_key)), + NULL, tmp_digit_array, tmp_sig ); if ( ret ) { return( ret ); } - val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + unsigned_int_to_network_bytes( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type), + MBEDTLS_LMOTS_TYPE_LEN, + sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); /* We've got a valid signature now, so it's time to make sure the private * key can't be reused. */ - ctx->MBEDTLS_PRIVATE(have_privkey) = 0; - mbedtls_platform_zeroize(ctx->MBEDTLS_PRIVATE(priv_key), - sizeof(ctx->MBEDTLS_PRIVATE(priv_key))); + ctx->MBEDTLS_PRIVATE(have_private_key) = 0; + mbedtls_platform_zeroize(ctx->MBEDTLS_PRIVATE(private_key), + sizeof(ctx->MBEDTLS_PRIVATE(private_key))); memcpy(sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET, tmp_sig, - MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN * MBEDTLS_LMOTS_N_HASH_LEN); + MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN); - return( 0 ); -} - -int mbedtls_lmots_verify( mbedtls_lmots_context *ctx, const unsigned char *msg, - size_t msg_len, const unsigned char *sig ) -{ - unsigned char Kc_public_key_candidate[32]; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - - if( ctx == NULL || msg == NULL || sig == NULL) + if( sig_len != NULL ) { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if ( !ctx->MBEDTLS_PRIVATE(have_pubkey) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if( ctx->MBEDTLS_PRIVATE(type ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if ( network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); - } - - ret = mbedtls_lmots_generate_pub_key_candidate( ctx->MBEDTLS_PRIVATE(I_key_identifier), - ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), - msg, msg_len, sig, - Kc_public_key_candidate ); - if ( ret ) - { - return( ret ); - } - - if ( memcmp( &Kc_public_key_candidate, ctx->MBEDTLS_PRIVATE(pub_key), - sizeof( ctx->MBEDTLS_PRIVATE(pub_key) ) ) ) - { - return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + *sig_len = MBEDTLS_LMS_SIG_LEN; } return( 0 ); } -int mbedtls_lmots_import_pubkey( mbedtls_lmots_context *ctx, - const unsigned char *key ) -{ - if ( ctx == NULL || key == NULL) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - ctx->MBEDTLS_PRIVATE(type) = network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); - - memcpy( ctx->MBEDTLS_PRIVATE(I_key_identifier), key + MBEDTLS_LMOTS_PUBKEY_I_KEY_ID_OFFSET, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - - memcpy( ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), key + MBEDTLS_LMOTS_PUBKEY_Q_LEAF_ID_OFFSET, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - ctx->MBEDTLS_PRIVATE(q_leaf_identifier) = network_bytes_to_val( MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes) ); - - memcpy( ctx->MBEDTLS_PRIVATE(pub_key), key + MBEDTLS_LMOTS_PUBKEY_KEY_HASH_OFFSET, MBEDTLS_LMOTS_N_HASH_LEN ); - - ctx->MBEDTLS_PRIVATE(have_pubkey) = 1; - - return( 0 ); -} - -int mbedtls_lmots_export_pubkey( mbedtls_lmots_context *ctx, - unsigned char *key ) -{ - if ( ctx == NULL || key == NULL) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if ( ! ctx->MBEDTLS_PRIVATE(have_pubkey) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); - - memcpy( key + MBEDTLS_LMOTS_PUBKEY_I_KEY_ID_OFFSET, ctx->MBEDTLS_PRIVATE(I_key_identifier), - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - - memcpy( key + MBEDTLS_LMOTS_PUBKEY_Q_LEAF_ID_OFFSET, ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), - MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - - memcpy( key + MBEDTLS_LMOTS_PUBKEY_KEY_HASH_OFFSET, ctx->MBEDTLS_PRIVATE(pub_key), - MBEDTLS_LMOTS_N_HASH_LEN ); - - return( 0 ); -} - - -int mbedtls_lmots_gen_pubkey( mbedtls_lmots_context *ctx ) -{ - unsigned char y_hashed_symbols[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32]; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - - if( ctx == NULL ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - /* Check that a private key is loaded */ - if ( !ctx->MBEDTLS_PRIVATE(have_privkey) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - ret = hash_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), - ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), - ( const unsigned char( *)[32] )(ctx->MBEDTLS_PRIVATE(priv_key)), - NULL, NULL, y_hashed_symbols ); - if ( ret ) - { - return( ret ); - } - - ret = public_key_from_hashed_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), - ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), - ( const unsigned char( *)[32] )y_hashed_symbols, - ctx->MBEDTLS_PRIVATE(pub_key) ); - if ( ret ) - { - return( ret ); - } - - ctx->MBEDTLS_PRIVATE(have_pubkey = 1); - - return( ret ); -} - -int mbedtls_lmots_gen_privkey( mbedtls_lmots_context *ctx, - const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - unsigned int q_leaf_identifier, - const unsigned char *seed, - size_t seed_len ) -{ - psa_hash_operation_t op; - psa_status_t status; - size_t output_hash_len; - unsigned int i_symbol_idx; - unsigned char i_symbol_idx_bytes[2]; - unsigned char const_bytes[1]; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - - if( ctx == NULL || I_key_identifier == NULL || seed == NULL) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if ( ctx->MBEDTLS_PRIVATE(have_privkey) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if ( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - memcpy( ctx->MBEDTLS_PRIVATE(I_key_identifier), I_key_identifier, - sizeof( ctx->MBEDTLS_PRIVATE(I_key_identifier) ) ); - - ctx->MBEDTLS_PRIVATE(q_leaf_identifier) = q_leaf_identifier; - - val_to_network_bytes( ctx->MBEDTLS_PRIVATE(q_leaf_identifier), MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes) ); - - val_to_network_bytes( 0xFF, sizeof( const_bytes ), const_bytes ); - - for ( i_symbol_idx = 0; i_symbol_idx < MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN; i_symbol_idx++ ) - { - op = psa_hash_operation_init( ); - status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) - { - goto out; - } - - ret = psa_hash_update( &op, ctx->MBEDTLS_PRIVATE(I_key_identifier), - sizeof( ctx->MBEDTLS_PRIVATE(I_key_identifier) ) ); - ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) { - goto out; - } - - status = psa_hash_update( &op, ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), - sizeof( ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes) ) ); - ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) - { - goto out; - } - - val_to_network_bytes( i_symbol_idx, I_SYMBOL_IDX_LEN, i_symbol_idx_bytes ); - status = psa_hash_update( &op, i_symbol_idx_bytes, I_SYMBOL_IDX_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) - { - goto out; - } - - status = psa_hash_update( &op, const_bytes, sizeof( const_bytes) ); - ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) - { - goto out; - } - - status = psa_hash_update( &op, seed, seed_len ); - ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) - { - goto out; - } - - status = psa_hash_finish( &op, ctx->MBEDTLS_PRIVATE(priv_key)[i_symbol_idx], - 32, &output_hash_len ); - ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) - { - goto out; - } - - psa_hash_abort( &op ); - } - - ctx->MBEDTLS_PRIVATE(have_privkey) = 1; - -out: - if( ret ) - { - psa_hash_abort( &op ); - return( ret ); - } - - return ret; -} - #endif /* MBEDTLS_LMS_C */ diff --git a/library/lmots.h b/library/lmots.h index ec68967bea..ca7d4bf344 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -26,7 +26,7 @@ #ifndef MBEDTLS_LMOTS_H #define MBEDTLS_LMOTS_H -#include "mbedtls/private_access.h" +#include "mbedtls/build_info.h" #include "psa/crypto.h" @@ -34,27 +34,19 @@ #include #define MBEDTLS_LMOTS_N_HASH_LEN (32) -#define MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN (34) +#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT (34) #define MBEDTLS_LMOTS_TYPE_LEN (4) #define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN (MBEDTLS_LMOTS_N_HASH_LEN) #define MBEDTLS_LMOTS_I_KEY_ID_LEN (16) #define MBEDTLS_LMOTS_Q_LEAF_ID_LEN (4) #define MBEDTLS_LMOTS_SIG_LEN (MBEDTLS_LMOTS_TYPE_LEN + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN + \ - (MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN * MBEDTLS_LMOTS_N_HASH_LEN)) + (MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN)) -#define MBEDTLS_LMOTS_PUBKEY_LEN (MBEDTLS_LMOTS_TYPE_LEN + MBEDTLS_LMOTS_I_KEY_ID_LEN + \ +#define MBEDTLS_LMOTS_PUBLIC_KEY_LEN (MBEDTLS_LMOTS_TYPE_LEN + MBEDTLS_LMOTS_I_KEY_ID_LEN + \ MBEDTLS_LMOTS_Q_LEAF_ID_LEN + MBEDTLS_LMOTS_N_HASH_LEN) -#define MBEDTLS_LMOTS_SIG_TYPE_OFFSET (0) -#define MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET (MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN) - -#define MBEDTLS_LMOTS_PUBKEY_TYPE_OFFSET (0) -#define MBEDTLS_LMOTS_PUBKEY_I_KEY_ID_OFFSET (MBEDTLS_LMOTS_PUBKEY_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMOTS_PUBKEY_Q_LEAF_ID_OFFSET (MBEDTLS_LMOTS_PUBKEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) -#define MBEDTLS_LMOTS_PUBKEY_KEY_HASH_OFFSET (MBEDTLS_LMOTS_PUBKEY_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) - +#define MBEDTLS_LMOTS_SIG_TYPE_OFFSET (0) #ifdef __cplusplus extern "C" { @@ -68,54 +60,93 @@ typedef enum { } mbedtls_lmots_algorithm_type_t; -/** LMOTS context structure. +/** LMOTS parameters structure. + * + * This contains the metadata associated with an LMOTS key, detailing the + * algorithm type, the key ID, and the leaf identifier should be key be part of + * a LMS key. + */ +typedef struct { + unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); /*!< The key + identifier. */ + unsigned char MBEDTLS_PRIVATE(q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN]); /*!< Which + leaf of the LMS key this is. + 0 if the key is not part of an LMS key. */ + mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LM-OTS key type identifier as + per IANA. Only SHA256_N32_W8 is + currently supported. */ +} mbedtls_lmots_parameters_t; + +/** LMOTS public context structure. + * + * A LMOTS public key is a hash output, and the applicable parameter set. * * The context must be initialized before it is used. A public key must either - * be imported, or an algorithm type set, a private key generated and the public - * key calculated from it. A context that does not contain a public key cannot - * verify, and a context that does not contain a private key cannot sign. - * Signing a message will remove the private key from the context, as private - * keys can only be used a single time. + * be imported or generated from a private context. * * \dot - * digraph lmots { + * digraph lmots_public_t { * UNINITIALIZED -> INIT [label="init"]; - * TYPE_SET -> INIT [label="free"]; - * PRIVATE -> INIT [label="free"]; - * PUBLIC -> INIT [label="free"]; - * "PRIVATE+PUBLIC" -> INIT [label="free"]; - * INIT -> TYPE_SET [label="set_algorithm_type"]; - * PRIVATE -> TYPE_SET [label="sign"]; - * "PRIVATE+PUBLIC" -> PUBLIC [label="sign"]; - * INIT -> PUBLIC [label="import_public"]; - * PUBLIC -> PUBLIC [label="export_pubkey"]; - * "PRIVATE+PUBLIC" -> "PRIVATE+PUBLIC" [label="export_pubkey"]; - * PRIVATE -> "PRIVATE+PUBLIC" [label="gen_pubkey"]; - * TYPE_SET -> PRIVATE [label="gen_privkey"]; + * HAVE_PUBLIC_KEY -> INIT [label="free"]; + * INIT -> HAVE_PUBLIC_KEY [label="import_public_key"]; + * INIT -> HAVE_PUBLIC_KEY [label="calculate_public_key from private key"]; + * HAVE_PUBLIC_KEY -> HAVE_PUBLIC_KEY [label="export_public_key"]; * } * \enddot */ typedef struct { - unsigned char MBEDTLS_PRIVATE(have_privkey); /*!< Whether the context contains a private key. + mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); + unsigned char MBEDTLS_PRIVATE(public_key)[32]; + unsigned char MBEDTLS_PRIVATE(have_public_key); /*!< Whether the context contains a public key. Boolean values only. */ - unsigned char MBEDTLS_PRIVATE(have_pubkey); /*!< Whether the context contains a public key. +} mbedtls_lmots_public_t; + +/** LMOTS private context structure. + * + * A LMOTS private key is one hash output for each of digit of the digest + + * checksum, and the applicable parameter set. + * + * The context must be initialized before it is used. A public key must either + * be imported or generated from a private context. + * + * \dot + * digraph lmots_public_t { + * UNINITIALIZED -> INIT [label="init"]; + * HAVE_PRIVATE_KEY -> INIT [label="free"]; + * INIT -> HAVE_PRIVATE_KEY [label="generate_private_key"]; + * HAVE_PRIVATE_KEY -> INIT [label="sign"]; + * } + * \enddot + */ +typedef struct { + mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); + unsigned char MBEDTLS_PRIVATE(private_key)[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][32]; + unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ - unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); /*!< The key - identifier. */ - unsigned int MBEDTLS_PRIVATE(q_leaf_identifier); /*!< Which leaf of the LMS key this is. - 0 if the key is not part of an LMS key. */ - unsigned char MBEDTLS_PRIVATE(q_leaf_identifier_bytes)[MBEDTLS_LMOTS_Q_LEAF_ID_LEN];/*!< The - leaf identifier in network bytes form. */ - mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LM-OTS key type identifier as - per IANA. Only SHA256_N32_W8 is currently - supported. */ - unsigned char MBEDTLS_PRIVATE(priv_key[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32]); /*!< The private - key, one hash output per byte of the encoded - symbol string P (32 bytes of hash output + - 2 bytes of checksum). */ - unsigned char MBEDTLS_PRIVATE(pub_key[32]); /*!< The public key, in the form of a SHA256 - output. */ -} mbedtls_lmots_context; +} mbedtls_lmots_private_t; + +/** + * \brief This function converts an unsigned int into a + * network-byte-order (big endian) string. + * + * \param val The unsigned integer value + * \param len The length of the string. + * \param bytes The string to output into. + * + * \return The corresponding LMS error code. + */ +void unsigned_int_to_network_bytes(unsigned int val, size_t len, unsigned char *bytes); + +/** + * \brief This function converts a network-byte-order + * (big endian) string into an unsigned integer. + * + * \param len The length of the string. + * \param bytes The string. + * + * \return The corresponding LMS error code. + */ +unsigned int network_bytes_to_unsigned_int(size_t len, const unsigned char *bytes); /** * \brief This function converts a \ref psa_status_t to a @@ -129,35 +160,41 @@ int mbedtls_lms_error_from_psa(psa_status_t status); /** - * \brief This function initializes an LMOTS context + * \brief This function initializes a public LMOTS context * * \param ctx The uninitialized LMOTS context that will then be * initialized. */ -void mbedtls_lmots_init( mbedtls_lmots_context *ctx ); +void mbedtls_lmots_init_public( mbedtls_lmots_public_t *ctx ); /** - * \brief This function uninitializes an LMOTS context + * \brief This function uninitializes a public LMOTS context * * \param ctx The initialized LMOTS context that will then be * uninitialized. */ -void mbedtls_lmots_free( mbedtls_lmots_context *ctx ); +void mbedtls_lmots_free_public( mbedtls_lmots_public_t *ctx ); /** - * \brief This function sets the type of an LMOTS context + * \brief This function imports an LMOTS public key into a + * LMOTS context. * - * \note The parameter set in the context will then be used - * for keygen operations etc. + * \note Before this function is called, the context must + * have been initialized. * - * \param ctx The initialized LMOTS context. - * \param type The type that will be set in the context. + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMOTS context store the key in. + * \param key The buffer from which the key will be read. + * #MBEDTLS_LMOTS_PUBLIC_KEY_LEN bytes will be read from + * this. * * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, - mbedtls_lmots_algorithm_type_t type ); +int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, + const unsigned char *key, size_t key_size ); /** * \brief This function creates a candidate public key from @@ -170,12 +207,10 @@ int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, * mbedtls_lmots_verify will be used for LMOTS * signature verification. * - * \param I_key_identifier The key identifier of the key, as a 16-byte string. - * \param q_leaf_identifier The leaf identifier of key. If this LMOTS key is - * not being used as part of an LMS key, this should - * be set to 0. + * \param params The LMOTS parameter set, q and I values as an + * mbedtls_lmots_parameters_t struct. * \param msg The buffer from which the message will be read. - * \param msg_len The size of the message that will be read. + * \param msg_size The size of the message that will be read. * \param sig The buffer from which the signature will be read. * #MBEDTLS_LMOTS_SIG_LEN bytes will be read from this. * \param out The buffer where the candidate public key will be @@ -185,13 +220,128 @@ int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lmots_generate_pub_key_candidate( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], - const unsigned char *msg, - size_t msg_len, - const unsigned char *sig, - unsigned char *out ); +int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters_t *params, + const unsigned char *msg, + size_t msg_size, + const unsigned char *sig, + size_t sig_size, + unsigned char *out, + size_t out_size, + size_t *out_len); +/** + * \brief This function verifies a LMOTS signature, using a + * LMOTS context that contains a public key. + * + * \warning This function is **not intended for use in + * production**, due to as-yet unsolved problems with + * handling stateful keys. + * + * \note Before this function is called, the context must + * have been initialized and must contain a public key + * (either by import or calculation from a private key). + * + * \param ctx The initialized LMOTS context from which the public + * key will be read. + * \param msg The buffer from which the message will be read. + * \param msg_size The size of the message that will be read. + * \param sig The buf from which the signature will be read. + * #MBEDTLS_LMOTS_SIG_LEN bytes will be read from + * this. + * + * \return \c 0 on successful verification. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, + size_t msg_size, const unsigned char *sig, + size_t sig_size ); + +/** + * \brief This function initializes a private LMOTS context + * + * \param ctx The uninitialized LMOTS context that will then be + * initialized. + */ +void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ); + +/** + * \brief This function uninitializes a private LMOTS context + * + * \param ctx The initialized LMOTS context that will then be + * uninitialized. + */ +void mbedtls_lmots_free_private( mbedtls_lmots_private_t *ctx ); + +/** + * \brief This function generates an LMOTS private key, and + * stores in into an LMOTS context. + * + * \warning This function is **not intended for use in + * production**, due to as-yet unsolved problems with + * handling stateful keys. + * + * \note The seed must have at least 256 bits of entropy. + * + * \param ctx The initialized LMOTS context to generate the key + * into. + * \param I_key_identifier The key identifier of the key, as a 16-byte string. + * \param q_leaf_identifier The leaf identifier of key. If this LMOTS key is + * not being used as part of an LMS key, this should + * be set to 0. + * \param seed The seed used to deterministically generate the + * key. + * \param seed_size The length of the seed. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, + mbedtls_lmots_algorithm_type_t type, + const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + uint32_t q_leaf_identifier, + const unsigned char *seed, + size_t seed_size ); + +/** + * \brief This function generates an LMOTS public key from a + * LMOTS context that already contains a private key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a private key. + * + * \param ctx The initialized LMOTS context to generate the key + * from and store it into. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, + mbedtls_lmots_private_t *priv_ctx); + + +/** + * \brief This function exports an LMOTS public key from a + * LMOTS context that already contains a public key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a public key. + * + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMOTS context that contains the + * publc key. + * \param key The buffer into which the key will be output. Must + * be at least #MBEDTLS_LMOTS_PUBLIC_KEY_LEN in size. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, + unsigned char *key, size_t key_size, + size_t *key_len ); /** * \brief This function creates a LMOTS signature, using a * LMOTS context that contains a private key. @@ -213,135 +363,18 @@ int mbedtls_lmots_generate_pub_key_candidate( const unsigned char I_key_identifi * generation. * \param p_rng The RNG context to be passed to f_rng * \param msg The buffer from which the message will be read. - * \param msg_len The size of the message that will be read. + * \param msg_size The size of the message that will be read. * \param sig The buf into which the signature will be stored. * Must be at least #MBEDTLS_LMOTS_SIG_LEN in size. * * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lmots_sign( mbedtls_lmots_context *ctx, +int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, const unsigned char *msg, size_t msg_len, - unsigned char *sig ); + void *p_rng, const unsigned char *msg, size_t msg_size, + unsigned char *sig, size_t sig_size, size_t* sig_len ); -/** - * \brief This function verifies a LMOTS signature, using a - * LMOTS context that contains a public key. - * - * \warning This function is **not intended for use in - * production**, due to as-yet unsolved problems with - * handling stateful keys. - * - * \note Before this function is called, the context must - * have been initialized and must contain a public key - * (either by import or generation). - * - * \param ctx The initialized LMOTS context from which the public - * key will be read. - * \param msg The buffer from which the message will be read. - * \param msg_len The size of the message that will be read. - * \param sig The buf from which the signature will be read. - * #MBEDTLS_LMOTS_SIG_LEN bytes will be read from - * this. - * - * \return \c 0 on successful verification. - * \return A non-zero error code on failure. - */ -int mbedtls_lmots_verify( mbedtls_lmots_context *ctx, const unsigned char *msg, - size_t msg_len, const unsigned char *sig ); - -/** - * \brief This function imports an LMOTS public key into a - * LMOTS context. - * - * \note Before this function is called, the context must - * have been initialized. - * - * \note See IETF RFC8554 for details of the encoding of - * this public key. - * - * \param ctx The initialized LMOTS context store the key in. - * \param key The buffer from which the key will be read. - * #MBEDTLS_LMOTS_PUBKEY_LEN bytes will be read from - * this. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lmots_import_pubkey( mbedtls_lmots_context *ctx, - const unsigned char *key ); - -/** - * \brief This function exports an LMOTS public key from a - * LMOTS context that already contains a public key. - * - * \note Before this function is called, the context must - * have been initialized and the context must contain - * a public key. - * - * \note See IETF RFC8554 for details of the encoding of - * this public key. - * - * \param ctx The initialized LMOTS context that contains the - * publc key. - * \param key The buffer into which the key will be output. Must - * be at least #MBEDTLS_LMOTS_PUBKEY_LEN in size. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lmots_export_pubkey( mbedtls_lmots_context *ctx, - unsigned char *key ); - -/** - * \brief This function generates an LMOTS public key from a - * LMOTS context that already contains a private key. - * - * \note Before this function is called, the context must - * have been initialized and the context must contain - * a private key. - * - * \param ctx The initialized LMOTS context to generate the key - * from and store it into. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lmots_gen_pubkey( mbedtls_lmots_context *ctx ); - -/** - * \brief This function generates an LMOTS private key, and - * stores in into an LMOTS context. - * - * \warning This function is **not intended for use in - * production**, due to as-yet unsolved problems with - * handling stateful keys. - * - * \note Before this function is called, the context must - * have been initialized and the type of the LMOTS - * context set using mbedtls_lmots_set_algorithm_type - * - * \note The seed must have at least 256 bits of entropy. - * - * \param ctx The initialized LMOTS context to generate the key - * into. - * \param I_key_identifier The key identifier of the key, as a 16-byte string. - * \param q_leaf_identifier The leaf identifier of key. If this LMOTS key is - * not being used as part of an LMS key, this should - * be set to 0. - * \param seed The seed used to deterministically generate the - * key. - * \param seed_len The length of the seed. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lmots_gen_privkey( mbedtls_lmots_context *ctx, - const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - unsigned int q_leaf_identifier, - const unsigned char *seed, - size_t seed_len ); #ifdef __cplusplus } diff --git a/library/lms.c b/library/lms.c index 4b4f151283..b58aeea7f7 100644 --- a/library/lms.c +++ b/library/lms.c @@ -54,45 +54,33 @@ #define mbedtls_free free #endif -#define MERKLE_TREE_NODE_AM (1 << (MBEDTLS_LMS_H_TREE_HEIGHT + 1)) -#define MERKLE_TREE_LEAF_AM (1 << MBEDTLS_LMS_H_TREE_HEIGHT) -#define MERKLE_TREE_INTR_AM (1 << MBEDTLS_LMS_H_TREE_HEIGHT) +#define MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET (0) +#define MBEDTLS_LMS_SIG_OTS_SIG_OFFSET (MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) +#define MBEDTLS_LMS_SIG_TYPE_OFFSET (MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_LEN) +#define MBEDTLS_LMS_SIG_PATH_OFFSET (MBEDTLS_LMS_SIG_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) + +#define MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET (0) +#define MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) +#define MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) + + +#define MERKLE_TREE_NODE_AM (1u << (MBEDTLS_LMS_H_TREE_HEIGHT + 1u)) +#define MERKLE_TREE_LEAF_NODE_AM (1u << MBEDTLS_LMS_H_TREE_HEIGHT) +#define MERKLE_TREE_INTERNAL_NODE_AM (1u << MBEDTLS_LMS_H_TREE_HEIGHT) #define D_CONST_LEN (2) +static const unsigned char D_LEAF_CONSTANT_BYTES[D_CONST_LEN] = {0x82, 0x82}; +static const unsigned char D_INTERNAL_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; -#define D_LEAF_CONSTANT (0x8282) -#define D_INTR_CONSTANT (0x8383) - -static void val_to_network_bytes(unsigned int val, size_t len, unsigned char *bytes) -{ - size_t idx; - - for (idx = 0; idx < len; idx++) { - bytes[idx] = (val >> ((len - 1 - idx) * 8)) & 0xFF; - } -} - -static unsigned int network_bytes_to_val(size_t len, const unsigned char *bytes) -{ - size_t idx; - unsigned int val = 0; - - for (idx = 0; idx < len; idx++) { - val |= ((unsigned int)bytes[idx]) << (8 * (len - 1 - idx)); - } - - return val; -} - -static int create_merkle_leaf_node( const mbedtls_lms_context *ctx, +static int create_merkle_leaf_node( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], unsigned char pub_key[MBEDTLS_LMOTS_N_HASH_LEN], unsigned int r_node_idx, - unsigned char out[32] ) + unsigned char out[MBEDTLS_LMS_M_NODE_BYTES] ) { psa_hash_operation_t op; psa_status_t status; size_t output_hash_len; - unsigned char D_LEAF_bytes[D_CONST_LEN]; unsigned char r_node_idx_bytes[4]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -100,64 +88,49 @@ static int create_merkle_leaf_node( const mbedtls_lms_context *ctx, status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, ctx->MBEDTLS_PRIVATE(I_key_identifier), - MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; - val_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); + unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); status = psa_hash_update( &op, r_node_idx_bytes, 4 ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; - val_to_network_bytes( D_LEAF_CONSTANT, D_CONST_LEN, D_LEAF_bytes ); - status = psa_hash_update( &op, D_LEAF_bytes, D_CONST_LEN ); + status = psa_hash_update( &op, D_LEAF_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; status = psa_hash_update( &op, pub_key, MBEDTLS_LMOTS_N_HASH_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; - status = psa_hash_finish( &op, out, 32, &output_hash_len); + status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES, &output_hash_len); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; -out: +exit: psa_hash_abort( &op ); return( ret ); } -static int create_merkle_intr_node( const mbedtls_lms_context *ctx, - const unsigned char left_node[32], - const unsigned char rght_node[32], - unsigned int r_node_idx, - unsigned char out[32] ) +static int create_merkle_internal_node( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + const unsigned char left_node[MBEDTLS_LMS_M_NODE_BYTES], + const unsigned char right_node[MBEDTLS_LMS_M_NODE_BYTES], + unsigned int r_node_idx, + unsigned char out[MBEDTLS_LMS_M_NODE_BYTES] ) { psa_hash_operation_t op; psa_status_t status; size_t output_hash_len; - unsigned char D_INTR_bytes[D_CONST_LEN]; unsigned char r_node_idx_bytes[4]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -165,75 +138,62 @@ static int create_merkle_intr_node( const mbedtls_lms_context *ctx, status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, ctx->MBEDTLS_PRIVATE(I_key_identifier), - MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; - val_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); + unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); status = psa_hash_update( &op, r_node_idx_bytes, 4 ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; - val_to_network_bytes( D_INTR_CONSTANT, D_CONST_LEN, D_INTR_bytes ); - status = psa_hash_update( &op, D_INTR_bytes, D_CONST_LEN ); + status = psa_hash_update( &op, D_INTERNAL_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; status = psa_hash_update( &op, left_node, MBEDTLS_LMOTS_N_HASH_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, rght_node, MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, right_node, MBEDTLS_LMOTS_N_HASH_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; - ret = psa_hash_finish( &op, out, 32, &output_hash_len); + ret = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES, &output_hash_len); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; -out: +exit: psa_hash_abort( &op ); return ret; } -static int generate_merkle_tree( mbedtls_lms_context *ctx, - unsigned char tree[MERKLE_TREE_NODE_AM][32] ) +static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, + unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES] ) { unsigned int priv_key_idx; unsigned int r_node_idx; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* First create the leaf nodes, in ascending order */ - for( priv_key_idx = 0; priv_key_idx < MERKLE_TREE_INTR_AM; priv_key_idx++ ) + for( priv_key_idx = 0; priv_key_idx < MERKLE_TREE_INTERNAL_NODE_AM; + priv_key_idx++ ) { - r_node_idx = MERKLE_TREE_INTR_AM + priv_key_idx; + r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM + priv_key_idx; - ret = create_merkle_leaf_node( ctx, ctx->MBEDTLS_PRIVATE(priv_keys)[priv_key_idx].pub_key, - r_node_idx, tree[r_node_idx] ); + ret = create_merkle_leaf_node( + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + ctx->MBEDTLS_PRIVATE(ots_public_keys)[priv_key_idx].MBEDTLS_PRIVATE(public_key), + r_node_idx, tree[r_node_idx] ); if( ret ) { return( ret ); @@ -242,11 +202,12 @@ static int generate_merkle_tree( mbedtls_lms_context *ctx, /* Then the internal nodes, in reverse order so that we can guarantee the * parent has been created */ - for( r_node_idx = MERKLE_TREE_INTR_AM - 1; r_node_idx > 0; r_node_idx-- ) + for( r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM - 1; r_node_idx > 0; + r_node_idx-- ) { - ret = create_merkle_intr_node( ctx, tree[(r_node_idx * 2)], - tree[(r_node_idx * 2 + 1)], - r_node_idx, tree[r_node_idx] ); + ret = create_merkle_internal_node( + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + tree[(r_node_idx * 2)], tree[(r_node_idx * 2 + 1)], r_node_idx, tree[r_node_idx] ); if( ret ) { return( ret ); @@ -256,18 +217,17 @@ static int generate_merkle_tree( mbedtls_lms_context *ctx, return( 0 ); } -static int get_merkle_path( mbedtls_lms_context *ctx, - unsigned int leaf_node_id, unsigned char path[MBEDTLS_LMS_H_TREE_HEIGHT][32] ) +static int get_merkle_path( mbedtls_lms_private_t *ctx, + unsigned int leaf_node_id, + unsigned char path[MBEDTLS_LMS_H_TREE_HEIGHT][MBEDTLS_LMS_M_NODE_BYTES] ) { - unsigned char tree[MERKLE_TREE_NODE_AM][32]; + unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES]; unsigned int curr_node_id = leaf_node_id; - unsigned int parent_node_id; - unsigned char sibling_relative_id; unsigned int adjacent_node_id; unsigned int height; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = generate_merkle_tree( ctx, tree); + ret = calculate_merkle_tree( ctx, tree); if( ret ) { return( ret ); @@ -275,195 +235,107 @@ static int get_merkle_path( mbedtls_lms_context *ctx, for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT; height++ ) { - parent_node_id = ( curr_node_id / 2 ); - - /* 0 if the node is a left child, 1 if the node is a right child */ - sibling_relative_id = curr_node_id & 1; - - adjacent_node_id = ( parent_node_id * 2 ) + ( 1 - sibling_relative_id ); + adjacent_node_id = curr_node_id ^ 1; memcpy( &path[height], &tree[adjacent_node_id], MBEDTLS_LMOTS_N_HASH_LEN ); - curr_node_id = parent_node_id; + curr_node_id >>=1; } return( 0 ); } -void mbedtls_lms_init( mbedtls_lms_context *ctx ) +void mbedtls_lms_init_public( mbedtls_lms_public_t *ctx ) { - if( ctx == NULL ) - { - return; - } - - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_context ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ) ; } -void mbedtls_lms_free( mbedtls_lms_context *ctx ) +void mbedtls_lms_free_public( mbedtls_lms_public_t *ctx ) { - unsigned int idx; - - if( ctx == NULL ) - { - return; - } - - if( ctx->MBEDTLS_PRIVATE(have_privkey) ) - { - for( idx = 0; idx < MERKLE_TREE_LEAF_AM; idx++ ) - { - mbedtls_lmots_free( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx] ); - } - - mbedtls_free( ctx->MBEDTLS_PRIVATE(priv_keys) ); - } - - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_context ) ); + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ); } -int mbedtls_lms_set_algorithm_type( mbedtls_lms_context *ctx, - mbedtls_lms_algorithm_type_t type, - mbedtls_lmots_algorithm_type_t otstype ) +int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, + const unsigned char *key, size_t key_size ) { - if( ctx == NULL ) + mbedtls_lms_algorithm_type_t type; + mbedtls_lmots_algorithm_type_t otstype; + + if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN ) + { + return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + } + + type = network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); + if( type != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) = type; - ctx->MBEDTLS_PRIVATE(type) = type; - ctx->MBEDTLS_PRIVATE(otstype) = otstype; + otstype = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); + if( otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) = otstype; + + memcpy( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + memcpy( ctx->MBEDTLS_PRIVATE(T_1_pub_key), key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, + MBEDTLS_LMOTS_N_HASH_LEN ); + + ctx->MBEDTLS_PRIVATE(have_public_key) = 1; return( 0 ); } -int mbedtls_lms_sign( mbedtls_lms_context *ctx, - int ( *f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *msg, unsigned int msg_len, - unsigned char *sig ) -{ - unsigned int q_leaf_identifier; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - - if( ctx == NULL ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if( ! ctx->MBEDTLS_PRIVATE(have_privkey) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if( msg == NULL ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if( sig == NULL ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - - if( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if( ctx->MBEDTLS_PRIVATE(otstype) != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - - if( ctx->MBEDTLS_PRIVATE(q_next_usable_key) >= MERKLE_TREE_LEAF_AM ) - { - return( MBEDTLS_ERR_LMS_OUT_OF_PRIV_KEYS ); - } - - - q_leaf_identifier = ctx->MBEDTLS_PRIVATE(q_next_usable_key); - /* This new value must _always_ be written back to the disk before the - * signature is returned. - */ - ctx->MBEDTLS_PRIVATE(q_next_usable_key) += 1; - - ret = mbedtls_lmots_sign( &ctx->MBEDTLS_PRIVATE(priv_keys)[q_leaf_identifier], - f_rng, p_rng, msg, msg_len, - sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET ); - if( ret ) - { - return( ret ); - } - - val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), MBEDTLS_LMS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_TYPE_OFFSET ); - val_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET); - - ret = get_merkle_path( ctx, MERKLE_TREE_INTR_AM + q_leaf_identifier, - ( unsigned char( * )[32] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) ); - if( ret ) - { - return( ret ); - } - - return( 0 ); -} - -int mbedtls_lms_verify( const mbedtls_lms_context *ctx, - const unsigned char *msg, unsigned int msg_len, - const unsigned char *sig ) +int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, + const unsigned char *msg, size_t msg_size, + const unsigned char *sig, size_t sig_size ) { unsigned int q_leaf_identifier; unsigned char Kc_candidate_ots_pub_key[MBEDTLS_LMOTS_N_HASH_LEN]; - unsigned char Tc_candidate_root_node[32]; + unsigned char Tc_candidate_root_node[MBEDTLS_LMS_M_NODE_BYTES]; unsigned int height; unsigned int curr_node_id; unsigned int parent_node_id; const unsigned char* left_node; - const unsigned char* rght_node; + const unsigned char* right_node; + mbedtls_lmots_parameters_t ots_params; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ctx == NULL ) + if( ! ctx->MBEDTLS_PRIVATE(have_public_key) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ! ctx->MBEDTLS_PRIVATE(have_pubkey) ) + if( sig_size != MBEDTLS_LMS_SIG_LEN ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( msg == NULL) + if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) + != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( sig == NULL) + if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) + != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if( ctx->MBEDTLS_PRIVATE(otstype) != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - - if( network_bytes_to_val( MBEDTLS_LMS_TYPE_LEN, + if( network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_TYPE_OFFSET) != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } - if( network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, + if( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { @@ -471,29 +343,39 @@ int mbedtls_lms_verify( const mbedtls_lms_context *ctx, } - q_leaf_identifier = network_bytes_to_val( MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + q_leaf_identifier = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); - if( q_leaf_identifier >= MERKLE_TREE_LEAF_AM ) + if( q_leaf_identifier >= MERKLE_TREE_LEAF_NODE_AM ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } - ret = mbedtls_lmots_generate_pub_key_candidate( ctx->MBEDTLS_PRIVATE(I_key_identifier), - sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET, - msg, msg_len, - sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, - Kc_candidate_ots_pub_key ); + memcpy(ots_params.MBEDTLS_PRIVATE(I_key_identifier), + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN); + unsigned_int_to_network_bytes( q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + ots_params.MBEDTLS_PRIVATE(q_leaf_identifier) ); + ots_params.type = ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype); + + ret = mbedtls_lmots_calculate_public_key_candidate( &ots_params, msg, msg_size, + sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, + MBEDTLS_LMOTS_SIG_LEN, + Kc_candidate_ots_pub_key, + sizeof(Kc_candidate_ots_pub_key), + NULL ); if( ret ) { return( ret ); } - create_merkle_leaf_node( ctx, Kc_candidate_ots_pub_key, - MERKLE_TREE_INTR_AM + q_leaf_identifier, - Tc_candidate_root_node ); + create_merkle_leaf_node( + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + Kc_candidate_ots_pub_key, MERKLE_TREE_INTERNAL_NODE_AM + q_leaf_identifier, + Tc_candidate_root_node ); - curr_node_id = MERKLE_TREE_INTR_AM + q_leaf_identifier; + curr_node_id = MERKLE_TREE_INTERNAL_NODE_AM + q_leaf_identifier; for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT; height++ ) { @@ -502,17 +384,18 @@ int mbedtls_lms_verify( const mbedtls_lms_context *ctx, /* Left/right node ordering matters for the hash */ if( curr_node_id & 1 ) { - left_node = ( ( const unsigned char( * )[32] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; - rght_node = Tc_candidate_root_node; + left_node = ( ( const unsigned char( * )[MBEDTLS_LMS_M_NODE_BYTES] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; + right_node = Tc_candidate_root_node; } else { left_node = Tc_candidate_root_node; - rght_node = ( ( const unsigned char( * )[32] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; + right_node = ( ( const unsigned char( * )[MBEDTLS_LMS_M_NODE_BYTES] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; } - create_merkle_intr_node( ctx, left_node, rght_node, parent_node_id, - Tc_candidate_root_node); + create_merkle_internal_node( + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + left_node, right_node, parent_node_id, Tc_candidate_root_node); curr_node_id /= 2; } @@ -526,115 +409,148 @@ int mbedtls_lms_verify( const mbedtls_lms_context *ctx, return( 0 ); } -int mbedtls_lms_import_pubkey( mbedtls_lms_context *ctx, - const unsigned char *key ) +void mbedtls_lms_init_private( mbedtls_lms_private_t *ctx ) { - mbedtls_lms_algorithm_type_t type; - mbedtls_lmots_algorithm_type_t otstype; + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ) ; +} - if( ctx == NULL ) +void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ) +{ + unsigned int idx; + + if( ctx->MBEDTLS_PRIVATE(have_private_key) ) { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) + { + mbedtls_lmots_free_private( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[idx] ); + mbedtls_lmots_free_public( &ctx->MBEDTLS_PRIVATE(ots_public_keys)[idx] ); + } + + mbedtls_free( ctx->MBEDTLS_PRIVATE(ots_private_keys) ); + mbedtls_free( ctx->MBEDTLS_PRIVATE(ots_public_keys) ); } - if( key == NULL ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ); +} + + +int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, + mbedtls_lms_algorithm_type_t type, + mbedtls_lmots_algorithm_type_t otstype, + int (*f_rng)(void *, unsigned char *, size_t), + void* p_rng, unsigned char *seed, + size_t seed_size ) +{ + unsigned int idx = 0; + unsigned int free_idx = 0; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - type = network_bytes_to_val( MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBKEY_TYPE_OFFSET ); if( type != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ctx->MBEDTLS_PRIVATE(type) = type; - otstype = network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMS_PUBKEY_OTSTYPE_OFFSET ); if( otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ctx->MBEDTLS_PRIVATE(otstype) = otstype; - memcpy( ctx->MBEDTLS_PRIVATE(I_key_identifier), key + MBEDTLS_LMS_PUBKEY_I_KEY_ID_OFFSET, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( ctx->MBEDTLS_PRIVATE(T_1_pub_key), key + MBEDTLS_LMS_PUBKEY_ROOT_NODE_OFFSET, - MBEDTLS_LMOTS_N_HASH_LEN ); + if( ctx->MBEDTLS_PRIVATE(have_private_key) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } - ctx->MBEDTLS_PRIVATE(have_pubkey) = 1; + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) = type; + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) = otstype; + + f_rng( p_rng, + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + + ctx->MBEDTLS_PRIVATE(ots_private_keys) = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM, + sizeof( mbedtls_lmots_private_t)); + if( ctx->MBEDTLS_PRIVATE(ots_private_keys) == NULL ) + { + ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; + goto exit; + } + + ctx->MBEDTLS_PRIVATE(ots_public_keys) = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM, + sizeof( mbedtls_lmots_public_t)); + if( ctx->MBEDTLS_PRIVATE(ots_public_keys) == NULL ) + { + ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; + goto exit; + } + + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) + { + mbedtls_lmots_init_private( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[idx] ); + mbedtls_lmots_init_public( &ctx->MBEDTLS_PRIVATE(ots_public_keys)[idx] ); + } + + + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) + { + ret = mbedtls_lmots_generate_private_key( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[idx], + otstype, + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + idx, seed, seed_size ); + if( ret) + goto exit; + + ret = mbedtls_lmots_calculate_public_key( &ctx->MBEDTLS_PRIVATE(ots_public_keys)[idx], + &ctx->MBEDTLS_PRIVATE(ots_private_keys)[idx] ); + if( ret) + goto exit; + } + + ctx->MBEDTLS_PRIVATE(q_next_usable_key) = 0; + ctx->MBEDTLS_PRIVATE(have_private_key) = 1; + +exit: + if( ret ) + { + for ( free_idx = 0; free_idx < idx; free_idx++ ) { + mbedtls_lmots_free_private( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[free_idx] ); + mbedtls_lmots_free_public( &ctx->MBEDTLS_PRIVATE(ots_public_keys)[free_idx] ); + } + + mbedtls_free( ctx->MBEDTLS_PRIVATE(ots_private_keys) ); + mbedtls_free( ctx->MBEDTLS_PRIVATE(ots_public_keys) ); + return( ret ); + } return( 0 ); } -int mbedtls_lms_export_pubkey( mbedtls_lms_context *ctx, - unsigned char *key ) +int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, + mbedtls_lms_private_t *priv_ctx ) { - if( ctx == NULL ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if( key == NULL ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if( ! ctx->MBEDTLS_PRIVATE(have_pubkey) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), - MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBKEY_TYPE_OFFSET ); - val_to_network_bytes( ctx->MBEDTLS_PRIVATE(otstype), - MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMS_PUBKEY_OTSTYPE_OFFSET ); - memcpy( key + MBEDTLS_LMS_PUBKEY_I_KEY_ID_OFFSET, - ctx->MBEDTLS_PRIVATE(I_key_identifier), - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( key + MBEDTLS_LMS_PUBKEY_ROOT_NODE_OFFSET, - ctx->MBEDTLS_PRIVATE(T_1_pub_key), - MBEDTLS_LMOTS_N_HASH_LEN ); - - return( 0 ); -} - -int mbedtls_lms_gen_pubkey( mbedtls_lms_context *ctx ) -{ - unsigned char tree[MERKLE_TREE_NODE_AM][32]; - unsigned int idx; + unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ctx == NULL ) + if( ! priv_ctx->MBEDTLS_PRIVATE( have_private_key ) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ! ctx->MBEDTLS_PRIVATE( have_privkey ) ) + if( priv_ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) + != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) + if( priv_ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) + != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(otstype) != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } + memcpy( &ctx->MBEDTLS_PRIVATE(params), &priv_ctx->MBEDTLS_PRIVATE(params), + sizeof(mbedtls_lmots_parameters_t) ); - for( idx = 0; idx < MERKLE_TREE_LEAF_AM; idx++ ) - { - ret = mbedtls_lmots_gen_pubkey( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx] ); - if( ret ) - { - return( ret ); - } - } - - ret = generate_merkle_tree( ctx, tree); + ret = calculate_merkle_tree( priv_ctx, tree); if( ret ) { return( ret ); @@ -643,83 +559,112 @@ int mbedtls_lms_gen_pubkey( mbedtls_lms_context *ctx ) /* Root node is always at position 1, due to 1-based indexing */ memcpy( ctx->MBEDTLS_PRIVATE(T_1_pub_key), &tree[1], MBEDTLS_LMOTS_N_HASH_LEN ); - ctx->MBEDTLS_PRIVATE(have_pubkey) = 1; + ctx->MBEDTLS_PRIVATE(have_public_key) = 1; return( 0 ); } -int mbedtls_lms_gen_privkey( mbedtls_lms_context *ctx, - int ( *f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *seed, - size_t seed_len ) + +int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key, + size_t key_size, size_t *key_len ) { - unsigned int idx; + if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN ) { + return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + } + + if( ! ctx->MBEDTLS_PRIVATE(have_public_key) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + unsigned_int_to_network_bytes( + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type), + MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); + unsigned_int_to_network_bytes( + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype), + MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); + memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, + ctx->MBEDTLS_PRIVATE(T_1_pub_key), + MBEDTLS_LMOTS_N_HASH_LEN ); + + if( key_len != NULL ) { + *key_len = MBEDTLS_LMS_PUBLIC_KEY_LEN; + } + + return( 0 ); +} + + +int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void* p_rng, unsigned char *msg, unsigned int msg_size, + unsigned char *sig, size_t sig_size, size_t *sig_len) +{ + uint32_t q_leaf_identifier; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ctx == NULL ) + if( ! ctx->MBEDTLS_PRIVATE(have_private_key) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) + if( sig_size < MBEDTLS_LMS_SIG_LEN ) + { + return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + } + + if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(otstype) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) + != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(have_privkey) ) + if( ctx->MBEDTLS_PRIVATE(q_next_usable_key) >= MERKLE_TREE_LEAF_NODE_AM ) { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - f_rng( p_rng, ctx->MBEDTLS_PRIVATE(I_key_identifier), - sizeof( ctx->MBEDTLS_PRIVATE(I_key_identifier) ) ); - - ctx->MBEDTLS_PRIVATE(priv_keys) = mbedtls_calloc( MERKLE_TREE_LEAF_AM, - sizeof( mbedtls_lmots_context)); - if( ctx->MBEDTLS_PRIVATE(priv_keys) == NULL ) - { - ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; - goto out; - } - - for( idx = 0; idx < MERKLE_TREE_LEAF_AM; idx++ ) - { - mbedtls_lmots_init( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx] ); - ret = mbedtls_lmots_set_algorithm_type( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx], - ctx->MBEDTLS_PRIVATE(otstype) ); - if( ret) - { - goto out; - } + return( MBEDTLS_ERR_LMS_OUT_OF_PRIVATE_KEYS ); } - for( idx = 0; idx < MERKLE_TREE_LEAF_AM; idx++ ) - { - ret = mbedtls_lmots_gen_privkey( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx], - ctx->MBEDTLS_PRIVATE(I_key_identifier), - idx, seed, seed_len ); - if( ret) - { - goto out; - } - } + q_leaf_identifier = ctx->MBEDTLS_PRIVATE(q_next_usable_key); + /* This new value must _always_ be written back to the disk before the + * signature is returned. + */ + ctx->MBEDTLS_PRIVATE(q_next_usable_key) += 1; - ctx->MBEDTLS_PRIVATE(q_next_usable_key) = 0; - ctx->MBEDTLS_PRIVATE(have_privkey) = 1; - -out: + ret = mbedtls_lmots_sign( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[q_leaf_identifier], + f_rng, p_rng, msg, msg_size, + sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, + MBEDTLS_LMS_SIG_LEN, NULL ); if( ret ) { - mbedtls_free( ctx->MBEDTLS_PRIVATE(priv_keys) ); return( ret ); } + unsigned_int_to_network_bytes( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type), + MBEDTLS_LMS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_TYPE_OFFSET ); + unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET); + + ret = get_merkle_path( ctx, MERKLE_TREE_INTERNAL_NODE_AM + q_leaf_identifier, + ( unsigned char( * )[MBEDTLS_LMS_M_NODE_BYTES] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) ); + if( ret ) + { + return( ret ); + } + + if( sig_len != NULL ) { + *sig_len = MBEDTLS_LMS_SIG_LEN; + } + + return( 0 ); } diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 82dbcbab27..4492daaae1 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -15,7 +15,8 @@ /* BEGIN_CASE */ void lmots_sign_verify_test ( data_t * msg ) { - mbedtls_lmots_context ctx; + mbedtls_lmots_public_t pub_ctx; + mbedtls_lmots_private_t priv_ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN]; mbedtls_entropy_context entropy_ctx; mbedtls_ctr_drbg_context drbg_ctx; @@ -23,22 +24,25 @@ void lmots_sign_verify_test ( data_t * msg ) mbedtls_entropy_init( &entropy_ctx ); mbedtls_ctr_drbg_init( &drbg_ctx ); - mbedtls_lmots_init( &ctx ); + mbedtls_lmots_init_public( &pub_ctx ); + mbedtls_lmots_init_private( &priv_ctx ); TEST_ASSERT( mbedtls_ctr_drbg_seed( &drbg_ctx, mbedtls_entropy_func, &entropy_ctx, (uint8_t*)"", 0 ) == 0 ); TEST_ASSERT( mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ) == 0 ); - TEST_ASSERT( mbedtls_lmots_set_algorithm_type(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8) == 0 ); - TEST_ASSERT( mbedtls_lmots_gen_privkey(&ctx, (uint8_t[16]){0}, 0x12, seed, sizeof( seed ) ) == 0 ); - TEST_ASSERT( mbedtls_lmots_gen_pubkey(&ctx) == 0 ); - TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, msg->x, msg->len, sig ) == 0 ); - TEST_ASSERT( mbedtls_lmots_verify(&ctx, msg->x, msg->len, sig) == 0 ); + TEST_ASSERT( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + (uint8_t[16]){0}, 0x12, seed, sizeof( seed ) ) == 0 ); + TEST_ASSERT( mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx) == 0 ); + TEST_ASSERT( mbedtls_lmots_sign(&priv_ctx, mbedtls_ctr_drbg_random, &drbg_ctx, + msg->x, msg->len, sig, sizeof(sig), NULL ) == 0 ); + TEST_ASSERT( mbedtls_lmots_verify(&pub_ctx, msg->x, msg->len, sig, sizeof(sig)) == 0 ); exit: mbedtls_entropy_free( &entropy_ctx ); mbedtls_ctr_drbg_free( &drbg_ctx ); - mbedtls_lmots_free( &ctx ); + mbedtls_lmots_free_public( &pub_ctx ); + mbedtls_lmots_free_private( &priv_ctx ); } /* END_CASE */ @@ -46,40 +50,40 @@ exit: void lmots_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, int expected_rc ) { - mbedtls_lmots_context ctx; + mbedtls_lmots_public_t ctx; - mbedtls_lmots_init( &ctx ); + mbedtls_lmots_init_public( &ctx ); - mbedtls_lmots_import_pubkey( &ctx, pub_key->x ); + mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ); - TEST_ASSERT(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x ) == expected_rc ); + TEST_ASSERT(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ) == expected_rc ); exit: - mbedtls_lmots_free( &ctx ); + mbedtls_lmots_free_public( &ctx ); } /* END_CASE */ /* BEGIN_CASE */ void lmots_import_export_test ( data_t * pub_key ) { - mbedtls_lmots_context ctx; - uint8_t exported_pub_key[MBEDTLS_LMOTS_PUBKEY_LEN]; + mbedtls_lmots_public_t ctx; + uint8_t exported_pub_key[MBEDTLS_LMOTS_PUBLIC_KEY_LEN]; - mbedtls_lmots_init( &ctx ); - TEST_ASSERT( mbedtls_lmots_import_pubkey( &ctx, pub_key->x ) == 0 ); - TEST_ASSERT( mbedtls_lmots_export_pubkey( &ctx, exported_pub_key ) == 0 ); + mbedtls_lmots_init_public( &ctx ); + TEST_ASSERT( mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); + TEST_ASSERT( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, sizeof( exported_pub_key ), NULL ) == 0 ); - TEST_ASSERT( memcmp( pub_key->x, exported_pub_key, MBEDTLS_LMOTS_PUBKEY_LEN ) == 0 ); + TEST_ASSERT( memcmp( pub_key->x, exported_pub_key, MBEDTLS_LMOTS_PUBLIC_KEY_LEN ) == 0 ); exit: - mbedtls_lmots_free( &ctx ); + mbedtls_lmots_free_public( &ctx ); } /* END_CASE */ /* BEGIN_CASE */ void lmots_reuse_test ( data_t * msg ) { - mbedtls_lmots_context ctx; + mbedtls_lmots_private_t ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN]; mbedtls_entropy_context entropy_ctx; mbedtls_ctr_drbg_context drbg_ctx; @@ -92,19 +96,21 @@ void lmots_reuse_test ( data_t * msg ) mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ); - mbedtls_lmots_init( &ctx ); - TEST_ASSERT( mbedtls_lmots_set_algorithm_type( &ctx, MBEDTLS_LMOTS_SHA256_N32_W8 ) == 0 ); - TEST_ASSERT( mbedtls_lmots_gen_privkey(&ctx, (uint8_t[16]){0}, 0x12, seed, sizeof( seed ) ) == 0 ); - TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, msg->x, msg->len, sig ) == 0 ); + mbedtls_lmots_init_private( &ctx ); + TEST_ASSERT( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + (uint8_t[16]){0}, 0x12, seed, sizeof( seed ) ) == 0 ); + TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, + msg->x, msg->len, sig, sizeof( sig ), NULL ) == 0 ); /* Running another sign operation should fail, since the key should now have * been erased. */ - TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, msg->x, msg->len, sig ) != 0 ); + TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, + msg->x, msg->len, sig, sizeof( sig ), NULL ) != 0 ); exit: mbedtls_entropy_free( &entropy_ctx ); mbedtls_ctr_drbg_free( &drbg_ctx ); - mbedtls_lmots_free( &ctx ); + mbedtls_lmots_free_private( &ctx ); } /* END_CASE */ diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index c6c706139c..64ea900f1e 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -13,7 +13,8 @@ /* BEGIN_CASE */ void lms_sign_verify_test ( data_t * msg ) { - mbedtls_lms_context ctx; + mbedtls_lms_public_t pub_ctx; + mbedtls_lms_private_t priv_ctx; unsigned char sig[MBEDTLS_LMS_SIG_LEN]; mbedtls_entropy_context entropy_ctx; mbedtls_ctr_drbg_context drbg_ctx; @@ -22,29 +23,35 @@ void lms_sign_verify_test ( data_t * msg ) mbedtls_entropy_init( &entropy_ctx ); mbedtls_ctr_drbg_init( &drbg_ctx ); - mbedtls_lms_init( &ctx ); + mbedtls_lms_init_public( &pub_ctx ); + mbedtls_lms_init_private( &priv_ctx ); TEST_ASSERT( mbedtls_ctr_drbg_seed( &drbg_ctx, mbedtls_entropy_func, &entropy_ctx, ( uint8_t* )"", 0 ) == 0 ); TEST_ASSERT( mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ) == 0 ); - TEST_ASSERT( mbedtls_lms_set_algorithm_type( &ctx, MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8 ) == 0 ); - /* Allocation failure isn't a test failure, since it likely just means there's not enough memory to run the test */ - rc = mbedtls_lms_gen_privkey( &ctx, mbedtls_ctr_drbg_random, &drbg_ctx, seed, sizeof( seed ) ); + rc = mbedtls_lms_generate_private_key( &priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, + MBEDTLS_LMOTS_SHA256_N32_W8, + mbedtls_ctr_drbg_random, &drbg_ctx, seed, + sizeof( seed ) ); TEST_ASSUME( rc != MBEDTLS_ERR_LMS_ALLOC_FAILED ); TEST_ASSERT( rc == 0 ); - TEST_ASSERT( mbedtls_lms_gen_pubkey( &ctx) == 0 ); + TEST_ASSERT( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ) == 0 ); - TEST_ASSERT( mbedtls_lms_sign( &ctx, mbedtls_ctr_drbg_random, &drbg_ctx, msg->x, msg->len, sig ) == 0 ); + TEST_ASSERT( mbedtls_lms_sign( &priv_ctx, mbedtls_ctr_drbg_random, + &drbg_ctx, msg->x, msg->len, sig, + sizeof( sig ), NULL ) == 0 ); - TEST_ASSERT( mbedtls_lms_verify( &ctx, msg->x, msg->len, sig) == 0 ); + TEST_ASSERT( mbedtls_lms_verify( &pub_ctx, msg->x, msg->len, sig, + sizeof( sig ) ) == 0 ); exit: mbedtls_entropy_free( &entropy_ctx ); mbedtls_ctr_drbg_free( &drbg_ctx ); - mbedtls_lms_free( &ctx ); + mbedtls_lms_free_public( &pub_ctx ); + mbedtls_lms_free_private( &priv_ctx ); } /* END_CASE */ @@ -52,34 +59,35 @@ exit: void lms_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, int expected_rc ) { - mbedtls_lms_context ctx; + mbedtls_lms_public_t ctx; - mbedtls_lms_init( &ctx); + mbedtls_lms_init_public( &ctx); - mbedtls_lms_import_pubkey( &ctx, pub_key->x ); + mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ); - TEST_ASSERT( mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x ) == expected_rc ); + TEST_ASSERT( mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ) == expected_rc ); exit: - mbedtls_lms_free( &ctx ); + mbedtls_lms_free_public( &ctx ); } /* END_CASE */ /* BEGIN_CASE */ void lms_import_export_test ( data_t * pub_key ) { - mbedtls_lms_context ctx; - uint8_t exported_pub_key[MBEDTLS_LMS_PUBKEY_LEN]; + mbedtls_lms_public_t ctx; + uint8_t exported_pub_key[MBEDTLS_LMS_PUBLIC_KEY_LEN]; - mbedtls_lms_init(&ctx); - TEST_ASSERT( mbedtls_lms_import_pubkey( &ctx, pub_key->x ) == 0 ); - TEST_ASSERT( mbedtls_lms_export_pubkey( &ctx, exported_pub_key) == 0 ); + mbedtls_lms_init_public(&ctx); + TEST_ASSERT( mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); + TEST_ASSERT( mbedtls_lms_export_public_key( &ctx, exported_pub_key, + sizeof(exported_pub_key), NULL ) == 0 ); - ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBKEY_LEN, - exported_pub_key, MBEDTLS_LMS_PUBKEY_LEN ); + ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBLIC_KEY_LEN, + exported_pub_key, MBEDTLS_LMS_PUBLIC_KEY_LEN ); exit: - mbedtls_lms_free( &ctx ); + mbedtls_lms_free_public( &ctx ); } /* END_CASE */ From f5632d3efca722296ec59a7c7d99773b36b8708e Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 1 Sep 2022 09:56:52 +0100 Subject: [PATCH 0594/1028] Remove MBEDTLS_PRIVATE usage from LMS and LMOTS Signed-off-by: Raef Coles --- library/lmots.c | 92 ++++++++++++++++++------------------ library/lms.c | 122 ++++++++++++++++++++++++------------------------ 2 files changed, 107 insertions(+), 107 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index e2f86e62d2..74191ebbca 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -118,13 +118,13 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p if ( ret != 0 ) goto exit; - status = psa_hash_update( &op, params->MBEDTLS_PRIVATE(I_key_identifier), + status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; - status = psa_hash_update( &op, params->MBEDTLS_PRIVATE(q_leaf_identifier), + status = psa_hash_update( &op, params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) @@ -199,14 +199,14 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, goto exit; status = psa_hash_update( &op, - params->MBEDTLS_PRIVATE(I_key_identifier), + params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; status = psa_hash_update( &op, - params->MBEDTLS_PRIVATE(q_leaf_identifier), + params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) @@ -268,13 +268,13 @@ static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t goto exit; status = psa_hash_update( &op, - params->MBEDTLS_PRIVATE(I_key_identifier), + params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; - status = psa_hash_update( &op, params->MBEDTLS_PRIVATE(q_leaf_identifier), + status = psa_hash_update( &op, params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) @@ -335,21 +335,21 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) = + ctx->params.type = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); - memcpy( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + memcpy( ctx->params.I_key_identifier, key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( ctx->MBEDTLS_PRIVATE(MBEDTLS_PRIVATE(params).q_leaf_identifier), + memcpy( ctx->params.q_leaf_identifier, key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - memcpy( ctx->MBEDTLS_PRIVATE(public_key), + memcpy( ctx->public_key, key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, MBEDTLS_LMOTS_N_HASH_LEN ); - ctx->MBEDTLS_PRIVATE(have_public_key) = 1; + ctx->have_public_key = 1; return( 0 ); } @@ -421,12 +421,12 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if ( !ctx->MBEDTLS_PRIVATE(have_public_key) ) + if ( !ctx->have_public_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE( type ) + if( ctx->params.MBEDTLS_PRIVATE( type ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); @@ -438,7 +438,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } - ret = mbedtls_lmots_calculate_public_key_candidate( &ctx->MBEDTLS_PRIVATE(params), + ret = mbedtls_lmots_calculate_public_key_candidate( &ctx->params, msg, msg_size, sig, sig_size, Kc_public_key_candidate, MBEDTLS_LMOTS_N_HASH_LEN, @@ -448,8 +448,8 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, return( ret ); } - if ( memcmp( &Kc_public_key_candidate, ctx->MBEDTLS_PRIVATE(public_key), - sizeof( ctx->MBEDTLS_PRIVATE(public_key) ) ) ) + if ( memcmp( &Kc_public_key_candidate, ctx->public_key, + sizeof( ctx->public_key ) ) ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } @@ -482,7 +482,7 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, unsigned char const_bytes[1]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if ( ctx->MBEDTLS_PRIVATE(have_private_key) ) + if ( ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -491,15 +491,15 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) = type; + ctx->params.type = type; - memcpy( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + memcpy( ctx->params.I_key_identifier, I_key_identifier, - sizeof( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier) ) ); + sizeof( ctx->params.I_key_identifier ) ); unsigned_int_to_network_bytes(q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(q_leaf_identifier) ); + ctx->params.q_leaf_identifier ); unsigned_int_to_network_bytes( 0xFF, sizeof( const_bytes ), const_bytes ); @@ -512,14 +512,14 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, goto exit; ret = psa_hash_update( &op, - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), - sizeof( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier) ) ); + ctx->params.I_key_identifier, + sizeof( ctx->params.I_key_identifier ) ); ret = mbedtls_lms_error_from_psa( status ); if ( ret ) goto exit; status = psa_hash_update( &op, - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(q_leaf_identifier), + ctx->params.q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret ) @@ -542,7 +542,7 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, goto exit; status = psa_hash_finish( &op, - ctx->MBEDTLS_PRIVATE(private_key)[i_digit_idx], + ctx->private_key[i_digit_idx], 32, &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if ( ret ) @@ -551,7 +551,7 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, psa_hash_abort( &op ); } - ctx->MBEDTLS_PRIVATE(have_private_key) = 1; + ctx->have_private_key = 1; exit: if( ret ) @@ -575,29 +575,29 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, } /* Check that a private key is loaded */ - if ( !priv_ctx->MBEDTLS_PRIVATE(have_private_key) ) + if ( !priv_ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ret = hash_digit_array( &priv_ctx->MBEDTLS_PRIVATE(params), - ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(priv_ctx->MBEDTLS_PRIVATE(private_key)), + ret = hash_digit_array( &priv_ctx->params, + ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(priv_ctx->private_key), NULL, NULL, y_hashed_digits ); if ( ret ) { return( ret ); } - ret = public_key_from_hashed_digit_array( &priv_ctx->MBEDTLS_PRIVATE(params), + ret = public_key_from_hashed_digit_array( &priv_ctx->params, ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )y_hashed_digits, - ctx->MBEDTLS_PRIVATE(public_key) ); + ctx->public_key ); if ( ret ) { return( ret ); } - memcpy( &ctx->MBEDTLS_PRIVATE(params), &priv_ctx->MBEDTLS_PRIVATE(params), - sizeof( ctx->MBEDTLS_PRIVATE(params) ) ); + memcpy( &ctx->params, &priv_ctx->params, + sizeof( ctx->params ) ); ctx->MBEDTLS_PRIVATE(have_public_key = 1); @@ -614,24 +614,24 @@ int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } - if( ! ctx->MBEDTLS_PRIVATE(have_public_key) ) + if( ! ctx->have_public_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - unsigned_int_to_network_bytes( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type), + unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); memcpy(key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(q_leaf_identifier), + ctx->params.q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN); - memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, ctx->MBEDTLS_PRIVATE(public_key), + memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, ctx->public_key, MBEDTLS_LMOTS_N_HASH_LEN ); if( key_len != NULL ) @@ -662,7 +662,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, } /* Check that a private key is loaded */ - if ( !ctx->MBEDTLS_PRIVATE(have_private_key) ) + if ( !ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -673,7 +673,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( ret ); } - ret = create_digit_array_with_checksum( &ctx->MBEDTLS_PRIVATE(params), + ret = create_digit_array_with_checksum( &ctx->params, msg, msg_size, sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, tmp_digit_array ); @@ -682,24 +682,24 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( ret ); } - ret = hash_digit_array( &ctx->MBEDTLS_PRIVATE(params), - ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(ctx->MBEDTLS_PRIVATE(private_key)), + ret = hash_digit_array( &ctx->params, + ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(ctx->private_key), NULL, tmp_digit_array, tmp_sig ); if ( ret ) { return( ret ); } - unsigned_int_to_network_bytes( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type), + unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMOTS_TYPE_LEN, sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); /* We've got a valid signature now, so it's time to make sure the private * key can't be reused. */ - ctx->MBEDTLS_PRIVATE(have_private_key) = 0; - mbedtls_platform_zeroize(ctx->MBEDTLS_PRIVATE(private_key), - sizeof(ctx->MBEDTLS_PRIVATE(private_key))); + ctx->have_private_key = 0; + mbedtls_platform_zeroize(ctx->private_key, + sizeof(ctx->private_key)); memcpy(sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET, tmp_sig, MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN); diff --git a/library/lms.c b/library/lms.c index b58aeea7f7..94f5abe5cc 100644 --- a/library/lms.c +++ b/library/lms.c @@ -191,8 +191,8 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM + priv_key_idx; ret = create_merkle_leaf_node( - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), - ctx->MBEDTLS_PRIVATE(ots_public_keys)[priv_key_idx].MBEDTLS_PRIVATE(public_key), + ctx->params.I_key_identifier, + ctx->ots_public_keys[priv_key_idx].public_key, r_node_idx, tree[r_node_idx] ); if( ret ) { @@ -206,7 +206,7 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, r_node_idx-- ) { ret = create_merkle_internal_node( - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + ctx->params.I_key_identifier, tree[(r_node_idx * 2)], tree[(r_node_idx * 2 + 1)], r_node_idx, tree[r_node_idx] ); if( ret ) { @@ -271,7 +271,7 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) = type; + ctx->params.type = type; otstype = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); @@ -279,15 +279,15 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) = otstype; + ctx->params.otstype = otstype; - memcpy( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + memcpy( ctx->params.I_key_identifier, key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( ctx->MBEDTLS_PRIVATE(T_1_pub_key), key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, + memcpy( ctx->T_1_pub_key, key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, MBEDTLS_LMOTS_N_HASH_LEN ); - ctx->MBEDTLS_PRIVATE(have_public_key) = 1; + ctx->have_public_key = 1; return( 0 ); } @@ -307,7 +307,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, mbedtls_lmots_parameters_t ots_params; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ! ctx->MBEDTLS_PRIVATE(have_public_key) ) + if( ! ctx->have_public_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -317,13 +317,13 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) + if( ctx->params.type != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) + if( ctx->params.otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); @@ -351,13 +351,13 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } - memcpy(ots_params.MBEDTLS_PRIVATE(I_key_identifier), - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + memcpy(ots_params.I_key_identifier, + ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN); unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - ots_params.MBEDTLS_PRIVATE(q_leaf_identifier) ); - ots_params.type = ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype); + ots_params.q_leaf_identifier ); + ots_params.type = ctx->params.otstype; ret = mbedtls_lmots_calculate_public_key_candidate( &ots_params, msg, msg_size, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, @@ -371,7 +371,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, } create_merkle_leaf_node( - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + ctx->params.I_key_identifier, Kc_candidate_ots_pub_key, MERKLE_TREE_INTERNAL_NODE_AM + q_leaf_identifier, Tc_candidate_root_node ); @@ -394,13 +394,13 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, } create_merkle_internal_node( - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + ctx->params.I_key_identifier, left_node, right_node, parent_node_id, Tc_candidate_root_node); curr_node_id /= 2; } - if( memcmp( Tc_candidate_root_node, ctx->MBEDTLS_PRIVATE(T_1_pub_key), + if( memcmp( Tc_candidate_root_node, ctx->T_1_pub_key, MBEDTLS_LMOTS_N_HASH_LEN) ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); @@ -418,16 +418,16 @@ void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ) { unsigned int idx; - if( ctx->MBEDTLS_PRIVATE(have_private_key) ) + if( ctx->have_private_key ) { for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) { - mbedtls_lmots_free_private( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[idx] ); - mbedtls_lmots_free_public( &ctx->MBEDTLS_PRIVATE(ots_public_keys)[idx] ); + mbedtls_lmots_free_private( &ctx->ots_private_keys[idx] ); + mbedtls_lmots_free_public( &ctx->ots_public_keys[idx] ); } - mbedtls_free( ctx->MBEDTLS_PRIVATE(ots_private_keys) ); - mbedtls_free( ctx->MBEDTLS_PRIVATE(ots_public_keys) ); + mbedtls_free( ctx->ots_private_keys ); + mbedtls_free( ctx->ots_public_keys ); } mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ); @@ -455,29 +455,29 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(have_private_key) ) + if( ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) = type; - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) = otstype; + ctx->params.type = type; + ctx->params.otstype = otstype; f_rng( p_rng, - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - ctx->MBEDTLS_PRIVATE(ots_private_keys) = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM, + ctx->ots_private_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM, sizeof( mbedtls_lmots_private_t)); - if( ctx->MBEDTLS_PRIVATE(ots_private_keys) == NULL ) + if( ctx->ots_private_keys == NULL ) { ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; goto exit; } - ctx->MBEDTLS_PRIVATE(ots_public_keys) = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM, + ctx->ots_public_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM, sizeof( mbedtls_lmots_public_t)); - if( ctx->MBEDTLS_PRIVATE(ots_public_keys) == NULL ) + if( ctx->ots_public_keys == NULL ) { ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; goto exit; @@ -485,39 +485,39 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) { - mbedtls_lmots_init_private( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[idx] ); - mbedtls_lmots_init_public( &ctx->MBEDTLS_PRIVATE(ots_public_keys)[idx] ); + mbedtls_lmots_init_private( &ctx->ots_private_keys[idx] ); + mbedtls_lmots_init_public( &ctx->ots_public_keys[idx] ); } for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) { - ret = mbedtls_lmots_generate_private_key( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[idx], + ret = mbedtls_lmots_generate_private_key( &ctx->ots_private_keys[idx], otstype, - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + ctx->params.I_key_identifier, idx, seed, seed_size ); if( ret) goto exit; - ret = mbedtls_lmots_calculate_public_key( &ctx->MBEDTLS_PRIVATE(ots_public_keys)[idx], - &ctx->MBEDTLS_PRIVATE(ots_private_keys)[idx] ); + ret = mbedtls_lmots_calculate_public_key( &ctx->ots_public_keys[idx], + &ctx->ots_private_keys[idx] ); if( ret) goto exit; } - ctx->MBEDTLS_PRIVATE(q_next_usable_key) = 0; - ctx->MBEDTLS_PRIVATE(have_private_key) = 1; + ctx->q_next_usable_key = 0; + ctx->have_private_key = 1; exit: if( ret ) { for ( free_idx = 0; free_idx < idx; free_idx++ ) { - mbedtls_lmots_free_private( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[free_idx] ); - mbedtls_lmots_free_public( &ctx->MBEDTLS_PRIVATE(ots_public_keys)[free_idx] ); + mbedtls_lmots_free_private( &ctx->ots_private_keys[free_idx] ); + mbedtls_lmots_free_public( &ctx->ots_public_keys[free_idx] ); } - mbedtls_free( ctx->MBEDTLS_PRIVATE(ots_private_keys) ); - mbedtls_free( ctx->MBEDTLS_PRIVATE(ots_public_keys) ); + mbedtls_free( ctx->ots_private_keys ); + mbedtls_free( ctx->ots_public_keys ); return( ret ); } @@ -535,19 +535,19 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( priv_ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) + if( priv_ctx->params.type != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( priv_ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) + if( priv_ctx->params.otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - memcpy( &ctx->MBEDTLS_PRIVATE(params), &priv_ctx->MBEDTLS_PRIVATE(params), + memcpy( &ctx->params, &priv_ctx->params, sizeof(mbedtls_lmots_parameters_t) ); ret = calculate_merkle_tree( priv_ctx, tree); @@ -557,9 +557,9 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, } /* Root node is always at position 1, due to 1-based indexing */ - memcpy( ctx->MBEDTLS_PRIVATE(T_1_pub_key), &tree[1], MBEDTLS_LMOTS_N_HASH_LEN ); + memcpy( ctx->T_1_pub_key, &tree[1], MBEDTLS_LMOTS_N_HASH_LEN ); - ctx->MBEDTLS_PRIVATE(have_public_key) = 1; + ctx->have_public_key = 1; return( 0 ); } @@ -572,22 +572,22 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } - if( ! ctx->MBEDTLS_PRIVATE(have_public_key) ) + if( ! ctx->have_public_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } unsigned_int_to_network_bytes( - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type), + ctx->params.type, MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); unsigned_int_to_network_bytes( - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype), + ctx->params.otstype, MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, - ctx->MBEDTLS_PRIVATE(T_1_pub_key), + ctx->T_1_pub_key, MBEDTLS_LMOTS_N_HASH_LEN ); if( key_len != NULL ) { @@ -606,7 +606,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, uint32_t q_leaf_identifier; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ! ctx->MBEDTLS_PRIVATE(have_private_key) ) + if( ! ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -616,30 +616,30 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } - if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) + if( ctx->params.type != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) + if( ctx->params.otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(q_next_usable_key) >= MERKLE_TREE_LEAF_NODE_AM ) + if( ctx->q_next_usable_key >= MERKLE_TREE_LEAF_NODE_AM ) { return( MBEDTLS_ERR_LMS_OUT_OF_PRIVATE_KEYS ); } - q_leaf_identifier = ctx->MBEDTLS_PRIVATE(q_next_usable_key); + q_leaf_identifier = ctx->q_next_usable_key; /* This new value must _always_ be written back to the disk before the * signature is returned. */ - ctx->MBEDTLS_PRIVATE(q_next_usable_key) += 1; + ctx->q_next_usable_key += 1; - ret = mbedtls_lmots_sign( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[q_leaf_identifier], + ret = mbedtls_lmots_sign( &ctx->ots_private_keys[q_leaf_identifier], f_rng, p_rng, msg, msg_size, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, MBEDTLS_LMS_SIG_LEN, NULL ); @@ -648,7 +648,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( ret ); } - unsigned_int_to_network_bytes( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type), + unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_TYPE_OFFSET ); unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET); From 0c88d4e447943d41a661c194863cfa63275d0b57 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 1 Sep 2022 10:48:32 +0100 Subject: [PATCH 0595/1028] Remove superfluous casts in LMS and LMOTS Signed-off-by: Raef Coles --- library/lmots.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 74191ebbca..50559e5948 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -393,9 +393,7 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters return ( ret ); } - ret = public_key_from_hashed_digit_array( params, - ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )y_hashed_digits, - out ); + ret = public_key_from_hashed_digit_array( params, y_hashed_digits, out ); if ( ret ) { return ( ret ); @@ -569,28 +567,22 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ctx == NULL ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - /* Check that a private key is loaded */ if ( !priv_ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ret = hash_digit_array( &priv_ctx->params, - ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(priv_ctx->private_key), - NULL, NULL, y_hashed_digits ); + ret = hash_digit_array( &priv_ctx->params, priv_ctx->private_key, NULL, + NULL, y_hashed_digits ); if ( ret ) { return( ret ); } ret = public_key_from_hashed_digit_array( &priv_ctx->params, - ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )y_hashed_digits, - ctx->public_key ); + y_hashed_digits, + ctx->public_key ); if ( ret ) { return( ret ); @@ -683,7 +675,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, } ret = hash_digit_array( &ctx->params, - ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(ctx->private_key), + ctx->private_key, NULL, tmp_digit_array, tmp_sig ); if ( ret ) { From 891c613f315b5c4b749851860e394ca4cc7b9ca1 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 1 Sep 2022 11:05:48 +0100 Subject: [PATCH 0596/1028] Update LMOTS signature use of temporary variables Document them properly, and move random value to a temporary variable Signed-off-by: Raef Coles --- library/lmots.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 50559e5948..f5a2343a6c 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -640,7 +640,15 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, unsigned char *sig, size_t sig_size, size_t* sig_len ) { unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT]; + /* Create a temporary buffer to prepare the signature in. This allows us to + * finish creating a signature (ensuring the process doesn't fail), and then + * erase the private key **before** writing any data into the sig parameter + * buffer. If data were directly written into the sig buffer, it might leak + * a partial signature on failure, which effectively compromises the private + * key. + */ unsigned char tmp_sig[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN]; + unsigned char tmp_c_random[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if ( msg == NULL && msg_size != 0 ) @@ -659,7 +667,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ret = f_rng( p_rng, sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, MBEDTLS_LMOTS_N_HASH_LEN ); + ret = f_rng( p_rng, tmp_c_random, MBEDTLS_LMOTS_N_HASH_LEN ); if ( ret ) { return( ret ); @@ -667,7 +675,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, ret = create_digit_array_with_checksum( &ctx->params, msg, msg_size, - sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, + tmp_c_random, tmp_digit_array ); if ( ret ) { @@ -693,8 +701,11 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, mbedtls_platform_zeroize(ctx->private_key, sizeof(ctx->private_key)); - memcpy(sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET, tmp_sig, - MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN); + memcpy( sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, tmp_c_random, + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN ); + + memcpy( sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET, tmp_sig, + MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN ); if( sig_len != NULL ) { From ebd35b5b80993221757a9c90a22336ecc6f59c4d Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 1 Sep 2022 11:52:17 +0100 Subject: [PATCH 0597/1028] Rename LMS internal tree-manipulation functions Signed-off-by: Raef Coles --- library/lmots.c | 3 ++- library/lms.c | 26 +++++++++++++------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index f5a2343a6c..d92d385255 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -489,6 +489,8 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } + op = psa_hash_operation_init( ); + ctx->params.type = type; memcpy( ctx->params.I_key_identifier, @@ -503,7 +505,6 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT; i_digit_idx++ ) { - op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) diff --git a/library/lms.c b/library/lms.c index 94f5abe5cc..44d4c79027 100644 --- a/library/lms.c +++ b/library/lms.c @@ -73,10 +73,10 @@ static const unsigned char D_LEAF_CONSTANT_BYTES[D_CONST_LEN] = {0x82, 0x82}; static const unsigned char D_INTERNAL_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; -static int create_merkle_leaf_node( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - unsigned char pub_key[MBEDTLS_LMOTS_N_HASH_LEN], - unsigned int r_node_idx, - unsigned char out[MBEDTLS_LMS_M_NODE_BYTES] ) +static int create_merkle_leaf_value( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + unsigned char pub_key[MBEDTLS_LMOTS_N_HASH_LEN], + unsigned int r_node_idx, + unsigned char out[MBEDTLS_LMS_M_NODE_BYTES] ) { psa_hash_operation_t op; psa_status_t status; @@ -122,11 +122,11 @@ exit: return( ret ); } -static int create_merkle_internal_node( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - const unsigned char left_node[MBEDTLS_LMS_M_NODE_BYTES], - const unsigned char right_node[MBEDTLS_LMS_M_NODE_BYTES], - unsigned int r_node_idx, - unsigned char out[MBEDTLS_LMS_M_NODE_BYTES] ) +static int create_merkle_internal_value( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + const unsigned char left_node[MBEDTLS_LMS_M_NODE_BYTES], + const unsigned char right_node[MBEDTLS_LMS_M_NODE_BYTES], + unsigned int r_node_idx, + unsigned char out[MBEDTLS_LMS_M_NODE_BYTES] ) { psa_hash_operation_t op; psa_status_t status; @@ -190,7 +190,7 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, { r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM + priv_key_idx; - ret = create_merkle_leaf_node( + ret = create_merkle_leaf_value( ctx->params.I_key_identifier, ctx->ots_public_keys[priv_key_idx].public_key, r_node_idx, tree[r_node_idx] ); @@ -205,7 +205,7 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, for( r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM - 1; r_node_idx > 0; r_node_idx-- ) { - ret = create_merkle_internal_node( + ret = create_merkle_internal_value( ctx->params.I_key_identifier, tree[(r_node_idx * 2)], tree[(r_node_idx * 2 + 1)], r_node_idx, tree[r_node_idx] ); if( ret ) @@ -370,7 +370,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( ret ); } - create_merkle_leaf_node( + create_merkle_leaf_value( ctx->params.I_key_identifier, Kc_candidate_ots_pub_key, MERKLE_TREE_INTERNAL_NODE_AM + q_leaf_identifier, Tc_candidate_root_node ); @@ -393,7 +393,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, right_node = ( ( const unsigned char( * )[MBEDTLS_LMS_M_NODE_BYTES] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; } - create_merkle_internal_node( + create_merkle_internal_value( ctx->params.I_key_identifier, left_node, right_node, parent_node_id, Tc_candidate_root_node); From ab4f87413a79b5fb9158530fa7e7b0f8324c0328 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 1 Sep 2022 12:24:31 +0100 Subject: [PATCH 0598/1028] Add MBEDTLS_LMS_PRIVATE define To enable private key operations Signed-off-by: Raef Coles --- include/mbedtls/check_config.h | 5 + include/mbedtls/lms.h | 4 + include/mbedtls/mbedtls_config.h | 16 ++- library/lmots.c | 3 + library/lmots.h | 5 + library/lms.c | 139 +++++++++++++------------ tests/suites/test_suite_lmots.function | 2 +- tests/suites/test_suite_lms.function | 2 +- 8 files changed, 104 insertions(+), 72 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 2921278b32..570d9dba27 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -358,6 +358,11 @@ #error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C" #endif +#if defined(MBEDTLS_LMS_PRIVATE) && \ + ( !defined(MBEDTLS_LMS_C) ) +#error "MBEDTLS_LMS_PRIVATE requires MBEDTLS_LMS_C" +#endif + #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \ ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) ) #error "MBEDTLS_MEMORY_BUFFER_ALLOC_C defined, but not all prerequisites" diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index c463b2abb7..65b1b7e0ec 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -106,6 +106,7 @@ typedef struct { } mbedtls_lms_public_t; +#ifdef MBEDTLS_LMS_PRIVATE /** LMS private context structure. * * A LMS private key is a set of LMOTS private keys, an index to the next usable @@ -133,6 +134,7 @@ typedef struct { unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lms_private_t; +#endif /* MBEDTLS_LMS_PRIVATE */ /** * \brief This function initializes an LMS public context @@ -196,6 +198,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, const unsigned char *msg, size_t msg_size, const unsigned char *sig, size_t sig_size ); +#ifdef MBEDTLS_LMS_PRIVATE /** * \brief This function initializes an LMS private context * @@ -328,6 +331,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), void* p_rng, unsigned char *msg, unsigned int msg_size, unsigned char *sig, size_t sig_size, size_t *sig_len); +#endif /* MBEDTLS_LMS_PRIVATE */ #ifdef __cplusplus } diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 8c833b1cf9..c0caf75623 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2469,12 +2469,24 @@ * Module: library/lms.c * Caller: * - * Requires: MBEDTLS_MD_C + * Requires: MBEDTLS_PSA_CRYPTO_C * - * Uncomment to enable the LMS signature algorithm. + * Uncomment to enable the LMS verification algorithm and public key operations. */ #define MBEDTLS_LMS_C +/** + * \def MBEDTLS_LMS_PRIVATE + * + * Enable LMS private-key operations and signing code. Functions enabled by this + * option are experimental, and should not be used in production. + * + * Requires: MBEDTLS_LMS_C + * + * Uncomment to enable the LMS signature algorithm and private key operations. + */ +// #define MBEDTLS_LMS_PRIVATE + /** * \def MBEDTLS_NIST_KW_C * diff --git a/library/lmots.c b/library/lmots.c index d92d385255..bf6644935b 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -455,6 +455,8 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, return( 0 ); } +#ifdef MBEDTLS_LMS_PRIVATE + void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ) { mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_private_t ) ) ; @@ -716,4 +718,5 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( 0 ); } +#endif /* MBEDTLS_LMS_PRIVATE */ #endif /* MBEDTLS_LMS_C */ diff --git a/library/lmots.h b/library/lmots.h index ca7d4bf344..e784bf586e 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -101,6 +101,7 @@ typedef struct { Boolean values only. */ } mbedtls_lmots_public_t; +#ifdef MBEDTLS_LMS_PRIVATE /** LMOTS private context structure. * * A LMOTS private key is one hash output for each of digit of the digest + @@ -124,6 +125,7 @@ typedef struct { unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lmots_private_t; +#endif /* MBEDTLS_LMS_PRIVATE */ /** * \brief This function converts an unsigned int into a @@ -256,6 +258,8 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, size_t msg_size, const unsigned char *sig, size_t sig_size ); +#ifdef MBEDTLS_LMS_PRIVATE + /** * \brief This function initializes a private LMOTS context * @@ -375,6 +379,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, void *p_rng, const unsigned char *msg, size_t msg_size, unsigned char *sig, size_t sig_size, size_t* sig_len ); +#endif /* MBEDTLS_LMS_PRIVATE */ #ifdef __cplusplus } diff --git a/library/lms.c b/library/lms.c index 44d4c79027..cb56cb31c6 100644 --- a/library/lms.c +++ b/library/lms.c @@ -177,74 +177,6 @@ exit: return ret; } -static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, - unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES] ) -{ - unsigned int priv_key_idx; - unsigned int r_node_idx; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - - /* First create the leaf nodes, in ascending order */ - for( priv_key_idx = 0; priv_key_idx < MERKLE_TREE_INTERNAL_NODE_AM; - priv_key_idx++ ) - { - r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM + priv_key_idx; - - ret = create_merkle_leaf_value( - ctx->params.I_key_identifier, - ctx->ots_public_keys[priv_key_idx].public_key, - r_node_idx, tree[r_node_idx] ); - if( ret ) - { - return( ret ); - } - } - - /* Then the internal nodes, in reverse order so that we can guarantee the - * parent has been created */ - for( r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM - 1; r_node_idx > 0; - r_node_idx-- ) - { - ret = create_merkle_internal_value( - ctx->params.I_key_identifier, - tree[(r_node_idx * 2)], tree[(r_node_idx * 2 + 1)], r_node_idx, tree[r_node_idx] ); - if( ret ) - { - return( ret ); - } - } - - return( 0 ); -} - -static int get_merkle_path( mbedtls_lms_private_t *ctx, - unsigned int leaf_node_id, - unsigned char path[MBEDTLS_LMS_H_TREE_HEIGHT][MBEDTLS_LMS_M_NODE_BYTES] ) -{ - unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES]; - unsigned int curr_node_id = leaf_node_id; - unsigned int adjacent_node_id; - unsigned int height; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - - ret = calculate_merkle_tree( ctx, tree); - if( ret ) - { - return( ret ); - } - - for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT; height++ ) - { - adjacent_node_id = curr_node_id ^ 1; - - memcpy( &path[height], &tree[adjacent_node_id], MBEDTLS_LMOTS_N_HASH_LEN ); - - curr_node_id >>=1; - } - - return( 0 ); -} - void mbedtls_lms_init_public( mbedtls_lms_public_t *ctx ) { mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ) ; @@ -409,6 +341,76 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( 0 ); } +#ifdef MBEDTLS_LMS_PRIVATE + +static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, + unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES] ) +{ + unsigned int priv_key_idx; + unsigned int r_node_idx; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + /* First create the leaf nodes, in ascending order */ + for( priv_key_idx = 0; priv_key_idx < MERKLE_TREE_INTERNAL_NODE_AM; + priv_key_idx++ ) + { + r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM + priv_key_idx; + + ret = create_merkle_leaf_value( + ctx->params.I_key_identifier, + ctx->ots_public_keys[priv_key_idx].public_key, + r_node_idx, tree[r_node_idx] ); + if( ret ) + { + return( ret ); + } + } + + /* Then the internal nodes, in reverse order so that we can guarantee the + * parent has been created */ + for( r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM - 1; r_node_idx > 0; + r_node_idx-- ) + { + ret = create_merkle_internal_value( + ctx->params.I_key_identifier, + tree[(r_node_idx * 2)], tree[(r_node_idx * 2 + 1)], r_node_idx, tree[r_node_idx] ); + if( ret ) + { + return( ret ); + } + } + + return( 0 ); +} + +static int get_merkle_path( mbedtls_lms_private_t *ctx, + unsigned int leaf_node_id, + unsigned char path[MBEDTLS_LMS_H_TREE_HEIGHT][MBEDTLS_LMS_M_NODE_BYTES] ) +{ + unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES]; + unsigned int curr_node_id = leaf_node_id; + unsigned int adjacent_node_id; + unsigned int height; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + ret = calculate_merkle_tree( ctx, tree); + if( ret ) + { + return( ret ); + } + + for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT; height++ ) + { + adjacent_node_id = curr_node_id ^ 1; + + memcpy( &path[height], &tree[adjacent_node_id], MBEDTLS_LMOTS_N_HASH_LEN ); + + curr_node_id >>=1; + } + + return( 0 ); +} + void mbedtls_lms_init_private( mbedtls_lms_private_t *ctx ) { mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ) ; @@ -668,4 +670,5 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( 0 ); } +#endif /* MBEDTLS_LMS_PRIVATE */ #endif /* MBEDTLS_LMS_C */ diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 4492daaae1..73c9aff096 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -8,7 +8,7 @@ /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_CTR_DRBG_C + * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_CTR_DRBG_C * END_DEPENDENCIES */ diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 64ea900f1e..22c8eb5a12 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -6,7 +6,7 @@ /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_CTR_DRBG_C + * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_CTR_DRBG_C * END_DEPENDENCIES */ From e9479a02647cab34520390900e62ea931c8f5cec Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 1 Sep 2022 16:06:35 +0100 Subject: [PATCH 0599/1028] Update LMS API to support multiple parameter sets Parameterise macros to allow variation of sizes Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 27 +++- library/lmots.c | 133 ++++++++++-------- library/lmots.h | 29 ++-- library/lms.c | 181 ++++++++++++++----------- tests/suites/test_suite_lmots.function | 9 +- tests/suites/test_suite_lms.function | 8 +- 6 files changed, 226 insertions(+), 161 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 65b1b7e0ec..becfb89e31 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -40,15 +40,28 @@ #define MBEDTLS_ERR_LMS_ALLOC_FAILED -0x0017 /**< LMS failed to allocate space for a private key */ #define MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL -0x0019 /**< Input/output buffer is too small to contain requited data */ -#define MBEDTLS_LMS_M_NODE_BYTES (32) /* The length of a hash output, 32 for SHA256 */ #define MBEDTLS_LMS_TYPE_LEN (4) -#define MBEDTLS_LMS_H_TREE_HEIGHT (10u) +#define MBEDTLS_LMS_H_TREE_HEIGHT(type) (type == MBEDTLS_LMS_SHA256_M32_H10 ? 10u : 0) -#define MBEDTLS_LMS_SIG_LEN (MBEDTLS_LMOTS_Q_LEAF_ID_LEN + MBEDTLS_LMOTS_SIG_LEN + \ - MBEDTLS_LMS_TYPE_LEN + MBEDTLS_LMS_H_TREE_HEIGHT * MBEDTLS_LMS_M_NODE_BYTES) +/* The length of a hash output, Currently only imlemented for SHA256. + * Max is 32 bytes. + */ +/* The length of a hash output, Currently only imlemented for SHA256. + * Max is 32 bytes. + */ +#define MBEDTLS_LMS_M_NODE_BYTES(type) (type == MBEDTLS_LMS_SHA256_M32_H10 ? 32 : 0) +#define MBEDTLS_LMS_M_NODE_BYTES_MAX 32 -#define MBEDTLS_LMS_PUBLIC_KEY_LEN (MBEDTLS_LMS_TYPE_LEN + MBEDTLS_LMOTS_TYPE_LEN + \ - MBEDTLS_LMOTS_I_KEY_ID_LEN + MBEDTLS_LMS_M_NODE_BYTES) +#define MBEDTLS_LMS_SIG_LEN(type, otstype) (MBEDTLS_LMOTS_Q_LEAF_ID_LEN + \ + MBEDTLS_LMOTS_SIG_LEN(otstype) + \ + MBEDTLS_LMS_TYPE_LEN + \ + (MBEDTLS_LMS_H_TREE_HEIGHT(type) * \ + MBEDTLS_LMS_M_NODE_BYTES(type))) + +#define MBEDTLS_LMS_PUBLIC_KEY_LEN(type) (MBEDTLS_LMS_TYPE_LEN + \ + MBEDTLS_LMOTS_TYPE_LEN + \ + MBEDTLS_LMOTS_I_KEY_ID_LEN + \ + MBEDTLS_LMS_M_NODE_BYTES(type)) #ifdef __cplusplus @@ -99,7 +112,7 @@ typedef struct { */ typedef struct { mbedtls_lms_parameters_t MBEDTLS_PRIVATE(params); - unsigned char MBEDTLS_PRIVATE(T_1_pub_key)[MBEDTLS_LMS_M_NODE_BYTES]; /*!< The public key, in + unsigned char MBEDTLS_PRIVATE(T_1_pub_key)[MBEDTLS_LMS_M_NODE_BYTES_MAX]; /*!< The public key, in the form of the merkle tree root node. */ unsigned char MBEDTLS_PRIVATE(have_public_key); /*!< Whether the context contains a public key. Boolean values only. */ diff --git a/library/lmots.c b/library/lmots.c index bf6644935b..41ca0422bf 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -45,7 +45,7 @@ #include "psa/crypto.h" #define MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET (MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN) +#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(type) (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type)) #define MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET (0) #define MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) @@ -60,6 +60,9 @@ #define J_HASH_IDX_LEN (1) #define D_CONST_LEN (2) +/* Currently only defined for SHA256, 32 is the max hash output size */ +#define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN_MAX (MBEDTLS_LMOTS_N_HASH_LEN_MAX) + #define DIGIT_MAX_VALUE ((1u << W_WINTERNITZ_PARAMETER) - 1u) #define D_CONST_LEN (2) @@ -87,12 +90,13 @@ unsigned int network_bytes_to_unsigned_int(size_t len, const unsigned char *byte return val; } -static unsigned short lmots_checksum_calculate( const unsigned char* digest ) +static unsigned short lmots_checksum_calculate( const mbedtls_lmots_parameters_t *params, + const unsigned char* digest ) { size_t idx; unsigned sum = 0; - for ( idx = 0; idx < MBEDTLS_LMOTS_N_HASH_LEN; idx++ ) + for ( idx = 0; idx < MBEDTLS_LMOTS_N_HASH_LEN(params->type); idx++ ) { sum += DIGIT_MAX_VALUE - digest[idx]; } @@ -103,8 +107,8 @@ static unsigned short lmots_checksum_calculate( const unsigned char* digest ) static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *params, const unsigned char *msg, size_t msg_len, - const unsigned char C_random_value[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN], - unsigned char out[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT] ) + const unsigned char *C_random_value, + unsigned char *out ) { psa_hash_operation_t op; psa_status_t status; @@ -135,7 +139,8 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p if ( ret != 0 ) goto exit; - status = psa_hash_update( &op, C_random_value, MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN ); + status = psa_hash_update( &op, C_random_value, + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(params->type) ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; @@ -145,14 +150,16 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p if ( ret != 0 ) goto exit; - status = psa_hash_finish( &op, out, MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT, + status = psa_hash_finish( &op, out, + MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; - checksum = lmots_checksum_calculate( out ); - unsigned_int_to_network_bytes( checksum, CHECKSUM_LEN, out + MBEDTLS_LMOTS_N_HASH_LEN ); + checksum = lmots_checksum_calculate( params, out ); + unsigned_int_to_network_bytes( checksum, CHECKSUM_LEN, + out + MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); exit: psa_hash_abort( &op ); @@ -161,10 +168,10 @@ exit: } static int hash_digit_array( const mbedtls_lmots_parameters_t *params, - const unsigned char x_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN], + const unsigned char *x_digit_array, const unsigned char *hash_idx_min_values, const unsigned char *hash_idx_max_values, - unsigned char output[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN] ) + unsigned char *output ) { unsigned char i_digit_idx; unsigned char j_hash_idx; @@ -178,15 +185,18 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, psa_hash_operation_t op; psa_status_t status; size_t output_hash_len; - unsigned char tmp_hash[MBEDTLS_LMOTS_N_HASH_LEN]; + unsigned char tmp_hash[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; op = psa_hash_operation_init(); - for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT; i_digit_idx++ ) + for ( i_digit_idx = 0; + i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type); + i_digit_idx++ ) { - memcpy( tmp_hash, &x_digit_array[i_digit_idx], MBEDTLS_LMOTS_N_HASH_LEN ); + memcpy( tmp_hash, &x_digit_array[i_digit_idx * MBEDTLS_LMOTS_N_HASH_LEN(params->type)], + MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); j_hash_idx_min = hash_idx_min_values != NULL ? hash_idx_min_values[i_digit_idx] : 0; j_hash_idx_max = hash_idx_max_values != NULL ? hash_idx_max_values[i_digit_idx] : DIGIT_MAX_VALUE; @@ -224,7 +234,8 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, if ( ret != 0 ) goto exit; - status = psa_hash_update( &op, tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, tmp_hash, + MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; @@ -237,7 +248,8 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, psa_hash_abort( &op ); } - memcpy( &output[i_digit_idx], tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); + memcpy( &output[i_digit_idx * MBEDTLS_LMOTS_N_HASH_LEN(params->type)], tmp_hash, + MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); } exit: @@ -253,7 +265,7 @@ exit: } static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t *params, - const unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN], + const unsigned char *y_hashed_digits, unsigned char *pub_key ) { psa_hash_operation_t op; @@ -285,13 +297,15 @@ static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t if ( ret != 0 ) goto exit; - status = psa_hash_update( &op, ( unsigned char * )y_hashed_digits, - MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, y_hashed_digits, + MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type) * + MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; - status = psa_hash_finish( &op, pub_key, 32, &output_hash_len ); + status = psa_hash_finish( &op, pub_key, MBEDTLS_LMOTS_N_HASH_LEN(params->type), + &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); exit: @@ -330,15 +344,15 @@ void mbedtls_lmots_free_public( mbedtls_lmots_public_t *ctx ) int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, const unsigned char *key, size_t key_len ) { - if ( key_len < MBEDTLS_LMOTS_PUBLIC_KEY_LEN ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - ctx->params.type = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + if ( key_len < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + memcpy( ctx->params.I_key_identifier, key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, MBEDTLS_LMOTS_I_KEY_ID_LEN ); @@ -347,7 +361,7 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, memcpy( ctx->public_key, key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, - MBEDTLS_LMOTS_N_HASH_LEN ); + MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); ctx->have_public_key = 1; @@ -363,8 +377,8 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters size_t out_size, size_t *out_len) { - unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT]; - unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN]; + unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX]; + unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if ( msg == NULL && msg_size != 0 ) @@ -372,7 +386,8 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters return ( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if ( sig_size != MBEDTLS_LMOTS_SIG_LEN || out_size < MBEDTLS_LMOTS_N_HASH_LEN ) + if ( sig_size != MBEDTLS_LMOTS_SIG_LEN(params->type) || + out_size < MBEDTLS_LMOTS_N_HASH_LEN(params->type) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -386,14 +401,16 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters } ret = hash_digit_array( params, - ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET), - tmp_digit_array, NULL, y_hashed_digits ); + sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(params->type), + tmp_digit_array, NULL, (unsigned char *)y_hashed_digits ); if ( ret ) { return ( ret ); } - ret = public_key_from_hashed_digit_array( params, y_hashed_digits, out ); + ret = public_key_from_hashed_digit_array( params, + (unsigned char *)y_hashed_digits, + out ); if ( ret ) { return ( ret ); @@ -401,7 +418,7 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters if ( out_len != NULL ) { - *out_len = MBEDTLS_LMOTS_N_HASH_LEN; + *out_len = MBEDTLS_LMOTS_N_HASH_LEN(params->type); } return( 0 ); @@ -411,7 +428,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, size_t msg_size, const unsigned char *sig, size_t sig_size ) { - unsigned char Kc_public_key_candidate[MBEDTLS_LMOTS_N_HASH_LEN]; + unsigned char Kc_public_key_candidate[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if ( msg == NULL && msg_size != 0 ) @@ -439,7 +456,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, ret = mbedtls_lmots_calculate_public_key_candidate( &ctx->params, msg, msg_size, sig, sig_size, Kc_public_key_candidate, - MBEDTLS_LMOTS_N_HASH_LEN, + MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type), NULL); if ( ret ) { @@ -505,7 +522,9 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, unsigned_int_to_network_bytes( 0xFF, sizeof( const_bytes ), const_bytes ); - for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT; i_digit_idx++ ) + for ( i_digit_idx = 0; + i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(ctx->params.type); + i_digit_idx++ ) { status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); @@ -544,7 +563,8 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, status = psa_hash_finish( &op, ctx->private_key[i_digit_idx], - 32, &output_hash_len ); + MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type), + &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if ( ret ) goto exit; @@ -567,7 +587,7 @@ exit: int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, mbedtls_lmots_private_t *priv_ctx) { - unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN]; + unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* Check that a private key is loaded */ @@ -576,15 +596,16 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ret = hash_digit_array( &priv_ctx->params, priv_ctx->private_key, NULL, - NULL, y_hashed_digits ); + ret = hash_digit_array( &priv_ctx->params, + (unsigned char *)priv_ctx->private_key, NULL, + NULL, (unsigned char *)y_hashed_digits ); if ( ret ) { return( ret ); } ret = public_key_from_hashed_digit_array( &priv_ctx->params, - y_hashed_digits, + (unsigned char *)y_hashed_digits, ctx->public_key ); if ( ret ) { @@ -604,7 +625,7 @@ int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, unsigned char *key, size_t key_size, size_t *key_len ) { - if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN ) + if( key_size < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) { return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } @@ -627,11 +648,11 @@ int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, MBEDTLS_LMOTS_Q_LEAF_ID_LEN); memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, ctx->public_key, - MBEDTLS_LMOTS_N_HASH_LEN ); + MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); if( key_len != NULL ) { - *key_len = MBEDTLS_LMS_PUBLIC_KEY_LEN; + *key_len = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type); } return( 0 ); @@ -642,7 +663,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, void *p_rng, const unsigned char *msg, size_t msg_size, unsigned char *sig, size_t sig_size, size_t* sig_len ) { - unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT]; + unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX]; /* Create a temporary buffer to prepare the signature in. This allows us to * finish creating a signature (ensuring the process doesn't fail), and then * erase the private key **before** writing any data into the sig parameter @@ -650,8 +671,8 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, * a partial signature on failure, which effectively compromises the private * key. */ - unsigned char tmp_sig[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN]; - unsigned char tmp_c_random[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN]; + unsigned char tmp_sig[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; + unsigned char tmp_c_random[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if ( msg == NULL && msg_size != 0 ) @@ -659,7 +680,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( sig_size < MBEDTLS_LMOTS_SIG_LEN ) + if( sig_size < MBEDTLS_LMOTS_SIG_LEN(ctx->params.type) ) { return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } @@ -670,7 +691,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ret = f_rng( p_rng, tmp_c_random, MBEDTLS_LMOTS_N_HASH_LEN ); + ret = f_rng( p_rng, tmp_c_random, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); if ( ret ) { return( ret ); @@ -685,9 +706,8 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( ret ); } - ret = hash_digit_array( &ctx->params, - ctx->private_key, - NULL, tmp_digit_array, tmp_sig ); + ret = hash_digit_array( &ctx->params, (unsigned char *)ctx->private_key, + NULL, tmp_digit_array, (unsigned char *)tmp_sig ); if ( ret ) { return( ret ); @@ -705,14 +725,15 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, sizeof(ctx->private_key)); memcpy( sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, tmp_c_random, - MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN ); + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(ctx->params.type) ); - memcpy( sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET, tmp_sig, - MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN ); + memcpy( sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(ctx->params.type), tmp_sig, + MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(ctx->params.type) + * MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); if( sig_len != NULL ) { - *sig_len = MBEDTLS_LMS_SIG_LEN; + *sig_len = MBEDTLS_LMOTS_SIG_LEN(ctx->params.type); } return( 0 ); diff --git a/library/lmots.h b/library/lmots.h index e784bf586e..6ada0bad64 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -33,18 +33,25 @@ #include #include -#define MBEDTLS_LMOTS_N_HASH_LEN (32) -#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT (34) -#define MBEDTLS_LMOTS_TYPE_LEN (4) -#define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN (MBEDTLS_LMOTS_N_HASH_LEN) -#define MBEDTLS_LMOTS_I_KEY_ID_LEN (16) -#define MBEDTLS_LMOTS_Q_LEAF_ID_LEN (4) +/* Currently only defined for SHA256, 32 is the max hash output size */ +#define MBEDTLS_LMOTS_N_HASH_LEN_MAX (32u) +#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX (34u) +#define MBEDTLS_LMOTS_N_HASH_LEN(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 32u : 0) +#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 34u : 0) +#define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) (MBEDTLS_LMOTS_N_HASH_LEN(type)) +#define MBEDTLS_LMOTS_TYPE_LEN (4u) +#define MBEDTLS_LMOTS_I_KEY_ID_LEN (16u) +#define MBEDTLS_LMOTS_Q_LEAF_ID_LEN (4u) -#define MBEDTLS_LMOTS_SIG_LEN (MBEDTLS_LMOTS_TYPE_LEN + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN + \ - (MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN)) +#define MBEDTLS_LMOTS_SIG_LEN(type) (MBEDTLS_LMOTS_TYPE_LEN + \ + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) + \ + (MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) * \ + MBEDTLS_LMOTS_N_HASH_LEN(type))) -#define MBEDTLS_LMOTS_PUBLIC_KEY_LEN (MBEDTLS_LMOTS_TYPE_LEN + MBEDTLS_LMOTS_I_KEY_ID_LEN + \ - MBEDTLS_LMOTS_Q_LEAF_ID_LEN + MBEDTLS_LMOTS_N_HASH_LEN) +#define MBEDTLS_LMOTS_PUBLIC_KEY_LEN(type) (MBEDTLS_LMOTS_TYPE_LEN + \ + MBEDTLS_LMOTS_I_KEY_ID_LEN + \ + MBEDTLS_LMOTS_Q_LEAF_ID_LEN + \ + MBEDTLS_LMOTS_N_HASH_LEN(type)) #define MBEDTLS_LMOTS_SIG_TYPE_OFFSET (0) @@ -121,7 +128,7 @@ typedef struct { */ typedef struct { mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); - unsigned char MBEDTLS_PRIVATE(private_key)[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][32]; + unsigned char MBEDTLS_PRIVATE(private_key)[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][32]; unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lmots_private_t; diff --git a/library/lms.c b/library/lms.c index cb56cb31c6..71921f7cb5 100644 --- a/library/lms.c +++ b/library/lms.c @@ -54,10 +54,10 @@ #define mbedtls_free free #endif -#define MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET (0) -#define MBEDTLS_LMS_SIG_OTS_SIG_OFFSET (MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) -#define MBEDTLS_LMS_SIG_TYPE_OFFSET (MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_LEN) -#define MBEDTLS_LMS_SIG_PATH_OFFSET (MBEDTLS_LMS_SIG_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) +#define MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET (0) +#define MBEDTLS_LMS_SIG_OTS_SIG_OFFSET (MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) +#define MBEDTLS_LMS_SIG_TYPE_OFFSET(otstype) (MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_LEN(otstype)) +#define MBEDTLS_LMS_SIG_PATH_OFFSET(otstype) (MBEDTLS_LMS_SIG_TYPE_OFFSET(otstype) + MBEDTLS_LMS_TYPE_LEN) #define MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET (0) #define MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) @@ -65,18 +65,21 @@ #define MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) -#define MERKLE_TREE_NODE_AM (1u << (MBEDTLS_LMS_H_TREE_HEIGHT + 1u)) -#define MERKLE_TREE_LEAF_NODE_AM (1u << MBEDTLS_LMS_H_TREE_HEIGHT) -#define MERKLE_TREE_INTERNAL_NODE_AM (1u << MBEDTLS_LMS_H_TREE_HEIGHT) +/* Currently only support H=10 */ +#define MBEDTLS_LMS_H_TREE_HEIGHT_MAX 10 +#define MERKLE_TREE_NODE_AM_MAX (1u << (MBEDTLS_LMS_H_TREE_HEIGHT_MAX + 1u)) +#define MERKLE_TREE_NODE_AM(type) (1u << (MBEDTLS_LMS_H_TREE_HEIGHT(type) + 1u)) +#define MERKLE_TREE_LEAF_NODE_AM(type) (1u << MBEDTLS_LMS_H_TREE_HEIGHT(type)) +#define MERKLE_TREE_INTERNAL_NODE_AM(type) (1u << MBEDTLS_LMS_H_TREE_HEIGHT(type)) #define D_CONST_LEN (2) static const unsigned char D_LEAF_CONSTANT_BYTES[D_CONST_LEN] = {0x82, 0x82}; static const unsigned char D_INTERNAL_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; -static int create_merkle_leaf_value( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - unsigned char pub_key[MBEDTLS_LMOTS_N_HASH_LEN], +static int create_merkle_leaf_value( const mbedtls_lms_parameters_t *params, + unsigned char *pub_key, unsigned int r_node_idx, - unsigned char out[MBEDTLS_LMS_M_NODE_BYTES] ) + unsigned char *out ) { psa_hash_operation_t op; psa_status_t status; @@ -90,7 +93,8 @@ static int create_merkle_leaf_value( const unsigned char I_key_identifier[MBEDTL if ( ret != 0 ) goto exit; - status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, params->I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; @@ -106,12 +110,14 @@ static int create_merkle_leaf_value( const unsigned char I_key_identifier[MBEDTL if( ret ) goto exit; - status = psa_hash_update( &op, pub_key, MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, pub_key, + MBEDTLS_LMOTS_N_HASH_LEN(params->otstype) ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; - status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES, &output_hash_len); + status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), + &output_hash_len); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; @@ -122,11 +128,11 @@ exit: return( ret ); } -static int create_merkle_internal_value( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - const unsigned char left_node[MBEDTLS_LMS_M_NODE_BYTES], - const unsigned char right_node[MBEDTLS_LMS_M_NODE_BYTES], +static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, + const unsigned char *left_node, + const unsigned char *right_node, unsigned int r_node_idx, - unsigned char out[MBEDTLS_LMS_M_NODE_BYTES] ) + unsigned char *out ) { psa_hash_operation_t op; psa_status_t status; @@ -140,7 +146,8 @@ static int create_merkle_internal_value( const unsigned char I_key_identifier[MB if ( ret != 0 ) goto exit; - status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, params->I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; @@ -156,17 +163,20 @@ static int create_merkle_internal_value( const unsigned char I_key_identifier[MB if( ret ) goto exit; - status = psa_hash_update( &op, left_node, MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, left_node, + MBEDTLS_LMS_M_NODE_BYTES(params->type) ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; - status = psa_hash_update( &op, right_node, MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, right_node, + MBEDTLS_LMS_M_NODE_BYTES(params->type) ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; - ret = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES, &output_hash_len); + ret = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), + &output_hash_len); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; @@ -193,7 +203,7 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, mbedtls_lms_algorithm_type_t type; mbedtls_lmots_algorithm_type_t otstype; - if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN ) + if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) { return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } @@ -217,7 +227,7 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, MBEDTLS_LMOTS_I_KEY_ID_LEN ); memcpy( ctx->T_1_pub_key, key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, - MBEDTLS_LMOTS_N_HASH_LEN ); + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); ctx->have_public_key = 1; @@ -229,8 +239,8 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, const unsigned char *sig, size_t sig_size ) { unsigned int q_leaf_identifier; - unsigned char Kc_candidate_ots_pub_key[MBEDTLS_LMOTS_N_HASH_LEN]; - unsigned char Tc_candidate_root_node[MBEDTLS_LMS_M_NODE_BYTES]; + unsigned char Kc_candidate_ots_pub_key[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; + unsigned char Tc_candidate_root_node[MBEDTLS_LMS_M_NODE_BYTES_MAX]; unsigned int height; unsigned int curr_node_id; unsigned int parent_node_id; @@ -244,7 +254,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( sig_size != MBEDTLS_LMS_SIG_LEN ) + if( sig_size != MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -261,15 +271,16 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_TYPE_OFFSET) != MBEDTLS_LMS_SHA256_M32_H10 ) + if( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET) + != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } - if( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET) - != MBEDTLS_LMOTS_SHA256_N32_W8 ) + if( network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, + sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype)) + != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } @@ -278,7 +289,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, q_leaf_identifier = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); - if( q_leaf_identifier >= MERKLE_TREE_LEAF_NODE_AM ) + if( q_leaf_identifier >= MERKLE_TREE_LEAF_NODE_AM(ctx->params.type) ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } @@ -293,7 +304,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, ret = mbedtls_lmots_calculate_public_key_candidate( &ots_params, msg, msg_size, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, - MBEDTLS_LMOTS_SIG_LEN, + MBEDTLS_LMOTS_SIG_LEN(ctx->params.otstype), Kc_candidate_ots_pub_key, sizeof(Kc_candidate_ots_pub_key), NULL ); @@ -303,37 +314,40 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, } create_merkle_leaf_value( - ctx->params.I_key_identifier, - Kc_candidate_ots_pub_key, MERKLE_TREE_INTERNAL_NODE_AM + q_leaf_identifier, + &ctx->params, + Kc_candidate_ots_pub_key, + MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, Tc_candidate_root_node ); - curr_node_id = MERKLE_TREE_INTERNAL_NODE_AM + q_leaf_identifier; + curr_node_id = MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier; - for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT; height++ ) + for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT(ctx->params.type); + height++ ) { parent_node_id = curr_node_id / 2; /* Left/right node ordering matters for the hash */ if( curr_node_id & 1 ) { - left_node = ( ( const unsigned char( * )[MBEDTLS_LMS_M_NODE_BYTES] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; + left_node = sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) + + height * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type); right_node = Tc_candidate_root_node; } else { left_node = Tc_candidate_root_node; - right_node = ( ( const unsigned char( * )[MBEDTLS_LMS_M_NODE_BYTES] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; + right_node = sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) + + height * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type); } - create_merkle_internal_value( - ctx->params.I_key_identifier, - left_node, right_node, parent_node_id, Tc_candidate_root_node); + create_merkle_internal_value( &ctx->params, left_node, right_node, + parent_node_id, Tc_candidate_root_node); curr_node_id /= 2; } if( memcmp( Tc_candidate_root_node, ctx->T_1_pub_key, - MBEDTLS_LMOTS_N_HASH_LEN) ) + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)) ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } @@ -344,22 +358,22 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, #ifdef MBEDTLS_LMS_PRIVATE static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, - unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES] ) + unsigned char *tree ) { unsigned int priv_key_idx; unsigned int r_node_idx; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* First create the leaf nodes, in ascending order */ - for( priv_key_idx = 0; priv_key_idx < MERKLE_TREE_INTERNAL_NODE_AM; + for( priv_key_idx = 0; + priv_key_idx < MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type); priv_key_idx++ ) { - r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM + priv_key_idx; + r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + priv_key_idx; - ret = create_merkle_leaf_value( - ctx->params.I_key_identifier, - ctx->ots_public_keys[priv_key_idx].public_key, - r_node_idx, tree[r_node_idx] ); + ret = create_merkle_leaf_value( &ctx->params, + ctx->ots_public_keys[priv_key_idx].public_key, r_node_idx, + &tree[r_node_idx * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)] ); if( ret ) { return( ret ); @@ -368,12 +382,14 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, /* Then the internal nodes, in reverse order so that we can guarantee the * parent has been created */ - for( r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM - 1; r_node_idx > 0; + for( r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) - 1; + r_node_idx > 0; r_node_idx-- ) { - ret = create_merkle_internal_value( - ctx->params.I_key_identifier, - tree[(r_node_idx * 2)], tree[(r_node_idx * 2 + 1)], r_node_idx, tree[r_node_idx] ); + ret = create_merkle_internal_value( &ctx->params, + &tree[(r_node_idx * 2) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], + &tree[(r_node_idx * 2 + 1) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], + r_node_idx, &tree[r_node_idx * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)] ); if( ret ) { return( ret ); @@ -385,25 +401,28 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, static int get_merkle_path( mbedtls_lms_private_t *ctx, unsigned int leaf_node_id, - unsigned char path[MBEDTLS_LMS_H_TREE_HEIGHT][MBEDTLS_LMS_M_NODE_BYTES] ) + unsigned char *path ) { - unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES]; + unsigned char tree[MERKLE_TREE_NODE_AM_MAX][MBEDTLS_LMS_M_NODE_BYTES_MAX]; unsigned int curr_node_id = leaf_node_id; unsigned int adjacent_node_id; unsigned int height; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = calculate_merkle_tree( ctx, tree); + ret = calculate_merkle_tree( ctx, (unsigned char *)tree); if( ret ) { return( ret ); } - for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT; height++ ) + for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT(ctx->params.type); + height++ ) { adjacent_node_id = curr_node_id ^ 1; - memcpy( &path[height], &tree[adjacent_node_id], MBEDTLS_LMOTS_N_HASH_LEN ); + memcpy( &path[height * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], + &tree[adjacent_node_id], + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); curr_node_id >>=1; } @@ -422,7 +441,7 @@ void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ) if( ctx->have_private_key ) { - for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) { mbedtls_lmots_free_private( &ctx->ots_private_keys[idx] ); mbedtls_lmots_free_public( &ctx->ots_public_keys[idx] ); @@ -469,30 +488,30 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - ctx->ots_private_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM, - sizeof( mbedtls_lmots_private_t)); + ctx->ots_private_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + sizeof( mbedtls_lmots_private_t)); if( ctx->ots_private_keys == NULL ) { ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; goto exit; } - ctx->ots_public_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM, - sizeof( mbedtls_lmots_public_t)); + ctx->ots_public_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + sizeof( mbedtls_lmots_public_t)); if( ctx->ots_public_keys == NULL ) { ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; goto exit; } - for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) { mbedtls_lmots_init_private( &ctx->ots_private_keys[idx] ); mbedtls_lmots_init_public( &ctx->ots_public_keys[idx] ); } - for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) { ret = mbedtls_lmots_generate_private_key( &ctx->ots_private_keys[idx], otstype, @@ -529,7 +548,7 @@ exit: int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, mbedtls_lms_private_t *priv_ctx ) { - unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES]; + unsigned char tree[MERKLE_TREE_NODE_AM_MAX][MBEDTLS_LMS_M_NODE_BYTES_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if( ! priv_ctx->MBEDTLS_PRIVATE( have_private_key ) ) @@ -552,14 +571,15 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, memcpy( &ctx->params, &priv_ctx->params, sizeof(mbedtls_lmots_parameters_t) ); - ret = calculate_merkle_tree( priv_ctx, tree); + ret = calculate_merkle_tree( priv_ctx, (unsigned char *)tree); if( ret ) { return( ret ); } /* Root node is always at position 1, due to 1-based indexing */ - memcpy( ctx->T_1_pub_key, &tree[1], MBEDTLS_LMOTS_N_HASH_LEN ); + memcpy( ctx->T_1_pub_key, &tree[1], + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)); ctx->have_public_key = 1; @@ -570,7 +590,7 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key, size_t key_size, size_t *key_len ) { - if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN ) { + if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) { return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } @@ -590,10 +610,10 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key MBEDTLS_LMOTS_I_KEY_ID_LEN ); memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, ctx->T_1_pub_key, - MBEDTLS_LMOTS_N_HASH_LEN ); + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); if( key_len != NULL ) { - *key_len = MBEDTLS_LMS_PUBLIC_KEY_LEN; + *key_len = MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type); } return( 0 ); @@ -613,7 +633,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( sig_size < MBEDTLS_LMS_SIG_LEN ) + if( sig_size < MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) ) { return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } @@ -629,7 +649,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->q_next_usable_key >= MERKLE_TREE_LEAF_NODE_AM ) + if( ctx->q_next_usable_key >= MERKLE_TREE_LEAF_NODE_AM(ctx->params.type) ) { return( MBEDTLS_ERR_LMS_OUT_OF_PRIVATE_KEYS ); } @@ -644,26 +664,29 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, ret = mbedtls_lmots_sign( &ctx->ots_private_keys[q_leaf_identifier], f_rng, p_rng, msg, msg_size, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, - MBEDTLS_LMS_SIG_LEN, NULL ); + MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype), + NULL ); if( ret ) { return( ret ); } unsigned_int_to_network_bytes( ctx->params.type, - MBEDTLS_LMS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_TYPE_OFFSET ); + MBEDTLS_LMS_TYPE_LEN, + sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype) ); unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET); - ret = get_merkle_path( ctx, MERKLE_TREE_INTERNAL_NODE_AM + q_leaf_identifier, - ( unsigned char( * )[MBEDTLS_LMS_M_NODE_BYTES] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) ); + ret = get_merkle_path( ctx, + MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, + sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) ); if( ret ) { return( ret ); } if( sig_len != NULL ) { - *sig_len = MBEDTLS_LMS_SIG_LEN; + *sig_len = MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype); } diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 73c9aff096..ce69803f4e 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -17,7 +17,7 @@ void lmots_sign_verify_test ( data_t * msg ) { mbedtls_lmots_public_t pub_ctx; mbedtls_lmots_private_t priv_ctx; - unsigned char sig[MBEDTLS_LMOTS_SIG_LEN]; + unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; mbedtls_entropy_context entropy_ctx; mbedtls_ctr_drbg_context drbg_ctx; uint8_t seed[16]; @@ -67,13 +67,14 @@ exit: void lmots_import_export_test ( data_t * pub_key ) { mbedtls_lmots_public_t ctx; - uint8_t exported_pub_key[MBEDTLS_LMOTS_PUBLIC_KEY_LEN]; + uint8_t exported_pub_key[MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; mbedtls_lmots_init_public( &ctx ); TEST_ASSERT( mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); TEST_ASSERT( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, sizeof( exported_pub_key ), NULL ) == 0 ); - TEST_ASSERT( memcmp( pub_key->x, exported_pub_key, MBEDTLS_LMOTS_PUBLIC_KEY_LEN ) == 0 ); + TEST_ASSERT( memcmp( pub_key->x, exported_pub_key, + MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ) == 0 ); exit: mbedtls_lmots_free_public( &ctx ); @@ -84,7 +85,7 @@ exit: void lmots_reuse_test ( data_t * msg ) { mbedtls_lmots_private_t ctx; - unsigned char sig[MBEDTLS_LMOTS_SIG_LEN]; + unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; mbedtls_entropy_context entropy_ctx; mbedtls_ctr_drbg_context drbg_ctx; uint8_t seed[16]; diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 22c8eb5a12..92a5a07ab1 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -15,7 +15,7 @@ void lms_sign_verify_test ( data_t * msg ) { mbedtls_lms_public_t pub_ctx; mbedtls_lms_private_t priv_ctx; - unsigned char sig[MBEDTLS_LMS_SIG_LEN]; + unsigned char sig[MBEDTLS_LMS_SIG_LEN(MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8)]; mbedtls_entropy_context entropy_ctx; mbedtls_ctr_drbg_context drbg_ctx; uint8_t seed[16]; @@ -76,15 +76,15 @@ exit: void lms_import_export_test ( data_t * pub_key ) { mbedtls_lms_public_t ctx; - uint8_t exported_pub_key[MBEDTLS_LMS_PUBLIC_KEY_LEN]; + uint8_t exported_pub_key[MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10)]; mbedtls_lms_init_public(&ctx); TEST_ASSERT( mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); TEST_ASSERT( mbedtls_lms_export_public_key( &ctx, exported_pub_key, sizeof(exported_pub_key), NULL ) == 0 ); - ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBLIC_KEY_LEN, - exported_pub_key, MBEDTLS_LMS_PUBLIC_KEY_LEN ); + ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10), + exported_pub_key, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) ); exit: mbedtls_lms_free_public( &ctx ); From 366d67d9af1165bf313f58b6f7e93af507957f90 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 1 Sep 2022 17:23:12 +0100 Subject: [PATCH 0600/1028] Shorted LMS and LMOTS line-lengths To attempt to comply with the 80-char suggestion Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 3 +- library/lmots.c | 66 ++++++++++++++++++++++++++++--------------- library/lmots.h | 21 ++++++++------ library/lms.c | 62 ++++++++++++++++++++++------------------ 4 files changed, 92 insertions(+), 60 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index becfb89e31..23c5ebdf46 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -68,7 +68,8 @@ extern "C" { #endif -/* https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml +/** The Identifier of the LMS parameter set, as per + * https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml * We are only implementing a subset of the types, particularly H10, for the sake of simplicty. */ typedef enum { diff --git a/library/lmots.c b/library/lmots.c index 41ca0422bf..82da4c1391 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -44,13 +44,18 @@ #include "psa/crypto.h" -#define MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET (MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(type) (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type)) +#define MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET (MBEDTLS_LMOTS_SIG_TYPE_OFFSET + \ + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(type) (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + \ + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type)) -#define MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET (0) -#define MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) -#define MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) +#define MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET (0) +#define MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET + \ + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET + \ + MBEDTLS_LMOTS_I_KEY_ID_LEN) +#define MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET + \ + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) /* We only support parameter sets that use 8-bit digits, as it does not require * translation logic between digits and bytes */ @@ -69,7 +74,8 @@ static const unsigned char D_PUBLIC_CONSTANT_BYTES[D_CONST_LEN] = {0x80, 0x80}; static const unsigned char D_MESSAGE_CONSTANT_BYTES[D_CONST_LEN] = {0x81, 0x81}; -void unsigned_int_to_network_bytes(unsigned int val, size_t len, unsigned char *bytes) +void unsigned_int_to_network_bytes(unsigned int val, size_t len, + unsigned char *bytes) { size_t idx; @@ -78,7 +84,8 @@ void unsigned_int_to_network_bytes(unsigned int val, size_t len, unsigned char * } } -unsigned int network_bytes_to_unsigned_int(size_t len, const unsigned char *bytes) +unsigned int network_bytes_to_unsigned_int(size_t len, + const unsigned char *bytes) { size_t idx; unsigned int val = 0; @@ -195,13 +202,18 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, i_digit_idx++ ) { - memcpy( tmp_hash, &x_digit_array[i_digit_idx * MBEDTLS_LMOTS_N_HASH_LEN(params->type)], + memcpy( tmp_hash, + &x_digit_array[i_digit_idx * MBEDTLS_LMOTS_N_HASH_LEN(params->type)], MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); - j_hash_idx_min = hash_idx_min_values != NULL ? hash_idx_min_values[i_digit_idx] : 0; - j_hash_idx_max = hash_idx_max_values != NULL ? hash_idx_max_values[i_digit_idx] : DIGIT_MAX_VALUE; + j_hash_idx_min = hash_idx_min_values != NULL ? + hash_idx_min_values[i_digit_idx] : 0; + j_hash_idx_max = hash_idx_max_values != NULL ? + hash_idx_max_values[i_digit_idx] : DIGIT_MAX_VALUE; - for ( j_hash_idx = (unsigned char)j_hash_idx_min; j_hash_idx < j_hash_idx_max; j_hash_idx++ ) + for ( j_hash_idx = (unsigned char)j_hash_idx_min; + j_hash_idx < j_hash_idx_max; + j_hash_idx++ ) { status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); @@ -222,13 +234,15 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, if ( ret != 0 ) goto exit; - unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, i_digit_idx_bytes ); + unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, + i_digit_idx_bytes ); status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; - unsigned_int_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, j_hash_idx_bytes ); + unsigned_int_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, + j_hash_idx_bytes ); status = psa_hash_update( &op, j_hash_idx_bytes, J_HASH_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) @@ -240,7 +254,8 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, if ( ret != 0 ) goto exit; - status = psa_hash_finish( &op, tmp_hash, sizeof( tmp_hash ), &output_hash_len ); + status = psa_hash_finish( &op, tmp_hash, sizeof( tmp_hash ), + &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; @@ -248,8 +263,8 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, psa_hash_abort( &op ); } - memcpy( &output[i_digit_idx * MBEDTLS_LMOTS_N_HASH_LEN(params->type)], tmp_hash, - MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); + memcpy( &output[i_digit_idx * MBEDTLS_LMOTS_N_HASH_LEN(params->type)], + tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); } exit: @@ -304,7 +319,8 @@ static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t if ( ret != 0 ) goto exit; - status = psa_hash_finish( &op, pub_key, MBEDTLS_LMOTS_N_HASH_LEN(params->type), + status = psa_hash_finish( &op, pub_key, + MBEDTLS_LMOTS_N_HASH_LEN(params->type), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); @@ -354,10 +370,12 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, } memcpy( ctx->params.I_key_identifier, - key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); memcpy( ctx->params.q_leaf_identifier, - key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); memcpy( ctx->public_key, key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, @@ -448,7 +466,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, } if ( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } @@ -545,7 +563,8 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, if ( ret ) goto exit; - unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, i_digit_idx_bytes ); + unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, + i_digit_idx_bytes ); status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret ) @@ -691,7 +710,8 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ret = f_rng( p_rng, tmp_c_random, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); + ret = f_rng( p_rng, tmp_c_random, + MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); if ( ret ) { return( ret ); diff --git a/library/lmots.h b/library/lmots.h index 6ada0bad64..46e03d6f52 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -59,8 +59,9 @@ extern "C" { #endif -/* https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml - * We are only implementing a subset of the types, particularly n32_w8, for the sake of simplicty. +/** The Identifier of the LMS parameter set, as per + * https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml. + * We are only implementing a subset of the types, particularly N32_W8, for the sake of simplicty. */ typedef enum { MBEDTLS_LMOTS_SHA256_N32_W8 = 4 @@ -144,7 +145,8 @@ typedef struct { * * \return The corresponding LMS error code. */ -void unsigned_int_to_network_bytes(unsigned int val, size_t len, unsigned char *bytes); +void unsigned_int_to_network_bytes(unsigned int val, size_t len, + unsigned char *bytes); /** * \brief This function converts a network-byte-order @@ -155,7 +157,8 @@ void unsigned_int_to_network_bytes(unsigned int val, size_t len, unsigned char * * * \return The corresponding LMS error code. */ -unsigned int network_bytes_to_unsigned_int(size_t len, const unsigned char *bytes); +unsigned int network_bytes_to_unsigned_int(size_t len, + const unsigned char *bytes); /** * \brief This function converts a \ref psa_status_t to a @@ -196,8 +199,8 @@ void mbedtls_lmots_free_public( mbedtls_lmots_public_t *ctx ); * * \param ctx The initialized LMOTS context store the key in. * \param key The buffer from which the key will be read. - * #MBEDTLS_LMOTS_PUBLIC_KEY_LEN bytes will be read from - * this. + * #MBEDTLS_LMOTS_PUBLIC_KEY_LEN bytes will be read + * from this. * * \return \c 0 on success. * \return A non-zero error code on failure. @@ -221,7 +224,8 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, * \param msg The buffer from which the message will be read. * \param msg_size The size of the message that will be read. * \param sig The buffer from which the signature will be read. - * #MBEDTLS_LMOTS_SIG_LEN bytes will be read from this. + * #MBEDTLS_LMOTS_SIG_LEN bytes will be read from + * this. * \param out The buffer where the candidate public key will be * stored. Must be at least #MBEDTLS_LMOTS_N_HASH_LEN * bytes in size. @@ -248,7 +252,8 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters * * \note Before this function is called, the context must * have been initialized and must contain a public key - * (either by import or calculation from a private key). + * (either by import or calculation from a private + * key). * * \param ctx The initialized LMOTS context from which the public * key will be read. diff --git a/library/lms.c b/library/lms.c index 71921f7cb5..a1e4c243a8 100644 --- a/library/lms.c +++ b/library/lms.c @@ -55,14 +55,20 @@ #endif #define MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET (0) -#define MBEDTLS_LMS_SIG_OTS_SIG_OFFSET (MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) -#define MBEDTLS_LMS_SIG_TYPE_OFFSET(otstype) (MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_LEN(otstype)) -#define MBEDTLS_LMS_SIG_PATH_OFFSET(otstype) (MBEDTLS_LMS_SIG_TYPE_OFFSET(otstype) + MBEDTLS_LMS_TYPE_LEN) +#define MBEDTLS_LMS_SIG_OTS_SIG_OFFSET (MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET + \ + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) +#define MBEDTLS_LMS_SIG_TYPE_OFFSET(otstype) (MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + \ + MBEDTLS_LMOTS_SIG_LEN(otstype)) +#define MBEDTLS_LMS_SIG_PATH_OFFSET(otstype) (MBEDTLS_LMS_SIG_TYPE_OFFSET(otstype) + \ + MBEDTLS_LMS_TYPE_LEN) #define MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET (0) -#define MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) -#define MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) +#define MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET + \ + MBEDTLS_LMS_TYPE_LEN) +#define MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET + \ + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET + \ + MBEDTLS_LMOTS_I_KEY_ID_LEN) /* Currently only support H=10 */ @@ -208,7 +214,8 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } - type = network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); + type = network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, + key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); if( type != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); @@ -216,7 +223,7 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, ctx->params.type = type; otstype = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); + key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); if( otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); @@ -272,14 +279,14 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, } if( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET) + sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } if( network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype)) + sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype)) != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); @@ -287,7 +294,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, q_leaf_identifier = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); + sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); if( q_leaf_identifier >= MERKLE_TREE_LEAF_NODE_AM(ctx->params.type) ) { @@ -302,12 +309,10 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, ots_params.q_leaf_identifier ); ots_params.type = ctx->params.otstype; - ret = mbedtls_lmots_calculate_public_key_candidate( &ots_params, msg, msg_size, - sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, - MBEDTLS_LMOTS_SIG_LEN(ctx->params.otstype), - Kc_candidate_ots_pub_key, - sizeof(Kc_candidate_ots_pub_key), - NULL ); + ret = mbedtls_lmots_calculate_public_key_candidate( &ots_params, msg, + msg_size, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, + MBEDTLS_LMOTS_SIG_LEN(ctx->params.otstype), Kc_candidate_ots_pub_key, + sizeof(Kc_candidate_ots_pub_key), NULL ); if( ret ) { return( ret ); @@ -319,7 +324,8 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, Tc_candidate_root_node ); - curr_node_id = MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier; + curr_node_id = MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + + q_leaf_identifier; for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT(ctx->params.type); height++ ) @@ -389,7 +395,8 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, ret = create_merkle_internal_value( &ctx->params, &tree[(r_node_idx * 2) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], &tree[(r_node_idx * 2 + 1) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], - r_node_idx, &tree[r_node_idx * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)] ); + r_node_idx, + &tree[r_node_idx * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)] ); if( ret ) { return( ret ); @@ -587,7 +594,8 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, } -int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key, +int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, + unsigned char *key, size_t key_size, size_t *key_len ) { if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) { @@ -602,9 +610,8 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); - unsigned_int_to_network_bytes( - ctx->params.otstype, - MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); + unsigned_int_to_network_bytes( ctx->params.otstype, MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); @@ -671,15 +678,14 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( ret ); } - unsigned_int_to_network_bytes( ctx->params.type, - MBEDTLS_LMS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype) ); + unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMS_TYPE_LEN, + sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype) ); unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET); ret = get_merkle_path( ctx, - MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, - sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) ); + MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, + sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) ); if( ret ) { return( ret ); From 9b88ee5d5dcdcf2498f7388c326c88dced0b5f08 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 2 Sep 2022 12:04:21 +0100 Subject: [PATCH 0601/1028] Fix LMS and LMOTS coding style violations Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 2 +- library/lmots.c | 79 ++++++++++++++++++++++--------------------- library/lmots.h | 14 ++++---- library/lms.c | 52 +++++++++++++++------------- 4 files changed, 77 insertions(+), 70 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 23c5ebdf46..3e84ce0575 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -344,7 +344,7 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), void* p_rng, unsigned char *msg, unsigned int msg_size, - unsigned char *sig, size_t sig_size, size_t *sig_len); + unsigned char *sig, size_t sig_size, size_t *sig_len ); #endif /* MBEDTLS_LMS_PRIVATE */ #ifdef __cplusplus diff --git a/library/lmots.c b/library/lmots.c index 82da4c1391..fe78894f4c 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -68,30 +68,32 @@ /* Currently only defined for SHA256, 32 is the max hash output size */ #define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN_MAX (MBEDTLS_LMOTS_N_HASH_LEN_MAX) -#define DIGIT_MAX_VALUE ((1u << W_WINTERNITZ_PARAMETER) - 1u) +#define DIGIT_MAX_VALUE ((1u << W_WINTERNITZ_PARAMETER) - 1u) -#define D_CONST_LEN (2) +#define D_CONST_LEN (2) static const unsigned char D_PUBLIC_CONSTANT_BYTES[D_CONST_LEN] = {0x80, 0x80}; static const unsigned char D_MESSAGE_CONSTANT_BYTES[D_CONST_LEN] = {0x81, 0x81}; -void unsigned_int_to_network_bytes(unsigned int val, size_t len, - unsigned char *bytes) +void unsigned_int_to_network_bytes( unsigned int val, size_t len, + unsigned char *bytes ) { size_t idx; - for (idx = 0; idx < len; idx++) { - bytes[idx] = (val >> ((len - 1 - idx) * 8)) & 0xFF; + for ( idx = 0; idx < len; idx++ ) + { + bytes[idx] = ( val >> ( ( len - 1 - idx ) * 8 ) ) & 0xFF; } } -unsigned int network_bytes_to_unsigned_int(size_t len, - const unsigned char *bytes) +unsigned int network_bytes_to_unsigned_int( size_t len, + const unsigned char *bytes ) { size_t idx; unsigned int val = 0; - for (idx = 0; idx < len; idx++) { - val |= ((unsigned int)bytes[idx]) << (8 * (len - 1 - idx)); + for ( idx = 0; idx < len; idx++ ) + { + val |= ( ( unsigned int )bytes[idx] ) << (8 * ( len - 1 - idx ) ); } return val; @@ -123,7 +125,7 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p unsigned short checksum; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - op = psa_hash_operation_init(); + op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) @@ -195,7 +197,7 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, unsigned char tmp_hash[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - op = psa_hash_operation_init(); + op = psa_hash_operation_init( ); for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type); @@ -211,7 +213,7 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, j_hash_idx_max = hash_idx_max_values != NULL ? hash_idx_max_values[i_digit_idx] : DIGIT_MAX_VALUE; - for ( j_hash_idx = (unsigned char)j_hash_idx_min; + for ( j_hash_idx = ( unsigned char )j_hash_idx_min; j_hash_idx < j_hash_idx_max; j_hash_idx++ ) { @@ -329,9 +331,10 @@ exit: return( ret ); } -int mbedtls_lms_error_from_psa(psa_status_t status) +int mbedtls_lms_error_from_psa( psa_status_t status ) { - switch( status ) { + switch( status ) + { case PSA_SUCCESS: return( 0 ); case PSA_ERROR_HARDWARE_FAILURE: @@ -393,7 +396,7 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters size_t sig_size, unsigned char *out, size_t out_size, - size_t *out_len) + size_t *out_len ) { unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX]; unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; @@ -420,14 +423,14 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters ret = hash_digit_array( params, sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(params->type), - tmp_digit_array, NULL, (unsigned char *)y_hashed_digits ); + tmp_digit_array, NULL, ( unsigned char * )y_hashed_digits ); if ( ret ) { return ( ret ); } ret = public_key_from_hashed_digit_array( params, - (unsigned char *)y_hashed_digits, + ( unsigned char * )y_hashed_digits, out ); if ( ret ) { @@ -459,8 +462,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->params.MBEDTLS_PRIVATE( type ) - != MBEDTLS_LMOTS_SHA256_N32_W8 ) + if( ctx->params.type != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -475,7 +477,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, msg, msg_size, sig, sig_size, Kc_public_key_candidate, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type), - NULL); + NULL ); if ( ret ) { return( ret ); @@ -522,7 +524,8 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if ( type != MBEDTLS_LMOTS_SHA256_N32_W8 ) { + if ( type != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -534,9 +537,9 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, I_key_identifier, sizeof( ctx->params.I_key_identifier ) ); - unsigned_int_to_network_bytes(q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - ctx->params.q_leaf_identifier ); + unsigned_int_to_network_bytes( q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + ctx->params.q_leaf_identifier ); unsigned_int_to_network_bytes( 0xFF, sizeof( const_bytes ), const_bytes ); @@ -570,7 +573,7 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, if ( ret ) goto exit; - status = psa_hash_update( &op, const_bytes, sizeof( const_bytes) ); + status = psa_hash_update( &op, const_bytes, sizeof( const_bytes ) ); ret = mbedtls_lms_error_from_psa( status ); if ( ret ) goto exit; @@ -604,7 +607,7 @@ exit: } int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, - mbedtls_lmots_private_t *priv_ctx) + mbedtls_lmots_private_t *priv_ctx ) { unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -616,15 +619,15 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, } ret = hash_digit_array( &priv_ctx->params, - (unsigned char *)priv_ctx->private_key, NULL, - NULL, (unsigned char *)y_hashed_digits ); + ( unsigned char * )priv_ctx->private_key, NULL, + NULL, ( unsigned char * )y_hashed_digits ); if ( ret ) { return( ret ); } ret = public_key_from_hashed_digit_array( &priv_ctx->params, - (unsigned char *)y_hashed_digits, + ( unsigned char * )y_hashed_digits, ctx->public_key ); if ( ret ) { @@ -634,7 +637,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, memcpy( &ctx->params, &priv_ctx->params, sizeof( ctx->params ) ); - ctx->MBEDTLS_PRIVATE(have_public_key = 1); + ctx->have_public_key = 1; return( ret ); } @@ -662,9 +665,9 @@ int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy(key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, - ctx->params.q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN); + memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, + ctx->params.q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, ctx->public_key, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); @@ -726,8 +729,8 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( ret ); } - ret = hash_digit_array( &ctx->params, (unsigned char *)ctx->private_key, - NULL, tmp_digit_array, (unsigned char *)tmp_sig ); + ret = hash_digit_array( &ctx->params, ( unsigned char * )ctx->private_key, + NULL, tmp_digit_array, ( unsigned char * )tmp_sig ); if ( ret ) { return( ret ); @@ -741,8 +744,8 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, * key can't be reused. */ ctx->have_private_key = 0; - mbedtls_platform_zeroize(ctx->private_key, - sizeof(ctx->private_key)); + mbedtls_platform_zeroize( ctx->private_key, + sizeof( ctx->private_key ) ); memcpy( sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, tmp_c_random, MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(ctx->params.type) ); diff --git a/library/lmots.h b/library/lmots.h index 46e03d6f52..03e44af00a 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -145,8 +145,8 @@ typedef struct { * * \return The corresponding LMS error code. */ -void unsigned_int_to_network_bytes(unsigned int val, size_t len, - unsigned char *bytes); +void unsigned_int_to_network_bytes( unsigned int val, size_t len, + unsigned char *bytes ); /** * \brief This function converts a network-byte-order @@ -157,8 +157,8 @@ void unsigned_int_to_network_bytes(unsigned int val, size_t len, * * \return The corresponding LMS error code. */ -unsigned int network_bytes_to_unsigned_int(size_t len, - const unsigned char *bytes); +unsigned int network_bytes_to_unsigned_int( size_t len, + const unsigned char *bytes ); /** * \brief This function converts a \ref psa_status_t to a @@ -168,7 +168,7 @@ unsigned int network_bytes_to_unsigned_int(size_t len, * * \return The corresponding LMS error code. */ -int mbedtls_lms_error_from_psa(psa_status_t status); +int mbedtls_lms_error_from_psa( psa_status_t status ); /** @@ -240,7 +240,7 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters size_t sig_size, unsigned char *out, size_t out_size, - size_t *out_len); + size_t *out_len ); /** * \brief This function verifies a LMOTS signature, using a @@ -333,7 +333,7 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, * \return A non-zero error code on failure. */ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, - mbedtls_lmots_private_t *priv_ctx); + mbedtls_lmots_private_t *priv_ctx ); /** diff --git a/library/lms.c b/library/lms.c index a1e4c243a8..2ff8946c90 100644 --- a/library/lms.c +++ b/library/lms.c @@ -123,7 +123,7 @@ static int create_merkle_leaf_value( const mbedtls_lms_parameters_t *params, goto exit; status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), - &output_hash_len); + &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; @@ -182,7 +182,7 @@ static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, goto exit; ret = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), - &output_hash_len); + &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; @@ -279,7 +279,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, } if( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET) + sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); @@ -301,9 +301,9 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } - memcpy(ots_params.I_key_identifier, - ctx->params.I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN); + memcpy( ots_params.I_key_identifier, + ctx->params.I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, ots_params.q_leaf_identifier ); @@ -312,7 +312,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, ret = mbedtls_lmots_calculate_public_key_candidate( &ots_params, msg, msg_size, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, MBEDTLS_LMOTS_SIG_LEN(ctx->params.otstype), Kc_candidate_ots_pub_key, - sizeof(Kc_candidate_ots_pub_key), NULL ); + sizeof( Kc_candidate_ots_pub_key ), NULL ); if( ret ) { return( ret ); @@ -393,8 +393,8 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, r_node_idx-- ) { ret = create_merkle_internal_value( &ctx->params, - &tree[(r_node_idx * 2) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], - &tree[(r_node_idx * 2 + 1) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], + &tree[( r_node_idx * 2 ) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], + &tree[( r_node_idx * 2 + 1 ) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], r_node_idx, &tree[r_node_idx * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)] ); if( ret ) @@ -416,7 +416,7 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, unsigned int height; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = calculate_merkle_tree( ctx, (unsigned char *)tree); + ret = calculate_merkle_tree( ctx, ( unsigned char * )tree ); if( ret ) { return( ret ); @@ -496,7 +496,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ctx->ots_private_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), - sizeof( mbedtls_lmots_private_t)); + sizeof( mbedtls_lmots_private_t ) ); if( ctx->ots_private_keys == NULL ) { ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; @@ -504,7 +504,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, } ctx->ots_public_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), - sizeof( mbedtls_lmots_public_t)); + sizeof( mbedtls_lmots_public_t ) ); if( ctx->ots_public_keys == NULL ) { ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; @@ -524,12 +524,12 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, otstype, ctx->params.I_key_identifier, idx, seed, seed_size ); - if( ret) + if( ret ) goto exit; ret = mbedtls_lmots_calculate_public_key( &ctx->ots_public_keys[idx], &ctx->ots_private_keys[idx] ); - if( ret) + if( ret ) goto exit; } @@ -539,7 +539,8 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, exit: if( ret ) { - for ( free_idx = 0; free_idx < idx; free_idx++ ) { + for ( free_idx = 0; free_idx < idx; free_idx++ ) + { mbedtls_lmots_free_private( &ctx->ots_private_keys[free_idx] ); mbedtls_lmots_free_public( &ctx->ots_public_keys[free_idx] ); } @@ -558,7 +559,7 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, unsigned char tree[MERKLE_TREE_NODE_AM_MAX][MBEDTLS_LMS_M_NODE_BYTES_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ! priv_ctx->MBEDTLS_PRIVATE( have_private_key ) ) + if( ! priv_ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -576,9 +577,9 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, } memcpy( &ctx->params, &priv_ctx->params, - sizeof(mbedtls_lmots_parameters_t) ); + sizeof( mbedtls_lmots_parameters_t ) ); - ret = calculate_merkle_tree( priv_ctx, (unsigned char *)tree); + ret = calculate_merkle_tree( priv_ctx, ( unsigned char * )tree ); if( ret ) { return( ret ); @@ -586,7 +587,7 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, /* Root node is always at position 1, due to 1-based indexing */ memcpy( ctx->T_1_pub_key, &tree[1], - MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)); + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); ctx->have_public_key = 1; @@ -598,7 +599,8 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key, size_t key_size, size_t *key_len ) { - if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) { + if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) + { return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } @@ -619,7 +621,8 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, ctx->T_1_pub_key, MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); - if( key_len != NULL ) { + if( key_len != NULL ) + { *key_len = MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type); } @@ -630,7 +633,7 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), void* p_rng, unsigned char *msg, unsigned int msg_size, - unsigned char *sig, size_t sig_size, size_t *sig_len) + unsigned char *sig, size_t sig_size, size_t *sig_len ) { uint32_t q_leaf_identifier; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -681,7 +684,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype) ); unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET); + sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); ret = get_merkle_path( ctx, MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, @@ -691,7 +694,8 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( ret ); } - if( sig_len != NULL ) { + if( sig_len != NULL ) + { *sig_len = MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype); } From e0a17610d1e67483842392cc9cbc84c738e79239 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 2 Sep 2022 16:04:47 +0100 Subject: [PATCH 0602/1028] Fix LMS/LMOTS if-statement style Signed-off-by: Raef Coles --- library/lmots.c | 100 ++++++++++++++++++++++++------------------------ library/lms.c | 46 +++++++++++----------- 2 files changed, 73 insertions(+), 73 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index fe78894f4c..878d671cb0 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -128,42 +128,42 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, D_MESSAGE_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, C_random_value, MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(params->type) ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, msg, msg_len ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_finish( &op, out, MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; checksum = lmots_checksum_calculate( params, out ); @@ -219,47 +219,47 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, { status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, i_digit_idx_bytes ); status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; unsigned_int_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, j_hash_idx_bytes ); status = psa_hash_update( &op, j_hash_idx_bytes, J_HASH_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_finish( &op, tmp_hash, sizeof( tmp_hash ), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; psa_hash_abort( &op ); @@ -270,7 +270,7 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, } exit: - if( ret ) + if( ret != 0 ) { psa_hash_abort( &op ); return( ret ); @@ -293,32 +293,32 @@ static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, D_PUBLIC_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, y_hashed_digits, MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type) * MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_finish( &op, pub_key, @@ -367,7 +367,7 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); - if ( key_len < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) + if( key_len < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -402,12 +402,12 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if ( msg == NULL && msg_size != 0 ) + if( msg == NULL && msg_size != 0 ) { return ( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if ( sig_size != MBEDTLS_LMOTS_SIG_LEN(params->type) || + if( sig_size != MBEDTLS_LMOTS_SIG_LEN(params->type) || out_size < MBEDTLS_LMOTS_N_HASH_LEN(params->type) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); @@ -416,7 +416,7 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters ret = create_digit_array_with_checksum( params, msg, msg_size, sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, tmp_digit_array ); - if ( ret ) + if( ret ) { return ( ret ); } @@ -424,7 +424,7 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters ret = hash_digit_array( params, sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(params->type), tmp_digit_array, NULL, ( unsigned char * )y_hashed_digits ); - if ( ret ) + if( ret ) { return ( ret ); } @@ -432,12 +432,12 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters ret = public_key_from_hashed_digit_array( params, ( unsigned char * )y_hashed_digits, out ); - if ( ret ) + if( ret ) { return ( ret ); } - if ( out_len != NULL ) + if( out_len != NULL ) { *out_len = MBEDTLS_LMOTS_N_HASH_LEN(params->type); } @@ -452,12 +452,12 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, unsigned char Kc_public_key_candidate[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if ( msg == NULL && msg_size != 0 ) + if( msg == NULL && msg_size != 0 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if ( !ctx->have_public_key ) + if( !ctx->have_public_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -467,7 +467,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if ( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + if( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); @@ -478,12 +478,12 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, Kc_public_key_candidate, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type), NULL ); - if ( ret ) + if( ret ) { return( ret ); } - if ( memcmp( &Kc_public_key_candidate, ctx->public_key, + if( memcmp( &Kc_public_key_candidate, ctx->public_key, sizeof( ctx->public_key ) ) ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); @@ -519,12 +519,12 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, unsigned char const_bytes[1]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if ( ctx->have_private_key ) + if( ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if ( type != MBEDTLS_LMOTS_SHA256_N32_W8 ) + if( type != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -549,38 +549,38 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, { status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; ret = psa_hash_update( &op, ctx->params.I_key_identifier, sizeof( ctx->params.I_key_identifier ) ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) + if( ret ) goto exit; status = psa_hash_update( &op, ctx->params.q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) + if( ret ) goto exit; unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, i_digit_idx_bytes ); status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) + if( ret ) goto exit; status = psa_hash_update( &op, const_bytes, sizeof( const_bytes ) ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) + if( ret ) goto exit; status = psa_hash_update( &op, seed, seed_size ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) + if( ret ) goto exit; status = psa_hash_finish( &op, @@ -588,7 +588,7 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) + if( ret ) goto exit; psa_hash_abort( &op ); @@ -597,7 +597,7 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, ctx->have_private_key = 1; exit: - if( ret ) + if( ret != 0 ) { psa_hash_abort( &op ); return( ret ); @@ -613,7 +613,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* Check that a private key is loaded */ - if ( !priv_ctx->have_private_key ) + if( !priv_ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -621,7 +621,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, ret = hash_digit_array( &priv_ctx->params, ( unsigned char * )priv_ctx->private_key, NULL, NULL, ( unsigned char * )y_hashed_digits ); - if ( ret ) + if( ret ) { return( ret ); } @@ -629,7 +629,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, ret = public_key_from_hashed_digit_array( &priv_ctx->params, ( unsigned char * )y_hashed_digits, ctx->public_key ); - if ( ret ) + if( ret ) { return( ret ); } @@ -697,7 +697,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, unsigned char tmp_c_random[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if ( msg == NULL && msg_size != 0 ) + if( msg == NULL && msg_size != 0 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -708,14 +708,14 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, } /* Check that a private key is loaded */ - if ( !ctx->have_private_key ) + if( !ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } ret = f_rng( p_rng, tmp_c_random, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); - if ( ret ) + if( ret ) { return( ret ); } @@ -724,14 +724,14 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, msg, msg_size, tmp_c_random, tmp_digit_array ); - if ( ret ) + if( ret ) { return( ret ); } ret = hash_digit_array( &ctx->params, ( unsigned char * )ctx->private_key, NULL, tmp_digit_array, ( unsigned char * )tmp_sig ); - if ( ret ) + if( ret ) { return( ret ); } diff --git a/library/lms.c b/library/lms.c index 2ff8946c90..72f93192bf 100644 --- a/library/lms.c +++ b/library/lms.c @@ -96,36 +96,36 @@ static int create_merkle_leaf_value( const mbedtls_lms_parameters_t *params, op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); status = psa_hash_update( &op, r_node_idx_bytes, 4 ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, D_LEAF_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, pub_key, MBEDTLS_LMOTS_N_HASH_LEN(params->otstype) ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; exit: @@ -149,42 +149,42 @@ static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); status = psa_hash_update( &op, r_node_idx_bytes, 4 ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, D_INTERNAL_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, left_node, MBEDTLS_LMS_M_NODE_BYTES(params->type) ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, right_node, MBEDTLS_LMS_M_NODE_BYTES(params->type) ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; ret = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; exit: @@ -313,7 +313,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, msg_size, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, MBEDTLS_LMOTS_SIG_LEN(ctx->params.otstype), Kc_candidate_ots_pub_key, sizeof( Kc_candidate_ots_pub_key ), NULL ); - if( ret ) + if( ret != 0 ) { return( ret ); } @@ -380,7 +380,7 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, ret = create_merkle_leaf_value( &ctx->params, ctx->ots_public_keys[priv_key_idx].public_key, r_node_idx, &tree[r_node_idx * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)] ); - if( ret ) + if( ret != 0 ) { return( ret ); } @@ -397,7 +397,7 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, &tree[( r_node_idx * 2 + 1 ) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], r_node_idx, &tree[r_node_idx * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)] ); - if( ret ) + if( ret != 0 ) { return( ret ); } @@ -417,7 +417,7 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; ret = calculate_merkle_tree( ctx, ( unsigned char * )tree ); - if( ret ) + if( ret != 0 ) { return( ret ); } @@ -524,12 +524,12 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, otstype, ctx->params.I_key_identifier, idx, seed, seed_size ); - if( ret ) + if( ret != 0 ) goto exit; ret = mbedtls_lmots_calculate_public_key( &ctx->ots_public_keys[idx], &ctx->ots_private_keys[idx] ); - if( ret ) + if( ret != 0 ) goto exit; } @@ -537,7 +537,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, ctx->have_private_key = 1; exit: - if( ret ) + if( ret != 0 ) { for ( free_idx = 0; free_idx < idx; free_idx++ ) { @@ -580,7 +580,7 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, sizeof( mbedtls_lmots_parameters_t ) ); ret = calculate_merkle_tree( priv_ctx, ( unsigned char * )tree ); - if( ret ) + if( ret != 0 ) { return( ret ); } @@ -676,7 +676,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype), NULL ); - if( ret ) + if( ret != 0 ) { return( ret ); } @@ -689,7 +689,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, ret = get_merkle_path( ctx, MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) ); - if( ret ) + if( ret != 0 ) { return( ret ); } From f5919e299781f9a4541b5d7c5f07a43c9203c20b Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 2 Sep 2022 16:05:10 +0100 Subject: [PATCH 0603/1028] Update LMS/LMOTS tests Document tests and source of data, use test RNG, pass more parameters into each test Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.data | 39 ++++++++++++++++-- tests/suites/test_suite_lmots.function | 55 ++++++++------------------ tests/suites/test_suite_lms.data | 42 +++++++++++++++++++- tests/suites/test_suite_lms.function | 31 +++++---------- 4 files changed, 103 insertions(+), 64 deletions(-) diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index d5088f9e57..6b4cc35d98 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -1,29 +1,62 @@ LMOTS sign-verify test #1 -lmots_sign_verify_test:"c41ba177a0ca1ec31dfb2e145237e65b" +# This test uses a fixed message, and then generates a private key, signs the +# message, and verifies the signature. +lmots_sign_verify_test:"c41ba177a0ca1ec31dfb2e145237e65b":"00000000000000000000000000000000":12:"403cbcc9808bb4b5ad72476ea297b2854c928ff5336f0b98ac2237ec83225ae7" LMOTS sign-verify test #2 -lmots_sign_verify_test:"55a6647a581004306792b653a561d9f3" +# This test uses a fixed message, and then generates a private key, signs the +# message, and verifies the signature. +lmots_sign_verify_test:"55a6647a581004306792b653a561d9f3":"00000000000000000000000000000000":12:"c3dbc3fea047dca8fb7a3cdf609a5b7f48599c193c90e958ce9388c84df0a906" LMOTS hash-sigs interop test #1 +# This test uses data from https://github.com/cisco/hash-sigs due to the limited +# amount of available test vectors for LMOTS. A public/private key was generated +# and used to sign a randomly generated message. We expect this +# message/signature/public key trio to verify correctly. lmots_verify_test:"C80B24A82D52963AB241C84DCF0EEE55BB24F9F0":"00000004DB3B6B24FD191CE8894AE3C4E2CE2DE0C3F5D508691A9162F37704E07838488466CCD746E55BC8E3055C7A4D4DA2E10775DAFA2E8E5FEFB1CEB25973BC3323B61DE5E2EA7DCFF15DA482320F958023CA2E718C69B977019E8F2FCD47151388E2E5E11170AFE93BDEB508362B3A317835A9DDEB18F0CDCCC0731902DB3D37F441C93A490DE53962A915AB5060A1C157D61DDF061F272362AB7FD9EE95AE48D3448F204C81A3F260792784E1BFB49871A27C09CC549A406520F0B40BC74CAAD082EAAB12C994B8495B8C80E96384FF2222255BE6C4EE5AF439534E616F9C0B53E951F69D59BD0506C0C0366A679A8329ACF6E2D1D4E4EF49D35375A8EA46FCF3C9B2F8E033C242EC61B796E43B901407077A2AF3F0AABD2D0CB9004F10D91B57C2D5E8BA7BA9268FF94962CC102F55B5120D7D2F7A3BE281BA01D78895ADA2F05B77967EDA0E1EDEAFBB9BBC3D68DCBF682FBC70467FA2BEE5DE65F54247C4BE5BEF41F5108B6CD09E7698E3AAEA04B60746EDD0E2623B66B092DDA21EFA5A0D36805D101D805CC06F0E818B46059B3984C8B8A526C4239F66ED34B8CA57E178DC5E7B8D2BE029114B4CE466E2B5A081729B3F3A3F3845DDE177062F201C09125ED3CC381AF35EAD795440C421A136F941F09F3E4BA9E0203CBA875AF477AB0246342700F323E65DC327D27966377D871FD9C58BEC8797DEF35E1D0751A554719828B87332F601884EBFECB63A8D4F390785B3826BFA384BE502D2322C919ABD12A486C2AB124DCB7B74DE91241A30EF0388411E52145A88971C6C0A4E7C4F23EDD8D6008065A3D108C6B1EC5219BB0DFDBD37EE3A7A8DD37E3563A5777838FCA61E9E744813F39CF70B5A0F50E1BD4FF8733A3BDA76D2135969809D91A9786F22DC2ACBA4E0164C411019EC77A0BD253A42AC7528FC7C0DA1711FBD6C23825207060463080F9E04B7D819C8B150C22B8BA87C6277696EC409369C48AC0E3233DE52D31EF6D2207D2B57DFC2D0C43BE8212EAE6CB1BACBC2D3568E5527A14065D5F1F56AAE2AFB5FB1CEFFC228A30692BD030C71F4872DB54F2632CD919DA61576CF58D1EBE3D7988183A9C789EB74A3D7F6BBEBAC035A43397BF684C9E1130B252940DBA4454311A6A3D54D9386D48E1D5A3E70944EDF725AEDC5440CD610F79AB05A43C917FFC15213295EB8CB8432B6554A47C2AD419ADD52E0F5E0BD7A1E0F873257E69F8647F3A07093387B7A64C4812CDBEE536E45D531F89653AC5F14A4715CFF40692346FE6CBF2F9B92D9F1101C379AFD5E6154605059C1DA463B407E79C139396623DC7F15EEFCE424C8E214C6A645EF002F90A230D8F62177CBCF2A688D4F822B119835AD3D3A619F46230257A5AD59CB0924B2584DBA96AADE0A2487E7409EE5993A4F0E3DC46C10B96595CDD17D72C35EF4A52C5906655B0AE649B5DE03B7D46F3839E808761EE05E9300050647593C048669A952324B0188ED225AD11BED3FD94E44E134FB9D6DAD53CC34ECF62695E30637C4528C450D62174E2F8ABA2C09F134412EF889C24B36224BE4259B363A9D8EB89BAEE16BE1898D46":"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A":0 LMOTS hash-sigs interop test #2 +# This test uses data from https://github.com/cisco/hash-sigs due to the limited +# amount of available test vectors for LMOTS. A public/private key was generated +# and used to sign a randomly generated message. We expect this +# message/signature/public key trio to verify correctly. lmots_verify_test:"85A77D026E8C704B14EF665DEB0A648350FA8859":"00000004BEEF900CA9A14982E011A5A94503D566288932AD4B9CB85D1551C766A56F788B0D223FBA0E1AD722BE48365B4CE5DA21051B3A79EAD8C1046944192EE51E162DE1E9AE9B13DD8FA90867A17666CB8967F7CD7F4F5383703CCFF555EEBDC8123AF3C4E39D0A5D61725B6A7F23CE587D256C08D31510BCD895106CD524B432A9211CDCBDF5ADDAD5F1D76D428A76DF2556FFA8AB546CFAAA7F2FE86164B976FDA2940498DB0D1A2DE29972FFD55D83E7CA3318DBAC31670565A1E5F59E36342F887E0EF7855AD93CA5F1951307D79EEA375168BC35A3A0B053AEBDB4D7157AD929B0D7DE9FC1E8C32C9A2D679843CBC77560EEDA5959D0AC8407648344C6952649A303E7B6FCC2EE979E1B2786B898A01E2918894DB4E37A0ED79A30260A45959B4BB3016F081181190CB740376389827B2D56DF7EC00871DC9A198B74C7C6086C940A845D54198F2D5DD7A47F97A192F33A85AAA1304A3251B82AC33C5E7B3BA20D2A9BD49BBEE0B2DA2338E578E6F139BB7596DC3BD89E86CB393C42765B9FE85457116906C3F9A8499CF5E539A5CCB3F6D1F36CA209DE6942F807E579AF0EBF072EA110A812C9E420647CE7C8B2BDBB5F56C5B3B7EA80A53C3574F4ED32E4708DFEED60280ABBE2021B3791B0CB09C1F0731353234A6A327CDDFD4E3E2D9DD5A16FCDE3EEF09C67065BD702C07B53A005D3FE7D23FFD77D40E49C82165EB104343A166E808A3CAEDE1A43AE3A82E1788B49C565CF88A2AB8E2FD37657D53E3679D7A818D864F55144011AB498A4A985C46342F3562FD80ECB86497C3DBB759006E5FFFDC01CAA15C69B716174EDCB6E9870CF391003D3826451D1BEFDCC84C093428EE01DAF883190F5D2542B36A7DE44A453AECD5E93B768ACEE75076BE3D73A66F17CFD8E4A49B1F61CE9446815A86FF5FB0EA070A751893C85360C038A161D3DD4D2C66F440E7265153AB346EF620156605C028DD9636FAE0C9A20DF09303ECC5E57A6424505530F70D25F1C95FE51CBD82C2AD0015EB9AD5379CEC463FA0331A14DD971B7C2311FC45979C531653E7252884BAB7C49F8CD652BDF6FDFA76984445C63B54ED22B4A8A267D091381BE7B9B7608133968BA46106BF42B9091F78C085E674D1F70FB91C68D07733F6412B1583DD2F37C6ECAD6BCCE1A1C7D0A7CA80677F679A5AFE08D15427E5C78CE6EB9AA90F51F40343DC9FD1316DCEB2C1EF8EA217B714B0DE1AEECE04D19D0D7757481EDA6E8C51BE85B7B24720E8D62B8AEC56C1A1B9D278B874AACC0B492CF44ED4E7B1200C82323C1AFA0FC776E92B227E8979E3A92EAB05FCF18A43AE648397088F4991F73ECE22C03B3F42F51C0C0FE0DF37919D048FB473F7AB0E33310B9782DE56384BD888CE5E2A644E20A52DD47F710DB0D3169991E29E716ABFD84CA4850080B6C252CB96CD8979189819E532DF56ECB172F773919733BF4D442901EBFB656EBFED4C6D83FAFF288279779499091C94432ECDF83188048AB596D65BC48FA708D485F9CDC50C8B470DFE22157E8F5EE366722A04E8CE7B861573E5FC97D34055BB50B562738F803B202F7F8":"00000004DE9CE10EA7125AC6399B6B3C7EE24224000000161D61E675F3EA19C5B95DA4EE2E35BA061B39E7639F3989F8AE4B0696B3F87E4E":0 LMOTS hash-sigs interop test #3 +# This test uses data from https://github.com/cisco/hash-sigs due to the limited +# amount of available test vectors for LMOTS. A public/private key was generated +# and used to sign a randomly generated message. We expect this +# message/signature/public key trio to verify correctly. lmots_verify_test:"C32F83EFBFD87F386A6C0850CBB93A75F2506A35":"00000004BD2D174BEBEEF1CAF06E4BF1088DE2AAB17C0528579BD4E1C4A1ED583C36BDACA49798373961B605EAEFAEFC0B4BC39C7AD30572CD29BEBE9AEE503CA2D8BF8C31C8A1B71CF67A18EE01A8A878699F22A1AEE32731E51E3EAD3775EFD8339E263C5A4544559506BA5502B9AEF59217ABC24923EC5E28D18BA18B0D964DB277007A76B8075B39F48CDA92148C9BAE1C7E5421CA753FA2D6BEAE8F49977E4E5B6F38D35BA28A526A53061E57BB92DA0EBBD4AE01AE9FADBED74F503DC39FA2E10C20B47DFB3DFBE25EC35618D2307D21716B10F8FB5095B42C289D1847E5D6F9988C6763D288667D3B658A4F3613E084DAE8B78E0B295A6ED28E88C676995AA5EB1533CDF8EB6F95A5E5117F06B1759495A9CB6E40FBF1F97FF73FDCBFD315C48DA631AB0425CA0633817C46F25E84AEEA37DD77310EE56815E83F862EF14E15FC1246243AA02F40EA32567237D5ADC2944BD63CF55FA4F0DE251B3F5C067D9EC396D5E20F9CEF2C555D89DA721D91D6D607653B97636AB10B74F39FA984D23A3D276EFF5F49C336274A66AC491EDE34686C6CFC17F5312FD3E3E5749A2E472011FA391A5ACF09D918B01704B447FD5E3EA6BB726A3475775DFE6A98CE5473CDEDB630EA4D604BAF36A8B8A8E567F05929E8A74970AA742FBC945021017E464E753D5AC497925AA4AECA0CBF562B2E39F891E177FD8E4E61A698B099D21F13EFD0DE5357A1970314D8E3AA1D2A84D3BCF75A7876C16F585322CC4C613FE3AC8FEA5F258FC9C7200765E9209378C362AFC1A478A117D913CE2BEFEB51103E48D0802618C50918005F1AA4228B67BA1A1B001A91A032019A135B8AEEE3D0158A602C8DCCE5A6580DECC16204E410CBB15FCF36704BB2ECB826A229E45C454B4A5DFC12796E636B300C624DB4E6EAB424B17A18A5A5F52399F247A1507A5985D06F90889FE381129148AF8447B392D4EC0775D91502B48D9F212FCE3F81639901C462F752E27FBEEC9E2B7F8CCD16053FB839E8ADF8CD3E8FF8AF3B3E884F4F524C2026BD3B337B7058B53CFC7596F9C813FFD746B8AC0012C60E96140934B4EED1D8602E57A1A6EBC01FCFD66053AF9614FAF0D0F7320D50D440F2A3148A0DAEF5E2FA31F854D56045065AFAA52A60DC3321E2D7C104FF505057D55CD94C53C31C14DB0DAA4D55C4065CD9BCD78E1B8532A680F7DC3544021346CC59ADEC061DDA1B7606BAF28AD87C39AB8AF3D03E981EFFE50B4D5347175517EF212E61F02B594A96492091AC82625D334504EF19BEEE52E01B111D43313F35EC69C88EF38926071506AB3A5B372DD6F2B901AC1E12E61CCB3ACD3D0777A7A10F137126DAD0D1970D369A067C3A1F19D9CB8756D7130B7EB0C08CF725EB2ADFAD61204195CE14F3C99A88A9B8FA2FDCBD612DF9266614DEA073C9EDABE07B3793048167D4DA49B305AE27974D48A296871350DE036CAA348D2F9A9CB19DC094E5904E25DDCF5657227DCD2A4E620121FBDA032A58836EDC14F3A7C4E51319A60F91F941CC61757498B769799394574C9D198426AC3499F0D0BA1770AD6BAA0D3716333F785A9D7D":"00000004DA66203A7E7BCA2362DB3C8E897A84B10000000D1BD4EE08FAA341C2CE018BD12776E1B8E6B8B2C1EEDAE6BD0998E52F089936FE":0 LMOTS hash-sigs interop negative test (altered random value) +# This test uses data from https://github.com/cisco/hash-sigs due to the limited +# amount of available test vectors for LMOTS. A public/private key was generated +# and used to sign a randomly generated message. This test is a negative test +# where the signature from the hash-sigs interop test #1 data has been altered, +# and is expected to fail to verify. lmots_verify_test:"C80B24A82D52963AB241C84DCF0EEE55BB24F9F0":"00000004CB3B6B24FD191CE8894AE3C4E2CE2DE0C3F5D508691A9162F37704E07838488466CCD746E55BC8E3055C7A4D4DA2E10775DAFA2E8E5FEFB1CEB25973BC3323B61DE5E2EA7DCFF15DA482320F958023CA2E718C69B977019E8F2FCD47151388E2E5E11170AFE93BDEB508362B3A317835A9DDEB18F0CDCCC0731902DB3D37F441C93A490DE53962A915AB5060A1C157D61DDF061F272362AB7FD9EE95AE48D3448F204C81A3F260792784E1BFB49871A27C09CC549A406520F0B40BC74CAAD082EAAB12C994B8495B8C80E96384FF2222255BE6C4EE5AF439534E616F9C0B53E951F69D59BD0506C0C0366A679A8329ACF6E2D1D4E4EF49D35375A8EA46FCF3C9B2F8E033C242EC61B796E43B901407077A2AF3F0AABD2D0CB9004F10D91B57C2D5E8BA7BA9268FF94962CC102F55B5120D7D2F7A3BE281BA01D78895ADA2F05B77967EDA0E1EDEAFBB9BBC3D68DCBF682FBC70467FA2BEE5DE65F54247C4BE5BEF41F5108B6CD09E7698E3AAEA04B60746EDD0E2623B66B092DDA21EFA5A0D36805D101D805CC06F0E818B46059B3984C8B8A526C4239F66ED34B8CA57E178DC5E7B8D2BE029114B4CE466E2B5A081729B3F3A3F3845DDE177062F201C09125ED3CC381AF35EAD795440C421A136F941F09F3E4BA9E0203CBA875AF477AB0246342700F323E65DC327D27966377D871FD9C58BEC8797DEF35E1D0751A554719828B87332F601884EBFECB63A8D4F390785B3826BFA384BE502D2322C919ABD12A486C2AB124DCB7B74DE91241A30EF0388411E52145A88971C6C0A4E7C4F23EDD8D6008065A3D108C6B1EC5219BB0DFDBD37EE3A7A8DD37E3563A5777838FCA61E9E744813F39CF70B5A0F50E1BD4FF8733A3BDA76D2135969809D91A9786F22DC2ACBA4E0164C411019EC77A0BD253A42AC7528FC7C0DA1711FBD6C23825207060463080F9E04B7D819C8B150C22B8BA87C6277696EC409369C48AC0E3233DE52D31EF6D2207D2B57DFC2D0C43BE8212EAE6CB1BACBC2D3568E5527A14065D5F1F56AAE2AFB5FB1CEFFC228A30692BD030C71F4872DB54F2632CD919DA61576CF58D1EBE3D7988183A9C789EB74A3D7F6BBEBAC035A43397BF684C9E1130B252940DBA4454311A6A3D54D9386D48E1D5A3E70944EDF725AEDC5440CD610F79AB05A43C917FFC15213295EB8CB8432B6554A47C2AD419ADD52E0F5E0BD7A1E0F873257E69F8647F3A07093387B7A64C4812CDBEE536E45D531F89653AC5F14A4715CFF40692346FE6CBF2F9B92D9F1101C379AFD5E6154605059C1DA463B407E79C139396623DC7F15EEFCE424C8E214C6A645EF002F90A230D8F62177CBCF2A688D4F822B119835AD3D3A619F46230257A5AD59CB0924B2584DBA96AADE0A2487E7409EE5993A4F0E3DC46C10B96595CDD17D72C35EF4A52C5906655B0AE649B5DE03B7D46F3839E808761EE05E9300050647593C048669A952324B0188ED225AD11BED3FD94E44E134FB9D6DAD53CC34ECF62695E30637C4528C450D62174E2F8ABA2C09F134412EF889C24B36224BE4259B363A9D8EB89BAEE16BE1898D46":"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A":MBEDTLS_ERR_LMS_VERIFY_FAILED LMOTS negative test (invalid type) #1 +# This test uses a null (zeroed) message/signature/public key trio, with the +# only parts set being the LMOTS type. This test has an invalid LMOTS type, and +# should fail with a bad input data error. lmots_verify_test:"0000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMOTS negative test (invalid type) #2 +# This test uses a null (zeroed) message/signature/public key trio, with the +# only parts set being the LMOTS type. This test has an invalid LMOTS type, and +# should fail with a bad input data error. lmots_verify_test:"0000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMOTS key import / export test +# This test uses a randomly generated LMOTS public key. It imports the key, and +# then exports it, and verifies that the exported key is identical to the +# original key. lmots_import_export_test:"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A" LMOTS key reuse test -lmots_reuse_test:"cfcd1e81193e310c9d931d1b00818d14" +# This test uses a fixed message, and then generates a private key, signs the +# message, and then attempts to sign the message again. The second signature +# must fail as private key material must be deleted after a key is used to sign. +lmots_reuse_test:"cfcd1e81193e310c9d931d1b00818d14":"00000000000000000000000000000000":12:"a7f53cc5a228ce63811ba4d7c1f74f7fce62afbf6813f3ca3ae43c11b138086f" diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index ce69803f4e..2a9ea541a4 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -2,52 +2,39 @@ #include "lmots.h" #include "mbedtls/lms.h" -#include "mbedtls/entropy.h" -#include "mbedtls/ctr_drbg.h" - /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_CTR_DRBG_C + * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C * END_DEPENDENCIES */ /* BEGIN_CASE */ -void lmots_sign_verify_test ( data_t * msg ) +void lmots_sign_verify_test ( data_t *msg, data_t *key_id, int leaf_id, + data_t *seed ) { mbedtls_lmots_public_t pub_ctx; mbedtls_lmots_private_t priv_ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; - mbedtls_entropy_context entropy_ctx; - mbedtls_ctr_drbg_context drbg_ctx; - uint8_t seed[16]; - mbedtls_entropy_init( &entropy_ctx ); - mbedtls_ctr_drbg_init( &drbg_ctx ); mbedtls_lmots_init_public( &pub_ctx ); mbedtls_lmots_init_private( &priv_ctx ); - TEST_ASSERT( mbedtls_ctr_drbg_seed( &drbg_ctx, mbedtls_entropy_func, - &entropy_ctx, (uint8_t*)"", 0 ) == 0 ); - TEST_ASSERT( mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ) == 0 ); - TEST_ASSERT( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, - (uint8_t[16]){0}, 0x12, seed, sizeof( seed ) ) == 0 ); + key_id->x, leaf_id, seed->x, seed->len ) == 0 ); TEST_ASSERT( mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx) == 0 ); - TEST_ASSERT( mbedtls_lmots_sign(&priv_ctx, mbedtls_ctr_drbg_random, &drbg_ctx, + TEST_ASSERT( mbedtls_lmots_sign(&priv_ctx, &mbedtls_test_rnd_std_rand, NULL, msg->x, msg->len, sig, sizeof(sig), NULL ) == 0 ); TEST_ASSERT( mbedtls_lmots_verify(&pub_ctx, msg->x, msg->len, sig, sizeof(sig)) == 0 ); exit: - mbedtls_entropy_free( &entropy_ctx ); - mbedtls_ctr_drbg_free( &drbg_ctx ); mbedtls_lmots_free_public( &pub_ctx ); mbedtls_lmots_free_private( &priv_ctx ); } /* END_CASE */ /* BEGIN_CASE */ -void lmots_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, +void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, int expected_rc ) { mbedtls_lmots_public_t ctx; @@ -68,13 +55,16 @@ void lmots_import_export_test ( data_t * pub_key ) { mbedtls_lmots_public_t ctx; uint8_t exported_pub_key[MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; + size_t exported_pub_key_len; mbedtls_lmots_init_public( &ctx ); TEST_ASSERT( mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); - TEST_ASSERT( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, sizeof( exported_pub_key ), NULL ) == 0 ); + TEST_ASSERT( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, + sizeof( exported_pub_key ), + &exported_pub_key_len ) == 0 ); - TEST_ASSERT( memcmp( pub_key->x, exported_pub_key, - MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ) == 0 ); + ASSERT_COMPARE( pub_key->x, pub_key->len, + exported_pub_key, exported_pub_key_len ); exit: mbedtls_lmots_free_public( &ctx ); @@ -82,36 +72,25 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void lmots_reuse_test ( data_t * msg ) +void lmots_reuse_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed ) { mbedtls_lmots_private_t ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; - mbedtls_entropy_context entropy_ctx; - mbedtls_ctr_drbg_context drbg_ctx; - uint8_t seed[16]; - - mbedtls_entropy_init( &entropy_ctx ); - mbedtls_ctr_drbg_init( &drbg_ctx ); - TEST_ASSERT( mbedtls_ctr_drbg_seed(&drbg_ctx, mbedtls_entropy_func, - &entropy_ctx, (uint8_t*)"", 0 ) == 0 ); - - mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ); mbedtls_lmots_init_private( &ctx ); TEST_ASSERT( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, - (uint8_t[16]){0}, 0x12, seed, sizeof( seed ) ) == 0 ); - TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, + key_id->x, leaf_id, seed->x, + seed->len ) == 0 ); + TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, msg->x, msg->len, sig, sizeof( sig ), NULL ) == 0 ); /* Running another sign operation should fail, since the key should now have * been erased. */ - TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, + TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, msg->x, msg->len, sig, sizeof( sig ), NULL ) != 0 ); exit: - mbedtls_entropy_free( &entropy_ctx ); - mbedtls_ctr_drbg_free( &drbg_ctx ); mbedtls_lmots_free_private( &ctx ); } /* END_CASE */ diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index b17fddc153..c17d05ac57 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -1,32 +1,70 @@ LMS sign-verify test -lms_sign_verify_test:"c41ba177a0ca1ec31dfb2e145237e65b" +# This test uses a fixed message, and then generates a private key, signs the +# message, and verifies the signature. +lms_sign_verify_test:"c41ba177a0ca1ec31dfb2e145237e65b":"626201f41afd7c9af793cf158da58e33" LMS hash-sigs interop test #1 +# This test uses data from https://github.com/cisco/hash-sigs due to the limited +# amount of available test vectors for LMS. A public/private key was generated +# and used to sign a randomly generated message. We expect this +# message/signature/public key trio to verify correctly. lms_verify_test:"D5557C719EBB0DBECF563E5CDB16568BB11CD779":"0000000000000004C167A9AC495BD4EA34CD8EE5AAA2A656D518C33612FD87171421BFC3977CFA99765C6D496499C72A1DE21360DA57EB96BC83DB8AA92E560054C7805B04E336162FB4C411B509F76959F2458B0E53CF830E0145CCD439D494259EA4818CA68924A7E8B9DD36D6A9C7849B72F9338ED6C80A3E70B717E8E65B991B2FF9D8B49820E8ABC9E2ECC17DB38E855DA75D84DF9885C7F9DFB4ABC209CFF1D37D66595371D688A203CB89168945200C39169F784B19665CE1FB47D58BFA734C3E0E7E31D1206A033C6D8E25B7E45CA779A5FDE00C6B1CAC44884F2B52A380E1F6D8753549F7F4948A95AEA83703CF3AA108FA4F735AFC0DA1A03C378033D8B5959E7BE05D3C5070E709181AC09EFEC04128ABD7E8F37304FAD4B66373D4A83CFC1EF632DF6DB95577C2C6101CBDC807109ED8AE831FFB73DBC80942C58F334663B980F982C74B943BF7C57147250AADE595310387E3BB1A2705E9EC73DE7FABDA5EC0B1141A18798215B9A70F8D688357C833ED869059A2AA3360155EF84426288198D0FBB78223816B17093684C48942ED18FCD351C34E108E5B71D1CE39E318B5D991B650C46A91112E013E1180F2054C7A22429CAB31512BA34EA3AD9B68C5001EB70C993297CCF11914ECAF059922DAEE7D90ACE2567495ADA066E7DA1679CA45DAC1990B17184E7BE2E6A0F26AD77F19855D074F5B37372277484CE30B80A0540173C1B310C3E7B683A487B5D0676218EA1F65FEA444C493FC535E948EAB62252DCC90516BB45B60D4253DB6979FE342DC5CA1B86B01B2D8EBA79B0BC7B6984535616B792BB45F3C0E20B506E0694E1D5BA28FE96D34FE2BE354777D090404DD3508E9F7918FF5593ADB468478CA8A1F6AF752CC76F401E373B71471D9D70F455C8A73E4E7B6714394B1DD0E2A816AF3D5149835DAE477A70DEE0BDAC22F99A04BFB7C2D4AD53079C326F620DFD3F7CED4AB7F2E291507AA046331050F9E2205C52B36CBAEE817C5C3B1FBCDE61C54C8CB7B67E0570FA44728EC8FD091D5CEDC19C6B99840F7A0E49086F707E959D34B30E255B67BBAA24FADE532BF3D21825626E114BD8213170B0C2F01733D4ED420D01EE3ACD5F84DACE674AE7127DB0A80ACE252CAD9ADADDAFAB27281AFD6DDD72DB5AF878326C45D7DB1EFF8BC40895A3473A52461D076881310AD9937307217B5C0448B509EF9BA075936CC09E11B8838D3A6BC5EF9FAEA85A3EC87EEFDF2E38CD9732730085375A4FFC4E0A213B0E1FC3DE2D37F1EDACC3030F617F3459A03BFCF776A05FD3B7FD135782F6D6E7C5E92B56A1316525B26D3AE1CEA3C0C7CF3AA7B1E72B7599A31B50837D79A7AB61B9A9E2B7AABD2D605C97E302EB4B66C0588C24147955EA0892A54D42843568FE0863E7EFEAE336D302E672EA62689B4DAA02DD5BC99D93886EC7F411C53CE1CAEAB59FBC0B06E0E294F1900F8C626C6FF520AE2323DA797CDC120DBC19F7FEBA0E13429508C5B838A0F8B9B28A069C5DD40E2F6CC2C95FC6ACE7E1351516817BD2DC1AE08D498AD2B0BD1D8374942FF31FC6A4689C592244C919C3561E73DD4986FA500000006BBF34F6EE152B64FCDD1CB6848D2DA761798707060431761006E2EBD9312851F4F3DF3C46E10F643DDD58CB3D9F4D371F655EE26271F2DDE84A14CAA6A077DD96AF83849DE6CA8F2F3248902CBF49630C18C3EE3123D951CE9162D0E742B899AF9E5DA8D28A41C7CADF0194CDB09418BF48BF322F8C5E9563524196FA8AB785B43C4EA41A36148028D2F4C7356CDEEB09532CD7F2C80FC36589FF7A9954100C8697AEB014997C3088C242B4F70D26CE7F7E77384A9CF536EC5C5329E08BD6C1D65EFEFC1389A42D16FFB43A0E1D7661220E92A4A59703FB28410E73A677E803D4441929DFD7269E6F77AE8CA8C70B67B250A8728291EA5D4E3F03D505639408C88156DCBECC137142FA3585C09D99B84D8C380A5D29CE2ADA10A25F7CF939FE23288551F37FE2B7233BF97C0F5726B972E087BCBA095957CCD794794A4F50027":"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D":0 LMS hash-sigs interop test #2 +# This test uses data from https://github.com/cisco/hash-sigs due to the limited +# amount of available test vectors for LMS. A public/private key was generated +# and used to sign a randomly generated message. We expect this +# message/signature/public key trio to verify correctly. lms_verify_test:"DA16BE0B8FB691248486ACAFD531BE6EE4C362E0":"000000000000000484FCD0D791D175A0F86D64B2E8949F793CA9FFDC0347DE125DDB2F895BB9D2B43740B9B326B24F934D67586812BE6F3FB57E76FB12FBAD60A685F22A82C95C84AFAE63F47BB3CD951D483F61F5626B2B5FB6FDCA0CF02293EFDE1EB0AF6712D635678E825099E95435B43EF83C49C6589054D0905D82D597FB11A721D2232AD168FD179724539699C21163D5ADEB52290CB711C368572FF8BB95AA61DF2AD128307E768E73D3CF2BAFEAC8B6CD165BDD0316D2663D1ED61A15FB974082FC66A55E13ABA4FD084970EF6A59B0DFA1E934BF0E056C86E9B4C5B94CF863AB9F23BE2DB6A140A9CAA8DB31C83B21BDBDCD07304A52EB8501869D86BFDB68A376D94F847EED7E4CAB6A6EEC063945AE4DAF657D5509249E7FE430F5A13B188C4DD311F01746CE28F4F6540041EF6ADB299F712F591C83B0C12C1FB3E4A878C63217E25E08C004571FFC69E9C684E46F4D36C36409EBF3EB15F32A187176F4D177E0FE0E71ADFD4DA4AD2D57A0256B29AD5DAA6867AED20CC862AF5729D030514D41BB8D74551D8E925322C81A357A586227BBC885AB683BF835E9333A056AFEE96F2AD0FF6D6E235A9E2BC342ACBCF0B8EACC95E7B74215F6C65F12829433301F004EE1D9CFD16A4A1D092F48E99AEAE9E1FA4619ECE5E05F5C19F33C4C94A774EB8955409E3CFA73D8807CAA7C55FE45E980C7E7626AAA193F18A3AA7E525FFA6466D728FA25563DD383D855A0B6F8C011AC8C79C853CBED3A016DC26EF6E90B3E78119E465B9962A42B6AC168C1CDC9DB860D740B0C797303E2A62445FA618B5EB417BD4385C15BC548FEDF4D4842CA43F95188FFF63EB5D4AC85DAE618FDFB6CF5969EA0A3A52F73A4AC4957BC4EBCFEF593923EC79196021B25ED8D7558E4AF41ED74941585AC575CF1971D4F4C7C9E9516276734FF9FAFC7DE661F3090F71C98962789B31EA0FE406E2EF02F6F16B1708258C7559B8E05E27D647AD472805C865299FE30A5FE451DA7F2C493A37AA1655D492EC891B9AF559E12104CDD2EEB2E54138A1FB5A403AA32CEEB3946471A299604FA2DD3CA3E9567D01A3CEE5D09A1C2768B521C0C6142AF297CA5BFB3878B32D37D415542C15F655CB051240F3BA8FCE0E38449A0D7010A9B56BA2283E3A2047215813ED2090F7BDF16A40ADE32AB4E669684E6DEB6A94633E6643F29D10914F5A361C964CA9145514D4B80B45F3276EB0C649622034E71925FA038EB35E64C71CBDB11E91D779339516A351BD2A722CB60C2CBF145689B2E3F6FAEB74C3B58283929F70023503A96FED6A5D7D8A9E495FE1D85E0FCEC555F86747347D2FB5219FF65EFD144A5E1E88C63BE4259C42F6899C103536D75E0526508649E2836CACB94E88BD954B88EAC26F17B27BF62546C5C7573E2BC9EF4B65B8AE4951AF532F968FF050E504CC236DC48379E4390079DE451DCE710F9674D753C85B9FF7E7B09ED051EDD14C33AAFC8A188AE06234DFB61FE5A75C7A760B5286E1D6993BCEA0AB8A2C1D632145BD6A9F109ABB04E0B102D50DCB8C607AD6BA8C5FA5B21663E5A40194CA5DC2294BE10044E8D96AA0000000694ABC63BC5B27730C5223943C8341461474033BE3A221AFFDE66242AF14510CC656480CBDFC0B35205C89258A18BF6C29C4708CB2572DE15EE5DD481BC47060254954B5C5DD881AE6B358F7CDAB6F117235AAAC625B2750DB72BA4A96D7DFAA889BE780416E1CB264A413C6713710102D1D433BC6D0A47BF08AA74FD613D292A867261181BBD73557EE3AEB0F63579B71E58E97BAC1AACA3F34646350A13BB7ACE0AB3B062C41518768ABF3D32FB2F6A5E5C7F6B8B04C943D25A82F03F977755D74FD717A4B7E7674B03B577405210E23A2FE050E036DB0730359366A9436AD2CBCCE3E649F9E40023B2C12D9F5AA824319EAF571FD4842E573BB100BE9715D7B71F75521640D9B69B889349A283D62350D3A37264C89930F40603A5458B124EA850BA59024A46A8F325C9A9776817D739692FFAEA2758249888BF79D66FD496":"00000006000000043FC8322D04908C7C06C0D8B7A0CE24FA3AC253393CF9A56CF760294A06E75223E38C9E5329DDC493D8B51B1A4BBE41F8":0 LMS hash-sigs interop test #3 +# This test uses data from https://github.com/cisco/hash-sigs due to the limited +# amount of available test vectors for LMS. A public/private key was generated +# and used to sign a randomly generated message. We expect this +# message/signature/public key trio to verify correctly. lms_verify_test:"331D543362A163390508127AFB9894B8C18C6E0A":"0000000000000004F5378439E9C229550D40B725FD56BE48DB785093E62BD29B723C61FABEDCFD486EFA120445339DE2A21A8C7465073ACBFD6DE3E50F395AAC20E0BCB23B088C416199F80B540AA81B2C0B12B7785152263522E8F79AEBE3B28315CC834AEB68475CADBC724DB6B7B7F594A7F9DA2505F5F44DAA7EEF70B72665A250C1F61A19F3FA4CBF389BEB9B31DC327882D7983EEED46DA8E00AEBEF85AE179EBF6D8CC7F720E9F963C4D30DD4015DAA27993D0780AFD7A45688422B1444AD866FEFE12EBD94B4D313517708A6E652D6206A8B263E234685D8133C2258EF6CA9E9C6FFD6D153598B13B59576897DC4F77C71609427866A347AE62B5C3BACB0A2E44B60F2CCB4989B0C57F3E785CDCF22B1FC8C3460A163FF2BE7A578E82429BA823F392A13C11A5639A42453972D2185E81809EF0666F8F01F575FBD9A46135F45651AA814D9BA84F774A9E9303FD55038CA41A21484BA9C38E69BCE4E37052971690ED3EEC4ED9AD41B0AEAE4DCC913443B9FA5418FB75DC1725FA989BA8DB5D9E221804FC7F36F3135C8B93AFF66DF89408CFD50993D308E51DF00540F380C0AD06266B80F646B917BA58384B55658EAD2D453766C4843FCDD934E8352A6DF6A081A15BDE07BF67E977E72BFE1AC37F411111A0A4D101A2CCF95EBEC7FCFC82B45DBA88939B0831987AE4D15C05A2E08F713BB0B6BB0E2436B7F9C83D2D869432465DEB9185913DE215937EFB4A52DA50BEF88688F5AB4397A04B14CDBFA5BFD948CD6EA1122D9D3C2927DE9D066297AA2C6FE8E478EC0F41459287EF9B8A1A56164C72AE3DCE5E914E8BC3C3821E0ADD6D1C9048D71BD71F71F3A6E04E63687298DE5A3704ADA82AA369CCD7F342F79E988A7BE066CA55944E0E3712F472891761E5617DC048C69AA4C250AA1560D6591FC0E7492027BEED67310E3482B1487E41DEA5E070894A5FB93FF4462D1F60C4B1CA7C15275EEA2B3790ED12EA930FD7F7F07D60807E4AAB73D1F889DABF2E687A487F331AC17D8DE24E8448E672F87424F0D1A73721A1A987519D0E3BB91D15D012B1FCDB6E23EEA17E93869C5199984CE8A068CA96C3096273F8B23160A79EE0C208D9B70ED5E23CB3586DFD33E02D06F1C646250BD664C27D2BB9614FF5F043A6FEE1A235DA10DCAADB19205CB839BD616BB36B738AA28E1D4F767BD8BAB6C2F84887C7B2E16CF6E07AF90C1FCB6E6E5A4CC894072AF4393C63F7119FF694BF0A043AF5F0825557A99C40BABBDA97D5648687D493367812743335A8AD7696562538C8BA5DED182C4DC818E7E9F630B29A9534E2583E0F4B5862D4E4DB250A350BAF360EF133838FE55AA683E253746A704654EF692F4F818F5A172AB0B84673D0AF77CC1DF189AA5BB013E833D1B0943918768AC6A83E6BFB306D3C3786BD2C87129BFEA1C380A84C4983D262184427284BF3DEB9B4C58FB1899B07B9F60B4402618168B1445653E8E48CD92C048684302A6F5C217F110D6699707BA42316CB31FE8F4DA6B82243CF1264751225594AF1BB670339A9189163DB9E985A99BCF83A3039AF3E65BBCD8364745356B29D761853E00000006CDE5B63B9763DA3EABCFFDA517688BDEC2AE9213E6B0FD7003D95458798AE9449DE4F1135E093B39F597A34B14AAB7F596E25BA469533442F54C14921ABCC5D04A05486CD16C8564E6A19C11BEDA574A9800107DCEAD013A7E6A32966B5BBE9FDFDB0184FE0707209B6D9EC43066899717E487E5FDEE02061EA5069B2D6C9C87D6BEB1310F1B9E723AE372DB7BE9EF6657F51FD0DE62464D3B37755095829F625EA76F5FD7FCD5829863F963FCD7F9FFFF3729688D025DF7952B067C62198E4C6CE06E960B0BAC6ADBC9459D9AC0BE1BAD46F95A121BBBE6953BAA10252419E2AB6BCA1B0AA1FA64DF728160B4FB7A62499C24D269FF59977649064C5986D615E6952EA0DA5B1C04C443BC27A63D391D5BFAE824F0161791E65896DC100EAF80037FD800A5079337554BD990E0D0A1A4C4C45741E72FB3E840665F2881D2CCC5":"000000060000000461F2DF219685CF313043780A57C18071725490AB8D53B676D484238BA8C373572407938CC578045649964958C0A872FA":0 LMS hash-sigs interop negative test (altered random value) +# This test uses data from https://github.com/cisco/hash-sigs due to the limited +# amount of available test vectors for LMS. A public/private key was generated +# and used to sign a randomly generated message. This test is a negative test +# where the signature from the hash-sigs interop test #1 data has been altered, +# and is expected to fail to verify. lms_verify_test:"D5557C719EBB0DBECF563E5CDB16568BB11CD779":"0000000000000004B167A9AC495BD4EA34CD8EE5AAA2A656D518C33612FD87171421BFC3977CFA99765C6D496499C72A1DE21360DA57EB96BC83DB8AA92E560054C7805B04E336162FB4C411B509F76959F2458B0E53CF830E0145CCD439D494259EA4818CA68924A7E8B9DD36D6A9C7849B72F9338ED6C80A3E70B717E8E65B991B2FF9D8B49820E8ABC9E2ECC17DB38E855DA75D84DF9885C7F9DFB4ABC209CFF1D37D66595371D688A203CB89168945200C39169F784B19665CE1FB47D58BFA734C3E0E7E31D1206A033C6D8E25B7E45CA779A5FDE00C6B1CAC44884F2B52A380E1F6D8753549F7F4948A95AEA83703CF3AA108FA4F735AFC0DA1A03C378033D8B5959E7BE05D3C5070E709181AC09EFEC04128ABD7E8F37304FAD4B66373D4A83CFC1EF632DF6DB95577C2C6101CBDC807109ED8AE831FFB73DBC80942C58F334663B980F982C74B943BF7C57147250AADE595310387E3BB1A2705E9EC73DE7FABDA5EC0B1141A18798215B9A70F8D688357C833ED869059A2AA3360155EF84426288198D0FBB78223816B17093684C48942ED18FCD351C34E108E5B71D1CE39E318B5D991B650C46A91112E013E1180F2054C7A22429CAB31512BA34EA3AD9B68C5001EB70C993297CCF11914ECAF059922DAEE7D90ACE2567495ADA066E7DA1679CA45DAC1990B17184E7BE2E6A0F26AD77F19855D074F5B37372277484CE30B80A0540173C1B310C3E7B683A487B5D0676218EA1F65FEA444C493FC535E948EAB62252DCC90516BB45B60D4253DB6979FE342DC5CA1B86B01B2D8EBA79B0BC7B6984535616B792BB45F3C0E20B506E0694E1D5BA28FE96D34FE2BE354777D090404DD3508E9F7918FF5593ADB468478CA8A1F6AF752CC76F401E373B71471D9D70F455C8A73E4E7B6714394B1DD0E2A816AF3D5149835DAE477A70DEE0BDAC22F99A04BFB7C2D4AD53079C326F620DFD3F7CED4AB7F2E291507AA046331050F9E2205C52B36CBAEE817C5C3B1FBCDE61C54C8CB7B67E0570FA44728EC8FD091D5CEDC19C6B99840F7A0E49086F707E959D34B30E255B67BBAA24FADE532BF3D21825626E114BD8213170B0C2F01733D4ED420D01EE3ACD5F84DACE674AE7127DB0A80ACE252CAD9ADADDAFAB27281AFD6DDD72DB5AF878326C45D7DB1EFF8BC40895A3473A52461D076881310AD9937307217B5C0448B509EF9BA075936CC09E11B8838D3A6BC5EF9FAEA85A3EC87EEFDF2E38CD9732730085375A4FFC4E0A213B0E1FC3DE2D37F1EDACC3030F617F3459A03BFCF776A05FD3B7FD135782F6D6E7C5E92B56A1316525B26D3AE1CEA3C0C7CF3AA7B1E72B7599A31B50837D79A7AB61B9A9E2B7AABD2D605C97E302EB4B66C0588C24147955EA0892A54D42843568FE0863E7EFEAE336D302E672EA62689B4DAA02DD5BC99D93886EC7F411C53CE1CAEAB59FBC0B06E0E294F1900F8C626C6FF520AE2323DA797CDC120DBC19F7FEBA0E13429508C5B838A0F8B9B28A069C5DD40E2F6CC2C95FC6ACE7E1351516817BD2DC1AE08D498AD2B0BD1D8374942FF31FC6A4689C592244C919C3561E73DD4986FA500000006BBF34F6EE152B64FCDD1CB6848D2DA761798707060431761006E2EBD9312851F4F3DF3C46E10F643DDD58CB3D9F4D371F655EE26271F2DDE84A14CAA6A077DD96AF83849DE6CA8F2F3248902CBF49630C18C3EE3123D951CE9162D0E742B899AF9E5DA8D28A41C7CADF0194CDB09418BF48BF322F8C5E9563524196FA8AB785B43C4EA41A36148028D2F4C7356CDEEB09532CD7F2C80FC36589FF7A9954100C8697AEB014997C3088C242B4F70D26CE7F7E77384A9CF536EC5C5329E08BD6C1D65EFEFC1389A42D16FFB43A0E1D7661220E92A4A59703FB28410E73A677E803D4441929DFD7269E6F77AE8CA8C70B67B250A8728291EA5D4E3F03D505639408C88156DCBECC137142FA3585C09D99B84D8C380A5D29CE2ADA10A25F7CF939FE23288551F37FE2B7233BF97C0F5726B972E087BCBA095957CCD794794A4F50027":"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lms type) #1 +# This test uses a null (zeroed) message/signature/public key trio, with the +# only parts set being the LMS and LMOTS types. This test has a valid LMOTS type +# (0x4) but an invalid LMS type, and should fail with a bad input data error. lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000700000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMS negative test (invalid lms type) #2 +# This test uses a null (zeroed) message/signature/public key trio, with the +# only parts set being the LMS and LMOTS types. This test has a valid LMOTS type +# (0x4) but an invalid LMS type, and should fail with a bad input data error. lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000500000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMS negative test (invalid lm_ots type) #1 +# This test uses a null (zeroed) message/signature/public key trio, with the +# only parts set being the LMS and LMOTS types. This test has a valid LMS type +# (0x6) but an invalid LMOTS type, and should fail with a bad input data error. lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMS negative test (invalid lm_ots type) #2 +# This test uses a null (zeroed) message/signature/public key trio, with the +# only parts set being the LMS and LMOTS types. This test has a valid LMS type +# (0x6) but an invalid LMOTS type, and should fail with a bad input data error. lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA -LMS negative test (invalid leaf ID) +LMS negative test (invalid lm_ots type) #2 +# This test uses a null (zeroed) message/signature/public key trio, with the +# only parts set being the LMS and LMOTS types and the leaf ID. In this case, +# the leaf ID is 1024, which is invalid for MBEDTLS_LMS_SHA256_M32_H10. This +# test should fail to verify the signature. lms_verify_test:"0000000000000000000000000000000000000000":"000004000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS import/export test +# This test uses a randomly generated LMS public key. It imports the key, and +# then exports it, and verifies that the exported key is identical to the +# original key. lms_import_export_test:"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D" diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 92a5a07ab1..148075d1b8 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -1,55 +1,44 @@ /* BEGIN_HEADER */ #include "mbedtls/lms.h" -#include "mbedtls/entropy.h" -#include "mbedtls/ctr_drbg.h" /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_CTR_DRBG_C + * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C * END_DEPENDENCIES */ /* BEGIN_CASE */ -void lms_sign_verify_test ( data_t * msg ) +void lms_sign_verify_test ( data_t *msg, data_t *seed ) { mbedtls_lms_public_t pub_ctx; mbedtls_lms_private_t priv_ctx; unsigned char sig[MBEDTLS_LMS_SIG_LEN(MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8)]; - mbedtls_entropy_context entropy_ctx; - mbedtls_ctr_drbg_context drbg_ctx; - uint8_t seed[16]; int rc; - mbedtls_entropy_init( &entropy_ctx ); - mbedtls_ctr_drbg_init( &drbg_ctx ); mbedtls_lms_init_public( &pub_ctx ); mbedtls_lms_init_private( &priv_ctx ); - TEST_ASSERT( mbedtls_ctr_drbg_seed( &drbg_ctx, mbedtls_entropy_func, - &entropy_ctx, ( uint8_t* )"", 0 ) == 0 ); - TEST_ASSERT( mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ) == 0 ); - - /* Allocation failure isn't a test failure, since it likely just means there's not enough memory to run the test */ + /* Allocation failure isn't a test failure, since it likely just means + * there's not enough memory to run the test. + */ rc = mbedtls_lms_generate_private_key( &priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8, - mbedtls_ctr_drbg_random, &drbg_ctx, seed, - sizeof( seed ) ); + mbedtls_test_rnd_std_rand, NULL, + seed->x, seed->len ); TEST_ASSUME( rc != MBEDTLS_ERR_LMS_ALLOC_FAILED ); TEST_ASSERT( rc == 0 ); TEST_ASSERT( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ) == 0 ); - TEST_ASSERT( mbedtls_lms_sign( &priv_ctx, mbedtls_ctr_drbg_random, - &drbg_ctx, msg->x, msg->len, sig, - sizeof( sig ), NULL ) == 0 ); + TEST_ASSERT( mbedtls_lms_sign( &priv_ctx, mbedtls_test_rnd_std_rand, NULL, + msg->x, msg->len, sig, sizeof( sig ), + NULL ) == 0 ); TEST_ASSERT( mbedtls_lms_verify( &pub_ctx, msg->x, msg->len, sig, sizeof( sig ) ) == 0 ); exit: - mbedtls_entropy_free( &entropy_ctx ); - mbedtls_ctr_drbg_free( &drbg_ctx ); mbedtls_lms_free_public( &pub_ctx ); mbedtls_lms_free_private( &priv_ctx ); } From 8738a49d0c46617523edf98f436e7e8641fd195e Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 2 Sep 2022 17:13:01 +0100 Subject: [PATCH 0604/1028] Fix iterator types in LMOTS Signed-off-by: Raef Coles --- library/lmots.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 878d671cb0..7dbf8a206b 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -182,13 +182,10 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, const unsigned char *hash_idx_max_values, unsigned char *output ) { - unsigned char i_digit_idx; - unsigned char j_hash_idx; + unsigned int i_digit_idx; unsigned char i_digit_idx_bytes[I_DIGIT_IDX_LEN]; - unsigned char j_hash_idx_bytes[1]; - /* These can't be unsigned chars, because they are sometimes set to - * #DIGIT_MAX_VALUE, which has a value of 256 - */ + unsigned int j_hash_idx; + unsigned char j_hash_idx_bytes[J_HASH_IDX_LEN]; unsigned int j_hash_idx_min; unsigned int j_hash_idx_max; psa_hash_operation_t op; @@ -213,7 +210,7 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, j_hash_idx_max = hash_idx_max_values != NULL ? hash_idx_max_values[i_digit_idx] : DIGIT_MAX_VALUE; - for ( j_hash_idx = ( unsigned char )j_hash_idx_min; + for ( j_hash_idx = j_hash_idx_min; j_hash_idx < j_hash_idx_max; j_hash_idx++ ) { From 0a967ccf9ac868ddaf5f8da3cd4ab3a0119d81af Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 2 Sep 2022 17:46:15 +0100 Subject: [PATCH 0605/1028] Document LMS and LMOTS internal functions Signed-off-by: Raef Coles --- library/lmots.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++++ library/lms.c | 69 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 146 insertions(+), 1 deletion(-) diff --git a/library/lmots.c b/library/lmots.c index 7dbf8a206b..fe01bf6721 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -99,6 +99,17 @@ unsigned int network_bytes_to_unsigned_int( size_t len, return val; } +/* Calculate the checksum digits that are appended to the end of the LMOTS digit + * string. See NIST SP800-208 section 3.1 or RFC8554 Algorithm 2 for details of + * the checksum algorithm. + * + * \param params The LMOTS parameter set, I and q values which + * describe the key being used. + * + * \param digest The digit string to create the digest from. As + * this does not contain a checksum, it is the same + * size as a hash output. + */ static unsigned short lmots_checksum_calculate( const mbedtls_lmots_parameters_t *params, const unsigned char* digest ) { @@ -113,6 +124,29 @@ static unsigned short lmots_checksum_calculate( const mbedtls_lmots_parameters_t return sum; } +/* Create the string of digest digits (in the base determined by the Winternitz + * parameter with the checksum appended to the end (Q || cksm(Q)). See NIST + * SP800-208 section 3.1 or RFC8554 Algorithm 3 step 5 (also used in Algorithm + * 4b step 3) for details. + * + * \param params The LMOTS parameter set, I and q values which + * describe the key being used. + * + * \param msg The message that will be hashed to create the + * digest. + * + * \param msg_size The size of the message. + * + * \param C_random_value The random value that will be combined with the + * message digest. This is always the same size as a + * hash output for whichever hash algorithm is + * determined by the parameter set. + * + * \param output An output containing the digit string (+ + * checksum) of length P digits (in the case of + * MBEDTLS_LMOTS_SHA256_N32_W8, this means it is of + * size P bytes). + */ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *params, const unsigned char *msg, size_t msg_len, @@ -176,6 +210,35 @@ exit: return( ret ); } +/* Hash each element of the string of digits (+ checksum), producing a hash + * output for each element. This is used in several places (by varying the + * hash_idx_min/max_values) in order to calculate a public key from a private + * key (RFC8554 Algorithm 1 step 4), in order to sign a message (RFC8554 + * Algorithm 3 step 5), and to calculate a public key candidate from a + * signature and message (RFC8554 Algorithm 4b step 3). + * + * \param params The LMOTS parameter set, I and q values which + * describe the key being used. + * + * \param x_digit_array The array of digits (of size P, 34 in the case of + * MBEDTLS_LMOTS_SHA256_N32_W8). + * + * \param hash_idx_min_values An array of the starting values of the j iterator + * for each of the members of the digit array. If + * this value in NULL, then all iterators will start + * at 0. + * + * \param hash_idx_max_values An array of the upper bound values of the j + * iterator for each of the members of the digit + * array. If this value in NULL, then iterator is + * bounded to be less than 2^w - 1 (255 in the case + * of MBEDTLS_LMOTS_SHA256_N32_W8) + * + * \param output An array containing a hash output for each member + * of the digit string P. In the case of + * MBEDTLS_LMOTS_SHA256_N32_W8, this is of size 32 * + * 34. + */ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, const unsigned char *x_digit_array, const unsigned char *hash_idx_min_values, @@ -278,6 +341,21 @@ exit: return ret; } +/* Combine the hashes of the digit array into a public key. This is used in + * in order to calculate a public key from a private key (RFC8554 Algorithm 1 + * step 4), and to calculate a public key candidate from a signature and message + * (RFC8554 Algorithm 4b step 3). + * + * \param params The LMOTS parameter set, I and q values which describe + * the key being used. + * \param y_hashed_digits The array of hashes, one hash for each digit of the + * symbol array (which is of size P, 34 in the case of + * MBEDTLS_LMOTS_SHA256_N32_W8) + * + * \param pub_key The output public key (or candidate public key in + * case this is being run as part of signature + * verification), in the form of a hash output. + */ static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t *params, const unsigned char *y_hashed_digits, unsigned char *pub_key ) diff --git a/library/lms.c b/library/lms.c index 72f93192bf..e0f5946efb 100644 --- a/library/lms.c +++ b/library/lms.c @@ -80,8 +80,27 @@ #define D_CONST_LEN (2) static const unsigned char D_LEAF_CONSTANT_BYTES[D_CONST_LEN] = {0x82, 0x82}; -static const unsigned char D_INTERNAL_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; +static const unsigned char D_INTR_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; + +/* Calculate the value of a leaf node of the merkle tree (which is a hash of a + * public key and some other parameters like the leaf index). This function + * implements RFC8554 section 5.3, in the case where r >= 2^h. + * + * \param params The LMS parameter set, the underlying LMOTS + * parameter set, and I value which describe the key + * being used. + * + * \param pub_key The public key of the private whose index + * corresponds to the index of this leaf node. This + * is a hash output. + * + * \param r_node_idx The index of this node in the merkle tree. Note + * that the root node of the merkle tree is + * 1-indexed. + * + * \param out The output node value, which is a hash output. + */ static int create_merkle_leaf_value( const mbedtls_lms_parameters_t *params, unsigned char *pub_key, unsigned int r_node_idx, @@ -134,6 +153,28 @@ exit: return( ret ); } +/* Calculate the value of an internal node of the merkle tree (which is a hash + * of a public key and some other parameters like the node index). This function + * implements RFC8554 section 5.3, in the case where r < 2^h. + * + * \param params The LMS parameter set, the underlying LMOTS + * parameter set, and I value which describe the key + * being used. + * + * \param left_node The value of the child of this node which is on + * the left-hand side. As with all nodes on the + * merkle tree, this is a hash output. + * + * \param right_node The value of the child of this node which is on + * the right-hand side. As with all nodes on the + * merkle tree, this is a hash output. + * + * \param r_node_idx The index of this node in the merkle tree. Note + * that the root node of the merkle tree is + * 1-indexed. + * + * \param out The output node value, which is a hash output. + */ static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, const unsigned char *left_node, const unsigned char *right_node, @@ -363,6 +404,20 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, #ifdef MBEDTLS_LMS_PRIVATE +/* Calculate a full merkle tree based on a private key. This function + * implements RFC8554 section 5.3, and is used to generate a public key (as the + * public key is the root node of the merkle tree). + * + * \param ctx The LMS private context, containing a parameter + * set and private key material consisting of both + * public and private OTS. + * + * \param tree The output tree, which is 2^(H + 1) hash outputs. + * In the case of H=10 we have 2048 tree nodes (of + * which 1024 of them are leaf nodes). Note that + * because the merkle tree root is 1-indexed, the 0 + * index tree node is never used. + */ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, unsigned char *tree ) { @@ -406,6 +461,18 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, return( 0 ); } +/* Calculate a path from a leaf node of the merkle tree to the root of the tree, + * and return the full path. This function implements RFC8554 section 5.4.1, as + * the merkle path is the main component of an LMS signature. + * + * \param ctx The LMS private context, containing a parameter + * set and private key material consisting of both + * public and private OTS. + * + * \param leaf_node_id Which leaf node to calculate the path from. + * + * \param tree The output path, which is H hash outputs. + */ static int get_merkle_path( mbedtls_lms_private_t *ctx, unsigned int leaf_node_id, unsigned char *path ) From fa24f9d6ea4be3aa5f91a0e9c5a13753022a6fd0 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 2 Sep 2022 17:46:52 +0100 Subject: [PATCH 0606/1028] Minor fixes to LMS and LMOTS macros Update some names, use the correct macro in certain places. Signed-off-by: Raef Coles --- library/lmots.c | 2 +- library/lmots.h | 4 ++-- library/lms.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index fe01bf6721..8e56696e57 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -194,7 +194,7 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p goto exit; status = psa_hash_finish( &op, out, - MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type), + MBEDTLS_LMOTS_N_HASH_LEN(params->type), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if( ret != 0 ) diff --git a/library/lmots.h b/library/lmots.h index 03e44af00a..56d23f855a 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -104,7 +104,7 @@ typedef struct { */ typedef struct { mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); - unsigned char MBEDTLS_PRIVATE(public_key)[32]; + unsigned char MBEDTLS_PRIVATE(public_key)[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; unsigned char MBEDTLS_PRIVATE(have_public_key); /*!< Whether the context contains a public key. Boolean values only. */ } mbedtls_lmots_public_t; @@ -129,7 +129,7 @@ typedef struct { */ typedef struct { mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); - unsigned char MBEDTLS_PRIVATE(private_key)[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][32]; + unsigned char MBEDTLS_PRIVATE(private_key)[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lmots_private_t; diff --git a/library/lms.c b/library/lms.c index e0f5946efb..26c48efa3b 100644 --- a/library/lms.c +++ b/library/lms.c @@ -205,7 +205,7 @@ static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, if( ret != 0 ) goto exit; - status = psa_hash_update( &op, D_INTERNAL_CONSTANT_BYTES, D_CONST_LEN ); + status = psa_hash_update( &op, D_INTR_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret != 0 ) goto exit; From 9c9027b1a47f64ac16ceeaf61bc261bdc9f5c90b Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 2 Sep 2022 18:26:31 +0100 Subject: [PATCH 0607/1028] Add extra LMS and LMOTS tests NULL-message and LMOTS signature leak tests Signed-off-by: Raef Coles --- library/lmots.c | 21 ++++++-- library/lmots.h | 4 ++ tests/suites/test_suite_lmots.data | 12 +++++ tests/suites/test_suite_lmots.function | 69 ++++++++++++++++++++++++++ tests/suites/test_suite_lms.data | 5 ++ tests/suites/test_suite_lms.function | 36 ++++++++++++++ 6 files changed, 142 insertions(+), 5 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 8e56696e57..d733dc02e6 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -44,11 +44,6 @@ #include "psa/crypto.h" -#define MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET (MBEDTLS_LMOTS_SIG_TYPE_OFFSET + \ - MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(type) (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + \ - MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type)) - #define MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET (0) #define MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET + \ MBEDTLS_LMOTS_TYPE_LEN) @@ -74,6 +69,10 @@ static const unsigned char D_PUBLIC_CONSTANT_BYTES[D_CONST_LEN] = {0x80, 0x80}; static const unsigned char D_MESSAGE_CONSTANT_BYTES[D_CONST_LEN] = {0x81, 0x81}; +#if defined(MBEDTLS_TEST_HOOKS) +int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * ) = NULL; +#endif /* defined(MBEDTLS_TEST_HOOKS) */ + void unsigned_int_to_network_bytes( unsigned int val, size_t len, unsigned char *bytes ) { @@ -815,6 +814,18 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, MBEDTLS_LMOTS_TYPE_LEN, sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + /* Test hook to check if sig is being written to before we invalidate the + * private key. + */ +#if defined(MBEDTLS_TEST_HOOKS) + if( mbedtls_lmots_sign_private_key_invalidated_hook != NULL ) + { + ret = ( *mbedtls_lmots_sign_private_key_invalidated_hook )( sig ); + if( ret != 0 ) + return( ret ); + } +#endif /* defined(MBEDTLS_TEST_HOOKS) */ + /* We've got a valid signature now, so it's time to make sure the private * key can't be reused. */ diff --git a/library/lmots.h b/library/lmots.h index 56d23f855a..993c01c10e 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -54,6 +54,10 @@ MBEDTLS_LMOTS_N_HASH_LEN(type)) #define MBEDTLS_LMOTS_SIG_TYPE_OFFSET (0) +#define MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET (MBEDTLS_LMOTS_SIG_TYPE_OFFSET + \ + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(type) (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + \ + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type)) #ifdef __cplusplus extern "C" { diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index 6b4cc35d98..0845a17d09 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -8,6 +8,11 @@ LMOTS sign-verify test #2 # message, and verifies the signature. lmots_sign_verify_test:"55a6647a581004306792b653a561d9f3":"00000000000000000000000000000000":12:"c3dbc3fea047dca8fb7a3cdf609a5b7f48599c193c90e958ce9388c84df0a906" +LMOTS NULL-message sign-verify test +# This test uses a NULL zero-length message, and then generates a private key, +# signs the message, and verifies the signature. +lmots_sign_verify_null_msg_test::"00000000000000000000000000000000":12:"be5fa89144f2d665c66ead8216bc02006e0eccd8b3697a0aea44f6c93afe7955" + LMOTS hash-sigs interop test #1 # This test uses data from https://github.com/cisco/hash-sigs due to the limited # amount of available test vectors for LMOTS. A public/private key was generated @@ -60,3 +65,10 @@ LMOTS key reuse test # message, and then attempts to sign the message again. The second signature # must fail as private key material must be deleted after a key is used to sign. lmots_reuse_test:"cfcd1e81193e310c9d931d1b00818d14":"00000000000000000000000000000000":12:"a7f53cc5a228ce63811ba4d7c1f74f7fce62afbf6813f3ca3ae43c11b138086f" + +LMOTS signature leak test +# This test uses a fixed message, and then generates a private key, signs the +# message, and then uses a test hook to check that the signature has not been +# modifier before the private key has been deleted (which could cause signature +# leakage during errors). +lmots_signature_leak_test:"cfcd1e81193e310c9d931d1b00818d14":"00000000000000000000000000000000":12:"a7f53cc5a228ce63811ba4d7c1f74f7fce62afbf6813f3ca3ae43c11b138086f" diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 2a9ea541a4..d7067dfe00 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -2,6 +2,27 @@ #include "lmots.h" #include "mbedtls/lms.h" +#if defined(MBEDTLS_TEST_HOOKS) +extern int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * ); + +int check_lmots_private_key_for_leak(unsigned char * sig) +{ + size_t idx; + + for( idx = MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(MBEDTLS_LMOTS_SHA256_N32_W8); + idx < MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8); + idx++ ) + { + if( sig[idx] != 0x7E ) { + while(1){} + return 1; + } + } + + return 0; +} +#endif /* defined(MBEDTLS_TEST_HOOKS) */ + /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -33,6 +54,29 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void lmots_sign_verify_null_msg_test ( data_t *key_id, int leaf_id, data_t *seed ) +{ + mbedtls_lmots_public_t pub_ctx; + mbedtls_lmots_private_t priv_ctx; + unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; + + mbedtls_lmots_init_public( &pub_ctx ); + mbedtls_lmots_init_private( &priv_ctx ); + + TEST_ASSERT( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + key_id->x, leaf_id, seed->x, seed->len ) == 0 ); + TEST_ASSERT( mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx) == 0 ); + TEST_ASSERT( mbedtls_lmots_sign(&priv_ctx, &mbedtls_test_rnd_std_rand, NULL, + NULL, 0, sig, sizeof(sig), NULL ) == 0 ); + TEST_ASSERT( mbedtls_lmots_verify(&pub_ctx, NULL, 0, sig, sizeof(sig)) == 0 ); + +exit: + mbedtls_lmots_free_public( &pub_ctx ); + mbedtls_lmots_free_private( &priv_ctx ); +} +/* END_CASE */ + /* BEGIN_CASE */ void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, int expected_rc ) @@ -94,3 +138,28 @@ exit: mbedtls_lmots_free_private( &ctx ); } /* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */ +void lmots_signature_leak_test ( data_t *msg, data_t *key_id, int leaf_id, + data_t *seed ) +{ + mbedtls_lmots_private_t ctx; + unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; + + mbedtls_lmots_sign_private_key_invalidated_hook = &check_lmots_private_key_for_leak; + + /* Fill with recognisable pattern */ + memset( sig, 0x7E, sizeof( sig ) ); + + mbedtls_lmots_init_private( &ctx ); + TEST_ASSERT( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + key_id->x, leaf_id, seed->x, + seed->len ) == 0 ); + TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, + msg->x, msg->len, sig, sizeof( sig ), NULL ) == 0 ); + +exit: + mbedtls_lmots_free_private( &ctx ); + mbedtls_lmots_sign_private_key_invalidated_hook = NULL; +} +/* END_CASE */ diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index c17d05ac57..d890dd4ddc 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -3,6 +3,11 @@ LMS sign-verify test # message, and verifies the signature. lms_sign_verify_test:"c41ba177a0ca1ec31dfb2e145237e65b":"626201f41afd7c9af793cf158da58e33" +LMS NULL-message sign-verify test +# This test uses a NULL zero-length message, and then generates a private key, +# signs the message, and verifies the signature. +lms_sign_verify_null_msg_test:"923a3c8e38c9b72e067996bfdaa36856" + LMS hash-sigs interop test #1 # This test uses data from https://github.com/cisco/hash-sigs due to the limited # amount of available test vectors for LMS. A public/private key was generated diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 148075d1b8..900392334d 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -44,6 +44,42 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void lms_sign_verify_null_msg_test( data_t *seed ) +{ + mbedtls_lms_public_t pub_ctx; + mbedtls_lms_private_t priv_ctx; + unsigned char sig[MBEDTLS_LMS_SIG_LEN(MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8)]; + int rc; + + mbedtls_lms_init_public( &pub_ctx ); + mbedtls_lms_init_private( &priv_ctx ); + + /* Allocation failure isn't a test failure, since it likely just means + * there's not enough memory to run the test. + */ + rc = mbedtls_lms_generate_private_key( &priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, + MBEDTLS_LMOTS_SHA256_N32_W8, + mbedtls_test_rnd_std_rand, NULL, + seed->x, seed->len ); + TEST_ASSUME( rc != MBEDTLS_ERR_LMS_ALLOC_FAILED ); + TEST_ASSERT( rc == 0 ); + + TEST_ASSERT( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ) == 0 ); + + TEST_ASSERT( mbedtls_lms_sign( &priv_ctx, mbedtls_test_rnd_std_rand, NULL, + NULL, 0, sig, sizeof( sig ), + NULL ) == 0 ); + + TEST_ASSERT( mbedtls_lms_verify( &pub_ctx, NULL, 0, sig, + sizeof( sig ) ) == 0 ); + +exit: + mbedtls_lms_free_public( &pub_ctx ); + mbedtls_lms_free_private( &priv_ctx ); +} +/* END_CASE */ + /* BEGIN_CASE */ void lms_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, int expected_rc ) From 1310ecb38906f0902b4a1c861cbf5f541220458e Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 22 Sep 2022 15:41:49 +0100 Subject: [PATCH 0608/1028] Update LMOTS function documentation To avoid CI failure Signed-off-by: Raef Coles --- library/lmots.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/library/lmots.h b/library/lmots.h index 993c01c10e..f6daa0bcca 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -146,8 +146,6 @@ typedef struct { * \param val The unsigned integer value * \param len The length of the string. * \param bytes The string to output into. - * - * \return The corresponding LMS error code. */ void unsigned_int_to_network_bytes( unsigned int val, size_t len, unsigned char *bytes ); From 40f184c83ee9ab0a96284365c8c4a1c3d0445631 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 22 Sep 2022 18:30:33 +0100 Subject: [PATCH 0609/1028] Cast LMS allocation sizes to size_t To prevent implict casting errors on 64-bit platforms Signed-off-by: Raef Coles --- library/lms.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/lms.c b/library/lms.c index 26c48efa3b..f1230c7e70 100644 --- a/library/lms.c +++ b/library/lms.c @@ -562,7 +562,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - ctx->ots_private_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + ctx->ots_private_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), sizeof( mbedtls_lmots_private_t ) ); if( ctx->ots_private_keys == NULL ) { @@ -570,7 +570,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, goto exit; } - ctx->ots_public_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + ctx->ots_public_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), sizeof( mbedtls_lmots_public_t ) ); if( ctx->ots_public_keys == NULL ) { From 98d6e2205090e26f20f56f7839edb153c54cdc81 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 23 Sep 2022 09:04:04 +0100 Subject: [PATCH 0610/1028] Remove doxygen markup from internal LMS functions Signed-off-by: Raef Coles --- library/lmots.c | 86 ++++++++++++++++++++++++------------------------- library/lms.c | 72 ++++++++++++++++++++--------------------- 2 files changed, 79 insertions(+), 79 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index d733dc02e6..bdcd44570e 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -102,12 +102,12 @@ unsigned int network_bytes_to_unsigned_int( size_t len, * string. See NIST SP800-208 section 3.1 or RFC8554 Algorithm 2 for details of * the checksum algorithm. * - * \param params The LMOTS parameter set, I and q values which - * describe the key being used. + * params The LMOTS parameter set, I and q values which + * describe the key being used. * - * \param digest The digit string to create the digest from. As - * this does not contain a checksum, it is the same - * size as a hash output. + * digest The digit string to create the digest from. As + * this does not contain a checksum, it is the same + * size as a hash output. */ static unsigned short lmots_checksum_calculate( const mbedtls_lmots_parameters_t *params, const unsigned char* digest ) @@ -128,23 +128,23 @@ static unsigned short lmots_checksum_calculate( const mbedtls_lmots_parameters_t * SP800-208 section 3.1 or RFC8554 Algorithm 3 step 5 (also used in Algorithm * 4b step 3) for details. * - * \param params The LMOTS parameter set, I and q values which - * describe the key being used. + * params The LMOTS parameter set, I and q values which + * describe the key being used. * - * \param msg The message that will be hashed to create the - * digest. + * msg The message that will be hashed to create the + * digest. * - * \param msg_size The size of the message. + * msg_size The size of the message. * - * \param C_random_value The random value that will be combined with the - * message digest. This is always the same size as a - * hash output for whichever hash algorithm is - * determined by the parameter set. + * C_random_value The random value that will be combined with the + * message digest. This is always the same size as a + * hash output for whichever hash algorithm is + * determined by the parameter set. * - * \param output An output containing the digit string (+ - * checksum) of length P digits (in the case of - * MBEDTLS_LMOTS_SHA256_N32_W8, this means it is of - * size P bytes). + * output An output containing the digit string (+ + * checksum) of length P digits (in the case of + * MBEDTLS_LMOTS_SHA256_N32_W8, this means it is of + * size P bytes). */ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *params, const unsigned char *msg, @@ -216,27 +216,27 @@ exit: * Algorithm 3 step 5), and to calculate a public key candidate from a * signature and message (RFC8554 Algorithm 4b step 3). * - * \param params The LMOTS parameter set, I and q values which - * describe the key being used. + * params The LMOTS parameter set, I and q values which + * describe the key being used. * - * \param x_digit_array The array of digits (of size P, 34 in the case of - * MBEDTLS_LMOTS_SHA256_N32_W8). + * x_digit_array The array of digits (of size P, 34 in the case of + * MBEDTLS_LMOTS_SHA256_N32_W8). * - * \param hash_idx_min_values An array of the starting values of the j iterator - * for each of the members of the digit array. If - * this value in NULL, then all iterators will start - * at 0. + * hash_idx_min_values An array of the starting values of the j iterator + * for each of the members of the digit array. If + * this value in NULL, then all iterators will start + * at 0. * - * \param hash_idx_max_values An array of the upper bound values of the j - * iterator for each of the members of the digit - * array. If this value in NULL, then iterator is - * bounded to be less than 2^w - 1 (255 in the case - * of MBEDTLS_LMOTS_SHA256_N32_W8) + * hash_idx_max_values An array of the upper bound values of the j + * iterator for each of the members of the digit + * array. If this value in NULL, then iterator is + * bounded to be less than 2^w - 1 (255 in the case + * of MBEDTLS_LMOTS_SHA256_N32_W8) * - * \param output An array containing a hash output for each member - * of the digit string P. In the case of - * MBEDTLS_LMOTS_SHA256_N32_W8, this is of size 32 * - * 34. + * output An array containing a hash output for each member + * of the digit string P. In the case of + * MBEDTLS_LMOTS_SHA256_N32_W8, this is of size 32 * + * 34. */ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, const unsigned char *x_digit_array, @@ -345,15 +345,15 @@ exit: * step 4), and to calculate a public key candidate from a signature and message * (RFC8554 Algorithm 4b step 3). * - * \param params The LMOTS parameter set, I and q values which describe - * the key being used. - * \param y_hashed_digits The array of hashes, one hash for each digit of the - * symbol array (which is of size P, 34 in the case of - * MBEDTLS_LMOTS_SHA256_N32_W8) + * params The LMOTS parameter set, I and q values which describe + * the key being used. + * y_hashed_digits The array of hashes, one hash for each digit of the + * symbol array (which is of size P, 34 in the case of + * MBEDTLS_LMOTS_SHA256_N32_W8) * - * \param pub_key The output public key (or candidate public key in - * case this is being run as part of signature - * verification), in the form of a hash output. + * pub_key The output public key (or candidate public key in + * case this is being run as part of signature + * verification), in the form of a hash output. */ static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t *params, const unsigned char *y_hashed_digits, diff --git a/library/lms.c b/library/lms.c index f1230c7e70..7ec2b103fa 100644 --- a/library/lms.c +++ b/library/lms.c @@ -87,19 +87,19 @@ static const unsigned char D_INTR_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; * public key and some other parameters like the leaf index). This function * implements RFC8554 section 5.3, in the case where r >= 2^h. * - * \param params The LMS parameter set, the underlying LMOTS - * parameter set, and I value which describe the key - * being used. + * params The LMS parameter set, the underlying LMOTS + * parameter set, and I value which describe the key + * being used. * - * \param pub_key The public key of the private whose index - * corresponds to the index of this leaf node. This - * is a hash output. + * pub_key The public key of the private whose index + * corresponds to the index of this leaf node. This + * is a hash output. * - * \param r_node_idx The index of this node in the merkle tree. Note - * that the root node of the merkle tree is - * 1-indexed. + * r_node_idx The index of this node in the merkle tree. Note + * that the root node of the merkle tree is + * 1-indexed. * - * \param out The output node value, which is a hash output. + * out The output node value, which is a hash output. */ static int create_merkle_leaf_value( const mbedtls_lms_parameters_t *params, unsigned char *pub_key, @@ -157,23 +157,23 @@ exit: * of a public key and some other parameters like the node index). This function * implements RFC8554 section 5.3, in the case where r < 2^h. * - * \param params The LMS parameter set, the underlying LMOTS - * parameter set, and I value which describe the key - * being used. + * params The LMS parameter set, the underlying LMOTS + * parameter set, and I value which describe the key + * being used. * - * \param left_node The value of the child of this node which is on - * the left-hand side. As with all nodes on the - * merkle tree, this is a hash output. + * left_node The value of the child of this node which is on + * the left-hand side. As with all nodes on the + * merkle tree, this is a hash output. * - * \param right_node The value of the child of this node which is on - * the right-hand side. As with all nodes on the - * merkle tree, this is a hash output. + * right_node The value of the child of this node which is on + * the right-hand side. As with all nodes on the + * merkle tree, this is a hash output. * - * \param r_node_idx The index of this node in the merkle tree. Note - * that the root node of the merkle tree is - * 1-indexed. + * r_node_idx The index of this node in the merkle tree. Note + * that the root node of the merkle tree is + * 1-indexed. * - * \param out The output node value, which is a hash output. + * out The output node value, which is a hash output. */ static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, const unsigned char *left_node, @@ -408,15 +408,15 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, * implements RFC8554 section 5.3, and is used to generate a public key (as the * public key is the root node of the merkle tree). * - * \param ctx The LMS private context, containing a parameter - * set and private key material consisting of both - * public and private OTS. + * ctx The LMS private context, containing a parameter + * set and private key material consisting of both + * public and private OTS. * - * \param tree The output tree, which is 2^(H + 1) hash outputs. - * In the case of H=10 we have 2048 tree nodes (of - * which 1024 of them are leaf nodes). Note that - * because the merkle tree root is 1-indexed, the 0 - * index tree node is never used. + * tree The output tree, which is 2^(H + 1) hash outputs. + * In the case of H=10 we have 2048 tree nodes (of + * which 1024 of them are leaf nodes). Note that + * because the merkle tree root is 1-indexed, the 0 + * index tree node is never used. */ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, unsigned char *tree ) @@ -465,13 +465,13 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, * and return the full path. This function implements RFC8554 section 5.4.1, as * the merkle path is the main component of an LMS signature. * - * \param ctx The LMS private context, containing a parameter - * set and private key material consisting of both - * public and private OTS. + * ctx The LMS private context, containing a parameter + * set and private key material consisting of both + * public and private OTS. * - * \param leaf_node_id Which leaf node to calculate the path from. + * leaf_node_id Which leaf node to calculate the path from. * - * \param tree The output path, which is H hash outputs. + * tree The output path, which is H hash outputs. */ static int get_merkle_path( mbedtls_lms_private_t *ctx, unsigned int leaf_node_id, From 3982040232bfa983439d28edb831291a8121f4d0 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 23 Sep 2022 09:12:54 +0100 Subject: [PATCH 0611/1028] Fix LMS zeroization using wrong sizeof type Causing a buffer write out of bounds Signed-off-by: Raef Coles --- library/lms.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/lms.c b/library/lms.c index 7ec2b103fa..653530c75d 100644 --- a/library/lms.c +++ b/library/lms.c @@ -525,7 +525,7 @@ void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ) mbedtls_free( ctx->ots_public_keys ); } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ); + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_private_t ) ); } From 403558c1c96256737cffb20822e3869d1f4721fa Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 23 Sep 2022 17:03:53 +0100 Subject: [PATCH 0612/1028] Fix LMS function documentation Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 3e84ce0575..9a8afa1c40 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -269,7 +269,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, * \param ctx The initialized LMS public context to generate the key * from and store it into. * - * \param ctx The LMS private context to read the private key + * \param priv_ctx The LMS private context to read the private key * from. This must have been initialized and contain a * private key. * From 40158e11fc6bd46ebbf759eab3958fb562c595ac Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 27 Sep 2022 10:23:53 +0100 Subject: [PATCH 0613/1028] Add LMOTS test hook to header Signed-off-by: Raef Coles --- library/lmots.h | 4 ++++ tests/suites/test_suite_lmots.function | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/library/lmots.h b/library/lmots.h index f6daa0bcca..d0379e3a2d 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -139,6 +139,10 @@ typedef struct { } mbedtls_lmots_private_t; #endif /* MBEDTLS_LMS_PRIVATE */ +#if defined(MBEDTLS_TEST_HOOKS) +extern int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * ); +#endif /* defined(MBEDTLS_TEST_HOOKS) */ + /** * \brief This function converts an unsigned int into a * network-byte-order (big endian) string. diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index d7067dfe00..dd8a665d58 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -3,8 +3,6 @@ #include "mbedtls/lms.h" #if defined(MBEDTLS_TEST_HOOKS) -extern int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * ); - int check_lmots_private_key_for_leak(unsigned char * sig) { size_t idx; From ad05425ab75951763490d64df931759e0087a318 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 27 Sep 2022 10:59:16 +0100 Subject: [PATCH 0614/1028] Update naming of internal LMS functions To comply with the mbedtls_ requirement Signed-off-by: Raef Coles --- library/lmots.c | 53 ++++++++++++++++++++++++++----------------------- library/lmots.h | 8 ++++---- library/lms.c | 35 +++++++++++++++++--------------- 3 files changed, 51 insertions(+), 45 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index bdcd44570e..6846d4cde4 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -73,8 +73,8 @@ static const unsigned char D_MESSAGE_CONSTANT_BYTES[D_CONST_LEN] = {0x81, 0x81}; int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * ) = NULL; #endif /* defined(MBEDTLS_TEST_HOOKS) */ -void unsigned_int_to_network_bytes( unsigned int val, size_t len, - unsigned char *bytes ) +void mbedtls_lms_unsigned_int_to_network_bytes( unsigned int val, size_t len, + unsigned char *bytes ) { size_t idx; @@ -84,8 +84,8 @@ void unsigned_int_to_network_bytes( unsigned int val, size_t len, } } -unsigned int network_bytes_to_unsigned_int( size_t len, - const unsigned char *bytes ) +unsigned int mbedtls_lms_network_bytes_to_unsigned_int( size_t len, + const unsigned char *bytes ) { size_t idx; unsigned int val = 0; @@ -200,8 +200,8 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p goto exit; checksum = lmots_checksum_calculate( params, out ); - unsigned_int_to_network_bytes( checksum, CHECKSUM_LEN, - out + MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); + mbedtls_lms_unsigned_int_to_network_bytes( checksum, CHECKSUM_LEN, + out + MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); exit: psa_hash_abort( &op ); @@ -295,15 +295,17 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, if( ret != 0 ) goto exit; - unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, - i_digit_idx_bytes ); + mbedtls_lms_unsigned_int_to_network_bytes( i_digit_idx, + I_DIGIT_IDX_LEN, + i_digit_idx_bytes ); status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret != 0 ) goto exit; - unsigned_int_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, - j_hash_idx_bytes ); + mbedtls_lms_unsigned_int_to_network_bytes( j_hash_idx, + J_HASH_IDX_LEN, + j_hash_idx_bytes ); status = psa_hash_update( &op, j_hash_idx_bytes, J_HASH_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret != 0 ) @@ -438,8 +440,8 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, const unsigned char *key, size_t key_len ) { ctx->params.type = - network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); if( key_len < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) { @@ -541,7 +543,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); @@ -611,11 +613,12 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, I_key_identifier, sizeof( ctx->params.I_key_identifier ) ); - unsigned_int_to_network_bytes( q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - ctx->params.q_leaf_identifier ); + mbedtls_lms_unsigned_int_to_network_bytes( q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + ctx->params.q_leaf_identifier ); - unsigned_int_to_network_bytes( 0xFF, sizeof( const_bytes ), const_bytes ); + mbedtls_lms_unsigned_int_to_network_bytes( 0xFF, sizeof( const_bytes ), + const_bytes ); for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(ctx->params.type); @@ -640,8 +643,8 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, if( ret ) goto exit; - unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, - i_digit_idx_bytes ); + mbedtls_lms_unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, + i_digit_idx_bytes ); status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) @@ -731,9 +734,9 @@ int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - unsigned_int_to_network_bytes( ctx->params.type, - MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, + MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, ctx->params.I_key_identifier, @@ -810,9 +813,9 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( ret ); } - unsigned_int_to_network_bytes( ctx->params.type, - MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, + MBEDTLS_LMOTS_TYPE_LEN, + sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); /* Test hook to check if sig is being written to before we invalidate the * private key. diff --git a/library/lmots.h b/library/lmots.h index d0379e3a2d..05bd55a70b 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -151,8 +151,8 @@ extern int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * * \param len The length of the string. * \param bytes The string to output into. */ -void unsigned_int_to_network_bytes( unsigned int val, size_t len, - unsigned char *bytes ); +void mbedtls_lms_unsigned_int_to_network_bytes( unsigned int val, size_t len, + unsigned char *bytes ); /** * \brief This function converts a network-byte-order @@ -163,8 +163,8 @@ void unsigned_int_to_network_bytes( unsigned int val, size_t len, * * \return The corresponding LMS error code. */ -unsigned int network_bytes_to_unsigned_int( size_t len, - const unsigned char *bytes ); +unsigned int mbedtls_lms_network_bytes_to_unsigned_int( size_t len, + const unsigned char *bytes ); /** * \brief This function converts a \ref psa_status_t to a diff --git a/library/lms.c b/library/lms.c index 653530c75d..cd39502a62 100644 --- a/library/lms.c +++ b/library/lms.c @@ -124,7 +124,7 @@ static int create_merkle_leaf_value( const mbedtls_lms_parameters_t *params, if( ret != 0 ) goto exit; - unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); + mbedtls_lms_unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); status = psa_hash_update( &op, r_node_idx_bytes, 4 ); ret = mbedtls_lms_error_from_psa( status ); if( ret != 0 ) @@ -199,7 +199,7 @@ static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, if( ret != 0 ) goto exit; - unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); + mbedtls_lms_unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); status = psa_hash_update( &op, r_node_idx_bytes, 4 ); ret = mbedtls_lms_error_from_psa( status ); if( ret != 0 ) @@ -255,7 +255,7 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } - type = network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, + type = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); if( type != MBEDTLS_LMS_SHA256_M32_H10 ) { @@ -263,7 +263,7 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, } ctx->params.type = type; - otstype = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + otstype = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); if( otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) { @@ -319,14 +319,14 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } - if( network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, + if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype)) != MBEDTLS_LMS_SHA256_M32_H10 ) { @@ -334,8 +334,8 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, } - q_leaf_identifier = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); + q_leaf_identifier = mbedtls_lms_network_bytes_to_unsigned_int( + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); if( q_leaf_identifier >= MERKLE_TREE_LEAF_NODE_AM(ctx->params.type) ) { @@ -345,9 +345,9 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, memcpy( ots_params.I_key_identifier, ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - unsigned_int_to_network_bytes( q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - ots_params.q_leaf_identifier ); + mbedtls_lms_unsigned_int_to_network_bytes( q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + ots_params.q_leaf_identifier ); ots_params.type = ctx->params.otstype; ret = mbedtls_lmots_calculate_public_key_candidate( &ots_params, msg, @@ -676,10 +676,11 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - unsigned_int_to_network_bytes( + mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); - unsigned_int_to_network_bytes( ctx->params.otstype, MBEDTLS_LMOTS_TYPE_LEN, + mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.otstype, + MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, ctx->params.I_key_identifier, @@ -748,10 +749,12 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( ret ); } - unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMS_TYPE_LEN, + mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, + MBEDTLS_LMS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype) ); - unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); + mbedtls_lms_unsigned_int_to_network_bytes( q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); ret = get_merkle_path( ctx, MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, From 57d5328ad5197092d3c47c71244326267e02d4a3 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 27 Sep 2022 11:30:51 +0100 Subject: [PATCH 0615/1028] Remove MBEDTLS_LM(OT)S prefix from internal macros Signed-off-by: Raef Coles --- library/lmots.c | 30 +++++++++++----------- library/lms.c | 68 ++++++++++++++++++++++++------------------------- 2 files changed, 49 insertions(+), 49 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 6846d4cde4..e196635c36 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -44,13 +44,13 @@ #include "psa/crypto.h" -#define MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET (0) -#define MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET + \ - MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET + \ - MBEDTLS_LMOTS_I_KEY_ID_LEN) -#define MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET + \ - MBEDTLS_LMOTS_Q_LEAF_ID_LEN) +#define PUBLIC_KEY_TYPE_OFFSET (0) +#define PUBLIC_KEY_I_KEY_ID_OFFSET (PUBLIC_KEY_TYPE_OFFSET + \ + MBEDTLS_LMOTS_TYPE_LEN) +#define PUBLIC_KEY_Q_LEAF_ID_OFFSET (PUBLIC_KEY_I_KEY_ID_OFFSET + \ + MBEDTLS_LMOTS_I_KEY_ID_LEN) +#define PUBLIC_KEY_KEY_HASH_OFFSET (PUBLIC_KEY_Q_LEAF_ID_OFFSET + \ + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) /* We only support parameter sets that use 8-bit digits, as it does not require * translation logic between digits and bytes */ @@ -61,7 +61,7 @@ #define D_CONST_LEN (2) /* Currently only defined for SHA256, 32 is the max hash output size */ -#define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN_MAX (MBEDTLS_LMOTS_N_HASH_LEN_MAX) +#define C_RANDOM_VALUE_LEN_MAX (MBEDTLS_LMOTS_N_HASH_LEN_MAX) #define DIGIT_MAX_VALUE ((1u << W_WINTERNITZ_PARAMETER) - 1u) @@ -449,15 +449,15 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, } memcpy( ctx->params.I_key_identifier, - key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, + key + PUBLIC_KEY_I_KEY_ID_OFFSET, MBEDTLS_LMOTS_I_KEY_ID_LEN ); memcpy( ctx->params.q_leaf_identifier, - key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, + key + PUBLIC_KEY_Q_LEAF_ID_OFFSET, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); memcpy( ctx->public_key, - key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, + key + PUBLIC_KEY_KEY_HASH_OFFSET, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); ctx->have_public_key = 1; @@ -738,15 +738,15 @@ int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); - memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, + memcpy( key + PUBLIC_KEY_I_KEY_ID_OFFSET, ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, + memcpy( key + PUBLIC_KEY_Q_LEAF_ID_OFFSET, ctx->params.q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, ctx->public_key, + memcpy( key + PUBLIC_KEY_KEY_HASH_OFFSET, ctx->public_key, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); if( key_len != NULL ) @@ -771,7 +771,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, * key. */ unsigned char tmp_sig[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; - unsigned char tmp_c_random[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN_MAX]; + unsigned char tmp_c_random[C_RANDOM_VALUE_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if( msg == NULL && msg_size != 0 ) diff --git a/library/lms.c b/library/lms.c index cd39502a62..d3801c73f3 100644 --- a/library/lms.c +++ b/library/lms.c @@ -54,26 +54,26 @@ #define mbedtls_free free #endif -#define MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET (0) -#define MBEDTLS_LMS_SIG_OTS_SIG_OFFSET (MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET + \ - MBEDTLS_LMOTS_Q_LEAF_ID_LEN) -#define MBEDTLS_LMS_SIG_TYPE_OFFSET(otstype) (MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + \ - MBEDTLS_LMOTS_SIG_LEN(otstype)) -#define MBEDTLS_LMS_SIG_PATH_OFFSET(otstype) (MBEDTLS_LMS_SIG_TYPE_OFFSET(otstype) + \ - MBEDTLS_LMS_TYPE_LEN) +#define SIG_Q_LEAF_ID_OFFSET (0) +#define SIG_OTS_SIG_OFFSET (SIG_Q_LEAF_ID_OFFSET + \ + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) +#define SIG_TYPE_OFFSET(otstype) (SIG_OTS_SIG_OFFSET + \ + MBEDTLS_LMOTS_SIG_LEN(otstype)) +#define SIG_PATH_OFFSET(otstype) (SIG_TYPE_OFFSET(otstype) + \ + MBEDTLS_LMS_TYPE_LEN) -#define MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET (0) -#define MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET + \ - MBEDTLS_LMS_TYPE_LEN) -#define MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET + \ - MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET + \ - MBEDTLS_LMOTS_I_KEY_ID_LEN) +#define PUBLIC_KEY_TYPE_OFFSET (0) +#define PUBLIC_KEY_OTSTYPE_OFFSET (PUBLIC_KEY_TYPE_OFFSET + \ + MBEDTLS_LMS_TYPE_LEN) +#define PUBLIC_KEY_I_KEY_ID_OFFSET (PUBLIC_KEY_OTSTYPE_OFFSET + \ + MBEDTLS_LMOTS_TYPE_LEN) +#define PUBLIC_KEY_ROOT_NODE_OFFSET (PUBLIC_KEY_I_KEY_ID_OFFSET + \ + MBEDTLS_LMOTS_I_KEY_ID_LEN) /* Currently only support H=10 */ -#define MBEDTLS_LMS_H_TREE_HEIGHT_MAX 10 -#define MERKLE_TREE_NODE_AM_MAX (1u << (MBEDTLS_LMS_H_TREE_HEIGHT_MAX + 1u)) +#define H_TREE_HEIGHT_MAX 10 +#define MERKLE_TREE_NODE_AM_MAX (1u << (H_TREE_HEIGHT_MAX + 1u)) #define MERKLE_TREE_NODE_AM(type) (1u << (MBEDTLS_LMS_H_TREE_HEIGHT(type) + 1u)) #define MERKLE_TREE_LEAF_NODE_AM(type) (1u << MBEDTLS_LMS_H_TREE_HEIGHT(type)) #define MERKLE_TREE_INTERNAL_NODE_AM(type) (1u << MBEDTLS_LMS_H_TREE_HEIGHT(type)) @@ -256,7 +256,7 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, } type = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, - key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); + key + PUBLIC_KEY_TYPE_OFFSET ); if( type != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); @@ -264,7 +264,7 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, ctx->params.type = type; otstype = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); + key + PUBLIC_KEY_OTSTYPE_OFFSET ); if( otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); @@ -272,9 +272,9 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, ctx->params.otstype = otstype; memcpy( ctx->params.I_key_identifier, - key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, + key + PUBLIC_KEY_I_KEY_ID_OFFSET, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( ctx->T_1_pub_key, key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, + memcpy( ctx->T_1_pub_key, key + PUBLIC_KEY_ROOT_NODE_OFFSET, MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); ctx->have_public_key = 1; @@ -320,14 +320,14 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, } if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) + sig + SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype)) + sig + SIG_TYPE_OFFSET(ctx->params.otstype)) != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); @@ -335,7 +335,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, q_leaf_identifier = mbedtls_lms_network_bytes_to_unsigned_int( - MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + SIG_Q_LEAF_ID_OFFSET ); if( q_leaf_identifier >= MERKLE_TREE_LEAF_NODE_AM(ctx->params.type) ) { @@ -351,7 +351,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, ots_params.type = ctx->params.otstype; ret = mbedtls_lmots_calculate_public_key_candidate( &ots_params, msg, - msg_size, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, + msg_size, sig + SIG_OTS_SIG_OFFSET, MBEDTLS_LMOTS_SIG_LEN(ctx->params.otstype), Kc_candidate_ots_pub_key, sizeof( Kc_candidate_ots_pub_key ), NULL ); if( ret != 0 ) @@ -376,14 +376,14 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, /* Left/right node ordering matters for the hash */ if( curr_node_id & 1 ) { - left_node = sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) + + left_node = sig + SIG_PATH_OFFSET(ctx->params.otstype) + height * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type); right_node = Tc_candidate_root_node; } else { left_node = Tc_candidate_root_node; - right_node = sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) + + right_node = sig + SIG_PATH_OFFSET(ctx->params.otstype) + height * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type); } @@ -678,14 +678,14 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, - MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); + MBEDTLS_LMS_TYPE_LEN, key + PUBLIC_KEY_TYPE_OFFSET ); mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.otstype, MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); - memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, + key + PUBLIC_KEY_OTSTYPE_OFFSET ); + memcpy( key + PUBLIC_KEY_I_KEY_ID_OFFSET, ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, + memcpy( key +PUBLIC_KEY_ROOT_NODE_OFFSET, ctx->T_1_pub_key, MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); @@ -741,7 +741,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, ret = mbedtls_lmots_sign( &ctx->ots_private_keys[q_leaf_identifier], f_rng, p_rng, msg, msg_size, - sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, + sig + SIG_OTS_SIG_OFFSET, MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype), NULL ); if( ret != 0 ) @@ -751,14 +751,14 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype) ); + sig + SIG_TYPE_OFFSET(ctx->params.otstype) ); mbedtls_lms_unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); + sig + SIG_Q_LEAF_ID_OFFSET ); ret = get_merkle_path( ctx, MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, - sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) ); + sig + SIG_PATH_OFFSET(ctx->params.otstype) ); if( ret != 0 ) { return( ret ); From 98c504373c853b6f009e88fdb45b5f2e754c5e33 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 27 Sep 2022 12:56:34 +0100 Subject: [PATCH 0616/1028] Update LMS test description To correct copy-paste error Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index d890dd4ddc..1b1423031a 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -61,7 +61,7 @@ LMS negative test (invalid lm_ots type) #2 # (0x6) but an invalid LMOTS type, and should fail with a bad input data error. lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA -LMS negative test (invalid lm_ots type) #2 +LMS negative test (invalid leaf ID) # This test uses a null (zeroed) message/signature/public key trio, with the # only parts set being the LMS and LMOTS types and the leaf ID. In this case, # the leaf ID is 1024, which is invalid for MBEDTLS_LMS_SHA256_M32_H10. This From 0b7da1b7870a2af6942f687e1c55eccafc9c29ee Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 27 Sep 2022 13:45:30 +0100 Subject: [PATCH 0617/1028] Fix overflow in LMS context init Signed-off-by: Raef Coles --- library/lms.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/lms.c b/library/lms.c index d3801c73f3..1c66946d75 100644 --- a/library/lms.c +++ b/library/lms.c @@ -506,7 +506,7 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, void mbedtls_lms_init_private( mbedtls_lms_private_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_private_t ) ) ; } void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ) From a7e03adef57474daf0e01ae42e4f4800b958c02c Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 28 Sep 2022 09:32:48 +0100 Subject: [PATCH 0618/1028] Disable LMS in all.sh when PSA isn't enabled Signed-off-by: Raef Coles --- tests/scripts/all.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 1d2ee406c5..379d6755bf 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1246,6 +1246,7 @@ component_test_full_no_cipher () { scripts/config.py unset MBEDTLS_SSL_PROTO_TLS1_3 scripts/config.py unset MBEDTLS_SSL_SRV_C scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO + scripts/config.py unset MBEDTLS_LMS_C make msg "test: full minus CIPHER" @@ -1268,6 +1269,7 @@ component_test_crypto_full_no_cipher () { scripts/config.py unset MBEDTLS_PSA_CRYPTO_SE_C scripts/config.py unset MBEDTLS_PSA_CRYPTO_STORAGE_C scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO + scripts/config.py unset MBEDTLS_LMS_C make msg "test: crypto_full minus CIPHER" @@ -1829,6 +1831,7 @@ component_test_no_use_psa_crypto_full_cmake_asan() { scripts/config.py unset MBEDTLS_PSA_ITS_FILE_C scripts/config.py unset MBEDTLS_PSA_CRYPTO_SE_C scripts/config.py unset MBEDTLS_PSA_CRYPTO_STORAGE_C + scripts/config.py unset MBEDTLS_LMS_C CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . make From 47bccb7e474705cb31fc7553fe0606cbe9bb108c Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 28 Sep 2022 12:00:20 +0100 Subject: [PATCH 0619/1028] Disable LMS_PRIVATE in all.sh when LMS is disabled Signed-off-by: Raef Coles --- tests/scripts/all.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 379d6755bf..55d55f82c2 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1247,6 +1247,7 @@ component_test_full_no_cipher () { scripts/config.py unset MBEDTLS_SSL_SRV_C scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE make msg "test: full minus CIPHER" @@ -1270,6 +1271,7 @@ component_test_crypto_full_no_cipher () { scripts/config.py unset MBEDTLS_PSA_CRYPTO_STORAGE_C scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE make msg "test: crypto_full minus CIPHER" @@ -1832,6 +1834,7 @@ component_test_no_use_psa_crypto_full_cmake_asan() { scripts/config.py unset MBEDTLS_PSA_CRYPTO_SE_C scripts/config.py unset MBEDTLS_PSA_CRYPTO_STORAGE_C scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . make From b4568c5423219922a858561dafafa1067c3a9687 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 28 Sep 2022 17:11:42 +0100 Subject: [PATCH 0620/1028] Disable LMS in PSA crypto client test Signed-off-by: Raef Coles --- tests/scripts/all.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 55d55f82c2..c3a39bcd27 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -987,6 +987,8 @@ component_test_psa_crypto_client () { scripts/config.py unset MBEDTLS_PSA_CRYPTO_C scripts/config.py unset MBEDTLS_PSA_CRYPTO_STORAGE_C scripts/config.py set MBEDTLS_PSA_CRYPTO_CLIENT + scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE make msg "test: default config - PSA_CRYPTO_C + PSA_CRYPTO_CLIENT, make" From ab300f15e8e3e695585a2ec9edb5b888bc13937b Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 28 Sep 2022 17:12:41 +0100 Subject: [PATCH 0621/1028] Move public header content from lmots.h to lms.h Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 84 +++++++++++++++++++++++++++++++++++++++++-- library/lmots.h | 83 ++---------------------------------------- 2 files changed, 84 insertions(+), 83 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 9a8afa1c40..dba8835f07 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -30,8 +30,6 @@ #include #include -#include "lmots.h" - #include "mbedtls/build_info.h" #define MBEDTLS_ERR_LMS_BAD_INPUT_DATA -0x0011 /**< Bad data has been input to an LMS function */ @@ -40,6 +38,13 @@ #define MBEDTLS_ERR_LMS_ALLOC_FAILED -0x0017 /**< LMS failed to allocate space for a private key */ #define MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL -0x0019 /**< Input/output buffer is too small to contain requited data */ +/* Currently only defined for SHA256, 32 is the max hash output size */ +#define MBEDTLS_LMOTS_N_HASH_LEN_MAX (32u) +#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX (34u) +#define MBEDTLS_LMOTS_N_HASH_LEN(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 32u : 0) +#define MBEDTLS_LMOTS_I_KEY_ID_LEN (16u) +#define MBEDTLS_LMOTS_Q_LEAF_ID_LEN (4u) + #define MBEDTLS_LMS_TYPE_LEN (4) #define MBEDTLS_LMS_H_TREE_HEIGHT(type) (type == MBEDTLS_LMS_SHA256_M32_H10 ? 10u : 0) @@ -76,6 +81,81 @@ typedef enum { MBEDTLS_LMS_SHA256_M32_H10 = 0x6, } mbedtls_lms_algorithm_type_t; +/** The Identifier of the LMOTS parameter set, as per + * https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml. + * We are only implementing a subset of the types, particularly N32_W8, for the sake of simplicty. + */ +typedef enum { + MBEDTLS_LMOTS_SHA256_N32_W8 = 4 +} mbedtls_lmots_algorithm_type_t; + +/** LMOTS parameters structure. + * + * This contains the metadata associated with an LMOTS key, detailing the + * algorithm type, the key ID, and the leaf identifier should be key be part of + * a LMS key. + */ +typedef struct { + unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); /*!< The key + identifier. */ + unsigned char MBEDTLS_PRIVATE(q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN]); /*!< Which + leaf of the LMS key this is. + 0 if the key is not part of an LMS key. */ + mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LM-OTS key type identifier as + per IANA. Only SHA256_N32_W8 is + currently supported. */ +} mbedtls_lmots_parameters_t; + +/** LMOTS public context structure. + * + * A LMOTS public key is a hash output, and the applicable parameter set. + * + * The context must be initialized before it is used. A public key must either + * be imported or generated from a private context. + * + * \dot + * digraph lmots_public_t { + * UNINITIALIZED -> INIT [label="init"]; + * HAVE_PUBLIC_KEY -> INIT [label="free"]; + * INIT -> HAVE_PUBLIC_KEY [label="import_public_key"]; + * INIT -> HAVE_PUBLIC_KEY [label="calculate_public_key from private key"]; + * HAVE_PUBLIC_KEY -> HAVE_PUBLIC_KEY [label="export_public_key"]; + * } + * \enddot + */ +typedef struct { + mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); + unsigned char MBEDTLS_PRIVATE(public_key)[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; + unsigned char MBEDTLS_PRIVATE(have_public_key); /*!< Whether the context contains a public key. + Boolean values only. */ +} mbedtls_lmots_public_t; + +#ifdef MBEDTLS_LMS_PRIVATE +/** LMOTS private context structure. + * + * A LMOTS private key is one hash output for each of digit of the digest + + * checksum, and the applicable parameter set. + * + * The context must be initialized before it is used. A public key must either + * be imported or generated from a private context. + * + * \dot + * digraph lmots_public_t { + * UNINITIALIZED -> INIT [label="init"]; + * HAVE_PRIVATE_KEY -> INIT [label="free"]; + * INIT -> HAVE_PRIVATE_KEY [label="generate_private_key"]; + * HAVE_PRIVATE_KEY -> INIT [label="sign"]; + * } + * \enddot + */ +typedef struct { + mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); + unsigned char MBEDTLS_PRIVATE(private_key)[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; + unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. + Boolean values only. */ +} mbedtls_lmots_private_t; +#endif /* MBEDTLS_LMS_PRIVATE */ + /** LMS parameters structure. * diff --git a/library/lmots.h b/library/lmots.h index 05bd55a70b..db945941cb 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -30,18 +30,14 @@ #include "psa/crypto.h" +#include "mbedtls/lms.h" + #include #include -/* Currently only defined for SHA256, 32 is the max hash output size */ -#define MBEDTLS_LMOTS_N_HASH_LEN_MAX (32u) -#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX (34u) -#define MBEDTLS_LMOTS_N_HASH_LEN(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 32u : 0) #define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 34u : 0) #define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) (MBEDTLS_LMOTS_N_HASH_LEN(type)) #define MBEDTLS_LMOTS_TYPE_LEN (4u) -#define MBEDTLS_LMOTS_I_KEY_ID_LEN (16u) -#define MBEDTLS_LMOTS_Q_LEAF_ID_LEN (4u) #define MBEDTLS_LMOTS_SIG_LEN(type) (MBEDTLS_LMOTS_TYPE_LEN + \ MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) + \ @@ -63,81 +59,6 @@ extern "C" { #endif -/** The Identifier of the LMS parameter set, as per - * https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml. - * We are only implementing a subset of the types, particularly N32_W8, for the sake of simplicty. - */ -typedef enum { - MBEDTLS_LMOTS_SHA256_N32_W8 = 4 -} mbedtls_lmots_algorithm_type_t; - - -/** LMOTS parameters structure. - * - * This contains the metadata associated with an LMOTS key, detailing the - * algorithm type, the key ID, and the leaf identifier should be key be part of - * a LMS key. - */ -typedef struct { - unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); /*!< The key - identifier. */ - unsigned char MBEDTLS_PRIVATE(q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN]); /*!< Which - leaf of the LMS key this is. - 0 if the key is not part of an LMS key. */ - mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LM-OTS key type identifier as - per IANA. Only SHA256_N32_W8 is - currently supported. */ -} mbedtls_lmots_parameters_t; - -/** LMOTS public context structure. - * - * A LMOTS public key is a hash output, and the applicable parameter set. - * - * The context must be initialized before it is used. A public key must either - * be imported or generated from a private context. - * - * \dot - * digraph lmots_public_t { - * UNINITIALIZED -> INIT [label="init"]; - * HAVE_PUBLIC_KEY -> INIT [label="free"]; - * INIT -> HAVE_PUBLIC_KEY [label="import_public_key"]; - * INIT -> HAVE_PUBLIC_KEY [label="calculate_public_key from private key"]; - * HAVE_PUBLIC_KEY -> HAVE_PUBLIC_KEY [label="export_public_key"]; - * } - * \enddot - */ -typedef struct { - mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); - unsigned char MBEDTLS_PRIVATE(public_key)[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; - unsigned char MBEDTLS_PRIVATE(have_public_key); /*!< Whether the context contains a public key. - Boolean values only. */ -} mbedtls_lmots_public_t; - -#ifdef MBEDTLS_LMS_PRIVATE -/** LMOTS private context structure. - * - * A LMOTS private key is one hash output for each of digit of the digest + - * checksum, and the applicable parameter set. - * - * The context must be initialized before it is used. A public key must either - * be imported or generated from a private context. - * - * \dot - * digraph lmots_public_t { - * UNINITIALIZED -> INIT [label="init"]; - * HAVE_PRIVATE_KEY -> INIT [label="free"]; - * INIT -> HAVE_PRIVATE_KEY [label="generate_private_key"]; - * HAVE_PRIVATE_KEY -> INIT [label="sign"]; - * } - * \enddot - */ -typedef struct { - mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); - unsigned char MBEDTLS_PRIVATE(private_key)[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; - unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. - Boolean values only. */ -} mbedtls_lmots_private_t; -#endif /* MBEDTLS_LMS_PRIVATE */ #if defined(MBEDTLS_TEST_HOOKS) extern int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * ); From 56fe20a47385cd5d6d03e5da9210ad601e1bca46 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 28 Sep 2022 17:56:39 +0100 Subject: [PATCH 0622/1028] Move MBEDTLS_PRIVATE required defines into lms.h From lmots.h, as it is a private header Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 9 +++++++++ library/lmots.h | 8 -------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index dba8835f07..1ba4f3abc0 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -44,6 +44,15 @@ #define MBEDTLS_LMOTS_N_HASH_LEN(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 32u : 0) #define MBEDTLS_LMOTS_I_KEY_ID_LEN (16u) #define MBEDTLS_LMOTS_Q_LEAF_ID_LEN (4u) +#define MBEDTLS_LMOTS_TYPE_LEN (4u) +#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 34u : 0) +#define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) (MBEDTLS_LMOTS_N_HASH_LEN(type)) + +#define MBEDTLS_LMOTS_SIG_LEN(type) (MBEDTLS_LMOTS_TYPE_LEN + \ + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) + \ + (MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) * \ + MBEDTLS_LMOTS_N_HASH_LEN(type))) + #define MBEDTLS_LMS_TYPE_LEN (4) #define MBEDTLS_LMS_H_TREE_HEIGHT(type) (type == MBEDTLS_LMS_SHA256_M32_H10 ? 10u : 0) diff --git a/library/lmots.h b/library/lmots.h index db945941cb..214321a5fd 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -35,14 +35,6 @@ #include #include -#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 34u : 0) -#define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) (MBEDTLS_LMOTS_N_HASH_LEN(type)) -#define MBEDTLS_LMOTS_TYPE_LEN (4u) - -#define MBEDTLS_LMOTS_SIG_LEN(type) (MBEDTLS_LMOTS_TYPE_LEN + \ - MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) + \ - (MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) * \ - MBEDTLS_LMOTS_N_HASH_LEN(type))) #define MBEDTLS_LMOTS_PUBLIC_KEY_LEN(type) (MBEDTLS_LMOTS_TYPE_LEN + \ MBEDTLS_LMOTS_I_KEY_ID_LEN + \ From 5127e859d77eb802f8a4631f9ae6be7dbda260ad Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 10:35:56 +0100 Subject: [PATCH 0623/1028] Update LMS and LMOTS dependency macros Signed-off-by: Raef Coles --- include/mbedtls/check_config.h | 4 ++-- include/mbedtls/lms.h | 12 ++++++------ include/mbedtls/mbedtls_config.h | 2 +- library/lmots.c | 8 ++++---- library/lmots.h | 4 ++-- library/lms.c | 8 ++++---- tests/suites/test_suite_lmots.function | 10 +++++----- tests/suites/test_suite_lms.function | 8 ++++---- 8 files changed, 28 insertions(+), 28 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 570d9dba27..4b2783174f 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -354,8 +354,8 @@ #endif #if defined(MBEDTLS_LMS_C) && \ - ( !defined(MBEDTLS_PSA_CRYPTO_C) ) -#error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C" + ( !defined(MBEDTLS_PSA_CRYPTO_C) && !defined(PSA_WANT_ALG_SHA256) ) +#error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C and PSA_WANT_ALG_SHA256" #endif #if defined(MBEDTLS_LMS_PRIVATE) && \ diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 1ba4f3abc0..40ab783151 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -139,7 +139,7 @@ typedef struct { Boolean values only. */ } mbedtls_lmots_public_t; -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) /** LMOTS private context structure. * * A LMOTS private key is one hash output for each of digit of the digest + @@ -163,7 +163,7 @@ typedef struct { unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lmots_private_t; -#endif /* MBEDTLS_LMS_PRIVATE */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ /** LMS parameters structure. @@ -209,7 +209,7 @@ typedef struct { } mbedtls_lms_public_t; -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) /** LMS private context structure. * * A LMS private key is a set of LMOTS private keys, an index to the next usable @@ -237,7 +237,7 @@ typedef struct { unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lms_private_t; -#endif /* MBEDTLS_LMS_PRIVATE */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ /** * \brief This function initializes an LMS public context @@ -301,7 +301,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, const unsigned char *msg, size_t msg_size, const unsigned char *sig, size_t sig_size ); -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) /** * \brief This function initializes an LMS private context * @@ -434,7 +434,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), void* p_rng, unsigned char *msg, unsigned int msg_size, unsigned char *sig, size_t sig_size, size_t *sig_len ); -#endif /* MBEDTLS_LMS_PRIVATE */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ #ifdef __cplusplus } diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index c0caf75623..4188afec98 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2485,7 +2485,7 @@ * * Uncomment to enable the LMS signature algorithm and private key operations. */ -// #define MBEDTLS_LMS_PRIVATE +//#define MBEDTLS_LMS_PRIVATE /** * \def MBEDTLS_NIST_KW_C diff --git a/library/lmots.c b/library/lmots.c index e196635c36..9a6c6be665 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -32,7 +32,7 @@ #include "common.h" -#ifdef MBEDTLS_LMS_C +#if defined(MBEDTLS_LMS_C) #include @@ -568,7 +568,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, return( 0 ); } -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ) { @@ -851,5 +851,5 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( 0 ); } -#endif /* MBEDTLS_LMS_PRIVATE */ -#endif /* MBEDTLS_LMS_C */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ +#endif /* defined(MBEDTLS_LMS_C) */ diff --git a/library/lmots.h b/library/lmots.h index 214321a5fd..37466b76e8 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -189,7 +189,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, size_t msg_size, const unsigned char *sig, size_t sig_size ); -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) /** * \brief This function initializes a private LMOTS context @@ -310,7 +310,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, void *p_rng, const unsigned char *msg, size_t msg_size, unsigned char *sig, size_t sig_size, size_t* sig_len ); -#endif /* MBEDTLS_LMS_PRIVATE */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ #ifdef __cplusplus } diff --git a/library/lms.c b/library/lms.c index 1c66946d75..6882a483e8 100644 --- a/library/lms.c +++ b/library/lms.c @@ -32,7 +32,7 @@ #include "common.h" -#ifdef MBEDTLS_LMS_C +#if defined(MBEDTLS_LMS_C) #include @@ -402,7 +402,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( 0 ); } -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) /* Calculate a full merkle tree based on a private key. This function * implements RFC8554 section 5.3, and is used to generate a public key (as the @@ -773,5 +773,5 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( 0 ); } -#endif /* MBEDTLS_LMS_PRIVATE */ -#endif /* MBEDTLS_LMS_C */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ +#endif /* defined(MBEDTLS_LMS_C) */ diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index dd8a665d58..85e1da71ed 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -24,11 +24,11 @@ int check_lmots_private_key_for_leak(unsigned char * sig) /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C + * depends_on:MBEDTLS_LMS_C * END_DEPENDENCIES */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lmots_sign_verify_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed ) { @@ -52,7 +52,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lmots_sign_verify_null_msg_test ( data_t *key_id, int leaf_id, data_t *seed ) { mbedtls_lmots_public_t pub_ctx; @@ -92,7 +92,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lmots_import_export_test ( data_t * pub_key ) { mbedtls_lmots_public_t ctx; @@ -113,7 +113,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lmots_reuse_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed ) { mbedtls_lmots_private_t ctx; diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 900392334d..3c23b3b4e0 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -4,11 +4,11 @@ /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C + * depends_on:MBEDTLS_LMS_C * END_DEPENDENCIES */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lms_sign_verify_test ( data_t *msg, data_t *seed ) { mbedtls_lms_public_t pub_ctx; @@ -44,7 +44,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lms_sign_verify_null_msg_test( data_t *seed ) { mbedtls_lms_public_t pub_ctx; @@ -97,7 +97,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lms_import_export_test ( data_t * pub_key ) { mbedtls_lms_public_t ctx; From f6ddd51bfd5d16b36f3ab7c470de6f6198787ae5 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 10:49:34 +0100 Subject: [PATCH 0624/1028] Sanitize LMS and LMOTS macros Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 40ab783151..c3dc3aa7a7 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -41,11 +41,11 @@ /* Currently only defined for SHA256, 32 is the max hash output size */ #define MBEDTLS_LMOTS_N_HASH_LEN_MAX (32u) #define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX (34u) -#define MBEDTLS_LMOTS_N_HASH_LEN(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 32u : 0) +#define MBEDTLS_LMOTS_N_HASH_LEN(type) ((type) == MBEDTLS_LMOTS_SHA256_N32_W8 ? 32u : 0) #define MBEDTLS_LMOTS_I_KEY_ID_LEN (16u) #define MBEDTLS_LMOTS_Q_LEAF_ID_LEN (4u) #define MBEDTLS_LMOTS_TYPE_LEN (4u) -#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 34u : 0) +#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) ((type) == MBEDTLS_LMOTS_SHA256_N32_W8 ? 34u : 0) #define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) (MBEDTLS_LMOTS_N_HASH_LEN(type)) #define MBEDTLS_LMOTS_SIG_LEN(type) (MBEDTLS_LMOTS_TYPE_LEN + \ @@ -55,15 +55,12 @@ #define MBEDTLS_LMS_TYPE_LEN (4) -#define MBEDTLS_LMS_H_TREE_HEIGHT(type) (type == MBEDTLS_LMS_SHA256_M32_H10 ? 10u : 0) +#define MBEDTLS_LMS_H_TREE_HEIGHT(type) ((type) == MBEDTLS_LMS_SHA256_M32_H10 ? 10u : 0) /* The length of a hash output, Currently only imlemented for SHA256. * Max is 32 bytes. */ -/* The length of a hash output, Currently only imlemented for SHA256. - * Max is 32 bytes. - */ -#define MBEDTLS_LMS_M_NODE_BYTES(type) (type == MBEDTLS_LMS_SHA256_M32_H10 ? 32 : 0) +#define MBEDTLS_LMS_M_NODE_BYTES(type) ((type) == MBEDTLS_LMS_SHA256_M32_H10 ? 32 : 0) #define MBEDTLS_LMS_M_NODE_BYTES_MAX 32 #define MBEDTLS_LMS_SIG_LEN(type, otstype) (MBEDTLS_LMOTS_Q_LEAF_ID_LEN + \ From 2ac352a3220abe016a4350a9ca36b50e9ed0a505 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 11:12:27 +0100 Subject: [PATCH 0625/1028] Make LMS functions args const where required Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 14 ++++++++------ library/lmots.c | 10 +++++----- library/lmots.h | 9 +++++---- library/lms.c | 13 +++++++------ 4 files changed, 25 insertions(+), 21 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index c3dc3aa7a7..5773c793c7 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -341,7 +341,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, mbedtls_lms_algorithm_type_t type, mbedtls_lmots_algorithm_type_t otstype, int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *seed, + void* p_rng, const unsigned char *seed, size_t seed_size ); /** @@ -363,7 +363,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, * \return A non-zero error code on failure. */ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, - mbedtls_lms_private_t *priv_ctx ); + const mbedtls_lms_private_t *priv_ctx ); /** * \brief This function exports an LMS public key from a @@ -388,8 +388,9 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key, - size_t key_size, size_t *key_len ); +int mbedtls_lms_export_public_key( const mbedtls_lms_public_t *ctx, + unsigned char *key, size_t key_size, + size_t *key_len ); /** * \brief This function creates a LMS signature, using a @@ -429,8 +430,9 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key */ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *msg, unsigned int msg_size, - unsigned char *sig, size_t sig_size, size_t *sig_len ); + void* p_rng, const unsigned char *msg, + unsigned int msg_size, unsigned char *sig, size_t sig_size, + size_t *sig_len ); #endif /* defined(MBEDTLS_LMS_PRIVATE) */ #ifdef __cplusplus diff --git a/library/lmots.c b/library/lmots.c index 9a6c6be665..055db8fb30 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -521,9 +521,9 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters return( 0 ); } -int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, - size_t msg_size, const unsigned char *sig, - size_t sig_size ) +int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, + const unsigned char *msg, size_t msg_size, + const unsigned char *sig, size_t sig_size ) { unsigned char Kc_public_key_candidate[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -684,7 +684,7 @@ exit: } int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, - mbedtls_lmots_private_t *priv_ctx ) + const mbedtls_lmots_private_t *priv_ctx ) { unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -720,7 +720,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, } -int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, +int mbedtls_lmots_export_public_key( const mbedtls_lmots_public_t *ctx, unsigned char *key, size_t key_size, size_t *key_len ) { diff --git a/library/lmots.h b/library/lmots.h index 37466b76e8..2f42a592cc 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -185,7 +185,8 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters * \return \c 0 on successful verification. * \return A non-zero error code on failure. */ -int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, +int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, + const unsigned char *msg, size_t msg_size, const unsigned char *sig, size_t sig_size ); @@ -208,7 +209,7 @@ void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ); void mbedtls_lmots_free_private( mbedtls_lmots_private_t *ctx ); /** - * \brief This function generates an LMOTS private key, and + * \brief This function calculates an LMOTS private key, and * stores in into an LMOTS context. * * \warning This function is **not intended for use in @@ -252,7 +253,7 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, * \return A non-zero error code on failure. */ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, - mbedtls_lmots_private_t *priv_ctx ); + const mbedtls_lmots_private_t *priv_ctx ); /** @@ -274,7 +275,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, +int mbedtls_lmots_export_public_key( const mbedtls_lmots_public_t *ctx, unsigned char *key, size_t key_size, size_t *key_len ); /** diff --git a/library/lms.c b/library/lms.c index 6882a483e8..50e6434b78 100644 --- a/library/lms.c +++ b/library/lms.c @@ -418,7 +418,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, * because the merkle tree root is 1-indexed, the 0 * index tree node is never used. */ -static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, +static int calculate_merkle_tree( const mbedtls_lms_private_t *ctx, unsigned char *tree ) { unsigned int priv_key_idx; @@ -533,7 +533,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, mbedtls_lms_algorithm_type_t type, mbedtls_lmots_algorithm_type_t otstype, int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *seed, + void* p_rng, const unsigned char *seed, size_t seed_size ) { unsigned int idx = 0; @@ -621,7 +621,7 @@ exit: } int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, - mbedtls_lms_private_t *priv_ctx ) + const mbedtls_lms_private_t *priv_ctx ) { unsigned char tree[MERKLE_TREE_NODE_AM_MAX][MBEDTLS_LMS_M_NODE_BYTES_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -662,7 +662,7 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, } -int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, +int mbedtls_lms_export_public_key( const mbedtls_lms_public_t *ctx, unsigned char *key, size_t key_size, size_t *key_len ) { @@ -700,8 +700,9 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *msg, unsigned int msg_size, - unsigned char *sig, size_t sig_size, size_t *sig_len ) + void* p_rng, const unsigned char *msg, + unsigned int msg_size, unsigned char *sig, size_t sig_size, + size_t *sig_len ) { uint32_t q_leaf_identifier; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; From be0c2f9183457702df1d33749e8f018e0d546dd9 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 11:27:35 +0100 Subject: [PATCH 0626/1028] Update LMS local variable allocation To use a default failure value, and to avoid a call to psa_hash_operation_init() Signed-off-by: Raef Coles --- library/lmots.c | 22 ++++++++-------------- library/lms.c | 4 ++-- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 055db8fb30..504da2e5d8 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -152,13 +152,12 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p const unsigned char *C_random_value, unsigned char *out ) { - psa_hash_operation_t op; - psa_status_t status; + psa_hash_operation_t op = PSA_HASH_OPERATION_INIT; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned short checksum; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if( ret != 0 ) @@ -250,14 +249,12 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, unsigned char j_hash_idx_bytes[J_HASH_IDX_LEN]; unsigned int j_hash_idx_min; unsigned int j_hash_idx_max; - psa_hash_operation_t op; - psa_status_t status; + psa_hash_operation_t op = PSA_HASH_OPERATION_INIT; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned char tmp_hash[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - op = psa_hash_operation_init( ); - for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type); i_digit_idx++ ) @@ -361,12 +358,11 @@ static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t const unsigned char *y_hashed_digits, unsigned char *pub_key ) { - psa_hash_operation_t op; - psa_status_t status; + psa_hash_operation_t op = PSA_HASH_OPERATION_INIT; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if( ret != 0 ) @@ -587,8 +583,8 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, const unsigned char *seed, size_t seed_size ) { - psa_hash_operation_t op; - psa_status_t status; + psa_hash_operation_t op = PSA_HASH_OPERATION_INIT; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned int i_digit_idx; unsigned char i_digit_idx_bytes[2]; @@ -605,8 +601,6 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - op = psa_hash_operation_init( ); - ctx->params.type = type; memcpy( ctx->params.I_key_identifier, diff --git a/library/lms.c b/library/lms.c index 50e6434b78..93aaca1af0 100644 --- a/library/lms.c +++ b/library/lms.c @@ -107,7 +107,7 @@ static int create_merkle_leaf_value( const mbedtls_lms_parameters_t *params, unsigned char *out ) { psa_hash_operation_t op; - psa_status_t status; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned char r_node_idx_bytes[4]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -182,7 +182,7 @@ static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, unsigned char *out ) { psa_hash_operation_t op; - psa_status_t status; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned char r_node_idx_bytes[4]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; From 29117d2e4e47842414341f2d0b25cb77a8cc6350 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 11:46:06 +0100 Subject: [PATCH 0627/1028] Update LMS PSA error conversion Signed-off-by: Raef Coles --- library/lmots.c | 108 ++++++++++++++++-------------------------------- library/lms.c | 47 +++++++-------------- 2 files changed, 51 insertions(+), 104 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 504da2e5d8..54773e12da 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -156,46 +156,38 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned short checksum; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, D_MESSAGE_CONSTANT_BYTES, D_CONST_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, C_random_value, MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(params->type) ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, msg, msg_len ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_finish( &op, out, MBEDTLS_LMOTS_N_HASH_LEN(params->type), &output_hash_len ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; checksum = lmots_checksum_calculate( params, out ); @@ -205,7 +197,7 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p exit: psa_hash_abort( &op ); - return( ret ); + return( mbedtls_lms_error_from_psa( status ) ); } /* Hash each element of the string of digits (+ checksum), producing a hash @@ -253,7 +245,6 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned char tmp_hash[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type); @@ -274,50 +265,43 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, j_hash_idx++ ) { status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; mbedtls_lms_unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, i_digit_idx_bytes ); status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; mbedtls_lms_unsigned_int_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, j_hash_idx_bytes ); status = psa_hash_update( &op, j_hash_idx_bytes, J_HASH_IDX_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_finish( &op, tmp_hash, sizeof( tmp_hash ), &output_hash_len ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; psa_hash_abort( &op ); @@ -328,15 +312,10 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, } exit: - if( ret != 0 ) - { - psa_hash_abort( &op ); - return( ret ); - } - + psa_hash_abort( &op ); mbedtls_platform_zeroize( tmp_hash, sizeof( tmp_hash ) ); - return ret; + return( mbedtls_lms_error_from_psa( status ) ); } /* Combine the hashes of the digit array into a public key. This is used in @@ -361,46 +340,41 @@ static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t psa_hash_operation_t op = PSA_HASH_OPERATION_INIT; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, D_PUBLIC_CONSTANT_BYTES, D_CONST_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, y_hashed_digits, MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type) * MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_finish( &op, pub_key, MBEDTLS_LMOTS_N_HASH_LEN(params->type), &output_hash_len ); - ret = mbedtls_lms_error_from_psa( status ); + if( status != PSA_SUCCESS ) exit: psa_hash_abort( &op ); - return( ret ); + + return( mbedtls_lms_error_from_psa( status ) ); } int mbedtls_lms_error_from_psa( psa_status_t status ) @@ -589,7 +563,6 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, unsigned int i_digit_idx; unsigned char i_digit_idx_bytes[2]; unsigned char const_bytes[1]; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if( ctx->have_private_key ) { @@ -619,47 +592,40 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, i_digit_idx++ ) { status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; - ret = psa_hash_update( &op, + status = psa_hash_update( &op, ctx->params.I_key_identifier, sizeof( ctx->params.I_key_identifier ) ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, ctx->params.q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( status != PSA_SUCCESS ) goto exit; mbedtls_lms_unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, i_digit_idx_bytes ); status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, const_bytes, sizeof( const_bytes ) ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, seed, seed_size ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_finish( &op, ctx->private_key[i_digit_idx], MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type), &output_hash_len ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( status != PSA_SUCCESS ) goto exit; psa_hash_abort( &op ); @@ -668,13 +634,9 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, ctx->have_private_key = 1; exit: - if( ret != 0 ) - { - psa_hash_abort( &op ); - return( ret ); - } + psa_hash_abort( &op ); - return ret; + return ( mbedtls_lms_error_from_psa( status ) ); } int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, diff --git a/library/lms.c b/library/lms.c index 93aaca1af0..ec6ec0c0a9 100644 --- a/library/lms.c +++ b/library/lms.c @@ -110,47 +110,40 @@ static int create_merkle_leaf_value( const mbedtls_lms_parameters_t *params, psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned char r_node_idx_bytes[4]; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; mbedtls_lms_unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); status = psa_hash_update( &op, r_node_idx_bytes, 4 ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, D_LEAF_CONSTANT_BYTES, D_CONST_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, pub_key, MBEDTLS_LMOTS_N_HASH_LEN(params->otstype) ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), &output_hash_len ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; exit: psa_hash_abort( &op ); - return( ret ); + return ( mbedtls_lms_error_from_psa( status ) ); } /* Calculate the value of an internal node of the merkle tree (which is a hash @@ -185,53 +178,45 @@ static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned char r_node_idx_bytes[4]; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; mbedtls_lms_unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); status = psa_hash_update( &op, r_node_idx_bytes, 4 ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, D_INTR_CONSTANT_BYTES, D_CONST_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, left_node, MBEDTLS_LMS_M_NODE_BYTES(params->type) ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, right_node, MBEDTLS_LMS_M_NODE_BYTES(params->type) ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; - ret = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), + status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), &output_hash_len ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; exit: psa_hash_abort( &op ); - return ret; + return( mbedtls_lms_error_from_psa( status ) ); } void mbedtls_lms_init_public( mbedtls_lms_public_t *ctx ) From be3bdd82401cd0e394640843ac9cbb757b04fcff Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 12:04:24 +0100 Subject: [PATCH 0628/1028] Rename LMS and LMOTS init/free functions To match convention Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 8 +++---- library/lmots.c | 16 ++++++------- library/lmots.h | 8 +++---- library/lms.c | 28 +++++++++++----------- tests/suites/test_suite_lmots.function | 32 +++++++++++++------------- tests/suites/test_suite_lms.function | 24 +++++++++---------- 6 files changed, 58 insertions(+), 58 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 5773c793c7..c68f7271a0 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -242,7 +242,7 @@ typedef struct { * \param ctx The uninitialized LMS context that will then be * initialized. */ -void mbedtls_lms_init_public( mbedtls_lms_public_t *ctx ); +void mbedtls_lms_public_init( mbedtls_lms_public_t *ctx ); /** * \brief This function uninitializes an LMS public context @@ -250,7 +250,7 @@ void mbedtls_lms_init_public( mbedtls_lms_public_t *ctx ); * \param ctx The initialized LMS context that will then be * uninitialized. */ -void mbedtls_lms_free_public( mbedtls_lms_public_t *ctx ); +void mbedtls_lms_public_free( mbedtls_lms_public_t *ctx ); /** * \brief This function imports an LMS public key into a @@ -304,7 +304,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, * * \param ctx The uninitialized LMS private context that will * then be initialized. */ -void mbedtls_lms_init_private( mbedtls_lms_private_t *ctx ); +void mbedtls_lms_private_init( mbedtls_lms_private_t *ctx ); /** * \brief This function uninitializes an LMS private context @@ -312,7 +312,7 @@ void mbedtls_lms_init_private( mbedtls_lms_private_t *ctx ); * \param ctx The initialized LMS private context that will then * be uninitialized. */ -void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ); +void mbedtls_lms_private_free( mbedtls_lms_private_t *ctx ); /** * \brief This function generates an LMS private key, and diff --git a/library/lmots.c b/library/lmots.c index 54773e12da..059d6c8eff 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -396,14 +396,14 @@ int mbedtls_lms_error_from_psa( psa_status_t status ) } } -void mbedtls_lmots_init_public( mbedtls_lmots_public_t *ctx ) +void mbedtls_lmots_public_init( mbedtls_lmots_public_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_public_t ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; } -void mbedtls_lmots_free_public( mbedtls_lmots_public_t *ctx ) +void mbedtls_lmots_public_free( mbedtls_lmots_public_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_public_t ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; } int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, @@ -540,14 +540,14 @@ int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, #if defined(MBEDTLS_LMS_PRIVATE) -void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ) +void mbedtls_lmots_private_init( mbedtls_lmots_private_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_private_t ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; } -void mbedtls_lmots_free_private( mbedtls_lmots_private_t *ctx ) +void mbedtls_lmots_private_free( mbedtls_lmots_private_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_private_t ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; } int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, diff --git a/library/lmots.h b/library/lmots.h index 2f42a592cc..05bd96703a 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -96,7 +96,7 @@ int mbedtls_lms_error_from_psa( psa_status_t status ); * \param ctx The uninitialized LMOTS context that will then be * initialized. */ -void mbedtls_lmots_init_public( mbedtls_lmots_public_t *ctx ); +void mbedtls_lmots_public_init( mbedtls_lmots_public_t *ctx ); /** * \brief This function uninitializes a public LMOTS context @@ -104,7 +104,7 @@ void mbedtls_lmots_init_public( mbedtls_lmots_public_t *ctx ); * \param ctx The initialized LMOTS context that will then be * uninitialized. */ -void mbedtls_lmots_free_public( mbedtls_lmots_public_t *ctx ); +void mbedtls_lmots_public_free( mbedtls_lmots_public_t *ctx ); /** * \brief This function imports an LMOTS public key into a @@ -198,7 +198,7 @@ int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, * \param ctx The uninitialized LMOTS context that will then be * initialized. */ -void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ); +void mbedtls_lmots_private_init( mbedtls_lmots_private_t *ctx ); /** * \brief This function uninitializes a private LMOTS context @@ -206,7 +206,7 @@ void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ); * \param ctx The initialized LMOTS context that will then be * uninitialized. */ -void mbedtls_lmots_free_private( mbedtls_lmots_private_t *ctx ); +void mbedtls_lmots_private_free( mbedtls_lmots_private_t *ctx ); /** * \brief This function calculates an LMOTS private key, and diff --git a/library/lms.c b/library/lms.c index ec6ec0c0a9..e17d9be102 100644 --- a/library/lms.c +++ b/library/lms.c @@ -219,14 +219,14 @@ exit: return( mbedtls_lms_error_from_psa( status ) ); } -void mbedtls_lms_init_public( mbedtls_lms_public_t *ctx ) +void mbedtls_lms_public_init( mbedtls_lms_public_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; } -void mbedtls_lms_free_public( mbedtls_lms_public_t *ctx ) +void mbedtls_lms_public_free( mbedtls_lms_public_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ); + mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ); } int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, @@ -489,12 +489,12 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, return( 0 ); } -void mbedtls_lms_init_private( mbedtls_lms_private_t *ctx ) +void mbedtls_lms_private_init( mbedtls_lms_private_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_private_t ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; } -void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ) +void mbedtls_lms_private_free( mbedtls_lms_private_t *ctx ) { unsigned int idx; @@ -502,15 +502,15 @@ void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ) { for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) { - mbedtls_lmots_free_private( &ctx->ots_private_keys[idx] ); - mbedtls_lmots_free_public( &ctx->ots_public_keys[idx] ); + mbedtls_lmots_private_free( &ctx->ots_private_keys[idx] ); + mbedtls_lmots_public_free( &ctx->ots_public_keys[idx] ); } mbedtls_free( ctx->ots_private_keys ); mbedtls_free( ctx->ots_public_keys ); } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_private_t ) ); + mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ); } @@ -565,8 +565,8 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) { - mbedtls_lmots_init_private( &ctx->ots_private_keys[idx] ); - mbedtls_lmots_init_public( &ctx->ots_public_keys[idx] ); + mbedtls_lmots_private_init( &ctx->ots_private_keys[idx] ); + mbedtls_lmots_public_init( &ctx->ots_public_keys[idx] ); } @@ -593,8 +593,8 @@ exit: { for ( free_idx = 0; free_idx < idx; free_idx++ ) { - mbedtls_lmots_free_private( &ctx->ots_private_keys[free_idx] ); - mbedtls_lmots_free_public( &ctx->ots_public_keys[free_idx] ); + mbedtls_lmots_private_free( &ctx->ots_private_keys[free_idx] ); + mbedtls_lmots_public_free( &ctx->ots_public_keys[free_idx] ); } mbedtls_free( ctx->ots_private_keys ); diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 85e1da71ed..de1cf2c683 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -36,8 +36,8 @@ void lmots_sign_verify_test ( data_t *msg, data_t *key_id, int leaf_id, mbedtls_lmots_private_t priv_ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; - mbedtls_lmots_init_public( &pub_ctx ); - mbedtls_lmots_init_private( &priv_ctx ); + mbedtls_lmots_public_init( &pub_ctx ); + mbedtls_lmots_private_init( &priv_ctx ); TEST_ASSERT( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, key_id->x, leaf_id, seed->x, seed->len ) == 0 ); @@ -47,8 +47,8 @@ void lmots_sign_verify_test ( data_t *msg, data_t *key_id, int leaf_id, TEST_ASSERT( mbedtls_lmots_verify(&pub_ctx, msg->x, msg->len, sig, sizeof(sig)) == 0 ); exit: - mbedtls_lmots_free_public( &pub_ctx ); - mbedtls_lmots_free_private( &priv_ctx ); + mbedtls_lmots_public_free( &pub_ctx ); + mbedtls_lmots_private_free( &priv_ctx ); } /* END_CASE */ @@ -59,8 +59,8 @@ void lmots_sign_verify_null_msg_test ( data_t *key_id, int leaf_id, data_t *seed mbedtls_lmots_private_t priv_ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; - mbedtls_lmots_init_public( &pub_ctx ); - mbedtls_lmots_init_private( &priv_ctx ); + mbedtls_lmots_public_init( &pub_ctx ); + mbedtls_lmots_private_init( &priv_ctx ); TEST_ASSERT( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, key_id->x, leaf_id, seed->x, seed->len ) == 0 ); @@ -70,8 +70,8 @@ void lmots_sign_verify_null_msg_test ( data_t *key_id, int leaf_id, data_t *seed TEST_ASSERT( mbedtls_lmots_verify(&pub_ctx, NULL, 0, sig, sizeof(sig)) == 0 ); exit: - mbedtls_lmots_free_public( &pub_ctx ); - mbedtls_lmots_free_private( &priv_ctx ); + mbedtls_lmots_public_free( &pub_ctx ); + mbedtls_lmots_private_free( &priv_ctx ); } /* END_CASE */ @@ -81,14 +81,14 @@ void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, { mbedtls_lmots_public_t ctx; - mbedtls_lmots_init_public( &ctx ); + mbedtls_lmots_public_init( &ctx ); mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ); TEST_ASSERT(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ) == expected_rc ); exit: - mbedtls_lmots_free_public( &ctx ); + mbedtls_lmots_public_free( &ctx ); } /* END_CASE */ @@ -99,7 +99,7 @@ void lmots_import_export_test ( data_t * pub_key ) uint8_t exported_pub_key[MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; size_t exported_pub_key_len; - mbedtls_lmots_init_public( &ctx ); + mbedtls_lmots_public_init( &ctx ); TEST_ASSERT( mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); TEST_ASSERT( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, sizeof( exported_pub_key ), @@ -109,7 +109,7 @@ void lmots_import_export_test ( data_t * pub_key ) exported_pub_key, exported_pub_key_len ); exit: - mbedtls_lmots_free_public( &ctx ); + mbedtls_lmots_public_free( &ctx ); } /* END_CASE */ @@ -119,7 +119,7 @@ void lmots_reuse_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed ) mbedtls_lmots_private_t ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; - mbedtls_lmots_init_private( &ctx ); + mbedtls_lmots_private_init( &ctx ); TEST_ASSERT( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, key_id->x, leaf_id, seed->x, seed->len ) == 0 ); @@ -133,7 +133,7 @@ void lmots_reuse_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed ) msg->x, msg->len, sig, sizeof( sig ), NULL ) != 0 ); exit: - mbedtls_lmots_free_private( &ctx ); + mbedtls_lmots_private_free( &ctx ); } /* END_CASE */ @@ -149,7 +149,7 @@ void lmots_signature_leak_test ( data_t *msg, data_t *key_id, int leaf_id, /* Fill with recognisable pattern */ memset( sig, 0x7E, sizeof( sig ) ); - mbedtls_lmots_init_private( &ctx ); + mbedtls_lmots_private_init( &ctx ); TEST_ASSERT( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, key_id->x, leaf_id, seed->x, seed->len ) == 0 ); @@ -157,7 +157,7 @@ void lmots_signature_leak_test ( data_t *msg, data_t *key_id, int leaf_id, msg->x, msg->len, sig, sizeof( sig ), NULL ) == 0 ); exit: - mbedtls_lmots_free_private( &ctx ); + mbedtls_lmots_private_free( &ctx ); mbedtls_lmots_sign_private_key_invalidated_hook = NULL; } /* END_CASE */ diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 3c23b3b4e0..425e994de4 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -16,8 +16,8 @@ void lms_sign_verify_test ( data_t *msg, data_t *seed ) unsigned char sig[MBEDTLS_LMS_SIG_LEN(MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8)]; int rc; - mbedtls_lms_init_public( &pub_ctx ); - mbedtls_lms_init_private( &priv_ctx ); + mbedtls_lms_public_init( &pub_ctx ); + mbedtls_lms_private_init( &priv_ctx ); /* Allocation failure isn't a test failure, since it likely just means * there's not enough memory to run the test. @@ -39,8 +39,8 @@ void lms_sign_verify_test ( data_t *msg, data_t *seed ) sizeof( sig ) ) == 0 ); exit: - mbedtls_lms_free_public( &pub_ctx ); - mbedtls_lms_free_private( &priv_ctx ); + mbedtls_lms_public_free( &pub_ctx ); + mbedtls_lms_private_free( &priv_ctx ); } /* END_CASE */ @@ -52,8 +52,8 @@ void lms_sign_verify_null_msg_test( data_t *seed ) unsigned char sig[MBEDTLS_LMS_SIG_LEN(MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8)]; int rc; - mbedtls_lms_init_public( &pub_ctx ); - mbedtls_lms_init_private( &priv_ctx ); + mbedtls_lms_public_init( &pub_ctx ); + mbedtls_lms_private_init( &priv_ctx ); /* Allocation failure isn't a test failure, since it likely just means * there's not enough memory to run the test. @@ -75,8 +75,8 @@ void lms_sign_verify_null_msg_test( data_t *seed ) sizeof( sig ) ) == 0 ); exit: - mbedtls_lms_free_public( &pub_ctx ); - mbedtls_lms_free_private( &priv_ctx ); + mbedtls_lms_public_free( &pub_ctx ); + mbedtls_lms_private_free( &priv_ctx ); } /* END_CASE */ @@ -86,14 +86,14 @@ void lms_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, { mbedtls_lms_public_t ctx; - mbedtls_lms_init_public( &ctx); + mbedtls_lms_public_init( &ctx); mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ); TEST_ASSERT( mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ) == expected_rc ); exit: - mbedtls_lms_free_public( &ctx ); + mbedtls_lms_public_free( &ctx ); } /* END_CASE */ @@ -103,7 +103,7 @@ void lms_import_export_test ( data_t * pub_key ) mbedtls_lms_public_t ctx; uint8_t exported_pub_key[MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10)]; - mbedtls_lms_init_public(&ctx); + mbedtls_lms_public_init(&ctx); TEST_ASSERT( mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); TEST_ASSERT( mbedtls_lms_export_public_key( &ctx, exported_pub_key, sizeof(exported_pub_key), NULL ) == 0 ); @@ -112,7 +112,7 @@ void lms_import_export_test ( data_t * pub_key ) exported_pub_key, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) ); exit: - mbedtls_lms_free_public( &ctx ); + mbedtls_lms_public_free( &ctx ); } /* END_CASE */ From dc8fb79e09d729250414a124ff8a6c0d61b3d462 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 13:27:54 +0100 Subject: [PATCH 0629/1028] Simplify LMS private key generation error handling Signed-off-by: Raef Coles --- library/lms.c | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/library/lms.c b/library/lms.c index e17d9be102..06bae9dffd 100644 --- a/library/lms.c +++ b/library/lms.c @@ -506,8 +506,11 @@ void mbedtls_lms_private_free( mbedtls_lms_private_t *ctx ) mbedtls_lmots_public_free( &ctx->ots_public_keys[idx] ); } - mbedtls_free( ctx->ots_private_keys ); - mbedtls_free( ctx->ots_public_keys ); + if( ctx->ots_private_keys != NULL ) + mbedtls_free( ctx->ots_private_keys ); + + if( ctx->ots_public_keys != NULL ) + mbedtls_free( ctx->ots_public_keys ); } mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ); @@ -522,7 +525,6 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, size_t seed_size ) { unsigned int idx = 0; - unsigned int free_idx = 0; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if( type != MBEDTLS_LMS_SHA256_M32_H10 ) @@ -548,7 +550,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ctx->ots_private_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), - sizeof( mbedtls_lmots_private_t ) ); + sizeof( *ctx->ots_private_keys ) ); if( ctx->ots_private_keys == NULL ) { ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; @@ -556,13 +558,25 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, } ctx->ots_public_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), - sizeof( mbedtls_lmots_public_t ) ); + sizeof( *ctx->ots_public_keys ) ); if( ctx->ots_public_keys == NULL ) { + /* Free just the ots private keys (since they've been allocated at this + * point) so that we can pass the context to lms_private_free (which + * will not try to free the private keys since have_private_key is not + * set. + */ + mbedtls_free(ctx->ots_private_keys); + ctx->ots_private_keys = NULL; ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; goto exit; } + /* Now that all the allocation has succeeded we set have_private_key, since + * that causes lms_private_free to free the ots keys. + */ + ctx->have_private_key = 1; + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) { mbedtls_lmots_private_init( &ctx->ots_private_keys[idx] ); @@ -586,23 +600,14 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, } ctx->q_next_usable_key = 0; - ctx->have_private_key = 1; exit: if( ret != 0 ) { - for ( free_idx = 0; free_idx < idx; free_idx++ ) - { - mbedtls_lmots_private_free( &ctx->ots_private_keys[free_idx] ); - mbedtls_lmots_public_free( &ctx->ots_public_keys[free_idx] ); - } - - mbedtls_free( ctx->ots_private_keys ); - mbedtls_free( ctx->ots_public_keys ); - return( ret ); + mbedtls_lms_private_free(ctx); } - return( 0 ); + return( ret ); } int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, From f36874a53519b03d78690872061e31c4ed860892 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 13:39:22 +0100 Subject: [PATCH 0630/1028] Fix error type of lms_import_public_key Was returning an incorrect error when bad public key sizes were input Signed-off-by: Raef Coles --- library/lms.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/lms.c b/library/lms.c index 06bae9dffd..a8411797d2 100644 --- a/library/lms.c +++ b/library/lms.c @@ -235,9 +235,9 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, mbedtls_lms_algorithm_type_t type; mbedtls_lmots_algorithm_type_t otstype; - if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) + if( key_size != MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) { - return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } type = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, From 02cf8234b4d005ecc858bb5f913272b6f70b1bb8 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 13:52:47 +0100 Subject: [PATCH 0631/1028] Fix ots sig length check in LMS validate function Signed-off-by: Raef Coles --- library/lms.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/lms.c b/library/lms.c index a8411797d2..1e0f319109 100644 --- a/library/lms.c +++ b/library/lms.c @@ -733,7 +733,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, ret = mbedtls_lmots_sign( &ctx->ots_private_keys[q_leaf_identifier], f_rng, p_rng, msg, msg_size, sig + SIG_OTS_SIG_OFFSET, - MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype), + MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) - SIG_OTS_SIG_OFFSET, NULL ); if( ret != 0 ) { From 3f6cdd7aab90fa6b4830349916d994a05d6f8f79 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 14:07:59 +0100 Subject: [PATCH 0632/1028] Fix LMS not checking RNG function return value Signed-off-by: Raef Coles --- library/lms.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/library/lms.c b/library/lms.c index 1e0f319109..a4235addc2 100644 --- a/library/lms.c +++ b/library/lms.c @@ -545,9 +545,13 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, ctx->params.type = type; ctx->params.otstype = otstype; - f_rng( p_rng, - ctx->params.I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); + ret = f_rng( p_rng, + ctx->params.I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + if( ret != 0 ) + { + goto exit; + } ctx->ots_private_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), sizeof( *ctx->ots_private_keys ) ); From e89488debf6d3a708c9d65eb4863251bd0e5c639 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 16:06:35 +0100 Subject: [PATCH 0633/1028] Fix bug in LMS public key loading To avoid using the type before it is parsed from the signature Signed-off-by: Raef Coles --- library/lmots.c | 5 +++++ library/lms.c | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 059d6c8eff..9168ef189d 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -409,6 +409,11 @@ void mbedtls_lmots_public_free( mbedtls_lmots_public_t *ctx ) int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, const unsigned char *key, size_t key_len ) { + if( key_len < MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + ctx->params.type = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); diff --git a/library/lms.c b/library/lms.c index a4235addc2..fba5d88480 100644 --- a/library/lms.c +++ b/library/lms.c @@ -235,11 +235,6 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, mbedtls_lms_algorithm_type_t type; mbedtls_lmots_algorithm_type_t otstype; - if( key_size != MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - type = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, key + PUBLIC_KEY_TYPE_OFFSET ); if( type != MBEDTLS_LMS_SHA256_M32_H10 ) @@ -248,6 +243,11 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, } ctx->params.type = type; + if( key_size != MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + otstype = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, key + PUBLIC_KEY_OTSTYPE_OFFSET ); if( otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) From 370cc436300fde6eab6789233ccaf693e13f5e85 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 16:07:33 +0100 Subject: [PATCH 0634/1028] Make LMS public key export part of public key api Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 54 +++++++++---------- library/lmots.c | 75 +++++++++++++------------- library/lmots.h | 46 ++++++++-------- library/lms.c | 71 ++++++++++++------------ tests/suites/test_suite_lmots.function | 2 +- tests/suites/test_suite_lms.function | 2 +- 6 files changed, 124 insertions(+), 126 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index c68f7271a0..15a1a1b281 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -274,6 +274,33 @@ void mbedtls_lms_public_free( mbedtls_lms_public_t *ctx ); int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, const unsigned char *key, size_t key_size ); +/** + * \brief This function exports an LMS public key from a + * LMS public context that already contains a public + * key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a public key. + * + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMS public context that contains + * the public key. + * \param key The buffer into which the key will be output. Must + * be at least #MBEDTLS_LMS_PUBLIC_KEY_LEN in size. + * \param key_size The size of the key buffer. + * \param key_len If not NULL, will be written with the size of the + * key. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_export_public_key( const mbedtls_lms_public_t *ctx, + unsigned char *key, size_t key_size, + size_t *key_len ); + /** * \brief This function verifies a LMS signature, using a * LMS context that contains a public key. @@ -365,33 +392,6 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, const mbedtls_lms_private_t *priv_ctx ); -/** - * \brief This function exports an LMS public key from a - * LMS public context that already contains a public - * key. - * - * \note Before this function is called, the context must - * have been initialized and the context must contain - * a public key. - * - * \note See IETF RFC8554 for details of the encoding of - * this public key. - * - * \param ctx The initialized LMS public context that contains - * the public key. - * \param key The buffer into which the key will be output. Must - * be at least #MBEDTLS_LMS_PUBLIC_KEY_LEN in size. - * \param key_size The size of the key buffer. - * \param key_len If not NULL, will be written with the size of the - * key. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lms_export_public_key( const mbedtls_lms_public_t *ctx, - unsigned char *key, size_t key_size, - size_t *key_len ); - /** * \brief This function creates a LMS signature, using a * LMS context that contains unused private keys. diff --git a/library/lmots.c b/library/lmots.c index 9168ef189d..bb4326e374 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -440,6 +440,43 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, return( 0 ); } +int mbedtls_lmots_export_public_key( const mbedtls_lmots_public_t *ctx, + unsigned char *key, size_t key_size, + size_t *key_len ) +{ + if( key_size < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) + { + return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + } + + if( ! ctx->have_public_key ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, + MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + + memcpy( key + PUBLIC_KEY_I_KEY_ID_OFFSET, + ctx->params.I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + + memcpy( key + PUBLIC_KEY_Q_LEAF_ID_OFFSET, + ctx->params.q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + + memcpy( key + PUBLIC_KEY_KEY_HASH_OFFSET, ctx->public_key, + MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); + + if( key_len != NULL ) + { + *key_len = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type); + } + + return( 0 ); +} + int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters_t *params, const unsigned char *msg, size_t msg_size, @@ -680,44 +717,6 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, return( ret ); } - -int mbedtls_lmots_export_public_key( const mbedtls_lmots_public_t *ctx, - unsigned char *key, size_t key_size, - size_t *key_len ) -{ - if( key_size < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) - { - return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); - } - - if( ! ctx->have_public_key ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, - MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); - - memcpy( key + PUBLIC_KEY_I_KEY_ID_OFFSET, - ctx->params.I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - - memcpy( key + PUBLIC_KEY_Q_LEAF_ID_OFFSET, - ctx->params.q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - - memcpy( key + PUBLIC_KEY_KEY_HASH_OFFSET, ctx->public_key, - MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); - - if( key_len != NULL ) - { - *key_len = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type); - } - - return( 0 ); -} - int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, const unsigned char *msg, size_t msg_size, diff --git a/library/lmots.h b/library/lmots.h index 05bd96703a..2c65714800 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -127,6 +127,29 @@ void mbedtls_lmots_public_free( mbedtls_lmots_public_t *ctx ); int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, const unsigned char *key, size_t key_size ); +/** + * \brief This function exports an LMOTS public key from a + * LMOTS context that already contains a public key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a public key. + * + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMOTS context that contains the + * publc key. + * \param key The buffer into which the key will be output. Must + * be at least #MBEDTLS_LMOTS_PUBLIC_KEY_LEN in size. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_export_public_key( const mbedtls_lmots_public_t *ctx, + unsigned char *key, size_t key_size, + size_t *key_len ); + /** * \brief This function creates a candidate public key from * an LMOTS signature. This can then be compared to @@ -255,29 +278,6 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, const mbedtls_lmots_private_t *priv_ctx ); - -/** - * \brief This function exports an LMOTS public key from a - * LMOTS context that already contains a public key. - * - * \note Before this function is called, the context must - * have been initialized and the context must contain - * a public key. - * - * \note See IETF RFC8554 for details of the encoding of - * this public key. - * - * \param ctx The initialized LMOTS context that contains the - * publc key. - * \param key The buffer into which the key will be output. Must - * be at least #MBEDTLS_LMOTS_PUBLIC_KEY_LEN in size. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lmots_export_public_key( const mbedtls_lmots_public_t *ctx, - unsigned char *key, size_t key_size, - size_t *key_len ); /** * \brief This function creates a LMOTS signature, using a * LMOTS context that contains a private key. diff --git a/library/lms.c b/library/lms.c index fba5d88480..e7ae5081c2 100644 --- a/library/lms.c +++ b/library/lms.c @@ -267,6 +267,41 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, return( 0 ); } +int mbedtls_lms_export_public_key( const mbedtls_lms_public_t *ctx, + unsigned char *key, + size_t key_size, size_t *key_len ) +{ + if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) + { + return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + } + + if( ! ctx->have_public_key ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + mbedtls_lms_unsigned_int_to_network_bytes( + ctx->params.type, + MBEDTLS_LMS_TYPE_LEN, key + PUBLIC_KEY_TYPE_OFFSET ); + mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.otstype, + MBEDTLS_LMOTS_TYPE_LEN, + key + PUBLIC_KEY_OTSTYPE_OFFSET ); + memcpy( key + PUBLIC_KEY_I_KEY_ID_OFFSET, + ctx->params.I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + memcpy( key +PUBLIC_KEY_ROOT_NODE_OFFSET, + ctx->T_1_pub_key, + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); + + if( key_len != NULL ) + { + *key_len = MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type); + } + + return( 0 ); +} + int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, const unsigned char *msg, size_t msg_size, const unsigned char *sig, size_t sig_size ) @@ -656,42 +691,6 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, } -int mbedtls_lms_export_public_key( const mbedtls_lms_public_t *ctx, - unsigned char *key, - size_t key_size, size_t *key_len ) -{ - if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) - { - return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); - } - - if( ! ctx->have_public_key ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - mbedtls_lms_unsigned_int_to_network_bytes( - ctx->params.type, - MBEDTLS_LMS_TYPE_LEN, key + PUBLIC_KEY_TYPE_OFFSET ); - mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.otstype, - MBEDTLS_LMOTS_TYPE_LEN, - key + PUBLIC_KEY_OTSTYPE_OFFSET ); - memcpy( key + PUBLIC_KEY_I_KEY_ID_OFFSET, - ctx->params.I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( key +PUBLIC_KEY_ROOT_NODE_OFFSET, - ctx->T_1_pub_key, - MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); - - if( key_len != NULL ) - { - *key_len = MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type); - } - - return( 0 ); -} - - int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), void* p_rng, const unsigned char *msg, diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index de1cf2c683..0d2aece443 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -92,7 +92,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ +/* BEGIN_CASE */ void lmots_import_export_test ( data_t * pub_key ) { mbedtls_lmots_public_t ctx; diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 425e994de4..e4c4b911b4 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -97,7 +97,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ +/* BEGIN_CASE */ void lms_import_export_test ( data_t * pub_key ) { mbedtls_lms_public_t ctx; From e34e3c0e599ef9551e675042b797562f3b43269c Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 11:11:30 +0100 Subject: [PATCH 0635/1028] Remove unneeded cast in LMS calloc Signed-off-by: Raef Coles --- library/lms.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/lms.c b/library/lms.c index e7ae5081c2..adba195826 100644 --- a/library/lms.c +++ b/library/lms.c @@ -588,7 +588,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, goto exit; } - ctx->ots_private_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + ctx->ots_private_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), sizeof( *ctx->ots_private_keys ) ); if( ctx->ots_private_keys == NULL ) { @@ -596,7 +596,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, goto exit; } - ctx->ots_public_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + ctx->ots_public_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), sizeof( *ctx->ots_public_keys ) ); if( ctx->ots_public_keys == NULL ) { From 1fb2f32ef5485962e0334dbbb397b3114a18dba6 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 11:23:07 +0100 Subject: [PATCH 0636/1028] Check LMS offsets are sane at runtime Signed-off-by: Raef Coles --- library/lms.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/library/lms.c b/library/lms.c index adba195826..296adceda0 100644 --- a/library/lms.c +++ b/library/lms.c @@ -733,6 +733,12 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, */ ctx->q_next_usable_key += 1; + if ( MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) + < SIG_OTS_SIG_OFFSET ) + { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; + } + ret = mbedtls_lmots_sign( &ctx->ots_private_keys[q_leaf_identifier], f_rng, p_rng, msg, msg_size, sig + SIG_OTS_SIG_OFFSET, From d48f7e90bb30d605525a9d2c508012acd5cf7b64 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 13:10:07 +0100 Subject: [PATCH 0637/1028] Allocate LMS C_RANDOM_VALUE as hash size Signed-off-by: Raef Coles --- library/lmots.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index bb4326e374..163958795a 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -60,9 +60,6 @@ #define J_HASH_IDX_LEN (1) #define D_CONST_LEN (2) -/* Currently only defined for SHA256, 32 is the max hash output size */ -#define C_RANDOM_VALUE_LEN_MAX (MBEDTLS_LMOTS_N_HASH_LEN_MAX) - #define DIGIT_MAX_VALUE ((1u << W_WINTERNITZ_PARAMETER) - 1u) #define D_CONST_LEN (2) @@ -731,7 +728,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, * key. */ unsigned char tmp_sig[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; - unsigned char tmp_c_random[C_RANDOM_VALUE_LEN_MAX]; + unsigned char tmp_c_random[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if( msg == NULL && msg_size != 0 ) From 75b4c7790e50752a8bccf4e4521cff6ad058672d Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 13:58:28 +0100 Subject: [PATCH 0638/1028] Fix LMS internal function documentation Signed-off-by: Raef Coles --- library/lms.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/lms.c b/library/lms.c index 296adceda0..321e51abe1 100644 --- a/library/lms.c +++ b/library/lms.c @@ -491,7 +491,7 @@ static int calculate_merkle_tree( const mbedtls_lms_private_t *ctx, * * leaf_node_id Which leaf node to calculate the path from. * - * tree The output path, which is H hash outputs. + * path The output path, which is H hash outputs. */ static int get_merkle_path( mbedtls_lms_private_t *ctx, unsigned int leaf_node_id, From f6cb5a4826bcb496bfdf6fd3af7d0e52383ab131 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 14:15:53 +0100 Subject: [PATCH 0639/1028] Fix LMS return statements having incorrect style Signed-off-by: Raef Coles --- library/lmots.c | 4 ++-- library/lms.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 163958795a..1e27024779 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -92,7 +92,7 @@ unsigned int mbedtls_lms_network_bytes_to_unsigned_int( size_t len, val |= ( ( unsigned int )bytes[idx] ) << (8 * ( len - 1 - idx ) ); } - return val; + return ( val ); } /* Calculate the checksum digits that are appended to the end of the LMOTS digit @@ -117,7 +117,7 @@ static unsigned short lmots_checksum_calculate( const mbedtls_lmots_parameters_t sum += DIGIT_MAX_VALUE - digest[idx]; } - return sum; + return ( sum ); } /* Create the string of digest digits (in the base determined by the Winternitz diff --git a/library/lms.c b/library/lms.c index 321e51abe1..b460353a67 100644 --- a/library/lms.c +++ b/library/lms.c @@ -736,7 +736,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, if ( MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) < SIG_OTS_SIG_OFFSET ) { - return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; + return ( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } ret = mbedtls_lmots_sign( &ctx->ots_private_keys[q_leaf_identifier], From 9b0daf60fb64bbe33433def23d730ba4a57b901f Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 14:25:39 +0100 Subject: [PATCH 0640/1028] Improve LMS private function warning Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 6 ++++-- library/lmots.h | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 15a1a1b281..850bb6a008 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -347,7 +347,8 @@ void mbedtls_lms_private_free( mbedtls_lms_private_t *ctx ); * * \warning This function is **not intended for use in * production**, due to as-yet unsolved problems with - * handling stateful keys. + * handling stateful keys. The API for this function + * may change considerably in future versions. * * \note The seed must have at least 256 bits of entropy. * @@ -398,7 +399,8 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, * * \warning This function is **not intended for use in * production**, due to as-yet unsolved problems with - * handling stateful keys. + * handling stateful keys. The API for this function + * may change considerably in future versions. * * \note Before this function is called, the context must * have been initialized and must contain a private diff --git a/library/lmots.h b/library/lmots.h index 2c65714800..39e8699252 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -190,7 +190,8 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters * * \warning This function is **not intended for use in * production**, due to as-yet unsolved problems with - * handling stateful keys. + * handling stateful keys. The API for this function + * may change considerably in future versions. * * \note Before this function is called, the context must * have been initialized and must contain a public key @@ -237,7 +238,8 @@ void mbedtls_lmots_private_free( mbedtls_lmots_private_t *ctx ); * * \warning This function is **not intended for use in * production**, due to as-yet unsolved problems with - * handling stateful keys. + * handling stateful keys. The API for this function + * may change considerably in future versions. * * \note The seed must have at least 256 bits of entropy. * From fbd60ec77540c8fdef3ea7cbaa7758e564b0d563 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 15:09:33 +0100 Subject: [PATCH 0641/1028] Change LMS and LMOTS init functions to use memset Instead of zeroize Signed-off-by: Raef Coles --- library/lmots.c | 4 ++-- library/lms.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 1e27024779..8ffadb89e0 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -395,7 +395,7 @@ int mbedtls_lms_error_from_psa( psa_status_t status ) void mbedtls_lmots_public_init( mbedtls_lmots_public_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; + memset( ctx, 0, sizeof( *ctx ) ) ; } void mbedtls_lmots_public_free( mbedtls_lmots_public_t *ctx ) @@ -581,7 +581,7 @@ int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, void mbedtls_lmots_private_init( mbedtls_lmots_private_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; + memset( ctx, 0, sizeof( *ctx ) ) ; } void mbedtls_lmots_private_free( mbedtls_lmots_private_t *ctx ) diff --git a/library/lms.c b/library/lms.c index b460353a67..c115dac9d4 100644 --- a/library/lms.c +++ b/library/lms.c @@ -221,7 +221,7 @@ exit: void mbedtls_lms_public_init( mbedtls_lms_public_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; + memset( ctx, 0, sizeof( *ctx ) ) ; } void mbedtls_lms_public_free( mbedtls_lms_public_t *ctx ) @@ -526,7 +526,7 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, void mbedtls_lms_private_init( mbedtls_lms_private_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; + memset( ctx, 0, sizeof( *ctx ) ) ; } void mbedtls_lms_private_free( mbedtls_lms_private_t *ctx ) From faf59babe846b4148af6331fcefe826a78e2dcfd Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 15:40:56 +0100 Subject: [PATCH 0642/1028] Make LMS verification return VERIFY_FAILED more To align with PSA error code rules on when VERIFY_FAILED is returned vs INVALID_ARGUMENT Signed-off-by: Raef Coles --- library/lmots.c | 2 +- library/lms.c | 22 ++++++++++++++++------ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 8ffadb89e0..97325aa8e1 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -565,7 +565,7 @@ int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, NULL ); if( ret ) { - return( ret ); + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } if( memcmp( &Kc_public_key_candidate, ctx->public_key, diff --git a/library/lms.c b/library/lms.c index c115dac9d4..de38c02837 100644 --- a/library/lms.c +++ b/library/lms.c @@ -322,11 +322,6 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( sig_size != MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - if( ctx->params.type != MBEDTLS_LMS_SHA256_M32_H10 ) { @@ -339,6 +334,16 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } + if( sig_size != MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + + if( sig_size < SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_TYPE_LEN ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, sig + SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) @@ -346,6 +351,11 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } + if( sig_size < SIG_TYPE_OFFSET(ctx->params.otstype) + MBEDTLS_LMS_TYPE_LEN ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, sig + SIG_TYPE_OFFSET(ctx->params.otstype)) != MBEDTLS_LMS_SHA256_M32_H10 ) @@ -376,7 +386,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, sizeof( Kc_candidate_ots_pub_key ), NULL ); if( ret != 0 ) { - return( ret ); + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } create_merkle_leaf_value( From 285d44b180e74166b70250ce39a7a35a03ccb188 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 15:44:17 +0100 Subject: [PATCH 0643/1028] Capitalize "Merkle" in LMS and LMOTS code As it is a proper noun Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 8 ++++---- library/lms.c | 26 +++++++++++++------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 850bb6a008..8bf395bcd3 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -181,7 +181,7 @@ typedef struct { /** LMS public context structure. * - *A LMS public key is the hash output that is the root of the merkle tree, and + *A LMS public key is the hash output that is the root of the Merkle tree, and * the applicable parameter set * * The context must be initialized before it is used. A public key must either @@ -200,7 +200,7 @@ typedef struct { typedef struct { mbedtls_lms_parameters_t MBEDTLS_PRIVATE(params); unsigned char MBEDTLS_PRIVATE(T_1_pub_key)[MBEDTLS_LMS_M_NODE_BYTES_MAX]; /*!< The public key, in - the form of the merkle tree root node. */ + the form of the Merkle tree root node. */ unsigned char MBEDTLS_PRIVATE(have_public_key); /*!< Whether the context contains a public key. Boolean values only. */ } mbedtls_lms_public_t; @@ -228,9 +228,9 @@ typedef struct { uint32_t MBEDTLS_PRIVATE(q_next_usable_key); /*!< The index of the next OTS key that has not been used. */ mbedtls_lmots_private_t *MBEDTLS_PRIVATE(ots_private_keys); /*!< The private key material. One OTS key - for each leaf node in the merkle tree. */ + for each leaf node in the Merkle tree. */ mbedtls_lmots_public_t *MBEDTLS_PRIVATE(ots_public_keys); /*!< The OTS key public keys, used to - build the merkle tree. */ + build the Merkle tree. */ unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lms_private_t; diff --git a/library/lms.c b/library/lms.c index de38c02837..f30f349ad5 100644 --- a/library/lms.c +++ b/library/lms.c @@ -83,7 +83,7 @@ static const unsigned char D_LEAF_CONSTANT_BYTES[D_CONST_LEN] = {0x82, 0x82}; static const unsigned char D_INTR_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; -/* Calculate the value of a leaf node of the merkle tree (which is a hash of a +/* Calculate the value of a leaf node of the Merkle tree (which is a hash of a * public key and some other parameters like the leaf index). This function * implements RFC8554 section 5.3, in the case where r >= 2^h. * @@ -95,8 +95,8 @@ static const unsigned char D_INTR_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; * corresponds to the index of this leaf node. This * is a hash output. * - * r_node_idx The index of this node in the merkle tree. Note - * that the root node of the merkle tree is + * r_node_idx The index of this node in the Merkle tree. Note + * that the root node of the Merkle tree is * 1-indexed. * * out The output node value, which is a hash output. @@ -146,7 +146,7 @@ exit: return ( mbedtls_lms_error_from_psa( status ) ); } -/* Calculate the value of an internal node of the merkle tree (which is a hash +/* Calculate the value of an internal node of the Merkle tree (which is a hash * of a public key and some other parameters like the node index). This function * implements RFC8554 section 5.3, in the case where r < 2^h. * @@ -156,14 +156,14 @@ exit: * * left_node The value of the child of this node which is on * the left-hand side. As with all nodes on the - * merkle tree, this is a hash output. + * Merkle tree, this is a hash output. * * right_node The value of the child of this node which is on * the right-hand side. As with all nodes on the - * merkle tree, this is a hash output. + * Merkle tree, this is a hash output. * - * r_node_idx The index of this node in the merkle tree. Note - * that the root node of the merkle tree is + * r_node_idx The index of this node in the Merkle tree. Note + * that the root node of the Merkle tree is * 1-indexed. * * out The output node value, which is a hash output. @@ -434,9 +434,9 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, #if defined(MBEDTLS_LMS_PRIVATE) -/* Calculate a full merkle tree based on a private key. This function +/* Calculate a full Merkle tree based on a private key. This function * implements RFC8554 section 5.3, and is used to generate a public key (as the - * public key is the root node of the merkle tree). + * public key is the root node of the Merkle tree). * * ctx The LMS private context, containing a parameter * set and private key material consisting of both @@ -445,7 +445,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, * tree The output tree, which is 2^(H + 1) hash outputs. * In the case of H=10 we have 2048 tree nodes (of * which 1024 of them are leaf nodes). Note that - * because the merkle tree root is 1-indexed, the 0 + * because the Merkle tree root is 1-indexed, the 0 * index tree node is never used. */ static int calculate_merkle_tree( const mbedtls_lms_private_t *ctx, @@ -491,9 +491,9 @@ static int calculate_merkle_tree( const mbedtls_lms_private_t *ctx, return( 0 ); } -/* Calculate a path from a leaf node of the merkle tree to the root of the tree, +/* Calculate a path from a leaf node of the Merkle tree to the root of the tree, * and return the full path. This function implements RFC8554 section 5.4.1, as - * the merkle path is the main component of an LMS signature. + * the Merkle path is the main component of an LMS signature. * * ctx The LMS private context, containing a parameter * set and private key material consisting of both From 3c4ae77fec28b89fcb6311898540ee129b800b85 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 15:48:24 +0100 Subject: [PATCH 0644/1028] Improve LMS private context documentation Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 8bf395bcd3..7505ae462d 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -228,9 +228,15 @@ typedef struct { uint32_t MBEDTLS_PRIVATE(q_next_usable_key); /*!< The index of the next OTS key that has not been used. */ mbedtls_lmots_private_t *MBEDTLS_PRIVATE(ots_private_keys); /*!< The private key material. One OTS key - for each leaf node in the Merkle tree. */ + for each leaf node in the Merkle tree. NULL + when have_private_key is 0 and non-NULL otherwise. + is 2^MBEDTLS_LMS_H_TREE_HEIGHT(type) in length. */ mbedtls_lmots_public_t *MBEDTLS_PRIVATE(ots_public_keys); /*!< The OTS key public keys, used to - build the Merkle tree. */ + build the Merkle tree. NULL + when have_private_key is 0 and + non-NULL otherwise. + Is 2^MBEDTLS_LMS_H_TREE_HEIGHT(type) + in length. */ unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lms_private_t; From 7726678b230c102fd74a202f65994d025e6bf91e Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 16:11:50 +0100 Subject: [PATCH 0645/1028] Remove debugging code left in LMOTS tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 0d2aece443..1b8315c176 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -12,7 +12,6 @@ int check_lmots_private_key_for_leak(unsigned char * sig) idx++ ) { if( sig[idx] != 0x7E ) { - while(1){} return 1; } } From 4829459c9067bf924aae9a0049a8534eaaf1f92b Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 16:40:00 +0100 Subject: [PATCH 0646/1028] Validate LMOTS sig length before parsing type Signed-off-by: Raef Coles --- library/lmots.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/library/lmots.c b/library/lmots.c index 97325aa8e1..f19871873d 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -552,6 +552,11 @@ int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } + if( sig_size < MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { From 0dc604ed2b3f207571dd68f0286e23f51793779e Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 17:35:26 +0100 Subject: [PATCH 0647/1028] Change how LMS and LMOTS negative tests work Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 55 +++++++++++++++++++++++++- tests/suites/test_suite_lms.function | 55 +++++++++++++++++++++++++- 2 files changed, 106 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 1b8315c176..b699fcc7b4 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -79,12 +79,63 @@ void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, int expected_rc ) { mbedtls_lmots_public_t ctx; + unsigned int size; + unsigned char *tmp_sig = NULL; mbedtls_lmots_public_init( &ctx ); - mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ); + TEST_EQUAL(mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ), 0); - TEST_ASSERT(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ) == expected_rc ); + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), expected_rc); + + /* Test negative cases if the input data is valid */ + if( expected_rc == 0 ) + { + /* Altering first message byte must cause verification failure */ + msg->x[0] ^= 1; + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + msg->x[0] ^= 1; + + /* Altering last message byte must cause verification failure */ + msg->x[msg->len - 1] ^= 1; + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + msg->x[msg->len - 1] ^= 1; + + /* Altering first signature byte must cause verification failure */ + sig->x[0] ^= 1; + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + sig->x[0] ^= 1; + + /* Altering first signature byte must cause verification failure */ + sig->x[0] ^= 1; + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + sig->x[0] ^= 1; + + /* Altering last signature byte must cause verification failure */ + sig->x[sig->len - 1] ^= 1; + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + sig->x[sig->len - 1] ^= 1; + + /* Signatures of all sizes must not verify, whether shorter or longer */ + for( size = 0; size < sig->len; size++ ) { + if( size == sig->len ) + continue; + + ASSERT_ALLOC( tmp_sig, size ); + if( tmp_sig != NULL ) + memcpy( tmp_sig, sig->x, MIN(size, sig->len) ); + + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, tmp_sig, size ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + mbedtls_free( tmp_sig ); + tmp_sig = NULL; + } + } exit: mbedtls_lmots_public_free( &ctx ); diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index e4c4b911b4..9c966cff40 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -85,12 +85,63 @@ void lms_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, int expected_rc ) { mbedtls_lms_public_t ctx; + unsigned int size; + unsigned char *tmp_sig = NULL; mbedtls_lms_public_init( &ctx); - mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ); + TEST_EQUAL(mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ), 0); - TEST_ASSERT( mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ) == expected_rc ); + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), expected_rc); + + /* Test negative cases if the input data is valid */ + if( expected_rc == 0 ) + { + /* Altering first message byte must cause verification failure */ + msg->x[0] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + msg->x[0] ^= 1; + + /* Altering last message byte must cause verification failure */ + msg->x[msg->len - 1] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + msg->x[msg->len - 1] ^= 1; + + /* Altering first signature byte must cause verification failure */ + sig->x[0] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + sig->x[0] ^= 1; + + /* Altering first signature byte must cause verification failure */ + sig->x[0] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + sig->x[0] ^= 1; + + /* Altering last signature byte must cause verification failure */ + sig->x[sig->len - 1] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + sig->x[sig->len - 1] ^= 1; + + /* Signatures of all sizes must not verify, whether shorter or longer */ + for( size = 0; size < sig->len; size++ ) { + if( size == sig->len ) + continue; + + ASSERT_ALLOC( tmp_sig, size ); + if( tmp_sig != NULL ) + memcpy( tmp_sig, sig->x, MIN(size, sig->len) ); + + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, tmp_sig, size ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + mbedtls_free( tmp_sig ); + tmp_sig = NULL; + } + } exit: mbedtls_lms_public_free( &ctx ); From 90e13fc3c62132e4dd1bc3b36f6dcee4895c7ef6 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 11 Oct 2022 12:48:18 +0100 Subject: [PATCH 0648/1028] Add repro instructions for LMS test data Add more interop tests, and use real data for the negative tests Signed-off-by: Raef Coles --- ...sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux | Bin 0 -> 10916 bytes ...sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv | Bin 0 -> 64 bytes ...sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub | Bin 0 -> 60 bytes ...shss_sha256_m32_h5_lmots_sha256_n32_w8.prv | Bin 0 -> 68 bytes ...shss_sha256_m32_h5_lmots_sha256_n32_w8.pub | Bin 0 -> 60 bytes tests/suites/test_suite_lms.data | 196 ++++++++++++++---- tests/suites/test_suite_lms.function | 52 ++--- 7 files changed, 178 insertions(+), 70 deletions(-) create mode 100644 tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux create mode 100644 tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv create mode 100644 tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub create mode 100644 tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv create mode 100644 tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8.pub diff --git a/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux b/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux new file mode 100644 index 0000000000000000000000000000000000000000..967f8f5e00a31b3cf4bb88903b95efc7c6d24ce0 GIT binary patch literal 10916 zcmV;VDqGcn00C4}6N_X6RntqVV5)4^sE*gXWNYOPUXb2vsFmLJj`% z$m=?XqYc1*tL94z1>7^!WW)*nR_}DGK$_3!oC(^bmwstITP4|-ik=cqMh_EV1IAoV zbZ!YV4ky3BCB1z#ON(}qX&*Uq0w7NFLqfH3UB<2cRGP53hgT}offK|B`ESi!HBmd> zbw3V$L8a7^pS$cDUQk1tA_#&6T7BxT4-;e0dVE;0D4tB~C&2*k^-*9LZK?n%XlVZl zXS3>~GSNhW7Vo2q#SLb=i_0ZQ+SO^T7X!b;x=|vi-9?|k2zjYG=$JL%>>(m`Ji~hJ z*TE?!!GdZVk6}E4F5P_(yK`TOm(?x)y=eG;|O}xp1qHS(oH33eSl7ao5^&{VrA7}E9$ZAWehwRAf-Y)WZ0KuW z3y5C!xQSLDTmmJVd5Eb$XL1#(ydJIslX%E}FHO0AAH;&%Uqd6o$X`8;EB7SaBuPAxH zHM%1JW|x2W4m2|sM-28PL@MOUE9g)fYlk{ztyOeGfZJ7{Pv zhKPgg|7NaCXmMPBU~;mODTPM6x7dTZfz8nnh=F-#MO4iyYCHN)w+k>HiiJ?-c9fSF z4)$r^G`gHqNpR+*o+M%$e0(S}Q{5u_BX@wDdLCN5&|LYh<{;4(4G=xDsfVoDueOc??Nh zSAGGDa=-MzNF5Hs3B+oQ-o2QHQ|1|CHvr=5RwwmS;;AisI!XD)QAzpDsNcs2{gD>s zZpan9I?cBVvnQ5?0mX+;JdIt(W|(CnDWi>?qPaT}#WSdV3sb^qOOKVn4z|WaoUpea zk&ZWf(n%!*JZCxg_o^6={p!R&C>4&;yEO2>jS|igX6B|m)+2*PCwanIB`5q06U)o# z#%6+3o-wN4ffL=0##})%#dw+BkSr87QyZZpn$~i5YcqHb4tm*lXnq1(Lf6bhHG5_q z`y~t6OeE;Igf3qN_ZWcPx>W=wPdT5M=vH``vsZZ$pbx9xdL-y>MBfkJNWx*Z4c;2= z;#Z;qpgkyQh5q(4)YRI%z)q^envY$b|6TiG6EKe7sF2*nTkcI+^_j2MBd&xnkdX=V zlkV#m%+qd}jnTHSFa%Pe(3po_s8F*$Hk{P^!FEfIjW!~@nr#Lf()$FeUt$<@&5L1I zID|pP(!(USV~7c+!QYvy4{iHlN&VIgEbnE3&q024x*43S)o)Nr@nurEJGDz(`|fAe zm6Egbc}?Dg8ej4FwdQVyoOJ4ZtqbATE{7$slx`T$PT8pcVzjoVWloVrtHYqaHGbcj zyq_?vwWKZ6{i*8N7Y$YbBpbU408R#owo$KZx|AN&*Ev&fx!SJfivRSQwU1fCd^JJc zxJ*azUA_Y9#aflESEFIb)i=9dI;PS3AMP$37H?nsqojeZg#uyk7^3C%nbbK+ll*q4 z5`9K-tUF+CJTt#xc=s>jspe5XUIo5+-3okjH4N(IDfzWLG_U-RrC5xPW5v)VP>Kz< z>m4I+4pk8nm00Ce@n();&ZH~=8vH@4%3Z+16CWwsY^`nwkttzV40z+9{w7oqJ5Z-g z?vJj{!y?e%tm1ixtegTF)SI{gcpQglbv8-^ux(xGd720;;Xk;-)Lumqq>-wQ_tqe3 zybi-~rcNY5IlW8BeiAg1=LqvvaS>_ocs>g%U)j<21h%Gr<~MdgK`Ptqp+4CgIgPq# zB7297W)qdp3ew*Sghx+Cp}*+wf5p7MY}J{@B@~Yu+Iw^h-2ApM!&^jw+se zGN!=^z|30RSFXJ&-bAPgPHWOiqz5PX0iRU~Yq2qbTVc#9Iz|&&6t<1~L=k<#FF`V! zHG>F8ecZW!B_%4xOA?lw;c`lf3kad@%(s5q90z`JniYomx0bE-Dj(%E)>>j18=#%!@ahe+eY&{G5^8 zXxCi9&>vvuvev)Up3^#nX9{@IkB-%wZO!9xFBf)Cl>ncl+I8%K{Idx!-mw&Jij2?s zIi+3EEXBAJE>$|`D(#ZQ!^QU~Ft!beTLjh@&E})7mDI+*gy6^MFE2$2IWR;v2l=8J zj~%*$(0AFy>H8{|+<++9Y(6eYB?I*lA6mH#fpCKCCj3=?M)&P#YIU>;OarTe$_sHJ z37c@0Nz7p@=V1On`p{WhiCmNa;8u#5>%7f@H2z){v3Uf-UwEa^)k`%zwam-YOTdMM zRVX&R!JIgZRUfygJwI?ZjwY-&2YyxQa}_X#H)wK_%azuVD-Ry2i zSNzY>ST~xl+2=b&A);9pti^4F8Ertz#WFz1k3bNu=HRr<5m(*gq~CSV0c@s_W^gvm zUgXJ&u-UoWwOOGK)ULLk*83Bq>=gp0Hd?CI!M12A`#27258dOhn-U%Zty+GO=Ieq0 zq`uc#Z~dj=>U^+&@G)g7N*3$5%)6Q@LYA3jQ<6%mi|$q zcfS*7)&0vf7%D?tWfAGsreY&=MW;&^Tm(mGKCUsz0V`$U&iuCuN{eW?;Drhjt!(#|{lhE0d>#_!X(#_rHS#~SKib%O8O14`mr zXF*DdoL}v_QYSHD*9P^fuHpS2ObBJHBeh>O>Oxe3zy{;LfW+xW&g|FHbCYMMt=vpU zh?`>!Ge7T41rhG}Qr?M>c`$v;6(=%R)Naa}%-8hH_Q zPUrF@abtC>hiz~=(X}e5#wP-*JYh}jZXVBK7G$=P!ugQ<3mU4VVVXLX1D9BEm=O*> zhrO&R^eWSdy720zoKbzhoPlSNUxWxqKZYus|B#E$LL9^K)*0c7bPfwr>attSZf-Z_ z^&hbU{^KT-CCwA!@jGnPCgthKFPs$BUu0y|)d3Pq!dgt59Q&0;1N5#Y$s!@+oM;F` zu2s*|T-kzpJy!H=hcgK?dFf`w z{Xmn$loi7wlbTrv!h3M?lG}pnG}D-!`@V|?On#m%vIev7EhlCe6MNDWe*)a`e8}$Q zCScDgztYKG_%~dt65&@Lxytb)hyf=;O7mf{BpR~mtCOSv2lC;qEc7Skl8n)*7yGE( z+%u|(Y&o3Ib52)^*DHsYqL~cIyPA_sPpxy<=@x~%Rm99oOV^*J{q#07{E_XLv|IQ^ z-SABXYZjZ*iR_$+PTmZF7XKre>-4*c$j8`KyvNI5A-VH+n%m{`z;21704Yg?9n+4cW!QBmC?Jz$Pkb5%F@0-UvdL zYSTP<0%*n_*M~&!G`y&LN#tgOs30m8q#iOk6x_SrMJm|VdoQ}nnaW)XUlD}!_n!0b zb8^8Pwd04C+odN-QDmks_CRA7?^UN`X*KCpLG{BR85?M8o?5349w3Qzdr2<@++(>>4EoaaydpWBU|c)u2I#na0-ib3O9t!+{9Imo$Ts>x33!` zX@5Mc7|6lOI_Yi5R01q+sT1~}j^T}t)x>QrV35D8G@6RPP4#QQHJiB}tmuVMIXUx> zQL7{Md?r1qY#Ahi7KVO+Yqwi?0Yo56VbKl2(FK9+PJhY`q@0(W9oC<+<5g zhj8a43HkCLL?-r@wa{ISJptfJs2@pitodsiCnOGDl49@<@vCI+UHxUPnv8$cvExu0 zB?=R{Z5l@12UcHR_!rNIyXvrTPTBkL-VK6{gn8xWDvjr+HSSenEM=yM)(`(hB4Qja zPnfMD0j31o)c(H?(fCWn=U?tEZR_9x1SibnvRqs zaZ<(KHIgjxjAh|zgkz}0y$FjKxzqhay2gtWUQ!!g+A^NqG>YM?isDT)X(n*O=_ztR?nnr$J8&D?OiRgETDN2AV}p28!mABZ)Q6O2HF>{$-0hIS!byGBJbWy~s22E>_EYzk?07yp+9} zy~ux5XC?&8;IUt(G}ta6@r^NjC_|mRaiPnZG$k$TT&bi$%ovQt$eZ+|V(O#q{|7n$ z*cJRgz3zpF9w<=1%mo~)ZF^GY|Le&Q$=y65v7D0;+QUF}KV*786&q~InYjFg6>Ak0 z66oIbwIMevIMGPtGH=60vT!uFPc;JS==wl*Ad?v$9+Ra62O@X6KI$UUZfH!_h6hKJp?JAmIwj z?4epFk2l4iPE5lEEYrT7@@uf4rbh8@WO7MN2C)M(0w*c4^YSP^c0!OXX+0EXd^b0B zxWuA3)4X&*qIeq_?0z^)LF>eV9V5@o(V^%crmbizn}&76`-_B)8rS5m2cM2)f>_Ga z$i3-Os${gCy8Oy`@{Kwvi01m2xK@IKuQErXGvpb84!8O9XU$uQarYY#L&iYqwd!~5 z@iq34e47Ui>Mwy8`~b#TIw4q1J@|KlqPJ8)$dj1gF829b*8{xeW2zlMh8n=mQ^a+%DzGJvtDXgYNm{W80fRV! z92PkLwSv_=vPdHrxc-E!6`L{Dd_1xPn@{7HPif}ZhewVZ=-B3O>|7lD?lTPU8iykk zBRZ5mG2;}(TC7y}G zD{^jAQ+@;@A+&Jh=8Cp_*B}R83pqv>+&JVi2z4ep6o= zuQvc_*0j=6P^0dAY~l^w1|R2^V7x*IHstynX6fCm@#}{{4Z}m2nvyw-lg`C+k{bZZ3K8hi|00#KfarCMyU~6^l zpt&E92_kv7%UJ6!hn0nR`+8^MYW3tdsvb5%_z&9KY=NxEuyOyl&poWJB81zaDU_ik zXGT^=j{Ab~csUu{EVwP1;GoVDa>yq8L8omSk384S|72@Ew8G$PfT;hKLz5&rEpYf( z0+5m2jOU6rou`q>^wA>Y&_)R~9ryB|+qOWjL54~byyFCcE_?gQ3pSivhKC}Pa!tOR z&OBBsu9}h3(($Ys5zo}8pUbawITaPLAm$6<{i*+Dfh@_1!r5JCVC;dY_Y!ZsNNvG@ zg=(G^Z}_@{Onu2PwwS-5T3`1xUH}rlrYy8sD@lAXcD|hG486c9TFqDR(m*Ih^qXg8 z?B`;qYPJ&yl((jSMAVAJZ;?Hl{5bd3OFsNR#JT_FpKe=+6$GYT@bmd~k7t5uL+%B+ z8Knspe!lazIYSF#(OyYuVIa$2u`RoQ#fZq{QE^xzAQys1*9C$x7Dq8+=11*v$`Ei+ z{`EyerURA5uCWo+ze<+q8xYNu|B)I~lU!drbZ@H~xgsT`6vE|>Aj}uZ{Ji#|->N(a z47Jzo^j8t41m*l48_4etCl_-kz}>E)#m`a|5^n2MY|r{h$sxsZb&gVtOG7Bsx9}1^ zRhNWQQ-6bhOh_rHD$80KWk7wpY8ap+!Gd~g;1P_g1JgqKceWdLcF?k`bTE)!MmeJg z0^Io_@L7HqExuy209sWY320d0Iq8B7p2V$T_-aXctS~m+R~Wxz|I0|HgB{Zfj4Rk` z^5|?ab+TIqCVTVjHKRShif65GDoiRD|2CMEDNawa`{KIL{LnR^BAzX~Px>>2JxA3M zEWg?Pe?52g=kNgaAjJdg^sb|gH`Y2sY&t_l3V4UNkwQ6;!EKExhzpW`0YTV5{9l@T z)*&-D1T|YyjUE_4q?h?x@ir@cC@~&zhc<-)9S_v3L;h$hI9VQPmtLzy8>S9Gyx2Azku?<49^7e{8KZ2lip zM0GP#tiFU4@3TS%Lsr$|J`*`JJIF-kZi~M(R2Bg?{e*5z6{(|Q_y7gm*r_@U>vvbSWN*^!4aw{0FHosQ$hu0&k< zB1E+zPCG=HR*}NM7nH*=1f;<5>|+~YwwP@e^Jc*Co*18X5G{%$ea>t>IBmwZp#ohy zKxg*n=gxUZi~)t`c%eYbT=~~f`A0#$Gd|4@0@f@+$F4UE<9%Cq;@O$%;_fGfjks8` z$S(3`euEfpL*}Xe2?Xr$n*6}rcUsI|7JhltXPNo?qP2UnK8AnjaWhvI{1_skWarcj zPJW%PoBMcJQEMz&hJjzTE6MD+{B)LghV0VL;{siUop_9t;$J)QA}UP?Fy^T3p*|O7 z%M<@6U@gM|561+cyl8)pskVaa^S7L^jAog3;QpwRei-$eB5xeK}oK%EfKKVH>sMj;{wN2z>3YcjT_SZ6N|ks0f9E$DO_}H zxiL5Ob38XiL+{Dn@A^!k-E;oIC&#;|TQ1XA0RKLa`r{8BPfv(7u=|F4q+wJDoX|VK z7Qo8C-UP(6Y~qe;%M9lTqIKFd`+parrZj48c}Mah6vr(u607&!DCp-X7}^?n8E5}y zfpqp=`Pme|SW9U9#PFvOp{amV3NVXJi5czJp^ZP>4!Vi0EGG_ID=N;LUUM7FDZHgo z&}G2eAfgRDNI5M*#r-||fKW;toHrowhr18-v!L2fSiJ?cTUFoXQ7O9~{R&8(blHj# zV`4@?XuZI4MU}hFjl`tXnWbpq#xqWGJ38TV@rvAq#l!T>QnEGao``tjN(0eG#GEd4 zGZL{gu0b4>h3Nt)g@##fYqby&q$6#;FX4tmExyCSB9r2rQ6GSAmE)(HB)X-4vC6#a zZ84#Zv<8xaAUwKcM%?YZZ$&t&pk_ zjV{VSj_ZVPSS*Ol@LNc8<`r4%F$U zUZ}2d*%dBy`4)?NMNvmYtuVRkzSEWU9TT2a3(c6MF(EHiEA14#Caz}rD&2~cVf)a# zI10Hx(sCF#N2Lx&qE_!3&LLa11KXREv)x)wGv)B`@t}`3A(P5FkAcltxi1=eV@F{F zHeBWJv(-mmD?Y;!#-LtT&lw{gzELu3uCVBh4g>(o)jYCl@yNSIE3@~k3rXZLa$Py| zcV7t%?b+H#^D55OR{12gKQs&3JMV&Opm5s_gokUyKf&&rBxvwaxS;lsx(dS3gOR>fhwB&Q?wC=q6g1b_gs~RfC4!iQAMZh|89%^>mxW>4>K=h0wf-_ zX!ZR!o9R@am7KmBMKbTNqL};%I3?PL{wFGGU!KmQnfu|RyU45{*h{s1zAN5zq^$|2 z)DYYyQ1m$l*o2sLAa_KT0o8=IEhYN>%i&VD4B?gP5p0i*IDvn1cBTZ*TWh9GWYT$K6K{v=bvxO!KQaDbz#Onfb0AP zHZZziK6Y&8e!tjkR8#SRQH{Gf5a~z_q{Ne^mNiz06c;HL1yk{GHY~WdIe5Q$EHW%J zEW#o68-+{3SpxfB01C9hI$nSs+bNYq5HAL_t)O1xC4;-@ydH$Xgtb*#5!cfd|K_rIaC)D_?RZ_|(p7(PZdva@oKt*-pnjOwTth+Omd# za#SWv4;sEV1gnT+v&e#J@+^q(>p_UPP`f4q{c!>M6gENqE=aDtlebPqzIB|KoLzWC zDXAYGldxi?>v03oN(}-H2HAb~za@0@LeM%VQ4K@kf-g9GWng|G4Z@PSIGMZ}k;;fN|CYDHTV-8i zBJW{+d}TysB9fgb3sSK?XLR(_KWmgc3Qv^NH-TL?&OC#hov;X^wnqwml_A>IByEQRQZmiX!hX@F7&|j&6zL<)cU3f`NSG|D`rQBJw$z%5~<@@MY4Rg`v@y zpHdsb+opzkLaIS^T3dI$~I{)QkNG`_mHBaggeA!&PPS+S63z}_XyXG6BO7O`Z~ z>N74*pTgDZ}x_v;zNG9G&{us{*|CW82K@Y37UUoR6N2C*&i zOgA&lalN0e)NhVg9r=tk8AAfch2_=Lh<6A(=9Sn$Ke-rhI)MBZBFa}`H&r0^LmxKb z(+=aHqk61D)oBZ8Fy7huPjq1M)E%;L^d2PTHeV3?b+kH6Y>i-M@dm}4#cL!^lb4d3 zElIFT<$o3_*$s0QHQ4NkzUfZ$F3~Ofm&U2H%{&b0Wi2YAY%TsVI~f1AB_OT&^XujVbVs4N})AA28f6Lr-r_6*3z%F*Pl7vKCj5IBitUf3Vnh&kc3h{v54uj8rooc z_^=D>+-5Z{J^%zOh8_!p=$7iF7p&|jr$@TAFF9Y*fb_BOB@UWjOXL-3?2^!Qr?4vS z!P86s5?9;sDlK%Xyhihf0-+u`!Zw&1R@ZkVPQY_B zYY-GwSihMiSmXH?m16or9sy}q<$B7Yh}BoB*2yZY0#DQix~U;JN&S4)d2Es0G#dns zi<%uP6`uaq7;b-9*$zR@#+An>o;*5n(f>j2#sykmegfg-1o}g<**oDy6-74#$0hC? z1CEbdEkZHM_TtD(jAKy7F13HPB9nF2g(cH&*z*0Cw2P~GB$o5G`GHr~FKX@cDc;tD zyq;d?>a{fM_X1yp6i4c+mgySEUqK0}2aZm_pk#v_gtPgalq!t0awmh}JWGgnmF0Jx znfaXd_D}@!gw~XcEP19fci}o6X5Vv`!eFz-@ zh)IA~{Ti>NT6p1ymDD~bz{wYWdcT<%m*Iw^eIndxfU2EyB>&4@vTeqOVi#y+wUx{q zhgpDn$S6%fGPlMatx`;5JpI-W6<0Vc}@a3xIf`bs|;D$ zIF$CrPR}JH5>M0-yPi$ThwU>Vs8+B2+t}PkN?ZXdy5v&zr@NVI{#_b~XEYfe$y}tt zwOA#PP94IsrZF zT)O{VfC{be@B_tl>GTowCTsGr{yMP<^W7z8dgRUM4DqeDuesMZmPL4elwq86iCYWtRiJpU#ISZcbgfApFwM zLd><)Ra0AHOr3}U8R5DcI9i&_!!h$nfSViHJJ_hk+lE(JjGynLFToP|8ADuv1E>Gw z z3rS~&!JElgX-rCH3#by9zS@KwF2_rT!0MN>mCMns{~R0g&%mC5$jYFA0mO{urt;|J z`0<&&$g9V54O#bT5`wp)j=$|#19aI;f4soaD&J9NyB{bSAr_OQ)v%E`I*d?BD>22V zra#L7rNi01kl6tZe>DH8P8qf3hxbIEQdXRKW<^@Ktjw>_cnRIx%#sIT%Y$lDcJ`}! z=pz97v2_zxsn24|!X~KS^JO%fP<&#se-zT!*RpT%anB8FyTt5^OxLjLbJr;YhRzjR zH7gHfoNFhD-&OwEM@&WVzpLHz5x1zs9rG4I2pK@xwXcqrHK}i|Nn8VNi+D3LggJ?7W)K&$cn)bW z1Kz}#K%>QAa_ws}RIas=X6>W`9xAZ`6S`}*Dz*mPCkUBCu3DxhKNE?aPb;Pg2sJwD z1(8;vZaaTqLi^xBP3lF=9b~+57}{M7%3HORTaw>?3U=n zO~cVA+j~=O+=;W%4q(})Gaaf!9Ff>l)R>0J^|*JI)c-FF<&}s*Crnq?|J|v9aJ(fm z8%>NFt@A!7^h1_3*maP76GIx01N)1$kJpRbhjbtH={<$R|JL?r6Z;GFi6&yM3f|Co zJKBwi42C2ecE4zzzJoN7xi4}6x~S~|^a5EDQ`7P>2xsC!%c)$Hs6;#(NZt@*b&JX6 z9{JQiikwKD2*?e{iJk+)aFw756AE9C_o4na?R0wap_ria^`I;UX)v?biB{}%1zsWt zr7fAhnp?bH_(-$`N^JL*qiqvI^zHTYCSN3ccnxe_bMNqC`OX8g%{NzJYRDW_(S;2c@%%1{H1lTKc=={f7V~a7}ZBg_7 zVrJr9ztwyQBWR=OJIHRSUM!ROTOBF9OHL#LWk}Zo4v^VR^?u77K(ndalOo~$x;&+ Quh}RnQGT%G`xN_|0Eajl4gdfE literal 0 HcmV?d00001 diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 1b1423031a..5dd901982e 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -8,65 +8,173 @@ LMS NULL-message sign-verify test # signs the message, and verifies the signature. lms_sign_verify_null_msg_test:"923a3c8e38c9b72e067996bfdaa36856" +LMS pyhsslms interop test #1 +# This test uses data from https://github.com/russhousley/pyhsslms due to the +# limited amount of available test vectors for LMS. The private key is stored in +# data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv. Note that this signature +# uses leaf key 0, so must be the first signature generated by the key if the +# signature is to be reproduced. Message data is random. Note that hash-sigs +# stores public keys and signatures in HSS form, which appends a 4-byte "levels" +# word at the start of the key/sig. We strip these 4 bytes from the signature +# and the public key before including them in a the test data. +# +# To reproduce the signature: +# * sudo pip3 install pyhsslms +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv +# * +# * hsslms sign tmp/lms.prv message.bin +# * cat message.bin.sig | xxd +# +# To validate the signature: +# * Save message and signature in binary format +# * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the +# HSS levels) +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8 tmp/lms.pub +# * hsslms verify tmp/lms message.bin +lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 + +LMS pyhsslms interop test #2 +# This test uses data from https://github.com/russhousley/pyhsslms due to the +# limited amount of available test vectors for LMS. The private key is stored in +# data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv. Note that this signature +# uses leaf key 1, so must be the second signature generated by the key if the +# signature is to be reproduced. Message data is random. Note that hash-sigs +# stores public keys and signatures in HSS form, which appends a 4-byte "levels" +# word at the start of the key/sig. We strip these 4 bytes from the signature +# and the public key before including them in a the test data. +# +# To reproduce the signature: +# * sudo pip3 install pyhsslms +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv +# * +# * hsslms sign tmp/lms.prv message.bin (incorrect signature using leaf node 0) +# * rm message.bin.sig +# * hsslms sign tmp/lms.prv message.bin (correct signature using leaf node 1) +# * cat message.bin.sig | xxd +# +# To validate the signature: +# * Save message and signature in binary format +# * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the +# HSS levels) +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8 tmp/lms.pub +# * hsslms verify tmp/lms message.bin +lms_verify_test:"3f4fe37f1bb9547e443e53697a12f0393efbcf87c23d91765eb36100dd5d2c48":"00000001000000046fe15c33e5f4396fe8af67d20cd9886c59edb8aa6e005a206427d55c66cffa0d552114c88c70a6e07a8e69c53568b3deac7835f5706cd76152fc6b8dd624cf42e372ffccdb6a96a0b5028e85181e8fd67b77fb0ff38fcce830c5b65dfe16762550d5450eea7a39bb3dc745c7fcc240982ed6d1ae251822b2ca210b5c612aaf559280a7b3ccb5d68c6ea1fb6784d5134004570628f5b35a8517358ba47c6c8b827eda2e16925e945f00a42a7eb6c9034891982e8b116a43cb817bd1f67c317a20f98e1b23809c614b60231c475f24f8c2437c36b452253d517cfb0ffaafa4b53248d3f516fda0417a74d0f43771f7369ca71064e2f54fb1bd98e028fdfe3157ef6f6470c32d4b7baaae57e1b104f4c81073cb9fd339349106b699b279877b2291e32675c6a8a82e35f1b337e91d8a29c8d5c046ceb6246c44467a4a11cff22abe98b10b6a6d68361d15f140b06659b90561ea43fd9c39903a4d2be84fa89642120498ff377024c42a687fc87180a29bd030455fc453ae84c1c747a35ca81f47beba61fcd6a63970b21ed8ee74e00371e7439cb790b00bdfa89628e145698c4ee04ddb528ef56dced72754659e87f25b8e92e60252ecc5580646dceae45d1ca986b307c459249ab3b0fc85f43eb22779711846f2ee13ee0f4060a7edd95c73209ff735ce44fa02145cfa6916a305e668fd08aa943c72f2167705450037dda5f688bcad385582bf1bfe3b8316f7325837c10d193d4d898776134d420107f136ff2080563d9c4bcd48af7ef9f2cfafe517082aac1b54ebab41388c171668d03c64e62208a60a8cfa81483440b17a359e95c730299a287084d49c623f3547d3ce7936d69cb478c0533693732e7aa3161370decc75f7ae52fb0065584a20851469c07d8aa78c0ae28e7d42e86b908ecd5161c3b74409d67d639c39b99bf03f9ec3ddfb607bc594dffdfa6393b37a2cfd0dcb18ff9d63aba806821dee85aac0938fdee86fe21045c0c200527ce64be88cd971902dc8adac1f14e212c6e03d89c9e268046448c5a285f287a9896f59acb93fb12e3ac62d1df44beba165a26403d4f738acd561834c3f4d554c4bc8f20eb90199b0c3f332d19c033eaca1339ef8d029026d2aa76760e11b27427236f94fcefc4a6844937559495a36ebbde0b116c2644469fda60611d9f6ff1b189a8ddf3073acc5a55f1b0605de7c42a660f4897abd14ae485457e18b24e3d71222ae79660266ce53e89d1b60ce1622d1ef8ce3ed5179828ceb7c7298f9d10a309830ae7b530a913cb6306b7d2ce7b10753e817314fd9b6ef584fab9aba0b617cbe1a54a8610096615b56fd5b6798ce98ea866da2911b351ef5ea4411a44c726c019cf375a169fa6fd66f54d59f04e4f615e8da822413e017b60e93412e6195d4d7b7ec269e6f59dc072ba1e688a651bb45a27612949bb9eb6d0fa887393707a9c7a07f2b0640fc67dbb55d288501c394f0b61ea4c2bc1af6599032a0f8f3edef2ef5b007d3618856d48aec7894e9a4b802caf9c3f0022c39c44b4a6271f81aba0f250997ddd423e3da0461fb687e56e20e9d4a2c38d78d000000063b71be980cffb4e8a8e310341d3b711ab19545ae90c3ac6adcbeb764419411a6ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 + +LMS pyhsslms interop NULL-message test +# This test uses data from https://github.com/russhousley/pyhsslms due to the limited +# amount of available test vectors for LMS. The private key is stored in +# data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. Note that this signature +# uses leaf key 2, so must be the third signature generated by the key if the +# signature is to be reproduced. Message data is random. Note that hash-sigs +# stores public keys and signatures in HSS form, which appends a 4-byte +# "levels" word at the start of the key/sig. We strip these 4 bytes from the +# signature and the public key before including them in a the test data. +# +# To reproduce the signature: +# * sudo pip3 install pyhsslms +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv +# * touch message.bin (create empty message file) +# * hsslms sign tmp/lms.prv message.bin (incorrect signature using leaf node 0) +# * rm message.bin.sig +# * hsslms sign tmp/lms.prv message.bin (incorrect signature using leaf node 1) +# * rm message.bin.sig +# * hsslms sign tmp/lms.prv message.bin (correct signature using leaf node 2) +# * cat message.bin.sig | xxd +# +# To validate the signature: +# * +# * touch message.bin (create empty message file) +# * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the +# HSS levels) +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8 tmp/lms.pub +# * hsslms verify tmp/lms message.bin +lms_verify_test:"":"0000000200000004b219a0053b6bfe1988ade7b0a438c106262366cb6338eb6ccd161326b29076d3493e88ab5df10ab456ddbac63f9cc7bc626a832664861a61125963f6e4b1fc202b0d6421cb1307451614d4d0e9e4509bc3991ede829f3805531912af12028c33128212a6e0539a458da092e83dcced8ffb1d9280e76593a239d3e87858905d3b4ae3864cd55972f5610759bb7d929d24ae262a1e028f140e90aa7375e43032c0bc28fe5fc25d53a26f4f9e6de18da2f697f82e409308e5b316413df8e85487391c46e784f9303f133ed332c88e6d1467cebffd9547592e907ceba2992a0442410c7a87104697a4ab3483d9b2af9df574edf23811cec0e681246f07ac74e1ddf64a7f7abc72d0a23b70d5f7c9649188eec8644f2437951640af4f673e6bb7d36a10c5c4c857f518974929824011dc79f484107388b92762acb11839c7cafec7daabdbe651f500930386b403ccec90a507829c18df23a800250d412a82b4072c94de24da9fa25720f1ee433953fca2d9b38ffc5c8b6328e69bf928936218bd253cac5a7122b74639ed7f4085d27efda2a698aff4bce385b475470adb19ab2095b3979e74e63914ef5430094e2028440f4d2aa448bb41f1d4481ad76c9b6671f4a7aafdbea44316aa97993fa31c56c34f0acd6295cd2fca8be9ea6af2f4d656f89b113cb3b3ce35753bc0128629372fade890397c297ee4c22e735e2b5f3c7383ed154cf0941884136bc6e51f860803b963c145795c8f573ab43953d25c0837bb13adbcfc506795db26fbd7a277d9532a23b5c472628944a3dcfc424e42fc54b2ed2cc8166cb82e9364af9120881313c97e429bed15bd9d46fe407f229cbc6daf1442e42c57664a7e832a809364750396a0b134efccf9a31e1ef1fdd2279d1179a673feda330b9989681c94d69eb197b6c3048623e49c98cc7cfc8d845c17f9059e7f15b72af8680cad2591cc9c135b2044fe7df45b8b6ef6e8af85ddb677f0897ffbda8131fff0eba1f94200f435bc26cfe5093c63f547620efb3bf8f905fe4ca1c40e163dfb6432c4acf068540c2c81c0392d375e99e3960973447beceefbd437f51616f85236d75815c51073277cc7ceca622bb76236d05a830e024a231566fb07f6f4e3671bc7fd5e22e4da1f4d4f4e56a179325b2ea9e51d6484df0941e0b46bcf4148e98530e9b3641e351b67073ace8438fac6d9a19988af4d594048f12eac4bbaa73eb15d597b1fdbf34ce9410520d9dc4b6bb7a99a12dcdc530c49bb67ca942adecb7adf27456eba9a9b416bb98b25c8020f4c2507b74a9ddb94f197ea42f03500bde751c04ec2c6b427ce0f80322a6b356f0d9d26531843639c7c7938b83541c58fedd0398d81b93032cb4892903a5b1cfd205b333702e7f80c1461a15edd6058c2e08d8afe44e4c5bfd7d9ac2578b5a16b4c4e43bad5f7b22041de5a95c6f64422db270e1f616e379a034fb3c08cf892af6df8af91c2767eb76bcf018e35d66fbf4ac1e5a6a10033ea118f8cd2edf57c2288a93f2f85b6ff41283b029e5c7b04bdac33b5aa79bf799292a0a046b98e6d13a2bb53a970dd0a5784034600000006c3faf2b844e6f17384998ae0616755eb7578458b7096078a36f9e556a2a091be47c0f85ffd8ee916734855a6d116fa1431ad6cff45d2a8a7f6c122f4d492df32438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 + LMS hash-sigs interop test #1 -# This test uses data from https://github.com/cisco/hash-sigs due to the limited -# amount of available test vectors for LMS. A public/private key was generated -# and used to sign a randomly generated message. We expect this -# message/signature/public key trio to verify correctly. -lms_verify_test:"D5557C719EBB0DBECF563E5CDB16568BB11CD779":"0000000000000004C167A9AC495BD4EA34CD8EE5AAA2A656D518C33612FD87171421BFC3977CFA99765C6D496499C72A1DE21360DA57EB96BC83DB8AA92E560054C7805B04E336162FB4C411B509F76959F2458B0E53CF830E0145CCD439D494259EA4818CA68924A7E8B9DD36D6A9C7849B72F9338ED6C80A3E70B717E8E65B991B2FF9D8B49820E8ABC9E2ECC17DB38E855DA75D84DF9885C7F9DFB4ABC209CFF1D37D66595371D688A203CB89168945200C39169F784B19665CE1FB47D58BFA734C3E0E7E31D1206A033C6D8E25B7E45CA779A5FDE00C6B1CAC44884F2B52A380E1F6D8753549F7F4948A95AEA83703CF3AA108FA4F735AFC0DA1A03C378033D8B5959E7BE05D3C5070E709181AC09EFEC04128ABD7E8F37304FAD4B66373D4A83CFC1EF632DF6DB95577C2C6101CBDC807109ED8AE831FFB73DBC80942C58F334663B980F982C74B943BF7C57147250AADE595310387E3BB1A2705E9EC73DE7FABDA5EC0B1141A18798215B9A70F8D688357C833ED869059A2AA3360155EF84426288198D0FBB78223816B17093684C48942ED18FCD351C34E108E5B71D1CE39E318B5D991B650C46A91112E013E1180F2054C7A22429CAB31512BA34EA3AD9B68C5001EB70C993297CCF11914ECAF059922DAEE7D90ACE2567495ADA066E7DA1679CA45DAC1990B17184E7BE2E6A0F26AD77F19855D074F5B37372277484CE30B80A0540173C1B310C3E7B683A487B5D0676218EA1F65FEA444C493FC535E948EAB62252DCC90516BB45B60D4253DB6979FE342DC5CA1B86B01B2D8EBA79B0BC7B6984535616B792BB45F3C0E20B506E0694E1D5BA28FE96D34FE2BE354777D090404DD3508E9F7918FF5593ADB468478CA8A1F6AF752CC76F401E373B71471D9D70F455C8A73E4E7B6714394B1DD0E2A816AF3D5149835DAE477A70DEE0BDAC22F99A04BFB7C2D4AD53079C326F620DFD3F7CED4AB7F2E291507AA046331050F9E2205C52B36CBAEE817C5C3B1FBCDE61C54C8CB7B67E0570FA44728EC8FD091D5CEDC19C6B99840F7A0E49086F707E959D34B30E255B67BBAA24FADE532BF3D21825626E114BD8213170B0C2F01733D4ED420D01EE3ACD5F84DACE674AE7127DB0A80ACE252CAD9ADADDAFAB27281AFD6DDD72DB5AF878326C45D7DB1EFF8BC40895A3473A52461D076881310AD9937307217B5C0448B509EF9BA075936CC09E11B8838D3A6BC5EF9FAEA85A3EC87EEFDF2E38CD9732730085375A4FFC4E0A213B0E1FC3DE2D37F1EDACC3030F617F3459A03BFCF776A05FD3B7FD135782F6D6E7C5E92B56A1316525B26D3AE1CEA3C0C7CF3AA7B1E72B7599A31B50837D79A7AB61B9A9E2B7AABD2D605C97E302EB4B66C0588C24147955EA0892A54D42843568FE0863E7EFEAE336D302E672EA62689B4DAA02DD5BC99D93886EC7F411C53CE1CAEAB59FBC0B06E0E294F1900F8C626C6FF520AE2323DA797CDC120DBC19F7FEBA0E13429508C5B838A0F8B9B28A069C5DD40E2F6CC2C95FC6ACE7E1351516817BD2DC1AE08D498AD2B0BD1D8374942FF31FC6A4689C592244C919C3561E73DD4986FA500000006BBF34F6EE152B64FCDD1CB6848D2DA761798707060431761006E2EBD9312851F4F3DF3C46E10F643DDD58CB3D9F4D371F655EE26271F2DDE84A14CAA6A077DD96AF83849DE6CA8F2F3248902CBF49630C18C3EE3123D951CE9162D0E742B899AF9E5DA8D28A41C7CADF0194CDB09418BF48BF322F8C5E9563524196FA8AB785B43C4EA41A36148028D2F4C7356CDEEB09532CD7F2C80FC36589FF7A9954100C8697AEB014997C3088C242B4F70D26CE7F7E77384A9CF536EC5C5329E08BD6C1D65EFEFC1389A42D16FFB43A0E1D7661220E92A4A59703FB28410E73A677E803D4441929DFD7269E6F77AE8CA8C70B67B250A8728291EA5D4E3F03D505639408C88156DCBECC137142FA3585C09D99B84D8C380A5D29CE2ADA10A25F7CF939FE23288551F37FE2B7233BF97C0F5726B972E087BCBA095957CCD794794A4F50027":"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D":0 +# This test uses data from https://github.com/cisco/hash-sigs due to the +# limited amount of available test vectors for LMS. The private key is stored in +# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv and +# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux. Note that this +# signature uses leaf key 0, so must be the first signature generated by the key +# if the signature is to be reproduced. Message data is random. Note that +# hash-sigs stores public keys and signatures in HSS form, which appends a +# 4-byte "levels" word at the start of the key/sig. We strip these 4 bytes from +# the signature and the public key before including them in a the test data. +# +# To reproduce the signature: +# * +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux tmp/lms.aux +# * +# * /demo sign tmp/lms message.bin +# * cat message.bin.sig | xxd +# +# To validate the signature: +# * Save message and signature in binary format +# * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the +# HSS levels) +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub tmp/lms.pub +# * verify tmp/lms message.bin +lms_verify_test:"6b7439e31ef128c54f1536f745ff1246":"0000000000000004163fc2e3d3267d8c0d9fd9e7bb7a4eae84c3d98cd565de361edc426067960fc3201d9be1c30f4e4edce91844753aa13ff21e92648ac795b7c29dd6140962b5a1fb97b02570402a498a495044edcb26d1321c52e91c60cc3feb8f8e84fc77f97fb6e7afbfe4c2f2203d8d84303e2dd212b652e08a2e5a24a333df859cea3c5a547561f7ce6d182e2a3f2f018ef7e0578621916cff905c0713fa5f2bf73248ae6985aebc4086b79ebf71b8dcbb592eb61dc6303d06dbda88063690361b0dd25ea1c2c6b4d82dddbe11740864c65c228d67e9a1710506e585a748e7e02b36706e5cff83b3589613f07c636ab7784d6a8288d33e80f063165a2ddcbb0d7da815df8043dfa500c3e313c533bf6aec959237c923813d3109bdaeb195b1337f4cf21c1c863f6261dca411819603a3ea60cf34c81b462c4979b357da2bcdf3128343ca5a8a957e3ca4eebb914d743862e29ef48e43e7c5a7aaf7a2fe1251c309c65e9143dcfb298fa0d353084f60c0779e1a09b040f13c1025ec99402b844ff9996decf4b5f0d32a0858126ff293472aa93fbc2017d39fee93ff9f0ca2752b25cfa12542bf19cc1b8c102d65b70dccf760f26cb546742ce909d45345f802a985bae6a0f922a9c2a3dc992fae9f6f2fba0c52cad82564bde6ed8af880ee7a5eb5c6436611e5da1c690831bed34e3dd65acf2b8f496b6448e957afc16c48b6cd733bc84e3606a1d0609f08015c14b5619a2723f9b22950efc7ff7b733c299fcd84ed89c4d5cd43a9a54f25fc0fa1370d184f9e8011b60ba38dfca0eeeb56ae37a5823718c8210db20c2de13c39e43970b0b53b85b9cf9ea0dd025e7db558b463c683980fe59e0defde41afe825cfb8606ca861602a7fefd7506edc81b7ab4a1e0626e0bac1f99be118dbc1e291028fc73d0a0ea6559ae1dcf7477d64742c9bef88ef04b2ee4d392cf1efa23d8b05d11d2414e64f4540623e11bbf57fb8ae219331db0df459a9849f2700e6fa7ff4edb0fc01764949e279e84374e7a57fb5ee6221b2b72dbcf2ab9c988fe07d21e169b4338887129ac503cc6c0912787778d51b4b921cf7bb17d4028b7faf6c21dd616a1ac3b50d595ae0e3662e7faa16b9dec7694462c7fb8539ece0af33cc5a3dc33641b8827bf4751a708d7bf286cf2e795b8f45b76e1109abd908d0388d6ab8ecea67b187aabd80349e4bd286e3b6eeb3535cc9c343a39fe90cb443906b19d2483b4c93d0e35cd68d9f5523d5400a2b1708ba3361bd0757ed69b1da8845594edf053995b2d96bed8210aaab25fc34b2dd58004ce800360f24861e5912ac339ed0a78548e303e728a41e05c11d79013e3971eafa8034e63ecf1c842f0d9e735ff3b5badfd63ae07f051c94a9a867260b517e5c2c75e88e03d069bd39816a2255c90de81bb79622145b7469853a02eac45289fd9f9f40e2fccdd8ddb740469331f61badc1b7f6e0145dfe30141ad2f26ac8d7ff5125dc4dff1fec57629cea4f7de4401fc056e9a38ea028ac9c666ccd3f527947672408a759a5791d9efdeb1ff25392413728a03d4c641f4ce1542b6952e7595f1eecf1060000000671b0912d734442146e128d0029101ad34a6d2d586640235c828d427dfaffdb156771f06926678fa50aa7167684c1de108944b2c4a3358f5e926368009e4500a8d4d501124bc25a4c9b1cfb954503f4ae26c92221e39c680843ae55cfca972e139c82e2e4469a703a1866fa0e6d76636591f4ad07f7d1eaa19077660ad46a6f9d534970e6a49e24621b7c7c283253dd22fb24eb7819fab84bab88e42555d5437d5afe06615a7e0d103cc8595616690f1337f4345cf418724f07d0dc4d2c0899b691691f397202204ef34342b5725dc6adfe549ab0b887572ad38113c407f96fcdfeea0ffc4f333addfec296169e53e3c5b24797a20f3b2f043f5e96920de9927da466f09389d3e52a5665f380f68666a019c201e710ab4c168d5ac952a02d5909a6fcaf498a33e2124e6a828203744ee3fe70465adde0cfbccc1b4634541638ab":"0000000600000004e18760ef2c86192aee88579e376f35cd153419d622803a483e79f6d368629308a8ab6ff663c4f108b2033af290dcedfa":0 LMS hash-sigs interop test #2 -# This test uses data from https://github.com/cisco/hash-sigs due to the limited -# amount of available test vectors for LMS. A public/private key was generated -# and used to sign a randomly generated message. We expect this -# message/signature/public key trio to verify correctly. -lms_verify_test:"DA16BE0B8FB691248486ACAFD531BE6EE4C362E0":"000000000000000484FCD0D791D175A0F86D64B2E8949F793CA9FFDC0347DE125DDB2F895BB9D2B43740B9B326B24F934D67586812BE6F3FB57E76FB12FBAD60A685F22A82C95C84AFAE63F47BB3CD951D483F61F5626B2B5FB6FDCA0CF02293EFDE1EB0AF6712D635678E825099E95435B43EF83C49C6589054D0905D82D597FB11A721D2232AD168FD179724539699C21163D5ADEB52290CB711C368572FF8BB95AA61DF2AD128307E768E73D3CF2BAFEAC8B6CD165BDD0316D2663D1ED61A15FB974082FC66A55E13ABA4FD084970EF6A59B0DFA1E934BF0E056C86E9B4C5B94CF863AB9F23BE2DB6A140A9CAA8DB31C83B21BDBDCD07304A52EB8501869D86BFDB68A376D94F847EED7E4CAB6A6EEC063945AE4DAF657D5509249E7FE430F5A13B188C4DD311F01746CE28F4F6540041EF6ADB299F712F591C83B0C12C1FB3E4A878C63217E25E08C004571FFC69E9C684E46F4D36C36409EBF3EB15F32A187176F4D177E0FE0E71ADFD4DA4AD2D57A0256B29AD5DAA6867AED20CC862AF5729D030514D41BB8D74551D8E925322C81A357A586227BBC885AB683BF835E9333A056AFEE96F2AD0FF6D6E235A9E2BC342ACBCF0B8EACC95E7B74215F6C65F12829433301F004EE1D9CFD16A4A1D092F48E99AEAE9E1FA4619ECE5E05F5C19F33C4C94A774EB8955409E3CFA73D8807CAA7C55FE45E980C7E7626AAA193F18A3AA7E525FFA6466D728FA25563DD383D855A0B6F8C011AC8C79C853CBED3A016DC26EF6E90B3E78119E465B9962A42B6AC168C1CDC9DB860D740B0C797303E2A62445FA618B5EB417BD4385C15BC548FEDF4D4842CA43F95188FFF63EB5D4AC85DAE618FDFB6CF5969EA0A3A52F73A4AC4957BC4EBCFEF593923EC79196021B25ED8D7558E4AF41ED74941585AC575CF1971D4F4C7C9E9516276734FF9FAFC7DE661F3090F71C98962789B31EA0FE406E2EF02F6F16B1708258C7559B8E05E27D647AD472805C865299FE30A5FE451DA7F2C493A37AA1655D492EC891B9AF559E12104CDD2EEB2E54138A1FB5A403AA32CEEB3946471A299604FA2DD3CA3E9567D01A3CEE5D09A1C2768B521C0C6142AF297CA5BFB3878B32D37D415542C15F655CB051240F3BA8FCE0E38449A0D7010A9B56BA2283E3A2047215813ED2090F7BDF16A40ADE32AB4E669684E6DEB6A94633E6643F29D10914F5A361C964CA9145514D4B80B45F3276EB0C649622034E71925FA038EB35E64C71CBDB11E91D779339516A351BD2A722CB60C2CBF145689B2E3F6FAEB74C3B58283929F70023503A96FED6A5D7D8A9E495FE1D85E0FCEC555F86747347D2FB5219FF65EFD144A5E1E88C63BE4259C42F6899C103536D75E0526508649E2836CACB94E88BD954B88EAC26F17B27BF62546C5C7573E2BC9EF4B65B8AE4951AF532F968FF050E504CC236DC48379E4390079DE451DCE710F9674D753C85B9FF7E7B09ED051EDD14C33AAFC8A188AE06234DFB61FE5A75C7A760B5286E1D6993BCEA0AB8A2C1D632145BD6A9F109ABB04E0B102D50DCB8C607AD6BA8C5FA5B21663E5A40194CA5DC2294BE10044E8D96AA0000000694ABC63BC5B27730C5223943C8341461474033BE3A221AFFDE66242AF14510CC656480CBDFC0B35205C89258A18BF6C29C4708CB2572DE15EE5DD481BC47060254954B5C5DD881AE6B358F7CDAB6F117235AAAC625B2750DB72BA4A96D7DFAA889BE780416E1CB264A413C6713710102D1D433BC6D0A47BF08AA74FD613D292A867261181BBD73557EE3AEB0F63579B71E58E97BAC1AACA3F34646350A13BB7ACE0AB3B062C41518768ABF3D32FB2F6A5E5C7F6B8B04C943D25A82F03F977755D74FD717A4B7E7674B03B577405210E23A2FE050E036DB0730359366A9436AD2CBCCE3E649F9E40023B2C12D9F5AA824319EAF571FD4842E573BB100BE9715D7B71F75521640D9B69B889349A283D62350D3A37264C89930F40603A5458B124EA850BA59024A46A8F325C9A9776817D739692FFAEA2758249888BF79D66FD496":"00000006000000043FC8322D04908C7C06C0D8B7A0CE24FA3AC253393CF9A56CF760294A06E75223E38C9E5329DDC493D8B51B1A4BBE41F8":0 - -LMS hash-sigs interop test #3 -# This test uses data from https://github.com/cisco/hash-sigs due to the limited -# amount of available test vectors for LMS. A public/private key was generated -# and used to sign a randomly generated message. We expect this -# message/signature/public key trio to verify correctly. -lms_verify_test:"331D543362A163390508127AFB9894B8C18C6E0A":"0000000000000004F5378439E9C229550D40B725FD56BE48DB785093E62BD29B723C61FABEDCFD486EFA120445339DE2A21A8C7465073ACBFD6DE3E50F395AAC20E0BCB23B088C416199F80B540AA81B2C0B12B7785152263522E8F79AEBE3B28315CC834AEB68475CADBC724DB6B7B7F594A7F9DA2505F5F44DAA7EEF70B72665A250C1F61A19F3FA4CBF389BEB9B31DC327882D7983EEED46DA8E00AEBEF85AE179EBF6D8CC7F720E9F963C4D30DD4015DAA27993D0780AFD7A45688422B1444AD866FEFE12EBD94B4D313517708A6E652D6206A8B263E234685D8133C2258EF6CA9E9C6FFD6D153598B13B59576897DC4F77C71609427866A347AE62B5C3BACB0A2E44B60F2CCB4989B0C57F3E785CDCF22B1FC8C3460A163FF2BE7A578E82429BA823F392A13C11A5639A42453972D2185E81809EF0666F8F01F575FBD9A46135F45651AA814D9BA84F774A9E9303FD55038CA41A21484BA9C38E69BCE4E37052971690ED3EEC4ED9AD41B0AEAE4DCC913443B9FA5418FB75DC1725FA989BA8DB5D9E221804FC7F36F3135C8B93AFF66DF89408CFD50993D308E51DF00540F380C0AD06266B80F646B917BA58384B55658EAD2D453766C4843FCDD934E8352A6DF6A081A15BDE07BF67E977E72BFE1AC37F411111A0A4D101A2CCF95EBEC7FCFC82B45DBA88939B0831987AE4D15C05A2E08F713BB0B6BB0E2436B7F9C83D2D869432465DEB9185913DE215937EFB4A52DA50BEF88688F5AB4397A04B14CDBFA5BFD948CD6EA1122D9D3C2927DE9D066297AA2C6FE8E478EC0F41459287EF9B8A1A56164C72AE3DCE5E914E8BC3C3821E0ADD6D1C9048D71BD71F71F3A6E04E63687298DE5A3704ADA82AA369CCD7F342F79E988A7BE066CA55944E0E3712F472891761E5617DC048C69AA4C250AA1560D6591FC0E7492027BEED67310E3482B1487E41DEA5E070894A5FB93FF4462D1F60C4B1CA7C15275EEA2B3790ED12EA930FD7F7F07D60807E4AAB73D1F889DABF2E687A487F331AC17D8DE24E8448E672F87424F0D1A73721A1A987519D0E3BB91D15D012B1FCDB6E23EEA17E93869C5199984CE8A068CA96C3096273F8B23160A79EE0C208D9B70ED5E23CB3586DFD33E02D06F1C646250BD664C27D2BB9614FF5F043A6FEE1A235DA10DCAADB19205CB839BD616BB36B738AA28E1D4F767BD8BAB6C2F84887C7B2E16CF6E07AF90C1FCB6E6E5A4CC894072AF4393C63F7119FF694BF0A043AF5F0825557A99C40BABBDA97D5648687D493367812743335A8AD7696562538C8BA5DED182C4DC818E7E9F630B29A9534E2583E0F4B5862D4E4DB250A350BAF360EF133838FE55AA683E253746A704654EF692F4F818F5A172AB0B84673D0AF77CC1DF189AA5BB013E833D1B0943918768AC6A83E6BFB306D3C3786BD2C87129BFEA1C380A84C4983D262184427284BF3DEB9B4C58FB1899B07B9F60B4402618168B1445653E8E48CD92C048684302A6F5C217F110D6699707BA42316CB31FE8F4DA6B82243CF1264751225594AF1BB670339A9189163DB9E985A99BCF83A3039AF3E65BBCD8364745356B29D761853E00000006CDE5B63B9763DA3EABCFFDA517688BDEC2AE9213E6B0FD7003D95458798AE9449DE4F1135E093B39F597A34B14AAB7F596E25BA469533442F54C14921ABCC5D04A05486CD16C8564E6A19C11BEDA574A9800107DCEAD013A7E6A32966B5BBE9FDFDB0184FE0707209B6D9EC43066899717E487E5FDEE02061EA5069B2D6C9C87D6BEB1310F1B9E723AE372DB7BE9EF6657F51FD0DE62464D3B37755095829F625EA76F5FD7FCD5829863F963FCD7F9FFFF3729688D025DF7952B067C62198E4C6CE06E960B0BAC6ADBC9459D9AC0BE1BAD46F95A121BBBE6953BAA10252419E2AB6BCA1B0AA1FA64DF728160B4FB7A62499C24D269FF59977649064C5986D615E6952EA0DA5B1C04C443BC27A63D391D5BFAE824F0161791E65896DC100EAF80037FD800A5079337554BD990E0D0A1A4C4C45741E72FB3E840665F2881D2CCC5":"000000060000000461F2DF219685CF313043780A57C18071725490AB8D53B676D484238BA8C373572407938CC578045649964958C0A872FA":0 - -LMS hash-sigs interop negative test (altered random value) -# This test uses data from https://github.com/cisco/hash-sigs due to the limited -# amount of available test vectors for LMS. A public/private key was generated -# and used to sign a randomly generated message. This test is a negative test -# where the signature from the hash-sigs interop test #1 data has been altered, -# and is expected to fail to verify. -lms_verify_test:"D5557C719EBB0DBECF563E5CDB16568BB11CD779":"0000000000000004B167A9AC495BD4EA34CD8EE5AAA2A656D518C33612FD87171421BFC3977CFA99765C6D496499C72A1DE21360DA57EB96BC83DB8AA92E560054C7805B04E336162FB4C411B509F76959F2458B0E53CF830E0145CCD439D494259EA4818CA68924A7E8B9DD36D6A9C7849B72F9338ED6C80A3E70B717E8E65B991B2FF9D8B49820E8ABC9E2ECC17DB38E855DA75D84DF9885C7F9DFB4ABC209CFF1D37D66595371D688A203CB89168945200C39169F784B19665CE1FB47D58BFA734C3E0E7E31D1206A033C6D8E25B7E45CA779A5FDE00C6B1CAC44884F2B52A380E1F6D8753549F7F4948A95AEA83703CF3AA108FA4F735AFC0DA1A03C378033D8B5959E7BE05D3C5070E709181AC09EFEC04128ABD7E8F37304FAD4B66373D4A83CFC1EF632DF6DB95577C2C6101CBDC807109ED8AE831FFB73DBC80942C58F334663B980F982C74B943BF7C57147250AADE595310387E3BB1A2705E9EC73DE7FABDA5EC0B1141A18798215B9A70F8D688357C833ED869059A2AA3360155EF84426288198D0FBB78223816B17093684C48942ED18FCD351C34E108E5B71D1CE39E318B5D991B650C46A91112E013E1180F2054C7A22429CAB31512BA34EA3AD9B68C5001EB70C993297CCF11914ECAF059922DAEE7D90ACE2567495ADA066E7DA1679CA45DAC1990B17184E7BE2E6A0F26AD77F19855D074F5B37372277484CE30B80A0540173C1B310C3E7B683A487B5D0676218EA1F65FEA444C493FC535E948EAB62252DCC90516BB45B60D4253DB6979FE342DC5CA1B86B01B2D8EBA79B0BC7B6984535616B792BB45F3C0E20B506E0694E1D5BA28FE96D34FE2BE354777D090404DD3508E9F7918FF5593ADB468478CA8A1F6AF752CC76F401E373B71471D9D70F455C8A73E4E7B6714394B1DD0E2A816AF3D5149835DAE477A70DEE0BDAC22F99A04BFB7C2D4AD53079C326F620DFD3F7CED4AB7F2E291507AA046331050F9E2205C52B36CBAEE817C5C3B1FBCDE61C54C8CB7B67E0570FA44728EC8FD091D5CEDC19C6B99840F7A0E49086F707E959D34B30E255B67BBAA24FADE532BF3D21825626E114BD8213170B0C2F01733D4ED420D01EE3ACD5F84DACE674AE7127DB0A80ACE252CAD9ADADDAFAB27281AFD6DDD72DB5AF878326C45D7DB1EFF8BC40895A3473A52461D076881310AD9937307217B5C0448B509EF9BA075936CC09E11B8838D3A6BC5EF9FAEA85A3EC87EEFDF2E38CD9732730085375A4FFC4E0A213B0E1FC3DE2D37F1EDACC3030F617F3459A03BFCF776A05FD3B7FD135782F6D6E7C5E92B56A1316525B26D3AE1CEA3C0C7CF3AA7B1E72B7599A31B50837D79A7AB61B9A9E2B7AABD2D605C97E302EB4B66C0588C24147955EA0892A54D42843568FE0863E7EFEAE336D302E672EA62689B4DAA02DD5BC99D93886EC7F411C53CE1CAEAB59FBC0B06E0E294F1900F8C626C6FF520AE2323DA797CDC120DBC19F7FEBA0E13429508C5B838A0F8B9B28A069C5DD40E2F6CC2C95FC6ACE7E1351516817BD2DC1AE08D498AD2B0BD1D8374942FF31FC6A4689C592244C919C3561E73DD4986FA500000006BBF34F6EE152B64FCDD1CB6848D2DA761798707060431761006E2EBD9312851F4F3DF3C46E10F643DDD58CB3D9F4D371F655EE26271F2DDE84A14CAA6A077DD96AF83849DE6CA8F2F3248902CBF49630C18C3EE3123D951CE9162D0E742B899AF9E5DA8D28A41C7CADF0194CDB09418BF48BF322F8C5E9563524196FA8AB785B43C4EA41A36148028D2F4C7356CDEEB09532CD7F2C80FC36589FF7A9954100C8697AEB014997C3088C242B4F70D26CE7F7E77384A9CF536EC5C5329E08BD6C1D65EFEFC1389A42D16FFB43A0E1D7661220E92A4A59703FB28410E73A677E803D4441929DFD7269E6F77AE8CA8C70B67B250A8728291EA5D4E3F03D505639408C88156DCBECC137142FA3585C09D99B84D8C380A5D29CE2ADA10A25F7CF939FE23288551F37FE2B7233BF97C0F5726B972E087BCBA095957CCD794794A4F50027":"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D":MBEDTLS_ERR_LMS_VERIFY_FAILED +# This test uses data from https://github.com/cisco/hash-sigs due to the +# limited amount of available test vectors for LMS. The private key is stored in +# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv and +# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux. Note that this +# signature uses leaf key 1, so must be the second signature generated by the key +# if the signature is to be reproduced. Message data is random. Note that +# hash-sigs stores public keys and signatures in HSS form, which appends a +# 4-byte "levels" word at the start of the key/sig. We strip these 4 bytes from +# the signature and the public key before including them in a the test data. +# +# To reproduce the signature: +# * +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux tmp/lms.aux +# * +# * /demo sign tmp/lms message.bin (incorrect signature using leaf node 0) +# * rm message.bin.sig +# * /demo sign tmp/lms message.bin (correct signature using leaf node 1) +# * cat message.bin.sig | xxd +# +# To validate the signature: +# * Save message and signature in binary format +# * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the +# HSS levels) +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub tmp/lms.pub +# * verify tmp/lms message.bin +lms_verify_test:"0705ba8297c7b9fa5f08e37825ad24a0":"00000001000000040a432454b99750f7b703f0280f92818b0570d0267a423b377be7cf0561305d4ce987b9d8dbc1c3f8ba410bbe6b921406eb802688d2dd8a1a6fa4a124cbcae9b5a210f583a956384c06311953b038b4ad2c2808224fc3a6410cd3b89274371956bcd4253a251cba6409b09c822e1d29d7a037648a6f2562d0df6359a043622f256f5ac79736c08fc4185758ff002a8397e560d5812373946348afba2ccf2cc0f3ba741ec076d4587a54b8b625804b814c30540152a3dc843a590c94cc23ba857e4c458c8ab687b5b9b68837ee890454cc19bb5f42a1e6dc051803fab50b440067a903013f675a774b5d02cd56289518d65f869f22b2e2b58d499e9e3929ec5a9f5d6d6e03cf91486094aba7c88491cde35b81c175c40410bc402d20f0a73a4da844d3a1d47e57618b7f18fa5ac85e877b5faa1e0b6733c2d96b2970fdd6e606435e3ec50eafa88f84fb7512217aa4be5858a140f242603bda634d76c484a184298c4da903094468d032b88586fd2f35182405cd85115af6a0bbd431f2e44217a1691dd8887db91d3b97264ff552ae7dc110a3a111f2bf74ce42079055dfb8390a16d67f28b738f837aa7880f3134deabcf6ec74cdb521bff44df61c999bf7a8ddc43b64812cd4f3bfb15104867d5e585d1cbf99738e0df92660b3e9135a4377d1199b8b97362fc87ce3c99db3b8aba63ba35eb353e5ec79bcee82b9ccc1b4f7d1b8ce7e5f8813d007be3d0e45cb8e7173337a5a7c4d32ea5116e0fdbd7846ea1f366a531449c78cd7a16ce5bffcd6cccf54b7f249a74e0df6b07f6b48db42eb958ff18b06995368af0cadd82f44cf44e4b53f0993de5f06b289bee41cd25f90a9fbd1bfb1ab2451c96b07adcfb5210d291dd505ea30e5d30395c8d84eabccdd2c7d6f28a88f5e5d245a6980c57810cfe17c9a37ef5e79b7b9ca755d56a789d21985372bed42ae2830d81ebf0fad6c721bd1d3ee91ae363f40d386aac23e7c0db965539ce9bff38f0f24bec3227b5a24f4cd7fa71ca9d306faa3fc4726cdb6634f218897b79a4aed67a58799285104eed74703ec4af6d5738b27b4d6fb71e52c1149069483a7cca6c3fccbdff77312ff5c635d8b0ccd53dbaf7b498727f7c7a70d3fd1c3f217e2cbd0dfe91258acb7f79f53f56012a82da997ea777b76dac0472e5f9830a93fb09703b1c0e45cbfbf641de94fcc6c609f02a5b31ad5821ba6cd48829fc5e0c4ad78e11e4cac8efbb1b170c794b7b131b0c1c4e39fdef81db9e7acced5ec824aed0c4e6b57fd1add4191e87be1446c7c519eb671205ce8c5855ad7a2b9ff7a9cd5c45336f508d0f8d2c1152dc2656650bdaf8fced642f3a4d445b5fc49910bdbdc9635de0086ee9582a796ca9f6052de805f41dfbd3e94982a05cbd36bab583dd5b1586ddbb3b1a45f1a265bec062c1a50d220870c0c622d852e650a67f31e8eb3d19e964de0926712b7f429ad05024b8db51eb6702c39580f62f037388862251bf66f02edee9615a63957eab75b28501f9f26cecd09a5c949127c9a3095036667fce8e45ba75568d5160fa1725a9e0038145d948f437640dc4441000000066e8db13a9e79d10a4e067aad448a1847b5489a62cde3054ee1e5ff2e37549d516771f06926678fa50aa7167684c1de108944b2c4a3358f5e926368009e4500a8d4d501124bc25a4c9b1cfb954503f4ae26c92221e39c680843ae55cfca972e139c82e2e4469a703a1866fa0e6d76636591f4ad07f7d1eaa19077660ad46a6f9d534970e6a49e24621b7c7c283253dd22fb24eb7819fab84bab88e42555d5437d5afe06615a7e0d103cc8595616690f1337f4345cf418724f07d0dc4d2c0899b691691f397202204ef34342b5725dc6adfe549ab0b887572ad38113c407f96fcdfeea0ffc4f333addfec296169e53e3c5b24797a20f3b2f043f5e96920de9927da466f09389d3e52a5665f380f68666a019c201e710ab4c168d5ac952a02d5909a6fcaf498a33e2124e6a828203744ee3fe70465adde0cfbccc1b4634541638ab":"0000000600000004e18760ef2c86192aee88579e376f35cd153419d622803a483e79f6d368629308a8ab6ff663c4f108b2033af290dcedfa":0 LMS negative test (invalid lms type) #1 -# This test uses a null (zeroed) message/signature/public key trio, with the -# only parts set being the LMS and LMOTS types. This test has a valid LMOTS type -# (0x4) but an invalid LMS type, and should fail with a bad input data error. -lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000700000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA +# This test uses the data from hash-sigs interop test #1. This test has a valid +# LMOTS type (0x4) but an invalid LMS type (0x7), and should fail with a bad +# input data error. +lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000058b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lms type) #2 -# This test uses a null (zeroed) message/signature/public key trio, with the -# only parts set being the LMS and LMOTS types. This test has a valid LMOTS type -# (0x4) but an invalid LMS type, and should fail with a bad input data error. -lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000500000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA +# This test uses the data from hash-sigs interop test #1. This test has a valid +# LMOTS type (0x4) but an invalid LMS type (0x5), and should fail with a bad +# input data error. +lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000078b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lm_ots type) #1 -# This test uses a null (zeroed) message/signature/public key trio, with the -# only parts set being the LMS and LMOTS types. This test has a valid LMS type -# (0x6) but an invalid LMOTS type, and should fail with a bad input data error. -lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA +# This test uses the data from hash-sigs interop test #1. This test has an +# invalid LMOTS type (0x3) but an invalid LMS type (0x6), and should fail with a +# bad input data error. +lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000003e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lm_ots type) #2 -# This test uses a null (zeroed) message/signature/public key trio, with the -# only parts set being the LMS and LMOTS types. This test has a valid LMS type -# (0x6) but an invalid LMOTS type, and should fail with a bad input data error. -lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA +# This test uses the data from hash-sigs interop test #1. This test has an +# invalid LMOTS type (0x5) but an invalid LMS type (0x6), and should fail with a +# bad input data error. +lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000005e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid leaf ID) -# This test uses a null (zeroed) message/signature/public key trio, with the -# only parts set being the LMS and LMOTS types and the leaf ID. In this case, +# This test uses the data from hash-sigs interop test #1. In this case, # the leaf ID is 1024, which is invalid for MBEDTLS_LMS_SHA256_M32_H10. This # test should fail to verify the signature. -lms_verify_test:"0000000000000000000000000000000000000000":"000004000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_VERIFY_FAILED +lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000040000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS import/export test # This test uses a randomly generated LMS public key. It imports the key, and diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 9c966cff40..f69ca9e96c 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -97,35 +97,35 @@ void lms_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, /* Test negative cases if the input data is valid */ if( expected_rc == 0 ) { - /* Altering first message byte must cause verification failure */ - msg->x[0] ^= 1; - TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), - MBEDTLS_ERR_LMS_VERIFY_FAILED); - msg->x[0] ^= 1; + if( msg->len >= 1 ) + { + /* Altering first message byte must cause verification failure */ + msg->x[0] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + msg->x[0] ^= 1; - /* Altering last message byte must cause verification failure */ - msg->x[msg->len - 1] ^= 1; - TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), - MBEDTLS_ERR_LMS_VERIFY_FAILED); - msg->x[msg->len - 1] ^= 1; + /* Altering last message byte must cause verification failure */ + msg->x[msg->len - 1] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + msg->x[msg->len - 1] ^= 1; + } - /* Altering first signature byte must cause verification failure */ - sig->x[0] ^= 1; - TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), - MBEDTLS_ERR_LMS_VERIFY_FAILED); - sig->x[0] ^= 1; + if( sig->len >= 1 ) + { + /* Altering first signature byte must cause verification failure */ + sig->x[0] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + sig->x[0] ^= 1; - /* Altering first signature byte must cause verification failure */ - sig->x[0] ^= 1; - TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), - MBEDTLS_ERR_LMS_VERIFY_FAILED); - sig->x[0] ^= 1; - - /* Altering last signature byte must cause verification failure */ - sig->x[sig->len - 1] ^= 1; - TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), - MBEDTLS_ERR_LMS_VERIFY_FAILED); - sig->x[sig->len - 1] ^= 1; + /* Altering last signature byte must cause verification failure */ + sig->x[sig->len - 1] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + sig->x[sig->len - 1] ^= 1; + } /* Signatures of all sizes must not verify, whether shorter or longer */ for( size = 0; size < sig->len; size++ ) { From 810612e14ec26021f56e065fcdab09600f93fb4e Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 11 Oct 2022 13:16:53 +0100 Subject: [PATCH 0649/1028] Update LMS and LMOTS to use TEST_EQUAL Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 56 +++++++++++++------------- tests/suites/test_suite_lms.function | 6 +-- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index b699fcc7b4..4821ce5ce1 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -38,12 +38,12 @@ void lmots_sign_verify_test ( data_t *msg, data_t *key_id, int leaf_id, mbedtls_lmots_public_init( &pub_ctx ); mbedtls_lmots_private_init( &priv_ctx ); - TEST_ASSERT( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, - key_id->x, leaf_id, seed->x, seed->len ) == 0 ); - TEST_ASSERT( mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx) == 0 ); - TEST_ASSERT( mbedtls_lmots_sign(&priv_ctx, &mbedtls_test_rnd_std_rand, NULL, - msg->x, msg->len, sig, sizeof(sig), NULL ) == 0 ); - TEST_ASSERT( mbedtls_lmots_verify(&pub_ctx, msg->x, msg->len, sig, sizeof(sig)) == 0 ); + TEST_EQUAL( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + key_id->x, leaf_id, seed->x, seed->len ), 0 ); + TEST_EQUAL( mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx), 0 ); + TEST_EQUAL( mbedtls_lmots_sign(&priv_ctx, &mbedtls_test_rnd_std_rand, NULL, + msg->x, msg->len, sig, sizeof(sig), NULL ), 0 ); + TEST_EQUAL( mbedtls_lmots_verify(&pub_ctx, msg->x, msg->len, sig, sizeof(sig)), 0 ); exit: mbedtls_lmots_public_free( &pub_ctx ); @@ -61,12 +61,12 @@ void lmots_sign_verify_null_msg_test ( data_t *key_id, int leaf_id, data_t *seed mbedtls_lmots_public_init( &pub_ctx ); mbedtls_lmots_private_init( &priv_ctx ); - TEST_ASSERT( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, - key_id->x, leaf_id, seed->x, seed->len ) == 0 ); - TEST_ASSERT( mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx) == 0 ); - TEST_ASSERT( mbedtls_lmots_sign(&priv_ctx, &mbedtls_test_rnd_std_rand, NULL, - NULL, 0, sig, sizeof(sig), NULL ) == 0 ); - TEST_ASSERT( mbedtls_lmots_verify(&pub_ctx, NULL, 0, sig, sizeof(sig)) == 0 ); + TEST_EQUAL( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + key_id->x, leaf_id, seed->x, seed->len ), 0 ); + TEST_EQUAL( mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx), 0 ); + TEST_EQUAL( mbedtls_lmots_sign(&priv_ctx, &mbedtls_test_rnd_std_rand, NULL, + NULL, 0, sig, sizeof(sig), NULL ), 0 ); + TEST_EQUAL( mbedtls_lmots_verify(&pub_ctx, NULL, 0, sig, sizeof(sig)), 0 ); exit: mbedtls_lmots_public_free( &pub_ctx ); @@ -150,10 +150,10 @@ void lmots_import_export_test ( data_t * pub_key ) size_t exported_pub_key_len; mbedtls_lmots_public_init( &ctx ); - TEST_ASSERT( mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); - TEST_ASSERT( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, - sizeof( exported_pub_key ), - &exported_pub_key_len ) == 0 ); + TEST_EQUAL( mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ), 0 ); + TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, + sizeof( exported_pub_key ), + &exported_pub_key_len ), 0 ); ASSERT_COMPARE( pub_key->x, pub_key->len, exported_pub_key, exported_pub_key_len ); @@ -170,17 +170,17 @@ void lmots_reuse_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed ) unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; mbedtls_lmots_private_init( &ctx ); - TEST_ASSERT( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, - key_id->x, leaf_id, seed->x, - seed->len ) == 0 ); - TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, - msg->x, msg->len, sig, sizeof( sig ), NULL ) == 0 ); + TEST_EQUAL( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + key_id->x, leaf_id, seed->x, + seed->len ), 0 ); + TEST_EQUAL( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, + msg->x, msg->len, sig, sizeof( sig ), NULL ), 0 ); /* Running another sign operation should fail, since the key should now have * been erased. */ - TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, - msg->x, msg->len, sig, sizeof( sig ), NULL ) != 0 ); + TEST_EQUAL( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, + msg->x, msg->len, sig, sizeof( sig ), NULL ), MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); exit: mbedtls_lmots_private_free( &ctx ); @@ -200,11 +200,11 @@ void lmots_signature_leak_test ( data_t *msg, data_t *key_id, int leaf_id, memset( sig, 0x7E, sizeof( sig ) ); mbedtls_lmots_private_init( &ctx ); - TEST_ASSERT( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, - key_id->x, leaf_id, seed->x, - seed->len ) == 0 ); - TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, - msg->x, msg->len, sig, sizeof( sig ), NULL ) == 0 ); + TEST_EQUAL( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + key_id->x, leaf_id, seed->x, + seed->len ), 0 ); + TEST_EQUAL( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, + msg->x, msg->len, sig, sizeof( sig ), NULL ), 0 ); exit: mbedtls_lmots_private_free( &ctx ); diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index f69ca9e96c..7ba02c58a5 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -155,9 +155,9 @@ void lms_import_export_test ( data_t * pub_key ) uint8_t exported_pub_key[MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10)]; mbedtls_lms_public_init(&ctx); - TEST_ASSERT( mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); - TEST_ASSERT( mbedtls_lms_export_public_key( &ctx, exported_pub_key, - sizeof(exported_pub_key), NULL ) == 0 ); + TEST_EQUAL( mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ), 0 ); + TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, + sizeof(exported_pub_key), NULL ), 0 ); ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10), exported_pub_key, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) ); From d6adcb61467ee2146f89a0fdc069c47276f278db Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 11 Oct 2022 15:34:56 +0100 Subject: [PATCH 0650/1028] Add negative LMS import/export tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.data | 8 +++++-- tests/suites/test_suite_lms.function | 34 +++++++++++++++++++++++----- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 5dd901982e..5acf69caf1 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -179,5 +179,9 @@ lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91 LMS import/export test # This test uses a randomly generated LMS public key. It imports the key, and # then exports it, and verifies that the exported key is identical to the -# original key. -lms_import_export_test:"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D" +# original key. It also tests handling of too-small key export buffers. +lms_import_export_test:"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 + +LMS import/export negative test #1 +# This test uses the randomly generated LMS public key +lms_import_export_test:"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 7ba02c58a5..860304e025 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -149,18 +149,40 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void lms_import_export_test ( data_t * pub_key ) +void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) { mbedtls_lms_public_t ctx; - uint8_t exported_pub_key[MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10)]; + size_t exported_pub_key_buf_size = 0; + size_t exported_pub_key_size = 0; + unsigned char *exported_pub_key = NULL; mbedtls_lms_public_init(&ctx); TEST_EQUAL( mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ), 0 ); - TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, - sizeof(exported_pub_key), NULL ), 0 ); - ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10), - exported_pub_key, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) ); + if( expected_import_rc == 0 ) + { + exported_pub_key_buf_size = MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10); + ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size ); + + TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, + exported_pub_key_buf_size, + &exported_pub_key_size ), 0 ); + + TEST_EQUAL( exported_pub_key_buf_size, exported_pub_key_size ); + ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10), + exported_pub_key, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) ); + mbedtls_free(exported_pub_key); + exported_pub_key = NULL; + + /* Export into too-small buffer should fail */ + exported_pub_key_buf_size = MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) - 1; + ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size); + TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, + exported_pub_key_buf_size, NULL ), + MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + mbedtls_free(exported_pub_key); + exported_pub_key = NULL; + } exit: mbedtls_lms_public_free( &ctx ); From a6b47c0aace2965c1722923964973b63aef6ac7f Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 11 Oct 2022 16:54:15 +0100 Subject: [PATCH 0651/1028] Add LMS hsslms interop tests Signed-off-by: Raef Coles --- ...shss_sha256_m32_h5_lmots_sha256_n32_w8.prv | Bin 0 -> 71932 bytes tests/suites/test_suite_lms.data | 47 ++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv diff --git a/tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv b/tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv new file mode 100644 index 0000000000000000000000000000000000000000..db85e01b7d222d0404ea64a43630ca456366cb72 GIT binary patch literal 71932 zcmZtNV{l#H8z|t|_Ag0eqfHt%wr$(CZQDs>+eTwMjcqoKo!))^bLW1#ndz6zbN1Oe zYpqxNGyp2~3m7;U=qCoj!r9rz*7+;&FC_*}Mpjv0!O7AsB{_vQFvT~8CI-&M)4|l( z-o!K|2I>D&R~Jhg0Aql#pp3Y@lB9}+tiFn-f++AZX_(LyrIZ*%dl%>b_eu+x7%UlC zd6oYkhx#7}mjK>e-@?$@!p71lB?iUb!PE}8FMVeV!|!bDz-42=ZBwL4V!$m@q!D7E zlto2FQiMrZ$V$-(xSj0YoaG*EWBe+i#yOz8~^T{#92bGI|%m^{OPjM+mggltDsECs(W zG()l7cJ5W+%<6i603qOpCYZarri6^zp;V-hjl)^-zG>cHmcpS+h~mx983l;u*H&Mu zoQ!b;LYfs-E%T#^`!E;k8yY6CKPoplm$6#_ImMiJvMY!lr@Dd&ft0M`rrQkHsF+so zY?TY6lgPxDjatTxuo+&OAiL=}^FM&Fcf8_eOypC1 zdA@uIl57f)Kb0QqBQSnW3+T&()>{SL3oMI79#-o9o|-MB3~kOHuf}a%ZcuM;qDOX9 zUHGG4G(h5Cqgkf(eKN|K&BV1ERFEc`f20!NA_yDd!iPL>{?!M_E)2J8r}EFB#qq!O zFWk?jzl$BO(Pn3b_OzT5JGj8n0CE+l3@19b^-Q9jrY7EFin-#by8)&&Fc3rQCw+?J z3l9*1DGyrVm`iF_)BoUw&Gg%~Wx{bcViDWj%o$oqg9GOPLXR|%c`bMqXTJljei@tk z3SsH+yyO!s{yBf(2Ofes43L#gI>OJiLpHEecfHKa*Wq9@2Sx(CsOBwOlj5-!bkG{< zyB%}&V&9Nl7>Yr`sx1|+S(X@KG?`IqL5t4Qmf<}CgpfVAR&3q*=V(~r+1edR2FI32 z;pL0b&G@k<_<=?yHb79`Ehj$_AcA^koN!jSIhR*(2b$!s#dP2@Q6_fvj7tGh@Zw4& zB>%}RECy8_A!Zab?!V9KHDJ|e>MgDyC-mI|ApOG(69N&xj!MUuMBw4bDleQxIn+M` zLkQVC6ukUjX#lb$p-exy&>};!tZsGlHJZ2PWhIn*=>>`erAB=vq@g^LyaBhoU1yBohfoqfB8?WnSGBt8CgFEl70y|%OpNuEr%;gsp&b{ z!N(Ku*EZ1Ew(2KC)hRhkzHh*V-Vy^uo=)XJ#qP%hcjh40gEn_z(eZuV=E6fyzdmo* zz+zAW9T)fP2s?!hUssW3=$JjUWtz*yIkk{<#GvXgCjv;l&gVEhR)2zAF)ng6Rn z^@Mb>Vb9Ty|(3Qg;%MKuEInf(_+;vRwtZ;F4v=-u{ z_;2w1#2N5r&kmefEa;*DA?JU1DsR80NAxi1iIwBS_BxK7twJSIp<)8-aj$LZ1;~I( z(rreFfaUxabU}6Y!3cGj#bhIT(NQmio&!s#5h#!?n~3r{VGoiu^lKlEVJ{YQZs=Tp zWm_uqp+z9m!V?Sv$X{yt9wakjuxBKOy#bEY;*%|X6Sstnw%nfTt0sCCd4TwIr^&s( zp8348AtSq#qwp3^Y|tH!x%)SU2c5yA|G5STq<_!TUSDD^M%!wjWxD9Ef*;Z!wKog~ z5j93`fj_UA0HUuQoB2RtdJk7Jxg3SeTeAP$tbKd56?Tmbsl}UL1zLdJPZNaX5v)Yo zta*%oS%$T?7-@nBlr4wb)DYg|UABw>N$g;M6VoR1eLO011f%`_$5ZgPthmI&NMN>xDU7;)?hutQ)=Y5rJz*Ol)N~O#zvo{$P));ah)C74 zncSt(GzGft2aq$V|6nyFf&?vDRwCRrgAKqwtFur0l5@ivXndUaf{{*8KL9+1}v zz4CoaoG^NT21O~{P{F|0+W_TQ3$W(>zy0D%75LJIGSh-HJ0$7nbq{?2x$lUU{N4DW zhZmcoE#c_nSt>REUlh&OR*|zQ$IC^o96)du&uN0hkBp~e;~VCkq_ zIuGVhJwQp=^Htu}6Rf$yD?UIaNo zy7uu=iaL!SIec=c2$%~U8&$}h!T>2qFnw+9MxRE@yikdJg;vE9LR>v!$LR}bU9hFF zq5cmb44Wn~h*Pjzn-pymW zSMTO^w}J58E53OsB}ITdR7RFee3L?@P;wmMFW0pEQ|h9^+u|7YY5g=vUi8@v5N%zJ znS0gU2lUJBfABAo3J?@=@L_7G}+T9ttFDkq#-Qd~Z{GmuX0!Mzm%L4;Gd;fP^mwyS}Ie zOLwS4s;X)tswK0( z|6%SPC7J94|G^bd->Yf>3X)}p2TOj!Ve+5Y1`8=+y@S9eX?g-Xg)Y1m}^zakUe$Y|sC zQk$d#fbiXwRTbZGTeC2KAo?IR#9R(Rt2$l<_0~(=6%{SKLjq)F+}*YCWmx+j*|UZ( zPzJAivoc$lZ${dK^%QQ~NrDt0T=VFNsmOZ9)C3QTWX{rA!P=f&=-QtV`P9Yk;)#Vl z01+xHc4&7B1R}TN33e1}q?|fGy}I8ueh9vvjJ9AfXpOQs*p+uRtwza(cS!HJ;mI?D z1IR*>;cEpB|FnRvipcX0K+PysLR#{p?`ib>V#I{ z)&e~}tlqH(AO{J`L8iVuG!`_jD~pe`*933&&UhZyzDZ6i#DYII{{f^!hN-g4i->_+ zQOY6Bnv>~2LqcKJ{e?W8>nZJmssm4=v9!x?xdV8p(ZspsRN| zQ~73^4Ul$>%OJhg`Uo z3h!fM2}ZpwMpQeOXPUzvNT;?0kPW@EzV>A1|6FQ^_RYT8G6kccd9;j)R+si&+SIu_ zNdqJo>x?^W70337-Lj$QOtIq6UuSzf7vr^0#FR+|v)BQE4EwL+LhWf*{aIc_?d*F< zlXBt~53cH~l|>&8`jS!34-nJD)WDwx>x)QIUZzDHn3a2Fogw>dQq71-m;ZWXQa1on zl7yo$O-rV1<)Irm0WmM;-6HjkG5*#IweU9nz*GD!YdU>P9rwP5r&e8P;!3--&6M3EX?~@q$U389U!B0HT9{FJoA(g=%%yDa52^SCpa=i z_g|D3aZb$km=HjakwyK)V4|bhoR4-;E;_ub)U~z7vYbo)srjl)o0Ogb1i>hM$%Lpu z7PY}I;85k;k}7U%k=4L-=*eyAarutrAArPRER|CK_SkgY?kzxqs~+=7gUof(PU1qv zgptN^W>Nx(z{yx!B(ErPV;1ggP4E?NpxS^&-(p<7IeXpd>-kX*KnA~EjY>AoTz%v_ zRu1)u_Vlb8-Rtf*ay|>%Z1RWw1vNjXgqdIM;9?1PWtPF9o0@kW_hiV&sbt5juYC! zNxpW461w!ePP?}#EngoD=j#K=$Cr>KUf6~|-1GaF6rb0f)k=@Nj%lMKJL!7lFCC?@ z0Kxd9mb!j|8oDkY#m-gKhQ8c_z8}A@HL&&ZfRyhi52_AZ((D`1Q^`=*StXg)H+v3i zDV*U7)-Q``5|T#W}rwa>7nS4j-7l~vQ;L1{U|k|R1rn5Y?cHa zNc;p_cR+FbIf$gcbJc9gtg!K?b}9a(iqio=j=_@Tc|w!iung;a?ymZ%10qQe3H9+T zwQ?v=ATIv{B|cWO-0APx*C`>SS9MNQo#W1TA>~^f8ez3|HgxlPj*kH0&G~ZRl@G`D zm6n@ek3jv!)5MD+P9xs1@#VP9|G=~zAklI9tX!>y65;Urjc?X-xel zmEJT91s%1Y_~{3l@Ix}_JiopSMRPlZdq|c>rup7w59a@?oO1O92>!qj9>GAanE=8K zyL~Uo&d*&R*X6Rq&1@8#KTpdvCIE>%+rCP~!HECeXi~0$CtUFf^?nTz^1JhRzS&c= ztd|}jQm|nbU;0|fmU#dBR##;_ws5A87(%9ddTJ;nyI;{B1`wXjwRVqh&Q;H=L8m<( z{t1Wo;4U6uw;uqBFJ@Mm(7`fG>+2QE=w7uD(iCeY6~l3JB#aEXB*@MH zh(<*bh4ej9HpYF2c*4CBHQDR&Vd4zl`XtFC))Y>196-j1t`IPakaW&T4j@P%Cl0AL zrVsRaY`);PmE(n(nL_|X%LMtg2CkXdYD668m9zg+N*gWlrte|kTT_3Bij59v89la3 zY`W1)xi5NLN(6aM=#mM(h^LIk$lMrX_kD%dZUP9`@_`oQ%>MW9YxqHx&9S{pdt;RX zA&)j0X<#1d#SK{islg_2cx9`MeXUUtL1w8j!}B|wrpN8H1%LKTV$M zpfep8mFXV_7TM_&Cm3Y3^Zi+oM$Mv(dq=xlS=Zzh0ZK)Rta(uz z%i=KScN44NF*1k{j;)g0EzZtcK3W| zLzl8>5%-5xCz`M)#!I>H*ovi8Lss$D1;skNZ9nY}YnjM1?YJ_=7}B*tokt^v`ed8U zcY@#0R^1^#>94+7}nN8+s*{kjxnn7=Lw}kkOd1eG1^(O474j@|og|Yin!`2B{ zg-skv_;O&fn7aGlin%8EuzT#>xT01=UhUoK=^No*BwN1PknN)p>!ex9=dM47r?G%FNGx1|HYv0*y6u4|Trimz~{r$R73<~h!Wu1V9^il9_3hI7K$EM)V*OpdPl=7O-6 zm}UHMF8FI`X&CpGH5LtY6vgb7IJWeF=<%Q0a?oXR;m!cTXpQY@ z-k;;s2;7moMPHSXuG&?oDd87bctL#Mibi?{h`xMQ2a|Ma&j`w$ZkM>={>L|uv=CR= z{_5b)lpS9~P#=)U2s6@ibveOFXi+2Sm7xh8X)u#7yR-ukGJ9h>Z9N$< z5+gQ)=gG1gl&KM=egl)~90GTjGDj|gGIc2}Dpjq5)JA*d9is1h8WYA?( zcr1Q35DJhSW9N-d@mUN$0~v|2$JHYNJqwp<9%O7o0&vF6t47c=nlkCJm|yNgM#8~E z_*CDJFPDmsE_k@dU( zYVqfgx6Dl35I8_rk*=<3t>P^&nW%Mp8g(Yzdr=(rw0?9e%;a^ z-|xNU`~P-|@o1^D?st7VhK7yM8ai7318PtMKGmqajd8p+SVi0*ew|tWmqH9*w-hiD z=COwLmA(@6xh(50njuD~4CyNHrBf;+K9@Ag4MY{2nr$wcf(Ms1y8-0+)H9TkfBjci zEv_x`^C>lQAtYhw&Q28g?>C2eH)lbBY#YL~DmDalb;L4kL+R%U?O`3ms7NJd zwXR$R1B8Te>ySBNBOD!~6(?Wvg5q7O%vOwg=>6XYfg~kRvH|3?@OH(rxHb@h+IKh9 zY(BY`^;Cepl>F;UM>StV~`RIMOyw4Fx>qqNI8&qI==$Mgy$fU!fX7pk)y8S0E`^! z)@ldybUG_BA6bl3QU`9%d3nmh7-Y-;=@NL=_3!hs)=9jLc| z4@NRrV}<*G;ozTR0i~?eSQg*E{k4aJCFs>$%&V&?la+R=c9OYuVbg)}SACiQIomtU zhH*;BHFw(S=`9XjBY-2@+9Y^{{-@rw&xF)V43LKyV_D7*o!bvO9OH*XyCqTSKKPrD&tRMd; zZ}o&$zbul*p?B(IRKhgl+~26qpd&CM`*-cm9zZV$|&9FY=GIdV0e+& z`7sv(s>p}~duSQId4$vm{@3&-H%1fmHKvh+nLC9!y+JrfCLNU3e8{~omb#Vo0%1~c zFEFfWRt&A|ht`Jbuv)$GcatF10Fs;={`clkMlo-B;QLdP2lntYk)HdB$(aT_jsaK5 z5GdA>oK%=mGLmdV&5aUt6V*Hmii7ouCS2ULIhep$j6s7kNiKCXI}Rfq%c^Rc2d%uR zDqjzLNCHo>H>2$A-Oo#W(1QmCTklg#y1zeH{?PC<*jxTS;xAF#a7ZU|;v1L3Q%DAd zLu-jAnnH-ogN`BglkT@Rm7+nICo%f+r7v1e{zULiJ+pU; zBI^?0YxT(p*8g7it+g8<@>`fnmf-0BO0p ziL5zj3yUTTZ)ywQ!RtVJ`iNZK4G`0X-)sMpLkEzt^CP>VrWlAM?O%r(tpWirm~4bs zQND9OieVw)kEcNm$4#PU*Evd~nRxFR;{y+z3^HS%8Kp#8d6=_xFU&5yEI@L;OEXTf zy+Rn9@X*SJ?_Jkcv9o!8LQU4BGr=qmJhlLY2E#hR!j`ruaV4O+bmkoW?D0z1d_j__ zjD-COpE(m$`eoQBe~ho~q+Z+%W#v3_iBkL~!|REMx~y@L7MkWt2W`ypxw2bNO@8#y z^mRshQP_5T0t_Ohaj>MHS2cm>x?V&1BE52Zj*Z)X;yJe#BoR0p>BSvJ5bhH!(X8ub^Fd5YRoN+L0T7H?5abF8= zo=GB|9G=2x)guE) zNc^>&VPr+>-~>^e*&4;z?Bflzuq0VExVn?dPi ze#z;=HTVW^=8=>Fowwk>sP7~X)jH(sSRnvuP!#f6qEm<1C#!pJevJGK;4Tq^N)XAa zxDEWFt2zye-a+)2CS+Rmm&h1&eY+pjYDp4u<-sE?u14!W%a7bf@Bwn+z_opVJYXN| zftYTGY-dQJ-B7A9orH3(T_NXKgn4nI?cHN8KW*$xrkC=*R&449>x}K<$^6xq+W^n;?DF-w~dY7 z2Xqxha#>Ddvz=jVi4!;#Dvt5P>&yqUG@`@_X^8J=jZ^?(+cb>|xhT38#zEe%eBbS~ zTjTnqT@ra(Wnqc$fT{si9-aSkhC&!|AA1=!u(s=M0xZi=TL)$<{*{9_!|jnHfYL-^ z*bvcF$`*-j+dHO^tHq>-jPm0><3cEA#zqx*)*C30K_=;~4>J><)GTbg6I--I(~Q&n z@*UET<6W-caS~!k1IXe%B0n7SU_eZl7!tuoad_F=2kiVUl>i3@S7-`H0VtCQhn_`U z*{xQ~uhzg(JnFI68^DLE!R(D8!@WZNv&g3g2)MxSo2;F(xuek5oN0lg2uQS^r=X8o z7qI=VE`$BJ4uJIbmH!a`$0L@2u4SI@D`Nd*g;xvEzshuc`2rC3w0X$C3Jeu@|F$DWyZDqF{m&MPZlw^ke6vkW zvXDW20CrTsdTaUgC&zb2PXnhWRDr5GoXnHJ5SbT))or|&XMm825^6=_2EZ5A-ZVER zIP<(g6+dm*9;s@Y;Y{gn8i9gpQvrt%1bYk0Ra?<>8pF7rJkpg$N?YPcajjjhB~Jk= zKy+xs{yAz$QPZ1ul9v7+2}!xEz8R5Zl8Sf2%&E%oD+b8Nh1569gh$m4b~p{b>Nmtg zns46oLkzkuu}ZQ&n@gaIOm#5tys(TuI5&ZQ=c^yBDe?L-GVudJmDZy+RlUV7s5(r; zPAxF;cd+fw?!T++Dr5U$ZAs~14BvlCO; z87LHxt^_APTVkizi-dRspYZ!mazvmd3y8@9La*8A{rUIU@!Qs7dvB9vH_Ti9w$GlQ ztClm^u`!IK2tXc>M-Pvo90?>=~Ieo7vWgdZSD5Bn1ixfbJt?M`}T3| zT5W%ha<7unasM&z9Yr(FfK5}VU|}#Qcu4&HHEaZqZMxMBeJlR=R7=u8$T)wB1@URA zB-jm`!2lpUZ{8<-*!9`2DvsG4_;|^8oL~4q8_=*(Du@!{%L1DK;sQO1BLx{ODsm7C z_0!}sQAgQ9fm7kgR@^u*3-dtDA0R3-^;hDzZ*HF&C?qw`RlJbd=wCc7$G(`;NPAs- z%DDo>wY!WZF|(RvbzJ_DD~NVELR6(oRIAIj)finv`S=NRj_O6Or&dhI$WhUmmZiBO z_?qyy=P->mgi3bV#oZh*W&rZkZp2lq8`iTNw+4-H8Yx{VO_0+R*b$%OuQk^ZCW;4; zk_B)Zh(QJ(PYakrk(;#493+b=$<0(BuHOxsU9|e3;fj&KFK@IXn)o`M^GW9vwUf}J zPr1iwL9pnVEGd_c97 z5vPi5y}}nXjN6&vAXNF>tVBd_QXLX4Q8TKbc0>(kYT_*)v%ab72W67~;=Zyb-j2;6 zSf6|ePTF2=eJfS_^!kUkY_y$UP8a0*+*aa zM2gGlMIF|;evrw0*-^9S-~rPHZ7F*_DmRi!A-p;g4e-`)4(Ih&j2v>x!W7W<2M9A$ zPM~tD2j_b>0%vkA7+(s`g0Og~M@GenieM7^WqnXZ-HFW;E zAZQ^F;|w3a6|HShkI7pJEBKpAI355y`! z8j!VZ?S#M7gbIwO$;*@J;vmkG)LzTWj6XXSXO63Hoz;hSLZnfv7HgfQ2@ zR!!EDs3k&n7dfb(=4vGErL56Z4Zt4Q`@!NGbw#iJTMMuBy!y;psP$LQ!*GcnvORzmgBLu5>3~sr;fD=BU+)c&rTFNgNl4^U59<&5us|EBSBSj=hNi)oJx)}g4q!g zmn-Yy_q;B9`*)qLmglcu6W#l_0OGJkJA&B7?yyPLn|dYY?Eh~7u~tCXnFj{$qPhTP zPz)ehJcsDP2*WVw>MVg5`sR&9lf8LYcZHt(^CYNsxQw7esR(}vl~;NS%(mb&P`h@4 zgNAD7m&G28s2AKXq0gVjlK{C#vVEY^>0Sos`}B6S`hComz#t*Lb9^)frt%nG%L952 z3kfx$oXU$Ou#!#Ow2TKKbRb35HXu=v2gQG<#&X5M3Uv z5)}_`JEWN!I!pyX%=ksl%Ef)?mRg9qHCQz0eN|d4XV2vrmCp3b80u(~6Vo2$V@StThL`N5~Pjvft8>l)HY(Q${1;LDGcj0h5 z4`o0hOyo`skQ>gwf`P6Cz>vJ@Bch`)O9~DH%zrVA)2$U%H)HP$J(M3^*Ynrxfk1Md^3|TD> z%~F7(_weEu&9v&SHDqf@6~@`zaK8Ogr4GuZ-(s?>Utbmf^Z*a`Z#<|GlMQI$?Jt%H&hQ}MV?_O#^DFns4fWjlQI~*7x|>oM zw2bG*-fy@)qNi^8(En|gSf71X_G9up%}H2ARQ?t>G2sPB1vxU0v2JIlPRo6$!r+P5 z=M3Kx_We%9;562eC||J!Ku%93uf1seo#@aqfG_P<-KI45qro>frYt|OdQFItkpl#p z{1<1w4t9jb(OlDllAv<-dae0_DPyA>(P-c$CL!q9A2;SkM%N$x$E1O{i%Da5>=a7& z%kh{ZBYv6TcgxELsN4#emn%t|dW85eX5DCmrjtqbTfLAF$c&%(g**X!h^YsVe=aJ$ z0Z@+EP=4k=EIv}aY28!7J!vRV?cQ@MNK<-2EtJ>d%&0ND+3=z!(QZb+bhoU!?I`ZS zH#fu|Q58gX!5RQ@^AJseYY}-{=cd4#p2KLN?PcIm3};U>iqqyuv`K&l2nEDKz*##z zXIeL^v|*__3tgB2!(%{JHnojPe>-gp8bJQ;V-VSe%1N$~`f#(|OJor`A0QJ{dSMP* zL|BRF-Gkz8SpM7O1`!e%9e%MS+2=zQ`M&ZoX3^{w;e+4rWYr5AfT)+Kn@|LjY%lNU7H;oKd^TgGUad zx`qiLpYzpY;;}Zw$19SgwR(AdquJic17WjRb{?4}u^XJABrH=wx+i99aM@QUzV5$w z3(3jF%2oK~cT&#&si(Po)(Jp*kc2`L^IHQ;=v!qOF_dX@6UaUDF2s5piCxfA2Yz4! zM2#)dA+nY}4s)>9sqc+|!M-Iwh`VMj9H|`XPfc>E1V9Lts2M+p`+sV75g+tO<^F<& zy`S?JW^92MOQhm-(8~dcL+%n^PG^<7g(gbf6tArkK@1#vgp;fze35DNhc!QFFo>7t zfaXa0WXr97LKc}G!!4O*qS-JQrEKfX_#Zp?We`9V$p%M@>T9rZ()Zi;x~n7^WGICP zpzb0}u7Bw>T*f;BWW`T74Z|p$o{agA2-;~Z^zON}DTL!MV!S@vGrFJ$66qbZYC(|{&i;l) zUnrxCxVz6CfTR|Q|AKXw=3M{JSLV2nB+$*^+&ZvW7rl!V<`E3qmKh)o(0%g@!T!C~ z2=$MqnId8zSKpHR7h}{Dq6Haq8u!ovBFDaBNa~Y8H|!&RH8#9(tD0?uT&(Ix`1|l= z9a_FD6(E+K4-&IeVUFE%;F&MD!3p*vzNt@*@~t=%Exvt69-v*P^2C7YMAT$)&q-#l ziB=0?^2iKx>XI(>2k!E}(ki|Lfz8xMR}R=rDs!5 z5464M*tK!B>}F;aFq=`wH$vX;B^MG}kX?GJkD#=KiXe{w!ah(7$xi6he{JZUx#Txx z5Y{*uw}!kk^haBw9%Ju%A0TN9?sM`IRBinM7|gn#BhXzry~gXSftvw-Nz)rGwV-4F zMM(^@)R+Ng4>#unX3pjA+XQs~)^68;d{N~&&Cv;hn;Uq#;b()e-Py6HThP=ANz1~(hF`+*p-(w{1RU+nO0g`&B553vq zscVB*J$~1}bnTqNj`ABAdbVtdY#@91BU8=0RvixI?qFF;0DneAiGo801+ z?vHEnvf{{wiQN97bxe5Fe@F$bk%Ri_vD>0@Xs>h*yr4CbWRu|sVyUO3JSo&CQ)jFY zj+tA~vriT;{Flt zlmJpDPr#q}Gm|)Mdayf>|U_*B0VBgnXEKhyM#e_R6YaQlbi{zr_qB$!X+G zafB;S0ufV;7++cfC9v~6`2Q<1p4b9N z#D0?vnzl6pSd8A;h6f!VNnkRDpcV+j&!@>L)xt6|l2zwr?0_}-YGZ;9)U*M9Q# zdaDkr@c3Kl$+4_$^8w@_crs58#wmQTvmQpZyXLWt&eGn`h356**_y>;b_xO@znl$u z;Ls5pHR~20_-w)lm5!hG|48X__OjmJj%`tchT3pMO{J_XWru%Tor$zL&K;7lmUzq; zaVuMfxstqIF+t&w_GlJzQg*_9Ydr7$K_m0s(O0-1j9HvH1C_tZMI(n0AjS7*`MD92 z4Nx}HZC$LNmK#O2l)ZO8HRwsuStafe2LR!}h0$eRX&EG@EOp}cVnPke)2Yjt;ztpI z9d>vXJOe!s_^(pHm!r&P(phl3VnlkzhfdC!XXwVlbVtT{QTlJDJ3zp>u?yrPNdJyX z93^LURG4C{A?`|3!`aNNuzLG*S~md1LN4Cv?M8T@31Z>1|AL?i%6MzEKU=Ip51m3+ zNO==9YbMwd(cZ0TEg8T5YT&b&g7;?|rdx0av2OrdyInH?7j*0$JSH--HQa*J=1@$Y z32agcP;?tt6YuN624ZZl7+Tu^;&{%lrE>hRtV<~%z}$oa_f3PU3#K>~1u-4`3v(G` zEI=lkZauZir9Gb`*@{w*Tm>5*6@NKmxr$nP52Jj&{scWrDX}7k@HaTcp#-1#sy=9Q zR!x>f*nF$T_Ko(Km`@5m8z3C=I#McQG3}N z-}zyl{iHmcOf$Y+x8FI=uoJ`lDw+6zq#B9~8X~;Lu(h$`f!*PR!A)mSiZkP14B#GB zTRKaLe$zp$Jpzq7l}8LRDoF$+dE^huQB5|v&lI%|onY4TGE7_Ud^zzz6&bPZLs6~a z`%7TD&~<3UtsnUM*mRk}n~^1J9NKUci8(FvX!4tRh-qIC}?giupEb}{8< z7BF396E#|mp(Uw9yEkrO*>A6bNX(cvvi9VGX($C+><#7^Ec36ORZ^INIp8sJxpw^k)ZP=a3*etu(5)qo{CIrY(+UIREF8n8_4;|w|EbMD!Gi{1=z{~LO<7_5CEA${A$+M4s;!zN zsH2zi!`bHK`+lyV%^=WtIkx)rv1C(SRgJMN{-wb`NKaoZEB#NlDRHg(*D!!UFNB{5 zRzT@M()a8N>?37-p-^}XMmy;j3}W-}BKN!m2r(GNs7;^JX}Cy$SoV6aQ#!tewv{9P zdENlc*=%R~FMzyy-g=-7yF|)qA55Rh+A6tu8}Mc!Xx3n9v-I44vL^$?htF^JH|;je z2#k}S-$bP{UWc^bnbSEoJ*#=Du$(ywKrX2=W?_BQ5q$0+gl0e9*`3{D40qPXEGi}F76F}jdSV;DBhWvq_;|35{s>eZ&fC+^sNf?KY~l|S z4dK^>Vvmq9hwq$xS-58y@->e;26=YB;Ra7IG3Ma;=3`4yYRv zW0r8f@rol@BOh!_S>qNa*@5nbt!*jJRjY5cuBoZQXHEH zFG^1l=q9H2hPRm(QfAQDT4*{PDo2Hqu#)tM3fbD|2K52*N%gpt9cSo5NC=#ZF@{qa z?Xi``Bm6A!ZDbw{@=Kr$8$=<ZWkl)Q_X#M4lnIs9yQY!3sRNe218&~LvE0?aFhr1BCpeSY0_x18} z=(_7|`R{1t%9UH!0`g{Y|23XyJqp^2M?ft=LTs|wSM)3K8jb#gPR73C&+YrE@KbzC z>V0=r0w(YXw0BFH6rC9`B3;A~We2oQb*{bA*cGQsO>=I~5d?+C9|ZxD2}?2k)F@}b7Mp5_Q`FeMt?kg4hTp1wLT61z z@mx6E7yty7R8UWy*YV11wgBFLZVcgjA60s%Xy)H5c~QcVvq>3%=;6Fbr6#Vd(dzFc zQs--dIU7f7NMmgV(o*dzQXc>A2Z&Yr{RcBP6_>=H-{WeTzv~+lt?$eXH|J#j5>X{) z>sJ7TGLk>$upxeZmx%Li&Fv%cDclx3@zB;Qo{ZYk*x2$nK;lAHh0mdsIkK*8cNodf zMXHC-8^gz@PJdzVE{W=oy931M)4{37n~vBt6+ZxJMRB*qpSLzsSS|K#&Djs#l@+ux z_jgFi9-A)5U_Xfh)5{m@PUZ#vbEDlz`LW3?X2vG23y|9g$;#JC1w7rMA3cUSEUyoL zEB1s)xu>Ff!tw|4hPVI%v+G&P_pbfPx*an00Ij1Uz?bH4r_Y@q!LWEns?ZJ^FXEZg zmF*<8ml>YWW|J!D(Qk5^8<75x6{NPeyw^4V1$u&tUsO_EhPs7gzyH&zJn8-F`EBLD zje(h`MGPv)EYcHPfJ{{-_no!k%i_0cPoU;$VZu1NAq|SJaVhH5_#u4l0F8?vTh-A` zkhP^@3P|-1wbm;h)4f_OzRa(EJjNmtW+fN{L|^8!gw2QdP`+rUFA>@S^>0GJ_m7At zdbEKhW==FQUx45i7h-X46nK3}iSRQ!D#YsS$J&%foDJYt|dp9H%x7{{6VUPY`MSP}c#s$NO@0 zIYT>Y7%xDoqaVf-_n`-D2DHev8`bmCFW?(=Nl>n%<(!*q;{`yOa8>wUpsi(6L)bg(N zguDPE_S3WP-R0Tk>93kKq~@<+ju3U_CuzPJqB$6ePP87-vn)%&nM3P2Z4N%^d@E$Q zwPjwhjS?*gx~Z$&*?1^2ThPE%TF2tLufDj@AvNtZM&W@$Q9uln2SL|pwE->?IldZH zGvM=Dyzrrcd6+kASus8}%>X17!`}bW-7efvr9l&wgvY-g ze|R4~2WQ2)uo+{1UIaAVGNm!nvf-2uWf#oC4uPmOXIL8T{cZqZf(e1eFM*5$$|RFe z@r%Nn9}f?jcRcI+Q0Ziwaf-~4W3$Hp4su`FQvTtR=PRJ(WqT^cWiq2#gQlu-4qv8532E5O^ zKQ;g|=RCs)W|tln@JzvTQy>SS68^!xp?{prB$h&kodO3c2(W}_B34aY4dVCRKAbdy z7p;WQR(vXUFAfctYv@V(@BrfAqDXa$MZzIBxkb$wBB@jrXq2vTfvYS6^=CYaP#M%J z7$IKU#r$wY3aWnlG5QfnvTZw*i6TpBlx;m(zkx;5;&LF>mW}|#6C+dy6Zr>q(~Kwi6NieZ9pi^AuVEfMm+V zs#k;0Y=;HurC@ny1Rgg)tCE1f{bBfW(y>+0O$LxP0oxXd5LZnF2*C)%IChjJs=~kD zgXgATbUI(b}zmk#?Bv#@s3q>03EZ2=qjF9VoyTo6W{KcUBBUmG{7$#;#I}%J8_!koF|! ziTQiz#puidWVmYnl=fMuIJZtKetLUP^x}uJ7s)k0J+-1$cBTJFIzXz}F48O0zJ(zk z=6f-;?jrmQ^kB+ir1^mn_n#}-iyjX^&c4BwKGLlfdQFNi62+RWwK~CH3N;$ap7>O& zH+r!50R$F@=~~GlkT1O-O0{(^rDx4aU-SOSNFXpp>zB~h(H20~W6{jn2kw$S(ZiY9 zkk#q7rmBcziBt2wBliEr(bBU6NHaZKwT8VE_3+NOLF8t{yB*T56W2BMdz^WJ>oieQ z&}oe5`X~IKgG&TScBPBEf7nsgTk));_9z1d#9Ehs=l_a)%H8?PZ|wS)jwwUELg2yH zhq$`r-%5wDcfO%0?f3A`16K)A>UWMy>PJ=EF~XWkZ~mcltI*?w;1DCaRucS{%?Ron zlT&#aT)ia;TxY5eE`PydVK<>LH0TW%NeR@an;Q0J0z}Gk2KCZ!3V+C!JYktoPAmSJ z>+4zmA~JV8tggRV4=4mtO5<0u^K(HZFfbw3D(90_vvI*eYB9jhTVPhdwn=~{N_vGB zbBx5Tyf!JVV0!i831ZXU!!+Y|(N#$8dUub@pvt4Cqpn&hX(f*;Ve(O?99_ln&4;up zJpAaAXZs^rY1J1XT?y`~R74Q2TIQa;Y^&UTm_PTE;#S~`pQh7K>##yi08;XBfVoS9 z)h5st`5l5++pryV|0`MKLzfUS{dGDoTo*t#ASuetm$|iq&pIg$*e)&8z#BWMnEw6S z$HW##7~2R0U8VeSsFAyXRb7kA3>)gAioS#~+01&_q){3+YS!Bb)bafvj_x_GkN*z< zc(%V`)w0di;B^6J3NA!WfpD7wb4mda#I~{#`i$evpF4g< z_vl>IowGxz3Q>X4m+b|F72ngrOhT^2qJt2_;PFqmK6-^{bELU#XMp0 zDRBO)Jo;3dJ_7jM2fmcs5y3=B6-}*5Y0Hl_~RD63qZccSe>=7w-Eoss&BL;KZGe$ zGwimDD|;Hs4aS?bp9b4p>X|sNz{{$);SI0aH@*G3%JV6zm*#!uz%K~Y^|-fs0I~J1 zUn527lx97Y{2e@3xVlgok>lEF_Ard)#l{o=2+mYl*;93I;1};O{gsbfueDgHED~aF ze23S_b#+;{C7i%nkdug(22HvWy{iRV$zI=y$|;qXHs)s^D-9#~jn$ViXMhlEr^qvi zc3ouc-94<0SDaFj(9CIH{>Qbg=*HCc^_&DC5=W-un&XG7j5vF_q)O@|NH@Aa4;K+C z#c#7o-0_3JKqk7f#B5w|r~kw=F^{ONYNT&oK{c}u7aK2Feik9qa|w{)PVOb6b0(sJ zih~2jF*TkEI{1=){DIsX@u@?VkBk2gJB-h0Y*Cd?|Rfx{Ic-?h^9wAWIa;vENMOgnth@-J>xfd?E13lFK}WdA#)Mx)gf%rn5#i(zfU1K z0TSa|GW{~mjZz$d50yPA){_1C&Iin}6t8bSOG}{Nf2V z%9IoY_udKlMk>Y{8g;s?O#sow zJa68Fe0dXU&s5u}%I8U-Lqz$OL*lBFtI-+zrU9_6o5%J>yUhf z33&x|4B;5@z_n|l%8e==3A7$d3&vROI{Shz&ovb*Nz@@S1Kg%}zm^at(OXR(yak)9%FTzLqp!Sj;~!D;nWXMAgc9 zN#A|EB0R{wi9iFBjRS@xLs#oBN|pBkDL5bE3AkRVId^K6)I4wQn`*NZa64Upnq{x$ zgs{#qW;Mj1gs{jaxyeRH9??Eo6%}UVrX3L=3<1B~^xB*?c7``t8`X-GBlT`R-f5gO zE)Mawdr!)Ng>_O#ui$4T2mX8$sQ+n?;Cp3OA%g?3-yvyDct0V1 zZIO!n(ATHuuqrrfWxoE4tCyparS64>0LXF+e)xZ>y?NW*&eoBkGHmf@0i;WY9)uqp zAfZlh(ZOD=9iHz3`TQftMWVk?9TH)xP|FdvNmMu^uIZX^B>rVAK=2P6QPDSy_r=oZ zO_aU-75j|LXjjzh%trA&QG20S)&bHKO2Q>?LP$1IygPgEW3AcS?VM8i*Md)0M+2M2 zMZpOmPrYME3Lg_yRu!i>loSqFRa9hCHWIdX$NJ#tIrWghg^8Cmsa>-3bA$@J67Z499{|E+g7^Uw zepuYXq~s(?9R4+>`OL8Iok&oO;+lG41U3jD5S~Q}v1<}W|5;w;fB7}=rGMI%1;bhL zzX1`2r?7^6aAC$3HRjtFVf%-qMa`2Ya^c|7>?b1jhPzp)~NH;qx)piH^DRj1ELKE)&Z?E<=J1YF8_NLeADbtAw;L z_nWg6Dt5(JKW8pe^0Drr=22Z$aCh!s61t;%it6j9si_7Slt6x;QM7%R1$}Ng^2r1b ze_61YW!;fhPc9%gIJ}_@woXeVAVs5x7Y7er66fK*?k znVGK5sK|i1GIAn#o`T$roi{^=7N7V$reagzN%keR(J{32hI zbgQtIOMXJY3lW1?K%I8Jx#!e-Ol|rF&ZZ0<`xCkfHO?HglIaee&aL6G3_xUG{;E+~ zyXSVMJzX(#qTe(z@-F$P5svxd;FxB0%zz|CW^F->z1zY@1=2ul)}QL>b5?RVEC5sAm)D*h$^3++R4 zYY0^`K!~}U_!G_?qs0=C1Eh-i`C_wY^bv5cGHrbM3p3*IP5=^(?Gi6^T;}P{%LY9p z)e}Ta>rQYwBNM z0?0*C$kbi%yA4bn8&;t;Jn%X!0t4n60D%;fr_%7q^i`m zN>JG-G2A$P1zSrv8!r^t>l(|-uX3xOgdepK3F2fiuS^BqQC{%X2VB71sHVHDpj1Us ztQ32(SGYFa?Bd_5l^xy{(U^>7R8V~mwz-7$(hOy6wK~E-xJp=E+XRU|lwQ}b)ZJxx zA~rBBzb63X(K38WGi5{TqbZKlOI3rYCw4S`at6wT-VlTav3ub;K&}J+vDeK0H;;*n zEpRo$Q;dJh)M!XmPNuk;ml@u8dI}KuxBuWoJ;gbf2$#73VUcOMs$p;`i^2~<-86js zoU3^NkTO)N8@CH%@O6Nt@%TyXf4n=)Of>=k&w>jP)(~$5&)!b zv1XO`BUR%at<*8DME(MSw*u1q#w`+JtFx6dt1Q?D{9*nOrSr|>EO^CJi3F+MIUv85 zdZ&j^pl3if!qhmk03enPati^n${n1! z%JU*^P$y6%xv!2yPJLwPu(RUU-6S+&-uMolI<#}><+2mw8}9kK{=i}CF5_L?b3FU# zB$d7@8i%@XssLGT_R2jpm#x3+?yh&L-4XE!(|a~t#~BJlm~BMwhJa~fK=}53uP#p?pl9|yF?C``8k9PCu(nTs`3Nv z6Oy&qI08U$R5$o8mfwCFj4n>4`<+NQ)ShGU=U9hTpoIvlkNkEXDZ7o)6Cysv!|*L^0CQ;eVjdC_HtZ~AS3s^5K*wb0b)== zw{D!@^QjaWix!zO#||^RsxC&VU`HP=#g|@i8%)CfsBEf@*po9i-~HNFqL0Vzji&eY z6W4b*dXqal9v;9?l=v!%95@#jR?Q<-VPwdn26sa?mArog_e6VDxU7H+MybXq7%H5- zppncqd|MTZ&$fFMKyf8CSb%P;o!RoyX%!&LZP2+o1JYx>Gd~HZC;D^KwUP^?zP+q-RN+KAi=!g~>P~eK5C~5gD z0Kz$b{#PE6W1Y^xF1mj5Zlx;MdX=yqz{J_i8k+ECy(zu(BBZ?EN@e=>#jNFzW~IY zcnh8(q&;bb@hq@#HN;?4VHB+wb?OzU7x`trkq0T+R>uC9lV zGp*K>9XVuD93V?^&J?BHxlPf_2zYxs*(T4XJpx#}pH+EnzLgAw#25es;$Hzu;leY% zNWOLdTbpA|(G(h!aWT!$cVu2(S{f~|f;Zz76}MRMF`~mm`#t<9oHSM^xw*$@ydfR5 z7QTCKjRTNF;h5FASA~`m;rjs>Yb#Zkye2ASdGz!bmGJYhbtEu)Us-Y<6E#Zw8~;3< z^g#J7{jAx~a;z!*NqXe{e)~n1U#XhX>NQ8_u0Kqo5y^|}MtwPy6jjJwi zr8=BoNz(hzhR~$ey&?o|d<-B7ez80%gLg)hW%}7X4<@N!q|?3 zd|^AbD8Au^VpdsA5m*5vRqwQDo6!CbyHn4^Z#m|#BYZ6THBeV-gvJ4tA##D>|59~W zhNvr;ph>8E1EnlX_CS;Gc3q_A(4LXyuQ7IH+71xuxY6Rq?9iYN*UEFh`UI}qmY>%V}ABi~fyW};5#mvjE|2_OkGM^*V} zDT2+CEstnxX;My%_X7ue(wdKA&NBAY_!$7{8G4TVd9|v9B=$>UIutRQD_u-*kW*LF z8yU;WhM^a%;HRU#on3HTJ<05~G1o_j5Cd3{^R*%E+F4)6s?dmBz%ul`m}JS;?7&L6 zH;76i?Jarmi7kn0d?v=}Q{tLo8a){6Mwg7nP$oTEiTjE^n?rj?<*)I6Ny<}07`4(N z>wAW=1c>U3oNZb`hG(<>f?Pq28B?ND!%@KZ27$67Q{PMb9W#I+#QCs=i_q$RAH1T2 zP3(62!5@lu66##!so}@bcwP$zkK*j8azA@@5k$zI`C`*?p?dsJ=8=&T{1q4L%zj$` zf2H&5*;xr!3imZ^>hH_9ILZ-dOG%-nLTn;Ii4$cmDTMF9QAEx#a163hEY6ob8jGsU zCZ@0K(z`pQuiF2ZOx%ex$O44?Lr`nvuU!3m-R1j#+=&RXWSub{im|fLSE~HOueIQi zGL7bY^fJK;-Hwc~n=OMJ9q(~A?^lxS!4U;IV@sn627st+4+QP%LYP-C%c5 z&c$o}cl1}cb-$^H;L_L45AisED9C^Tep*~&)GTWTso>1)d0O5g7 zulw|l06-oOAyQkIh_Lx#mOAG(##hI`j;K>YI^wV;r3qo8Z?^&D>7Th37U_SJslQI+ z2ofX9f15V_8mp&XI`6z7w!w)5qj!V;u>y-&Q=xPJAKCnsQ(KLSL1OFYFr5o*taN`V zPcR%dXk%B2>_*I9va%zus8p%(952()5Dd4FDPP^#`(uM!*pI6O-#?UA}A)8=oC2U>O z*&Ra*93!(&rUYkX!f}~8UGPv`$%eBCB59Cv1{+R9TUikHD|-(23PfUy0MQC?Ftm@z z4J#yIVvmGOC>=OBS>^SbS^48Oa-6qzm;;bo4BPZ@CK&{qwW0(Oca*rb?25m1?b~an!HW?=_6im1TEKA?Y2Oo*mBIir7_T%Rfp~raS-= zbvsee?ZP;46OXwVDF6E}{S5Z*okFf-H2JWhrX$WSK&p7uG)-TP7qH+EsKk5+Hc(VE z)BjNt=~@QX!$elfI0EEW@jp?NgPVHv_qt>o6~qfM?JPo;^IkISM@BjbtQj!dlQZC^ zomS%JTTz#xU{=V(Gnnq-gfaE2z*X`5!uu{M4Uk7>FOnZT*MnYduu_8daVldHe8#+( zb-bfkqqoZnHQ=zHmf1wrPm0+ud_PR{WTo-5ORSdfm?|{Sf0mmTS7yj!01?MVjX?b` z+C!EdVD65I&S&L-+At(TL^u4?-pK~wRYC5D3fuwLR6 zohz(uQ#BQg45VIO^dj@hFEb%E15xT;1rz7rg0wq)G6I_@;F^6h!HXpK4Vs%$E~0?9 ztS79^zrb={_%PuXQVSQIBNRDtViue=&-GW1#$`lFlovv9;C@O{?6FmTY*Qs)xtNU4 z+^)_8ziE6i49A|cl^=wNH%NV_Z)tJ|xVd4!8i}j4Gi~Y@Z z`8Dvk9FetLo zQ~()wC95bE{@WWTmB2)7dWX^My_HLktJ@<5S1IuGBoVAU#1Pbj^^Z?RfySN(kZ_&D#yBYoD5Wl<4^F-t78(sQpPbY=R2Tl!uhz%J@ zKeh5FlO(Gb0e_CMX}MyJA-35S3DjY4EL- zoFiJR2aFOcu~h&PghUc+fbj|5g=zZJ!#CWuv&H9lm#fcjd?MFG_zdw!0MR!b`3kX{ zp{T1lDSGu&?ep8jQge;@<%#}m*H<{v(n^4QmZyfn_iohR$my%LS-b1l@c4TCIMN$3#}+RZra#;etSm4wtZAcNJ_nFjJ_9S)il6b#$y{3bVgV^hhaxjWLQV`+}C= z+PhJg0+1duMsazXWzn$!rTp4jt5?=EW-Ag52?qCET*Xin1+e22YR~AHQFhH~F^Dql z+s#TPg`NC)`cXWXI>lyNqTZVyAocPxDL%un1Ey@o(VHiKqthr7@MgcV+qzXJYyl@d?4|e9+*fX_OC@1ZBvX|r0?+xzw8~Ry>Guh_hb44~-Zgo*}IuR~Vy?e-xgw6MaK{KFi zw1pGCaqPQ$Ck$T~Oar7jsQGgLbg2o4EI68r&J3ex&r9Z1C7da#IX|iWM7tFrt%=sk z*P{dzN@H2^Jx`bSG(J-866m(2rAKnFnqU9_UOxmr|4T;gI&}u3#V9(sZrCP_Q@&pl z2*VM+ywB(*F_XYiWcz4g>~c12g_3CsvaVt>rMZOK$$VEw-3%+BsvE200iw8>n3Kt= zwEWO`l|8?7i%gbgxHVG7QcnxHM2p=Byj@B?*L2rWrS=QqU@(LjQ@%Y&+>!V|D1`w>M>15 zzw*4Y0_2>wy{@09>D_Y#C$qN=N_yP7sP&4fC=i;5jsM@_H8^xq{D;&0d;h<03@Dm2=Y!C1!vJAJ+N=l6JzJvEkge`XaX{L9&i9guY*=Q+qj;ZEtK3K6!^nXDyE17Exq4VhdkSgj68q~APIOX z#IzN&h1&2Y^&Kvg`Ge?n$u1^|JMvbU*i8e(;Hevh|M*SkN5dN32qb~wRuA$e?_Xu{ zB@GhEEKxBp3Nv(o=<^cGTIgWr!)69-`k}{!25TGO^@_^v^Es3Wax& zcjcDH7tCsZPz~^BxMi;x~6>()tJi=}TLS-)m2L>Pq#)?1w`(ck& z!@)e(SkRF)A1Ldh;Vsb&_u4zcPf`cQ7t$L%`q3D#;{cqZ-6*aRZ2|y&1@$Z2wq_Eg43Ka0q7D6d(Ge?DtNDAoApd zPWiBLUmd#BuEq$#2Z3`(xte?|fH3sw>i?p{8H=|NNknFFn}gjkA^p?7jH6p-wpgNX zb`22X^PdVeZ`-2ZYUlmeJRNDgeFLPrbXh)Q-$h>W>Ft0sGM%;HDAu!e2}&_%KO7%Z z5#QO|!N@Xuve@KuX=io|aA8{eVp_zx+4QYFW(!UQrnANDQw{~ygd|pev!_~rW^Mq; zUo_RFy@2rjiHf-)l`t}jykZ(_M{Wcr-i-qE>f&%P@gY|U`liwxnnSwGr?8KO4l41P z!p|awcB}7mPq=D!%K${;!bJw{S83X!3I&J#T_?3d zvm-YyL+C3a7v7v#0rdfRLlAfp9GLju`WltMQAF{{LRq85+K_t1-lB9L)WOY`whb)l zTvO-j&XqoW)D=Lk*KnkFtQ~6QJE-mMwmT8Rw)E;JKb|&lHvfBVMx6W&kP6BWoIkeK zrAXvA+a+;HgHNL$#|*LEE|OEt%z*UQ*J^k9@;6P04i?Rn z8Cu{evHv|ln0|bXL_Wfc!@D%oDS*_UmkyI`u7gyW{1(1RE=!eZN*WP`^ zESwgnoE{?B-0^QYH^Y5!tB72GM8Lv2?rR#43gj7oMBNDWZ#4?NE`z*JlWbind}S&N zx>#>r0Qo4VS>s6Wd}!mMZ%shiaWOF#K>RH1-Qi@mbQxmD1NKLq?o~lO8NIcE)#Wxj zp9{q7uIw=$Vr>8XP=V-`{M#P{kY;~b+$Qr3AAY{TOacXldf64Bi*6kkbb=7R3OiR} z7J%^CwAe0ktwDbk;y{*)twOiGd649atHikTmRR7I7JkzjRwd9M26V?cNI5C>~x47 zNOnKm}{IoK662Db;!*VS1nFOTkKtj@rz_r3r41=iKs6C#1bwQ4$d|4 zyOrb4PHj;Db?d^$_XJ9{TlH>aBxFd7D1gvcb*-!@X}cok|9FRIVrQ6O++lyOHnHAH zB)gvu%_RVc0H~euHhQ~0EB;88`w_9;q7Cf zPnU^6k=*nlsJnzclipC+F~CBQbN~osEsLF&({y%j?CK3pN8ftPm-`QnpHNF>NHMT0 zgQ+9|GMo9%%!dByCmes@Lt6g0HR^67!wA2p?rJ>Y1P#aFKY(O@7oZ$p*5t!0*kJ#} zuxWwck(sLvU5}d~T0Z2d4F%3$d@a^JPYO$)$ccn>+_BLyj>;a64fKBqX;K+|_Q?_j zPn}9UzkK?E>si6&-GzvLMC^q0&-O8e&T!TnMil|Yb{~L5I|{uOAb1k58EGw|Q&XhB z9ZWvrXlg3JX)x%dDbT$Fo z?iJDG6zb8!td=?K0HTbf)8z*lYM-yk;WY0_eU+!cxI`pHgaW6m2d4%r4t^q$9QVB^ zxh++3s;hrN3~F>9FwJEZ9YC|A3S&mDus94564oONs9h?q;jYsqs}z@K_K#oslYFP? zVBOT!Nxs^FB{6bG%$*t^2~D?fn$X3(HGc&0M(MtSuq+mf@Hu3_Ukrd0E2>y_)uNfX z*z7`8Y=yE5C5rC|>nUVx^{P#3B!vrsWOz`AU8+>k;l?Y9Fad?|Z3j^kWY`FvuRF?Fk`^*W} zRXH&qmqo1#m;tTiBCDXefEA%WfMm75BxsOzQz(7LD)O~$urvQpvG(kj`%ktICdNZ- zdoZYWqeTYkC#A9?8;uH%0S|~gqM=LCdxX4)wA34x$})jVir41*H~(E0>DN7%$WHud zvGd5AX7>cTDE?08caJ|S#Q-65!^EL-AnntZd6Asl9jD|i2}fAJ8pSLtGZr}!s{(tq zvT2XhK>Ur}6xKyMd$NU-gSH zZPWQm5`OjLj*-pp9aK;2u~BgkEO9%9$72OQkObM zo;9tw7yH;5@S47O9;7F=ux%Pl8``CJeS>4la@>zsVYM9a*cKc9BLP-qzq7hfR#&Hy zD?%8GPT|!381Qw_2^%7w*HhYN_w&{}0TNK7=GKs$PD32|t1hj-KHOoxUywOY%G z|GP+QfHgqmA;ZXa0=_inwwY78__0KfF_ zywTXhnaJ~Rp2cX0U>j)Q7l;6&s8OQ!KBR`oBPY0x4a3QZ)4n)Nbwd6kZYs3Ja*htp zU+ULl{in(vm#2qtS{yNNPOTl>_p^V{EZ`q!{KDm#Ob19i%v`%^3|2j^?I%1KEWboW zbGh4549ZulDGd?TVEGV$Y&L%)Pr50De>#B?3+E1Wy%_gACrBS*ziR4&F8;Ig1Q7kV zrr=1ve{zU19+y)LACQSfrUV7eb-eS!=ZvH)oxt>Y`we$DIuR4$S6N)A=3LE^K~w0t z)>yd8(_gXp*le;Gfb>TD4(k1}s+~3)o_>zg{t+r7fJ{_!3hSD4QDckSiwh8yN+Mpe zvxpwcPc)kxuD$=bA2iwpMG0wl_eCMNnRVryXj~_)etMLU zDOI8$gYv^?@Crzh51Ou}p+tU9(9NSnNj>APD%klzTal#z!R`v ziyYo=6cpGLH{D;ZptXf3Ci8vstZu*U0EqZ;qY38=v5p9ddC_m+9(i)U!u-MhSuLyu}dNB!p-&W|@ZrfN9Bp>2g zgcbw)qd20?#ZtC6Q4LD!MvFt;4?PiDXWtL~7dbYWFr?@>!L^Hc-lUs^b#K0Y!K-Qi z&07;0*+aQGFF3q84u`v34_Ib>32hss7tlRZv zD8>tTHdOMqN^1rsaUMC|h1DNCYl@RMCI1T%1*^jiA6$vw=Kp9!3#)p0<>a&`R91F& zj)ynX`sO8+`1zv&qMVK$ti#d@KDt+)@&;3y|CJ>P3g*3vO`T@4nQPAzAbsWXuCJcf z@vV;k)FUdIFCJ{0oU7n&Mf{e?a&&Cg&;UYOQ|M?ayzLkW75QBh+3gbz54&D~a1h5C1+P$xj?lFI)c+(rKl=DS2eSq>^G)EZp9U-vc$7;f-`*V_vgTR| zv4w4epG-2V`Qm^7ve|w6tp4z@;ie6cG9*#*`e4k4&=R&92&KjXvpJs|eB#GQ2&<*@ z_`gLm04b&%%Y}+NIr=lCkYb`N?S0r@`PYDW!7gor`bHk^G7ca&9gJ?HSnE5LgeuzI zCqL5;PHC(K+2UR3r}m$Ij`4Q>S-=B zdzzwA*ZGc%On?+#scDrOj#+e`F{x8kOAi2XUc)MTE z%!ohMq{vykjC!=81t2^v6YQFF1*#`SJ%໰jZqe87SnVBjSONI#iz?e4Fm}Ja5eKMLL&udv?mILi}m5lEF>6~#G}8X6ylKK&hFSqDvJhZlA9s07%eP7%%0Ih;{hx9rS+)S_etY%nZCl5VVZm2lCfdcFA>@<#9Ybw5sm1h}DfM~>AO%KzvI0?45^%ef zVS09mFum?OE%|AOA5_1~8{M$(f^*F4$-dOUGdt~;z*c4)jdOdlwL%?;D;)al#}3_* z4kK{wLU9f66)c7OP)KI#hLE2=1c~-(m8Dg&mR78qbe$uDBjAtYwK~g9-g8?+IW~Ip zgRmuNsht7?e#?sKEF;zWVP64KLFy9a5JjYoPUa~m+bQF80ZqWmF1xN{c2hp=O<{l%;Ra>n54B*I7kMcmU5NwOHq6%FRmq%Ilj!{UGR6meO1;HtZ4 zyIPlLZKsVZ8C^5nY&f{>XLFJmGyGa+@R>?CT?b4P4YRkuo;+;=GpR_ey%qAE{f72_ zi0`suz+N+@I@gi70%VayDYn~gb?Q-9(H;jvmea10bNF@;D-Lb4^V3rJIyk1^JkQk{ zGH|5-*N^>4&VG&Wjq}FF7EXO7WwIppW|$f^}Pj%OG1eb^lKj~ zO~Gf1wyiOS>s#v9EA6|jk1p- zv7^fumjwvnW#&4I)ny#cPpfn9+tCz*Lz8CMOo~MxMfW}x`XzIKT)A+TYn^ZkKv%+yzf3*;>3_c>aQmH8q}4eTtgczlD%A%J zZVCYc1Lr90?saYm@3B!fA}};PggNLXSfTk0XO2!A`pUBe5ItrUv_&^)>n{#H)!K{6 zCkC>g5O!^Tn1!-7PF=(9X95IKSK(g|!F%6p!bjnq70lr;B~48dMbyXLFk-#o$e7gt zv8z7{2@5VSy%-7b6i(<&Zg?lV=uI*v&b@o7rX&c^0f=;|1JMtsts&C;W!aRhBvr>> zK>u79kqY#{Xe+|L*6_@-hGEr<^Z;F<>0k@%4Ir5&^ z)tw2Qi?i}+03f?YL8_m*9z!i(Xui=K@yVett*Dpa+T|C$CYKxE&bBA(zhsHw}7keO!|v7fV2#revT25BlZZ2}D+yfpuI zJI(zzQ*j?$i+iw~1)lkVc3&8o=CmUcF?p!%X05e~@?$5_gE&~Wg!4F`o`$b=1dII594>ZErWNVwrt+s66Q_iL z-<}n&DC85cyGp*NWBy>uDp6k(i1kPa`}s|%=_!6!(eIIcrSClOJ(o0R7M?LGnQVH+v(E__n=q_xd+6-Sx ziVluD?Uq>x!5NvB_XlPVZ(Jl8Orl%`_2SVlljX)7_;^7c4m_$`Dz{*>T&VwcZ5>5L zKZAd)tI{5yzzB6H(3A4y@cwY?xDX=-7Lff&c;Bzu4Cm_WuNq|$*HQlxXW2iO(cKIq zh?54fQ|kkSk&gG@ZDu}fp`!A=Vk4Fr&I;$a>mJqoHzrdPsE9@)fY=NA!_&n)eB}#`Q&gD1|af%s(E5)%IK;M1`+_j;Lgg?Ci>n{;v7wT`VLz3T3q@3b zgPtVfw&>0N-$>l-Re}_s8)NQ$oWFW9et&L15mUGHSaAo4{}z(3p}@x98_CISn)b+3fc#QVVvYn>8*YyUM$srm9xr zvCBhZWJB;dIaBWjmp7qP4ebxtL8oIe#U`r9w>o{EN_Ua?hOt@Jt`2+Dk4OMv6*m#NDi0PNNYUXr2;(`lzc#9p~FS0iOy+{{g zQD9Cg)+38-jsrwfM1fAVCpOa9#!i(-yQ&+l<%>0MRoFQEPB5cnjWsxmC?()Z7}L}$ zXlT~{f`)RQN63yMkjHQ!DRW;War0$s6d>%2f42XADg897oZmUhwGqj=$ULDmZ+G=N zbkq3JD<3TVf@7rj6jQL>pIEMG(vrE~eupa(ky~;UO6Psu<5q5{0LV|Rd*%4)-U1|i zg^v67S}j3`f>4(mI&QiZjR9Ep4L=zCyB#4_k^`!qw{nNeN+3yaoQ}_Z)!G{^X4? zmsY{KqoLz-lB(2dqJBm@=s24=;y00w`mMYTkp84dWIl3cE(uQG(+S*J%Xy(Skqzuv zBGauIMf|3NCV(JCnAQ;{=ccYPr8~Xzohd%ro6~80rm19bl5)h=!<_+0wXxcNRfjx1zgF=|r|un1a(EBb>2Wy6%V34$^|E|^#Vu0W`x$z! zWK61S4xFj3U&_#*$HqQ6&s^!LauFDX(6*oy{O-RY)OsBsPI(9WBQ*F_I^ns^mk3Jc zyap97DeSdfl2TDuH-&q5okOl+uxj2raKpIurTKP!q?)dz{O~RPL6D)aL6#k#!2-vG zwPqe52%%D&2|rIu`rcoXF6tBgO|&l7>pl7FHdI|V6-Bqf>X1>McO3#AI=g$3*bO5& z{|2uZ>ew6)F5*|`nh18?|KALCx~&nQpLb=MmROAbM}rztDJj!L;3xD)xln1{^zHWt z;3%phY`eov?sQVtrAL{$p;%GnAB($dQs1a?!f7umCHnzFyN!n1?52q6eYejc(kPsb z(AV?*Qc9SMrMBc(Ig>M3kzpvwCH#X>s!VsAo#A~emoK&(VBm{DZwMM!>BEXW;s=OU zS$@vyqLE-yg9=znO*2~lag2@9Ql|a8z4&Tc@Ue#I zD$GECfm`@>pTbf693Y#%80rSfXnl5qI)&a460EG#B^B8Vcovd&&Gr7WJ^ujWvp?LY zMMkdm58e2dl@1^4&(n9Wsb&f&W9Bnsxw>y)iL)&_&3XWRBNd`-6Em_Bx|5j z`y!cqEYoceMvIVWWJ%W< z5zV!cUji0N?b)TPrpEM7Kav>tE?A0S1~5o;@$z8*9KUDItH{8DaTn(iD_V-^*gjsN zp$9`TJle63?zDoK$l%v1VX#sif$oBk_r#cBwdHT84snYSUQw0Y{VXQS^j2n! zq}~LU6>>-Wp5m$9*uqst){mXcJZ^B0i$X@q8MLaEAL6v>6#*iFxnn{5^koaLM&&zK zg41<_@0H$PxIerj%CC~9U2$NVs9i36V;WNG`-RNgNJlh1qk;Seg?-Xr;#e=IEY8csoSKs@x1eRej0&FH`-GaTQCPe zxq0VumQXdmoWLXBmA@qWAhQD6;pNc%=s7tZz^P%ETKH!bCLRoAzhNiL zs?$r7RDa!wMczK0+8C;cubmH~rTgCNl<^F~0z}bhhKQVG0pES#KXsad{w$OSc`zCZ~{mcoPBo9lMJVk8J(hvrW8SYxQX&6uauOa3Ed2y_ntsU-pO~WR zmD>0Vm3MIw37m30Cd%jOx)~~?Dcb{tz9^r&Ve~uH2Cg46eVd83X<+CzY-3{CIlkZp zl?e7gvMDX_9y|qMj_8+V@1<%aO@VaM*NEid)zyk|&k=2gR)UK$@T#UO-2T8*6v1Oo zB2X`HwBb$oKaTD(tg^2Q0C<>eo0Dx%m};u2$+m4xwr!jLTvJW1$+m6VuJ_#c`|r8u z-gDR9d#!b_Kf|Y6xL8QSOZ;!?S=l@Ra^=lm$CK&39e^oo=(}FKogL2i)R53pqHAD* zr+;w;4iGB*fwfr?334!ms)OwoUsFme)WJV0Wz@*E4`_wUkdo00QqOPmPBnMI+(#E4KZdZF}@b##U9M(It;tBqj|nelMav* z)iSqEC)`P}iA7*vY(F%Tyu|Nf#!ktdg}uj<6}+H%DuCKvIL;Kwt>NBw#ACJDwsyPB z$N?iA?o*VWYW}3~9UzlI|6Rl83#w#I(~>*J&5cg=+D2^Ee$|~ZT9MSiK1K%!LIxw@ z*YeLeO@1^kwULkiB32-ne>F$yzb;0c+N`%>1H`FQV$xykVidKHWZ>Q2x_wH2b+3Jm zbAqm(oVL!uXaXP^msWpOX_!Oyt%BwyY^5Up^BOF~jDh;gefTbiT))Z(kd4JD=IaPi zj}7NVZ*+8#^?h%#q<{qWV{1seW>r)iPJomnr~f6eX22@rab-;w5@sQKJirK$xqGIA zyLSqtDNqH-mwcB}^E^w^9rzzz^Q$hZY*(t`*RgK#OmU60Q>|q99zaMuz3t-7P%n?q4K)wK2RsG3 z$FCL~_oEO(>H{;|3VHw{V`UW9Bx>+=WjF_U@I$HAWv4YwOkR8YRKVAsox!pnAUJ4v zz^WdGW-@}7dw7p9ov;)dtqfJW;W<#6s;amJ8Ug7xV0FrL+>4^1=82T%_;5Uay? zy>{ARJ^5UxG(l5YFGB$z*K3@B%BMuHXycS}UEy0iuge(XdB|8-4e-(vfWYbu4QOO# zh|SA!N^;b@ML^J!WUA0xaI|9U2QENjw7bA}?1*6$+(44iKtj6hIJGQWB z@sn-M5)~*ZCi#JPu0@X$>HLziy+X#Ic`zr~IjIvCTpDbs!F%ry>Je0BH^ood=V^`J z$e9;oX7u>$QMzPi`Hc=#{No&nAOKx@IA+2e5A-5uVrWDPjHytR2lDx6r2au=0Ni!uTwIU%$QN+{iHX`wc4jBK69S|m|fG|E3}NU$(+d7<}J z=>YPWse*KW4&DemO|)>Q)2GFV ze{$<^mW4(sZfqBBSQW|^u0W?>tVGdzc0t5C3yge za(l;3o>-t6zRu38;~V_?{K(V?D?4%d*OJRl-g#CHAmzm!!{`l-m52EomwNaDt73>h zZD!O`AN3g>hxzFjL8|}_VN0?_S*XW(!bW#|JwH?xAJY7w*07FZWefi#F5)0}o- zdw~bDo29f%6O3u`e+eloz3%4kov0WfX%oE$hz(=qFISx|$VQI~$;?+en|BM(>{E;P zUYTUCtwU=nc7QD9IG4V9bysTyQ+lljW+`%al(`pxPYp4SxTJn`cP!MTP z3>RUt4#LKnh-z?z5)b_SFY5r&;?AD!Q6lSan$&P&dl+U&ik?`BwJ6or@M3D<1ze6{;KYToGy>^@2 zn@@lHlXuXF;c&7*q!UCT5}$YD0pw}+EQVjplK65qu}Tf{D;Q@B-qG-v3GL=M#8INs zArLW}BMcH5K>oJ!`rlH;#QbW$Rv$I2qtNVdA0NI`7;7Lv=$r=2;qUXtV0_!=6w-v| z0!IbVV17y^W7^-);*?o}CioEQ%V3Ejqu{i|BWNE1>y{x0e?`>YR&8CQFL+l8^;G~- zGHoG04qj>NIBD2kx0QK9zQyZK=8b!E_v8uhEz<@~LE6Y4DTb@h$vxf%k9(X*&;@u^R34W}P^<_u>0!wlHvqC?pFiuZ4k4FxtYfPAG0%X{6& zz;sy|TCL(5pqsC4k=7dY{3GFUODGlY3?d>3)9aFBYOXqpiM25PxYO5Dday_|Mc@VE zOsQI`R15&QZPLN`T9Dv?kiyuse~{M9ywnAgdiC<9%N~yWd6GOHAX2!lJ|Emls)~Yv zrT4^Il^C!y$Y2xB_AZ$%(T5TfZJ+~rXlSp=dJK^8kKP-HnM&9_UzBysXWU?XzHjIn z&w%PrXz-eFSx<19(uT}3&#q*YFoKHR3Gzd%qTXIdBmrs%fZRQ5b5KA;J}K%SNv4%P zyT-uL%oLElgWKQw8rtW9M=qk$&wKwnzS|%Dx1qXNfEx(>{%Z86)?nRWB zGrXn{FGDr#C;H2L_pt*A4W^XW*6d^<_)hI?N$(UJWJ*%V?wdM^j9bHC8#ct4g6QO#4uOJo`z=7y8rB%qbbMo_w?~njU`ztx>U|Ch!r|~BG z)Jtp8pANr4hJ3Jr>fybhtRzHpfM^dd;FR^Sx!SEO_B{BT%@Pn|*bnM%ZPP{FE$8i* zgU(ANZjeaOD=p=4cC$kD&-EDmwX45(E-9%gv_}O$jpCsJ(p+GyZ}F!;04Ho`O(bF9 zBVyTRG%DR+R!|6PavOT!5Fiy(Ss2#{%cOxHq?NNbA7t}S??mRi*dZ>B>0o)fgP`17 zGr1>f%?0wjlr&y>%W^8O^_nhJQaC3u>%IKXx$w~xKwN2(wF*cj4`9NbG&>Y`hwYTz z3cu$1-$5av+Pb34gMN|Oqu51*2!z94;#B+htXd<>5M-7xLGbCQze2o9+g$GG;pChp3hZo(O=B+LD* zBTMnfkxPwyDI-(>f?{9ttAn`#>MPhu)Ua*zIsyG$=-(@c@I;=7D9Iv!6oA}#e?#Or z9pzdGQ`rrE?X*K+64$z`IBA2z(L>O5tVab14x3EZV5lvl_usIV+^QPpg<@>he6w!C z)HFJxh@uWjfOx?!i{;!SIaxgBGn^ddF3v+WjHnEICINVw+!G;n!!~B(|;aXuom%iQVoXB8;5(0SCq2KD9OfTIzPOGQ(7qK=~E#%L@7fHaq$rWPY`kjO~lvQV?R!BnKp zuY6)??;6Yoxsab2~DsqeQ3c}@87n=cP&3AVXbs8G- z-i01*WxGt6TdF#2iq$0NK?jig#@;rc$N)hlq>!3Z+FOUb%SB7{i+OA?8Ij=J1TSL> z#2|<{=mQ;y-!U^TDbo6?y#h1w*$|TI;;l+~jU$mi4Ko$4;7~pUAirQ+ZBNRXlWB%y zc*&rbcWdr^BltyRIQhCMbr0afLBVhpO7r;T9!x&iq(5V{=;Q#n@7&h4QZoDR zDBLdqSw=+ItjS?9%+r;LhpnA)u|cRrLeSDo{8ojgK6A*44Uji%w*0CXa|H9a&=@4G zboiuJJ)98-p*`nFGx-?n-(3KyXL+<=u;f$md|K)uMdjJb9WI=?3jW<)e@{AQg>GsJ z5H!K#V5#JV6Se|QA=8?Kky^Od@_7EEEH`5{6>T5#K7i!Zi*8LnC7_hF8yPKc7zi=m zhist!hGwUs`@FO4Mpp*N;UtIS_jsi#)oUK#qSt^Z>=~0C)3TplW0HQuDxX21e;Rl6 zKC~Og<<)-IZ?iL!-zR!{=EUn&z^#LLR^(K z#TN$l&X}0t6*%{4i?LVFf_W~LzoOdJz8_7b z;C5uwCjbNzC9661eYiVy@(fZ82~B%i^i&DMYo`YJT;rjJI}21FVTpZRLK*o$flD|+ znPK7?+1ygE(8#}N5}S&c6~R9q1c;k-kGW2iVJ$VWAM)9AuDGleu?~GZbSALrEN%(> zP$WQ}!NU)5-2Yre?1y>sbE5ApV@jQ~?oIBg79NZS!!v*b#6SWu)QTuqB#5v8%KiSv z-^k&@e?uzGH%s-mJiM|71VB!h9nP5BvV8fNEQI3!dlNT@BcbByRft24vnakJu>no0 z+E}AR2-C_ASb`4Khs+lGlZ4WihSkaFTc7LSq$*~{0rJhq)alkb4YeUr5;;nBK@67r zUDkKou<;uK*j~_?3h2f+QVaHy0VBeeHEx6vYs$Rq_^QHnjZX228_L!#>ctcofM75F zZ5w*aw@}-8nw}VR_=)0(B2xxO$z)|y&i+$y8i~4MTuuWCT`?$K->F%uuu!ltm*d~a%}weD zW1Sw|bI75FEI_cq!pVwAJ*{kQ%z;dH=Xhq~oi zL71-uY8@cDwUpkD@cV_aDd5-m zLKRuG-Rd^Fof;7>?D*$WbNJ1N8$gumvOjKgY>+yigd*kVwp9XiR4qMq9YkuY-gy09 z?6d$vaCl^pyj+UU!Xq^vK>*f*4z1FJ-|o}}dA)b&J7W#H<}Oiqso=an|FBU`8e7v9 zhLH(l=BZ-4Jhr^L$Re_)^a+r7M^}D!xCdTYq@J_M+4G_N)1>{d1t-fI537UZeCASs zyf{6(qI{e{uCC2f9^b)TQ20Q~k+|uJcxwc$C*v|L0Yr#^!selDLL`tRzT?E?7o6*; zVm-0Julvt`E{MN_{tEyIte;(CHIJTbWiHuUbirflT-o=$nN6SEvsUKK4)XwSfS?DA zH7r}}e@uNJfL4llz5U?<36tt82OeF1(#|x=tPPMZ8$Ixnz?SdsdkVaA#8hrKVRMUz zn|hSZ*yWjd4~L*$P-5U4r%dp(ZiUj%M9%3QX$~^T`hvJ>idh=vCp%Ae(EKvN>3woW z-L>1JMpJ&3Me{Rdg-W;No9<<#%jB`d0!{%y@Z^XYq{ewGAL#AbjK+FN{(MJBW{r;L zl{1;dec-nO70Z6SD@8*7WE+Bo((~gh^eARw;(8{5&nSBKeY&w6^)fCd<11dXi^D7Bq_fTs3H_- z$-7kMG~{HdHhNCPkRW;Jo8i~~1BlPD9$_`st+pHT-Wyf%$B(wG(ShNAio1dSgQPu@=xt&Rx_0qtpb* zdBF*30i8KBkp)D7K*^+(Ii%xV--u^m&4KUeRFxH|w#VA9Dz;eEDD^;oO{X^!UmZTH zoMPK9enhu*kxa@S0ri3oMD-Vw<4VWPe}B!e$ukH09kdc{F1ll>D^nW@6C)1Fy%&0E zU!b{qq7SxNX{vc%S0p82=$_%~YJ}8JTGT#wK)F=74q@_{BPAK8wH2`On~(FB34e z8R7*Dm}3GYB~0Sl02^X$^;R81`H)5(`CJ!FJNF1*mT#6sQG=WDwoc>@C6dLkL6DuBnkvZ| zfv3?95MstLO257A`!01`b{0#6{usx<)+{Y7+{tghN*cotw*cbzG$Ah;;H|Fa1uKzo zsu=#mK=llD_5z51?i76{(E?lu6S8{!a(l(M zvdfo&0nJ(bk7G!4sZ`L{ol}<`+IKZFnR`&2K_P5e2@dFoE}+vz?Ezi(#S|es;gXpKzEi7V+)tLqqMIYtf2LHq(P9iYq96()aS=yU|E&&+j}`*tGg(Sa-02^_ zTOp#<^&u5zH2KKK4Gd`~oyT3;PVAp6fN*1bGt*?qz>9(6X9(N=js$E5U>qRvD* zI#as(0NtxSIj6TT+2!JvQ`-^XPKfg3!Q@+|P-s+SC)6K!M0fmjhc=}n3}!h#Y-o=-5f8?ar3ow_Tat6VT?_&Li~%C4$<*Y2T8+>i2j;$U zC$9MNOL~xSyJgyA>*O2i-#bu&>f@B+GX1BQ1)|>at7aKxce4Y8VLzqsQm7l!BGZn~ z6X-y8opia=U+Xxgci@+1b4IRV@W0@Ho#XM+p?Y0CrUqq)Zu-f8AT?Sp$h3GroJV^c zI625sZ`$Dq+RDFO<4$hq1EfuBP2{&paJAM>zHf3ulAr*#TYOQIAq_q_d8Aczv<5(| z9)9#-*%eRPW0_U(IGqP_xg|OOCr?)u7MiMZI)7;oklzFumcP~8;|!28N8Q5hjG>ha zStRT~GN%YHm~!#RRRQuq$?9QFpQ})CP7=GX_d=`Clt&)*y-EVi-s?#H7X)Z(ZYkUk zrutMi4ilP`ZzWlN#PN%XlPv4YFX-_jJS&NqTGvhr>sg<4p9 zqpCYGY}l%|*2Y*=;%|S1)xMc@iVq-G-~dEk4Ks^Z0C#OLf!mQn9$gx$0Nm@Keqpu& z?eC=jqgEb3u5u$9+7AD?I>;l~cC}uP(`a9~CR`bK1lbBFVm4TV!dpTIOCD_36Pis^ zdu(n?y5B|OzeqIveSDo$s}v!Y-T{EDCnFoPv%lq83bY0jG^I~YgSU9Msx5D@P$66&3zBojy5JfawVwM{%(AiyMJAv|LH3~wbE}-kG z(J<*?OG%ok9$w!35n+b=8vYF+GkENaY=M#Uh^-TcN}LMHYI@_MMb+TO6ftE&9FNH5 z0BK_FcBeV2t#qL##bOkRhIdnSlYr0D#LzB{b%C@b1f3U&8{%wYRNF{6Vs}q29O|fQ z^2}_T-^PqLO*DM_xF{z8so-!;s!&Iafc1QAUHQ2YzIlaJ!lUcQEElQyGm?c(2Ow$U z47sI;ye{iR4~nzMeW>3C8>U7g9L41Soi>HteFrs6gK*GctMDiOMC6J$pjk7Bk`T|N zVtTcBo3M@`OAlj$rl13~TB$azPZ_ib#MZyl94*-&72^p{U)IW5g5xBW`h)=T{#7<5 zL|)AXWx0NvEDYjW%%9uk z>h+|GmXhI>gZkdZqRhTO&huj5NgHU^-3Q?N8*h0qvXMtu-&rKyQMQW#ayoM&t+TF* zPQ%J}eeTy0N3bd!0`9glxOe_)zmEq^4UjEjbLk`H$)`mCkZy8kt14#qq2x5M zAGOFZ{w6Rjbx0~N^)X!k#HD4B8URu|HMi7^Pg2SfEbzqT*z5;wCeAta6AJy z@TpwXr(yYw{QS)cyKeK$g74;gc%7J4g@7XbPL+~D0+8Bph^d&mIEQ7Tmnj_|Y;a8K z4=H=JW7T?f`bDO6BoTm!`>*|W_V^fNRbh{J(}?x$MbfkB)Z=z%H~00qRXjceNWxr~ ztAis!Y^nxsnN|u>uRS}i{KwW4H|d0g|9!W)0zg<=Xhdlu;T2QAqdYwvN_o=lh9Esv z>O*%`9Ps8Vgd72cK`kZhX@0on8QlF!9{HcT9pw89@vV@Ljjux^26BxQKn5unCad;( zHgW%K6gKwD2#vK|*$|~*^&UCe%X~(sascFCPrAUAv(*>BFHj@+@Q{gh7>$;@ zK!|ZmDhhEx%JIs=+Lsl>pT=ye7=gr zTDPK+0HJkG@XBB5Z$YX-0w-v2I(a81YM1oV|LceSmdt6+hX|0|1UZr>a)W5?3jviE zOEQ7gBI~b8I@%J{jz@$|E~Hifq4Xw%bLlA_(PCPrn-2+(A%s;ML#$hT$pqs*guU51 z00`Za^2{#@_M;p@<}GoFLn{YJ zn@hXX{mN$)BW;X5c!dKM9GE*;67(1ir|~41gL(Kga0>d`hRb+%gArM1UnG!?K_dWH z1 z_X^;`$3&ce3w3}wc!7Qq-|B7i^v_XyXeDq|=A2GQcV(p5LZYqvA!Xw5-HAQWQeHzI zan{3fUB&a`A#+hq%*C?5`q$DTtH@O&#l&NY<~cxk)aYpIJbnn>No`+UTB_dan45SuOV^NiJB<6LAtxiBQ zrkIi>u|H-5PyXmPD3Pl1cdM_@TF^JvSJ~QB{)=-8pguzrIeJ9NsQ0uCO*xok`jX^- z((4a+?hmvK>j){syuzRs@YISGDo#G^_SgWP7(@)=^Yg%qQ>4DYgrxBerK`CJS-aFwd$dkv8-jS3vQ@9P1B& z(8!=BT#AU7X+YL0qi=kmY^UI&g71z9= zq}wi5u8gXLiQpS+a;Pawe@MxK3RFQYvgAz7^y;b(6f-22TDL?`jAaJSh_!L{K#$Ef z#sGj=q10yJ*z=jtG*Go_tZvaI+d!CAKmT-pu&TPZN}C=9NQh#E8dsa1N9H*G!`*u( zXInZ!AA9#0LdMW5!E|=U13)Y~>#%uCn71#QVYYg19Tp{(Du_>2i}28*(t{Pp^gw?A zL66SL#I#rlOHhMc%-e!Lw=-kDxQ1iPvFf+m^!sQ~mv|+QDQe^X#0ywOQuguHc93VE zf9O!==85QNL+%FSoK4%Fvka2u)-R7e_C;}vzGw3F&+jU*9vchOM}MrbSklb z<5skBbBJ*D_zzokSZE=#g!y$B;kjwUeaa?bfV^ly#86y((af&3(qRdG#AHP~BT0h$ z;}pZJWhbI%vI3A~!l5cL`2YSju_yhU#@~Csu`eD~@*T0?AJ2sANyCi>2rS)nnjeqf z-_Qs2?9BLTsbY9W{}lIS<=UWS=09Xr-2icIThn(kgk{@~XheY*X-p3#I~1o!>?)cb zp-!LpQojZegdZ3@AGJ}bT=kn!v~@*4({4zY-_;mAZxyQ1Hh6L!0CL=}3mLz4pGXq=MQgTq@L?A-2`*X>S{tpy|C#bL5u@UhFBBDx z{y`z~cYykV+YEjl_;ri?1Th;R>GNQ`O&a_146S%N{h=HGoniq^ z1+q)b3Y3DQUUuLiKsFcHV431SqO%^{%P1aImKcuv%#-XUWkbYj1En3)WR%o9>U!kMsEtIt1 zZl|Ohv<7IQe1jZ#`7fGSnrD;q=ycE^PUd#3*FMU;U!R`LL9P}cYIiA1!WCo<40EPA zBH1R{krYoA0ZpMJP7ZJ$4(&YK02x@Ek&B=EEVmlq`|-sGIZmXS9?t zD;Ypq)M_zIBC)zJRA~z*SJg5OWdGSc<*ak=Zb3?m*g}GG2D}Udz0!K!PcS!_#a}c` z)F^sPvfLTdHZMM^mf05YGyq}x+wAz3Von^96V;(cfry+7^ECx(X%V(HBA)xg9Bkg)#$6!8z zYeJh12Ofb6TSe|u8uhDGt@(-Hg6r>efc!lFq>=0qoGUyu-Om0e>U0SX2KU#?(#UJ2 z+mc-7>JuP03&7jQncn%g`$w6L(z07)1Qd~5{}|tApY0aKpmNIrM2fUmidREt%(kFR z9TGF4&4Q3OCXwaB54|Xa({W0b2_QkFRwcIO--?jebf@Sme#(sLNW^RnJf?Cmq$h_R zI!*$_M&ScILH5rVJUZJ7-p%zW@w4B)L{lub|COYC%dMjN1rTEEg*b41Z#;^ z-P*0#6ZtNs7u=^M=%KpDHPASUW;f&CTO9xSw`R<*bki@F;6f8$1&@iOV~u-VxU>sRtcEfQPgQ1^oT?4-(f((guKyreY^z+BcvOt6z)w>#3d50HW~~ zF&MllT=I{#yz!s{T3 zEepbLCKJI)DOz96$uFVg=@-mmSYl-J#gZI?7J<9gA3t-A)F_7nN5fSnn|-t!A0oTu5t?`FP_DiGUS3k@6Ro& zZ?NKMF#s~sWD`e9YS~J?K#Ne8`VX>@&^e{~5@quXu|Ebk(c(KmCcE46{;EK&MmCCMZ|0(EO?KFW$??{doR980HkB2*qXP0R?^F7Htdl-wL?Rs^m!;5fefadwy8Qi z&kG=?CVa;y%%>_&u=;{VzH{Gb(b~ZtM&}}>|KwQnHte?nL>X6st5k4>ILIa)6Mfk? zlvvf+pshUfQY^__H3Pi>G)wIsibLe2XO6~+42_%0hMX9eo3$Xv63fDOIkC%(d7l7; z%t^w?G(WQ#Q^I@z%9X=^lKV_(g(hq1Na;AdB?nF&Am&}D-SW#%ho+MQ@hr}@gccTz z29}s>BPNUSWwz4aK`ZReB~w-w#QntZX@{Rsjtsa@!vHxLZ!HnUAFjjG7cPv9tP9<{Hz@tW z&DqHDr)%IV7HJGX4009!hP4|cfG3i zV>k>~wJhs`j6#`hW`*rJdBO$NVm5%Fk4hQ|aOlkLjesHnJv&*Usk$pu8PrkW=ExMzsFG3NsvnEu z07*7woVnz|dv&$cuh+W^9{_?C#gfo%>3;bOox*BtG&6)7e>e_tncDp^~M0nrtR$w zl!Byh_PyG#KU93QVElQ0Q`x;k<8q0cK&)Iw;YVRdQ+ zUX5iLfp&IQm;j-IeVBO5XpAUJp<$t{^{EVyqFP5Y7N})F9+D^Zr3M9q8+lNMy!rvw zM#~!hTwJB<8UC29P;CO+nFfFJVd&3IfTZG3YHodIf6+)p`Az>urLbRp6FjD(?3tKD0mZJ) z(!16jVMFYzr0iDvs`NL}Wb%QPf4{_^I@AK!>Hc51BY&CPoaNLUPyclvg>4rVm$|M& zzD^VV+S8tvQB_O>>Jp0&K(XlMo2XD|{2KyiQAEs4SnMSpwMe^CW`Q*_SOldNN#waa z1P2ZbSIAj+)peEV?$_H!+LS_Kl#i1?xWLC~0b(`B#jc=2^ecKudsp+zE=+6F<6eY( zX;O#+K0XXaF)To$^JpQ?xCh>(+TEn(F>_)BGe?br5&bsS3xv5^<*KTs zn=!maJH`EUCrxe_LgfH|{lGEvFVF}FIsl9IE~!? z&oI~Hhl<`TN1rh+DI(EgYoijInhHR0*M{SGO>vS;U|`{ux?%hzU~d?&*@GPN8uz|W zeb|!&M1I&@S1v}_Jh3z?t=|%h3s<8Xo44^bfayxx}I+}1>wm$}xE)cuto z003f}U`gypihbl5gar4T?mV6(UPfDO!Mtg!#&4-Z>) zq$ChTPyIJ>KDWYR`_DEWAjYM9t8TYSJHzT(iL}AriE!B6)7uJpe`qo)PdQ)qZ2$yP zwDDD-hcvx(=)T3w`TR$nrn5MT;A!1f#E8LTH zl9x`+eU(yw*5~QK0+3U@*MJ0qeneX|i8wYKuRxZvU^Ix@ZAl5Uii`h-EYAo< zA=87kxq+4*pun6QFnBr(Now~G$bg}WNq1t;AR{RfrXDiv%_lu#DN6y!w@GGO<-X}@ z1(nU#9ThqsvS1}p1jRbv_pjvN5XVuUf+sdvM|d4L=8hH#9DRf0jsT> zw|mm`4b$HII|pXZdfe-bX9D>(H0V<#`)X00RZccwBjePcIJBDv1`sm||E_rah1!Mz zKL*7vI%fI7hoTzZ3Ps#vEQQLXIL_+I9bBXhzJqq4vqr`ZKw`1!CzSr#5t+a8eGjXE z`o|d~EGN%bwr-7x-Bcx!nE(*fYwJGktIpcTkLXc20B-3^htYWYX^LL~31Y=Ch~6C_Cl%HTDfkyRv5l%EooliSoR!WL~S z)cRv2Nk3^zmhs1y6hX@bqLNjC*Zs+(Mg+|iy46R^z0&Dv-&dM?s08{r*fCpMfL!=q zd-Wf$L8;Q4jb>@J?GD2Y4lKETBli8r`o=>s02%>&J=4|qk*)YM+R+6R0i3t(3X}M^ z!ILlU^_}dU{~Q+p;=miM635W%Ym)U1b!T=z4Z3sx@7|44&NsbJGSThcR)7>@fYUv; zn%!a)<0C#UNm{@~4RgBLo^4nL$c$p8aex}8S*xGCA~8pY`LA&_2pvuE@`gCcP;!E- z<5*@GK|X%V05KfoqxL{kzU#D^D)N{t=hZaMyElYAZzZ&w%GPc6pa2K~b`n}6UHNA4 z)X9bVR?Sc~^?0ch_5{>ggwh$wT`XvR@xO^tRw1mty*^yem{(5IYvKfFPiQ=|sq`#O zO=2I_1xSt-)*9-sD?949m23tBe5x?ifCA38f(wj=D^&`PZcs1iOX9cw5o0=`*XZQg zs?_mW_QGo7xoXKHD7b^nz&konA%=0rz<=E}i>TX4D~$Vh9cRK1R=X|9tF=?ZDaxNv z95mEkqc<-uD;a%h5KXM};KZe4(mlNnx}a||D*jN)?~W1z#JL;`ZsVWo2MvS;w&Zu& zbx8`MY{$ymwS^99&FG>3Kv^@thC&T-S$6J{tHLzYn&-I@j0lm~)$3fjrq-8OloC)d zgqdv~Sca&HRGR1XZNl4ozn&QFkx+8PU9FT0WqtktE#=taR33A*`BBEcQzRUUUM^SFOwUrt|4}8 zSH?X4mxyW4ZxvJ&o?jMAwbam<8idZ;OqlpseolG!2rN`Htpzr)`W#!!n=o5aAr?&R`RK85s1oUf*L3 zIfoixnCC$urD{sw?T-}ea?eE>f+Q!}F=P*C1GU3Xn(C>G$={s#10j zlNR?26PBUB{JSN7!6YVKxwJ^(+n`~8pMmQai7d`|-Eg#7-mRZsH|4?K5IeQt$63?6 zPWE5{kkMb;Da&K#BIgR@oX7c2%wLDfNIW%KV$1_&r_vb2g@ z%si}j1}()>OWGX9O@h+5qbZJPQ*o8*5^+s^}@kAq}-?$NgH zps%~itNPnP)7W3U(c6<~0ECO1p57;_NG(Bp7VR5!u+5$+ov7L4@+T`jF|~_;59kk& zn48A;x43bjtY^tI+!pE+-|vCBOt_lT#efR@Ii9@@kaxw{k%RGGfi;9lFC2Uhn;BpS z!FA1hl1*;;M}TmDe-{zBzw8Z@@fBo|elg|`2dfh(*beK}m3+dk(F5gDwJ34H zEjM#NU>oZ^H=DmGPM`PBsf;}he<*qcsz7^yW=siWNPb$;4N>Rc{rt*;F%B9XS?_~= zQ$M7vHu{)md_cK3!rCe-KO%|1q}sW}JM#)c5d2}TE=8?0q0FDfy6a3(yl}T>GvP~c z-SxViXZUC_2mDhvnvE0>uj&*wqs?e=mbk=h5=Z+lUiujO8yu3yh~A zQVOxI{`wYx+>3~#O(CdcBK7~)BaK}98weKFGuu^zvZLhZ+GiaJT0Wt1ZDsH#OjY7s z6HW;DPUXUdH@AmV;Me_i%!`rbGdlrt(|&_{Y_+lAKUkBK7=qx0uD>(Q!a=S$iSBUc z91P_K5R2O}vie8XHE&$csgnD+DXHa(OzZqz363cmubly~34l}>RXM<6f)ShVL27on z3BCXzaTkjv=}=#N(~TC=A;_}%CNvA{sO~ceLkj; z>ZxTyI(e%DtY1RSVOvB15#g{Dj*-R*;EdUqhPqIR754P!HpP6q94N^XTbPjntt71o z9cSuB`b2A*`;YdO*IKu&m1$rM6dZ5kZ10fTR7?PoEBfO^ti{;uOxL<(@*r?EOgJaR z&=!D%7`{G-_8kY5OHugAE=+H)j3`8AOWu^1_mWS&*ix4`jik)xY_CEPXmY@TVsks_cPPpbrMpLL3Dms%iQv>G!)5Xxq;J#PAJfiPTR*Wy^*s26RNd0 z;L_>+*)Sp#B-IP0LX}B4Y%`WiPBQDnbYjshVQTo$jj79%`7mYZaBf z&Psqduq$dS{)ak)94kIZTSv@}4^=s|jJ-Q?dM<@?v@`%J3S~Oe{IFPtkFc@*n$LNj z7)gTh&Ja(65}MHOPxsD?L8WD05j)i{zx+PVQf)^S;l#7;of{^yS5D&S9zIaJ$11p!X$wF>1}91`hhGOo^MoWP|!7!${d$^lS5o_Kvj65nnbt{kaiW1 zbav(fxZB_=H`Jh!Qfe7-4nay%wU+dcbi6n827rhfFhyiu#4UR@k#Qs zt~%ql2i}0>^#48BBiO|~-fGfu>3VAkZurl2!)V7O$QXupa+l9_<#OM(flsMM#+dY$ zyi6QtK}J?O#E8FHwrt8gRHd1_7SYoEVao{+C`F00UQQBd*INjdtjp{VLn zT@iQ=)IFB}D5!*;UJ$PO;E3-LYI_lssY=xwnj)CFn%?v(RPB)T{+?8>jcwbuZQt43-|sWc&dm9Ac4vw|cVbHK z0OWljN`r1omtH$)R-xy%`kD_%Mg`v3t#M(pwnJpi9&SiH5a#6?{3+reSnyw zi%_OJ!bYD{-Z|*&H=O5q@Wmf6u|l{E1|LeAg=zpKCojDMr`PtfLU#U!Jhw2+GXB~3z4&O=mh=4FMUvzV5Zk#KJ+O{@1rs;~0}->v(RBSe7rQ#% zSPkXnFUTgAP*E|s!2fyxx<)YWSNNv;e&5b6F|br^V?$8wt)QQm+z>An)l!$C z+d^|GlU(Lx%&^XXg#hU(Q(ybI2#}-V$Zj9T0P&h-Th8oVg~=kxSdl0=888|7L2ks`fsaNu~!b*Vk12xGsJ6A^rop|?hggy z@H-DP__gmBi%3pyfFR9(*ONV7-Cf1X*ZsDO)qCIRyX6(_z2 zynbiL_7rIga@(s)qr9h4*04|hWa-bnq(!S$exj`*9=W3 zu6s!bLj$`3PC5h7y=wrTkrhepL;XzRCg)I*HeQi8PrA!%V*QA6UYy)Dgb0v0tZ$j0 zN#NnEoBd2UIRxVVQq?+#64!c6C3Lq#G?su)-HXp0b>Tn_m0y9^O`K-Gk>tlI*C9vR zQ60^uQ;C8iF+hmq6f%EEd{$quZqj+&{_(5onW!ALa;Y$Ycen1n*CrpYbtj5hq^!xzYvd_*;)o)@3;bb=pB$Z8rSAoB9z-_%_(3 ztB~vcHB2@4*5(=$^BhlGp3O1{6v!M9WH9*{vvD}J$C!jP3H~PD5JKp~%=-1>{>;1_ z5l;e$a5k46qZCQg7N1P{uk4VWr=Nl~pVc}w_kuR0osciS0OZtF|DQND)@(IT4m!%Z zinZX<^p)x1L3|X~@F_HrDkvOECcqj^b8mF4xKbEf<`qdZ2ztgab=;ktw$;&OG?ju% zoHKciynZ2%8Td4VlPd(O7WKZ2yY0UizW&P1Y)9|v-vQFDq&?k^P~0O1PHTToNLr&s zJP^10CJeXAGxs<@BPRvs-tuU@AHn=}F{0JfacY~Q20t@{Ow%hn5R?OKYH3Bsx;JNLipm>RUG;f2iP$we zS;q8@Hru_Tmi{it zcep&S$xS>ZrrCCRii7&0*%JFH?T@NHMS~1L3SHSX!S{{X@yJS$iZRNlCFL1BYTVs6 zkw~HN_X3+hWoW0>jxJNJ35N=t*Exj`i=w)_f}S20)LO)6gs--N_(}lD`+?EpCeq71 z0H*b$q{FCWsLdenW+~bSGqI+zyQ@hHAl4PD=((+6ZL-0kgRjPMMd@Pn!x$Jl+xJ-{ zEA-~5KLIkXJ9>3m)e<{IhRPKeBsUrIWfBM1EL0RA9OEW;)-49~eDBp_ z`_%k)KANdm2Z2n>u>u-F)jtS9t)&zuQ?O~vz`Bm$UrUJMyrFJYsQ1A%)(>dpe5NN60 zyPEV|^J3&}CYmj|Jl~Ly+KWhpy`0Ld8;c-7+L#q> z{(93RebHu4Y?u+}Sa(a)sOZ_|Vd@bNv^>Tn2Z(U5PF^n}vvKB6B_cguwCoTTvlulB zvskO=5-9jcoFRZ9+h!W$b{YS*5ffH3l4Y_t85 zGe#2j$i$yaR3x7(H{aRf40~F=A@b_01Whaa?WHPwca$#XpZAa;ZA6v|osHnIzha&q zZ<115GOB`((sh-kJ!z(v$|*8mPh6!Pq)V4@h1(SR^0P?WaKfn`)E`kfWI(@^D|Tfd zz%KQ1@mrGl=fDV7g?H;Ps(j*O;DQIpW5T{`rr!c=rsJ7VufU?&)1?_*0DNoa(T`iE zR_u%pfG8HqDhcuOgeKyT$7M@gFGX%gSZh*!vX2pXEMBYSF#!mM4*2boh-?I2{VU(E zvNq%N?92|zLzME~uLxvKPk%sVs0xH*U$&#U&++72vqStZLwKoZ|53v=D?A?WfKQ)t zRRA(5nc?YSMIak(k~XqYSZJ>}EG?L)$D=L9+D*>x%{K`UF<6|U^^cm1C2U&dR62dJ9)h$2hUt7npbyV!7ixn8tGiu z%VQq*USL`QGNzI2L0^0_20s8o^X28erK09Ks=8lCD5GUEZye!zV^TRdHmYJS;9YHCF z{{uXwlpFu(1Qn@&M#tAHDWX`(@RZIeaea4{wiqXEWl-gj!L7@~bwC~mo8nCDMBGS> z?;Y;f)NDR0ITI9K9x(S~i3ls~#`rfzlh&fN>-KorvQ6s_RInmi1?*XFL zNtt_VdZWoK5tp_lcPtOtB-fgg6+PP4hAPuz#jhqP!B%GX z$g|fza+kyExLjqR-kzxQms$EVn8S$}$Nq%al$P(GjVI&M>LA_LOq7_Bc@KbuNG(&a zjV_23tdopwK^}rFnYV-HF12?(*3%$m_rr}qOkQc?v zn3DL4Q&-)0pt!qUCutR7LRqu8c;{NC1gD7l@@d?c*^%Bw$ebn7uJQ#S2jr^r_uz4S zP#X-APSqA;&iLD$DC4!_2lQx>Q%}&K5@(GnHWVx>2x%7lOEJZ~JOf3{62uzT3skt$ z-_+PKtI)&Y?1d7IZ)peb-5AZ_xp&cf}zg1j5J?%7<)* zRKCx%p(;b|bv-UoC|c#RGLs=2`2z&+WWo01nyX*gHj>`i$$?(gg?_@XdEC%M389W< z(+N}sh0iszT{uBIb(~0N<5{MW($VWM*5%~-dc+zBOgHS^0whtp!pYUB_PAw|^?*XQ zuNE!eW`Mxq#bSpS&MJp+u?!$ipKHSSFysUqBxqXt%AQgquJs$q8Z(@gaFKhz4he$t zk#;{lBFcBc+?B~T8Y*VXMs1hdm+-IXiATz6Ue%4mpmmgOkwH&VH$?us-(~O1_NTIv zE3r85Nn3|*!k0oHVI*wrbjKkB&tYmTXK4Wl9rOC@Wo_L74+rLSZ$^3Z*E@ZZ9mxL3>ztkiM5 zud5QAxh@%tOyp_iPI1Am*#&rDYZzDnA-So*jk&CubMNa&W!I~B&hdaQYV)l7_Jl2r zk!)TIDv5=II$Q`VE7qR2p}U)YEYpM8J=od*&PGM?ERTMs9t2Id%H#d#QEhTO3MA$J zxx(QqIhJ1+8EtDISM5LjotmZe~rDjGm{d_eX5M7=K2>kS|Dg3=LL3kLsFFSn~cIlGnGI+N&f9=c0k&bLFUoAeQWFE z?2hWw=3Zb!Sj*|-=2|!#G5XO_cM&!!LX~bcNi{S~6d!N2n7X^})xoji2AA;Ik zA|uUOo7*n@7SX`sAE$&|2xy+!ss#A!_^DgDogP`BwnfxAbJk$pZfeJQh80XefG@ZP z!a_thTvc)CFZ9u;&>4UjB19$7!$h1LFGk6pjA)64okdB4Yq4Ev<%KzJ7N&xl!bE?0 zruB2?f27B19Ci|mmmUhw9gg9$2C0$A{_nA$g#Z$s@`X!|^Xycx4ej`55(?2ggW$ca zxMVL?EffY#a~PEE!OokzSGdCm-eTMfaJ!cMr*<&^?K}P_As1X?cN7nI(z3ej|@@7KT!nJGx|I?#w z$!4ppoI3J1Kz@1lBfE%O?n|mE@h@5399`+G5Dnd+f5mD}AGy*;1w{tpA_2!;hN2i9 zEYag|&Zi3l{;Bsv5%qyH)Pf?mE`|nxH1+?a85G;o_BF|xH1XBt`CZwJEuR2#l}rTVos4!gJs>f1 z!W3w4$;xAGi5aOtV_zO94zmo}zTmo;m%%qa%3#vliR`b2J(%C>_;;ix#`B>2gv71C zXbq6=&XZ+U8GZ6ni=xLLhe$uc5^G4# zeo_???4z{(9M@=8Sp^VgLv9>s^-F(xdSoovAEacM1If!`D00^&T^n+;jEU+1sXyW! zpM*khXZ{|+H3<8MDyhso>N*#{Pki{V4<-^FXy##PV{c<V z*h-;ZKb!*d72FLV?HyuWS}>5=Z`&cX22^JzlIUsN^D{1!ZuiKX1*wW4a;rbYAnV74 z_O-`5fLm}w4Jj=?w|OTXC%bM%76z6JRPW;OO`I3>jh-a(@OFRuO19sZ$jKGr{Qawa zFQ@#eWbrmY>Rs7JE#>~%sa(RnNnb!c*wpX#ohl7wtLL?sbs=Os;V%JFDm!sywN^Usl^&!wr<=E8_-tJ9Q1T54!i)2( z&h-%}94<1Rlha~%-6VX(n~9gOPwFCkymg;Mp&`Px)go1%W&y-nqTCL85E1?vGEjoA zy;nWP(N8z=)##4~PjQJcAGjqz(h3?w?9>7h8t<}1LxO3CKIdl;dfI0&xtJ5cN(Qv{ z0c3!_=JQ)Kr*|KnmsI|2J zBE<=#x2+W#L@|+MZO;W?enj}(jsGhh%C-*man;gm#!sMNyGq9}txI#N8A5;*`=Bn_B zT)hf8l9t%4^Iur6&q1cF=GLe@9pd4D_y6Cvz+9BkQSs9)Xx(`qfU9WtZ~17h;*pB) z3(tk?UT~+o07v;`^sW*U$$fTI2<3h(+ACAFdAQG@hCK9>vO<*jI0TgKZ;;Y(Fc5#y zWqq0y;N4BCO3P<1Cw%Qm3n1ryI62M728bb3%klfx7E^dp==WLlmT*W{^UrM8KeOwJ^~G|qOaz>)*O4RYCQe^ggV<= z%54acizI@O(N-U=XZ?Y{=Nmhwvb0-^rbUv{r*ALz-S^5%09pRs=FYU9qx7y9%gx(_ zT4vypbo1>1|2|y^vwBRa;Tu4-c82ZG>Nnc7p|8`1PE)h!?=mgDQR*A$#-ujT-NiwF zE~!BG{3Ul@>DakI$3%IP7V;U4d4dXWIn<9DxOu})B!D2EXPi^N-bY_CA3J+Z`+gMi ziPTzr7;B(;)$2K#m4ot8`~-~_Nl76cB04P&#}Jy~Z2eHDa=qQKDECMFx8@QpfY=fx zUEC$nZM7AxlHW8Olf%w_jXNYD&3MBhTQd`ie+9^oONdg>D5S`b`}Shm&uL~_NRS1Z zumkTlJ`F#R2ZTT!Uq74fLA6|}try3o`|kDDx=gtnwKxisorg*g1R2^VP?|VhnW14F zGwgV4ptln?QdMvW`wg!pB=KthtN2ZEOTGjkhJ;yC7YyXb^i|EBGp9%}tvBJR*!g>l zRA7jlNC~@90Fla`tQv2;mZU%lUw~#BKP@$xBNZ8BkuZ~qo;a@EE&|Bw2fcEu-=4+g z7ZHcv2~nNH75_wNW-yLVYcR+GI@pQ;$@Jj%5H>q_snoZx8Eqo5TR2t82%is3Oo6H| zgz<3$-3+o&yFcIqQm5_l40I4%#%E?GZ(fnqXeF2pj8%eUxj_@9ZRM&B?s=Q^zReC( z{7!mEPf~}@UwYFV{7rU&ZZ!;`Y`;XRPUOuGix+3~;mzHI=3`8iC%|hEiA8EAUA6nh zK@JcH=&O+kQy16;&OZ>Gzbs>isuafPs@wOT=?%O2KgZYrM8(NjY_HJ~g9rVAi=UF) z<6-M(5z2aD)D84Ry(<9)Cr@=#jxqAcTMAL48XxEtAC!es zb#m_t3BfA-EBT<9H9+4{lC+A^_;P0gfhDY~kAzxZgzFgWthvF0K2JnkrqpgK50K}3 z22AlB1dA%(uff^outWDtI2YR4rvbq_;vE;+7g}p~I@fPT7{3k2-!&h>4;x1qCvfT)So1 zQ#kvsVrT_oi-MGzN6{^!C7AHYOH=}zsnk4xV3KNvB{LAEeW2u*(}Af(2aj`!4*Jc1 zclg#?O~*J+0g#`NCU5T~7OM&(eM!H=leK~Mi>Ao3tQk{yKV=g zh1hw)XYkv|;ayeBjy0}AxVM0Cz~cukwQms7p~bG;3t|Kq(nCUXYo$#$EjY^rzIZ~E zUuG9!d;!vApj>ydU{@9h%o3q6uTc5-uIq=d*=^E*TegI*+CeWs?F(+q2ORpU6&VcQ})x_ar72?oaIw) zu$O7@-9X%Fns0# z$k;C48*?tkZ}LgS@gk$63fZJ*SD$Rgh+7JBQ$8*naDX^z|A_t$_kb+Bh+P|*nP_4$ ziqKuh-b;k>^Ltue&oLZ83ehS)j)uUvB@g=`nx&UkSWH{YKh3+db;zM5x0k_!B7CIl#!A{pS!aJob=N_ z#$pzW;rz5z0J7KDy~yLYRF0eF3H;_>?}#F|-s~f7qG(5ocdzo|TO~kfduBs6!KJw6 z)i3gKZ5bvlKh8AG42(IZW!z`*Tut-<;(=7geA8>-h|HgYJ4a$MX}SdY6|5yxP&8lQ zr^%-)P+e#8WRdgPj($_xoY7^>h__8{Gq;sacypz^F%_8H&B4kACDit)? zg`*&>@RIXmb^U#%CIz)~hs43bwMknpub=sqFjLD6a73lBRT6_-CJ$=$m*e{eNs`L_touDiBCsaLH0Rm1`!}z>$j^Ie?LS16OC25k3R+f*k{l% z`f{tYA877=y?qEeyRKB=kBQb+g?v$oYrH#%bcv;sR{WY1zv`5vIeM$vFaeSrz;+qN zyV67r8Q@w@JMZeXwXf$FZzNNvtGEI6_W%3fwRSci@K=~~?f7p|mCc*K7%vy>H7DV= zGmCaXn?}Nbt`XOl6Y_6d>^oUn)CrOm**_Dx@PJ$ zkzHZ&#r65v!8RG@M&uFF@z&P z1hXa?RzBPgVYv8&im33AT=5hNPR&b}W!WAM(nE|u4F}>pWk1X8O+suv2GKqo+o6h7 zGE+|uokA2Pjm}CP!3#hjt3Dy#DY(6!?_5MwcKNF%88mAI^Aqc8Izou z1`WxUYG>~sS=W&FJTGq5c(IF(2w_kXdI92KXDhpDs7Hf`=L5HTZt|P=+Ab8!uOWGE zxWUW_k}m=vCuFiBUjl>mo2gH(8YDy}>qi(D=v;>uwtf@Xqjcwj$_gi+_^J&DS%h^- z{dC7+!(VH9zx~2Bi{`LuIHk6={(o`{-h=A^@?&8Ouarq}LLF4dUQez4{UmnJZEKeA zLjf{qdM*NQX8TboQq?S8(*avQ=RCG@oGqnx5~(V=Y5Yvvg8&dzVFkDM=M;q#{A8&i z-nCEv>+d@U%X|ksqQM5*dcQ0COp70~e$656^!z_@ z(9PhWUR)gKKDyGCjbDiWh`WxfaR7lP-_vnVfXWy zJNT9#4$QyXqyD9m^_uL9 z^cLZ&v-yLGQ`s5DxB>*X?iKAC_D5q$D^fi~=V2u)vSFai=8<}&Vxe~OkGMO4u)dxQ zNJy{3sISO(|NJ1GF?u-Bemf-yM;#a&gsg)*iwCrUzL9E{p4E)qhS*c+mX z=|>~p99+8W2+${rlpgiDmEn}N=b}^^gH+U~uWq=MelTH_kI~-ZXmOPWhzJE@XWYF; z#NIej&o-3>N(;HMnX~q5l`;<<+!nSkJwWXH{0OZi&Xz5|In>$h**C=Npj=Aogh*l< z^h+L_Q-h9@jcSa%(Jf0b!X%yX0Rf{T3+=u;tL9<9UNhB{n7{*y-YX*-gWQeFAF20O zQ@DfAZrs_bntbxOZ6e5TG;F7;pb9>j{?aXV)vXUMJKpdn(Xehd{)sl<^ePcUy?r0n zBys^DE!oUQJAUwF{L~|5ML#qz`O&U&540(->uE%9^pw)-0YcUIV}FlmhG?QLt&_l0 zd>Tsnmvzq1z+B#aK9okePE~;1u8l>No8z3eT+4f6wx3gCbRlepOt$H2{{DAEW!%jG z5Vych43p2QY9Gl_^YEzz`4``~zG?s6hlQl`!i4sd0Sz?R1`CS{V}~vlDy-ptg3or) zja6W{QvKL8UDs(x_iUI0i1>Bp&WQVgG66JBwn(nv2|hKUqAINI9nsT%*Z_&~AwZsS zY~KUoKU$45W&GIdMl-zyj8keezE;60Z_*gy$NK?9_Heeyyq~Cu5zXyA+f0X^c9-iI zI#_QS!*|k+YAZwuAhAbLQM*W5U|4Bt?Qy^}c%ZvqdN!?)nx3@l5`4SBS^#pGIJ0V> zf{4kt@VSRO>l@GgH!s!j*tCS?NHcilM&(+77;ai#ni`iwW9F!q^Ihsi8=0_ZeBuVv zLHy~{+1$ARY8B-1cLd#))M_4}p(Lx`5J;_f^XlE&k_&};)F;&-K0pmB3sklj;R(XV zKGek2ZI-4U9|QN~T$T}OZDjliqjJ$GK-iTp3H!H1$jZHxdqQEwu!p}Hxy=MhtZq`wy;eK4+rCIogtgmshuWCb|l1Qa~mL z;zYN%%cK)qXe8fN_q73pp<1VRV_Mlke(H~wfmy5($BrrWB&l2k)WSYnb{K~(K%9u` z-5TVp8h@Kd=`lhvvZUz$d-3772rc5wtw;eFRI9}(PeY? zsyDsfd&|Eb#$uZRyEMYFgkRSmawJ*gXd!L=~ugC)~>^GfcE zD>ZJb3#u4d2SB!Fpjer=z&&zTt|IS;{)P4`RAc}3edap2R+e-*zp(;{!DiA;tFJru z4>D&A0qAh+@sB^jH$wH6RULzvV3@(69S+NW^I7anS6m*ERr?@ty-SwHcM;q+SE|=3 zE}D(ld>w$`-l7vDr6Ke-%XRQw7o4Uv3at3@gHJa;25|3~a}$Fm)?g9K9;Uz3;rl&j zZVC>HX{=hFmU~rC3RQ8)K_VZ5@!oqii^wXc9 z^w}vtAi4GSTnILgY|SN&$&=|BVB_^I4j2E@_T;BZ!ahLE?>EaNp@_SLj&)L`cz^!H z7WihByW^N9S?g%O&SYQ%5aq@wrz&{Q)4ZulL53fEMD>O_h>>=L>HAR>z_&p;K>KRD z4+J5<^J4U*5z#0$7>0HVkoeY{WY9X)h5Tn3UDvJvGH&5Er!C9K_SS*?kj_vYndRxu z&hzW_AbS{Z%Z?-%4~AN%F>btH9(jUQN?|+6~^(1`;)|} z)K+*K!6bL(?dKOS^JI35!Q}zsp2M3LkfdURS&+iW-S!tca&xZ5!RqEv(&taB6#WsX zg_5+2YD)osR6M-5a?f|tW+V`Y+GFwF?W3b!e!pkO2h9$7T^tmr;J?TiF0J=wcM@dd znJMVNq5q0+G=0<|^yL9{!a;W3Ov2AJl_@N5573hc7sZF)3tbdo>}7bn!^xxzeE&?jkbSmiwkN?Dx@Ur_83<9XK1eo+M;{y-lG4|Md}5tZ1%MwiCV0h&MH>0OsI z50fcCajCrog4ZiCqm82(TufTkhWz| zSJY>nUN)dyQ5w`AeMu(>(AnLL^KaLVKP3J(t&URa1Hr+Is+UHeRCDxI4`E-~ZB<+Q(CIoOfWPxBZ=po+|ZmS|}tC|4Z0 zFiO{&?x1T#dYzJeJ#0EmnWt54tX2&m=g-lQN5!xK*fU&jL!57z9pFgc5Yus6$j3If zn8mcn020FIr;o(u?bE(hy4zty;3kN7gVs_+J+EV)oQzp2p#c!w-xG2zNvF};`5LGk zuL)|bU>lI^62rG8i|H#7O#eTrus&*;v=1s)hGO{NLD)(N)bHM z55Q5{2%Ip!oc;{y1CJG9`@Ni62Pwnxn?jsSl(2FeH+eM-AVmg#f10PUa?jjbC$@+F zWzwoQDx)>;R3>sXY^72;V*(@;qw$jXt<{hRC3NLiVUBLG8j7Z2mN1ve&KZgSIg$=>>(+% zeYFU`Z*q6K#;l;khv0myX;u)Am-okLB%xuV&5C4;_}pGVE_aqasGqJnbfQ~< zI8_befqpjOD!R=GwHWqR>rtD@WSr>cumbf*TAC}-X6sIxOze4+E_}aYD_+MmaYkD7 z#-(^ggF~ys0kYVH|G6G(O>lqLii5WknJWrmeI>{EsN@CjTTS#ob~+hp95qkjQGQ5R zUC5_o3A&7h<2|&}JuziZdS1FbntOR0;cvM8MD5_xyM4b2V+%lqb)w~gN!mFhtU&Vp zH-%qH&>LCI$Opmp4~de;%X=@Wpt~;MY4+dGK?Q70mc((w#pDwc&h_ss0uy zWFAD4%5tQLM$%|-jUwX~a+3f-90;|*Mphq(7^o%+8f=H_ZPEP3Bj50dGqv zh%3O+F}*F~5vs$}7z^6B$074h@B9{MxOwsK_sqhQU$mP_P}rNeu*irg9oM%q(0I}P zrYD1))Z`5*PIv}vd(5k_%YqOxht7IBQV-37gmj#8}I+~Ot9Kf&M&dF|Io_vIRu_{1C{#^XO3O?kA zuI~gb7V0my3n_BAPDS`}!}{p~sW@_B-xHHYaKZln2mCTwnX9Mq3d-fk{^m90K8fzS zBW(QE_pL_y$LLRdJ5*5CsZ^m0H!N%`zs{UdC=)1p9+pX-qN4D6{_UgDS(u--29QWt zeq`#>;MAI$G@kD*@Sj44?)JHjhBQ9f2~Wsjib2`9QQivokI&wuf{w6#)5csj`eS(; zuf&9gu6m6wZMib=;Uu9($HY9Ok0O>fp%Sbp_Vw}|y5b;c* z&iOtAu@uHX(iwtHaKNT2aR3k{TqwglyN12qjV0UNmw^C3LcdzJcd`|nHL}{7JmCs} zD0d}?93J|8SH6uXqn=1u356vqJ$Amr%&1Tu_RX3Hm1c#6F$2Eh{>WfQ>8|~6y2&G7 zs^=JC>lvdzCrYA+LVW;a_8t3<%2-MIV4TT4pDAwm6b~N`%#P$hDg2ViA?|h=AcUTr zvC!~)I+(HURn}nh988K%PGfZnAz6#~9JxNvhM%upP!NMjoEwm0#sd!5fbt`|_!S0`Ou>xiO4m zZEn!Y(dc7ZiR5awjGWd;-;4v?G}B?F5Gd>93^~ic$xwVCnJjZ#4&`Vy3&Gsor+-l* zDO>(1$H^-P2mzGMslh8QP3F$?*v4_L_F`O|tO4Bb@2pcL#7~a@$0Ejannc`~xKA4P z&8ghDFvCC7Q>s4VO&NnD^FA|4Q;`5iY13bbA6L&2!k*4E8rKpK_kd3-nv`WTy5%)C zugQxCr8jG_Mo0+A2u!cHNTlELV4t9GxfYK^w^3VM4-fIW|4IM^QsY!DRN2!i%r9qS zJq6dHe@t3d4-g~I#Tbry zV&)A}VZX}$^Uls%MW;9eH78D?BKf=oRGyZpCJv`J;2N-z)oz2vy$Ha!uM(m5?Ld=_ z`so+67F(U1B6DkU%T!Hs(-!)InCOk;Q$&mYp7bnZfannpMc$D8M{5?ajFF;%{0}v#!Pv`1mQ99GD$~F-TC?!huQt-ub z;D>&PxI`JbJoo_VZf&rmFe$p0^9<5w82p9D@H1lz+;jS{KPZ$AzU0p!Kyb_%i#$D& z#>>!h61YT>Y(p8~bA!6bNY8Khn+x7XL9s6Pdq?(=^u1hw)mTLV&-1TXi`cO8SdDyg z%8yOeLWWNOSxi1+F2!79oSVkKu#})dKVKTbz3)*9Gr+1>m3`U&3=pHK6W%)Ne+U)N zw1lT;Qg<7ODcV)NaE$bj0p`rD+ztTAIjj_9hxc`9&(Gsfde)!W5h_2QQpL|4VdnIR z&7nI5$m|^)(s(S!Crb2Lcj+A5E#9>LZhj6J8>EXrp5nq2pbkFSx$aph^vSTn%GlOd zG=`;Df@g?Prhr~9G_?ll?5B|2X39E+MpV9^r$B6H^Rwj^cjhE6gzv4 z0Hj2hy|iTWx5)4g>K+J=8~P$- z-rsvSZE5vl`FlhL0YtT8=F@MYOk#SWsmBx;?@KNo7k44gO~EQpsSx*S`E-CF=4$$u zo(u*HA&s6=d0CFzAq=UeIMKj`!}SIm3g3ZBGw9|nA#M!9*)F+JkLuq6j*59j!ei_O|s> zVhKM6Y2gM7Cz}YL!gZ?d-Kl#fn$_Hu0kRwbK`tP5XkNLY#GI7_Z&zWP%HB})N!KKC z8LOz77YiT*_fLm?5zg$T5_O(6a zLyQHE!@p2jHtBZ~owSbeEfhd-C7c*0;CY}@<2jTK%(z4XSyuTabA<_}MJR*YxaoTV zVpVYW_0mEZ$!}g#yCQWM%4Cz$>1a?8>uO2FdcLw2)Q0|mE760lCzvHl@aZ;lO(gSD zlGT);L*FLEGHFxz5wQ=DaHP2^%c}gV^94nT=pa<8JqZKfz{U8jOY8%f7W{Njw!gY> zjYK5nom35I^v&#D5ed)=+Z$}c>0^Gcg1XK!1dad7PVI!m%XZy9=O=RH=N+4~{v7>4 zOP?>t%>0>zxx@zQn(3K%ZDePK`Y;oO?N5aB+6^r%D)?!E;Bn^UQltms{ z?>l2!e~_en0P>jmH(ha5+rPomx5(TlAo6$m?!?-BA<@FsNNO&c7br>ve5YinMc}I8 zz%Gpk-sT2{vw)DD^jYP=d#RXBSTQUbAV29k8TCWKl_seTewDIfQ{qP>$DO>n0dMN1 zs^V*D1ZDdVj}l}{rew1wyiUJ~3nZ-6c#VjIE^v+FoG%E%3>l!{F*am@8Xjk@`}Z^< zwecNW#6>n&N0`o(l&d$d|FV;Y3?RP>WU!UZng>~~rX(HX<7@mf53*s^@mwEJx{vL? ztbzhOT^7T(%pUdk_55$;9DmyMFu%*b6vCrJa@_m~VlJ*r0*DktxSUn7vCNMJUE;fh z)Wk6MG(|*nqm)!u4>?6ec^-hIC~f1;iha zmu{IRhsaMVgYbjhkLSDkV)$@Q1NETGXuqUa6IPA(8KqreTIKYINL5t-^bZ1X9msnc zW9p-PT!4@}%9DSjKsvu#XkUJ&Uc2$ldDEpt6>mUCc>Dn+qXSBx;RS|;Jk$ia*fe+( zi$~LOyH#(VWg<@RM8^PfpHi= zSKAbra&to0E6pfGcHTuj@b_+VqBwKtx!DsSB(Z`SOdMi`jWrzMSesxDvR^NhfK=4*4R)dB(M$`LgoqdJQFEmVUpI+zm(PCq1#4v>nP|?5C#NpG+Xj@U z7vV;Yk;QX5!SQFZ!G(Pmoy~_r<85+<9r0s}KWCCF0p#a*6J#4{SR8s3impa+WOs*d zYjQY~hT>H8q|VJ1WW^s2Gfp4nco{{M+u&oeUBx3a6cwQ(D(pl}3}HM@fc#?k z+$#~U!Ikcy$gnQLupaeki}T%rEyj(?ZpQxP|93s=u6?kQG}sodUJ+Q57QZY7@~TEg zBt`eNkyj#7M_>s9M{#?FC{%@tgF2hs8N+Nk4?l425t9kWPZC%%NpaS%%>;;_C}+OJ z=IbP~R1N)t^-lOpXP0M2Q_dW%Ox_|y+X|>8errDNsPHQ*A+U9EtZ6|B*MPpy`~HE2 z=vf_vv$80+4iHDEYRk7+_)JAt)5f=R#%%NijWx{pS@+7ept?XixltN=U`dMAs3=bbyFsXz39>gK2|{B z0m=c2Buv)0pO6)DTCgv_LkuN|H;yHkmVh;fhCNFwJZ&Tc#8EE$D`r*0$uow2vDP>o zOZx|Lv^s4*x*s(~7@ zXddKdPrgK3S+Dr3v&IxsayR5+y+1#S9!~gzVs`IJ6D?_hO8`EKxnjE?keg~MNIE-x1ErtkYFqE<+HAQ z35Rv55R_NDjo^bN*2&a<4W~P z<4XftnNVbqTc|MNv%l$QQ}u`_^|M-C8hMpwQ25|bZfLi&d56!puNe^>)+v$S#?wMl z7LDtpGtA6t_yG!tFzSm!yN>cs6_1_%;7P*gn%#W+gO6|oJk~=#gf)!f00CnMn=Sh` zFFmkSoLTqvr|oETQfY(3n0HLYO{#9iCFm0^$e>1H*JT+Bp2q zAjR?i6@ni9MW$uzHS#^?&(RG)MGyNGnzyU6r{349$dp4M{q86}2CwIAEE~F4>JDcb zT`BpGQpJoJJm66EfE;ocq8nmWR4`0fiL12f8=H*Uc)Y@(DyAPzRVx1C-2E>&b}%iu^^ z#)X4!rQ@N+KYgn)^BPc#g_J`e_4(D(O9EDOY>WDzFY(8i<~3zTM3q12=HgX>y`~5K zltUmcAhL&Xf87S?Nn%)X7Ayea)%si@EpEBFkPlQmvG=Q#Lm~;U_T)Q`eM3AY}J7Zq!aoE1xv_Hq;+`%LdM~%F*62a)542O-Je= zK$JruU8v7cmq$m(-meLo>hu9=t#rK)59G9)ZP7*K(Q`LhltUngmsM-bTHlY}Tiw)I z)5d^oeo-((fjJ^j53w;AUVayu5kD4EbU!K<3SbH10?CEvoWCm*k}Q{>8_XLm*YcKjXUC;7h@C zJW`2Pp=P&!{k=Fd2u}d#*Ot2IlFF1rAmYTq4>yb5i01FR`v4njaYzltUmISDbT#txxb~ z61o03N+HGja=SQ(l@2J+k&^IpRDTPULm<|#>9*OenuDIyL<`;dk>}(3kPrWbsjQ*z z4Fy}9P=}O5AUdf2Pys;B&eCwB?OABshi{bj?f9%c;kxdv?EldH;*>)m#LCOXn@M1e zigT=mca_$SOq+ViNTAeV->!>9OH|JjltUmMx)LSZ5_I&UwRy>X+7ZPwhc^v|^~p?= z90&X#nq@GQLm*FNieLrJv`(Vwf=${gxp|;~KnW>iNm>7?M8rc$nMjmFAT12z{ClXD zDXR+G+~I-@{x^Ahb?lTFZ|>;_?V(#*SCm5_tV^&P;~jsh@F;uTrnf>`qA5v`V3$hT zLMsb>`9a6$ltUm{Y6&Ydd$@hLO^CWk8w_%Pw)h}iUZMIdvSr??i5t6=WsCuFluH10 FVlI*UgQWlf literal 0 HcmV?d00001 diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 5acf69caf1..1201156ceb 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -146,6 +146,53 @@ LMS hash-sigs interop test #2 # * verify tmp/lms message.bin lms_verify_test:"0705ba8297c7b9fa5f08e37825ad24a0":"00000001000000040a432454b99750f7b703f0280f92818b0570d0267a423b377be7cf0561305d4ce987b9d8dbc1c3f8ba410bbe6b921406eb802688d2dd8a1a6fa4a124cbcae9b5a210f583a956384c06311953b038b4ad2c2808224fc3a6410cd3b89274371956bcd4253a251cba6409b09c822e1d29d7a037648a6f2562d0df6359a043622f256f5ac79736c08fc4185758ff002a8397e560d5812373946348afba2ccf2cc0f3ba741ec076d4587a54b8b625804b814c30540152a3dc843a590c94cc23ba857e4c458c8ab687b5b9b68837ee890454cc19bb5f42a1e6dc051803fab50b440067a903013f675a774b5d02cd56289518d65f869f22b2e2b58d499e9e3929ec5a9f5d6d6e03cf91486094aba7c88491cde35b81c175c40410bc402d20f0a73a4da844d3a1d47e57618b7f18fa5ac85e877b5faa1e0b6733c2d96b2970fdd6e606435e3ec50eafa88f84fb7512217aa4be5858a140f242603bda634d76c484a184298c4da903094468d032b88586fd2f35182405cd85115af6a0bbd431f2e44217a1691dd8887db91d3b97264ff552ae7dc110a3a111f2bf74ce42079055dfb8390a16d67f28b738f837aa7880f3134deabcf6ec74cdb521bff44df61c999bf7a8ddc43b64812cd4f3bfb15104867d5e585d1cbf99738e0df92660b3e9135a4377d1199b8b97362fc87ce3c99db3b8aba63ba35eb353e5ec79bcee82b9ccc1b4f7d1b8ce7e5f8813d007be3d0e45cb8e7173337a5a7c4d32ea5116e0fdbd7846ea1f366a531449c78cd7a16ce5bffcd6cccf54b7f249a74e0df6b07f6b48db42eb958ff18b06995368af0cadd82f44cf44e4b53f0993de5f06b289bee41cd25f90a9fbd1bfb1ab2451c96b07adcfb5210d291dd505ea30e5d30395c8d84eabccdd2c7d6f28a88f5e5d245a6980c57810cfe17c9a37ef5e79b7b9ca755d56a789d21985372bed42ae2830d81ebf0fad6c721bd1d3ee91ae363f40d386aac23e7c0db965539ce9bff38f0f24bec3227b5a24f4cd7fa71ca9d306faa3fc4726cdb6634f218897b79a4aed67a58799285104eed74703ec4af6d5738b27b4d6fb71e52c1149069483a7cca6c3fccbdff77312ff5c635d8b0ccd53dbaf7b498727f7c7a70d3fd1c3f217e2cbd0dfe91258acb7f79f53f56012a82da997ea777b76dac0472e5f9830a93fb09703b1c0e45cbfbf641de94fcc6c609f02a5b31ad5821ba6cd48829fc5e0c4ad78e11e4cac8efbb1b170c794b7b131b0c1c4e39fdef81db9e7acced5ec824aed0c4e6b57fd1add4191e87be1446c7c519eb671205ce8c5855ad7a2b9ff7a9cd5c45336f508d0f8d2c1152dc2656650bdaf8fced642f3a4d445b5fc49910bdbdc9635de0086ee9582a796ca9f6052de805f41dfbd3e94982a05cbd36bab583dd5b1586ddbb3b1a45f1a265bec062c1a50d220870c0c622d852e650a67f31e8eb3d19e964de0926712b7f429ad05024b8db51eb6702c39580f62f037388862251bf66f02edee9615a63957eab75b28501f9f26cecd09a5c949127c9a3095036667fce8e45ba75568d5160fa1725a9e0038145d948f437640dc4441000000066e8db13a9e79d10a4e067aad448a1847b5489a62cde3054ee1e5ff2e37549d516771f06926678fa50aa7167684c1de108944b2c4a3358f5e926368009e4500a8d4d501124bc25a4c9b1cfb954503f4ae26c92221e39c680843ae55cfca972e139c82e2e4469a703a1866fa0e6d76636591f4ad07f7d1eaa19077660ad46a6f9d534970e6a49e24621b7c7c283253dd22fb24eb7819fab84bab88e42555d5437d5afe06615a7e0d103cc8595616690f1337f4345cf418724f07d0dc4d2c0899b691691f397202204ef34342b5725dc6adfe549ab0b887572ad38113c407f96fcdfeea0ffc4f333addfec296169e53e3c5b24797a20f3b2f043f5e96920de9927da466f09389d3e52a5665f380f68666a019c201e710ab4c168d5ac952a02d5909a6fcaf498a33e2124e6a828203744ee3fe70465adde0cfbccc1b4634541638ab":"0000000600000004e18760ef2c86192aee88579e376f35cd153419d622803a483e79f6d368629308a8ab6ff663c4f108b2033af290dcedfa":0 +LMS hsslms interop test #1 +# This test uses data from https://github.com/pmvr/python-hsslms due to the +# limited amount of available test vectors for LMS. The private key is stored in +# data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv +# +# To reproduce the signature: +# sudo pip3 install hsslms==0.1.2 +# +# from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE +# import pickle +# +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# private_key = pickle.load(private_key_file) +# +# public_key = private_key.gen_pub() +# +# message = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') +# sig = private_key.sign(message) +# +# print('lms_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), public_key.get_pubkey().hex())) +lms_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"00000000000000041394a893e40be29923751880ca3cd10b5a67c2356c87c240e0733c3a3781b421f89dcedd553f5c1c0fdf4e53e4e484766860bf77e6a1e5911c9a389390f7d62accb581ddd4d6479c88a9ba3c20235805bb544db1da6667c5bd6caec6a5cc0afb02ebb35c1db7aac5d16446d4f8fc3518ed44ceb4eab20974627ccea5b1571a292bb2fa08ccb284957605083bfba07a33f233c66187bebd4523d095e21546be84ba56ed61768b9210fc754c78ca2d6a788e1558533d5407c45b04a0bbe6a20d0660efec80e1e468874d81c98d81acc87981c236b68695fbaf70d188617fdb86a5840c835687249f688434159035778260026d536570f24a422d5255d2572603fdf631668074dce5fc469710aa99a1f21280708e73bcd4e50492d2ff1dbaea1058974fbe9bc393a4f837987faf0175b814ebafa02095bffee2518a6fbb3555de9b3ff0c87c0c7b2c61ce3ef25e70e1a2ff5aa6dc7dfb3533e53192bc68807727b76c8752bdaa2c8d0c66e6bd94ff4df2f9fcb5609cf9bd04635743340736b84a98c3769bef074c081ebdd0fd17e853165dfa4764b23c63dd8a4a8c10b58a790ab92f81a32973f0f60d9f33d801a2c476190a7f8521a998220d8f838c3932da4dab89f62e028973b1891aa0954faf3da6174ea445c0e6ec27a58bb74000253fd3d76909298d44b3beaea58f130102cba5d928afcec92991f9483294f0fb52c16df4e98c0839e058d064921582b144602306d0a1ff623bbc1b1de106045384cb0f20db3198d99b266f83cb7c4585786477cb38b140f7cc48fecb9c5c272df2881750af48da8ace04e1b109de3a295c91373c55e8dd36cdf455c17a0b9c27cbbaa80a7571cf5d5074c384948a7e006ea6346e2e8fd1082f0d7a498c6445ed2da31014f4476e41e1367cffac8ac93b7a59bab5e23dcc9130f8e3264b2920e503246e11fbb15b599e58350cdd60e3a370c7cb0a81e73fa17eb2f12702ff3c1cb6a75d7718687d545cf9d00d4bb277905291ee86f1dfc045d9c59d6aca2faa90d2654dffc652fe89c4b37048f8c46a6410aff4e46c281c1d4b2f6ea1408d0615bac721ece31a9a69c70f3b860d730996ad735eeb376022c4828135466101cdfb2c88cf02864c40bf5c5aa63e44d58c8f28933d8d3c53883a95f4109a185b7fe6eb1d87d76823e63bf9d72d96b60d2cdcf942ca06d4f278711eb1eaadf11e9bffc7af361ae0c0fa23ba2bbc2f673a05c1ee3f3ccb3bfab4dffc4b9c234b0b9c34fd1b5f0d01c4e10cfd0800f90ade702dff2c893f098de1637de094fd959440009ccb34dff6cab72fe80e839e6e89551274e6cf6e862532f524c804259a0c8e4622c106df6431dbac870cac64f7099674c8050f5149326d961af7486e8229f5b5eba743ef78dc56b4f3acb1ed5029fba223223a5e835abd61409316a68c899abe85c0514642dff696da0be97416d774fa7f5dcc3aa2c8469b47516f7b27cbbc66faa4e62b6a3201f7976ea20b89ef349a497967c093e3431df9d619a11ed2cd930324438f4cc9d11654e0c9d229d6bd239487598a3482f63294e9e85c29a576b1c86d0884000000064c6b6388b7436123dac99e0ec7fe53b075e2ba9844505ce1eb3c7f70332c6ac543dcda2e63b26f5efa39ced6095a54625e67ab25d3df068e903eaaee894ac0f1fdeb4a2f1390f655db3608583eacfb0be4282f7bd1c42c5d748d524d7cdcd45878dea56cbc11a63bebbd74a5413ce72a931b1d4794c78c4cf16315bf2e055bb3305fe0272c8b916856cc27aa7a773ddce62afa7bb4da76c287e0ed3ed10452512de82c051f17b49c608b1a259e16a3812c0de684f2cb1ee59296c375376f146e2b0cc299ef41ed8e6fdf0557ec8d95fa026970f8d47c8347fed1e37e018413c5e813d1726ea18bc926ed02840349ab3b2adc8758a9cd57be38e9e76869762a81bb79721ca1c031c9dfdc3735fe9318064b62c2a7e8e2ec099963257b0705aac812dbc8cc3fbeea81af7c0d592c7e2ad1c21e877d4ae392b13ac1b57a8311d406":"000000060000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":0 + +LMS hsslms interop test #2 +# This test uses data from https://github.com/pmvr/python-hsslms due to the +# limited amount of available test vectors for LMS. The private key is stored in +# data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv +# +# To reproduce the signature: +# sudo pip3 install hsslms==0.1.2 +# +# from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE +# import pickle +# +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# private_key = pickle.load(private_key_file) +# +# public_key = private_key.gen_pub() +# +# message = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') +# sig = private_key.sign(message) +# +# message = bytes.fromhex('92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1') +# sig = private_key.sign(message) +# +# print('lms_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), public_key.get_pubkey().hex())) +lms_verify_test:"92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1":"00000001000000042e758f2a0e8f301af58847b6973a15fe4856b91af88a1ff601e2f0e87bde33afbc39202a66e38931fbecd7d493cf957b37eeb57ed2e4d8f693b97adafa8241746d775cfb9471688d935e090581eb8586e7004d6b8855963d82ccb6f79df2d93dd35848556da6735def0f0c6c8fc969c1df692341f6a99626eff37d20226cef361c8802a995fa43535fe2336d8ae468c78eb6a7082e27c2c6317c034369b588e3d65a2eeac9804b427702dc49f681a841076813ed407399aa778259e7c34c750baa6d296a384e1274facaba9e2214d197628f5df7b2bf3896fedeab377b8edb775d6e8d67f1474ba3066794447f8f8e0c13552a007557a1f1c3b9bd2b41d9b446c6bcf36c828fd4c80850a31ee603065f5cc90d198df03835195b14e27da7bf727a16081fcc787f1dc7fa6da8b9ff908fb2c02d6f2a183486de0e39cd7da7fcdee0c8e96876c56ad9b0b18e4e4999e2c81a618aa4b27e050ce488dbb1e79089131afacc446cdf15b625f4e011f8d8160bb93f326bca3bb56fa41e34893d55f17d746fc142297997c5dbbba8f6b6c80678168ba455f12bac6982e5192de5462a46e14a45a01ce9e07279aa301dfd0fa9a12c6a55059b19a19d7afbe99779ea130ddeeb5ecb67d2ddb6c1c5d198e421b78091efa5aa429e1eb052760c0d8e2eb0c0ced000e93f7f265611a385f77c0cece0496eb29010f710e70a768d3713f0b7fc60c8ce372dc3234f27c7a1c2776a939ef70c7be869337b967df2223d4f20dca697e3bb6d0e53bbad153ff08d579f60c8535710f253b90e73ee9a19e1e57df66ec6c85ad1b4cea28a9d62fc5a4cf130f70b910dbc7e6f0e6b0cce1a1b5ff106b7f0b101405c0989084b2c94977116b98d15d6062a8d77d660aa813d432cf3338484308b7beed10236081f52da44eb807f9a75fd4cc1ba998ef3fc2e4791712597c786dd46431468bb4a1975a6cd854a1da23912fc99160f51df484efc9371c2d8e028d9468635cf93226f5a8834d14cead59e5d2a61dd6440d7b91c903ae8823907b75595c4828c7710036b347dcfb67f8561e835a53f569c8b3a1cd4317b2a6b2243100ee3d9468f9191acf2276d18dde9ebf2e11a48ba1fc1a15dc51091d3358d8d1f65ec7d84b97bb1669a9141f74065454f08e5ef25432b7635b8ec673ca70e4b3c25d07975a6fb725a56f28c1b5a81a6da2fe0a2c3474275926f9819a25b942462a68097e1cf6d9ae94f6b1f76b54addaeda04f9fc8db025fd6c453e1ad928f9323bf1381fce1893938828612728185d22a3d45d21ce762c066ab53a582c487d76d431e5b8f65a382142dd823d4620931e5572a4e6aee69986421afa119634bc8ea88aa6535c4d619ca0e0af94934637bc0c834e5e2a7a2853fa73835d00e13e5f26ad085ef66c8efb60097860cb199e03596a3b8f0ec78690d527bbc9363dd9702226788b1529871df74918ae2a4e02745043bd5ee8ab027826fb4cd54b0c27d99076757a1b41e2725ec02adc7926e8213796a8aa1740a2dc675437771e0364a83b0bd64c9620f6c203d92626ff29ef736eac0e13c71fd1957333ee0048000000061f7b7d6f916710efe9ed625ae689c67b3cc1cdf0d672e58c0b86b3839bbba2c243dcda2e63b26f5efa39ced6095a54625e67ab25d3df068e903eaaee894ac0f1fdeb4a2f1390f655db3608583eacfb0be4282f7bd1c42c5d748d524d7cdcd45878dea56cbc11a63bebbd74a5413ce72a931b1d4794c78c4cf16315bf2e055bb3305fe0272c8b916856cc27aa7a773ddce62afa7bb4da76c287e0ed3ed10452512de82c051f17b49c608b1a259e16a3812c0de684f2cb1ee59296c375376f146e2b0cc299ef41ed8e6fdf0557ec8d95fa026970f8d47c8347fed1e37e018413c5e813d1726ea18bc926ed02840349ab3b2adc8758a9cd57be38e9e76869762a81bb79721ca1c031c9dfdc3735fe9318064b62c2a7e8e2ec099963257b0705aac812dbc8cc3fbeea81af7c0d592c7e2ad1c21e877d4ae392b13ac1b57a8311d406":"000000060000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":0 + LMS negative test (invalid lms type) #1 # This test uses the data from hash-sigs interop test #1. This test has a valid # LMOTS type (0x4) but an invalid LMS type (0x7), and should fail with a bad From 8b55ba623e268a4612cd8110f4ac7f6d86c85c2c Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 09:28:26 +0100 Subject: [PATCH 0652/1028] Source LMOTS data from hsslms So it can be reproduced Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.data | 85 ++++++++++++++++++++------ tests/suites/test_suite_lmots.function | 25 ++++---- 2 files changed, 81 insertions(+), 29 deletions(-) diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index 0845a17d09..7ae80e92f5 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -13,26 +13,75 @@ LMOTS NULL-message sign-verify test # signs the message, and verifies the signature. lmots_sign_verify_null_msg_test::"00000000000000000000000000000000":12:"be5fa89144f2d665c66ead8216bc02006e0eccd8b3697a0aea44f6c93afe7955" -LMOTS hash-sigs interop test #1 -# This test uses data from https://github.com/cisco/hash-sigs due to the limited -# amount of available test vectors for LMOTS. A public/private key was generated -# and used to sign a randomly generated message. We expect this -# message/signature/public key trio to verify correctly. -lmots_verify_test:"C80B24A82D52963AB241C84DCF0EEE55BB24F9F0":"00000004DB3B6B24FD191CE8894AE3C4E2CE2DE0C3F5D508691A9162F37704E07838488466CCD746E55BC8E3055C7A4D4DA2E10775DAFA2E8E5FEFB1CEB25973BC3323B61DE5E2EA7DCFF15DA482320F958023CA2E718C69B977019E8F2FCD47151388E2E5E11170AFE93BDEB508362B3A317835A9DDEB18F0CDCCC0731902DB3D37F441C93A490DE53962A915AB5060A1C157D61DDF061F272362AB7FD9EE95AE48D3448F204C81A3F260792784E1BFB49871A27C09CC549A406520F0B40BC74CAAD082EAAB12C994B8495B8C80E96384FF2222255BE6C4EE5AF439534E616F9C0B53E951F69D59BD0506C0C0366A679A8329ACF6E2D1D4E4EF49D35375A8EA46FCF3C9B2F8E033C242EC61B796E43B901407077A2AF3F0AABD2D0CB9004F10D91B57C2D5E8BA7BA9268FF94962CC102F55B5120D7D2F7A3BE281BA01D78895ADA2F05B77967EDA0E1EDEAFBB9BBC3D68DCBF682FBC70467FA2BEE5DE65F54247C4BE5BEF41F5108B6CD09E7698E3AAEA04B60746EDD0E2623B66B092DDA21EFA5A0D36805D101D805CC06F0E818B46059B3984C8B8A526C4239F66ED34B8CA57E178DC5E7B8D2BE029114B4CE466E2B5A081729B3F3A3F3845DDE177062F201C09125ED3CC381AF35EAD795440C421A136F941F09F3E4BA9E0203CBA875AF477AB0246342700F323E65DC327D27966377D871FD9C58BEC8797DEF35E1D0751A554719828B87332F601884EBFECB63A8D4F390785B3826BFA384BE502D2322C919ABD12A486C2AB124DCB7B74DE91241A30EF0388411E52145A88971C6C0A4E7C4F23EDD8D6008065A3D108C6B1EC5219BB0DFDBD37EE3A7A8DD37E3563A5777838FCA61E9E744813F39CF70B5A0F50E1BD4FF8733A3BDA76D2135969809D91A9786F22DC2ACBA4E0164C411019EC77A0BD253A42AC7528FC7C0DA1711FBD6C23825207060463080F9E04B7D819C8B150C22B8BA87C6277696EC409369C48AC0E3233DE52D31EF6D2207D2B57DFC2D0C43BE8212EAE6CB1BACBC2D3568E5527A14065D5F1F56AAE2AFB5FB1CEFFC228A30692BD030C71F4872DB54F2632CD919DA61576CF58D1EBE3D7988183A9C789EB74A3D7F6BBEBAC035A43397BF684C9E1130B252940DBA4454311A6A3D54D9386D48E1D5A3E70944EDF725AEDC5440CD610F79AB05A43C917FFC15213295EB8CB8432B6554A47C2AD419ADD52E0F5E0BD7A1E0F873257E69F8647F3A07093387B7A64C4812CDBEE536E45D531F89653AC5F14A4715CFF40692346FE6CBF2F9B92D9F1101C379AFD5E6154605059C1DA463B407E79C139396623DC7F15EEFCE424C8E214C6A645EF002F90A230D8F62177CBCF2A688D4F822B119835AD3D3A619F46230257A5AD59CB0924B2584DBA96AADE0A2487E7409EE5993A4F0E3DC46C10B96595CDD17D72C35EF4A52C5906655B0AE649B5DE03B7D46F3839E808761EE05E9300050647593C048669A952324B0188ED225AD11BED3FD94E44E134FB9D6DAD53CC34ECF62695E30637C4528C450D62174E2F8ABA2C09F134412EF889C24B36224BE4259B363A9D8EB89BAEE16BE1898D46":"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A":0 +LMOTS hsslms interop test #1 +# This test uses data from https://github.com/pmvr/python-hsslms due to the +# limited amount of available test vectors for LMOTS, and few implementations +# providing direct access to the underlying OTS signature scheme. The private +# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. +# This test uses the same OTS key as the LMS hsslms interop test 1 (leaf 0 of +# the LMS key), and the same message. +# +# To reproduce the signature: +# sudo pip3 install hsslms==0.1.2 +# +# from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE +# import pickle +# +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# private_key = pickle.load(private_key_file) +# +# ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 0, private_key.SEED) +# ots_public_key = ots_private_key.gen_pub() +# message = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') +# sig = ots_private_key.sign(message) +# print('lmots_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), ots_public_key.pubkey.hex())) +lmots_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"000000040bb462a8f59a277c1706ab69b1a40b0d56a3ffe1ddf0dfa890096c7a9c48b360e1e8f7abe4dc1950c4a64545ce6c0fe2a34477ec40f56db4eec37c1a2168e3059d4338a4eb368a64be5f98b5452f2c2fad23dcac585f5fe308bfc3df0b5cbc6cf3545236ed6c5a863e677521b5b5cee0aa1e755c3bbf5fb7326fac1a88cb12dd7f8d68ebe8bad07195a12fa11299073731e67f2452009252c595fc7d9285b90aaa912eb6cf0b5debc0996ca55ad5186702b244a616c4b9e0ceeea229e1e821c1ab0db906ce87640d128f1d8c4742d9baf340a8030df726a99a9b97f139ec57d8d87efdfca235f12de64e0a993804b95227cdfd26220a84502e350faaf5f91f3f49610eda211f9409005679e32068def22a2dcce3d226d0f68c4abc727b90d9c01daa05db24d7c0c9e9e48202e3420992ba78c36bc21c45cdf218801dc7053e3cbf39c141784e7a861671588622d540187912234ce628ea9cbd1800d215641163c762d2fd9194fa54bd9b46c83754579476398a5c2fece4642f1ee286a4e9a310b5e23088c75a68b123044c1c365c8b53fe9f895fa5d76fe1277c7c0f2a39f5b233f7d2acd5358feec2255feadb1c2513c4351c9bd1afe22d159f2d392c83bf7ec26b59e78330cd346adb85ef62fee3da63150ab5e0d7ce5d0ef353895360017faf3f35aca2cf3b8eda65389e2ba86f78ebfbe73382dfe9002331f24e96e1a6e56e7cc99ee848b82ad1ade3229e9e28168acfa8c059ed03028e8c872e72ff4cf8a50b84ade908ecf229a26ff1007c476d1aa376323fc567c9471085336496b231b5245a43c6c86c6a71c1b1fb4bd87c2d0b026bff55de121620a089ed9ade51c3bd91c703844c180ef9ad0ab550b9560ba9f1452463ce20987a402213ca5c16c927a0a85091dd74fbee22cac6b1afbc7e7dec229325c25ea3b3cc5a1c48c80665f9903e482b143f7cd051bdb990355f79c62553453c72ccbcc578df77069a7b0cf6fdc6853ec2f96fb7cc100216ae1b17aa20782fb0cd0f261b76a48b5d6f7bb48fa5f78c02a11ee81a8c0c81183910af770f2e907ebd5b2dc3a2b83529f62da074ca73c434f8f30b68a5dfee740f78d2c13b53c904e46dddf723923bfbffa437a4130c8c9b6d79a57db1c408b9c023f80fb3d766cb915e722f3b3152625d77bce3ca0c01e77f3750d7d1bef1ddda8b9b4233b09c89abe5913db50847a7ea219c3f406aa4cf41b6310bafa99a7b14f94b8ccd4dc7edb1a1e963ce26a53f3be71b4151ce5fae10ca30055e754880680e38cf2f21251f229341f7af9536360a428c2593c43fd2ae471bc1fa2b45ad55742a2f12f31eed6cb67945a898650c13650c4cffeecba8655f87e49ce921ced7ab00cf54eedf0c70e5c6cfa7f006763f0ac14d80cfb1662321cdccca8b1adf426eb9ca16ef2b978bb9ac229131fa5c1266a4980449c324ebdd8bcc98916089ee0b6966da7dc25350bdc758431884359d02f5fa567b39f49a6e410da2d0363944a090926308ed0ce7d565e6c4585ea010bc38ef1c976ae16ec1fbe6fb9d4d50e49a7be8273d2d56bf4e72acbadd90d5f8dee0":"0000000447cc5b29dd0cecd01c382434a6d1686400000000761e8e577fb4d12058806fc7bdaaef0ba64e454dc59b0230a77b43bbd83dc8c6":0 -LMOTS hash-sigs interop test #2 -# This test uses data from https://github.com/cisco/hash-sigs due to the limited -# amount of available test vectors for LMOTS. A public/private key was generated -# and used to sign a randomly generated message. We expect this -# message/signature/public key trio to verify correctly. -lmots_verify_test:"85A77D026E8C704B14EF665DEB0A648350FA8859":"00000004BEEF900CA9A14982E011A5A94503D566288932AD4B9CB85D1551C766A56F788B0D223FBA0E1AD722BE48365B4CE5DA21051B3A79EAD8C1046944192EE51E162DE1E9AE9B13DD8FA90867A17666CB8967F7CD7F4F5383703CCFF555EEBDC8123AF3C4E39D0A5D61725B6A7F23CE587D256C08D31510BCD895106CD524B432A9211CDCBDF5ADDAD5F1D76D428A76DF2556FFA8AB546CFAAA7F2FE86164B976FDA2940498DB0D1A2DE29972FFD55D83E7CA3318DBAC31670565A1E5F59E36342F887E0EF7855AD93CA5F1951307D79EEA375168BC35A3A0B053AEBDB4D7157AD929B0D7DE9FC1E8C32C9A2D679843CBC77560EEDA5959D0AC8407648344C6952649A303E7B6FCC2EE979E1B2786B898A01E2918894DB4E37A0ED79A30260A45959B4BB3016F081181190CB740376389827B2D56DF7EC00871DC9A198B74C7C6086C940A845D54198F2D5DD7A47F97A192F33A85AAA1304A3251B82AC33C5E7B3BA20D2A9BD49BBEE0B2DA2338E578E6F139BB7596DC3BD89E86CB393C42765B9FE85457116906C3F9A8499CF5E539A5CCB3F6D1F36CA209DE6942F807E579AF0EBF072EA110A812C9E420647CE7C8B2BDBB5F56C5B3B7EA80A53C3574F4ED32E4708DFEED60280ABBE2021B3791B0CB09C1F0731353234A6A327CDDFD4E3E2D9DD5A16FCDE3EEF09C67065BD702C07B53A005D3FE7D23FFD77D40E49C82165EB104343A166E808A3CAEDE1A43AE3A82E1788B49C565CF88A2AB8E2FD37657D53E3679D7A818D864F55144011AB498A4A985C46342F3562FD80ECB86497C3DBB759006E5FFFDC01CAA15C69B716174EDCB6E9870CF391003D3826451D1BEFDCC84C093428EE01DAF883190F5D2542B36A7DE44A453AECD5E93B768ACEE75076BE3D73A66F17CFD8E4A49B1F61CE9446815A86FF5FB0EA070A751893C85360C038A161D3DD4D2C66F440E7265153AB346EF620156605C028DD9636FAE0C9A20DF09303ECC5E57A6424505530F70D25F1C95FE51CBD82C2AD0015EB9AD5379CEC463FA0331A14DD971B7C2311FC45979C531653E7252884BAB7C49F8CD652BDF6FDFA76984445C63B54ED22B4A8A267D091381BE7B9B7608133968BA46106BF42B9091F78C085E674D1F70FB91C68D07733F6412B1583DD2F37C6ECAD6BCCE1A1C7D0A7CA80677F679A5AFE08D15427E5C78CE6EB9AA90F51F40343DC9FD1316DCEB2C1EF8EA217B714B0DE1AEECE04D19D0D7757481EDA6E8C51BE85B7B24720E8D62B8AEC56C1A1B9D278B874AACC0B492CF44ED4E7B1200C82323C1AFA0FC776E92B227E8979E3A92EAB05FCF18A43AE648397088F4991F73ECE22C03B3F42F51C0C0FE0DF37919D048FB473F7AB0E33310B9782DE56384BD888CE5E2A644E20A52DD47F710DB0D3169991E29E716ABFD84CA4850080B6C252CB96CD8979189819E532DF56ECB172F773919733BF4D442901EBFB656EBFED4C6D83FAFF288279779499091C94432ECDF83188048AB596D65BC48FA708D485F9CDC50C8B470DFE22157E8F5EE366722A04E8CE7B861573E5FC97D34055BB50B562738F803B202F7F8":"00000004DE9CE10EA7125AC6399B6B3C7EE24224000000161D61E675F3EA19C5B95DA4EE2E35BA061B39E7639F3989F8AE4B0696B3F87E4E":0 +LMOTS hsslms interop test #2 +# This test uses data from https://github.com/pmvr/python-hsslms due to the +# limited amount of available test vectors for LMOTS, and few implementations +# providing direct access to the underlying OTS signature scheme. The private +# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. +# This test uses the same OTS key as the LMS hsslms interop test 2 (leaf 1 of +# the LMS key), and the same message. +# +# To reproduce the signature: +# sudo pip3 install hsslms==0.1.2 +# +# from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE +# import pickle +# +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# private_key = pickle.load(private_key_file) +# +#ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 1, private_key.SEED) +#ots_public_key = ots_private_key.gen_pub() +#message = bytes.fromhex('92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1') +#sig = ots_private_key.sign(message) +#print('lmots_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), ots_public_key.pubkey.hex())) +lmots_verify_test:"92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1":"00000004e29f47d2314ebaf22ebb821dec653f5bd105aced5d24829787a93da910baa495cd5a8576dad606cc7407c4d8a38a715ded879274c5347a200cc1c08a6fcc7288e280bb2e66b682c4b20c514f7a990ce01594001917be8d1cb5a23c22dc00c81b18b8047177cc109a1ff862f535319b703be8e4439062348b7bc73e85e69f7d3f033767146130991f78b497e2a0eee1059d2cd87e0a99c1aae47a6496664735cdb383a8f7a1d686199cf2e07a67e9ef409048efb76cf0c689c1c6c67a5b6966e4b4773710bdff3f72a4f85428187f912c9f13a8bd06533450ce04dbbd2c022eab44a5f6a822d78918f692fa5c6c90aab8941072d679b89388160556597acf17b95b3ffdf8c4c21df5327bd756772a45fdde182004d91cff5aba111fbb70b5970a7d7416220de31e6e76646372e4a1606fbbd5be215a32bbb84da99c63af271edbd42ee87de174cabec7734b6d924d329640bdb84059cbcea89caa703667f5e1b3c1c71b53213f1cd7d1da3e42da70edeb7c0b596bcb981c08eb0f02408ee028a57165cbdc36c9edafa559826c2e690e73da7c7fa1b0fa0e6041a692a2e8f27af80513c07ecd89caaf78ddf8e2edaa17bece335068153b253ceef38b491801c1ef7c648045ce7c517afab888603648b17d3a98a3b5622b469a829b023c5cb2ce42462c28d22bc3de91dd8b38bab539971b0c7596dcd0d8c0d84bfd7925d6e2f2d114ca4f91fca12178a451ac0dabc8c21396ad5be57ea0648bd1054de00aa7fd3d46453ebacf6b611e05842f5f019aeca3c798ae063631fd5e56ea1f7a21bbea5c30e6d60a724ce187e7c497d918d2a4d5094224dde94a02e851eae1626533992a599a641466e4d683e40b5a28695aababd2d7f7d2ccee72c289876c8d581babaeb3d738f1d1fc765e9fee3f70670913e07cd38fc7b37e2caba0a735352aa3f4b2467010bb1b725d4bbd86d8c98eece10e925d8bb5c0e993dfa45621f91596f5d1e1446b118c48bc1e403627fdd299ad4d3d5f3a2dfb239bf22e7ff25d83287ba3a96b24cda0252df1907af1cb74d31d720c5baca0f316769f7f98b409c17bb543c39628446183e326d0745b4424520a9d582fc817eac55b0efc2ca4659a60a95e1d3b77bf1454e5cd4d1d54d51159d3df70a78345d1d6a7e0746b3deb080883f6506e9e7d0fb4bddaa66aa7cf555df1bb9d3f848b7e604b690a403f4e40188110e0ef9af15dc4952a8ed100987e39e8184be8dc62441ac2a561c7cbe431c45b0ec03c41c4867e38925977fc240ed2a04d73d4319435de354dfe0184220c71bd59be4e7f6dc9a1a27f4eefc990d615b2c12e13f1821727a607afdab359d2bad5b1be689a36662e052cfade2c0f5cc842c090082068d324f0e338830030d255ee6e6d9303c0037c24985338dfa16b5980a99782af1b3aca9123b5063e0b9f1a31105e2c9eaae2353b2ed53dab5b4fb43b4697d05fcf4941be071edf3456ac8e35eba39800ad968155574c14b6ce109982177b00ea5fbb739dc7553e40c98824d4932185e61ccc380b07476ae210ce3657b24f4639261a5e7e0c52d6afdea97bb2fc":"0000000447cc5b29dd0cecd01c382434a6d1686400000001f337dde97685d008a4440b59550277390018d3f1d485fa4b8c91796032de494b":0 -LMOTS hash-sigs interop test #3 -# This test uses data from https://github.com/cisco/hash-sigs due to the limited -# amount of available test vectors for LMOTS. A public/private key was generated -# and used to sign a randomly generated message. We expect this -# message/signature/public key trio to verify correctly. -lmots_verify_test:"C32F83EFBFD87F386A6C0850CBB93A75F2506A35":"00000004BD2D174BEBEEF1CAF06E4BF1088DE2AAB17C0528579BD4E1C4A1ED583C36BDACA49798373961B605EAEFAEFC0B4BC39C7AD30572CD29BEBE9AEE503CA2D8BF8C31C8A1B71CF67A18EE01A8A878699F22A1AEE32731E51E3EAD3775EFD8339E263C5A4544559506BA5502B9AEF59217ABC24923EC5E28D18BA18B0D964DB277007A76B8075B39F48CDA92148C9BAE1C7E5421CA753FA2D6BEAE8F49977E4E5B6F38D35BA28A526A53061E57BB92DA0EBBD4AE01AE9FADBED74F503DC39FA2E10C20B47DFB3DFBE25EC35618D2307D21716B10F8FB5095B42C289D1847E5D6F9988C6763D288667D3B658A4F3613E084DAE8B78E0B295A6ED28E88C676995AA5EB1533CDF8EB6F95A5E5117F06B1759495A9CB6E40FBF1F97FF73FDCBFD315C48DA631AB0425CA0633817C46F25E84AEEA37DD77310EE56815E83F862EF14E15FC1246243AA02F40EA32567237D5ADC2944BD63CF55FA4F0DE251B3F5C067D9EC396D5E20F9CEF2C555D89DA721D91D6D607653B97636AB10B74F39FA984D23A3D276EFF5F49C336274A66AC491EDE34686C6CFC17F5312FD3E3E5749A2E472011FA391A5ACF09D918B01704B447FD5E3EA6BB726A3475775DFE6A98CE5473CDEDB630EA4D604BAF36A8B8A8E567F05929E8A74970AA742FBC945021017E464E753D5AC497925AA4AECA0CBF562B2E39F891E177FD8E4E61A698B099D21F13EFD0DE5357A1970314D8E3AA1D2A84D3BCF75A7876C16F585322CC4C613FE3AC8FEA5F258FC9C7200765E9209378C362AFC1A478A117D913CE2BEFEB51103E48D0802618C50918005F1AA4228B67BA1A1B001A91A032019A135B8AEEE3D0158A602C8DCCE5A6580DECC16204E410CBB15FCF36704BB2ECB826A229E45C454B4A5DFC12796E636B300C624DB4E6EAB424B17A18A5A5F52399F247A1507A5985D06F90889FE381129148AF8447B392D4EC0775D91502B48D9F212FCE3F81639901C462F752E27FBEEC9E2B7F8CCD16053FB839E8ADF8CD3E8FF8AF3B3E884F4F524C2026BD3B337B7058B53CFC7596F9C813FFD746B8AC0012C60E96140934B4EED1D8602E57A1A6EBC01FCFD66053AF9614FAF0D0F7320D50D440F2A3148A0DAEF5E2FA31F854D56045065AFAA52A60DC3321E2D7C104FF505057D55CD94C53C31C14DB0DAA4D55C4065CD9BCD78E1B8532A680F7DC3544021346CC59ADEC061DDA1B7606BAF28AD87C39AB8AF3D03E981EFFE50B4D5347175517EF212E61F02B594A96492091AC82625D334504EF19BEEE52E01B111D43313F35EC69C88EF38926071506AB3A5B372DD6F2B901AC1E12E61CCB3ACD3D0777A7A10F137126DAD0D1970D369A067C3A1F19D9CB8756D7130B7EB0C08CF725EB2ADFAD61204195CE14F3C99A88A9B8FA2FDCBD612DF9266614DEA073C9EDABE07B3793048167D4DA49B305AE27974D48A296871350DE036CAA348D2F9A9CB19DC094E5904E25DDCF5657227DCD2A4E620121FBDA032A58836EDC14F3A7C4E51319A60F91F941CC61757498B769799394574C9D198426AC3499F0D0BA1770AD6BAA0D3716333F785A9D7D":"00000004DA66203A7E7BCA2362DB3C8E897A84B10000000D1BD4EE08FAA341C2CE018BD12776E1B8E6B8B2C1EEDAE6BD0998E52F089936FE":0 +LMOTS hsslms interop NULL-message test +# This test uses data from https://github.com/pmvr/python-hsslms due to the +# limited amount of available test vectors for LMOTS, and few implementations +# providing direct access to the underlying OTS signature scheme. The private +# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. +# +# To reproduce the signature: +# sudo pip3 install hsslms==0.1.2 +# +# from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE +# import pickle +# +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# private_key = pickle.load(private_key_file) +# +#ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 3, private_key.SEED) +#ots_public_key = ots_private_key.gen_pub() +#message = bytes() +#sig = ots_private_key.sign(message) +#print('lmots_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), ots_public_key.pubkey.hex())) +lmots_verify_test:"":"00000004862327ead0b0eee8bde100614b3369e183f97812c13f0979f7d37482a2ae719a811ba3a5c65cc036270d4b31ed6caa900ba0a98e3e5d6f7e4286571e003fd7f8fd523c7707eb00d25ce6b0d2c92317b2531b8ebb184ed65f7bd4c20611154409acb5134389c8aca9cb98c380fc8de4f48078a1859126967275219ca0168c6f0cfec0c2f63f98fb2a741fc15a5d59b50a97efe2564bd8a4f05fe250d4ec316e6a833a2dafaea47efa359840fb887e3a5ae0b07c75ed1dda3cc253365c5b9320180e5273a2c5078cdc0d3aefeaa94d8888c3112c2b68f85fdfaa13b5088f4bdf570f5a2ae32114497d28a6b46abe602f142a9382651a4b5fe7aeda3e54deaf85d51d59bc945e3970d4f603cb1617137c182087dcecb7f97016e138ae4c7f8926a9fbf7d1154cd53971e3c86e230fe783efdc44f4459143eeddec73612a11f6c4796bb734b703b94b3ee02a136f676ff959bd9dcba3a6cdf8244310b4125a07ef7a364d47c2d0067370f9024bb02217ea19baafa6111dbe1daa6f4d3ae287f8b4675934a8cb124b64f3d2baac01504a66b5cb80d5fe88281c92eb2d9e6105368ce748c2269f28444d20f8fa06f96738942606fd2ee1ae17b45953af9cc8aa10089b80c951ae7d4c6496476e0f9d88050a09433a99b92f1bd2bc2cc4e712fbba650e8c61716a2396bd802679096b2ed113dcf9107196f41185c9baa295c1000879dae4e36344b7ca9a4f040ceec064ff4a654a561a21fbdd0c28a4d0245da9fdb37a7ce20875e323db04197b6ec9d0265a840687a4067b6670482e3a765895a57f26fb971e359f30fa3c65b6197fbfe6433364f0062cc20d8ee2ebed5c3b96dfcd46aa99956b5b1602d9ea16b05ed54f1a72557148ec3a43baaac2474f735ce82979c87df358d175f4686aebde24b768f0f8dfa3c20d9c33db8244f47793eae676afe7485b08163ebd5c4b02c227a38824bb58d034e0a00395ce19e34846b8f6ce3cd3ba877a6ee953738c0ebffdc6eee63bff648e1530f611e9b5de0e5c41bf2f50375347dbe3c332ec523d516aa9478fdf61952f44068447d1474bc3a33f0d973f7b36360ddefd21ba57916dc0ee7a21082ec9c024d78938616e8bbaff451c8da9675cef9d0610872e8cd2b7673a86148e3abba473d0e4e1579ca3faa891d475a6bab9dc3a90537c701a62f41198b0e86f101b506a8a5b102ddd6fdafca56e7f32f4217f8bb7c228066c53fcd78b8541c3ffeb88fe685c796711bbe2d8fee6e9adcc077c140216438c5db25e7b7b34164fce6343dd8de5aa8310d18c9cf91992a25e6f71eb39fb7c267dc3b87d1781b34a4f3c84e2ecc04f73104d50e00631e2e7b157a8374c2b08dbcb3210b2852738a16cc580fa6df62b93f27151bfa77eaeb726ab18137e14962676836a573a6ac62b1bb8d40b402d2da0b37bb5a29e2ef154a78f61b632c2e9279670ba9a7a2c2ceda3f931940a5766738ad8ee62761c87d94e50ec995c01484fe6c96d0fb2ae97394e6497a4a8087c366edd038d72b01f4eb351a2ac41d19df56db40491da464a6f0c646b859e7ea3b0584be618fd7fb48c":"0000000447cc5b29dd0cecd01c382434a6d16864000000033fa1330497e44e2773f08e4727eb4d745db9051d6a60779e58a922dc8a7d4ede":0 LMOTS hash-sigs interop negative test (altered random value) # This test uses data from https://github.com/cisco/hash-sigs due to the limited diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 4821ce5ce1..27a74b6d36 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -76,7 +76,7 @@ exit: /* BEGIN_CASE */ void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, - int expected_rc ) + int expected_rc ) { mbedtls_lmots_public_t ctx; unsigned int size; @@ -91,17 +91,20 @@ void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, /* Test negative cases if the input data is valid */ if( expected_rc == 0 ) { - /* Altering first message byte must cause verification failure */ - msg->x[0] ^= 1; - TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), - MBEDTLS_ERR_LMS_VERIFY_FAILED); - msg->x[0] ^= 1; + if( msg->len >= 1 ) + { + /* Altering first message byte must cause verification failure */ + msg->x[0] ^= 1; + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + msg->x[0] ^= 1; - /* Altering last message byte must cause verification failure */ - msg->x[msg->len - 1] ^= 1; - TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), - MBEDTLS_ERR_LMS_VERIFY_FAILED); - msg->x[msg->len - 1] ^= 1; + /* Altering last message byte must cause verification failure */ + msg->x[msg->len - 1] ^= 1; + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + msg->x[msg->len - 1] ^= 1; + } /* Altering first signature byte must cause verification failure */ sig->x[0] ^= 1; From 66edf6a833baa592758becceea2f9a4047ad5085 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 09:36:58 +0100 Subject: [PATCH 0653/1028] Use hsslms data for LMOTS import/export test Also, test that export fails when the buffer is too small. Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.data | 8 +++--- tests/suites/test_suite_lmots.function | 39 ++++++++++++++++++++------ 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index 7ae80e92f5..8fdce0cd19 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -104,10 +104,10 @@ LMOTS negative test (invalid type) #2 lmots_verify_test:"0000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMOTS key import / export test -# This test uses a randomly generated LMOTS public key. It imports the key, and -# then exports it, and verifies that the exported key is identical to the -# original key. -lmots_import_export_test:"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A" +# This test uses the valid public key for hsslms interop test 1, imports it, and +# then exports it. It also checks if the export correctly fails when the export +# buffer is too small. +lmots_import_export_test:"0000000447cc5b29dd0cecd01c382434a6d1686400000001f337dde97685d008a4440b59550277390018d3f1d485fa4b8c91796032de494b":0 LMOTS key reuse test # This test uses a fixed message, and then generates a private key, signs the diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 27a74b6d36..367e55aaa2 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -146,20 +146,41 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void lmots_import_export_test ( data_t * pub_key ) +void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) { mbedtls_lmots_public_t ctx; - uint8_t exported_pub_key[MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; - size_t exported_pub_key_len; + unsigned char *exported_pub_key = NULL; + size_t exported_pub_key_buf_size; + size_t exported_pub_key_size; mbedtls_lmots_public_init( &ctx ); - TEST_EQUAL( mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ), 0 ); - TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, - sizeof( exported_pub_key ), - &exported_pub_key_len ), 0 ); + TEST_EQUAL( mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ), + expected_import_rc ); - ASSERT_COMPARE( pub_key->x, pub_key->len, - exported_pub_key, exported_pub_key_len ); + if( expected_import_rc == 0 ) + { + exported_pub_key_buf_size = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8); + ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size ); + + TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, + exported_pub_key_buf_size, + &exported_pub_key_size ), 0 ); + + TEST_EQUAL( exported_pub_key_buf_size, exported_pub_key_size ); + ASSERT_COMPARE( pub_key->x, MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8), + exported_pub_key, MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ); + mbedtls_free(exported_pub_key); + exported_pub_key = NULL; + + /* Export into too-small buffer should fail */ + exported_pub_key_buf_size = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) - 1; + ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size); + TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, + exported_pub_key_buf_size, NULL ), + MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + mbedtls_free(exported_pub_key); + exported_pub_key = NULL; + } exit: mbedtls_lmots_public_free( &ctx ); From 71f554b48fcd562193d4a0f53beb54f3612ffa25 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 10:02:09 +0100 Subject: [PATCH 0654/1028] Use real data for negative LMOTS tests To avoid errors caused by the null public keys and signatures Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.data | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index 8fdce0cd19..3c28df7d05 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -84,24 +84,22 @@ LMOTS hsslms interop NULL-message test lmots_verify_test:"":"00000004862327ead0b0eee8bde100614b3369e183f97812c13f0979f7d37482a2ae719a811ba3a5c65cc036270d4b31ed6caa900ba0a98e3e5d6f7e4286571e003fd7f8fd523c7707eb00d25ce6b0d2c92317b2531b8ebb184ed65f7bd4c20611154409acb5134389c8aca9cb98c380fc8de4f48078a1859126967275219ca0168c6f0cfec0c2f63f98fb2a741fc15a5d59b50a97efe2564bd8a4f05fe250d4ec316e6a833a2dafaea47efa359840fb887e3a5ae0b07c75ed1dda3cc253365c5b9320180e5273a2c5078cdc0d3aefeaa94d8888c3112c2b68f85fdfaa13b5088f4bdf570f5a2ae32114497d28a6b46abe602f142a9382651a4b5fe7aeda3e54deaf85d51d59bc945e3970d4f603cb1617137c182087dcecb7f97016e138ae4c7f8926a9fbf7d1154cd53971e3c86e230fe783efdc44f4459143eeddec73612a11f6c4796bb734b703b94b3ee02a136f676ff959bd9dcba3a6cdf8244310b4125a07ef7a364d47c2d0067370f9024bb02217ea19baafa6111dbe1daa6f4d3ae287f8b4675934a8cb124b64f3d2baac01504a66b5cb80d5fe88281c92eb2d9e6105368ce748c2269f28444d20f8fa06f96738942606fd2ee1ae17b45953af9cc8aa10089b80c951ae7d4c6496476e0f9d88050a09433a99b92f1bd2bc2cc4e712fbba650e8c61716a2396bd802679096b2ed113dcf9107196f41185c9baa295c1000879dae4e36344b7ca9a4f040ceec064ff4a654a561a21fbdd0c28a4d0245da9fdb37a7ce20875e323db04197b6ec9d0265a840687a4067b6670482e3a765895a57f26fb971e359f30fa3c65b6197fbfe6433364f0062cc20d8ee2ebed5c3b96dfcd46aa99956b5b1602d9ea16b05ed54f1a72557148ec3a43baaac2474f735ce82979c87df358d175f4686aebde24b768f0f8dfa3c20d9c33db8244f47793eae676afe7485b08163ebd5c4b02c227a38824bb58d034e0a00395ce19e34846b8f6ce3cd3ba877a6ee953738c0ebffdc6eee63bff648e1530f611e9b5de0e5c41bf2f50375347dbe3c332ec523d516aa9478fdf61952f44068447d1474bc3a33f0d973f7b36360ddefd21ba57916dc0ee7a21082ec9c024d78938616e8bbaff451c8da9675cef9d0610872e8cd2b7673a86148e3abba473d0e4e1579ca3faa891d475a6bab9dc3a90537c701a62f41198b0e86f101b506a8a5b102ddd6fdafca56e7f32f4217f8bb7c228066c53fcd78b8541c3ffeb88fe685c796711bbe2d8fee6e9adcc077c140216438c5db25e7b7b34164fce6343dd8de5aa8310d18c9cf91992a25e6f71eb39fb7c267dc3b87d1781b34a4f3c84e2ecc04f73104d50e00631e2e7b157a8374c2b08dbcb3210b2852738a16cc580fa6df62b93f27151bfa77eaeb726ab18137e14962676836a573a6ac62b1bb8d40b402d2da0b37bb5a29e2ef154a78f61b632c2e9279670ba9a7a2c2ceda3f931940a5766738ad8ee62761c87d94e50ec995c01484fe6c96d0fb2ae97394e6497a4a8087c366edd038d72b01f4eb351a2ac41d19df56db40491da464a6f0c646b859e7ea3b0584be618fd7fb48c":"0000000447cc5b29dd0cecd01c382434a6d16864000000033fa1330497e44e2773f08e4727eb4d745db9051d6a60779e58a922dc8a7d4ede":0 LMOTS hash-sigs interop negative test (altered random value) -# This test uses data from https://github.com/cisco/hash-sigs due to the limited -# amount of available test vectors for LMOTS. A public/private key was generated -# and used to sign a randomly generated message. This test is a negative test -# where the signature from the hash-sigs interop test #1 data has been altered, -# and is expected to fail to verify. -lmots_verify_test:"C80B24A82D52963AB241C84DCF0EEE55BB24F9F0":"00000004CB3B6B24FD191CE8894AE3C4E2CE2DE0C3F5D508691A9162F37704E07838488466CCD746E55BC8E3055C7A4D4DA2E10775DAFA2E8E5FEFB1CEB25973BC3323B61DE5E2EA7DCFF15DA482320F958023CA2E718C69B977019E8F2FCD47151388E2E5E11170AFE93BDEB508362B3A317835A9DDEB18F0CDCCC0731902DB3D37F441C93A490DE53962A915AB5060A1C157D61DDF061F272362AB7FD9EE95AE48D3448F204C81A3F260792784E1BFB49871A27C09CC549A406520F0B40BC74CAAD082EAAB12C994B8495B8C80E96384FF2222255BE6C4EE5AF439534E616F9C0B53E951F69D59BD0506C0C0366A679A8329ACF6E2D1D4E4EF49D35375A8EA46FCF3C9B2F8E033C242EC61B796E43B901407077A2AF3F0AABD2D0CB9004F10D91B57C2D5E8BA7BA9268FF94962CC102F55B5120D7D2F7A3BE281BA01D78895ADA2F05B77967EDA0E1EDEAFBB9BBC3D68DCBF682FBC70467FA2BEE5DE65F54247C4BE5BEF41F5108B6CD09E7698E3AAEA04B60746EDD0E2623B66B092DDA21EFA5A0D36805D101D805CC06F0E818B46059B3984C8B8A526C4239F66ED34B8CA57E178DC5E7B8D2BE029114B4CE466E2B5A081729B3F3A3F3845DDE177062F201C09125ED3CC381AF35EAD795440C421A136F941F09F3E4BA9E0203CBA875AF477AB0246342700F323E65DC327D27966377D871FD9C58BEC8797DEF35E1D0751A554719828B87332F601884EBFECB63A8D4F390785B3826BFA384BE502D2322C919ABD12A486C2AB124DCB7B74DE91241A30EF0388411E52145A88971C6C0A4E7C4F23EDD8D6008065A3D108C6B1EC5219BB0DFDBD37EE3A7A8DD37E3563A5777838FCA61E9E744813F39CF70B5A0F50E1BD4FF8733A3BDA76D2135969809D91A9786F22DC2ACBA4E0164C411019EC77A0BD253A42AC7528FC7C0DA1711FBD6C23825207060463080F9E04B7D819C8B150C22B8BA87C6277696EC409369C48AC0E3233DE52D31EF6D2207D2B57DFC2D0C43BE8212EAE6CB1BACBC2D3568E5527A14065D5F1F56AAE2AFB5FB1CEFFC228A30692BD030C71F4872DB54F2632CD919DA61576CF58D1EBE3D7988183A9C789EB74A3D7F6BBEBAC035A43397BF684C9E1130B252940DBA4454311A6A3D54D9386D48E1D5A3E70944EDF725AEDC5440CD610F79AB05A43C917FFC15213295EB8CB8432B6554A47C2AD419ADD52E0F5E0BD7A1E0F873257E69F8647F3A07093387B7A64C4812CDBEE536E45D531F89653AC5F14A4715CFF40692346FE6CBF2F9B92D9F1101C379AFD5E6154605059C1DA463B407E79C139396623DC7F15EEFCE424C8E214C6A645EF002F90A230D8F62177CBCF2A688D4F822B119835AD3D3A619F46230257A5AD59CB0924B2584DBA96AADE0A2487E7409EE5993A4F0E3DC46C10B96595CDD17D72C35EF4A52C5906655B0AE649B5DE03B7D46F3839E808761EE05E9300050647593C048669A952324B0188ED225AD11BED3FD94E44E134FB9D6DAD53CC34ECF62695E30637C4528C450D62174E2F8ABA2C09F134412EF889C24B36224BE4259B363A9D8EB89BAEE16BE1898D46":"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A":MBEDTLS_ERR_LMS_VERIFY_FAILED +# This test uses the valid signature from hsslms interop test 1, and then +# permutes the random value (C) of the signature, and is expected to fail to +# verify. +lmots_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"000000041bb462a8f59a277c1706ab69b1a40b0d56a3ffe1ddf0dfa890096c7a9c48b360e1e8f7abe4dc1950c4a64545ce6c0fe2a34477ec40f56db4eec37c1a2168e3059d4338a4eb368a64be5f98b5452f2c2fad23dcac585f5fe308bfc3df0b5cbc6cf3545236ed6c5a863e677521b5b5cee0aa1e755c3bbf5fb7326fac1a88cb12dd7f8d68ebe8bad07195a12fa11299073731e67f2452009252c595fc7d9285b90aaa912eb6cf0b5debc0996ca55ad5186702b244a616c4b9e0ceeea229e1e821c1ab0db906ce87640d128f1d8c4742d9baf340a8030df726a99a9b97f139ec57d8d87efdfca235f12de64e0a993804b95227cdfd26220a84502e350faaf5f91f3f49610eda211f9409005679e32068def22a2dcce3d226d0f68c4abc727b90d9c01daa05db24d7c0c9e9e48202e3420992ba78c36bc21c45cdf218801dc7053e3cbf39c141784e7a861671588622d540187912234ce628ea9cbd1800d215641163c762d2fd9194fa54bd9b46c83754579476398a5c2fece4642f1ee286a4e9a310b5e23088c75a68b123044c1c365c8b53fe9f895fa5d76fe1277c7c0f2a39f5b233f7d2acd5358feec2255feadb1c2513c4351c9bd1afe22d159f2d392c83bf7ec26b59e78330cd346adb85ef62fee3da63150ab5e0d7ce5d0ef353895360017faf3f35aca2cf3b8eda65389e2ba86f78ebfbe73382dfe9002331f24e96e1a6e56e7cc99ee848b82ad1ade3229e9e28168acfa8c059ed03028e8c872e72ff4cf8a50b84ade908ecf229a26ff1007c476d1aa376323fc567c9471085336496b231b5245a43c6c86c6a71c1b1fb4bd87c2d0b026bff55de121620a089ed9ade51c3bd91c703844c180ef9ad0ab550b9560ba9f1452463ce20987a402213ca5c16c927a0a85091dd74fbee22cac6b1afbc7e7dec229325c25ea3b3cc5a1c48c80665f9903e482b143f7cd051bdb990355f79c62553453c72ccbcc578df77069a7b0cf6fdc6853ec2f96fb7cc100216ae1b17aa20782fb0cd0f261b76a48b5d6f7bb48fa5f78c02a11ee81a8c0c81183910af770f2e907ebd5b2dc3a2b83529f62da074ca73c434f8f30b68a5dfee740f78d2c13b53c904e46dddf723923bfbffa437a4130c8c9b6d79a57db1c408b9c023f80fb3d766cb915e722f3b3152625d77bce3ca0c01e77f3750d7d1bef1ddda8b9b4233b09c89abe5913db50847a7ea219c3f406aa4cf41b6310bafa99a7b14f94b8ccd4dc7edb1a1e963ce26a53f3be71b4151ce5fae10ca30055e754880680e38cf2f21251f229341f7af9536360a428c2593c43fd2ae471bc1fa2b45ad55742a2f12f31eed6cb67945a898650c13650c4cffeecba8655f87e49ce921ced7ab00cf54eedf0c70e5c6cfa7f006763f0ac14d80cfb1662321cdccca8b1adf426eb9ca16ef2b978bb9ac229131fa5c1266a4980449c324ebdd8bcc98916089ee0b6966da7dc25350bdc758431884359d02f5fa567b39f49a6e410da2d0363944a090926308ed0ce7d565e6c4585ea010bc38ef1c976ae16ec1fbe6fb9d4d50e49a7be8273d2d56bf4e72acbadd90d5f8dee0":"0000000447cc5b29dd0cecd01c382434a6d1686400000000761e8e577fb4d12058806fc7bdaaef0ba64e454dc59b0230a77b43bbd83dc8c6":MBEDTLS_ERR_LMS_VERIFY_FAILED LMOTS negative test (invalid type) #1 -# This test uses a null (zeroed) message/signature/public key trio, with the -# only parts set being the LMOTS type. This test has an invalid LMOTS type, and -# should fail with a bad input data error. -lmots_verify_test:"0000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA +# This test uses the valid signature from hsslms interop test 1, and then +# sets an invalid LMOTS type (0x5), and is expected to fail to +# verify. +lmots_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"000000050bb462a8f59a277c1706ab69b1a40b0d56a3ffe1ddf0dfa890096c7a9c48b360e1e8f7abe4dc1950c4a64545ce6c0fe2a34477ec40f56db4eec37c1a2168e3059d4338a4eb368a64be5f98b5452f2c2fad23dcac585f5fe308bfc3df0b5cbc6cf3545236ed6c5a863e677521b5b5cee0aa1e755c3bbf5fb7326fac1a88cb12dd7f8d68ebe8bad07195a12fa11299073731e67f2452009252c595fc7d9285b90aaa912eb6cf0b5debc0996ca55ad5186702b244a616c4b9e0ceeea229e1e821c1ab0db906ce87640d128f1d8c4742d9baf340a8030df726a99a9b97f139ec57d8d87efdfca235f12de64e0a993804b95227cdfd26220a84502e350faaf5f91f3f49610eda211f9409005679e32068def22a2dcce3d226d0f68c4abc727b90d9c01daa05db24d7c0c9e9e48202e3420992ba78c36bc21c45cdf218801dc7053e3cbf39c141784e7a861671588622d540187912234ce628ea9cbd1800d215641163c762d2fd9194fa54bd9b46c83754579476398a5c2fece4642f1ee286a4e9a310b5e23088c75a68b123044c1c365c8b53fe9f895fa5d76fe1277c7c0f2a39f5b233f7d2acd5358feec2255feadb1c2513c4351c9bd1afe22d159f2d392c83bf7ec26b59e78330cd346adb85ef62fee3da63150ab5e0d7ce5d0ef353895360017faf3f35aca2cf3b8eda65389e2ba86f78ebfbe73382dfe9002331f24e96e1a6e56e7cc99ee848b82ad1ade3229e9e28168acfa8c059ed03028e8c872e72ff4cf8a50b84ade908ecf229a26ff1007c476d1aa376323fc567c9471085336496b231b5245a43c6c86c6a71c1b1fb4bd87c2d0b026bff55de121620a089ed9ade51c3bd91c703844c180ef9ad0ab550b9560ba9f1452463ce20987a402213ca5c16c927a0a85091dd74fbee22cac6b1afbc7e7dec229325c25ea3b3cc5a1c48c80665f9903e482b143f7cd051bdb990355f79c62553453c72ccbcc578df77069a7b0cf6fdc6853ec2f96fb7cc100216ae1b17aa20782fb0cd0f261b76a48b5d6f7bb48fa5f78c02a11ee81a8c0c81183910af770f2e907ebd5b2dc3a2b83529f62da074ca73c434f8f30b68a5dfee740f78d2c13b53c904e46dddf723923bfbffa437a4130c8c9b6d79a57db1c408b9c023f80fb3d766cb915e722f3b3152625d77bce3ca0c01e77f3750d7d1bef1ddda8b9b4233b09c89abe5913db50847a7ea219c3f406aa4cf41b6310bafa99a7b14f94b8ccd4dc7edb1a1e963ce26a53f3be71b4151ce5fae10ca30055e754880680e38cf2f21251f229341f7af9536360a428c2593c43fd2ae471bc1fa2b45ad55742a2f12f31eed6cb67945a898650c13650c4cffeecba8655f87e49ce921ced7ab00cf54eedf0c70e5c6cfa7f006763f0ac14d80cfb1662321cdccca8b1adf426eb9ca16ef2b978bb9ac229131fa5c1266a4980449c324ebdd8bcc98916089ee0b6966da7dc25350bdc758431884359d02f5fa567b39f49a6e410da2d0363944a090926308ed0ce7d565e6c4585ea010bc38ef1c976ae16ec1fbe6fb9d4d50e49a7be8273d2d56bf4e72acbadd90d5f8dee0":"0000000447cc5b29dd0cecd01c382434a6d1686400000000761e8e577fb4d12058806fc7bdaaef0ba64e454dc59b0230a77b43bbd83dc8c6":MBEDTLS_ERR_LMS_VERIFY_FAILED LMOTS negative test (invalid type) #2 -# This test uses a null (zeroed) message/signature/public key trio, with the -# only parts set being the LMOTS type. This test has an invalid LMOTS type, and -# should fail with a bad input data error. -lmots_verify_test:"0000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA +# This test uses the valid signature from hsslms interop test 1, and then +# sets an invalid LMOTS type (0x3), and is expected to fail to +# verify. +lmots_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"000000030bb462a8f59a277c1706ab69b1a40b0d56a3ffe1ddf0dfa890096c7a9c48b360e1e8f7abe4dc1950c4a64545ce6c0fe2a34477ec40f56db4eec37c1a2168e3059d4338a4eb368a64be5f98b5452f2c2fad23dcac585f5fe308bfc3df0b5cbc6cf3545236ed6c5a863e677521b5b5cee0aa1e755c3bbf5fb7326fac1a88cb12dd7f8d68ebe8bad07195a12fa11299073731e67f2452009252c595fc7d9285b90aaa912eb6cf0b5debc0996ca55ad5186702b244a616c4b9e0ceeea229e1e821c1ab0db906ce87640d128f1d8c4742d9baf340a8030df726a99a9b97f139ec57d8d87efdfca235f12de64e0a993804b95227cdfd26220a84502e350faaf5f91f3f49610eda211f9409005679e32068def22a2dcce3d226d0f68c4abc727b90d9c01daa05db24d7c0c9e9e48202e3420992ba78c36bc21c45cdf218801dc7053e3cbf39c141784e7a861671588622d540187912234ce628ea9cbd1800d215641163c762d2fd9194fa54bd9b46c83754579476398a5c2fece4642f1ee286a4e9a310b5e23088c75a68b123044c1c365c8b53fe9f895fa5d76fe1277c7c0f2a39f5b233f7d2acd5358feec2255feadb1c2513c4351c9bd1afe22d159f2d392c83bf7ec26b59e78330cd346adb85ef62fee3da63150ab5e0d7ce5d0ef353895360017faf3f35aca2cf3b8eda65389e2ba86f78ebfbe73382dfe9002331f24e96e1a6e56e7cc99ee848b82ad1ade3229e9e28168acfa8c059ed03028e8c872e72ff4cf8a50b84ade908ecf229a26ff1007c476d1aa376323fc567c9471085336496b231b5245a43c6c86c6a71c1b1fb4bd87c2d0b026bff55de121620a089ed9ade51c3bd91c703844c180ef9ad0ab550b9560ba9f1452463ce20987a402213ca5c16c927a0a85091dd74fbee22cac6b1afbc7e7dec229325c25ea3b3cc5a1c48c80665f9903e482b143f7cd051bdb990355f79c62553453c72ccbcc578df77069a7b0cf6fdc6853ec2f96fb7cc100216ae1b17aa20782fb0cd0f261b76a48b5d6f7bb48fa5f78c02a11ee81a8c0c81183910af770f2e907ebd5b2dc3a2b83529f62da074ca73c434f8f30b68a5dfee740f78d2c13b53c904e46dddf723923bfbffa437a4130c8c9b6d79a57db1c408b9c023f80fb3d766cb915e722f3b3152625d77bce3ca0c01e77f3750d7d1bef1ddda8b9b4233b09c89abe5913db50847a7ea219c3f406aa4cf41b6310bafa99a7b14f94b8ccd4dc7edb1a1e963ce26a53f3be71b4151ce5fae10ca30055e754880680e38cf2f21251f229341f7af9536360a428c2593c43fd2ae471bc1fa2b45ad55742a2f12f31eed6cb67945a898650c13650c4cffeecba8655f87e49ce921ced7ab00cf54eedf0c70e5c6cfa7f006763f0ac14d80cfb1662321cdccca8b1adf426eb9ca16ef2b978bb9ac229131fa5c1266a4980449c324ebdd8bcc98916089ee0b6966da7dc25350bdc758431884359d02f5fa567b39f49a6e410da2d0363944a090926308ed0ce7d565e6c4585ea010bc38ef1c976ae16ec1fbe6fb9d4d50e49a7be8273d2d56bf4e72acbadd90d5f8dee0":"0000000447cc5b29dd0cecd01c382434a6d1686400000000761e8e577fb4d12058806fc7bdaaef0ba64e454dc59b0230a77b43bbd83dc8c6":MBEDTLS_ERR_LMS_VERIFY_FAILED LMOTS key import / export test # This test uses the valid public key for hsslms interop test 1, imports it, and From 9fc303a99a151806d2aca629609169cfc920b3d8 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 10:32:15 +0100 Subject: [PATCH 0655/1028] Add extra LMOTS import negative tests And fix failures that are related to the new tests Signed-off-by: Raef Coles --- library/lmots.c | 2 +- tests/suites/test_suite_lmots.data | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/library/lmots.c b/library/lmots.c index f19871873d..a172f77d7c 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -415,7 +415,7 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); - if( key_len < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) + if( key_len != MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index 3c28df7d05..fdb6e43f22 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -107,6 +107,33 @@ LMOTS key import / export test # buffer is too small. lmots_import_export_test:"0000000447cc5b29dd0cecd01c382434a6d1686400000001f337dde97685d008a4440b59550277390018d3f1d485fa4b8c91796032de494b":0 +LMOTS key import too large key test +# This test uses the valid public key for hsslms interop test 1, add an extra +# byte, and then imports it. This should fail. +lmots_import_export_test:"0000000447cc5b29dd0cecd01c382434a6d1686400000001f337dde97685d008a4440b59550277390018d3f1d485fa4b8c91796032de494b00":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMOTS key import too small key test +# This test uses the valid public key for hsslms interop test 1, removes a byte, +# and then imports it. This should fail. +lmots_import_export_test:"0000000447cc5b29dd0cecd01c382434a6d1686400000001f337dde97685d008a4440b59550277390018d3f1d485fa4b8c91796032de49":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMOTS key import no type test +# This test uses the valid public key for hsslms interop test 1, cuts it down so +# it's smaller than the LMOTS type offset, and imports it. This should fail, and +# not attempt to read invalidly outside the buffer. +lmots_import_export_test:"000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMOTS key import invalid type test #1 +# This test uses the valid public key for hsslms interop test 1, alters the +# LMOTS type to 0x3, and imports it. This should fail. +lmots_import_export_test:"0000000347cc5b29dd0cecd01c382434a6d1686400000001f337dde97685d008a4440b59550277390018d3f1d485fa4b8c91796032de494b":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMOTS key import invalid type test #2 +# This test uses the valid public key for hsslms interop test 1, alters the +# LMOTS type to 0x5, and imports it. This should fail, and not attempt to read +# invalidly outside the buffer. +lmots_import_export_test:"0000000547cc5b29dd0cecd01c382434a6d1686400000001f337dde97685d008a4440b59550277390018d3f1d485fa4b8c91796032de494b":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + LMOTS key reuse test # This test uses a fixed message, and then generates a private key, signs the # message, and then attempts to sign the message again. The second signature From 142e577c34af335567bd003a99c20358f5f95ced Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 10:47:27 +0100 Subject: [PATCH 0656/1028] Add extra zeroization to LMS and LMOTS Signed-off-by: Raef Coles --- library/lmots.c | 19 ++++++++++++++----- library/lms.c | 18 ++++++++++++++---- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index a172f77d7c..788063c549 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -700,7 +700,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, NULL, ( unsigned char * )y_hashed_digits ); if( ret ) { - return( ret ); + goto exit; } ret = public_key_from_hashed_digit_array( &priv_ctx->params, @@ -708,7 +708,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, ctx->public_key ); if( ret ) { - return( ret ); + goto exit; } memcpy( &ctx->params, &priv_ctx->params, @@ -716,6 +716,9 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, ctx->have_public_key = 1; +exit: + mbedtls_platform_zeroize( y_hashed_digits, sizeof( y_hashed_digits ) ); + return( ret ); } @@ -765,14 +768,14 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, tmp_digit_array ); if( ret ) { - return( ret ); + goto exit; } ret = hash_digit_array( &ctx->params, ( unsigned char * )ctx->private_key, NULL, tmp_digit_array, ( unsigned char * )tmp_sig ); if( ret ) { - return( ret ); + goto exit; } mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, @@ -810,7 +813,13 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, *sig_len = MBEDTLS_LMOTS_SIG_LEN(ctx->params.type); } - return( 0 ); + ret = 0; + +exit: + mbedtls_platform_zeroize( tmp_digit_array, sizeof( tmp_digit_array ) ); + mbedtls_platform_zeroize( tmp_sig, sizeof( tmp_sig ) ); + + return ( ret ); } #endif /* defined(MBEDTLS_LMS_PRIVATE) */ diff --git a/library/lms.c b/library/lms.c index f30f349ad5..876deeb5c7 100644 --- a/library/lms.c +++ b/library/lms.c @@ -516,7 +516,7 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, ret = calculate_merkle_tree( ctx, ( unsigned char * )tree ); if( ret != 0 ) { - return( ret ); + goto exit; } for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT(ctx->params.type); @@ -531,7 +531,12 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, curr_node_id >>=1; } - return( 0 ); + ret = 0; + +exit: + mbedtls_platform_zeroize( tree, sizeof( tree ) ); + + return( ret ); } void mbedtls_lms_private_init( mbedtls_lms_private_t *ctx ) @@ -688,7 +693,7 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, ret = calculate_merkle_tree( priv_ctx, ( unsigned char * )tree ); if( ret != 0 ) { - return( ret ); + goto exit; } /* Root node is always at position 1, due to 1-based indexing */ @@ -697,7 +702,12 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, ctx->have_public_key = 1; - return( 0 ); + ret = 0; + +exit: + mbedtls_platform_zeroize( tree, sizeof( tree ) ); + + return( ret ); } From 4511055511b358487132cd946335f22f0089abaa Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 12:28:52 +0100 Subject: [PATCH 0657/1028] Exclude binary LMS keys from file checking Signed-off-by: Raef Coles --- tests/scripts/check_files.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/check_files.py b/tests/scripts/check_files.py index a0f5e1f538..3d2ca3ea0d 100755 --- a/tests/scripts/check_files.py +++ b/tests/scripts/check_files.py @@ -119,6 +119,7 @@ BINARY_FILE_PATH_RE_LIST = [ r'tests/data_files/.*\.req\.[^/]+\Z', r'tests/data_files/.*malformed[^/]+\Z', r'tests/data_files/format_pkcs12\.fmt\Z', + r'tests/data_files/lms_.*\Z', ] BINARY_FILE_PATH_RE = re.compile('|'.join(BINARY_FILE_PATH_RE_LIST)) From f9b85028659e7769ac1cbadbd819e79c4626789a Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 12:42:28 +0100 Subject: [PATCH 0658/1028] Add LMS import/export negative tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.data | 54 ++++++++++++++++++++++++---- tests/suites/test_suite_lms.function | 3 +- 2 files changed, 49 insertions(+), 8 deletions(-) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 1201156ceb..85aad52ed9 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -224,11 +224,51 @@ LMS negative test (invalid leaf ID) lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000040000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS import/export test -# This test uses a randomly generated LMS public key. It imports the key, and -# then exports it, and verifies that the exported key is identical to the -# original key. It also tests handling of too-small key export buffers. -lms_import_export_test:"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 +# This test uses the key from hsslms interop test 1, imports it, exports it and +# tests that it is the same. It also checks if the export correctly fail when +# the buffer is too small. +lms_import_export_test:"000000060000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":0 -LMS import/export negative test #1 -# This test uses the randomly generated LMS public key -lms_import_export_test:"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 +LMS key import too large key test +# This test uses the valid public key for hsslms interop test 1, add an extra +# byte, and then imports it. This should fail. +lms_import_export_test:"000000060000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d00":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS key import too small key test +# This test uses the valid public key for hsslms interop test 1, removes a byte, +# and then imports it. This should fail. +lms_import_export_test:"000000060000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS key import no LMS type test +# This test uses the valid public key for hsslms interop test 1, cuts it down so +# it's smaller than the LMS type offset, and imports it. This should fail, and +# not attempt to read invalidly outside the buffer. +lms_import_export_test:"000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS key import no LMOTS type test +# This test uses the valid public key for hsslms interop test 1, cuts it down so +# it's smaller than the LMOTS type offset, and imports it. This should fail, and +# not attempt to read invalidly outside the buffer. +lms_import_export_test:"00000006000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS key import invalid LMS type test #1 +# This test uses the valid public key for hsslms interop test 1, alters the +# LMS type to 0x7, and imports it. This should fail. +lms_import_export_test:"000000050000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS key import invalid LMS type test #2 +# This test uses the valid public key for hsslms interop test 1, alters the +# LMS type to 0x5, and imports it. This should fail, and not attempt to read +# invalidly outside the buffer. +lms_import_export_test:"000000070000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS key import invalid LMOTS type test #1 +# This test uses the valid public key for hsslms interop test 1, alters the +# LMS type to 0x7, and imports it. This should fail. +lms_import_export_test:"000000060000000347cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS key import invalid LMOTS type test #2 +# This test uses the valid public key for hsslms interop test 1, alters the +# LMS type to 0x5, and imports it. This should fail, and not attempt to read +# invalidly outside the buffer. +lms_import_export_test:"000000060000000547cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":MBEDTLS_ERR_LMS_BAD_INPUT_DATA diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 860304e025..709db8ce2b 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -157,7 +157,8 @@ void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) unsigned char *exported_pub_key = NULL; mbedtls_lms_public_init(&ctx); - TEST_EQUAL( mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ), 0 ); + TEST_EQUAL( mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ), + expected_import_rc ); if( expected_import_rc == 0 ) { From d0c701237a2c8d1938677a80d40fc9bd3fc6794b Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 14:19:52 +0100 Subject: [PATCH 0659/1028] Replace TEST_ASSERT with TEST_EQUAL in LMS tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.function | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 709db8ce2b..4e525c452e 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -27,16 +27,16 @@ void lms_sign_verify_test ( data_t *msg, data_t *seed ) mbedtls_test_rnd_std_rand, NULL, seed->x, seed->len ); TEST_ASSUME( rc != MBEDTLS_ERR_LMS_ALLOC_FAILED ); - TEST_ASSERT( rc == 0 ); + TEST_EQUAL( rc, 0 ); - TEST_ASSERT( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ) == 0 ); + TEST_EQUAL( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ), 0 ); - TEST_ASSERT( mbedtls_lms_sign( &priv_ctx, mbedtls_test_rnd_std_rand, NULL, + TEST_EQUAL( mbedtls_lms_sign( &priv_ctx, mbedtls_test_rnd_std_rand, NULL, msg->x, msg->len, sig, sizeof( sig ), - NULL ) == 0 ); + NULL ), 0 ); - TEST_ASSERT( mbedtls_lms_verify( &pub_ctx, msg->x, msg->len, sig, - sizeof( sig ) ) == 0 ); + TEST_EQUAL( mbedtls_lms_verify( &pub_ctx, msg->x, msg->len, sig, + sizeof( sig ) ), 0 ); exit: mbedtls_lms_public_free( &pub_ctx ); @@ -63,16 +63,16 @@ void lms_sign_verify_null_msg_test( data_t *seed ) mbedtls_test_rnd_std_rand, NULL, seed->x, seed->len ); TEST_ASSUME( rc != MBEDTLS_ERR_LMS_ALLOC_FAILED ); - TEST_ASSERT( rc == 0 ); + TEST_EQUAL( rc, 0 ); - TEST_ASSERT( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ) == 0 ); + TEST_EQUAL( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ), 0 ); - TEST_ASSERT( mbedtls_lms_sign( &priv_ctx, mbedtls_test_rnd_std_rand, NULL, + TEST_EQUAL( mbedtls_lms_sign( &priv_ctx, mbedtls_test_rnd_std_rand, NULL, NULL, 0, sig, sizeof( sig ), - NULL ) == 0 ); + NULL ), 0 ); - TEST_ASSERT( mbedtls_lms_verify( &pub_ctx, NULL, 0, sig, - sizeof( sig ) ) == 0 ); + TEST_EQUAL( mbedtls_lms_verify( &pub_ctx, NULL, 0, sig, + sizeof( sig ) ), 0 ); exit: mbedtls_lms_public_free( &pub_ctx ); From 59eb0d0f2b8a5a8cef78359fbb0da47e341e0868 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 15:19:17 +0100 Subject: [PATCH 0660/1028] Fix LMOTS signature leak test dependencies As it requires MBEDTLS_LMS_PRIVATE Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 367e55aaa2..d540454230 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -211,7 +211,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */ +/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS:MBEDTLS_LMS_PRIVATE */ void lmots_signature_leak_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed ) { From 45c4ff93c9674f59136b8999842322f7868d733d Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 15:22:48 +0100 Subject: [PATCH 0661/1028] Fix windows requiring explicit cast in LMS calloc Signed-off-by: Raef Coles --- library/lms.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/library/lms.c b/library/lms.c index 876deeb5c7..ccbcd8bffd 100644 --- a/library/lms.c +++ b/library/lms.c @@ -603,7 +603,9 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, goto exit; } - ctx->ots_private_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + /* Requires a cast to size_t to avoid an implicit cast warning on certain + * platforms (particularly Windows) */ + ctx->ots_private_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), sizeof( *ctx->ots_private_keys ) ); if( ctx->ots_private_keys == NULL ) { @@ -611,7 +613,9 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, goto exit; } - ctx->ots_public_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + /* Requires a cast to size_t to avoid an implicit cast warning on certain + * platforms (particularly Windows) */ + ctx->ots_public_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), sizeof( *ctx->ots_public_keys ) ); if( ctx->ots_public_keys == NULL ) { From 76563399fd10c835b40ff5f8cc770e0c629752b9 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 15:50:57 +0100 Subject: [PATCH 0662/1028] Fix LMS and LMOTS test dependencies Mark them as depending on PSA_WANT_ALG_SHA256 so that test_depends_hashes_psa doesn't fail Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 2 +- tests/suites/test_suite_lms.function | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index d540454230..4382421d0b 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -23,7 +23,7 @@ int check_lmots_private_key_for_leak(unsigned char * sig) /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C + * depends_on:MBEDTLS_LMS_C:PSA_WANT_ALG_SHA_256 * END_DEPENDENCIES */ diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 4e525c452e..4f49e8e65d 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -4,7 +4,7 @@ /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C + * depends_on:MBEDTLS_LMS_C:PSA_WANT_ALG_SHA_256 * END_DEPENDENCIES */ From d137c8612572546995f47809aae93ab47f7660a8 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 15:55:25 +0100 Subject: [PATCH 0663/1028] Don't skip LMS tests due to out of memory error Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.function | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 4f49e8e65d..c0cf02cb8d 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -14,7 +14,6 @@ void lms_sign_verify_test ( data_t *msg, data_t *seed ) mbedtls_lms_public_t pub_ctx; mbedtls_lms_private_t priv_ctx; unsigned char sig[MBEDTLS_LMS_SIG_LEN(MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8)]; - int rc; mbedtls_lms_public_init( &pub_ctx ); mbedtls_lms_private_init( &priv_ctx ); @@ -22,12 +21,10 @@ void lms_sign_verify_test ( data_t *msg, data_t *seed ) /* Allocation failure isn't a test failure, since it likely just means * there's not enough memory to run the test. */ - rc = mbedtls_lms_generate_private_key( &priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, + TEST_EQUAL( mbedtls_lms_generate_private_key( &priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8, mbedtls_test_rnd_std_rand, NULL, - seed->x, seed->len ); - TEST_ASSUME( rc != MBEDTLS_ERR_LMS_ALLOC_FAILED ); - TEST_EQUAL( rc, 0 ); + seed->x, seed->len ), 0 ); TEST_EQUAL( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ), 0 ); @@ -50,7 +47,6 @@ void lms_sign_verify_null_msg_test( data_t *seed ) mbedtls_lms_public_t pub_ctx; mbedtls_lms_private_t priv_ctx; unsigned char sig[MBEDTLS_LMS_SIG_LEN(MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8)]; - int rc; mbedtls_lms_public_init( &pub_ctx ); mbedtls_lms_private_init( &priv_ctx ); @@ -58,12 +54,10 @@ void lms_sign_verify_null_msg_test( data_t *seed ) /* Allocation failure isn't a test failure, since it likely just means * there's not enough memory to run the test. */ - rc = mbedtls_lms_generate_private_key( &priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, + TEST_EQUAL( mbedtls_lms_generate_private_key( &priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8, mbedtls_test_rnd_std_rand, NULL, - seed->x, seed->len ); - TEST_ASSUME( rc != MBEDTLS_ERR_LMS_ALLOC_FAILED ); - TEST_EQUAL( rc, 0 ); + seed->x, seed->len ), 0 ); TEST_EQUAL( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ), 0 ); From 781f7bedb0a3c9d7d99c5d71a9dfac61966249d6 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 09:23:11 +0100 Subject: [PATCH 0664/1028] Properly mark LMOTS leak test as failed Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 4382421d0b..c582ce700f 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -11,12 +11,13 @@ int check_lmots_private_key_for_leak(unsigned char * sig) idx < MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8); idx++ ) { - if( sig[idx] != 0x7E ) { - return 1; - } + TEST_EQUAL( sig[idx], 0x7E ); } - return 0; + return( 0 ); + +exit: + return( -1 ); } #endif /* defined(MBEDTLS_TEST_HOOKS) */ From 20d2e06ca48f4babeb7308ba5637e32ee8c4bcd2 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 09:28:18 +0100 Subject: [PATCH 0665/1028] Add cleanup frees in LMS and LMOTS tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 2 ++ tests/suites/test_suite_lms.function | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index c582ce700f..1fec900fc8 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -142,6 +142,8 @@ void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, } exit: + if( tmp_sig != NULL ) + mbedtls_free( tmp_sig ); mbedtls_lmots_public_free( &ctx ); } /* END_CASE */ diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index c0cf02cb8d..b6ae309186 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -138,6 +138,8 @@ void lms_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, } exit: + if( tmp_sig != NULL ) + mbedtls_free( tmp_sig ); mbedtls_lms_public_free( &ctx ); } /* END_CASE */ @@ -180,6 +182,8 @@ void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) } exit: + if( exported_pub_key != NULL ) + mbedtls_free( exported_pub_key ); mbedtls_lms_public_free( &ctx ); } /* END_CASE */ From d1c2a8031976641863fadf5bd91e650ee0cc304a Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 09:32:53 +0100 Subject: [PATCH 0666/1028] Remove duplicated assert from LMOTS tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 1fec900fc8..8857326fba 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -113,12 +113,6 @@ void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, MBEDTLS_ERR_LMS_VERIFY_FAILED); sig->x[0] ^= 1; - /* Altering first signature byte must cause verification failure */ - sig->x[0] ^= 1; - TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), - MBEDTLS_ERR_LMS_VERIFY_FAILED); - sig->x[0] ^= 1; - /* Altering last signature byte must cause verification failure */ sig->x[sig->len - 1] ^= 1; TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), From 534f66f3f04e549ad9efa9dba2b4edb608b2f229 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 09:39:01 +0100 Subject: [PATCH 0667/1028] Fix assert arguments in LMS and LMOTS export tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 7 ++++--- tests/suites/test_suite_lms.function | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 8857326fba..f18b79c0dc 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -163,9 +163,10 @@ void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) exported_pub_key_buf_size, &exported_pub_key_size ), 0 ); - TEST_EQUAL( exported_pub_key_buf_size, exported_pub_key_size ); - ASSERT_COMPARE( pub_key->x, MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8), - exported_pub_key, MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ); + TEST_EQUAL( exported_pub_key_buf_size, + MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ); + ASSERT_COMPARE( pub_key->x, pub_key->len, + exported_pub_key, exported_pub_key_size ); mbedtls_free(exported_pub_key); exported_pub_key = NULL; diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index b6ae309186..97f45e6428 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -165,9 +165,10 @@ void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) exported_pub_key_buf_size, &exported_pub_key_size ), 0 ); - TEST_EQUAL( exported_pub_key_buf_size, exported_pub_key_size ); - ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10), - exported_pub_key, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) ); + TEST_EQUAL( exported_pub_key_size, + MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10 ) ); + ASSERT_COMPARE( pub_key->x, pub_key->len, + exported_pub_key, exported_pub_key_size ); mbedtls_free(exported_pub_key); exported_pub_key = NULL; From 6b2c573b3d4e72a17694858dbb4c34a7ee7f8ace Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 09:41:39 +0100 Subject: [PATCH 0668/1028] And export buffer too large test to LMS and LMOTS Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 9 +++++++++ tests/suites/test_suite_lms.function | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index f18b79c0dc..94d6b8e036 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -178,6 +178,15 @@ void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); mbedtls_free(exported_pub_key); exported_pub_key = NULL; + + /* Export into too-large buffer should succeed */ + exported_pub_key_buf_size = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) + 1; + ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size); + TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, + exported_pub_key_buf_size, NULL ), + 0 ); + mbedtls_free(exported_pub_key); + exported_pub_key = NULL; } exit: diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 97f45e6428..51addea0f7 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -180,6 +180,15 @@ void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); mbedtls_free(exported_pub_key); exported_pub_key = NULL; + + /* Export into too-large buffer should succeed */ + exported_pub_key_buf_size = MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) + 1; + ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size); + TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, + exported_pub_key_buf_size, NULL ), + 0 ); + mbedtls_free(exported_pub_key); + exported_pub_key = NULL; } exit: From 1b43a7448d949a0de5c5a9beabd58ba9bdb7e192 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 09:44:27 +0100 Subject: [PATCH 0669/1028] Clean up LMS and LMOTS feature dependencies Remove SHA256 dependencies from tests, fix incorrect boolean logic in check_config, and change depends_hashes.pl to disable LMS in one test Signed-off-by: Raef Coles --- include/mbedtls/check_config.h | 2 +- tests/scripts/depends-hashes.pl | 2 +- tests/suites/test_suite_lmots.function | 2 +- tests/suites/test_suite_lms.function | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 4b2783174f..e6488c09c2 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -354,7 +354,7 @@ #endif #if defined(MBEDTLS_LMS_C) && \ - ( !defined(MBEDTLS_PSA_CRYPTO_C) && !defined(PSA_WANT_ALG_SHA256) ) + ! ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA256) ) #error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C and PSA_WANT_ALG_SHA256" #endif diff --git a/tests/scripts/depends-hashes.pl b/tests/scripts/depends-hashes.pl index 68297a6a2e..db18a92ae8 100755 --- a/tests/scripts/depends-hashes.pl +++ b/tests/scripts/depends-hashes.pl @@ -57,7 +57,7 @@ my @hash_configs = ( ['unset MBEDTLS_MD5_C'], ['unset MBEDTLS_SHA512_C', 'unset MBEDTLS_SHA384_C '], ['unset MBEDTLS_SHA384_C'], - ['unset MBEDTLS_SHA256_C', 'unset MBEDTLS_SHA224_C'], + ['unset MBEDTLS_SHA256_C', 'unset MBEDTLS_SHA224_C', 'unset MBEDTLS_LMS_C', 'unset MBEDTLS_LMS_PRIVATE'], ['unset MBEDTLS_SHA1_C'], ); diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 94d6b8e036..f2ce29a34b 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -24,7 +24,7 @@ exit: /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:PSA_WANT_ALG_SHA_256 + * depends_on:MBEDTLS_LMS_C * END_DEPENDENCIES */ diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 51addea0f7..dd37f31979 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -4,7 +4,7 @@ /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:PSA_WANT_ALG_SHA_256 + * depends_on:MBEDTLS_LMS_C * END_DEPENDENCIES */ From a21671123a6105aa03336ae77427cd73bb0f71eb Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 10:05:33 +0100 Subject: [PATCH 0670/1028] Remove `sudo pip3` in LM(OT)S tests instructions Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.data | 6 +++--- tests/suites/test_suite_lms.data | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index fdb6e43f22..6b34078c36 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -22,7 +22,7 @@ LMOTS hsslms interop test #1 # the LMS key), and the same message. # # To reproduce the signature: -# sudo pip3 install hsslms==0.1.2 +# pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle @@ -46,7 +46,7 @@ LMOTS hsslms interop test #2 # the LMS key), and the same message. # # To reproduce the signature: -# sudo pip3 install hsslms==0.1.2 +# pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle @@ -68,7 +68,7 @@ LMOTS hsslms interop NULL-message test # key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. # # To reproduce the signature: -# sudo pip3 install hsslms==0.1.2 +# pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 85aad52ed9..207d943c4e 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -19,7 +19,7 @@ LMS pyhsslms interop test #1 # and the public key before including them in a the test data. # # To reproduce the signature: -# * sudo pip3 install pyhsslms +# * pip3 install --user pyhsslms # * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv # * # * hsslms sign tmp/lms.prv message.bin @@ -44,7 +44,7 @@ LMS pyhsslms interop test #2 # and the public key before including them in a the test data. # # To reproduce the signature: -# * sudo pip3 install pyhsslms +# * pip3 install --user pyhsslms # * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv # * # * hsslms sign tmp/lms.prv message.bin (incorrect signature using leaf node 0) @@ -71,7 +71,7 @@ LMS pyhsslms interop NULL-message test # signature and the public key before including them in a the test data. # # To reproduce the signature: -# * sudo pip3 install pyhsslms +# * pip3 install --user pyhsslms # * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv # * touch message.bin (create empty message file) # * hsslms sign tmp/lms.prv message.bin (incorrect signature using leaf node 0) @@ -152,7 +152,7 @@ LMS hsslms interop test #1 # data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv # # To reproduce the signature: -# sudo pip3 install hsslms==0.1.2 +# pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle @@ -174,7 +174,7 @@ LMS hsslms interop test #2 # data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv # # To reproduce the signature: -# sudo pip3 install hsslms==0.1.2 +# pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle From 07b70d91967d42a9913f7b42a24eef3c41de0fa3 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 10:46:16 +0100 Subject: [PATCH 0671/1028] Correct typo in LMS config check Signed-off-by: Raef Coles --- include/mbedtls/check_config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index e6488c09c2..0081ca3d60 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -354,8 +354,8 @@ #endif #if defined(MBEDTLS_LMS_C) && \ - ! ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA256) ) -#error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C and PSA_WANT_ALG_SHA256" + ! ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_256) ) +#error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C and PSA_WANT_ALG_SHA_256" #endif #if defined(MBEDTLS_LMS_PRIVATE) && \ From d1c1f7f7bec94a3c6399bf09737962e36dd0bc9b Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 13:00:08 +0100 Subject: [PATCH 0672/1028] Disable LMS in all.sh tests that lack _WANT_SHA256 Signed-off-by: Raef Coles --- tests/scripts/all.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index c3a39bcd27..f7da34a3bc 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2248,6 +2248,8 @@ component_build_psa_accel_alg_md5() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_MD5 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2268,6 +2270,8 @@ component_build_psa_accel_alg_ripemd160() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_RIPEMD160 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2288,6 +2292,8 @@ component_build_psa_accel_alg_sha1() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_1 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2345,6 +2351,8 @@ component_build_psa_accel_alg_sha384() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_384 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2365,6 +2373,8 @@ component_build_psa_accel_alg_sha512() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_512 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } From cbd02adc6e4f888d2dabef6e2ecb87ab31705132 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 14:11:49 +0100 Subject: [PATCH 0673/1028] Simplify LMS context freeing Signed-off-by: Raef Coles --- library/lms.c | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/library/lms.c b/library/lms.c index ccbcd8bffd..35ca890b50 100644 --- a/library/lms.c +++ b/library/lms.c @@ -550,17 +550,24 @@ void mbedtls_lms_private_free( mbedtls_lms_private_t *ctx ) if( ctx->have_private_key ) { - for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) + if( ctx->ots_private_keys != NULL ) { - mbedtls_lmots_private_free( &ctx->ots_private_keys[idx] ); - mbedtls_lmots_public_free( &ctx->ots_public_keys[idx] ); + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) + { + mbedtls_lmots_private_free( &ctx->ots_private_keys[idx] ); + } } - if( ctx->ots_private_keys != NULL ) - mbedtls_free( ctx->ots_private_keys ); - if( ctx->ots_public_keys != NULL ) - mbedtls_free( ctx->ots_public_keys ); + { + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) + { + mbedtls_lmots_public_free( &ctx->ots_public_keys[idx] ); + } + } + + mbedtls_free( ctx->ots_private_keys ); + mbedtls_free( ctx->ots_public_keys ); } mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ); @@ -594,6 +601,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, ctx->params.type = type; ctx->params.otstype = otstype; + ctx->have_private_key = 1; ret = f_rng( p_rng, ctx->params.I_key_identifier, @@ -619,22 +627,10 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, sizeof( *ctx->ots_public_keys ) ); if( ctx->ots_public_keys == NULL ) { - /* Free just the ots private keys (since they've been allocated at this - * point) so that we can pass the context to lms_private_free (which - * will not try to free the private keys since have_private_key is not - * set. - */ - mbedtls_free(ctx->ots_private_keys); - ctx->ots_private_keys = NULL; ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; goto exit; } - /* Now that all the allocation has succeeded we set have_private_key, since - * that causes lms_private_free to free the ots keys. - */ - ctx->have_private_key = 1; - for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) { mbedtls_lmots_private_init( &ctx->ots_private_keys[idx] ); From 29c490db9796cb21a2eebadf38c0e9447f62703f Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 14:16:35 +0100 Subject: [PATCH 0674/1028] Update LMS calculate_public_key docs To avoid the word "generate" Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 7505ae462d..5e03d9b5f9 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -379,14 +379,14 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, size_t seed_size ); /** - * \brief This function generates an LMS public key from a + * \brief This function calculates an LMS public key from a * LMS context that already contains a private key. * * \note Before this function is called, the context must * have been initialized and the context must contain * a private key. * - * \param ctx The initialized LMS public context to generate the key + * \param ctx The initialized LMS public context to calculate the key * from and store it into. * * \param priv_ctx The LMS private context to read the private key From 1d88ea870f80459c896c056fc95246b4e8c29ed9 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 14:18:16 +0100 Subject: [PATCH 0675/1028] Remove unneeded NULL pointer checks in LMS tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 3 +-- tests/suites/test_suite_lms.function | 6 ++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index f2ce29a34b..0f339259cb 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -136,8 +136,7 @@ void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, } exit: - if( tmp_sig != NULL ) - mbedtls_free( tmp_sig ); + mbedtls_free( tmp_sig ); mbedtls_lmots_public_free( &ctx ); } /* END_CASE */ diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index dd37f31979..ff117ea27f 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -138,8 +138,7 @@ void lms_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, } exit: - if( tmp_sig != NULL ) - mbedtls_free( tmp_sig ); + mbedtls_free( tmp_sig ); mbedtls_lms_public_free( &ctx ); } /* END_CASE */ @@ -192,8 +191,7 @@ void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) } exit: - if( exported_pub_key != NULL ) - mbedtls_free( exported_pub_key ); + mbedtls_free( exported_pub_key ); mbedtls_lms_public_free( &ctx ); } /* END_CASE */ From 33f7d66304cf7f98205bfa89d16a2122d3f36d42 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 14:24:08 +0100 Subject: [PATCH 0676/1028] Add output check to export too-big buffer tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 2 ++ tests/suites/test_suite_lms.function | 2 ++ 2 files changed, 4 insertions(+) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 0f339259cb..13d1ee4cb4 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -184,6 +184,8 @@ void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, exported_pub_key_buf_size, NULL ), 0 ); + ASSERT_COMPARE( pub_key->x, pub_key->len, + exported_pub_key, exported_pub_key_size ); mbedtls_free(exported_pub_key); exported_pub_key = NULL; } diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index ff117ea27f..1e5ac42a65 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -186,6 +186,8 @@ void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, exported_pub_key_buf_size, NULL ), 0 ); + ASSERT_COMPARE( pub_key->x, pub_key->len, + exported_pub_key, exported_pub_key_size ); mbedtls_free(exported_pub_key); exported_pub_key = NULL; } From ed0e4591dc5bdf4f709efc8eb6301f8472d95ad0 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 15:05:47 +0100 Subject: [PATCH 0677/1028] Add output length test for LMS export too-big test Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 2 ++ tests/suites/test_suite_lms.function | 2 ++ 2 files changed, 4 insertions(+) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 13d1ee4cb4..616c39fa9e 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -184,6 +184,8 @@ void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, exported_pub_key_buf_size, NULL ), 0 ); + TEST_EQUAL( exported_pub_key_buf_size, + MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ); ASSERT_COMPARE( pub_key->x, pub_key->len, exported_pub_key, exported_pub_key_size ); mbedtls_free(exported_pub_key); diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 1e5ac42a65..baf74abc97 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -186,6 +186,8 @@ void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, exported_pub_key_buf_size, NULL ), 0 ); + TEST_EQUAL( exported_pub_key_size, + MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10 ) ); ASSERT_COMPARE( pub_key->x, pub_key->len, exported_pub_key, exported_pub_key_size ); mbedtls_free(exported_pub_key); From 493724e3c25ef649300ad691dc20179938922015 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 15:43:07 +0100 Subject: [PATCH 0678/1028] Check correct output size in LMOTS export test Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 616c39fa9e..b5b18b50f8 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -162,7 +162,7 @@ void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) exported_pub_key_buf_size, &exported_pub_key_size ), 0 ); - TEST_EQUAL( exported_pub_key_buf_size, + TEST_EQUAL( exported_pub_key_size, MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ); ASSERT_COMPARE( pub_key->x, pub_key->len, exported_pub_key, exported_pub_key_size ); @@ -184,7 +184,7 @@ void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, exported_pub_key_buf_size, NULL ), 0 ); - TEST_EQUAL( exported_pub_key_buf_size, + TEST_EQUAL( exported_pub_key_size, MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ); ASSERT_COMPARE( pub_key->x, pub_key->len, exported_pub_key, exported_pub_key_size ); From e4d96b804c3c7a1dc2097a8f1b9eafb402f92d22 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 16:29:22 +0100 Subject: [PATCH 0679/1028] Update LMS and LMOTS test comments Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.data | 11 +++++---- tests/suites/test_suite_lms.data | 37 ++++++++++++++++++------------ 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index 6b34078c36..08b8faddf6 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -21,7 +21,8 @@ LMOTS hsslms interop test #1 # This test uses the same OTS key as the LMS hsslms interop test 1 (leaf 0 of # the LMS key), and the same message. # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE @@ -45,7 +46,8 @@ LMOTS hsslms interop test #2 # This test uses the same OTS key as the LMS hsslms interop test 2 (leaf 1 of # the LMS key), and the same message. # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE @@ -67,7 +69,8 @@ LMOTS hsslms interop NULL-message test # providing direct access to the underlying OTS signature scheme. The private # key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE @@ -85,7 +88,7 @@ lmots_verify_test:"":"00000004862327ead0b0eee8bde100614b3369e183f97812c13f0979f7 LMOTS hash-sigs interop negative test (altered random value) # This test uses the valid signature from hsslms interop test 1, and then -# permutes the random value (C) of the signature, and is expected to fail to +# alters the random value (C) of the signature, and is expected to fail to # verify. lmots_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"000000041bb462a8f59a277c1706ab69b1a40b0d56a3ffe1ddf0dfa890096c7a9c48b360e1e8f7abe4dc1950c4a64545ce6c0fe2a34477ec40f56db4eec37c1a2168e3059d4338a4eb368a64be5f98b5452f2c2fad23dcac585f5fe308bfc3df0b5cbc6cf3545236ed6c5a863e677521b5b5cee0aa1e755c3bbf5fb7326fac1a88cb12dd7f8d68ebe8bad07195a12fa11299073731e67f2452009252c595fc7d9285b90aaa912eb6cf0b5debc0996ca55ad5186702b244a616c4b9e0ceeea229e1e821c1ab0db906ce87640d128f1d8c4742d9baf340a8030df726a99a9b97f139ec57d8d87efdfca235f12de64e0a993804b95227cdfd26220a84502e350faaf5f91f3f49610eda211f9409005679e32068def22a2dcce3d226d0f68c4abc727b90d9c01daa05db24d7c0c9e9e48202e3420992ba78c36bc21c45cdf218801dc7053e3cbf39c141784e7a861671588622d540187912234ce628ea9cbd1800d215641163c762d2fd9194fa54bd9b46c83754579476398a5c2fece4642f1ee286a4e9a310b5e23088c75a68b123044c1c365c8b53fe9f895fa5d76fe1277c7c0f2a39f5b233f7d2acd5358feec2255feadb1c2513c4351c9bd1afe22d159f2d392c83bf7ec26b59e78330cd346adb85ef62fee3da63150ab5e0d7ce5d0ef353895360017faf3f35aca2cf3b8eda65389e2ba86f78ebfbe73382dfe9002331f24e96e1a6e56e7cc99ee848b82ad1ade3229e9e28168acfa8c059ed03028e8c872e72ff4cf8a50b84ade908ecf229a26ff1007c476d1aa376323fc567c9471085336496b231b5245a43c6c86c6a71c1b1fb4bd87c2d0b026bff55de121620a089ed9ade51c3bd91c703844c180ef9ad0ab550b9560ba9f1452463ce20987a402213ca5c16c927a0a85091dd74fbee22cac6b1afbc7e7dec229325c25ea3b3cc5a1c48c80665f9903e482b143f7cd051bdb990355f79c62553453c72ccbcc578df77069a7b0cf6fdc6853ec2f96fb7cc100216ae1b17aa20782fb0cd0f261b76a48b5d6f7bb48fa5f78c02a11ee81a8c0c81183910af770f2e907ebd5b2dc3a2b83529f62da074ca73c434f8f30b68a5dfee740f78d2c13b53c904e46dddf723923bfbffa437a4130c8c9b6d79a57db1c408b9c023f80fb3d766cb915e722f3b3152625d77bce3ca0c01e77f3750d7d1bef1ddda8b9b4233b09c89abe5913db50847a7ea219c3f406aa4cf41b6310bafa99a7b14f94b8ccd4dc7edb1a1e963ce26a53f3be71b4151ce5fae10ca30055e754880680e38cf2f21251f229341f7af9536360a428c2593c43fd2ae471bc1fa2b45ad55742a2f12f31eed6cb67945a898650c13650c4cffeecba8655f87e49ce921ced7ab00cf54eedf0c70e5c6cfa7f006763f0ac14d80cfb1662321cdccca8b1adf426eb9ca16ef2b978bb9ac229131fa5c1266a4980449c324ebdd8bcc98916089ee0b6966da7dc25350bdc758431884359d02f5fa567b39f49a6e410da2d0363944a090926308ed0ce7d565e6c4585ea010bc38ef1c976ae16ec1fbe6fb9d4d50e49a7be8273d2d56bf4e72acbadd90d5f8dee0":"0000000447cc5b29dd0cecd01c382434a6d1686400000000761e8e577fb4d12058806fc7bdaaef0ba64e454dc59b0230a77b43bbd83dc8c6":MBEDTLS_ERR_LMS_VERIFY_FAILED diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 207d943c4e..7ff6a7c68f 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -18,7 +18,8 @@ LMS pyhsslms interop test #1 # word at the start of the key/sig. We strip these 4 bytes from the signature # and the public key before including them in a the test data. # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # * pip3 install --user pyhsslms # * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv # * @@ -43,7 +44,8 @@ LMS pyhsslms interop test #2 # word at the start of the key/sig. We strip these 4 bytes from the signature # and the public key before including them in a the test data. # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # * pip3 install --user pyhsslms # * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv # * @@ -70,7 +72,8 @@ LMS pyhsslms interop NULL-message test # "levels" word at the start of the key/sig. We strip these 4 bytes from the # signature and the public key before including them in a the test data. # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # * pip3 install --user pyhsslms # * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv # * touch message.bin (create empty message file) @@ -101,7 +104,8 @@ LMS hash-sigs interop test #1 # 4-byte "levels" word at the start of the key/sig. We strip these 4 bytes from # the signature and the public key before including them in a the test data. # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # * # * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv # * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux tmp/lms.aux @@ -128,7 +132,8 @@ LMS hash-sigs interop test #2 # 4-byte "levels" word at the start of the key/sig. We strip these 4 bytes from # the signature and the public key before including them in a the test data. # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # * # * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv # * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux tmp/lms.aux @@ -151,7 +156,8 @@ LMS hsslms interop test #1 # limited amount of available test vectors for LMS. The private key is stored in # data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE @@ -173,7 +179,8 @@ LMS hsslms interop test #2 # limited amount of available test vectors for LMS. The private key is stored in # data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE @@ -195,26 +202,26 @@ lms_verify_test:"92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a LMS negative test (invalid lms type) #1 # This test uses the data from hash-sigs interop test #1. This test has a valid -# LMOTS type (0x4) but an invalid LMS type (0x7), and should fail with a bad +# LMOTS type (0x4) but an invalid LMS type (0x5), and should fail with a bad # input data error. lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000058b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lms type) #2 # This test uses the data from hash-sigs interop test #1. This test has a valid -# LMOTS type (0x4) but an invalid LMS type (0x5), and should fail with a bad +# LMOTS type (0x4) but an invalid LMS type (0x7), and should fail with a bad # input data error. lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000078b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lm_ots type) #1 # This test uses the data from hash-sigs interop test #1. This test has an -# invalid LMOTS type (0x3) but an invalid LMS type (0x6), and should fail with a -# bad input data error. +# invalid LMOTS type (0x3) but a valid LMS type (0x6), and should fail with a +# verify-fail error. lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000003e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lm_ots type) #2 # This test uses the data from hash-sigs interop test #1. This test has an -# invalid LMOTS type (0x5) but an invalid LMS type (0x6), and should fail with a -# bad input data error. +# invalid LMOTS type (0x5) but a valid LMS type (0x6), and should fail with a +# verify-fail error. lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000005e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid leaf ID) @@ -264,11 +271,11 @@ lms_import_export_test:"000000070000000447cc5b29dd0cecd01c382434a6d16864d51b60cd LMS key import invalid LMOTS type test #1 # This test uses the valid public key for hsslms interop test 1, alters the -# LMS type to 0x7, and imports it. This should fail. +# LMOTS type to 0x3, and imports it. This should fail. lms_import_export_test:"000000060000000347cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMS key import invalid LMOTS type test #2 # This test uses the valid public key for hsslms interop test 1, alters the -# LMS type to 0x5, and imports it. This should fail, and not attempt to read +# LMOTS type to 0x5, and imports it. This should fail, and not attempt to read # invalidly outside the buffer. lms_import_export_test:"000000060000000547cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":MBEDTLS_ERR_LMS_BAD_INPUT_DATA From ce18e528ffb8304cb51f5a802dde18185a9edc15 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 16:40:48 +0100 Subject: [PATCH 0680/1028] Rename LMS private key files And remove now-unnecessary modification to check_files.py Signed-off-by: Raef Coles --- ...igs_sha256_m32_h5_lmots_sha256_n32_w8_aux} | Bin ...igs_sha256_m32_h5_lmots_sha256_n32_w8_prv} | Bin ...igs_sha256_m32_h5_lmots_sha256_n32_w8_pub} | Bin ...hss_sha256_m32_h5_lmots_sha256_n32_w8_prv} | Bin ...hss_sha256_m32_h5_lmots_sha256_n32_w8_prv} | Bin ...hss_sha256_m32_h5_lmots_sha256_n32_w8_pub} | Bin tests/scripts/check_files.py | 1 - tests/suites/test_suite_lmots.data | 12 +++---- tests/suites/test_suite_lms.data | 32 +++++++++--------- 9 files changed, 22 insertions(+), 23 deletions(-) rename tests/data_files/{lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux => lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_aux} (100%) rename tests/data_files/{lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv => lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_prv} (100%) rename tests/data_files/{lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub => lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_pub} (100%) rename tests/data_files/{lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv => lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv} (100%) rename tests/data_files/{lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv => lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv} (100%) rename tests/data_files/{lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8.pub => lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_pub} (100%) diff --git a/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux b/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_aux similarity index 100% rename from tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux rename to tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_aux diff --git a/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv b/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_prv similarity index 100% rename from tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv rename to tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_prv diff --git a/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub b/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_pub similarity index 100% rename from tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub rename to tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_pub diff --git a/tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv b/tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv similarity index 100% rename from tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv rename to tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv diff --git a/tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv b/tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv similarity index 100% rename from tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv rename to tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv diff --git a/tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8.pub b/tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_pub similarity index 100% rename from tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8.pub rename to tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_pub diff --git a/tests/scripts/check_files.py b/tests/scripts/check_files.py index 3d2ca3ea0d..a0f5e1f538 100755 --- a/tests/scripts/check_files.py +++ b/tests/scripts/check_files.py @@ -119,7 +119,6 @@ BINARY_FILE_PATH_RE_LIST = [ r'tests/data_files/.*\.req\.[^/]+\Z', r'tests/data_files/.*malformed[^/]+\Z', r'tests/data_files/format_pkcs12\.fmt\Z', - r'tests/data_files/lms_.*\Z', ] BINARY_FILE_PATH_RE = re.compile('|'.join(BINARY_FILE_PATH_RE_LIST)) diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index 08b8faddf6..e6d71d33b6 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -17,7 +17,7 @@ LMOTS hsslms interop test #1 # This test uses data from https://github.com/pmvr/python-hsslms due to the # limited amount of available test vectors for LMOTS, and few implementations # providing direct access to the underlying OTS signature scheme. The private -# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. +# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv. # This test uses the same OTS key as the LMS hsslms interop test 1 (leaf 0 of # the LMS key), and the same message. # @@ -28,7 +28,7 @@ LMOTS hsslms interop test #1 # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # # ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 0, private_key.SEED) @@ -42,7 +42,7 @@ LMOTS hsslms interop test #2 # This test uses data from https://github.com/pmvr/python-hsslms due to the # limited amount of available test vectors for LMOTS, and few implementations # providing direct access to the underlying OTS signature scheme. The private -# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. +# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv. # This test uses the same OTS key as the LMS hsslms interop test 2 (leaf 1 of # the LMS key), and the same message. # @@ -53,7 +53,7 @@ LMOTS hsslms interop test #2 # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # #ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 1, private_key.SEED) @@ -67,7 +67,7 @@ LMOTS hsslms interop NULL-message test # This test uses data from https://github.com/pmvr/python-hsslms due to the # limited amount of available test vectors for LMOTS, and few implementations # providing direct access to the underlying OTS signature scheme. The private -# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. +# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv. # # To produce another signature with this message and key (note that the actual # signature bytes will differ due to randomization): @@ -76,7 +76,7 @@ LMOTS hsslms interop NULL-message test # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # #ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 3, private_key.SEED) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 7ff6a7c68f..93a10f6ded 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -65,7 +65,7 @@ lms_verify_test:"3f4fe37f1bb9547e443e53697a12f0393efbcf87c23d91765eb36100dd5d2c4 LMS pyhsslms interop NULL-message test # This test uses data from https://github.com/russhousley/pyhsslms due to the limited # amount of available test vectors for LMS. The private key is stored in -# data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. Note that this signature +# data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv. Note that this signature # uses leaf key 2, so must be the third signature generated by the key if the # signature is to be reproduced. Message data is random. Note that hash-sigs # stores public keys and signatures in HSS form, which appends a 4-byte @@ -75,7 +75,7 @@ LMS pyhsslms interop NULL-message test # To produce another signature with this message and key (note that the actual # signature bytes will differ due to randomization): # * pip3 install --user pyhsslms -# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv # * touch message.bin (create empty message file) # * hsslms sign tmp/lms.prv message.bin (incorrect signature using leaf node 0) # * rm message.bin.sig @@ -96,8 +96,8 @@ lms_verify_test:"":"0000000200000004b219a0053b6bfe1988ade7b0a438c106262366cb6338 LMS hash-sigs interop test #1 # This test uses data from https://github.com/cisco/hash-sigs due to the # limited amount of available test vectors for LMS. The private key is stored in -# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv and -# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux. Note that this +# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_prv and +# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_aux. Note that this # signature uses leaf key 0, so must be the first signature generated by the key # if the signature is to be reproduced. Message data is random. Note that # hash-sigs stores public keys and signatures in HSS form, which appends a @@ -107,8 +107,8 @@ LMS hash-sigs interop test #1 # To produce another signature with this message and key (note that the actual # signature bytes will differ due to randomization): # * -# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv -# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux tmp/lms.aux +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_aux tmp/lms.aux # * # * /demo sign tmp/lms message.bin # * cat message.bin.sig | xxd @@ -117,15 +117,15 @@ LMS hash-sigs interop test #1 # * Save message and signature in binary format # * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the # HSS levels) -# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub tmp/lms.pub +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_pub tmp/lms.pub # * verify tmp/lms message.bin lms_verify_test:"6b7439e31ef128c54f1536f745ff1246":"0000000000000004163fc2e3d3267d8c0d9fd9e7bb7a4eae84c3d98cd565de361edc426067960fc3201d9be1c30f4e4edce91844753aa13ff21e92648ac795b7c29dd6140962b5a1fb97b02570402a498a495044edcb26d1321c52e91c60cc3feb8f8e84fc77f97fb6e7afbfe4c2f2203d8d84303e2dd212b652e08a2e5a24a333df859cea3c5a547561f7ce6d182e2a3f2f018ef7e0578621916cff905c0713fa5f2bf73248ae6985aebc4086b79ebf71b8dcbb592eb61dc6303d06dbda88063690361b0dd25ea1c2c6b4d82dddbe11740864c65c228d67e9a1710506e585a748e7e02b36706e5cff83b3589613f07c636ab7784d6a8288d33e80f063165a2ddcbb0d7da815df8043dfa500c3e313c533bf6aec959237c923813d3109bdaeb195b1337f4cf21c1c863f6261dca411819603a3ea60cf34c81b462c4979b357da2bcdf3128343ca5a8a957e3ca4eebb914d743862e29ef48e43e7c5a7aaf7a2fe1251c309c65e9143dcfb298fa0d353084f60c0779e1a09b040f13c1025ec99402b844ff9996decf4b5f0d32a0858126ff293472aa93fbc2017d39fee93ff9f0ca2752b25cfa12542bf19cc1b8c102d65b70dccf760f26cb546742ce909d45345f802a985bae6a0f922a9c2a3dc992fae9f6f2fba0c52cad82564bde6ed8af880ee7a5eb5c6436611e5da1c690831bed34e3dd65acf2b8f496b6448e957afc16c48b6cd733bc84e3606a1d0609f08015c14b5619a2723f9b22950efc7ff7b733c299fcd84ed89c4d5cd43a9a54f25fc0fa1370d184f9e8011b60ba38dfca0eeeb56ae37a5823718c8210db20c2de13c39e43970b0b53b85b9cf9ea0dd025e7db558b463c683980fe59e0defde41afe825cfb8606ca861602a7fefd7506edc81b7ab4a1e0626e0bac1f99be118dbc1e291028fc73d0a0ea6559ae1dcf7477d64742c9bef88ef04b2ee4d392cf1efa23d8b05d11d2414e64f4540623e11bbf57fb8ae219331db0df459a9849f2700e6fa7ff4edb0fc01764949e279e84374e7a57fb5ee6221b2b72dbcf2ab9c988fe07d21e169b4338887129ac503cc6c0912787778d51b4b921cf7bb17d4028b7faf6c21dd616a1ac3b50d595ae0e3662e7faa16b9dec7694462c7fb8539ece0af33cc5a3dc33641b8827bf4751a708d7bf286cf2e795b8f45b76e1109abd908d0388d6ab8ecea67b187aabd80349e4bd286e3b6eeb3535cc9c343a39fe90cb443906b19d2483b4c93d0e35cd68d9f5523d5400a2b1708ba3361bd0757ed69b1da8845594edf053995b2d96bed8210aaab25fc34b2dd58004ce800360f24861e5912ac339ed0a78548e303e728a41e05c11d79013e3971eafa8034e63ecf1c842f0d9e735ff3b5badfd63ae07f051c94a9a867260b517e5c2c75e88e03d069bd39816a2255c90de81bb79622145b7469853a02eac45289fd9f9f40e2fccdd8ddb740469331f61badc1b7f6e0145dfe30141ad2f26ac8d7ff5125dc4dff1fec57629cea4f7de4401fc056e9a38ea028ac9c666ccd3f527947672408a759a5791d9efdeb1ff25392413728a03d4c641f4ce1542b6952e7595f1eecf1060000000671b0912d734442146e128d0029101ad34a6d2d586640235c828d427dfaffdb156771f06926678fa50aa7167684c1de108944b2c4a3358f5e926368009e4500a8d4d501124bc25a4c9b1cfb954503f4ae26c92221e39c680843ae55cfca972e139c82e2e4469a703a1866fa0e6d76636591f4ad07f7d1eaa19077660ad46a6f9d534970e6a49e24621b7c7c283253dd22fb24eb7819fab84bab88e42555d5437d5afe06615a7e0d103cc8595616690f1337f4345cf418724f07d0dc4d2c0899b691691f397202204ef34342b5725dc6adfe549ab0b887572ad38113c407f96fcdfeea0ffc4f333addfec296169e53e3c5b24797a20f3b2f043f5e96920de9927da466f09389d3e52a5665f380f68666a019c201e710ab4c168d5ac952a02d5909a6fcaf498a33e2124e6a828203744ee3fe70465adde0cfbccc1b4634541638ab":"0000000600000004e18760ef2c86192aee88579e376f35cd153419d622803a483e79f6d368629308a8ab6ff663c4f108b2033af290dcedfa":0 LMS hash-sigs interop test #2 # This test uses data from https://github.com/cisco/hash-sigs due to the # limited amount of available test vectors for LMS. The private key is stored in -# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv and -# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux. Note that this +# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_prv and +# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_aux. Note that this # signature uses leaf key 1, so must be the second signature generated by the key # if the signature is to be reproduced. Message data is random. Note that # hash-sigs stores public keys and signatures in HSS form, which appends a @@ -135,8 +135,8 @@ LMS hash-sigs interop test #2 # To produce another signature with this message and key (note that the actual # signature bytes will differ due to randomization): # * -# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv -# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux tmp/lms.aux +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_aux tmp/lms.aux # * # * /demo sign tmp/lms message.bin (incorrect signature using leaf node 0) # * rm message.bin.sig @@ -147,14 +147,14 @@ LMS hash-sigs interop test #2 # * Save message and signature in binary format # * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the # HSS levels) -# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub tmp/lms.pub +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_pub tmp/lms.pub # * verify tmp/lms message.bin lms_verify_test:"0705ba8297c7b9fa5f08e37825ad24a0":"00000001000000040a432454b99750f7b703f0280f92818b0570d0267a423b377be7cf0561305d4ce987b9d8dbc1c3f8ba410bbe6b921406eb802688d2dd8a1a6fa4a124cbcae9b5a210f583a956384c06311953b038b4ad2c2808224fc3a6410cd3b89274371956bcd4253a251cba6409b09c822e1d29d7a037648a6f2562d0df6359a043622f256f5ac79736c08fc4185758ff002a8397e560d5812373946348afba2ccf2cc0f3ba741ec076d4587a54b8b625804b814c30540152a3dc843a590c94cc23ba857e4c458c8ab687b5b9b68837ee890454cc19bb5f42a1e6dc051803fab50b440067a903013f675a774b5d02cd56289518d65f869f22b2e2b58d499e9e3929ec5a9f5d6d6e03cf91486094aba7c88491cde35b81c175c40410bc402d20f0a73a4da844d3a1d47e57618b7f18fa5ac85e877b5faa1e0b6733c2d96b2970fdd6e606435e3ec50eafa88f84fb7512217aa4be5858a140f242603bda634d76c484a184298c4da903094468d032b88586fd2f35182405cd85115af6a0bbd431f2e44217a1691dd8887db91d3b97264ff552ae7dc110a3a111f2bf74ce42079055dfb8390a16d67f28b738f837aa7880f3134deabcf6ec74cdb521bff44df61c999bf7a8ddc43b64812cd4f3bfb15104867d5e585d1cbf99738e0df92660b3e9135a4377d1199b8b97362fc87ce3c99db3b8aba63ba35eb353e5ec79bcee82b9ccc1b4f7d1b8ce7e5f8813d007be3d0e45cb8e7173337a5a7c4d32ea5116e0fdbd7846ea1f366a531449c78cd7a16ce5bffcd6cccf54b7f249a74e0df6b07f6b48db42eb958ff18b06995368af0cadd82f44cf44e4b53f0993de5f06b289bee41cd25f90a9fbd1bfb1ab2451c96b07adcfb5210d291dd505ea30e5d30395c8d84eabccdd2c7d6f28a88f5e5d245a6980c57810cfe17c9a37ef5e79b7b9ca755d56a789d21985372bed42ae2830d81ebf0fad6c721bd1d3ee91ae363f40d386aac23e7c0db965539ce9bff38f0f24bec3227b5a24f4cd7fa71ca9d306faa3fc4726cdb6634f218897b79a4aed67a58799285104eed74703ec4af6d5738b27b4d6fb71e52c1149069483a7cca6c3fccbdff77312ff5c635d8b0ccd53dbaf7b498727f7c7a70d3fd1c3f217e2cbd0dfe91258acb7f79f53f56012a82da997ea777b76dac0472e5f9830a93fb09703b1c0e45cbfbf641de94fcc6c609f02a5b31ad5821ba6cd48829fc5e0c4ad78e11e4cac8efbb1b170c794b7b131b0c1c4e39fdef81db9e7acced5ec824aed0c4e6b57fd1add4191e87be1446c7c519eb671205ce8c5855ad7a2b9ff7a9cd5c45336f508d0f8d2c1152dc2656650bdaf8fced642f3a4d445b5fc49910bdbdc9635de0086ee9582a796ca9f6052de805f41dfbd3e94982a05cbd36bab583dd5b1586ddbb3b1a45f1a265bec062c1a50d220870c0c622d852e650a67f31e8eb3d19e964de0926712b7f429ad05024b8db51eb6702c39580f62f037388862251bf66f02edee9615a63957eab75b28501f9f26cecd09a5c949127c9a3095036667fce8e45ba75568d5160fa1725a9e0038145d948f437640dc4441000000066e8db13a9e79d10a4e067aad448a1847b5489a62cde3054ee1e5ff2e37549d516771f06926678fa50aa7167684c1de108944b2c4a3358f5e926368009e4500a8d4d501124bc25a4c9b1cfb954503f4ae26c92221e39c680843ae55cfca972e139c82e2e4469a703a1866fa0e6d76636591f4ad07f7d1eaa19077660ad46a6f9d534970e6a49e24621b7c7c283253dd22fb24eb7819fab84bab88e42555d5437d5afe06615a7e0d103cc8595616690f1337f4345cf418724f07d0dc4d2c0899b691691f397202204ef34342b5725dc6adfe549ab0b887572ad38113c407f96fcdfeea0ffc4f333addfec296169e53e3c5b24797a20f3b2f043f5e96920de9927da466f09389d3e52a5665f380f68666a019c201e710ab4c168d5ac952a02d5909a6fcaf498a33e2124e6a828203744ee3fe70465adde0cfbccc1b4634541638ab":"0000000600000004e18760ef2c86192aee88579e376f35cd153419d622803a483e79f6d368629308a8ab6ff663c4f108b2033af290dcedfa":0 LMS hsslms interop test #1 # This test uses data from https://github.com/pmvr/python-hsslms due to the # limited amount of available test vectors for LMS. The private key is stored in -# data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv +# data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv # # To produce another signature with this message and key (note that the actual # signature bytes will differ due to randomization): @@ -163,7 +163,7 @@ LMS hsslms interop test #1 # from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # # public_key = private_key.gen_pub() @@ -177,7 +177,7 @@ lms_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"00000000000000041394a893e40b LMS hsslms interop test #2 # This test uses data from https://github.com/pmvr/python-hsslms due to the # limited amount of available test vectors for LMS. The private key is stored in -# data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv +# data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv # # To produce another signature with this message and key (note that the actual # signature bytes will differ due to randomization): @@ -186,7 +186,7 @@ LMS hsslms interop test #2 # from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # # public_key = private_key.gen_pub() From 1951259a10e9d1caac58df2aa516b2913ddd53d5 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 16:47:13 +0100 Subject: [PATCH 0681/1028] Update how lms.c imports platform.h Signed-off-by: Raef Coles --- library/lms.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/library/lms.c b/library/lms.c index 35ca890b50..46ea567f2f 100644 --- a/library/lms.c +++ b/library/lms.c @@ -44,15 +44,7 @@ #include "mbedtls/error.h" #include "mbedtls/platform_util.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #define SIG_Q_LEAF_ID_OFFSET (0) #define SIG_OTS_SIG_OFFSET (SIG_Q_LEAF_ID_OFFSET + \ From a2514f622f4f43ed65041b6289db6c13b3f4070e Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 17:04:21 +0100 Subject: [PATCH 0682/1028] Update pyhsslms test instructions with script Due to tool name conflict hampering data reproduction Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.data | 46 +++++++++++++++++--------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 93a10f6ded..722def7d2d 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -22,17 +22,17 @@ LMS pyhsslms interop test #1 # signature bytes will differ due to randomization): # * pip3 install --user pyhsslms # * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv -# * -# * hsslms sign tmp/lms.prv message.bin -# * cat message.bin.sig | xxd +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_pub tmp/lms.pub # -# To validate the signature: -# * Save message and signature in binary format -# * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the -# HSS levels) -# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8 tmp/lms.pub -# * hsslms verify tmp/lms message.bin -lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 +# import pyhsslms +# +# private_key = pyhsslms.HssLmsPrivateKey('tmp/lms') +# +# message = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') +# public_key = private_key.hss_pub +# sig = private_key.sign(message) +# print('lms_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), public_key.serialize().hex())) +lms_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"0000000000000000000000042c85763d2abaedaecd484517ff85138e8ab7f621585a6f8f5e072c9c0851e89aa6bb116a2cef094155cb142f0bdb84dddfa3ab236dd3bd1019b2a4caa8e26c011d3f9fc8f7df57d8f475564d5b5bd92af9f62137e176cda914bac6e07a086d287d2d9e6d7b9ad768462a39930c19761905136345a0a9f2e28f5bcd288c9137cc828bc790be3020405f4e273b6749dc35d1f4bfea3eb679ca1b46fe26196dbb7ba7f0d56643e716ca3a2f0491fbe5c5aec80ab1a4f718577655e3e56ced0e562f137c7f2be6a9c4589442f23e0c51f19fed5b9e834ffb26dca160d4fe11b7e66bf4fa099bea131620e2906fcbbf5071348cedcb70c372a8a99f7e582f02858d0d7c66ea45728a11420cf20937362dce440f0b8a96fa47e6d03470044555e5a46ec758d4e86b773afe5f5b97c328990a2e4ed59e879ec5f4c59eaaec13cc6790d38a4754a5f0029e53b4461406f6e958dc7ca3a88984e675533cac7f54c00fdfb879acd13404b091e599248eb69624bb2a8f73be37e3ec9fb5d6b9cf65f738333d93d82558c7552ba39f6afce7a7bb6756083e1e61c4a02c36a501c19b08856ba9ff07de3a0e1a6a44abcd0a663643bd8dddf5949eb4ce86feb93ba59f15b18fba26098a8a3a2aa1e5ad79155728c28904a1b218426744b4897a263be0954440e0a85ec378f922a91bbdb098b07d5873667277d22218a3b3a64292648da86b4aaa6af23fd6efa6567b184781159ca9d69619da9b7c1e9c2f9cafcc1f6ca244ae6ced58d880b72cd3fa1269b1d634fd4f551815ce59701773f6454edca537138bc00540c01f0735946151747a3ecb591775b86ecdb58d24aebb67e204e1e17882563a089c13ccea1e8baa5ed3515fd3d691697d826829fbf33a234198abac4bebc6ea6e56cba0925412b8f37bc1e532012b1d1fabf99d1b5ff15ba323ac6b5ba89353a115a5619755d1481fdce82180430fbeef3466e188b6508713ec958074ab6c81a30141a6f14b7768b7f5b25712f9a2aedd0a0b9fae183472b290b51ee92a5ddbcca3994dbb7860f13b9fde81ade00c2c29a0692033d8d2a6827fcc9b50b15b94c2507636710ce681b5b2d5792ea2e0c3a8bb4e8a3c00ab0fa924c228d88a47d649e6804394767db291d2e6b0976f56209d0cf8d2804f402342e98764cb8cee65dde7df65cb241fd2af599ffd8063fd5a28ff4f105c15f7b836cc792402c78c2281302e3cdf7f5e11beacef8b5c5a41ed8a6c30d622cca1fd7075aa12e3d7d54f2c4b7375b8eac6c1be8f8b7e97c17f73b698d01d5f0fa3c644b0b225b390cd613c18ea141ecd1801ad9a4518db5c1c115360b09dda5071ff130d3bff4809e3a1ce9ab5115d86f46cf8b8733271415582d97fa479ede1393d455cf9d227a4248e7d56d280075af69fe8946ac4a98056ac5e4f89a54d813222fb76fcf700bc34e3c9e3650c16cafc83d16e6f3240c443c64e807495a482a66a77d3b552d167c0d0355a25266a3d55ba593b68eaab6c24b0264e3832f08ca0dd91cc8a711c9e23ad37b76e8e658f6b1f61d5e448787fb57f13bcbf88e6939c265d3d6c07295703000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"000000010000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 LMS pyhsslms interop test #2 # This test uses data from https://github.com/russhousley/pyhsslms due to the @@ -48,19 +48,21 @@ LMS pyhsslms interop test #2 # signature bytes will differ due to randomization): # * pip3 install --user pyhsslms # * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv -# * -# * hsslms sign tmp/lms.prv message.bin (incorrect signature using leaf node 0) -# * rm message.bin.sig -# * hsslms sign tmp/lms.prv message.bin (correct signature using leaf node 1) -# * cat message.bin.sig | xxd +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_pub tmp/lms.pub # -# To validate the signature: -# * Save message and signature in binary format -# * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the -# HSS levels) -# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8 tmp/lms.pub -# * hsslms verify tmp/lms message.bin -lms_verify_test:"3f4fe37f1bb9547e443e53697a12f0393efbcf87c23d91765eb36100dd5d2c48":"00000001000000046fe15c33e5f4396fe8af67d20cd9886c59edb8aa6e005a206427d55c66cffa0d552114c88c70a6e07a8e69c53568b3deac7835f5706cd76152fc6b8dd624cf42e372ffccdb6a96a0b5028e85181e8fd67b77fb0ff38fcce830c5b65dfe16762550d5450eea7a39bb3dc745c7fcc240982ed6d1ae251822b2ca210b5c612aaf559280a7b3ccb5d68c6ea1fb6784d5134004570628f5b35a8517358ba47c6c8b827eda2e16925e945f00a42a7eb6c9034891982e8b116a43cb817bd1f67c317a20f98e1b23809c614b60231c475f24f8c2437c36b452253d517cfb0ffaafa4b53248d3f516fda0417a74d0f43771f7369ca71064e2f54fb1bd98e028fdfe3157ef6f6470c32d4b7baaae57e1b104f4c81073cb9fd339349106b699b279877b2291e32675c6a8a82e35f1b337e91d8a29c8d5c046ceb6246c44467a4a11cff22abe98b10b6a6d68361d15f140b06659b90561ea43fd9c39903a4d2be84fa89642120498ff377024c42a687fc87180a29bd030455fc453ae84c1c747a35ca81f47beba61fcd6a63970b21ed8ee74e00371e7439cb790b00bdfa89628e145698c4ee04ddb528ef56dced72754659e87f25b8e92e60252ecc5580646dceae45d1ca986b307c459249ab3b0fc85f43eb22779711846f2ee13ee0f4060a7edd95c73209ff735ce44fa02145cfa6916a305e668fd08aa943c72f2167705450037dda5f688bcad385582bf1bfe3b8316f7325837c10d193d4d898776134d420107f136ff2080563d9c4bcd48af7ef9f2cfafe517082aac1b54ebab41388c171668d03c64e62208a60a8cfa81483440b17a359e95c730299a287084d49c623f3547d3ce7936d69cb478c0533693732e7aa3161370decc75f7ae52fb0065584a20851469c07d8aa78c0ae28e7d42e86b908ecd5161c3b74409d67d639c39b99bf03f9ec3ddfb607bc594dffdfa6393b37a2cfd0dcb18ff9d63aba806821dee85aac0938fdee86fe21045c0c200527ce64be88cd971902dc8adac1f14e212c6e03d89c9e268046448c5a285f287a9896f59acb93fb12e3ac62d1df44beba165a26403d4f738acd561834c3f4d554c4bc8f20eb90199b0c3f332d19c033eaca1339ef8d029026d2aa76760e11b27427236f94fcefc4a6844937559495a36ebbde0b116c2644469fda60611d9f6ff1b189a8ddf3073acc5a55f1b0605de7c42a660f4897abd14ae485457e18b24e3d71222ae79660266ce53e89d1b60ce1622d1ef8ce3ed5179828ceb7c7298f9d10a309830ae7b530a913cb6306b7d2ce7b10753e817314fd9b6ef584fab9aba0b617cbe1a54a8610096615b56fd5b6798ce98ea866da2911b351ef5ea4411a44c726c019cf375a169fa6fd66f54d59f04e4f615e8da822413e017b60e93412e6195d4d7b7ec269e6f59dc072ba1e688a651bb45a27612949bb9eb6d0fa887393707a9c7a07f2b0640fc67dbb55d288501c394f0b61ea4c2bc1af6599032a0f8f3edef2ef5b007d3618856d48aec7894e9a4b802caf9c3f0022c39c44b4a6271f81aba0f250997ddd423e3da0461fb687e56e20e9d4a2c38d78d000000063b71be980cffb4e8a8e310341d3b711ab19545ae90c3ac6adcbeb764419411a6ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 +#import pyhsslms +# +#private_key = pyhsslms.HssLmsPrivateKey('tmp/lms') +# +#message = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') +#public_key = private_key.hss_pub +#sig = private_key.sign(message) +# +#message = bytes.fromhex('92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1') +#public_key = private_key.hss_pub +#sig = private_key.sign(message) +#print('lms_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), public_key.serialize().hex())) +lms_verify_test:"92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1":"0000000000000001000000042115dafc81fb6404f904c6037b00c970a0790ceadf0d39f93eddae43ee0daffa0088358a8f89ca5c2b2af0d55c4ecdcbdd84953ce4043d2657ada39f4344ace04e3c4ae3d72788214d28d1b5c85af7a6d3d9d85594a907a9a39b258d4385700a6c001b52923846f68a991a86ddad9b272c98064d43142d339c1cc64e833f7f5346a70b1ef77cb197c66ef68e7a41678ec1dedfe5b6d6e22746b839df8ffdf6d6830f86e47a0370a17646ada2e3f13ee68e6cfdcbb20c0b05e47c088bc27a1e4010aca6f42f2e4c92b28d4f8591fcab60c57fea248b6e8c412b6806f956e459252df4dedbbbecdbaa57f0f15e91ab9fc1c8dae1e1ba5556faa8d618bef9f977b3571b6438f13583f5a2e4036f450a89881b108d44bd8a6700c544d12e1ba48eaa9f53eed260f0dc2bf8bd630565af7d9e182539957780b0771365d4fe57d9fb0f76b2e4e7737fd3d8e8ba67d16af59c13563ceda4d632a0f7d742c98e05d29fb752ccddca2b8e8cc0bb3e57547dbe62d77fb792568cfc8218291a057fc61d94137556f17301e4b7ab3b8f33610925aa5160397665212e16bdc3fffc7ae0ce22c83eb357409bb08b38585628b1475931e09d65986dadf01aff0f7b0e7d19cce8318ea2fcf112710da63b25b3fb1f28fa387e0dc4eea17e0cd7f1e09e2a0cf0797199750f88d4b1d597c15a8694c68e6ac04564f5ee826d612839e2a26c4e7db4e4bd4919ef5ab1730a97bc5ec0c89c93dea4e8bca06426b121bf065ed43a7f2c91ee7211c53d6111de7ccff339a99203de88fb1ec592af5a4e9b2bfc437d0be7dd3aad57f5a84a4a87522cca5fc64176acf033f25f6ec10c673f38c0a3eca954c2acdad80674bac208c0c8be1ed50ed3f41e14c4edef82fe878444c4c874fbd0019e697b3401971b9ae1b73824079de84fc889f6108ea53b94fd50eaa56ccc0fa466168b6fb4322ac01d3429a109e55d6a2459ebfb0297b32bf1eea33fec4317eab77f2d415bfe5ac243e6e6ba26f9a4dccd5bf921c813218268106c129081da409b1808eedaeebf420f768935c0c91981dc48bc07926649926cf62f596582e8b3b9f9a18e0a91221a1d03913245792269ed260071dbfb27240d78a3d98945414da4bc7e4267b8a56cc18d2a8cc2fbe0206989541be84c181dc8aea74654514d894098534963449fc7e5ecd98218c93b38c925761fae62056dd7156b215fdf48ab36d230ab6feb3df3a590fa267e8c0cb78c2f2c90ab7c71dfa97e148a03c427077ec2abc08a3ec2ec7b2503a3dc988f6a9e5362e1043be819e78c71ae96646431eb83d6c9f91edbca6507c31a44f0b643c0028813559e8b5894575461d728ed633b89d660be1635e921fac6844071687b9c82b4aedfdc7cadfee07f113906cf4f78b7e8397f6be3872a53a31e15b54443753b4197e942e2512a9703d729116e683ad9a718f0fa15cf94cc2676498e6d2f207b2d3fd61dba1ad0291eb9e243c4ab771ee4f92ac782fd72b35abff18fd91198007d604b74b7d2741e36fa74c3a1732217b06f1d2e4e34d61012e83f99d03f1e83c97150dedd04f67978620da7e0e5000000063b71be980cffb4e8a8e310341d3b711ab19545ae90c3ac6adcbeb764419411a6ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"000000010000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 LMS pyhsslms interop NULL-message test # This test uses data from https://github.com/russhousley/pyhsslms due to the limited From d543697092b0155669fccf4837f0d27cf9cb0ce2 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 17:06:42 +0100 Subject: [PATCH 0683/1028] Fix minor type in LMS test description Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.data | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 722def7d2d..de0ee5a61f 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -262,12 +262,12 @@ lms_import_export_test:"00000006000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMS key import invalid LMS type test #1 # This test uses the valid public key for hsslms interop test 1, alters the -# LMS type to 0x7, and imports it. This should fail. +# LMS type to 0x5, and imports it. This should fail. lms_import_export_test:"000000050000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMS key import invalid LMS type test #2 # This test uses the valid public key for hsslms interop test 1, alters the -# LMS type to 0x5, and imports it. This should fail, and not attempt to read +# LMS type to 0x7, and imports it. This should fail, and not attempt to read # invalidly outside the buffer. lms_import_export_test:"000000070000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":MBEDTLS_ERR_LMS_BAD_INPUT_DATA From f8bfe2783b2a2c4c7fcb5ac6ce776443f3345d22 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 17:35:28 +0100 Subject: [PATCH 0684/1028] Remove bad character from LMS test case Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index de0ee5a61f..eccdd61ea0 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -32,7 +32,7 @@ LMS pyhsslms interop test #1 # public_key = private_key.hss_pub # sig = private_key.sign(message) # print('lms_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), public_key.serialize().hex())) -lms_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"0000000000000000000000042c85763d2abaedaecd484517ff85138e8ab7f621585a6f8f5e072c9c0851e89aa6bb116a2cef094155cb142f0bdb84dddfa3ab236dd3bd1019b2a4caa8e26c011d3f9fc8f7df57d8f475564d5b5bd92af9f62137e176cda914bac6e07a086d287d2d9e6d7b9ad768462a39930c19761905136345a0a9f2e28f5bcd288c9137cc828bc790be3020405f4e273b6749dc35d1f4bfea3eb679ca1b46fe26196dbb7ba7f0d56643e716ca3a2f0491fbe5c5aec80ab1a4f718577655e3e56ced0e562f137c7f2be6a9c4589442f23e0c51f19fed5b9e834ffb26dca160d4fe11b7e66bf4fa099bea131620e2906fcbbf5071348cedcb70c372a8a99f7e582f02858d0d7c66ea45728a11420cf20937362dce440f0b8a96fa47e6d03470044555e5a46ec758d4e86b773afe5f5b97c328990a2e4ed59e879ec5f4c59eaaec13cc6790d38a4754a5f0029e53b4461406f6e958dc7ca3a88984e675533cac7f54c00fdfb879acd13404b091e599248eb69624bb2a8f73be37e3ec9fb5d6b9cf65f738333d93d82558c7552ba39f6afce7a7bb6756083e1e61c4a02c36a501c19b08856ba9ff07de3a0e1a6a44abcd0a663643bd8dddf5949eb4ce86feb93ba59f15b18fba26098a8a3a2aa1e5ad79155728c28904a1b218426744b4897a263be0954440e0a85ec378f922a91bbdb098b07d5873667277d22218a3b3a64292648da86b4aaa6af23fd6efa6567b184781159ca9d69619da9b7c1e9c2f9cafcc1f6ca244ae6ced58d880b72cd3fa1269b1d634fd4f551815ce59701773f6454edca537138bc00540c01f0735946151747a3ecb591775b86ecdb58d24aebb67e204e1e17882563a089c13ccea1e8baa5ed3515fd3d691697d826829fbf33a234198abac4bebc6ea6e56cba0925412b8f37bc1e532012b1d1fabf99d1b5ff15ba323ac6b5ba89353a115a5619755d1481fdce82180430fbeef3466e188b6508713ec958074ab6c81a30141a6f14b7768b7f5b25712f9a2aedd0a0b9fae183472b290b51ee92a5ddbcca3994dbb7860f13b9fde81ade00c2c29a0692033d8d2a6827fcc9b50b15b94c2507636710ce681b5b2d5792ea2e0c3a8bb4e8a3c00ab0fa924c228d88a47d649e6804394767db291d2e6b0976f56209d0cf8d2804f402342e98764cb8cee65dde7df65cb241fd2af599ffd8063fd5a28ff4f105c15f7b836cc792402c78c2281302e3cdf7f5e11beacef8b5c5a41ed8a6c30d622cca1fd7075aa12e3d7d54f2c4b7375b8eac6c1be8f8b7e97c17f73b698d01d5f0fa3c644b0b225b390cd613c18ea141ecd1801ad9a4518db5c1c115360b09dda5071ff130d3bff4809e3a1ce9ab5115d86f46cf8b8733271415582d97fa479ede1393d455cf9d227a4248e7d56d280075af69fe8946ac4a98056ac5e4f89a54d813222fb76fcf700bc34e3c9e3650c16cafc83d16e6f3240c443c64e807495a482a66a77d3b552d167c0d0355a25266a3d55ba593b68eaab6c24b0264e3832f08ca0dd91cc8a711c9e23ad37b76e8e658f6b1f61d5e448787fb57f13bcbf88e6939c265d3d6c07295703000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"000000010000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 +lms_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"0000000000000000000000042c85763d2abaedaecd484517ff85138e8ab7f621585a6f8f5e072c9c0851e89aa6bb116a2cef094155cb142f0bdb84dddfa3ab236dd3bd1019b2a4caa8e26c011d3f9fc8f7df57d8f475564d5b5bd92af9f62137e176cda914bac6e07a086d287d2d9e6d7b9ad768462a39930c19761905136345a0a9f2e28f5bcd288c9137cc828bc790be3020405f4e273b6749dc35d1f4bfea3eb679ca1b46fe26196dbb7ba7f0d56643e716ca3a2f0491fbe5c5aec80ab1a4f718577655e3e56ced0e562f137c7f2be6a9c4589442f23e0c51f19fed5b9e834ffb26dca160d4fe11b7e66bf4fa099bea131620e2906fcbbf5071348cedcb70c372a8a99f7e582f02858d0d7c66ea45728a11420cf20937362dce440f0b8a96fa47e6d03470044555e5a46ec758d4e86b773afe5f5b97c328990a2e4ed59e879ec5f4c59eaaec13cc6790d38a4754a5f0029e53b4461406f6e958dc7ca3a88984e675533cac7f54c00fdfb879acd13404b091e599248eb69624bb2a8f73be37e3ec9fb5d6b9cf65f738333d93d82558c7552ba39f6afce7a7bb6756083e1e61c4a02c36a501c19b08856ba9ff07de3a0e1a6a44abcd0a663643bd8dddf5949eb4ce86feb93ba59f15b18fba26098a8a3a2aa1e5ad79155728c28904a1b218426744b4897a263be0954440e0a85ec378f922a91bbdb098b07d5873667277d22218a3b3a64292648da86b4aaa6af23fd6efa6567b184781159ca9d69619da9b7c1e9c2f9cafcc1f6ca244ae6ced58d880b72cd3fa1269b1d634fd4f551815ce59701773f6454edca537138bc00540c01f0735946151747a3ecb591775b86ecdb58d24aebb67e204e1e17882563a089c13ccea1e8baa5ed3515fd3d691697d826829fbf33a234198abac4bebc6ea6e56cba0925412b8f37bc1e532012b1d1fabf99d1b5ff15ba323ac6b5ba89353a115a5619755d1481fdce82180430fbeef3466e188b6508713ec958074ab6c81a30141a6f14b7768b7f5b25712f9a2aedd0a0b9fae183472b290b51ee92a5ddbcca3994dbb7860f13b9fde81ade00c2c29a0692033d8d2a6827fcc9b50b15b94c2507636710ce681b5b2d5792ea2e0c3a8bb4e8a3c00ab0fa924c228d88a47d649e6804394767db291d2e6b0976f56209d0cf8d2804f402342e98764cb8cee65dde7df65cb241fd2af599ffd8063fd5a28ff4f105c15f7b836cc792402c78c2281302e3cdf7f5e11beacef8b5c5a41ed8a6c30d622cca1fd7075aa12e3d7d54f2c4b7375b8eac6c1be8f8b7e97c17f73b698d01d5f0fa3c644b0b225b390cd613c18ea141ecd1801ad9a4518db5c1c115360b09dda5071ff130d3bff4809e3a1ce9ab5115d86f46cf8b8733271415582d97fa479ede1393d455cf9d227a4248e7d56d280075af69fe8946ac4a98056ac5e4f89a54d813222fb76fcf700bc34e3c9e3650c16cafc83d16e6f3240c443c64e807495a482a66a77d3b552d167c0d0355a25266a3d55ba593b68eaab6c24b0264e3832f08ca0dd91cc8a711c9e23ad37b76e8e658f6b1f61d5e448787fb57f13bcbf88e6939c265d3d6c07295703000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"000000010000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 LMS pyhsslms interop test #2 # This test uses data from https://github.com/russhousley/pyhsslms due to the From aa9d52bcdc3bd6fb591a32df0954143ec1de3fd1 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 17:53:40 +0100 Subject: [PATCH 0685/1028] Rename LMS private key files to match library name Signed-off-by: Raef Coles --- ...ms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv} | Bin ..._pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv} | Bin ..._pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_pub} | Bin tests/suites/test_suite_lms.data | 4 ++-- 4 files changed, 2 insertions(+), 2 deletions(-) rename tests/data_files/{lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv => lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv} (100%) rename tests/data_files/{lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv => lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv} (100%) rename tests/data_files/{lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_pub => lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_pub} (100%) diff --git a/tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv b/tests/data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv similarity index 100% rename from tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv rename to tests/data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv diff --git a/tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv b/tests/data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv similarity index 100% rename from tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv rename to tests/data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv diff --git a/tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_pub b/tests/data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_pub similarity index 100% rename from tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_pub rename to tests/data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_pub diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index eccdd61ea0..89ad581965 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -165,7 +165,7 @@ LMS hsslms interop test #1 # from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # # public_key = private_key.gen_pub() @@ -188,7 +188,7 @@ LMS hsslms interop test #2 # from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # # public_key = private_key.gen_pub() From 6d7d94a821425f0efc7daec621d83aa930715ca8 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 17:55:46 +0100 Subject: [PATCH 0686/1028] Use correct export length in LMS export tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 5 ++--- tests/suites/test_suite_lms.function | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index b5b18b50f8..53ab02ff6e 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -182,10 +182,9 @@ void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) exported_pub_key_buf_size = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) + 1; ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size); TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, - exported_pub_key_buf_size, NULL ), + exported_pub_key_buf_size, + &exported_pub_key_size ), 0 ); - TEST_EQUAL( exported_pub_key_size, - MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ); ASSERT_COMPARE( pub_key->x, pub_key->len, exported_pub_key, exported_pub_key_size ); mbedtls_free(exported_pub_key); diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index baf74abc97..c5c8aa4b90 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -184,10 +184,9 @@ void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) exported_pub_key_buf_size = MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) + 1; ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size); TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, - exported_pub_key_buf_size, NULL ), + exported_pub_key_buf_size, + &exported_pub_key_size ), 0 ); - TEST_EQUAL( exported_pub_key_size, - MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10 ) ); ASSERT_COMPARE( pub_key->x, pub_key->len, exported_pub_key, exported_pub_key_size ); mbedtls_free(exported_pub_key); From 8bccc999d9dd0e04ee83ea01348267cec6c7512f Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 17:57:31 +0100 Subject: [PATCH 0687/1028] Don't mention error type in LMS test comments Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.data | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 89ad581965..869153f786 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -204,26 +204,22 @@ lms_verify_test:"92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a LMS negative test (invalid lms type) #1 # This test uses the data from hash-sigs interop test #1. This test has a valid -# LMOTS type (0x4) but an invalid LMS type (0x5), and should fail with a bad -# input data error. +# LMOTS type (0x4) but an invalid LMS type (0x5), and should fail. lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000058b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lms type) #2 # This test uses the data from hash-sigs interop test #1. This test has a valid -# LMOTS type (0x4) but an invalid LMS type (0x7), and should fail with a bad -# input data error. +# LMOTS type (0x4) but an invalid LMS type (0x7), and should fail. lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000078b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lm_ots type) #1 # This test uses the data from hash-sigs interop test #1. This test has an -# invalid LMOTS type (0x3) but a valid LMS type (0x6), and should fail with a -# verify-fail error. +# invalid LMOTS type (0x3) but a valid LMS type (0x6), and should fail. lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000003e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lm_ots type) #2 # This test uses the data from hash-sigs interop test #1. This test has an -# invalid LMOTS type (0x5) but a valid LMS type (0x6), and should fail with a -# verify-fail error. +# invalid LMOTS type (0x5) but a valid LMS type (0x6), and should fail. lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000005e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid leaf ID) From 2875aa7b0140c923e69e402ed9e30faf3d752092 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 13 Oct 2022 20:45:05 +0200 Subject: [PATCH 0688/1028] Fix instructions and test data for pyhsslms interop tests The test data was invalid because it had the extra 4-byte prefix for HSS. Regenerate it (which produces completely new signatures since it is randomized). Rearrange the reproduction instructions for the second test case so that it shows more clearly how to generate a second signature with the same private key. Signed-off-by: Gilles Peskine --- tests/suites/test_suite_lms.data | 46 +++++++++++--------------------- 1 file changed, 15 insertions(+), 31 deletions(-) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 869153f786..7802a70e68 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -13,7 +13,7 @@ LMS pyhsslms interop test #1 # limited amount of available test vectors for LMS. The private key is stored in # data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv. Note that this signature # uses leaf key 0, so must be the first signature generated by the key if the -# signature is to be reproduced. Message data is random. Note that hash-sigs +# signature is to be reproduced. Message data is random. Note that pyhsslms # stores public keys and signatures in HSS form, which appends a 4-byte "levels" # word at the start of the key/sig. We strip these 4 bytes from the signature # and the public key before including them in a the test data. @@ -27,42 +27,26 @@ LMS pyhsslms interop test #1 # import pyhsslms # # private_key = pyhsslms.HssLmsPrivateKey('tmp/lms') -# -# message = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') # public_key = private_key.hss_pub -# sig = private_key.sign(message) -# print('lms_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), public_key.serialize().hex())) -lms_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"0000000000000000000000042c85763d2abaedaecd484517ff85138e8ab7f621585a6f8f5e072c9c0851e89aa6bb116a2cef094155cb142f0bdb84dddfa3ab236dd3bd1019b2a4caa8e26c011d3f9fc8f7df57d8f475564d5b5bd92af9f62137e176cda914bac6e07a086d287d2d9e6d7b9ad768462a39930c19761905136345a0a9f2e28f5bcd288c9137cc828bc790be3020405f4e273b6749dc35d1f4bfea3eb679ca1b46fe26196dbb7ba7f0d56643e716ca3a2f0491fbe5c5aec80ab1a4f718577655e3e56ced0e562f137c7f2be6a9c4589442f23e0c51f19fed5b9e834ffb26dca160d4fe11b7e66bf4fa099bea131620e2906fcbbf5071348cedcb70c372a8a99f7e582f02858d0d7c66ea45728a11420cf20937362dce440f0b8a96fa47e6d03470044555e5a46ec758d4e86b773afe5f5b97c328990a2e4ed59e879ec5f4c59eaaec13cc6790d38a4754a5f0029e53b4461406f6e958dc7ca3a88984e675533cac7f54c00fdfb879acd13404b091e599248eb69624bb2a8f73be37e3ec9fb5d6b9cf65f738333d93d82558c7552ba39f6afce7a7bb6756083e1e61c4a02c36a501c19b08856ba9ff07de3a0e1a6a44abcd0a663643bd8dddf5949eb4ce86feb93ba59f15b18fba26098a8a3a2aa1e5ad79155728c28904a1b218426744b4897a263be0954440e0a85ec378f922a91bbdb098b07d5873667277d22218a3b3a64292648da86b4aaa6af23fd6efa6567b184781159ca9d69619da9b7c1e9c2f9cafcc1f6ca244ae6ced58d880b72cd3fa1269b1d634fd4f551815ce59701773f6454edca537138bc00540c01f0735946151747a3ecb591775b86ecdb58d24aebb67e204e1e17882563a089c13ccea1e8baa5ed3515fd3d691697d826829fbf33a234198abac4bebc6ea6e56cba0925412b8f37bc1e532012b1d1fabf99d1b5ff15ba323ac6b5ba89353a115a5619755d1481fdce82180430fbeef3466e188b6508713ec958074ab6c81a30141a6f14b7768b7f5b25712f9a2aedd0a0b9fae183472b290b51ee92a5ddbcca3994dbb7860f13b9fde81ade00c2c29a0692033d8d2a6827fcc9b50b15b94c2507636710ce681b5b2d5792ea2e0c3a8bb4e8a3c00ab0fa924c228d88a47d649e6804394767db291d2e6b0976f56209d0cf8d2804f402342e98764cb8cee65dde7df65cb241fd2af599ffd8063fd5a28ff4f105c15f7b836cc792402c78c2281302e3cdf7f5e11beacef8b5c5a41ed8a6c30d622cca1fd7075aa12e3d7d54f2c4b7375b8eac6c1be8f8b7e97c17f73b698d01d5f0fa3c644b0b225b390cd613c18ea141ecd1801ad9a4518db5c1c115360b09dda5071ff130d3bff4809e3a1ce9ab5115d86f46cf8b8733271415582d97fa479ede1393d455cf9d227a4248e7d56d280075af69fe8946ac4a98056ac5e4f89a54d813222fb76fcf700bc34e3c9e3650c16cafc83d16e6f3240c443c64e807495a482a66a77d3b552d167c0d0355a25266a3d55ba593b68eaab6c24b0264e3832f08ca0dd91cc8a711c9e23ad37b76e8e658f6b1f61d5e448787fb57f13bcbf88e6939c265d3d6c07295703000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"000000010000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 +# +# message1 = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') +# sig1 = private_key.sign(message1)[4:] +# print('lms_verify_test:"{}":"{}":"{}":0'.format(message1.hex(), sig1.hex(), public_key.serialize()[4:].hex())) +lms_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"000000000000000436c1e7d365851f12310f77341f4f994da12f39ad5d4cddf51563e80c98640f7edcc6ca027a76e48fe8f01f077f2733026c75e76fdb236b981e7bbe92e37527a5dc64d67449106387ab0ffffd5b5d4187165b4f03965dbdc5c652a4fc81ab83e951b24b61bf86d4d9a7e8d15206cac92c866b5bb358745306525955c56dfc925c48d0259865372043643c3b11daedd40d474c386daa36e3887bb65633cab290078eb2bc24c478a9ae18ac9fbd7c4a6e5338410b22adf02a27178c5a6e2d9ad403120d76c4dd27ec8974943b8226f86834364ac40984a96f1a1201e50eaf31c44e1c12b03a0cab40f6dcfc8acacfbd46333b48985e8b3a843c8f562a8007f69586444114adade8931adbdd636ee055423e33e4fddeff509a64b4589d25034adca9d55359c1489699cc6438c21da4b01d5403f53c2308fa28a9318235b788c15b37d359217301e9d0fa1b9a3b71ef95aca3657a976fd021ce20bbd4674d1a0cc551050b21ecd96f74a591bd84b5e9ae8b966592721a24bf0e16a44102c86999697ade9f7c937277fe8447b65573776507eda7725fbdf5ce27cdf6552d57b76e6f807a575dae1c9abaeb4667bcf0534ce78796f542b65a109bd9650b880d0ca638cf5de1ad97f6c52fa24951404cad923f649aabe664fabf318fc5910a8fecae45479b36c4961572a9d472b6de23cd601ae0d79ec98dcf9d0d5de6ebc9e71665d2b7066a8cdb93a5f65f48978fee68ed8c94a43af8759a2603321af84d22a4a37d7dfe6811f3d9b3c1bd9940214678f784658bf224a6e7efe22e30b962c7cbd18bb92df3d5e86b81493db30d761fb4775dab56a6c446f2b34d906944a72cf71f4f637f0668069f24ebb55e1c50b52c2f35b568b66fa648f5ebf10f74ff48246c3ead6cd6a5901c35f3411584760574c2db86ee5d23a094bffc16369f9845fe2570b1357315f401f1bc201ba165ee16a9afd811e4f9f34b8414134346598cd5fe76c883c5215d75106eceff18135c65473186ed1bcc45246d30aa7b1e561c46d0d1cca3da2e19cca1cfe4e89ca61de070d3cad2f96270962cd770c9154ce7bb5844171293e1a2722d3e340602895ae3c6848c83e264709af8677ff1d49580348d6084e41146410e537e6fdf91881fb8b858aaa04f064671971d082e1f7681eb9ac11da7b4776bedb0bdff6dcdab8facec17df48928e3be3603262cf39d0828ceca9230ccb610e8a6c7ea8e9a3a1d4e43d2f9c204d9327d6a2e8b4dc7b9a13838e1b08b414d9ef3495aee4f4fc05d71a5e8bd828f155a8a3b7ca6e22be59901fe627408a2e8ca8dc28458a4eda726b9e8f511c27495ea3bd3a50997d17a0de3394ccd51329e386ff39708e851cec61335e6b2bc6ad5aac9851a5467eba51cfc59804d674ca23232f8da4ad28c22f7dd54461e366e247e2ef28df07f6b3e4bc2c2e0b0233aee191c2efae467b2bd511c7cfd61dc96148b69b967b9d5eb0efe41a8b0197f8cdef88060d80ce1a2f3f649ab552b52bb1123eec2848c9dceff7ce5a1768d87e67105eda66493a017771170e3462566a08366aa01dfb2b0ca838c8018f0545000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 LMS pyhsslms interop test #2 -# This test uses data from https://github.com/russhousley/pyhsslms due to the -# limited amount of available test vectors for LMS. The private key is stored in -# data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv. Note that this signature -# uses leaf key 1, so must be the second signature generated by the key if the -# signature is to be reproduced. Message data is random. Note that hash-sigs -# stores public keys and signatures in HSS form, which appends a 4-byte "levels" -# word at the start of the key/sig. We strip these 4 bytes from the signature -# and the public key before including them in a the test data. +# This test case continues from "LMS pyhsslms interop test #1". +# The signature uses leaf key 1, so must be the second signature generated by +# the key if the signature is to be reproduced. # # To produce another signature with this message and key (note that the actual -# signature bytes will differ due to randomization): -# * pip3 install --user pyhsslms -# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv -# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_pub tmp/lms.pub +# signature bytes will differ due to randomization), after generating the +# first signature: # -#import pyhsslms -# -#private_key = pyhsslms.HssLmsPrivateKey('tmp/lms') -# -#message = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') -#public_key = private_key.hss_pub -#sig = private_key.sign(message) -# -#message = bytes.fromhex('92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1') -#public_key = private_key.hss_pub -#sig = private_key.sign(message) -#print('lms_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), public_key.serialize().hex())) -lms_verify_test:"92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1":"0000000000000001000000042115dafc81fb6404f904c6037b00c970a0790ceadf0d39f93eddae43ee0daffa0088358a8f89ca5c2b2af0d55c4ecdcbdd84953ce4043d2657ada39f4344ace04e3c4ae3d72788214d28d1b5c85af7a6d3d9d85594a907a9a39b258d4385700a6c001b52923846f68a991a86ddad9b272c98064d43142d339c1cc64e833f7f5346a70b1ef77cb197c66ef68e7a41678ec1dedfe5b6d6e22746b839df8ffdf6d6830f86e47a0370a17646ada2e3f13ee68e6cfdcbb20c0b05e47c088bc27a1e4010aca6f42f2e4c92b28d4f8591fcab60c57fea248b6e8c412b6806f956e459252df4dedbbbecdbaa57f0f15e91ab9fc1c8dae1e1ba5556faa8d618bef9f977b3571b6438f13583f5a2e4036f450a89881b108d44bd8a6700c544d12e1ba48eaa9f53eed260f0dc2bf8bd630565af7d9e182539957780b0771365d4fe57d9fb0f76b2e4e7737fd3d8e8ba67d16af59c13563ceda4d632a0f7d742c98e05d29fb752ccddca2b8e8cc0bb3e57547dbe62d77fb792568cfc8218291a057fc61d94137556f17301e4b7ab3b8f33610925aa5160397665212e16bdc3fffc7ae0ce22c83eb357409bb08b38585628b1475931e09d65986dadf01aff0f7b0e7d19cce8318ea2fcf112710da63b25b3fb1f28fa387e0dc4eea17e0cd7f1e09e2a0cf0797199750f88d4b1d597c15a8694c68e6ac04564f5ee826d612839e2a26c4e7db4e4bd4919ef5ab1730a97bc5ec0c89c93dea4e8bca06426b121bf065ed43a7f2c91ee7211c53d6111de7ccff339a99203de88fb1ec592af5a4e9b2bfc437d0be7dd3aad57f5a84a4a87522cca5fc64176acf033f25f6ec10c673f38c0a3eca954c2acdad80674bac208c0c8be1ed50ed3f41e14c4edef82fe878444c4c874fbd0019e697b3401971b9ae1b73824079de84fc889f6108ea53b94fd50eaa56ccc0fa466168b6fb4322ac01d3429a109e55d6a2459ebfb0297b32bf1eea33fec4317eab77f2d415bfe5ac243e6e6ba26f9a4dccd5bf921c813218268106c129081da409b1808eedaeebf420f768935c0c91981dc48bc07926649926cf62f596582e8b3b9f9a18e0a91221a1d03913245792269ed260071dbfb27240d78a3d98945414da4bc7e4267b8a56cc18d2a8cc2fbe0206989541be84c181dc8aea74654514d894098534963449fc7e5ecd98218c93b38c925761fae62056dd7156b215fdf48ab36d230ab6feb3df3a590fa267e8c0cb78c2f2c90ab7c71dfa97e148a03c427077ec2abc08a3ec2ec7b2503a3dc988f6a9e5362e1043be819e78c71ae96646431eb83d6c9f91edbca6507c31a44f0b643c0028813559e8b5894575461d728ed633b89d660be1635e921fac6844071687b9c82b4aedfdc7cadfee07f113906cf4f78b7e8397f6be3872a53a31e15b54443753b4197e942e2512a9703d729116e683ad9a718f0fa15cf94cc2676498e6d2f207b2d3fd61dba1ad0291eb9e243c4ab771ee4f92ac782fd72b35abff18fd91198007d604b74b7d2741e36fa74c3a1732217b06f1d2e4e34d61012e83f99d03f1e83c97150dedd04f67978620da7e0e5000000063b71be980cffb4e8a8e310341d3b711ab19545ae90c3ac6adcbeb764419411a6ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"000000010000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 +# message2 = bytes.fromhex('92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1') +# sig2 = private_key.sign(message2)[4:] +# print('lms_verify_test:"{}":"{}":"{}":0'.format(message2.hex(), sig2.hex(), public_key.serialize()[4:].hex())) +lms_verify_test:"92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1":"00000001000000042fd4410a9c1947c00419216c64bc236a1620bde03ca9221e67f933bd2664f065e0cfc910c6a4317de4bda8c7fc1244ee1c102e8acc281d96c6a25d1925e087623fcb4faa00219e1f04a2c191ceceee98f2acd0fb1395fd984892f893a3ad862ff6def851e81915b9111288f84fb131e14979f1df6eecc774db45054041bfe74ec0446a0e6a6e01f9b402f41e784a2fcdc0cdccf0b89c2c8a9d2ab28e95e133b33dfb631619e75ec80a9c5d8f634f1d60feec2a5d9a5d6316fa7968734c26c3f60e53613096330a6fc1f779fe501db94b2a932ddc05740a872a8ec34c6d79c6689cd2cd6620d92ea89b39a62053c0bdd7596b360ff45de04bef0cd9b985f00681875e9f3465a71e5055e202dc51bf9ab29d227e8d2b09c6089f82cd356eb1622ada2233209f096cb35086fa2415434ef3ecd660bddf328d70e204d9a8be18319df1bd5c64072b30b72ec792c0a200b29429e262435b03f7fbb6dfcd76b9a84621c91e0ef646bd7367eead3582028a8ed9b40b1fe1562863ea43af350cdf0c965dc8329131df3f00b4b8a33548d7f7f1b03e952064e0f4cd9662af5a0d25ec8dc126d9621bf4707fbd525023ce91cbe05517bf2491e6455f2273b354c9d2f4a4364c3caf44c98ad23601cf1fc9cb490d2a9b9cdb1d60f0328e40734201e9e03f7af30fe6f0d6c7437fdd13573b012cd060a1a325b35d1a3d77e94a666d3873e267223a4e5bcf0752395570ad51d1ac7480cba32fcc8bf93439b8feafd0fb3520ab76d9ae2fba3b4600afce5fd96ff07d0e62579c16f993715f363982409ba38a46d09e6b448738f2bdb4277c65c933ea4a991fdc8021e3b9bbe5d00078b94ed1a78c61ee9d1dec014f99d23905a8fff335a9cca0228e7244a2a8b461970655b8a7f0f684c3f271c5f76924d851850b74754e24abaa9828d353976509dc4c4a241a0c314b80e400aceefe234fbdfb9af60d7c65752a4a396c4cdea1fec3478c263fb5883aa009f1845c4cb3f128c5eb9b290639c7c82fe33b17bd5ddb460a68d54be472769f77c73f7b4bfead2af4a9af6322f5bec9159d234e94a7d496cb6349a4b36fc7ca4e2c42168034bff62e687089fdd27a78484c788556edb58d7c911199752ca609a7906355f226756cd7c6c167b2a2929e8913fb2ec7c46c5caf73252f06cd51c5ca979d0b552831beeb5bcc25fba8ac83c8857633e3873adab0d23f1bb326a6c960e8bb1119e2f917c3892e9ad83f8af74abe0a0beee1734fdf5fe04024a6a644c2bbf88c6019d7115b0742898e90cc2d001efbc6f8e38eeedd5e9e9c777d1ecc6a2a9cf6d67a68781d99db1bbecdfe2e40dbe9074e7a69f0fa9037aecc31c9305c67129e0dbc8a66c8de6c18ed41746d794809bb3a5cc68c17db3052fe31e390ca862be3163660a1f70c5d2f026ed7649437600e38ee08e33f05aac9bcd8b7db309f2f41c34ba44304115ef8bbdba63629607daf67e2e642a726e021f6599032a0f8f3edef2ef5b007d3618856d48aec7894e9a4b802caf9c3f0022c6e61d34c38ba2ddef3c1b0797e7dc74faacb44ac72b5ea078f1a21c2cffc46ba000000063b71be980cffb4e8a8e310341d3b711ab19545ae90c3ac6adcbeb764419411a6ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 LMS pyhsslms interop NULL-message test # This test uses data from https://github.com/russhousley/pyhsslms due to the limited From 31c2dcb61104912a895b3e2e0292379eb382dc82 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 13 Oct 2022 20:48:15 +0200 Subject: [PATCH 0689/1028] Fix file names in reproduction instructions in test data Signed-off-by: Gilles Peskine --- tests/suites/test_suite_lmots.data | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index e6d71d33b6..2737272bdd 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -28,7 +28,7 @@ LMOTS hsslms interop test #1 # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # # ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 0, private_key.SEED) @@ -53,7 +53,7 @@ LMOTS hsslms interop test #2 # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # #ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 1, private_key.SEED) @@ -76,7 +76,7 @@ LMOTS hsslms interop NULL-message test # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # #ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 3, private_key.SEED) From fa65237fd4b27f1406d30e5464d38be74c5dd675 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 13 Oct 2022 22:05:38 +0200 Subject: [PATCH 0690/1028] Fix which config header MBEDTLS_LMS_xxx is unset from Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index f7da34a3bc..2ee99b3fc1 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2248,8 +2248,8 @@ component_build_psa_accel_alg_md5() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE + scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_MD5 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2270,8 +2270,8 @@ component_build_psa_accel_alg_ripemd160() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE + scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_RIPEMD160 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2292,8 +2292,8 @@ component_build_psa_accel_alg_sha1() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE + scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_1 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2351,8 +2351,8 @@ component_build_psa_accel_alg_sha384() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE + scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_384 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2373,8 +2373,8 @@ component_build_psa_accel_alg_sha512() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE + scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_512 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } From 47b8de834dfb40f12c972ca799c26d17660f1619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 14 Oct 2022 09:35:55 +0200 Subject: [PATCH 0691/1028] Fix usage of ASSERT_ALLOC() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The second argument is the number of elements of the type the first argument is pointing to, so we shouldn't be using sizeof there. This was resulting in overly large allocations. Signed-off-by: Manuel Pégourié-Gonnard --- tests/suites/test_suite_asn1parse.function | 2 +- tests/suites/test_suite_ssl.function | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_asn1parse.function b/tests/suites/test_suite_asn1parse.function index 87901f8fa8..002d8c4269 100644 --- a/tests/suites/test_suite_asn1parse.function +++ b/tests/suites/test_suite_asn1parse.function @@ -779,7 +779,7 @@ void free_named_data_list( int length ) for( i = 0; i < length; i++ ) { mbedtls_asn1_named_data *new = NULL; - ASSERT_ALLOC( new, sizeof( mbedtls_asn1_named_data ) ); + ASSERT_ALLOC( new, 1 ); new->next = head; head = new; } diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 7b5743ece6..d832853ee0 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -137,7 +137,7 @@ void init_handshake_options( handshake_test_options *opts ) opts->resize_buffers = 1; #if defined(MBEDTLS_SSL_CACHE_C) opts->cache = NULL; - ASSERT_ALLOC( opts->cache, sizeof( mbedtls_ssl_cache_context ) ); + ASSERT_ALLOC( opts->cache, 1 ); mbedtls_ssl_cache_init( opts->cache ); exit: return; From 032b594ec99e7f2d814aab30dfe42a33f3775eb9 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 14 Oct 2022 10:40:56 +0100 Subject: [PATCH 0692/1028] Update SUPPORT.md Co-authored-by: Paul Elliott <62069445+paul-elliott-arm@users.noreply.github.com> Signed-off-by: Dave Rodgman --- SUPPORT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUPPORT.md b/SUPPORT.md index 2ef5b54eb9..8710d149aa 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -4,7 +4,7 @@ Here are some useful sources of information about using Mbed TLS: - [ReadTheDocs](https://mbed-tls.readthedocs.io/); - API documentation, see the [Documentation section of the - README](README.md#License); + README](README.md#documentation); - the `docs` directory in the source tree; - the [Mbed TLS mailing-list archives](https://lists.trustedfirmware.org/archives/list/mbed-tls@lists.trustedfirmware.org/). From ce164b70164b6be8d18c0484afe0fd49ab5ed9e3 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 14 Oct 2022 10:47:04 +0100 Subject: [PATCH 0693/1028] Update SUPPORT.md Signed-off-by: Dave Rodgman --- SUPPORT.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SUPPORT.md b/SUPPORT.md index 8710d149aa..e12038779a 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -6,6 +6,7 @@ Here are some useful sources of information about using Mbed TLS: - API documentation, see the [Documentation section of the README](README.md#documentation); - the `docs` directory in the source tree; +- the [Mbed TLS knowledge Base](https://mbed-tls.readthedocs.io/en/latest/kb/); - the [Mbed TLS mailing-list archives](https://lists.trustedfirmware.org/archives/list/mbed-tls@lists.trustedfirmware.org/). From f1ebf128e74185f8c13d9ba2a82b076065c37bbf Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 14 Oct 2022 10:48:52 +0100 Subject: [PATCH 0694/1028] Fix capitalisation Signed-off-by: Dave Rodgman --- SUPPORT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUPPORT.md b/SUPPORT.md index e12038779a..b550e08e5d 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -6,7 +6,7 @@ Here are some useful sources of information about using Mbed TLS: - API documentation, see the [Documentation section of the README](README.md#documentation); - the `docs` directory in the source tree; -- the [Mbed TLS knowledge Base](https://mbed-tls.readthedocs.io/en/latest/kb/); +- the [Mbed TLS Knowledge Base](https://mbed-tls.readthedocs.io/en/latest/kb/); - the [Mbed TLS mailing-list archives](https://lists.trustedfirmware.org/archives/list/mbed-tls@lists.trustedfirmware.org/). From 8bcd7cca94f9b7549cf0780d030582d16959a02b Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 14 Oct 2022 16:18:10 +0200 Subject: [PATCH 0695/1028] Use count instead of bytes in ASSERT_ALLOC argument Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 6ac36c40a1..18525ed816 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -780,8 +780,8 @@ void mpi_core_cond_assign( data_t * input_X, TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); - ASSERT_ALLOC( X, len ); - ASSERT_ALLOC( Y, len ); + ASSERT_ALLOC( X, limbs ); + ASSERT_ALLOC( Y, limbs ); TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, input_X->x, input_X->len ) == 0 ); @@ -844,19 +844,19 @@ void mpi_core_cond_swap( data_t * input_X, TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); - ASSERT_ALLOC( tmp_X, len ); - ASSERT_ALLOC( tmp_Y, len ); + ASSERT_ALLOC( tmp_X, limbs ); + ASSERT_ALLOC( tmp_Y, limbs ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, input_X->x, input_X->len ) == 0 ); - ASSERT_ALLOC( X, len ); + ASSERT_ALLOC( X, limbs ); memcpy( X, tmp_X, len ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) == 0 ); - ASSERT_ALLOC( Y, len ); + ASSERT_ALLOC( Y, limbs ); memcpy( Y, tmp_Y, len ); /* condition is false */ @@ -924,10 +924,10 @@ void mpi_mod_raw_cond_assign( data_t * input_X, TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); - ASSERT_ALLOC( X, len ); - ASSERT_ALLOC( Y, len ); + ASSERT_ALLOC( X, limbs ); + ASSERT_ALLOC( Y, limbs ); - ASSERT_ALLOC( buff_m, len ); + ASSERT_ALLOC( buff_m, limbs ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, @@ -1003,10 +1003,10 @@ void mpi_mod_raw_cond_swap( data_t * input_X, TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); - ASSERT_ALLOC( tmp_X, len ); - ASSERT_ALLOC( tmp_Y, len ); + ASSERT_ALLOC( tmp_X, limbs ); + ASSERT_ALLOC( tmp_Y, limbs ); - ASSERT_ALLOC( buff_m, input_len ); + ASSERT_ALLOC( buff_m, copy_limbs ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, @@ -1016,7 +1016,7 @@ void mpi_mod_raw_cond_swap( data_t * input_X, TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, input_X->x, input_X->len ) == 0 ); - ASSERT_ALLOC( X, len ); + ASSERT_ALLOC( X, limbs ); memcpy( X, tmp_X, len ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) From 4086de667d1f6e091f068bbad1d3582c2946f33a Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 14 Oct 2022 16:29:42 +0200 Subject: [PATCH 0696/1028] Fix documentation Signed-off-by: Gabor Mezei --- library/bignum_core.h | 17 +++++++++-------- library/bignum_mod_raw.h | 17 +++++++++-------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index bd246d5e36..b626fab6e1 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -75,12 +75,13 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, size_t A_limbs ); /** - * \brief Perform a safe conditional copy of MPI which doesn't reveal whether - * the condition was true or not. + * \brief Perform a safe conditional copy of an MPI which doesn't reveal + * whether assignment was done or not. * - * \param[out] X The address of the first MPI. This must be initialized. - * Must have enough limbs to store the full value of \p A. - * \param[in] A The address of the second MPI. This must be initialized. + * \param[out] X The address of the destination MPI. + * This must be initialized. Must have enough limbs to + * store the full value of \p A. + * \param[in] A The address of the source MPI. This must be initialized. * \param limbs The number of limbs of \p A. * \param assign The condition deciding whether to perform the * assignment or not. Must be either 0 or 1: @@ -92,7 +93,7 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * * \warning If \p assign is neither 0 nor 1, the result of this function * is indeterminate, and the resulting value in \p X might be - * neither its original value nor the value in \p Y. + * neither its original value nor the value in \p A. */ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, @@ -100,8 +101,8 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, unsigned char assign ); /** - * \brief Perform a safe conditional swap of MPI which doesn't reveal whether - * the condition was true or not. + * \brief Perform a safe conditional swap of two MPIs which doesn't reveal + * whether the swap was done or not. * * \param[in,out] X The address of the first MPI. * This must be initialized. diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 845ebaa5a7..f698a9a622 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -34,14 +34,15 @@ #include "bignum_mod.h" /** - * \brief Perform a safe conditional copy of MPI which doesn't reveal whether - * the condition was true or not. + * \brief Perform a safe conditional copy of an MPI which doesn't reveal + * whether the assignment was done or not. * * The size to copy is determined by \p N. * - * \param[out] X The address of the first MPI. This must be initialized. - * Must have enough limbs to store the full value of \p A. - * \param[in] A The address of the second MPI. This must be initialized. + * \param[out] X The address of the destination MPI. + * This must be initialized. Must have enough limbs to + * store the full value of \p A. + * \param[in] A The address of the source MPI. This must be initialized. * \param[in] N The address of the modulus related to \p X and \p A. * \param assign The condition deciding whether to perform the * assignment or not. Must be either 0 or 1: @@ -53,7 +54,7 @@ * * \warning If \p assign is neither 0 nor 1, the result of this function * is indeterminate, and the resulting value in \p X might be - * neither its original value nor the value in \p B. + * neither its original value nor the value in \p A. */ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, @@ -61,8 +62,8 @@ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, unsigned char assign ); /** - * \brief Perform a safe conditional swap of MPI which doesn't reveal whether - * the condition was true or not. + * \brief Perform a safe conditional swap of two MPIs which doesn't reveal + * whether the swap was done or not. * * The size to swap is determined by \p N. * From ffb4aa0ddc7b8d47af24516356a91ea5c09bc33b Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 14 Oct 2022 16:39:04 +0200 Subject: [PATCH 0697/1028] Rename variables to have unambiguous names Use bytes instead of len in the variable names. Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 164 +++++++++++++-------------- 1 file changed, 82 insertions(+), 82 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 18525ed816..dcfa75d451 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -766,16 +766,16 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_assign( data_t * input_X, data_t * input_Y, - int input_len ) + int input_bytes ) { mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_len ); - size_t len = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_len = copy_limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); + size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -790,34 +790,34 @@ void mpi_core_cond_assign( data_t * input_X, == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len ); - TEST_CF_SECRET( Y, len ); + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 0 ); - TEST_CF_PUBLIC( X, len ); - TEST_CF_PUBLIC( Y, len ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); - TEST_ASSERT( memcmp( X, Y, len ) != 0 ); + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len ); - TEST_CF_SECRET( Y, len ); + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 1 ); - TEST_CF_PUBLIC( X, len ); - TEST_CF_PUBLIC( Y, len ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); /* Check if the given length is copied even it is smaller - than the length of the given MPIs. */ + than the bytesgth of the given MPIs. */ if( copy_limbs != limbs ) { - ASSERT_COMPARE( X, copy_len, Y, copy_len ); - TEST_ASSERT( memcmp( X, Y, len ) != 0 ); + ASSERT_COMPARE( X, copy_bytes, Y, copy_bytes ); + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); } else - ASSERT_COMPARE( X, len, Y, len ); + ASSERT_COMPARE( X, bytes, Y, bytes ); exit: mbedtls_free( X ); @@ -828,7 +828,7 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_swap( data_t * input_X, data_t * input_Y, - int input_len ) + int input_bytes ) { mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; @@ -837,9 +837,9 @@ void mpi_core_cond_swap( data_t * input_X, size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_len ); - size_t len = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_len = copy_limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); + size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -851,50 +851,50 @@ void mpi_core_cond_swap( data_t * input_X, input_X->x, input_X->len ) == 0 ); ASSERT_ALLOC( X, limbs ); - memcpy( X, tmp_X, len ); + memcpy( X, tmp_X, bytes ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) == 0 ); ASSERT_ALLOC( Y, limbs ); - memcpy( Y, tmp_Y, len ); + memcpy( Y, tmp_Y, bytes ); /* condition is false */ - TEST_CF_SECRET( X, len ); - TEST_CF_SECRET( Y, len ); + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 0 ); - TEST_CF_PUBLIC( X, len ); - TEST_CF_PUBLIC( Y, len ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); - ASSERT_COMPARE( X, len, tmp_X, len ); - ASSERT_COMPARE( Y, len, tmp_Y, len ); + ASSERT_COMPARE( X, bytes, tmp_X, bytes ); + ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); /* condition is true */ - TEST_CF_SECRET( X, len ); - TEST_CF_SECRET( Y, len ); + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 1 ); - TEST_CF_PUBLIC( X, len ); - TEST_CF_PUBLIC( Y, len ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs != limbs ) { - ASSERT_COMPARE( X, copy_len, tmp_Y, copy_len ); - ASSERT_COMPARE( Y, copy_len, tmp_X, copy_len ); - TEST_ASSERT( memcmp( X, tmp_X, len ) != 0 ); - TEST_ASSERT( memcmp( X, tmp_Y, len ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_X, len ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_Y, len ) != 0 ); + ASSERT_COMPARE( X, copy_bytes, tmp_Y, copy_bytes ); + ASSERT_COMPARE( Y, copy_bytes, tmp_X, copy_bytes ); + TEST_ASSERT( memcmp( X, tmp_X, bytes ) != 0 ); + TEST_ASSERT( memcmp( X, tmp_Y, bytes ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_X, bytes ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_Y, bytes ) != 0 ); } else { - ASSERT_COMPARE( X, len, tmp_Y, len ); - ASSERT_COMPARE( Y, len, tmp_X, len ); + ASSERT_COMPARE( X, bytes, tmp_Y, bytes ); + ASSERT_COMPARE( Y, bytes, tmp_X, bytes ); } exit: @@ -908,7 +908,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_assign( data_t * input_X, data_t * input_Y, - int input_len ) + int input_bytes ) { mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; @@ -917,9 +917,9 @@ void mpi_mod_raw_cond_assign( data_t * input_X, size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_len ); - size_t len = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_len = copy_limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); + size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -944,34 +944,34 @@ void mpi_mod_raw_cond_assign( data_t * input_X, == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len ); - TEST_CF_SECRET( Y, len ); + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len ); - TEST_CF_PUBLIC( Y, len ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); - TEST_ASSERT( memcmp( X, Y, len ) != 0 ); + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len ); - TEST_CF_SECRET( Y, len ); + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len ); - TEST_CF_PUBLIC( Y, len ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs != limbs ) { - ASSERT_COMPARE( X, copy_len, Y, copy_len ); - TEST_ASSERT( memcmp( X, Y, len ) != 0 ); + ASSERT_COMPARE( X, copy_bytes, Y, copy_bytes ); + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); } else - ASSERT_COMPARE( X, len, Y, len ); + ASSERT_COMPARE( X, bytes, Y, bytes ); exit: mbedtls_free( X ); @@ -985,7 +985,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_swap( data_t * input_X, data_t * input_Y, - int input_len ) + int input_bytes ) { mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; @@ -996,9 +996,9 @@ void mpi_mod_raw_cond_swap( data_t * input_X, size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_len ); - size_t len = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_len = copy_limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); + size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -1017,49 +1017,49 @@ void mpi_mod_raw_cond_swap( data_t * input_X, TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, input_X->x, input_X->len ) == 0 ); ASSERT_ALLOC( X, limbs ); - memcpy( X, tmp_X, len ); + memcpy( X, tmp_X, bytes ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) == 0 ); - ASSERT_ALLOC( Y, len ); - memcpy( Y, tmp_Y, len ); + ASSERT_ALLOC( Y, bytes ); + memcpy( Y, tmp_Y, bytes ); /* condition is false */ - TEST_CF_SECRET( X, len ); - TEST_CF_SECRET( Y, len ); + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len ); - TEST_CF_PUBLIC( Y, len ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); - ASSERT_COMPARE( X, len, tmp_X, len ); - ASSERT_COMPARE( Y, len, tmp_Y, len ); + ASSERT_COMPARE( X, bytes, tmp_X, bytes ); + ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); /* condition is true */ - TEST_CF_SECRET( X, len ); - TEST_CF_SECRET( Y, len ); + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len ); - TEST_CF_PUBLIC( Y, len ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs != limbs ) { - ASSERT_COMPARE( X, copy_len, tmp_Y, copy_len ); - ASSERT_COMPARE( Y, copy_len, tmp_X, copy_len ); - TEST_ASSERT( memcmp( X, tmp_X, len ) != 0 ); - TEST_ASSERT( memcmp( X, tmp_Y, len ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_X, len ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_Y, len ) != 0 ); + ASSERT_COMPARE( X, copy_bytes, tmp_Y, copy_bytes ); + ASSERT_COMPARE( Y, copy_bytes, tmp_X, copy_bytes ); + TEST_ASSERT( memcmp( X, tmp_X, bytes ) != 0 ); + TEST_ASSERT( memcmp( X, tmp_Y, bytes ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_X, bytes ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_Y, bytes ) != 0 ); } else { - ASSERT_COMPARE( X, len, tmp_Y, len ); - ASSERT_COMPARE( Y, len, tmp_X, len ); + ASSERT_COMPARE( X, bytes, tmp_Y, bytes ); + ASSERT_COMPARE( Y, bytes, tmp_X, bytes ); } exit: From dcd1717f5f90abe1116e20b3b0924c700298a5ef Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 14 Oct 2022 17:14:20 +0200 Subject: [PATCH 0698/1028] Forbid aliasing outputs Aliasing between two outputs is hardly ever useful. Signed-off-by: Gilles Peskine --- library/bignum_core.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index c64ce4e866..4426b92386 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -43,8 +43,8 @@ * Temporaries come last. * - **Aliasing**: in general, output bignums may be aliased to one or more * inputs. As an exception, parameters that are documented as a modulus value - * may not be aliased to an output. Temporaries may not be aliased to - * any other parameter. + * may not be aliased to an output. Outputs may not be aliased to one another. + * Temporaries may not be aliased to any other parameter. * - **Overlap**: apart from aliasing of limb array pointers (where two * arguments are equal pointers), overlap is not supported and may result * in undefined behavior. From 503d09b52d9d068a434f8b90647e46d86f33e30b Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Mon, 17 Oct 2022 12:27:43 +0200 Subject: [PATCH 0699/1028] Fix memory leak if unit test fails Signed-off-by: Gilles Peskine --- tests/suites/test_suite_lmots.function | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 53ab02ff6e..fd6a89f2c8 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -193,6 +193,7 @@ void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) exit: mbedtls_lmots_public_free( &ctx ); + mbedtls_free( exported_pub_key ); } /* END_CASE */ From 0c74e084d5ed82407071c437ed0ecd7faa4b176b Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 17 Oct 2022 16:09:58 +0200 Subject: [PATCH 0700/1028] Fix condition Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index dcfa75d451..833b0108ce 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -811,7 +811,7 @@ void mpi_core_cond_assign( data_t * input_X, /* Check if the given length is copied even it is smaller than the bytesgth of the given MPIs. */ - if( copy_limbs != limbs ) + if( copy_limbs < limbs ) { ASSERT_COMPARE( X, copy_bytes, Y, copy_bytes ); TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); @@ -882,7 +882,7 @@ void mpi_core_cond_swap( data_t * input_X, /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ - if( copy_limbs != limbs ) + if( copy_limbs < limbs ) { ASSERT_COMPARE( X, copy_bytes, tmp_Y, copy_bytes ); ASSERT_COMPARE( Y, copy_bytes, tmp_X, copy_bytes ); @@ -965,7 +965,7 @@ void mpi_mod_raw_cond_assign( data_t * input_X, /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ - if( copy_limbs != limbs ) + if( copy_limbs Date: Mon, 17 Oct 2022 17:42:19 +0100 Subject: [PATCH 0701/1028] Add explanatory comments to raw DER test data Break down the DER-encoded ASN.1 test data into its structure in a comment and explain it, to make it easier to understand where the data came from and how it is corrupted. Signed-off-by: David Horstmann --- tests/suites/test_suite_x509parse.data | 34 ++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index 1db09826e4..8dd337995d 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -415,9 +415,43 @@ mbedtls_x509_dn_get_next:"C=NL, O=PolarSSL, CN=PolarSSL Server 1":0x03:"C":1:"C= X509 Get Next DN #4 Consecutive Multivalue RDNs mbedtls_x509_dn_get_next:"C=NL, O=PolarSSL, title=Example, CN=PolarSSL Server 1":0x05:"C title":2:"C=NL + O=PolarSSL, title=Example + CN=PolarSSL Server 1" +# Parse the following valid DN: +# +# 31 0B <- Set of +# 30 09 <- Sequence of +# 06 03 55 04 06 <- OID 2.5.4.6 countryName (C) +# 13 02 4E 4C <- PrintableString "NL" +# 31 11 <- Set of +# 30 0F <- Sequence of +# 06 03 55 04 0A <- OID 2.5.4.10 organizationName (O) +# 0C 08 50 6F 6C 61 72 53 53 4C <- UTF8String "PolarSSL" +# 31 19 <- Set of +# 30 17 <- Sequence of +# 06 03 55 04 03 <- OID 2.5.4.3 commonName (CN) +# 0C 10 50 6F 6C 61 72 53 53 4C 20 54 65 73 74 20 43 41 <- UTF8String "PolarSSL Test CA" +# X509 Get Name Valid DN mbedtls_x509_get_name:"310B3009060355040613024E4C3111300F060355040A0C08506F6C617253534C3119301706035504030C10506F6C617253534C2054657374204341":0 +# Parse the following corrupted DN: +# +# 31 0B <- Set of +# 30 09 <- Sequence of +# 06 03 55 04 06 <- OID 2.5.4.6 countryName (C) +# 13 02 4E 4C <- PrintableString "NL" +# 31 11 <- Set of +# 30 0F <- Sequence of +# 06 03 55 04 0A <- OID 2.5.4.10 organizationName (O) +# 0C 08 50 6F 6C 61 72 53 53 4C <- UTF8String "PolarSSL" +# 30 19 <- Sequence of (corrupted) +# 30 17 <- Sequence of +# 06 03 55 04 03 <- OID 2.5.4.3 commonName (CN) +# 0C 10 50 6F 6C 61 72 53 53 4C 20 54 65 73 74 20 43 41 <- UTF8String "PolarSSL Test CA" +# +# The third 'Set of' is corrupted to instead be a 'Sequence of', causing an +# error and forcing mbedtls_x509_get_name() to clean up the names it has +# already allocated. +# X509 Get Name Corrupted DN Mem Leak mbedtls_x509_get_name:"310B3009060355040613024E4C3111300F060355040A0C08506F6C617253534C3019301706035504030C10506F6C617253534C2054657374204341":MBEDTLS_ERR_X509_INVALID_NAME + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG From 3cd67584bc8f1c65937da74bdca74dbc758876bc Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 17 Oct 2022 17:59:10 +0100 Subject: [PATCH 0702/1028] Improve X509 DN test naming Signed-off-by: David Horstmann --- tests/suites/test_suite_x509parse.function | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index e8a2bb9713..6947f3c196 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -819,21 +819,21 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C */ -void mbedtls_x509_get_name( char * hex_name, int exp_ret ) +void mbedtls_x509_get_name( char * rdn_sequence, int exp_ret ) { unsigned char *name; unsigned char *p; size_t name_len; mbedtls_x509_name head; mbedtls_x509_name *allocated, *prev; - int res; + int ret; - name = mbedtls_test_unhexify_alloc( hex_name, &name_len ); + name = mbedtls_test_unhexify_alloc( rdn_sequence, &name_len ); p = name; - res = mbedtls_x509_get_name( &p, ( name + name_len ), &head ); + ret = mbedtls_x509_get_name( &p, ( name + name_len ), &head ); - if( res == 0 ) + if( ret == 0 ) { allocated = head.next; head.next = NULL; @@ -848,7 +848,7 @@ void mbedtls_x509_get_name( char * hex_name, int exp_ret ) } } - TEST_ASSERT( res == exp_ret ); + TEST_ASSERT( ret == exp_ret ); mbedtls_free( name ); } From 11307a1933cbcb36ad9a066c6c345e4bf9f90127 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 17 Oct 2022 18:10:23 +0100 Subject: [PATCH 0703/1028] Clarify wording on allocation Signed-off-by: David Horstmann --- library/x509.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/x509.c b/library/x509.c index cdc87e53eb..403507413d 100644 --- a/library/x509.c +++ b/library/x509.c @@ -469,7 +469,7 @@ static int x509_get_attr_type_value( unsigned char **p, * same set so that they are "merged" together in the functions that consume * this list, eg mbedtls_x509_dn_gets(). * - * On success, this function allocates a linked list starting at cur->next + * On success, this function may allocate a linked list starting at cur->next * that must later be free'd by the caller using mbedtls_free(). In error * cases, this function frees all allocated memory internally and the caller * has no freeing responsibilities. From d976673dd60ed3a0566419196f7e47d720ecc842 Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Mon, 17 Oct 2022 15:13:30 +0800 Subject: [PATCH 0704/1028] Add build version to the output of ssl_client2 Signed-off-by: Yanray Wang --- programs/ssl/ssl_client2.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index be474d4737..451e232643 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -25,6 +25,10 @@ #include "test/psa_crypto_helpers.h" #endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */ +#if defined(MBEDTLS_VERSION_C) +#include "mbedtls/build_info.h" +#endif /* MBEDTLS_VERSION_C */ + #if defined(MBEDTLS_SSL_TEST_IMPOSSIBLE) int main( void ) { @@ -360,6 +364,14 @@ int main( void ) #define USAGE_TLS1_3_KEY_EXCHANGE_MODES "" #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ +#if defined(MBEDTLS_VERSION_C) +#define USAGE_BUILD_VERSION \ + " build_version=%%d default: none (disabled)\n" \ + " option: 1 (print the build version only a stop)\n" +#else +#define USAGE_BUILD_VERSION "" +#endif /* MBEDTLS_VERSION_C */ + /* USAGE is arbitrarily split to stay under the portable string literal * length limit: 4095 bytes in C99. */ #define USAGE1 \ @@ -375,6 +387,7 @@ int main( void ) " application data message is sent followed by\n" \ " a second non-empty message before attempting\n" \ " to read a response from the server\n" \ + USAGE_BUILD_VERSION \ " debug_level=%%d default: 0 (disabled)\n" \ " nbio=%%d default: 0 (blocking I/O)\n" \ " options: 1 (non-blocking), 2 (added delays)\n" \ @@ -984,6 +997,18 @@ int main( int argc, char *argv[] ) if( opt.debug_level < 0 || opt.debug_level > 65535 ) goto usage; } +#if defined(MBEDTLS_VERSION_C) + else if( strcmp( p, "build_version" ) == 0 ) + { + if( strcmp( q, "1" ) == 0 ) + { + mbedtls_printf( "build version: %s (build %u)\n", + MBEDTLS_VERSION_STRING, + MBEDTLS_VERSION_NUMBER ); + goto exit; + } + } +#endif /* MBEDTLS_VERSION_C */ else if( strcmp( p, "context_crt_cb" ) == 0 ) { opt.context_crt_cb = atoi( q ); @@ -2454,6 +2479,11 @@ int main( int argc, char *argv[] ) } } +#if defined(MBEDTLS_VERSION_C) + mbedtls_printf( "build version: %s (build %u)\n", + MBEDTLS_VERSION_STRING, MBEDTLS_VERSION_NUMBER ); +#endif /* MBEDTLS_VERSION_C */ + #if defined(MBEDTLS_X509_CRT_PARSE_C) /* * 5. Verify the server certificate From 2bb2f15772b93d5878fb6e239d3e248d697d4ae0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 12 Oct 2022 10:57:31 +0200 Subject: [PATCH 0705/1028] Improve driver-only outcome-analysis script MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead of having a list of test suites of interest, have a list of suites to ignore and look at all the others. In order for this to only yield interesting results, we need to tune the reference configuration a bit, in order to exclude STREAM and ECB to more closely match the driver-based configuration. Signed-off-by: Manuel Pégourié-Gonnard --- .../psa-migration/outcome-analysis.sh | 52 ++++++++++++++++--- 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/docs/architecture/psa-migration/outcome-analysis.sh b/docs/architecture/psa-migration/outcome-analysis.sh index 67510c1447..f3566b20a7 100755 --- a/docs/architecture/psa-migration/outcome-analysis.sh +++ b/docs/architecture/psa-migration/outcome-analysis.sh @@ -31,13 +31,23 @@ DRIVER_COMPONENT=test_psa_crypto_config_accel_hash_use_psa # A similar configuration to that of the component, except without drivers, # for comparison. reference_config () { - scripts/config.py set MBEDTLS_USE_PSA_CRYPTO - scripts/config.py unset MBEDTLS_PKCS1_V21 - scripts/config.py unset MBEDTLS_X509_RSASSA_PSS_SUPPORT + # start with full + scripts/config.py full + # use PSA config and disable driver-less algs as in the component + scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING + # disable options as in the component + # (no need to disable whole modules, we'll just skip their test suite) scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_DETERMINISTIC_ECDSA } -# Space-separated list of test suites of interest. -SUITES="rsa pkcs1_v15 pk pkparse pkwrite" +# Space-separated list of test suites to ignore: +# if SSS is in that list, test_suite_SSS and test_suite_SSS.* are ignored. +IGNORE="md mdx shax" # accelerated +IGNORE="$IGNORE entropy hmac_drbg random" # disabled (ext. RNG) +IGNORE="$IGNORE psa_crypto_init" # needs internal RNG +IGNORE="$IGNORE hkdf" # disabled # ----- END edit this ----- set -eu @@ -85,6 +95,22 @@ tests/scripts/all.sh -k test_psa_crypto_config_accel_hash_use_psa # analysis +populate_suites () { + SUITES='' + make generated_files >/dev/null + data_files=$(cd tests/suites && echo *.data) + for data in $data_files; do + suite=${data#test_suite_} + suite=${suite%.data} + suite_base=${suite%%.*} + case " $IGNORE " in + *" $suite_base "*) :;; + *) SUITES="$SUITES $suite";; + esac + done + make neat +} + compare_suite () { ref="outcome-$1.csv" new="outcome-$2.csv" @@ -98,19 +124,29 @@ compare_suite () { nb_ref=$(wc -l %3d\n" \ + printf "%36s: total %4d; skipped %4d -> %4d\n" \ $suite $total $nb_ref $nb_new - diff skipped-ref skipped-new | grep '^> ' || true + if diff skipped-ref skipped-new | grep '^> '; then + ret=1 + else + ret=0 + fi rm skipped-ref skipped-new + return $ret } compare_builds () { printf "\n*** Comparing $1 -> $2 ***\n" + failed='' for suite in $SUITES; do - compare_suite "$1" "$2" "$suite" + if compare_suite "$1" "$2" "$suite"; then :; else + failed="$failed $suite" + fi done + printf "suites with less coverage: %s\n" "$failed" } +populate_suites compare_builds before-default after-default compare_builds before-full after-full compare_builds reference drivers From f6e6df9dbf10c6fbaaa1253132b935959f4b673f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 17 Oct 2022 12:24:37 +0200 Subject: [PATCH 0706/1028] Add option for before-after or just ref-drivers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- .../psa-migration/outcome-analysis.sh | 42 +++++++++++-------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/docs/architecture/psa-migration/outcome-analysis.sh b/docs/architecture/psa-migration/outcome-analysis.sh index f3566b20a7..f777b8fb99 100755 --- a/docs/architecture/psa-migration/outcome-analysis.sh +++ b/docs/architecture/psa-migration/outcome-analysis.sh @@ -48,6 +48,8 @@ IGNORE="md mdx shax" # accelerated IGNORE="$IGNORE entropy hmac_drbg random" # disabled (ext. RNG) IGNORE="$IGNORE psa_crypto_init" # needs internal RNG IGNORE="$IGNORE hkdf" # disabled +# Compare only "reference vs driver" or also "before vs after"? +BEFORE_AFTER=1 # 0 or 1 # ----- END edit this ----- set -eu @@ -63,26 +65,28 @@ record() { make check } -# save current HEAD -HEAD=$(git branch --show-current) +if [ "$BEFORE_AFTER" -eq 1 ]; then + # save current HEAD + HEAD=$(git branch --show-current) -# get the numbers before this PR for default and full -cleanup -git checkout $(git merge-base HEAD development) -record "before-default" + # get the numbers before this PR for default and full + cleanup + git checkout $(git merge-base HEAD development) + record "before-default" -cleanup -scripts/config.py full -record "before-full" + cleanup + scripts/config.py full + record "before-full" -# get the numbers now for default and full -cleanup -git checkout $HEAD -record "after-default" + # get the numbers now for default and full + cleanup + git checkout $HEAD + record "after-default" -cleanup -scripts/config.py full -record "after-full" + cleanup + scripts/config.py full + record "after-full" +fi # get the numbers now for driver-only and reference cleanup @@ -147,6 +151,8 @@ compare_builds () { } populate_suites -compare_builds before-default after-default -compare_builds before-full after-full +if [ "$BEFORE_AFTER" -eq 1 ]; then + compare_builds before-default after-default + compare_builds before-full after-full +fi compare_builds reference drivers From b51051f1c76b69b02d65b7228ed526c213541380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 18 Oct 2022 09:42:30 +0200 Subject: [PATCH 0707/1028] Cosmetic improvement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- docs/architecture/psa-migration/outcome-analysis.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/architecture/psa-migration/outcome-analysis.sh b/docs/architecture/psa-migration/outcome-analysis.sh index f777b8fb99..8c6f5e65e6 100755 --- a/docs/architecture/psa-migration/outcome-analysis.sh +++ b/docs/architecture/psa-migration/outcome-analysis.sh @@ -147,7 +147,11 @@ compare_builds () { failed="$failed $suite" fi done - printf "suites with less coverage: %s\n" "$failed" + if [ -z "$failed" ]; then + printf "No coverage gap found.\n" + else + printf "Suites with less coverage:%s\n" "$failed" + fi } populate_suites From d92fb01419755046c32f4caa3a19c8a6371aaec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 18 Oct 2022 10:14:31 +0200 Subject: [PATCH 0708/1028] Skip bits not needed in outcome-analysis.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- docs/architecture/psa-migration/outcome-analysis.sh | 1 + tests/scripts/all.sh | 13 +++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/architecture/psa-migration/outcome-analysis.sh b/docs/architecture/psa-migration/outcome-analysis.sh index 8c6f5e65e6..2134c5bb13 100755 --- a/docs/architecture/psa-migration/outcome-analysis.sh +++ b/docs/architecture/psa-migration/outcome-analysis.sh @@ -95,6 +95,7 @@ record "reference" cleanup export MBEDTLS_TEST_OUTCOME_FILE="$PWD/outcome-drivers.csv" +export SKIP_SSL_OPT_COMPAT_SH=1 tests/scripts/all.sh -k test_psa_crypto_config_accel_hash_use_psa # analysis diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index f1b2f0e29f..e794d088a0 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2063,11 +2063,16 @@ component_test_psa_crypto_config_accel_hash_use_psa () { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" make test - msg "test: ssl-opt.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" - tests/ssl-opt.sh + # hidden option: when running outcome-analysis.sh, we can skip this + if [ "${SKIP_SSL_OPT_COMPAT_SH-unset}" = "unset" ]; then + msg "test: ssl-opt.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" + tests/ssl-opt.sh - msg "test: compat.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" - tests/compat.sh + msg "test: compat.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" + tests/compat.sh + else + echo "skip sh scripts" + fi } component_test_psa_crypto_config_accel_cipher () { From ff4181e2460f6370d46caf16e2d1b3ecd729153a Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Tue, 18 Oct 2022 18:16:08 +0800 Subject: [PATCH 0709/1028] Fix build error in cmake while printing digital build version Signed-off-by: Yanray Wang --- programs/ssl/ssl_client2.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 451e232643..59a96d2126 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -27,6 +27,7 @@ #if defined(MBEDTLS_VERSION_C) #include "mbedtls/build_info.h" +#include "mbedtls/version.h" #endif /* MBEDTLS_VERSION_C */ #if defined(MBEDTLS_SSL_TEST_IMPOSSIBLE) @@ -1004,7 +1005,7 @@ int main( int argc, char *argv[] ) { mbedtls_printf( "build version: %s (build %u)\n", MBEDTLS_VERSION_STRING, - MBEDTLS_VERSION_NUMBER ); + mbedtls_version_get_number() ); goto exit; } } @@ -2481,7 +2482,7 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_VERSION_C) mbedtls_printf( "build version: %s (build %u)\n", - MBEDTLS_VERSION_STRING, MBEDTLS_VERSION_NUMBER ); + MBEDTLS_VERSION_STRING, mbedtls_version_get_number() ); #endif /* MBEDTLS_VERSION_C */ #if defined(MBEDTLS_X509_CRT_PARSE_C) From 98b1af4e344d0f87d6f559459d1606b58ef1411b Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 18 Oct 2022 13:16:04 +0200 Subject: [PATCH 0710/1028] test_suite_debug: adapt dependenies so the test can run in the driver-only build Signed-off-by: Przemek Stekiel --- tests/suites/test_suite_debug.data | 4 ++-- tests/suites/test_suite_debug.function | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_debug.data b/tests/suites/test_suite_debug.data index 4d9290a57e..47612d6e26 100644 --- a/tests/suites/test_suite_debug.data +++ b/tests/suites/test_suite_debug.data @@ -59,9 +59,9 @@ Debug print mbedtls_mpi: 764 bits #2 mbedtls_debug_print_mpi:"0000000000000000000000000000000000000000000000000000000941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"MyFile":999:"VALUE":"MyFile(0999)\: value of 'VALUE' (764 bits) is\:\nMyFile(0999)\: 09 41 37 9d 00 fe d1 49 1f e1 5d f2 84 df de 4a\nMyFile(0999)\: 14 2f 68 aa 8d 41 20 23 19 5c ee 66 88 3e 62 90\nMyFile(0999)\: ff e7 03 f4 ea 59 63 bf 21 27 13 ce e4 6b 10 7c\nMyFile(0999)\: 09 18 2b 5e dc d9 55 ad ac 41 8b f4 91 8e 28 89\nMyFile(0999)\: af 48 e1 09 9d 51 38 30 ce c8 5c 26 ac 1e 15 8b\nMyFile(0999)\: 52 62 0e 33 ba 86 92 f8 93 ef bb 2f 95 8b 44 24\n" Debug print certificate #1 (RSA) -depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_BASE64_C:MBEDTLS_RSA_C:MBEDTLS_SHA1_C:!MBEDTLS_X509_REMOVE_INFO +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_BASE64_C:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_1_VIA_LOWLEVEL_OR_PSA:!MBEDTLS_X509_REMOVE_INFO mbedtls_debug_print_crt:"data_files/server1.crt":"MyFile":999:"PREFIX_":"MyFile(0999)\: PREFIX_ #1\:\nMyFile(0999)\: cert. version \: 3\nMyFile(0999)\: serial number \: 01\nMyFile(0999)\: issuer name \: C=NL, O=PolarSSL, CN=PolarSSL Test CA\nMyFile(0999)\: subject name \: C=NL, O=PolarSSL, CN=PolarSSL Server 1\nMyFile(0999)\: issued on \: 2019-02-10 14\:44\:06\nMyFile(0999)\: expires on \: 2029-02-10 14\:44\:06\nMyFile(0999)\: signed using \: RSA with SHA1\nMyFile(0999)\: RSA key size \: 2048 bits\nMyFile(0999)\: basic constraints \: CA=false\nMyFile(0999)\: value of 'crt->rsa.N' (2048 bits) is\:\nMyFile(0999)\: a9 02 1f 3d 40 6a d5 55 53 8b fd 36 ee 82 65 2e\nMyFile(0999)\: 15 61 5e 89 bf b8 e8 45 90 db ee 88 16 52 d3 f1\nMyFile(0999)\: 43 50 47 96 12 59 64 87 6b fd 2b e0 46 f9 73 be\nMyFile(0999)\: dd cf 92 e1 91 5b ed 66 a0 6f 89 29 79 45 80 d0\nMyFile(0999)\: 83 6a d5 41 43 77 5f 39 7c 09 04 47 82 b0 57 39\nMyFile(0999)\: 70 ed a3 ec 15 19 1e a8 33 08 47 c1 05 42 a9 fd\nMyFile(0999)\: 4c c3 b4 df dd 06 1f 4d 10 51 40 67 73 13 0f 40\nMyFile(0999)\: f8 6d 81 25 5f 0a b1 53 c6 30 7e 15 39 ac f9 5a\nMyFile(0999)\: ee 7f 92 9e a6 05 5b e7 13 97 85 b5 23 92 d9 d4\nMyFile(0999)\: 24 06 d5 09 25 89 75 07 dd a6 1a 8f 3f 09 19 be\nMyFile(0999)\: ad 65 2c 64 eb 95 9b dc fe 41 5e 17 a6 da 6c 5b\nMyFile(0999)\: 69 cc 02 ba 14 2c 16 24 9c 4a dc cd d0 f7 52 67\nMyFile(0999)\: 73 f1 2d a0 23 fd 7e f4 31 ca 2d 70 ca 89 0b 04\nMyFile(0999)\: db 2e a6 4f 70 6e 9e ce bd 58 89 e2 53 59 9e 6e\nMyFile(0999)\: 5a 92 65 e2 88 3f 0c 94 19 a3 dd e5 e8 9d 95 13\nMyFile(0999)\: ed 29 db ab 70 12 dc 5a ca 6b 17 ab 52 82 54 b1\nMyFile(0999)\: value of 'crt->rsa.E' (17 bits) is\:\nMyFile(0999)\: 01 00 01\n" Debug print certificate #2 (EC) -depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_BASE64_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C:!MBEDTLS_X509_REMOVE_INFO +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_BASE64_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_LOWLEVEL_OR_PSA:!MBEDTLS_X509_REMOVE_INFO mbedtls_debug_print_crt:"data_files/test-ca2.crt":"MyFile":999:"PREFIX_":"MyFile(0999)\: PREFIX_ #1\:\nMyFile(0999)\: cert. version \: 3\nMyFile(0999)\: serial number \: C1\:43\:E2\:7E\:62\:43\:CC\:E8\nMyFile(0999)\: issuer name \: C=NL, O=PolarSSL, CN=Polarssl Test EC CA\nMyFile(0999)\: subject name \: C=NL, O=PolarSSL, CN=Polarssl Test EC CA\nMyFile(0999)\: issued on \: 2019-02-10 14\:44\:00\nMyFile(0999)\: expires on \: 2029-02-10 14\:44\:00\nMyFile(0999)\: signed using \: ECDSA with SHA256\nMyFile(0999)\: EC key size \: 384 bits\nMyFile(0999)\: basic constraints \: CA=true\nMyFile(0999)\: value of 'crt->eckey.Q(X)' (384 bits) is\:\nMyFile(0999)\: c3 da 2b 34 41 37 58 2f 87 56 fe fc 89 ba 29 43\nMyFile(0999)\: 4b 4e e0 6e c3 0e 57 53 33 39 58 d4 52 b4 91 95\nMyFile(0999)\: 39 0b 23 df 5f 17 24 62 48 fc 1a 95 29 ce 2c 2d\nMyFile(0999)\: value of 'crt->eckey.Q(Y)' (384 bits) is\:\nMyFile(0999)\: 87 c2 88 52 80 af d6 6a ab 21 dd b8 d3 1c 6e 58\nMyFile(0999)\: b8 ca e8 b2 69 8e f3 41 ad 29 c3 b4 5f 75 a7 47\nMyFile(0999)\: 6f d5 19 29 55 69 9a 53 3b 20 b4 66 16 60 33 1e\n" diff --git a/tests/suites/test_suite_debug.function b/tests/suites/test_suite_debug.function index fa93ca968d..85544b560c 100644 --- a/tests/suites/test_suite_debug.function +++ b/tests/suites/test_suite_debug.function @@ -1,6 +1,7 @@ /* BEGIN_HEADER */ #include "mbedtls/debug.h" #include "string.h" +#include "mbedtls/legacy_or_psa.h" struct buffer_data { From 4dceede71bb6e40c80990d0df990963480dca1c3 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 18 Oct 2022 16:44:17 +0200 Subject: [PATCH 0711/1028] Fix overly replacement in the documentation Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 833b0108ce..71aa3608bb 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -810,7 +810,7 @@ void mpi_core_cond_assign( data_t * input_X, TEST_CF_PUBLIC( Y, bytes ); /* Check if the given length is copied even it is smaller - than the bytesgth of the given MPIs. */ + than the length of the given MPIs. */ if( copy_limbs < limbs ) { ASSERT_COMPARE( X, copy_bytes, Y, copy_bytes ); From 178ec96c89c30b271b43c0fe77615a059fafc3ca Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 18 Oct 2022 17:42:22 +0100 Subject: [PATCH 0712/1028] Remove unnecessary NULL assignments Signed-off-by: David Horstmann --- library/x509.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/library/x509.c b/library/x509.c index 403507413d..812eba8afd 100644 --- a/library/x509.c +++ b/library/x509.c @@ -538,14 +538,9 @@ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, } error: - prev = NULL; - /* Skip the first element as we did not allocate it */ allocated = head->next; - /* Make sure we cannot be followed along this list */ - head->next = NULL; - while( allocated != NULL ) { prev = allocated; From 078250eb56869145af669cfd951a317feaddb746 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 18 Oct 2022 18:11:13 +0100 Subject: [PATCH 0713/1028] Fix incorrect return style Signed-off-by: David Horstmann --- library/x509.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/x509.c b/library/x509.c index 812eba8afd..199f82bc2a 100644 --- a/library/x509.c +++ b/library/x509.c @@ -552,7 +552,7 @@ error: mbedtls_platform_zeroize( head, sizeof( *head ) ); - return ret; + return( ret ); } static int x509_parse_int( unsigned char **p, size_t n, int *res ) From 98b91d40d6455ab4c7aefd9e36454da684dbcf52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 19 Oct 2022 10:59:30 +0200 Subject: [PATCH 0714/1028] RSA PKCS#1 v1.5 no longer depends on MD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This has been the case since https://github.com/Mbed-TLS/mbedtls/pull/6065 which forgot to update the documentation, and also is_builtin_calling_md(), so update those. Signed-off-by: Manuel Pégourié-Gonnard --- include/mbedtls/mbedtls_config.h | 2 +- tests/suites/test_suite_psa_crypto_storage_format.function | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 61007d801b..9cb0f9a238 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1130,7 +1130,7 @@ * * Enable support for PKCS#1 v1.5 encoding. * - * Requires: MBEDTLS_MD_C, MBEDTLS_RSA_C + * Requires: MBEDTLS_RSA_C * * This enables support for PKCS#1 v1.5 operations. */ diff --git a/tests/suites/test_suite_psa_crypto_storage_format.function b/tests/suites/test_suite_psa_crypto_storage_format.function index c52dae1882..31d3cb45d2 100644 --- a/tests/suites/test_suite_psa_crypto_storage_format.function +++ b/tests/suites/test_suite_psa_crypto_storage_format.function @@ -84,10 +84,6 @@ static int is_accelerated_rsa( psa_algorithm_t alg ) * also be built-in. */ static int is_builtin_calling_md( psa_algorithm_t alg ) { -#if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN) - if( PSA_ALG_IS_RSA_PKCS1V15_SIGN( alg ) ) - return( 1 ); -#endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) if( PSA_ALG_IS_RSA_PSS( alg ) ) return( 1 ); From deef905a1c5fff195ae7ddaacc54121836b39262 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 19 Oct 2022 11:02:15 +0200 Subject: [PATCH 0715/1028] Update is_builtin_calling_md() for PKCS#1 v2.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since https://github.com/Mbed-TLS/mbedtls/pull/6141 it can "fall back" to PSA when MD is not available (but will use MD if available, to preserve backwards compatibility). Signed-off-by: Manuel Pégourié-Gonnard --- .../suites/test_suite_psa_crypto_storage_format.function | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/suites/test_suite_psa_crypto_storage_format.function b/tests/suites/test_suite_psa_crypto_storage_format.function index 31d3cb45d2..1fd267a6c2 100644 --- a/tests/suites/test_suite_psa_crypto_storage_format.function +++ b/tests/suites/test_suite_psa_crypto_storage_format.function @@ -86,11 +86,19 @@ static int is_builtin_calling_md( psa_algorithm_t alg ) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) if( PSA_ALG_IS_RSA_PSS( alg ) ) +#if defined(MBEDTLS_MD_C) return( 1 ); +#else + return( 0 ); +#endif #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) if( PSA_ALG_IS_RSA_OAEP( alg ) ) +#if defined(MBEDTLS_MD_C) return( 1 ); +#else + return( 0 ); +#endif #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) if( PSA_ALG_IS_DETERMINISTIC_ECDSA( alg ) ) From 0dc40773d652858c3baa4c735a8e6f4d86d7c6fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 19 Oct 2022 12:12:21 +0200 Subject: [PATCH 0716/1028] Improve comments & messages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- docs/architecture/psa-migration/outcome-analysis.sh | 2 +- tests/scripts/all.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/architecture/psa-migration/outcome-analysis.sh b/docs/architecture/psa-migration/outcome-analysis.sh index 2134c5bb13..81ab69183c 100755 --- a/docs/architecture/psa-migration/outcome-analysis.sh +++ b/docs/architecture/psa-migration/outcome-analysis.sh @@ -47,7 +47,7 @@ reference_config () { IGNORE="md mdx shax" # accelerated IGNORE="$IGNORE entropy hmac_drbg random" # disabled (ext. RNG) IGNORE="$IGNORE psa_crypto_init" # needs internal RNG -IGNORE="$IGNORE hkdf" # disabled +IGNORE="$IGNORE hkdf" # disabled in the all.sh component tested # Compare only "reference vs driver" or also "before vs after"? BEFORE_AFTER=1 # 0 or 1 # ----- END edit this ----- diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index e794d088a0..7b93fce681 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2043,7 +2043,7 @@ component_test_psa_crypto_config_accel_hash_use_psa () { # Also unset MD_C and things that depend on it; # see component_test_crypto_full_no_md. scripts/config.py unset MBEDTLS_MD_C - scripts/config.py unset MBEDTLS_HKDF_C + scripts/config.py unset MBEDTLS_HKDF_C # has independent PSA implementation scripts/config.py unset MBEDTLS_HMAC_DRBG_C scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_DETERMINISTIC_ECDSA @@ -2071,7 +2071,7 @@ component_test_psa_crypto_config_accel_hash_use_psa () { msg "test: compat.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" tests/compat.sh else - echo "skip sh scripts" + echo "skip ssl-opt.sh and compat.sh" fi } From 8258ea7b7ddfe3de5fd6fd15d1c8764e9ef13b92 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 19 Oct 2022 12:17:19 +0200 Subject: [PATCH 0717/1028] test_suite_psa_crypto: adapt dependenies and guards so the test can run in the driver-only build Signed-off-by: Przemek Stekiel --- tests/src/psa_exercise_key.c | 4 +- tests/suites/test_suite_psa_crypto.data | 348 ++++++++++---------- tests/suites/test_suite_psa_crypto.function | 3 +- 3 files changed, 178 insertions(+), 177 deletions(-) diff --git a/tests/src/psa_exercise_key.c b/tests/src/psa_exercise_key.c index 3705bc52c4..08c3b46856 100644 --- a/tests/src/psa_exercise_key.c +++ b/tests/src/psa_exercise_key.c @@ -319,8 +319,8 @@ static int exercise_signature_key( mbedtls_svc_key_id_t key, /* If the policy allows signing with any hash, just pick one. */ if( PSA_ALG_IS_SIGN_HASH( alg ) && hash_alg == PSA_ALG_ANY_HASH ) { - #if defined(KNOWN_MBEDTLS_SUPPORTED_HASH_ALG) - hash_alg = KNOWN_MBEDTLS_SUPPORTED_HASH_ALG; + #if defined(KNOWN_SUPPORTED_HASH_ALG) + hash_alg = KNOWN_SUPPORTED_HASH_ALG; alg ^= PSA_ALG_ANY_HASH ^ hash_alg; #else TEST_ASSERT( ! "No hash algorithm for hash-and-sign testing" ); diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index cded3a8459..4448bc400f 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -362,7 +362,7 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTL import_export:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_KEY_TYPE_RSA_KEY_PAIR:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_RSA_PKCS1V15_CRYPT:0:1024:0:PSA_ERROR_NOT_PERMITTED:1 PSA import/export RSA keypair: policy forbids export (sign) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C import_export:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_KEY_TYPE_RSA_KEY_PAIR:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:1024:0:PSA_ERROR_NOT_PERMITTED:1 PSA import/export EC secp224r1 key pair: good, opaque @@ -490,7 +490,7 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTL import_export:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_KEY_TYPE_RSA_KEY_PAIR:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):1024:0:PSA_ERROR_NOT_PERMITTED:1 PSA import/export RSA keypair: policy forbids export (sign), opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_CRYPTO_DRIVER_TEST import_export:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_KEY_TYPE_RSA_KEY_PAIR:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):1024:0:PSA_ERROR_NOT_PERMITTED:1 # Test PEM import. Note that this is not a PSA feature, it's an Mbed TLS @@ -861,11 +861,11 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_encryption_key_policy:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_CRYPT PSA key policy: asymmetric encryption, wrong algorithm (v1.5/OAEP) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_encryption_key_policy:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256) PSA key policy: asymmetric encryption, wrong algorithm (OAEP with different hash) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_encryption_key_policy:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256) PSA key policy: asymmetric encryption, alg=0 in policy @@ -873,7 +873,7 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_encryption_key_policy:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_CRYPT PSA key policy: asymmetric encryption, ANY_HASH in policy is not meaningful -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_encryption_key_policy:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_RSA_OAEP(PSA_ALG_ANY_HASH):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256) PSA key policy: asymmetric encryption, encrypt but not decrypt @@ -889,11 +889,11 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_encryption_key_policy:0:PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_CRYPT PSA key policy: asymmetric signature, sign | verify hash, PKCS#1v1.5 SHA-256 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, sign | verify hash, PKCS#1v1.5 raw -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, sign | verify hash, ECDSA SHA-256 @@ -901,15 +901,15 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAI asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":PSA_ALG_ECDSA(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, sign, key usage extension -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE PSA key policy: asymmetric signature, verify, key usage extension -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, sign | verify, key usage extension -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, wrong alg family (PSS std/any salt) @@ -933,11 +933,11 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAI asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":PSA_ALG_ECDSA(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, wildcard in policy, PKCS#1v1.5 SHA-256 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, wildcard in policy, PKCS#1v1.5 raw -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:1:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, wrong hash algorithm @@ -945,19 +945,19 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_SHA_ asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, alg=0 in policy -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, sign but not verify -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE PSA key policy: asymmetric signature, verify but not sign -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, neither sign nor verify -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:0:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:0 PSA key policy: msg asymmetric signature, sign | verify @@ -1120,39 +1120,39 @@ depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0:0:PSA_KEY_TYPE_AES:"404142434445464748494a4b4c4d4e4f":0:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_CTR:0:0:PSA_KEY_USAGE_ENCRYPT:PSA_ALG_CTR:0 Copy key: RSA key pair, same usage flags -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, extended usage flags -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, fewer usage flags -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, more usage flags -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, intersect usage flags #0 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:0:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, intersect usage flags #1 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, wildcard algorithm in source -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, wildcard algorithm in target -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, wildcard algorithm in source and target -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0 Copy key: source=ECDSA+ECDH, target=ECDSA+ECDH @@ -1216,39 +1216,39 @@ depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_AES:"404142434445464748494a4b4c4d4e4f":0:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_CTR:0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_USAGE_ENCRYPT:PSA_ALG_CTR:0 Copy key: RSA key pair, same usage flags, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, extended usage flags, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, fewer usage flags, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, more usage flags, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, intersect usage flags #0, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):0:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, intersect usage flags #1, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, wildcard algorithm in source, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, wildcard algorithm in target, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, wildcard algorithm in source and target, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0 Copy key: source=ECDSA+ECDH, target=ECDSA+ECDH, opaque @@ -1477,11 +1477,11 @@ depends_on:PSA_WANT_ALG_RIPEMD160 hash_setup:PSA_ALG_RIPEMD160:PSA_SUCCESS PSA hash setup: bad (unknown hash algorithm) -depends_on:MBEDTLS_SHA256_C +depends_on:PSA_WANT_ALG_SHA_256 hash_setup:PSA_ALG_CATEGORY_HASH:PSA_ERROR_NOT_SUPPORTED PSA hash setup: bad (wildcard instead of hash algorithm) -depends_on:MBEDTLS_SHA256_C +depends_on:PSA_WANT_ALG_SHA_256 hash_setup:PSA_ALG_ANY_HASH:PSA_ERROR_NOT_SUPPORTED PSA hash setup: bad (not a hash algorithm) @@ -1607,7 +1607,7 @@ depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES mac_setup:PSA_KEY_TYPE_AES:"000102030405060708090a0b0c0d0e0f":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT PSA MAC setup: truncated MAC too small (1 byte) -depends_on:MBEDTLS_SHA256_C +depends_on:PSA_WANT_ALG_SHA_256 mac_setup:PSA_KEY_TYPE_HMAC:"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f":PSA_ALG_TRUNCATED_MAC( PSA_ALG_HMAC( PSA_ALG_SHA_256 ), 1 ):PSA_ERROR_NOT_SUPPORTED PSA MAC setup: truncated MAC too large (33 bytes for SHA-256) @@ -4082,27 +4082,27 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR signature_size:PSA_KEY_TYPE_RSA_KEY_PAIR:1025:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:129 PSA import/exercise RSA keypair, PKCS#1 v1.5 raw -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C import_and_exercise_key:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_ALG_RSA_PKCS1V15_SIGN_RAW PSA import/exercise RSA keypair, PSS-SHA-256 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C import_and_exercise_key:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256) PSA import/exercise RSA keypair, PSS-any-salt-SHA-256 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C import_and_exercise_key:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256) PSA import/exercise RSA public key, PKCS#1 v1.5 raw -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C import_and_exercise_key:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_ALG_RSA_PKCS1V15_SIGN_RAW PSA import/exercise RSA public key, PSS-SHA-256 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C import_and_exercise_key:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256) PSA import/exercise RSA public key, PSS-any-salt-SHA-256 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C import_and_exercise_key:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256) PSA import/exercise: ECP SECP256R1 keypair, ECDSA @@ -4110,7 +4110,7 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C: import_and_exercise_key:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_ALG_ECDSA_ANY PSA import/exercise: ECP SECP256R1 keypair, deterministic ECDSA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 import_and_exercise_key:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ) PSA import/exercise: ECP SECP256R1 keypair, ECDH @@ -4126,55 +4126,55 @@ depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF import_and_exercise_key:"c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0":PSA_KEY_TYPE_DERIVE:192:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256) PSA sign hash: RSA PKCS#1 v1.5, raw -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_deterministic:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:"616263":"2c7744983f023ac7bb1c55529d83ed11a76a7898a1bb5ce191375a4aa7495a633d27879ff58eba5a57371c34feb1180e8b850d552476ebb5634df620261992f12ebee9097041dbbea85a42d45b344be5073ceb772ffc604954b9158ba81ec3dc4d9d65e3ab7aa318165f38c36f841f1c69cb1cfa494aa5cbb4d6c0efbafb043a" PSA sign hash: RSA PKCS#1 v1.5 SHA-256 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_deterministic:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311" PSA sign hash: deterministic ECDSA SECP256R1 SHA-256 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_hash_deterministic:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":"6a3399f69421ffe1490377adf2ea1f117d81a63cf5bf22e918d51175eb259151ce95d7c26cc04e25503e2f7a1ec3573e3c2412534bb4a19b3a7811742f49f50f" PSA sign hash: deterministic ECDSA SECP256R1 SHA-384 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C:MBEDLTS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDLTS_PSA_BUILTIN_ALG_SHA_384 sign_hash_deterministic:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_384 ):"59e1748777448c69de6b800d7a33bbfb9ff1b463e44354c3553bcdb9c666fa90125a3c79f90397bdf5f6a13de828684f":"cd40ba1b555ca5994d30ddffc4ad734b1f5c604675b0f249814aa5de3992ef3ddf4d5dc5d2aab1979ce210b560754df671363d99795475882894c048e3b986ca" PSA sign hash: deterministic ECDSA SECP384R1 SHA-256 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_384:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_384 sign_hash_deterministic:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ):"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824":"52d92aac1fcc0fea3ecce01a9ed4bc9ac342f92470fd3f54d0d6d2fa5d2940405057a9d49a817c2b193322f05fc93ac1c7a055edac93bec0ade6814ab27b86b5295ac1ddb323818200f00c3d94d959f714f128b64a2e19628037ac009b14774f" PSA sign hash: RSA PKCS#1 v1.5 SHA-256, wrong hash size -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015":128:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: RSA PKCS#1 v1.5, invalid hash (wildcard) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":128:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: RSA PKCS#1 v1.5 raw, input too large -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":128:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: RSA PKCS#1 v1.5 SHA-256, output buffer too small -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":127:PSA_ERROR_BUFFER_TOO_SMALL PSA sign hash: RSA PSS SHA-256, wrong hash length (0 bytes) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"":127:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: RSA PSS-any-salt SHA-256, wrong hash length (0 bytes) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"":127:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: RSA PSS SHA-256, wrong hash length (129 bytes) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":127:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: RSA PSS-any-salt SHA-256, wrong hash length (129 bytes) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":127:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: deterministic ECDSA SECP256R1 SHA-256, output buffer too small @@ -4182,7 +4182,7 @@ depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TY sign_hash_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":63:PSA_ERROR_BUFFER_TOO_SMALL PSA sign hash: RSA PKCS#1 v1.5 SHA-256, empty output buffer -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":0:PSA_ERROR_BUFFER_TOO_SMALL PSA sign hash: deterministic ECDSA SECP256R1 SHA-256, empty output buffer @@ -4190,11 +4190,11 @@ depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TY sign_hash_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":0:PSA_ERROR_BUFFER_TOO_SMALL PSA sign hash: deterministic ECDSA SECP256R1, invalid hash algorithm (0) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_hash_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA( 0 ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":72:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: deterministic ECDSA SECP256R1, invalid hash algorithm (wildcard) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_hash_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_ANY_HASH ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":72:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: invalid key type, signing with a public key @@ -4202,27 +4202,27 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDT sign_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":72:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: invalid algorithm for ECC key -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":72:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: deterministic ECDSA not supported -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_MD_C +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED sign_hash_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ):"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824":96:PSA_ERROR_NOT_SUPPORTED PSA sign/verify hash: RSA PKCS#1 v1.5, raw -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_hash:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:"616263" PSA sign/verify hash: RSA PKCS#1 v1.5 SHA-256 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_hash:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" PSA sign/verify hash: RSA PSS SHA-256, 32 bytes (hash size) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_hash:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" PSA sign/verify hash: RSA PSS-any-salt SHA-256, 32 bytes (hash size) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_hash:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" PSA sign/verify hash: randomized ECDSA SECP256R1 SHA-256 @@ -4230,15 +4230,15 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAI sign_verify_hash:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA( PSA_ALG_SHA_256 ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b" PSA sign/verify hash: deterministic ECDSA SECP256R1 SHA-256 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_verify_hash:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b" PSA sign/verify hash: randomized ECDSA SECP256R1 SHA-384 -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA sign_verify_hash:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA( PSA_ALG_SHA_384 ):"59e1748777448c69de6b800d7a33bbfb9ff1b463e44354c3553bcdb9c666fa90125a3c79f90397bdf5f6a13de828684f" PSA sign/verify hash: deterministic ECDSA SECP256R1 SHA-384 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA sign_verify_hash:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_384 ):"59e1748777448c69de6b800d7a33bbfb9ff1b463e44354c3553bcdb9c666fa90125a3c79f90397bdf5f6a13de828684f" PSA sign/verify hash: randomized ECDSA SECP384R1 SHA-256 @@ -4246,119 +4246,119 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAI sign_verify_hash:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":PSA_ALG_ECDSA( PSA_ALG_SHA_256 ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b" PSA sign/verify hash: deterministic ECDSA SECP384R1 SHA-256 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_384:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_384 sign_verify_hash:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b" PSA verify hash: RSA PKCS#1 v1.5 SHA-256, good signature -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311" PSA verify hash with keypair: RSA PKCS#1 v1.5 SHA-256, good signature -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C verify_hash:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311" PSA verify hash: RSA PKCS#1 v1.5 SHA-256, wrong hash length -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_1 +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311":PSA_ERROR_INVALID_ARGUMENT PSA verify hash: RSA PKCS#1 v1.5 SHA-256, wrong signature (same size) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"111164d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA PKCS#1 v1.5 SHA-256, wrong signature (empty) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA PKCS#1 v1.5 SHA-256, wrong signature (truncated) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc73":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA PKCS#1 v1.5 SHA-256, wrong signature (trailing junk) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc731121":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA PKCS#1 v1.5 SHA-256, wrong signature (leading junk) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"21a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA-1024 PSS SHA-256, slen=0 (bad) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"abc4b612c6b71e13fa5965b2e25ee6adec5b1f211b2db158e9f3c4547d6cbef909a73dfb474b8caaf6c8fcafa10ec0bbadfd1883289ce33ad08ad533c61ea004fef4d9b76a1efc267efd066ae8918cb8e994faad30ff5e340e14c941926ba7ca9422b86e8055df1c1b90a5959a59cc7a5fc15cbd0d848cd40f7857b7629b668b":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA-1024 PSS-any-salt SHA-256, slen=0 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"abc4b612c6b71e13fa5965b2e25ee6adec5b1f211b2db158e9f3c4547d6cbef909a73dfb474b8caaf6c8fcafa10ec0bbadfd1883289ce33ad08ad533c61ea004fef4d9b76a1efc267efd066ae8918cb8e994faad30ff5e340e14c941926ba7ca9422b86e8055df1c1b90a5959a59cc7a5fc15cbd0d848cd40f7857b7629b668b" PSA verify hash: RSA-1024 PSS SHA-256, slen=31 (bad) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"797914eadbbe8293a7b0fe29d2db9fb246b519128d46d3ec93142a1a08a2992ba5325ad9b5ce55344b37996dbb81eb89628263cae4e3fc0e947dec0b8b0c7b0ee94bca02dd287f9cc619e2d88fb2279fb2a8f8301271c58009bb1223f3cfa730cb852947685678cfdef2968c82a9b8bffd8c0d518476b1ea2a5ad6c100045d8e":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA-1024 PSS-any-salt SHA-256, slen=31 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"797914eadbbe8293a7b0fe29d2db9fb246b519128d46d3ec93142a1a08a2992ba5325ad9b5ce55344b37996dbb81eb89628263cae4e3fc0e947dec0b8b0c7b0ee94bca02dd287f9cc619e2d88fb2279fb2a8f8301271c58009bb1223f3cfa730cb852947685678cfdef2968c82a9b8bffd8c0d518476b1ea2a5ad6c100045d8e" PSA verify hash: RSA-1024 PSS SHA-256, slen=32 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"6b201c50637962338d1b218c1d26f031205a0e3c47bc4c54856aa037e5a332d2981e80a51648e902e46046e5507a255c4c73f5ff40d5a54c0a11d2eca7804e1767b20ea12c945a23f5473181d379689c1ba634a2c47c0a8ec90c922ca6466ae9e9fb92871c9043b5858ae34828bceb4ead82db8f21a18ebe1d95b469bbdef1df" PSA verify hash: RSA-1024 PSS-any-salt SHA-256, slen=32 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"6b201c50637962338d1b218c1d26f031205a0e3c47bc4c54856aa037e5a332d2981e80a51648e902e46046e5507a255c4c73f5ff40d5a54c0a11d2eca7804e1767b20ea12c945a23f5473181d379689c1ba634a2c47c0a8ec90c922ca6466ae9e9fb92871c9043b5858ae34828bceb4ead82db8f21a18ebe1d95b469bbdef1df" PSA verify hash: RSA-1024 PSS SHA-256, slen=94 (bad) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"44a09fa66f1b2e790474960e90517e418747cfcd18423dff957516a598569d74f26ef1eae4a200d12d801e16fc6fde375330c79c0d8430825e0a7f69c664faefccfa25e7fbfc68af02af0f67fe4c49f68f6abc68c8f66d3fd77fc838961f4415827340c66e39c79ed7dae0738c08ce8272aebe50c72e31994b9b6db640b51800":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA-1024 PSS-any-salt SHA-256, slen=94 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"44a09fa66f1b2e790474960e90517e418747cfcd18423dff957516a598569d74f26ef1eae4a200d12d801e16fc6fde375330c79c0d8430825e0a7f69c664faefccfa25e7fbfc68af02af0f67fe4c49f68f6abc68c8f66d3fd77fc838961f4415827340c66e39c79ed7dae0738c08ce8272aebe50c72e31994b9b6db640b51800" PSA verify hash: RSA-1024 PSS SHA-512, slen=61 (bad) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_512 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f":"23f5b30c8d612d8f31206c177ac2023c4f44754d03c7ff67daff99f24fa369b3e5f7c15b228a4417a1ff1c93fb8d645d619c2f4f559ac6c7f7bac20ba9df32353d19941265a4e74261adaf45d48682c0bc86cea6128f11ad172ff461fb1d97bded615861843996e2a98e7b8313b695519d001ae35305d6cbf3c0ee6c7ab06d1a":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA-1024 PSS-any-salt SHA-512, slen=61 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_512 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f":"23f5b30c8d612d8f31206c177ac2023c4f44754d03c7ff67daff99f24fa369b3e5f7c15b228a4417a1ff1c93fb8d645d619c2f4f559ac6c7f7bac20ba9df32353d19941265a4e74261adaf45d48682c0bc86cea6128f11ad172ff461fb1d97bded615861843996e2a98e7b8313b695519d001ae35305d6cbf3c0ee6c7ab06d1a" PSA verify hash: RSA-1024 PSS SHA-512, slen=62 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_512 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f":"6b215d77cf88b2d08be53b4f3ac6e72ebfbf7e0dc6c1e77b238cfb661c247a011b8746709fbefe4bc05d37343391683e9489d720ecbb7df37f4e36967918958996939461703465c2014a4c12faf875f8def70070e55b765b165c7e9c6f2eb05c98351b1e82219c31a2fb3ddce05f8988f552ff92f0b3471f63c0e53824c550a4" PSA verify hash: RSA-1024 PSS-any-salt SHA-512, slen=62 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_512 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f":"6b215d77cf88b2d08be53b4f3ac6e72ebfbf7e0dc6c1e77b238cfb661c247a011b8746709fbefe4bc05d37343391683e9489d720ecbb7df37f4e36967918958996939461703465c2014a4c12faf875f8def70070e55b765b165c7e9c6f2eb05c98351b1e82219c31a2fb3ddce05f8988f552ff92f0b3471f63c0e53824c550a4" PSA verify hash: RSA-528 PSS SHA-512, slen=0 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_512 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"304a024300e31c246d46485984261fd174cab3d4357344602ecd793c47dbe54252d37bb350bc634359b19515542080e4724a4b672291be57c7648f51629eaef234e847d99cc65f0203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f":"a14ad0fef77d36c28658a66129ee632e40e1032003eefe7fcda8e52b06675a051c80b2ca1cb99ed0762e90c9a48c434cd1063638eed7895a9c770e5435af750a1955" PSA verify hash: RSA-528 PSS-any-salt SHA-512, slen=0 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_512 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"304a024300e31c246d46485984261fd174cab3d4357344602ecd793c47dbe54252d37bb350bc634359b19515542080e4724a4b672291be57c7648f51629eaef234e847d99cc65f0203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f":"a14ad0fef77d36c28658a66129ee632e40e1032003eefe7fcda8e52b06675a051c80b2ca1cb99ed0762e90c9a48c434cd1063638eed7895a9c770e5435af750a1955" PSA verify hash: RSA-520 PSS SHA-512 (hash too large) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_512 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"3049024200d5a06f86e5b9d87428540165ca966fa8893a62e2a59d0bfd7617780bb039f9165a373a8e119d0766f8de556710f33f67019153bad8223775e797d451d48206f3bf0203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f":"deaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddead42":PSA_ERROR_INVALID_ARGUMENT PSA verify hash: RSA-520 PSS-any-salt SHA-512 (hash too large) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_512 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"3049024200d5a06f86e5b9d87428540165ca966fa8893a62e2a59d0bfd7617780bb039f9165a373a8e119d0766f8de556710f33f67019153bad8223775e797d451d48206f3bf0203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f":"deaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddead42":PSA_ERROR_INVALID_ARGUMENT PSA verify hash: RSA PSS SHA-256, wrong hash length (0 bytes) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"":"34c011b625c32d992f4ab8fcfa52b616ea66270b5b75a4fc71af712f9b8806bcdd374ce50eafcbb489562b93347885f93c2de1d404c45cacccefceb112ff6ffdfe4264f91d66320bbbe09304b851b8ad6280bbccc571eebcd49c7db5dfa399a6289e1978407904598751613d9870770cdd8507e3dc7b46851dbf05ae1df2988d":PSA_ERROR_INVALID_ARGUMENT PSA verify hash: RSA PSS-any-salt SHA-256, wrong hash length (0 bytes) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"":"34c011b625c32d992f4ab8fcfa52b616ea66270b5b75a4fc71af712f9b8806bcdd374ce50eafcbb489562b93347885f93c2de1d404c45cacccefceb112ff6ffdfe4264f91d66320bbbe09304b851b8ad6280bbccc571eebcd49c7db5dfa399a6289e1978407904598751613d9870770cdd8507e3dc7b46851dbf05ae1df2988d":PSA_ERROR_INVALID_ARGUMENT PSA verify hash: RSA PSS SHA-256, wrong hash length (129 bytes) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":"1491cead330b4ad5b092f8351518141ac11d0888591572669c1e79d6e932c488acd62d44479b0e14cd91a048778bc02398a772ad6bdb4f7764780cf0afe70293d0cac86f2695a1dcb54568bb37d7086f9e86f95a6802d2ee5a4facaa762beff5261bb2816b62cb5af86404974c3f6b67985ac1fbfdf46d6de54f6e29d9274308":PSA_ERROR_INVALID_ARGUMENT PSA verify hash: RSA PSS-any-salt SHA-256, wrong hash length (129 bytes) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":"1491cead330b4ad5b092f8351518141ac11d0888591572669c1e79d6e932c488acd62d44479b0e14cd91a048778bc02398a772ad6bdb4f7764780cf0afe70293d0cac86f2695a1dcb54568bb37d7086f9e86f95a6802d2ee5a4facaa762beff5261bb2816b62cb5af86404974c3f6b67985ac1fbfdf46d6de54f6e29d9274308":PSA_ERROR_INVALID_ARGUMENT PSA verify hash: ECDSA SECP256R1, good @@ -4394,107 +4394,107 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:MBEDTLS_PK_PARSE_ verify_hash_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"04dea5e45d0ea37fc566232a508f4ad20ea13d47e4bf5fa4d54a57a0ba012042087097496efc583fed8b24a5b9be9a51de063f5a00a8b698a16fd7f29b5485f320":PSA_ALG_ECDSA_ANY:"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":"216a3399f69421ffe1490377adf2ea1f117d81a63cf5bf22e918d51175eb259151ce95d7c26cc04e25503e2f7a1ec3573e3c2412534bb4a19b3a7811742f49f50f":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: invalid algorithm for ECC key -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 verify_hash_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"":"":PSA_ERROR_INVALID_ARGUMENT PSA sign message: RSA PKCS#1 v1.5 SHA-256 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_message_deterministic:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311" PSA sign message: deterministic ECDSA SECP256R1 SHA-256 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_message_deterministic:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):"616263":"36e5b5a7da1c9c265dc447de3a5a704fcb8c03f7a3749dde48d84c9bf736fc1ed48d8b3660e7d3cbc6b1870730b7ce2a043f69e37ccb340b98d1e65184e03548" PSA sign message: deterministic ECDSA SECP256R1 SHA-384 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C:MBEDLTS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDLTS_PSA_BUILTIN_ALG_SHA_384 sign_message_deterministic:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):"616263":"7ea712a20e3a8cbe0c6e64195362ba7635bbe78af51ddedd7a5fd858395250c592654c35d3b0614ae0e3b329c25cf5b4a5fcb243af3e3ad15c8446fe401be066" PSA sign message: deterministic ECDSA SECP384R1 SHA-256 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_384:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_384 sign_message_deterministic:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):"616263":"3548ea85eb66d756ae90fd64a3104b5b9a17aa282f8722409762e9da4811ec5d3060a97d3450b4bc484cd21ac588f563c4873843506fed8609b7d093db0e9a2496c36995ee74c906528af6898feb502f45bfb1e9ccf371416c68d32bb5ebc1b6" PSA sign message: RSA PKCS#1 v1.5, invalid hash (wildcard) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_message_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):"616263":128:PSA_ERROR_INVALID_ARGUMENT PSA sign message: RSA PKCS#1 v1.5, invalid hash algorithm (0) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_message_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(0):"616263":128:PSA_ERROR_INVALID_ARGUMENT PSA sign message: RSA PKCS#1 v1.5 SHA-256, output buffer too small -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_message_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":127:PSA_ERROR_BUFFER_TOO_SMALL PSA sign message: RSA PKCS#1 v1.5 SHA-256, empty output buffer -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_message_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":0:PSA_ERROR_BUFFER_TOO_SMALL PSA sign message: RSA PKCS#1 v1.5 without hash -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_message_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:"616263":0:PSA_ERROR_INVALID_ARGUMENT PSA sign message: RSA PKCS#1 v1.5 SHA-256, invalid key type -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_CHACHA20:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_CHACHA20 sign_message_fail:PSA_KEY_TYPE_CHACHA20:"4bddc98c551a95395ef719557f813656b566bc45aac04eca3866324cc75489f2":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":128:PSA_ERROR_INVALID_ARGUMENT PSA sign message: ECDSA SECP256R1 SHA-256, invalid hash (wildcard) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_message_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):"616263":64:PSA_ERROR_INVALID_ARGUMENT PSA sign message: ECDSA SECP256R1 SHA-256, invalid hash algorithm (0) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_message_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA(0):"616263":64:PSA_ERROR_INVALID_ARGUMENT PSA sign message: ECDSA SECP256R1 SHA-256, output buffer too small -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_message_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA(PSA_ALG_SHA_256):"616263":63:PSA_ERROR_BUFFER_TOO_SMALL PSA sign message: ECDSA SECP256R1 SHA-256, empty output buffer -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_message_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA(PSA_ALG_SHA_256):"616263":0:PSA_ERROR_BUFFER_TOO_SMALL PSA sign message: ECDSA SECP256R1 SHA-256, invalid key type -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 sign_message_fail:PSA_KEY_TYPE_CHACHA20:"4bddc98c551a95395ef719557f813656b566bc45aac04eca3866324cc75489f2":PSA_ALG_ECDSA(PSA_ALG_SHA_256):"616263":64:PSA_ERROR_INVALID_ARGUMENT PSA sign message: invalid algorithm for ECC key -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_PK_PARSE_C sign_message_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"616263":72:PSA_ERROR_INVALID_ARGUMENT PSA sign message: deterministic ECDSA not supported -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_MD_C +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED sign_message_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):"616263":96:PSA_ERROR_NOT_SUPPORTED PSA sign message: ECDSA without hash -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_message_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA_ANY:"616263":96:PSA_ERROR_INVALID_ARGUMENT PSA sign/verify message: RSA PKCS#1 v1.5 SHA-256 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_message:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263" PSA sign/verify message: RSA PSS SHA-256 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_message:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"616263" PSA sign/verify message: RSA PSS-any-salt SHA-256 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_message:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"616263" PSA sign/verify message: RSA PSS SHA-256, 0 bytes -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_message:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"" PSA sign/verify message: RSA PSS SHA-256, 32 bytes -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_message:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" PSA sign/verify message: RSA PSS SHA-256, 128 bytes -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_message:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" PSA sign/verify message: RSA PSS SHA-256, 129 bytes -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_message:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" PSA sign/verify message: randomized ECDSA SECP256R1 SHA-256 @@ -4518,7 +4518,7 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAI sign_verify_message:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" PSA sign/verify message: deterministic ECDSA SECP256R1 SHA-256 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_verify_message:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):"616263" PSA sign/verify message: randomized ECDSA SECP256R1 SHA-384 @@ -4526,7 +4526,7 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAI sign_verify_message:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA(PSA_ALG_SHA_384):"616263" PSA sign/verify message: deterministic ECDSA SECP256R1 SHA-384 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C:MBEDLTS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDLTS_PSA_BUILTIN_ALG_SHA_384 sign_verify_message:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):"616263" PSA sign/verify message: randomized ECDSA SECP384R1 SHA-256 @@ -4534,55 +4534,55 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAI sign_verify_message:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":PSA_ALG_ECDSA(PSA_ALG_SHA_256):"616263" PSA sign/verify message: deterministic ECDSA SECP384R1 SHA-256 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_384:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_384 sign_verify_message:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):"616263" PSA verify message: RSA PKCS#1 v1.5 SHA-256, good signature -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311" PSA verify message with keypair: RSA PKCS#1 v1.5 SHA-256, good signature -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311" PSA verify message: RSA-1024 PSS SHA-256, slen=0 (bad) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"616263":"abc4b612c6b71e13fa5965b2e25ee6adec5b1f211b2db158e9f3c4547d6cbef909a73dfb474b8caaf6c8fcafa10ec0bbadfd1883289ce33ad08ad533c61ea004fef4d9b76a1efc267efd066ae8918cb8e994faad30ff5e340e14c941926ba7ca9422b86e8055df1c1b90a5959a59cc7a5fc15cbd0d848cd40f7857b7629b668b":PSA_ERROR_INVALID_SIGNATURE PSA verify message: RSA-1024 PSS-any-salt SHA-256, slen=0 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"616263":"abc4b612c6b71e13fa5965b2e25ee6adec5b1f211b2db158e9f3c4547d6cbef909a73dfb474b8caaf6c8fcafa10ec0bbadfd1883289ce33ad08ad533c61ea004fef4d9b76a1efc267efd066ae8918cb8e994faad30ff5e340e14c941926ba7ca9422b86e8055df1c1b90a5959a59cc7a5fc15cbd0d848cd40f7857b7629b668b" PSA verify message: RSA-1024 PSS SHA-256, slen=32 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"616263":"6b201c50637962338d1b218c1d26f031205a0e3c47bc4c54856aa037e5a332d2981e80a51648e902e46046e5507a255c4c73f5ff40d5a54c0a11d2eca7804e1767b20ea12c945a23f5473181d379689c1ba634a2c47c0a8ec90c922ca6466ae9e9fb92871c9043b5858ae34828bceb4ead82db8f21a18ebe1d95b469bbdef1df" PSA verify message: RSA-1024 PSS-any-salt SHA-256, slen=32 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"616263":"6b201c50637962338d1b218c1d26f031205a0e3c47bc4c54856aa037e5a332d2981e80a51648e902e46046e5507a255c4c73f5ff40d5a54c0a11d2eca7804e1767b20ea12c945a23f5473181d379689c1ba634a2c47c0a8ec90c922ca6466ae9e9fb92871c9043b5858ae34828bceb4ead82db8f21a18ebe1d95b469bbdef1df" PSA verify message: RSA PSS SHA-256, good signature, 32 bytes (hash size) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":"6b65e1fdc900dce8a2b82130ae8ccfac27b6d0eb5f2c0c1085b80f34ceaaf064c8ff237e74a24a3c6fb7a842f172e5146315616281bbbeeae90febaab139a212decf1c68923f2a48e242b1fd72105e3a3f2329c30d78abe8673335ad08c5ba1aa515360bb5660050f1994bb08d3dd17e3407a379403bafa4e229b3c851283f6d" PSA verify message: RSA PSS-any-salt SHA-256, good signature, 32 bytes (hash size) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":"6b65e1fdc900dce8a2b82130ae8ccfac27b6d0eb5f2c0c1085b80f34ceaaf064c8ff237e74a24a3c6fb7a842f172e5146315616281bbbeeae90febaab139a212decf1c68923f2a48e242b1fd72105e3a3f2329c30d78abe8673335ad08c5ba1aa515360bb5660050f1994bb08d3dd17e3407a379403bafa4e229b3c851283f6d" PSA verify message: RSA PSS SHA-256, good signature, 128 bytes (signature size) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":"29b65db0936b7fe408bda672077b0bc5e176177ba9a550fb548c292f7b4af1bb6475e0a979ba43dd644780801fabe5b62a1359cf7692918f30013e90c2362235765abc2078905d13b345dd689bf15e4e94ca51535d12f0675d5f13e9f254ba7696f0096d62deb023d106e9a96a5da3162bead6a745c8b9000868d2f9a447d5c5" PSA verify message: RSA-any-salt PSS SHA-256, good signature, 128 bytes (signature size) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":"29b65db0936b7fe408bda672077b0bc5e176177ba9a550fb548c292f7b4af1bb6475e0a979ba43dd644780801fabe5b62a1359cf7692918f30013e90c2362235765abc2078905d13b345dd689bf15e4e94ca51535d12f0675d5f13e9f254ba7696f0096d62deb023d106e9a96a5da3162bead6a745c8b9000868d2f9a447d5c5" PSA verify message: RSA PSS SHA-256, good signature, 129 bytes -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":"43286cc0fc599603fbb0cd1fd70c3a17b08d2adf4f90202dddfa4b9d74be8c720bbb1c714665466de6452d401ca061b68225785ff387c2615f03c81351cc3838cd3014a031a4f4c9f70bba06f504c6a9942ac2dbfed2329e590d526a9be26b4025a6d7c4151b4e795cfe756c9a8a5e8fa9228a6f5f6f427a5a070e5c0ea69830" PSA verify message: RSA PSS-any-salt SHA-256, good signature, 129 bytes -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":"43286cc0fc599603fbb0cd1fd70c3a17b08d2adf4f90202dddfa4b9d74be8c720bbb1c714665466de6452d401ca061b68225785ff387c2615f03c81351cc3838cd3014a031a4f4c9f70bba06f504c6a9942ac2dbfed2329e590d526a9be26b4025a6d7c4151b4e795cfe756c9a8a5e8fa9228a6f5f6f427a5a070e5c0ea69830" PSA verify message: ECDSA SECP256R1 SHA-256, good @@ -4594,27 +4594,27 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ALG_SHA_25 verify_message:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA(PSA_ALG_SHA_256):"616263":"0f8c19f5affea6d593a33e176aa52717bff8d5875165fc63e80a2d65580d295789db5ffb5397ba4c67834e2731ee268ea6f7e83846fbb02145b35442db18cf0b" PSA verify message: RSA PKCS#1 v1.5 SHA-256, wrong signature (same size) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":"111164d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311":PSA_ERROR_INVALID_SIGNATURE PSA verify message: RSA PKCS#1 v1.5 SHA-256, wrong signature (empty) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":"":PSA_ERROR_INVALID_SIGNATURE PSA verify message: RSA PKCS#1 v1.5 SHA-256, wrong signature (truncated) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc73":PSA_ERROR_INVALID_SIGNATURE PSA verify message: RSA PKCS#1 v1.5 SHA-256, wrong signature (trailing junk) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc731121":PSA_ERROR_INVALID_SIGNATURE PSA verify message: RSA PKCS#1 v1.5 SHA-256, wrong signature (leading junk) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":"21a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311":PSA_ERROR_INVALID_SIGNATURE PSA verify message: RSA PKCS#1 v1.5 without hash -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:"616263":"21a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311":PSA_ERROR_INVALID_ARGUMENT PSA verify message: ECDSA SECP256R1, wrong signature size (correct but ASN1-encoded) @@ -4642,7 +4642,7 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_ verify_message_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"04dea5e45d0ea37fc566232a508f4ad20ea13d47e4bf5fa4d54a57a0ba012042087097496efc583fed8b24a5b9be9a51de063f5a00a8b698a16fd7f29b5485f320":PSA_ALG_ECDSA(PSA_ALG_SHA_256):"616263":"ff0f8c19f5affea6d593a33e176aa52717bff8d5875165fc63e80a2d65580d295789db5ffb5397ba4c67834e2731ee268ea6f7e83846fbb02145b35442db18cf0b":PSA_ERROR_INVALID_SIGNATURE PSA verify message: invalid algorithm for ECC key -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 verify_message_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"":"":PSA_ERROR_INVALID_ARGUMENT PSA verify message: ECDSA without hash @@ -4654,19 +4654,19 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBED asymmetric_encrypt:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"":128:PSA_SUCCESS PSA encrypt: RSA OAEP-SHA-256, good -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C asymmetric_encrypt:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"":128:PSA_SUCCESS PSA encrypt: RSA OAEP-SHA-256, good, with label -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C asymmetric_encrypt:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"746869730069730061006c6162656c00":128:PSA_SUCCESS PSA encrypt: RSA OAEP-SHA-384, good -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA asymmetric_encrypt:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):"0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e":"":128:PSA_SUCCESS PSA encrypt: RSA OAEP-SHA-384, good, with label -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA asymmetric_encrypt:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):"0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e":"746869730069730061006c6162656c00":128:PSA_SUCCESS PSA encrypt: RSA PKCS#1 v1.5, key pair @@ -4674,7 +4674,7 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTL asymmetric_encrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"":128:PSA_SUCCESS PSA encrypt: RSA OAEP-SHA-256, key pair -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_encrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"":128:PSA_SUCCESS PSA encrypt: RSA PKCS#1 v1.5, input too large @@ -4686,7 +4686,7 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBED asymmetric_encrypt:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee":0:PSA_ERROR_INVALID_ARGUMENT PSA encrypt: RSA OAEP-SHA-384, input too large -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA asymmetric_encrypt:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):"0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f":"":0:PSA_ERROR_INVALID_ARGUMENT PSA encrypt: invalid algorithm @@ -4706,15 +4706,15 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTL asymmetric_encrypt_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:"99e8a6144bcb9a29660303bdc4305bb5eca8c64b96788cad062be9967bdab2f7ffff":"" PSA encrypt-decrypt: RSA OAEP-SHA-256 -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_encrypt_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"" PSA encrypt-decrypt: RSA OAEP-SHA-256, with label -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_encrypt_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"746869730069730061006c6162656c00" PSA encrypt-decrypt: RSA OAEP-SHA-384 -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA asymmetric_encrypt_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):"0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e":"" PSA decrypt: RSA PKCS#1 v1.5: good #1 @@ -4734,35 +4734,35 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTL asymmetric_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_CRYPT:"1b4c1d06439b99f886048b8544607b5e8e5ac6828ad9d0b7ad4ec0b314a4d8052f8bbeab6c85dbddff0b90cc76395a7a0c4f9cc29cd7be20be0b38ff611800d6":"":"" PSA decrypt: RSA OAEP-SHA-256, 0 bytes -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"3d3146b1c982004273a9ebb9b063e6ae53b1a85bfc802324bcdd04faa0f7211fb2bdeea40358095554df9c250866c7361e738f0d270eaa27738e87928c5e31815506346727900ff03cef0be6f9dd6bba63ce89074e8194fe68b5a5739422d4f138bbbb61f49b76cf1f18def2c993e3113b08c191ea1da0feb94f8fd9b30109a1":"":"" PSA decrypt: RSA OAEP-SHA-256, 0 bytes, with label -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"14e57648fbbd3c2c195d71fcb9b6c332e2ad9e3402aa701e7270b05775e9ddd025e2330d7b84e67866524c67f9c38b11e4679e28a38574b47f8d218a1a04a7466754d6ea7f959ab1f5b85d066d3f90076e8219f66653f7b78a9789d76213505b4e75ec28081608ed2f1ea1238e3eeab011ce4ec147327cd0ca029c2818133cb6":"746869730069730061006c6162656c00":"" PSA decrypt: RSA OAEP-SHA-256, 30 bytes -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"3fd3c81e3919a19014400d91098090f273312e0150e09eff7f66fb9624d2ec9764fc80befcb592e9d102493c882b8bc0334a257e73aba23a0ee13f826cbc64f8200b9150784d004ccb2955c877c95ab888e3917f423dd52f3c8a49cb61c1966ec04f336068729ae0bce7d7fb3e680f9d15d658db9b906efcbf2c2fae45e75429":"":"74686973206973206e6f2073717565616d697368206f7373696672616765" PSA decrypt: RSA OAEP-SHA-256, 30 bytes, with label -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"46edc9984a6d4b7c7fd88fda9ea91ddbd30b28a0793cc75a9fcdd94d867c69090a697d46a6f336a3e48a122dd3ee3b51566b445ff78adb613d09b7d8c59c25a27d8cf7f5e36455f2e71ff6c6ee98d5740e66b23794acc72906561951c2be5064f6a250646ab627ecbfa48c02f82c29fe9b8c8e6be8eb752432124974373b542c":"746869730069730061006c6162656c00":"74686973206973206e6f2073717565616d697368206f7373696672616765" PSA decrypt: RSA OAEP-SHA-384, 30 bytes -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA asymmetric_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):"0df6750b8fed749359c016887d2cf097cc512c065526a91a7ee9b345a1bfff833737e7326e54d03f6bb65971962885a7661a16858d53ea55821052f4c7798d395b5c5495332fd4174451a1a437f36c27f446b96f309ff1cb6837274aa8ae2b51a8a479d736d25b8d2ca8ab96fe589553a3e52818b7df75544eb5469977b29aa4":"":"74686973206973206e6f2073717565616d697368206f7373696672616765" PSA decrypt: RSA OAEP-SHA-256, 30 bytes, wrong label (should be empty) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"3fd3c81e3919a19014400d91098090f273312e0150e09eff7f66fb9624d2ec9764fc80befcb592e9d102493c882b8bc0334a257e73aba23a0ee13f826cbc64f8200b9150784d004ccb2955c877c95ab888e3917f423dd52f3c8a49cb61c1966ec04f336068729ae0bce7d7fb3e680f9d15d658db9b906efcbf2c2fae45e75429":"00":128:PSA_ERROR_INVALID_PADDING PSA decrypt: RSA OAEP-SHA-256, 30 bytes, wrong label (empty) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"46edc9984a6d4b7c7fd88fda9ea91ddbd30b28a0793cc75a9fcdd94d867c69090a697d46a6f336a3e48a122dd3ee3b51566b445ff78adb613d09b7d8c59c25a27d8cf7f5e36455f2e71ff6c6ee98d5740e66b23794acc72906561951c2be5064f6a250646ab627ecbfa48c02f82c29fe9b8c8e6be8eb752432124974373b542c":"":128:PSA_ERROR_INVALID_PADDING PSA decrypt: RSA OAEP-SHA-256, 30 bytes, wrong label (same length) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"46edc9984a6d4b7c7fd88fda9ea91ddbd30b28a0793cc75a9fcdd94d867c69090a697d46a6f336a3e48a122dd3ee3b51566b445ff78adb613d09b7d8c59c25a27d8cf7f5e36455f2e71ff6c6ee98d5740e66b23794acc72906561951c2be5064f6a250646ab627ecbfa48c02f82c29fe9b8c8e6be8eb752432124974373b542c":"746869730069730061006c6162656c01":128:PSA_ERROR_INVALID_PADDING PSA decrypt: RSA PKCS#1 v1.5, invalid padding @@ -4774,7 +4774,7 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTL asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:"99ffde2fcc00c9cc01972ebfa7779b298dbbaf7f50707a7405296dd2783456fc792002f462e760500e02afa25a859ace8701cb5d3b0262116431c43af8eb08f5a88301057cf1c156a2a5193c143e7a5b03fac132b7e89e6dcd8f4c82c9b28452329c260d30bc39b3816b7c46b41b37b4850d2ae74e729f99c6621fbbe2e46872":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee":128:PSA_ERROR_INVALID_ARGUMENT PSA decrypt: RSA OAEP-SHA-256, invalid padding -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"3fd3c81e3919a19014400d91098090f273312e0150e09eff7f66fb9624d2ec9764fc80befcb592e9d102493c882b8bc0334a257e73aba23a0ee13f826cbc64f8200b9150784d004ccb2955c877c95ab888e3917f423dd52f3c8a49cb61c1966ec04f336068729ae0bce7d7fb3e680f9d15d658db9b906efcbf2c2fae45e75428":"":128:PSA_ERROR_INVALID_PADDING PSA decrypt: invalid algorithm @@ -4786,7 +4786,7 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBED asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:"adeecba2db7f867a733853f0136c554e5e01c7a2015721a9bfe30c3ad163b93a9c7589170311209f91420ad8a1a8280c7e890a6d7bca3c500b4da4f53a17bd84a21d58f979a9b4b8f2246b482d930804f12b3aeb2ac8b5ac7938d452ca13be8eb8e973c4e2b19fd454058cbae037bcef7ef68a5fbabf050de5f283cf1998c695":"":128:PSA_ERROR_INVALID_ARGUMENT PSA decrypt: RSA OAEP, invalid key type (RSA public key) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"adeecba2db7f867a733853f0136c554e5e01c7a2015721a9bfe30c3ad163b93a9c7589170311209f91420ad8a1a8280c7e890a6d7bca3c500b4da4f53a17bd84a21d58f979a9b4b8f2246b482d930804f12b3aeb2ac8b5ac7938d452ca13be8eb8e973c4e2b19fd454058cbae037bcef7ef68a5fbabf050de5f283cf1998c695":"":128:PSA_ERROR_INVALID_ARGUMENT PSA decrypt: RSA PKCS#1 v1.5: invalid key type (AES) @@ -4802,11 +4802,11 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTL asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:"0099ffde2fcc00c9cc01972ebfa7779b298dbbaf7f50707a7405296dd2783456fc792002f462e760500e02afa25a859ace8701cb5d3b0262116431c43af8eb08f5a88301057cf1c156a2a5193c143e7a5b03fac132b7e89e6dcd8f4c82c9b28452329c260d30bc39b3816b7c46b41b37b4850d2ae74e729f99c6621fbbe2e46872":"":129:PSA_ERROR_INVALID_ARGUMENT PSA decrypt: RSA OAEP-SHA-256, input too small -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"ffde2fcc00c9cc01972ebfa7779b298dbbaf7f50707a7405296dd2783456fc792002f462e760500e02afa25a859ace8701cb5d3b0262116431c43af8eb08f5a88301057cf1c156a2a5193c143e7a5b03fac132b7e89e6dcd8f4c82c9b28452329c260d30bc39b3816b7c46b41b37b4850d2ae74e729f99c6621fbbe2e46872":"":127:PSA_ERROR_INVALID_ARGUMENT PSA decrypt: RSA OAEP-SHA-256, input too large -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"0099ffde2fcc00c9cc01972ebfa7779b298dbbaf7f50707a7405296dd2783456fc792002f462e760500e02afa25a859ace8701cb5d3b0262116431c43af8eb08f5a88301057cf1c156a2a5193c143e7a5b03fac132b7e89e6dcd8f4c82c9b28452329c260d30bc39b3816b7c46b41b37b4850d2ae74e729f99c6621fbbe2e46872":"":129:PSA_ERROR_INVALID_ARGUMENT Crypto derivation operation object initializers zero properly @@ -4833,11 +4833,11 @@ depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256 derive_setup:PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT PSA key derivation setup: algorithm from bad hash -depends_on:MBEDTLS_SHA256_C +depends_on:PSA_WANT_ALG_SHA_256 derive_setup:PSA_ALG_HKDF(PSA_ALG_CATEGORY_HASH):PSA_ERROR_NOT_SUPPORTED PSA key derivation setup: bad algorithm -depends_on:MBEDTLS_SHA256_C +depends_on:PSA_WANT_ALG_SHA_256 derive_setup:PSA_ALG_CATEGORY_KEY_DERIVATION:PSA_ERROR_NOT_SUPPORTED PSA key derivation: HKDF-SHA-256, good case, direct output @@ -6380,15 +6380,15 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_SUCCESS:0 PSA generate key: RSA, 1016 bits, good, sign (PKCS#1 v1.5) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:1016:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_SUCCESS:0 PSA generate key: RSA, 1024 bits, good, sign (PSS SHA-256) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_SUCCESS:0 PSA generate key: RSA, 1024 bits, good, sign (PSS-any-salt SHA-256) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_SUCCESS:0 PSA generate key: RSA, 512 bits, good, encrypt (PKCS#1 v1.5) @@ -6396,7 +6396,7 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTL generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_SUCCESS:0 PSA generate key: RSA, 1024 bits, good, encrypt (OAEP SHA-256) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_SUCCESS:0 PSA generate key: RSA, 0 bits: invalid @@ -6481,7 +6481,7 @@ depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES:MBEDTLS_PSA_CRYPTO_ persistent_key_load_key_from_storage:"":PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_CBC_NO_PADDING:GENERATE_KEY PSA generate persistent key: RSA, 1024 bits, exportable -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME:MBEDTLS_MD_C:MBEDTLS_PSA_CRYPTO_STORAGE_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME:MBEDTLS_PSA_CRYPTO_STORAGE_C persistent_key_load_key_from_storage:"":PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):GENERATE_KEY PSA generate persistent key: ECC, SECP256R1, exportable diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index fa237d3667..6c95c2a7ca 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -21,6 +21,7 @@ #else #define TEST_DRIVER_LOCATION 0x7fffff #endif +#include "mbedtls/legacy_or_psa.h" /* If this comes up, it's a bug in the test code or in the test data. */ #define UNUSED 0xdeadbeef @@ -7797,7 +7798,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS */ void derive_ecjpake_to_pms( data_t *input, int expected_input_status_arg, int derivation_step, int capacity, int expected_capacity_status_arg, From 252283f2aaf139df7912a6dcb242b346268c4787 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 27 Sep 2022 07:54:16 -0400 Subject: [PATCH 0718/1028] Fix missing cipher mode dependencies Signed-off-by: Andrzej Kurek --- library/aes.c | 3 ++- tests/suites/test_suite_aes.function | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/library/aes.c b/library/aes.c index 289890dbe1..7d035246f7 100644 --- a/library/aes.c +++ b/library/aes.c @@ -1690,7 +1690,8 @@ int mbedtls_aes_self_test( int verbose ) unsigned char key[32]; unsigned char buf[64]; const unsigned char *aes_tests; -#if defined(MBEDTLS_CIPHER_MODE_CBC) || defined(MBEDTLS_CIPHER_MODE_CFB) +#if defined(MBEDTLS_CIPHER_MODE_CBC) || defined(MBEDTLS_CIPHER_MODE_CFB) || \ + defined(MBEDTLS_CIPHER_MODE_OFB) unsigned char iv[16]; #endif #if defined(MBEDTLS_CIPHER_MODE_CBC) diff --git a/tests/suites/test_suite_aes.function b/tests/suites/test_suite_aes.function index 10e53c2a4c..6a87d4294f 100644 --- a/tests/suites/test_suite_aes.function +++ b/tests/suites/test_suite_aes.function @@ -403,10 +403,14 @@ void aes_misc_params( ) defined(MBEDTLS_CIPHER_MODE_XTS) || \ defined(MBEDTLS_CIPHER_MODE_CFB) || \ defined(MBEDTLS_CIPHER_MODE_OFB) - mbedtls_aes_context aes_ctx; const unsigned char in[16] = { 0 }; unsigned char out[16]; #endif +#if defined(MBEDTLS_CIPHER_MODE_CBC) || \ + defined(MBEDTLS_CIPHER_MODE_CFB) || \ + defined(MBEDTLS_CIPHER_MODE_OFB) +mbedtls_aes_context aes_ctx; +#endif #if defined(MBEDTLS_CIPHER_MODE_XTS) mbedtls_aes_xts_context xts_ctx; #endif From e40b92178d140f55e6e1a7292d337a107492d255 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 27 Sep 2022 09:21:39 -0400 Subject: [PATCH 0719/1028] Fix missing padding dependencies Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_cipher.aria.data | 2 +- tests/suites/test_suite_cipher.camellia.data | 90 +++++++------- tests/suites/test_suite_cipher.des.data | 120 +++++++++---------- tests/suites/test_suite_pkcs5.data | 4 +- 4 files changed, 108 insertions(+), 108 deletions(-) diff --git a/tests/suites/test_suite_cipher.aria.data b/tests/suites/test_suite_cipher.aria.data index c1e19909bc..3f011e889b 100644 --- a/tests/suites/test_suite_cipher.aria.data +++ b/tests/suites/test_suite_cipher.aria.data @@ -1,5 +1,5 @@ Aria CBC Decrypt empty buffer -depends_on:MBEDTLS_ARIA_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_ARIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 dec_empty_buf:MBEDTLS_CIPHER_ARIA_128_CBC:0:0 ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 0 bytes diff --git a/tests/suites/test_suite_cipher.camellia.data b/tests/suites/test_suite_cipher.camellia.data index 31fe92286f..df4ebcc1b6 100644 --- a/tests/suites/test_suite_cipher.camellia.data +++ b/tests/suites/test_suite_cipher.camellia.data @@ -67,183 +67,183 @@ depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKC enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:49:-1 CAMELLIA Encrypt and decrypt 0 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:0:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 1 byte with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:1:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 2 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:2:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 7 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:7:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 8 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:8:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 9 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:9:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 15 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:15:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 16 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:16:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 17 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:17:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 31 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:31:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 32 bytes with one and zeros padding [#1] -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:32:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 32 bytes with one and zeros padding [#2] -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:33:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 47 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:47:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 48 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:48:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 49 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:49:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 0 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:0:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 1 byte with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:1:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 2 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:2:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 7 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:7:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 8 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:8:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 9 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:9:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 15 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:15:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 16 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:16:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 17 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:17:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 31 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:31:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 32 bytes with zeros and len padding [#1] -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:32:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 32 bytes with zeros and len padding [#2] -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:33:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 47 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:47:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 48 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:48:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 49 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:49:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 0 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:0:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 1 byte with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:1:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 2 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:2:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 7 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:7:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 8 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:8:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 9 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:9:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 15 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:15:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 16 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:16:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 17 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:17:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 31 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:31:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 32 bytes with zeros padding [#1] -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:32:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 32 bytes with zeros padding [#2] -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:33:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 47 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:47:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 48 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:48:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 49 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:49:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 0 bytes with no padding diff --git a/tests/suites/test_suite_cipher.des.data b/tests/suites/test_suite_cipher.des.data index 9410262e68..77f7515b94 100644 --- a/tests/suites/test_suite_cipher.des.data +++ b/tests/suites/test_suite_cipher.des.data @@ -71,243 +71,243 @@ depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:49:-1 DES Encrypt and decrypt 0 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:0:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 1 byte with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:1:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 2 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:2:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 7 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:7:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 8 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:8:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 9 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:9:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 15 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:15:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 16 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:16:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 17 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:17:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 31 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:31:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 32 bytes with one and zeros padding [#1] -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:32:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 32 bytes with one and zeros padding [#2] -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:33:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 47 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:47:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 48 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:48:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 49 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:49:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 0 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:0:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 1 byte with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:1:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 2 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:2:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 7 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:7:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 8 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:8:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 9 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:9:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 15 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:15:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 16 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:16:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 17 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:17:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 31 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:31:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 32 bytes with zeros and len padding [#1] -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:32:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 32 bytes with zeros and len padding [#2] -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:33:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 47 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:47:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 48 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:48:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 49 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:49:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 0 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:0:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 1 byte with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:1:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 2 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:2:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 7 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:7:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 8 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:8:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 9 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:9:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 15 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:15:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 16 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:16:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 17 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:17:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 31 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:31:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 32 bytes with zeros padding [#1] -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:32:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 32 bytes with zeros padding [#2] -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:33:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 47 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:47:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 48 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:48:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 49 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:49:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 0 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:0:MBEDTLS_PADDING_NONE DES Encrypt and decrypt 8 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:8:MBEDTLS_PADDING_NONE DES Encrypt and decrypt 16 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:16:MBEDTLS_PADDING_NONE DES Encrypt and decrypt 32 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:32:MBEDTLS_PADDING_NONE DES Encrypt and decrypt 48 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:48:MBEDTLS_PADDING_NONE DES Try encrypting 1 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:1:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 2 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:2:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 7 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:7:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 9 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:9:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 15 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:15:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 17 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:17:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 31 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:31:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 33 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:33:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 47 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:47:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 49 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:49:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Encrypt and decrypt 0 bytes in multiple parts diff --git a/tests/suites/test_suite_pkcs5.data b/tests/suites/test_suite_pkcs5.data index 3f78b886c1..5c6df7ce5d 100644 --- a/tests/suites/test_suite_pkcs5.data +++ b/tests/suites/test_suite_pkcs5.data @@ -203,11 +203,11 @@ depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE mbedtls_pkcs5_pbes2:MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE:"301B06092A864886F70D01050C300E04082ED7F24A1D516DD702020800301306082A864886F70D030704078A4FCC9DCC3949":"":"":MBEDTLS_ERR_PKCS5_INVALID_FORMAT:"" PBES2 Decrypt (bad password) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 mbedtls_pkcs5_pbes2:MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE:"301B06092A864886F70D01050C300E04082ED7F24A1D516DD702020800301406082A864886F70D030704088A4FCC9DCC394910":"F0617373776f7264":"1B60098D4834CA752D37B430E70B7A085CFF86E21F4849F969DD1DF623342662443F8BD1252BF83CEF6917551B08EF55A69C8F2BFFC93BCB2DFE2E354DA28F896D1BD1BFB972A1251219A6EC7183B0A4CF2C4998449ED786CAE2138437289EB2203974000C38619DA57A4E685D29649284602BD1806131772DA11A682674DC22B2CF109128DDB7FD980E1C5741FC0DB7":MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH:"308187020100301306072A8648CE3D020106082A8648CE3D030107046D306B0201010420F12A1320760270A83CBFFD53F6031EF76A5D86C8A204F2C30CA9EBF51F0F0EA7A1440342000437CC56D976091E5A723EC7592DFF206EEE7CF9069174D0AD14B5F768225962924EE500D82311FFEA2FD2345D5D16BD8A88C26B770D55CD8A2A0EFA01C8B4EDFF060606060606" PBES2 Decrypt (bad iter value) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 mbedtls_pkcs5_pbes2:MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE:"301B06092A864886F70D01050C300E04082ED7F24A1D516DD702020801301406082A864886F70D030704088A4FCC9DCC394910":"70617373776f7264":"1B60098D4834CA752D37B430E70B7A085CFF86E21F4849F969DD1DF623342662443F8BD1252BF83CEF6917551B08EF55A69C8F2BFFC93BCB2DFE2E354DA28F896D1BD1BFB972A1251219A6EC7183B0A4CF2C4998449ED786CAE2138437289EB2203974000C38619DA57A4E685D29649284602BD1806131772DA11A682674DC22B2CF109128DDB7FD980E1C5741FC0DB7":MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH:"308187020100301306072A8648CE3D020106082A8648CE3D030107046D306B0201010420F12A1320760270A83CBFFD53F6031EF76A5D86C8A204F2C30CA9EBF51F0F0EA7A1440342000437CC56D976091E5A723EC7592DFF206EEE7CF9069174D0AD14B5F768225962924EE500D82311FFEA2FD2345D5D16BD8A88C26B770D55CD8A2A0EFA01C8B4EDFF060606060606" PKCS#5 Selftest From b39e3ecee6ea06f3bf3b9751c93add1788541cbe Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 08:50:20 +0100 Subject: [PATCH 0720/1028] New script to exercise compilation options Unify curves.pl, key-exchanges.pl, depends-pkalgs.pl and depends-hashes.pl into a single, newly-written script. For curves, key exchanges and hashes, in addition to testing all-but-one settings in the group like the old scripts, also run the tests with a single option in the group. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 346 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 346 insertions(+) create mode 100755 tests/scripts/depends.py diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py new file mode 100755 index 0000000000..521bbc5641 --- /dev/null +++ b/tests/scripts/depends.py @@ -0,0 +1,346 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2018, Arm Limited, All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# This file is part of Mbed TLS (https://tls.mbed.org) + +"""Test Mbed TLS with a subset of algorithms. +""" + +import argparse +import os +import re +import shutil +import subprocess +import sys +import traceback + +def log_line(text, prefix='depends.py'): + """Print a status message.""" + sys.stderr.write(prefix + ' ' + text + '\n') + +def backup_config(options): + """Back up the library configuration file (config.h).""" + shutil.copy(options.config, options.config_backup) + +def restore_config(options, done=False): + """Restore the library configuration file (config.h). +If done is true, remove the backup file.""" + if done: + shutil.move(options.config_backup, options.config) + else: + shutil.copy(options.config_backup, options.config) + +class Job: + """A job builds the library in a specific configuration and runs some tests.""" + def __init__(self, name, config_settings, commands): + """Build a job object. +The job uses the configuration described by config_settings. This is a +dictionary where the keys are preprocessor symbols and the values are +booleans or strings. A boolean indicates whether or not to #define the +symbol. With a string, the symbol is #define'd to that value. +After setting the configuration, the job runs the programs specified by +commands. This is a list of lists of strings; each list of string is a +command name and its arguments and is passed to subprocess.call with +shell=False.""" + self.name = name + self.config_settings = config_settings + self.commands = commands + + def announce(self, what): + '''Announce the start or completion of a job. +If what is None, announce the start of the job. +If what is True, announce that the job has passed. +If what is False, announce that the job has failed.''' + if what is True: + log_line(self.name + ' PASSED') + elif what is False: + log_line(self.name + ' FAILED') + else: + log_line('starting ' + self.name) + + def trace_command(self, cmd): + '''Print a trace of the specified command. +cmd is a list of strings: a command name and its arguments.''' + log_line(' '.join(cmd), prefix='+') + + def configure(self, config_file_name): + '''Set library configuration options as required for the job. +config_file_name indicates which file to modify.''' + for key, value in sorted(self.config_settings.items()): + if value is True: + args = ['set', key] + elif value is False: + args = ['unset', key] + else: + args = ['set', key, value] + cmd = ['scripts/config.pl'] + if config_file_name != 'include/mbedtls/config.h': + cmd += ['--file', config_file_name] + cmd += args + self.trace_command(cmd) + subprocess.check_call(cmd) + + def test(self, options): + '''Run the job's build and test commands. +Return True if all the commands succeed and False otherwise. +If options.keep_going is false, stop as soon as one command fails. Otherwise +run all the commands, except that if the first command fails, none of the +other commands are run (typically, the first command is a build command +and subsequent commands are tests that cannot run if the build failed).''' + built = False + success = True + for command in self.commands: + self.trace_command(command) + ret = subprocess.call(command) + if ret != 0: + if command[0] not in ['make', options.make_command]: + log_line('*** [{}] Error {}'.format(' '.join(command), ret)) + if not options.keep_going or not built: + return False + success = False + built = True + return success + +# SSL/TLS versions up to 1.1 and corresponding options. These require +# both MD5 and SHA-1. +ssl_pre_1_2_dependencies = ['MBEDTLS_SSL_CBC_RECORD_SPLITTING', + 'MBEDTLS_SSL_PROTO_SSL3', + 'MBEDTLS_SSL_PROTO_TLS1', + 'MBEDTLS_SSL_PROTO_TLS1_1'] + +# If the configuration option A requires B, make sure that +# B in reverse_dependencies[A]. +reverse_dependencies = { + 'MBEDTLS_ECDSA_C': ['MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED'], + 'MBEDTLS_ECP_C': ['MBEDTLS_ECDSA_C', + 'MBEDTLS_ECDH_C', + 'MBEDTLS_ECJPAKE_C', + 'MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED'], + 'MBEDTLS_MD5_C': ssl_pre_1_2_dependencies, + 'MBEDTLS_PKCS1_V21': ['MBEDTLS_X509_RSASSA_PSS_SUPPORT'], + 'MBEDTLS_PKCS1_V15': ['MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED'], + 'MBEDTLS_RSA_C': ['MBEDTLS_X509_RSASSA_PSS_SUPPORT', + 'MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED'], + 'MBEDTLS_SHA1_C': ssl_pre_1_2_dependencies, + 'MBEDTLS_X509_RSASSA_PSS_SUPPORT': [], +} + +def turn_off_dependencies(config_settings): + """For every option turned off config_settings, also turn off what depends on it. +An option O is turned off if config_settings[O] is False.""" + for key, value in sorted(config_settings.items()): + if value is not False: + continue + for dep in reverse_dependencies.get(key, []): + config_settings[dep] = False + +class Domain: + """A domain is a set of jobs that all relate to a particular configuration aspect.""" + pass + +class ExclusiveDomain(Domain): + """A domain consisting of a set of conceptually-equivalent settings. +Establish a list of configuration symbols. For each symbol, run a test job +with this symbol set and the others unset, and a test job with this symbol +unset and the others set.""" + def __init__(self, symbols, commands): + self.jobs = [] + for invert in [False, True]: + base_config_settings = {} + for symbol in symbols: + base_config_settings[symbol] = invert + for symbol in symbols: + description = '!' + symbol if invert else symbol + config_settings = base_config_settings.copy() + config_settings[symbol] = not invert + turn_off_dependencies(config_settings) + job = Job(description, config_settings, commands) + self.jobs.append(job) + +class ComplementaryDomain: + """A domain consisting of a set of loosely-related settings. +Establish a list of configuration symbols. For each symbol, run a test job +with this symbol unset.""" + def __init__(self, symbols, commands): + self.jobs = [] + for symbol in symbols: + description = '!' + symbol + config_settings = {symbol: False} + turn_off_dependencies(config_settings) + job = Job(description, config_settings, commands) + self.jobs.append(job) + +class DomainData: + """Collect data about the library.""" + def collect_config_symbols(self, options): + """Read the list of settings from config.h. +Return them in a generator.""" + with open(options.config) as config_file: + rx = re.compile(r'\s*(?://\s*)?#define\s+(\w+)\s*(?:$|/[/*])') + for line in config_file: + m = re.match(rx, line) + if m: + yield m.group(1) + + def config_symbols_matching(self, regexp): + """List the config.h settings matching regexp.""" + return [symbol for symbol in self.all_config_symbols + if re.match(regexp, symbol)] + + def __init__(self, options): + """Gather data about the library and establish a list of domains to test.""" + build_command = [options.make_command, 'CFLAGS=-Werror'] + build_and_test = [build_command, [options.make_command, 'test']] + self.all_config_symbols = set(self.collect_config_symbols(options)) + # Find hash modules by name. + hash_symbols = self.config_symbols_matching(r'MBEDTLS_(MD|RIPEMD|SHA)[0-9]+_C\Z') + # Find elliptic curve enabling macros by name. + curve_symbols = self.config_symbols_matching(r'MBEDTLS_ECP_DP_\w+_ENABLED\Z') + # Find key exchange enabling macros by name. + key_exchange_symbols = self.config_symbols_matching(r'MBEDTLS_KEY_EXCHANGE_\w+_ENABLED\Z') + self.domains = { + # Elliptic curves. Run the test suites. + 'curves': ExclusiveDomain(curve_symbols, build_and_test), + # Hash algorithms. Exclude configurations with only one + # hash which is obsolete. Run the test suites. + 'hashes': ExclusiveDomain(hash_symbols, build_and_test), + # Key exchange types. Just check the build. + 'kex': ExclusiveDomain(key_exchange_symbols, [build_command]), + # Public-key algorithms. Run the test suites. + 'pkalgs': ComplementaryDomain(['MBEDTLS_ECDSA_C', + 'MBEDTLS_ECP_C', + 'MBEDTLS_PKCS1_V21', + 'MBEDTLS_PKCS1_V15', + 'MBEDTLS_RSA_C', + 'MBEDTLS_X509_RSASSA_PSS_SUPPORT'], + build_and_test), + } + self.jobs = {} + for domain in self.domains.values(): + for job in domain.jobs: + self.jobs[job.name] = job + + def get_jobs(self, name): + """Return the list of jobs identified by the given name. +A name can either be the name of a domain or the name of one specific job.""" + if name in self.domains: + return sorted(self.domains[name].jobs, key=lambda job: job.name) + else: + return [self.jobs[name]] + +def run(options, job): + """Run the specified job (a Job instance).""" + subprocess.check_call([options.make_command, 'clean']) + job.announce(None) + job.configure(options.config) + success = job.test(options) + job.announce(success) + return success + +def main(options, domain_data): + """Run the desired jobs. +domain_data should be a DomainData instance that describes the available +domains and jobs. +Run the jobs listed in options.domains.""" + if not hasattr(options, 'config_backup'): + options.config_backup = options.config + '.bak' + jobs = [] + failures = [] + successes = [] + for name in options.domains: + jobs += domain_data.get_jobs(name) + backup_config(options) + try: + for job in jobs: + success = run(options, job) + if not success: + if options.keep_going: + failures.append(job.name) + else: + return False + else: + successes.append(job.name) + restore_config(options) + finally: + if options.keep_going: + restore_config(options, True) + if failures: + if successes: + log_line('{} passed; {} FAILED'.format(' '.join(successes), + ' '.join(failures))) + else: + log_line('{} FAILED'.format(' '.join(failures))) + return False + else: + log_line('{} passed'.format(' '.join(successes))) + return True + + +if __name__ == '__main__': + try: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('-c', '--config', metavar='FILE', + help='Configuration file to modify', + default='include/mbedtls/config.h') + parser.add_argument('-C', '--directory', metavar='DIR', + help='Change to this directory before anything else', + default='.') + parser.add_argument('-k', '--keep-going', + help='Try all configurations even if some fail (default)', + action='store_true', dest='keep_going', default=True) + parser.add_argument('-e', '--no-keep-going', + help='Stop as soon as a configuration fails', + action='store_false', dest='keep_going') + parser.add_argument('--list-jobs', + help='List supported jobs and exit', + action='append_const', dest='list', const='jobs') + parser.add_argument('--list-domains', + help='List supported domains and exit', + action='append_const', dest='list', const='domains') + parser.add_argument('--make-command', metavar='CMD', + help='Command to run instead of make (e.g. gmake)', + action='store', default='make') + parser.add_argument('domains', metavar='DOMAIN', nargs='*', + help='The domain(s) to test (default: all)', + default=True) + options = parser.parse_args() + os.chdir(options.directory) + domain_data = DomainData(options) + if options.domains == True: + options.domains = sorted(domain_data.domains.keys()) + if options.list: + for what in options.list: + for key in sorted(getattr(domain_data, what).keys()): + print(key) + exit(0) + else: + sys.exit(0 if main(options, domain_data) else 1) + except SystemExit: + raise + except: + traceback.print_exc() + exit(3) From 46c8256547086b8516688a46a98c106f99975b11 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 18:42:55 +0100 Subject: [PATCH 0721/1028] Flush log output after each line Otherwise the output can be out of order when redirected. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 521bbc5641..f18b94be42 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -31,6 +31,7 @@ import traceback def log_line(text, prefix='depends.py'): """Print a status message.""" sys.stderr.write(prefix + ' ' + text + '\n') + sys.stderr.flush() def backup_config(options): """Back up the library configuration file (config.h).""" From 54aa5c695793c8b9f9cf76bed9c7dcdcf7d37edd Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 18:46:34 +0100 Subject: [PATCH 0722/1028] Factor running config.pl into its own function Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index f18b94be42..6c55676c7f 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -33,6 +33,11 @@ def log_line(text, prefix='depends.py'): sys.stderr.write(prefix + ' ' + text + '\n') sys.stderr.flush() +def log_command(cmd): + """Print a trace of the specified command. +cmd is a list of strings: a command name and its arguments.""" + log_line(' '.join(cmd), prefix='+') + def backup_config(options): """Back up the library configuration file (config.h).""" shutil.copy(options.config, options.config_backup) @@ -44,6 +49,14 @@ If done is true, remove the backup file.""" shutil.move(options.config_backup, options.config) else: shutil.copy(options.config_backup, options.config) +def run_config_pl(options, args): + """Run scripts/config.pl with the specified arguments.""" + cmd = ['scripts/config.pl'] + if options.config != 'include/mbedtls/config.h': + cmd += ['--file', options.config] + cmd += args + log_command(cmd) + subprocess.check_call(cmd) class Job: """A job builds the library in a specific configuration and runs some tests.""" @@ -73,12 +86,8 @@ If what is False, announce that the job has failed.''' else: log_line('starting ' + self.name) - def trace_command(self, cmd): - '''Print a trace of the specified command. -cmd is a list of strings: a command name and its arguments.''' - log_line(' '.join(cmd), prefix='+') - def configure(self, config_file_name): + def configure(self, options): '''Set library configuration options as required for the job. config_file_name indicates which file to modify.''' for key, value in sorted(self.config_settings.items()): @@ -88,12 +97,7 @@ config_file_name indicates which file to modify.''' args = ['unset', key] else: args = ['set', key, value] - cmd = ['scripts/config.pl'] - if config_file_name != 'include/mbedtls/config.h': - cmd += ['--file', config_file_name] - cmd += args - self.trace_command(cmd) - subprocess.check_call(cmd) + run_config_pl(options, args) def test(self, options): '''Run the job's build and test commands. @@ -105,7 +109,7 @@ and subsequent commands are tests that cannot run if the build failed).''' built = False success = True for command in self.commands: - self.trace_command(command) + log_command(command) ret = subprocess.call(command) if ret != 0: if command[0] not in ['make', options.make_command]: @@ -257,7 +261,7 @@ def run(options, job): """Run the specified job (a Job instance).""" subprocess.check_call([options.make_command, 'clean']) job.announce(None) - job.configure(options.config) + job.configure(options) success = job.test(options) job.announce(success) return success From 0fa7cbeeb9e2ebbffcea64adec8aea0acab7c0cb Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 18:48:48 +0100 Subject: [PATCH 0723/1028] Add basic support for colored output Show "pass" lines in green and "fail" lines in red. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 51 +++++++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 9 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 6c55676c7f..433f352757 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -28,9 +28,38 @@ import subprocess import sys import traceback -def log_line(text, prefix='depends.py'): +class Colors: + """Minimalistic support for colored output. +Each field of an object of this class is either None if colored output +is not possible or not desired, or a pair of strings (start, stop) such +that outputting start switches the text color to the desired color and +stop switches the text color back to the default.""" + red = None + green = None + bold_red = None + bold_green = None + def __init__(self, options=None): + if not options or options.color in ['no', 'never']: + want_color = False + elif options.color in ['yes', 'always']: + want_color = True + else: + want_color = sys.stderr.isatty() + if want_color: + # Assume ANSI compatible terminal + normal = '\033[0m' + self.red = ('\033[31m', normal) + self.green = ('\033[32m', normal) + self.bold_red = ('\033[1;31m', normal) + self.bold_green = ('\033[1;32m', normal) +NO_COLORS = Colors(None) + +def log_line(text, prefix='depends.py:', suffix='', color=None): """Print a status message.""" - sys.stderr.write(prefix + ' ' + text + '\n') + if color != None: + prefix = color[0] + prefix + suffix = suffix + color[1] + sys.stderr.write(prefix + ' ' + text + suffix + '\n') sys.stderr.flush() def log_command(cmd): @@ -74,15 +103,15 @@ shell=False.""" self.config_settings = config_settings self.commands = commands - def announce(self, what): + def announce(self, colors, what): '''Announce the start or completion of a job. If what is None, announce the start of the job. If what is True, announce that the job has passed. If what is False, announce that the job has failed.''' if what is True: - log_line(self.name + ' PASSED') + log_line(self.name + ' PASSED', color=colors.green) elif what is False: - log_line(self.name + ' FAILED') + log_line(self.name + ' FAILED', color=colors.red) else: log_line('starting ' + self.name) @@ -257,13 +286,13 @@ A name can either be the name of a domain or the name of one specific job.""" else: return [self.jobs[name]] -def run(options, job): +def run(options, job, colors=NO_COLORS): """Run the specified job (a Job instance).""" subprocess.check_call([options.make_command, 'clean']) - job.announce(None) + job.announce(colors, None) job.configure(options) success = job.test(options) - job.announce(success) + job.announce(colors, success) return success def main(options, domain_data): @@ -273,6 +302,7 @@ domains and jobs. Run the jobs listed in options.domains.""" if not hasattr(options, 'config_backup'): options.config_backup = options.config + '.bak' + colors = Colors(options) jobs = [] failures = [] successes = [] @@ -281,7 +311,7 @@ Run the jobs listed in options.domains.""" backup_config(options) try: for job in jobs: - success = run(options, job) + success = run(options, job, colors=colors) if not success: if options.keep_going: failures.append(job.name) @@ -308,6 +338,9 @@ Run the jobs listed in options.domains.""" if __name__ == '__main__': try: parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--color', metavar='WHEN', + help='Colorize the output (always/auto/never)', + choices=['always', 'auto', 'never'], default='auto') parser.add_argument('-c', '--config', metavar='FILE', help='Configuration file to modify', default='include/mbedtls/config.h') From e85163bb5c466d25b1a7cb915ff1731afd2dadfc Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 18:50:03 +0100 Subject: [PATCH 0724/1028] Simplify final passed/failed reporting Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 433f352757..5c4cb502b2 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -323,15 +323,12 @@ Run the jobs listed in options.domains.""" finally: if options.keep_going: restore_config(options, True) + if successes: + log_line('{} passed'.format(' '.join(successes)), color=colors.bold_green) if failures: - if successes: - log_line('{} passed; {} FAILED'.format(' '.join(successes), - ' '.join(failures))) - else: - log_line('{} FAILED'.format(' '.join(failures))) + log_line('{} FAILED'.format(' '.join(failures)), color=colors.bold_red) return False else: - log_line('{} passed'.format(' '.join(successes))) return True From bf7537d0a9faea3cd087bb2f2f1a16de3b06a84c Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 18:52:16 +0100 Subject: [PATCH 0725/1028] Use the full config as the baseline for all jobs Start each job from the full config minus some memory management settings and the job-specific settings. The original content of config.h no longer influences the configurations used for the jobs (but it still influences what jobs may run, in that the set of jobs is partly built by parsing #define and //#define lines in config.h). Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 5c4cb502b2..daae6b057a 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -68,16 +68,23 @@ cmd is a list of strings: a command name and its arguments.""" log_line(' '.join(cmd), prefix='+') def backup_config(options): - """Back up the library configuration file (config.h).""" - shutil.copy(options.config, options.config_backup) + """Back up the library configuration file (config.h). +If the backup file already exists, it is presumed to be the desired backup, +so don't make another backup.""" + if os.path.exists(options.config_backup): + options.own_backup = False + else: + options.own_backup = True + shutil.copy(options.config, options.config_backup) -def restore_config(options, done=False): +def restore_config(options): """Restore the library configuration file (config.h). -If done is true, remove the backup file.""" - if done: +Remove the backup file if it was saved earlier.""" + if options.own_backup: shutil.move(options.config_backup, options.config) else: shutil.copy(options.config_backup, options.config) + def run_config_pl(options, args): """Run scripts/config.pl with the specified arguments.""" cmd = ['scripts/config.pl'] @@ -115,10 +122,21 @@ If what is False, announce that the job has failed.''' else: log_line('starting ' + self.name) + def set_reference_config(self, options): + """Change the library configuration file (config.h) to the reference state. + The reference state is the one from which the tested configurations are + derived.""" + # Turn off memory management options that are not relevant to + # the tests and slow them down. + run_config_pl(options, ['full']) + run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BACKTRACE']) + run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BUFFER_ALLOC_C']) + run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_DEBUG']) def configure(self, options): '''Set library configuration options as required for the job. config_file_name indicates which file to modify.''' + self.set_reference_config(options) for key, value in sorted(self.config_settings.items()): if value is True: args = ['set', key] @@ -319,10 +337,14 @@ Run the jobs listed in options.domains.""" return False else: successes.append(job.name) - restore_config(options) - finally: + restore_config(options) + except: + # Restore the configuration, except in stop-on-error mode if there + # was an error, where we leave the failing configuration up for + # developer convenience. if options.keep_going: - restore_config(options, True) + restore_config(options) + raise if successes: log_line('{} passed'.format(' '.join(successes)), color=colors.bold_green) if failures: From b1284cf6bc6b33f1ae6650b8fb0c5f74addc392b Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 18:56:03 +0100 Subject: [PATCH 0726/1028] Don't test builds with only deprecated hashes Don't try to build with only SHA-1 or with only RIPEMD160 or with only MD{2,4,5}. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index daae6b057a..f0f09f198e 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -219,7 +219,14 @@ class ExclusiveDomain(Domain): Establish a list of configuration symbols. For each symbol, run a test job with this symbol set and the others unset, and a test job with this symbol unset and the others set.""" - def __init__(self, symbols, commands): + def __init__(self, symbols, commands, exclude=None): + """Build a domain for the specified list of configuration symbols. +The domain contains two sets of jobs: jobs that enable one of the elements +of symbols and disable the others, and jobs that disable one of the elements +of symbols and enable the others. +Each job runs the specified commands. +If exclude is a regular expression, skip generated jobs whose description +would match this regular expression.""" self.jobs = [] for invert in [False, True]: base_config_settings = {} @@ -227,6 +234,8 @@ unset and the others set.""" base_config_settings[symbol] = invert for symbol in symbols: description = '!' + symbol if invert else symbol + if exclude and re.match(exclude, description): + continue config_settings = base_config_settings.copy() config_settings[symbol] = not invert turn_off_dependencies(config_settings) @@ -238,6 +247,9 @@ class ComplementaryDomain: Establish a list of configuration symbols. For each symbol, run a test job with this symbol unset.""" def __init__(self, symbols, commands): + """Build a domain for the specified list of configuration symbols. +Each job in the domain disables one of the specified symbols. +Each job runs the specified commands.""" self.jobs = [] for symbol in symbols: description = '!' + symbol @@ -279,7 +291,8 @@ Return them in a generator.""" 'curves': ExclusiveDomain(curve_symbols, build_and_test), # Hash algorithms. Exclude configurations with only one # hash which is obsolete. Run the test suites. - 'hashes': ExclusiveDomain(hash_symbols, build_and_test), + 'hashes': ExclusiveDomain(hash_symbols, build_and_test, + exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_)'), # Key exchange types. Just check the build. 'kex': ExclusiveDomain(key_exchange_symbols, [build_command]), # Public-key algorithms. Run the test suites. From 584c24ace481a7b71a7051e930b1f3d57d47235e Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 19:30:40 +0100 Subject: [PATCH 0727/1028] Declare more reverse dependencies Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index f0f09f198e..27c2ae48b3 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -176,16 +176,22 @@ ssl_pre_1_2_dependencies = ['MBEDTLS_SSL_CBC_RECORD_SPLITTING', # If the configuration option A requires B, make sure that # B in reverse_dependencies[A]. +# All the information here should be contained in check_config.h. This +# file includes a copy because it changes rarely and it would be a pain +# to extract automatically. reverse_dependencies = { 'MBEDTLS_ECDSA_C': ['MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED'], 'MBEDTLS_ECP_C': ['MBEDTLS_ECDSA_C', 'MBEDTLS_ECDH_C', 'MBEDTLS_ECJPAKE_C', + 'MBEDTLS_ECP_RESTARTABLE', + 'MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED'], + 'MBEDTLS_ECP_DP_SECP256R1_ENABLED': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], 'MBEDTLS_MD5_C': ssl_pre_1_2_dependencies, 'MBEDTLS_PKCS1_V21': ['MBEDTLS_X509_RSASSA_PSS_SUPPORT'], 'MBEDTLS_PKCS1_V15': ['MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', @@ -198,6 +204,8 @@ reverse_dependencies = { 'MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED', 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED'], 'MBEDTLS_SHA1_C': ssl_pre_1_2_dependencies, + 'MBEDTLS_SHA256_C': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', + 'MBEDTLS_ENTROPY_FORCE_SHA256'], 'MBEDTLS_X509_RSASSA_PSS_SUPPORT': [], } From c3b4deeb6ccac09eca55bc83a538ebdd5dca83c8 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 19:33:05 +0100 Subject: [PATCH 0728/1028] When exercising key exchanges, don't build the test suites Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 27c2ae48b3..3ef3f20ed8 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -301,9 +301,11 @@ Return them in a generator.""" # hash which is obsolete. Run the test suites. 'hashes': ExclusiveDomain(hash_symbols, build_and_test, exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_)'), - # Key exchange types. Just check the build. - 'kex': ExclusiveDomain(key_exchange_symbols, [build_command]), - # Public-key algorithms. Run the test suites. + # Key exchange types. Only build the library and the sample + # programs. + 'kex': ExclusiveDomain(key_exchange_symbols, + [build_command + ['lib'], + build_command + ['-C', 'programs']]), 'pkalgs': ComplementaryDomain(['MBEDTLS_ECDSA_C', 'MBEDTLS_ECP_C', 'MBEDTLS_PKCS1_V21', From 34a1557df6565d532eca92d07985cdfc1fbd29b7 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 23:12:28 +0100 Subject: [PATCH 0729/1028] Add domains for symmetric ciphers Add a domain for cipher base algorithms (block permutations and stream ciphers), a domain for block cipher chaining modes and a domain for block cipher padding modes. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 3ef3f20ed8..11af322fd6 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -180,6 +180,12 @@ ssl_pre_1_2_dependencies = ['MBEDTLS_SSL_CBC_RECORD_SPLITTING', # file includes a copy because it changes rarely and it would be a pain # to extract automatically. reverse_dependencies = { + 'MBEDTLS_AES_C': ['MBEDTLS_CTR_DRBG_C', + 'MBEDTLS_NIST_KW_C', + 'MBEDTLS_PSA_CRYPTO_STORAGE_C', + 'MBEDTLS_PSA_CRYPTO_STORAGE_FILE_C', + 'MBEDTLS_PSA_CRYPTO_C'], + 'MBEDTLS_CHACHA20_C': ['MBEDTLS_CHACHAPOLY_C'], 'MBEDTLS_ECDSA_C': ['MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED'], 'MBEDTLS_ECP_C': ['MBEDTLS_ECDSA_C', 'MBEDTLS_ECDH_C', @@ -266,6 +272,16 @@ Each job runs the specified commands.""" job = Job(description, config_settings, commands) self.jobs.append(job) +class CipherInfo: + """Collect data about cipher.h.""" + def __init__(self, options): + self.base_symbols = set() + with open('include/mbedtls/cipher.h') as fh: + for line in fh: + m = re.match(r' *MBEDTLS_CIPHER_ID_(\w+),', line) + if m and m.group(1) not in ['NONE', 'NULL', '3DES']: + self.base_symbols.add('MBEDTLS_' + m.group(1) + '_C') + class DomainData: """Collect data about the library.""" def collect_config_symbols(self, options): @@ -294,7 +310,21 @@ Return them in a generator.""" curve_symbols = self.config_symbols_matching(r'MBEDTLS_ECP_DP_\w+_ENABLED\Z') # Find key exchange enabling macros by name. key_exchange_symbols = self.config_symbols_matching(r'MBEDTLS_KEY_EXCHANGE_\w+_ENABLED\Z') + # Find cipher IDs (block permutations and stream ciphers --- chaining + # and padding modes are exercised separately) information by parsing + # cipher.h, as the information is not readily available in config.h. + cipher_info = CipherInfo(options) + # Find block cipher chaining and padding mode enabling macros by name. + cipher_chaining_symbols = self.config_symbols_matching(r'MBEDTLS_CIPHER_MODE_\w+\Z') + cipher_padding_symbols = self.config_symbols_matching(r'MBEDTLS_CIPHER_PADDING_\w+\Z') self.domains = { + # Cipher IDs, chaining modes and padding modes. Run the test suites. + 'cipher_id': ExclusiveDomain(cipher_info.base_symbols, + build_and_test), + 'cipher_chaining': ExclusiveDomain(cipher_chaining_symbols, + build_and_test), + 'cipher_padding': ExclusiveDomain(cipher_padding_symbols, + build_and_test), # Elliptic curves. Run the test suites. 'curves': ExclusiveDomain(curve_symbols, build_and_test), # Hash algorithms. Exclude configurations with only one From f502bcb13ed7f326ec488f5a4057647bec788957 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 27 Sep 2022 09:27:56 -0400 Subject: [PATCH 0730/1028] Fix missing AES dependencies Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ccm.data | 9 +++++++++ tests/suites/test_suite_cmac.data | 13 ++++++++++++- tests/suites/test_suite_cmac.function | 4 ++-- tests/suites/test_suite_gcm.aes128_en.data | 1 + tests/suites/test_suite_gcm.function | 2 +- tests/suites/test_suite_pem.data | 2 +- tests/suites/test_suite_ssl.data | 6 +++++- 7 files changed, 31 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_ccm.data b/tests/suites/test_suite_ccm.data index 61e6e9b991..2c4ccc4675 100644 --- a/tests/suites/test_suite_ccm.data +++ b/tests/suites/test_suite_ccm.data @@ -1715,30 +1715,39 @@ depends_on:MBEDTLS_AES_C mbedtls_ccm_incomplete_update_overflow:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_STAR_DECRYPT:"d32088d50df9aba14d9022c870a0cb85":"4b10788c1a03bca656f04f1f98":"e16c69861efc206e85aab1255e":"0eff7d7bcceb873c3203a8df74f4e91b04bd607ec11202f96cfeb99f5bcdb7aa" CCM encrypt, instant finish NIST VPT AES-128 #14 (P=13, N=13, A=32, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_ENCRYPT:"d32088d50df9aba14d9022c870a0cb85":"4b10788c1a03bca656f04f1f98" CCM decrypt, instant finish NIST VPT AES-128 #14 (P=13, N=13, A=32, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_DECRYPT:"d32088d50df9aba14d9022c870a0cb85":"4b10788c1a03bca656f04f1f98" CCM* encrypt, instant finish NIST VPT AES-128 #14 (P=13, N=13, A=32, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_STAR_ENCRYPT:"d32088d50df9aba14d9022c870a0cb85":"4b10788c1a03bca656f04f1f98" CCM* decrypt, instant finish NIST VPT AES-128 #14 (P=13, N=13, A=32, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_STAR_DECRYPT:"d32088d50df9aba14d9022c870a0cb85":"4b10788c1a03bca656f04f1f98" CCM encrypt, instant finish AES-128 (P=0, N=13, A=0, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_ENCRYPT:"54caf96ef6d448734700aadab50faf7a":"a3803e752ae849c910d8da36af" CCM decrypt, instant finish AES-128 (P=0, N=13, A=0, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_DECRYPT:"54caf96ef6d448734700aadab50faf7a":"a3803e752ae849c910d8da36af" CCM* encrypt, instant finish AES-128 (P=0, N=13, A=0, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_STAR_ENCRYPT:"54caf96ef6d448734700aadab50faf7a":"a3803e752ae849c910d8da36af" CCM* decrypt, instant finish AES-128 (P=0, N=13, A=0, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_STAR_DECRYPT:"54caf96ef6d448734700aadab50faf7a":"a3803e752ae849c910d8da36af" CCM pass unexpected auth data, NIST VPT AES-128 #14 (P=13, N=13, A=32, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_unexpected_ad::MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_ENCRYPT:"d32088d50df9aba14d9022c870a0cb85":"e16c69861efc206e85aab1255e":"0eff7d7bcceb873c3203a8df74f4e91b04bd607ec11202f96cfeb99f5bcdb7aa" CCM encrypt, unexpected ciphertext/plaintext data, NIST VPT AES-128 #14 (P=13, N=13, A=32, T=16) diff --git a/tests/suites/test_suite_cmac.data b/tests/suites/test_suite_cmac.data index 5956a69811..3ca5e542d0 100644 --- a/tests/suites/test_suite_cmac.data +++ b/tests/suites/test_suite_cmac.data @@ -2,6 +2,7 @@ CMAC self test mbedtls_cmac_self_test: CMAC null arguments +depends_on:MBEDTLS_AES_C mbedtls_cmac_null_args: CMAC init #1 AES-128: OK @@ -16,7 +17,7 @@ CMAC init #3 AES-256: OK depends_on:MBEDTLS_AES_C mbedtls_cmac_setkey:MBEDTLS_CIPHER_AES_256_ECB:256:0 -CMAC init #4 3DES : OK +CMAC init #4 3DES: OK depends_on:MBEDTLS_DES_C mbedtls_cmac_setkey:MBEDTLS_CIPHER_DES_EDE3_ECB:192:0 @@ -33,32 +34,42 @@ depends_on:MBEDTLS_CAMELLIA_C mbedtls_cmac_setkey:MBEDTLS_CIPHER_CAMELLIA_192_ECB:128:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA CMAC Single Blocks #1 - Empty block, no updates +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"":-1:"":-1:"":-1:"":-1:"bb1d6929e95937287fa37d129b756746" CMAC Single Blocks #2 - Single 16 byte block +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"6bc1bee22e409f96e93d7e117393172a":16:"":-1:"":-1:"":-1:"070a16b46b4d4144f79bdd9dd04a287c" CMAC Single Blocks #3 - Single 64 byte block +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":64:"":-1:"":-1:"":-1:"51f0bebf7e3b9d92fc49741779363cfe" CMAC Multiple Blocks #1 - Multiple 8 byte blocks +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"6bc1bee22e409f96":8:"e93d7e117393172a":8:"":-1:"":-1:"070a16b46b4d4144f79bdd9dd04a287c" CMAC Multiple Blocks #2 - Multiple 16 byte blocks +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"6bc1bee22e409f96e93d7e117393172a":16:"ae2d8a571e03ac9c9eb76fac45af8e51":16:"30c81c46a35ce411e5fbc1191a0a52ef":16:"f69f2445df4f9b17ad2b417be66c3710":16:"51f0bebf7e3b9d92fc49741779363cfe" CMAC Multiple Blocks #3 - Multiple variable sized blocks +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"6bc1bee22e409f96":8:"e93d7e117393172aae2d8a571e03ac9c":16:"9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52ef":24:"f69f2445df4f9b17ad2b417be66c3710":16:"51f0bebf7e3b9d92fc49741779363cfe" CMAC Multiple Blocks #4 - Multiple 8 byte blocks with gaps +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"":0:"6bc1bee22e409f96":8:"":0:"e93d7e117393172a":8:"070a16b46b4d4144f79bdd9dd04a287c" CMAC Multiple Operations, same key #1 - Empty, empty +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_operations_same_key:MBEDTLS_CIPHER_AES_192_ECB:"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b":192:16:"":-1:"":-1:"":-1:"d17ddf46adaacde531cac483de7a9367":"":-1:"":-1:"":-1:"d17ddf46adaacde531cac483de7a9367" CMAC Multiple Operations, same key #2 - Empty, 64 byte block +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_operations_same_key:MBEDTLS_CIPHER_AES_192_ECB:"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b":192:16:"":-1:"":-1:"":-1:"d17ddf46adaacde531cac483de7a9367":"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":64:"":-1:"":-1:"a1d5df0eed790f794d77589659f39a11" CMAC Multiple Operations, same key #3 - variable byte blocks +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_operations_same_key:MBEDTLS_CIPHER_AES_192_ECB:"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b":192:16:"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e51":32:"30c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":32:"":-1:"a1d5df0eed790f794d77589659f39a11":"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e51":32:"30c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":32:"":-1:"a1d5df0eed790f794d77589659f39a11" diff --git a/tests/suites/test_suite_cmac.function b/tests/suites/test_suite_cmac.function index cabf1070c1..c3d7da43d8 100644 --- a/tests/suites/test_suite_cmac.function +++ b/tests/suites/test_suite_cmac.function @@ -77,7 +77,7 @@ void mbedtls_cmac_null_args( ) test_data, 16, NULL ) == MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); - +#if defined(MBEDTLS_AES_C) TEST_ASSERT( mbedtls_aes_cmac_prf_128( NULL, 16, test_data, 16, test_output ) == @@ -92,7 +92,7 @@ void mbedtls_cmac_null_args( ) test_data, 16, NULL ) == MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); - +#endif exit: mbedtls_cipher_free( &ctx ); } diff --git a/tests/suites/test_suite_gcm.aes128_en.data b/tests/suites/test_suite_gcm.aes128_en.data index 273642cbd7..a87fb180e0 100644 --- a/tests/suites/test_suite_gcm.aes128_en.data +++ b/tests/suites/test_suite_gcm.aes128_en.data @@ -727,6 +727,7 @@ depends_on:MBEDTLS_AES_C gcm_bad_parameters:MBEDTLS_CIPHER_ID_AES:MBEDTLS_GCM_ENCRYPT:"d0194b6ee68f0ed8adc4b22ed15dbf14":"":"":"":32:MBEDTLS_ERR_GCM_BAD_INPUT AES-GCM, output buffer too small, NIST Validation (AES-128,128,1024,0,128) #0 +depends_on:MBEDTLS_AES_C gcm_update_output_buffer_too_small:MBEDTLS_CIPHER_ID_AES:MBEDTLS_GCM_ENCRYPT:"ce0f8cfe9d64c4f4c045d11b97c2d918":"dfff250d380f363880963b42d6913c1ba11e8edf7c4ab8b76d79ccbaac628f548ee542f48728a9a2620a0d69339c8291e8d398440d740e310908cdee7c273cc91275ce7271ba12f69237998b07b789b3993aaac8dc4ec1914432a30f5172f79ea0539bd1f70b36d437e5170bc63039a5280816c05e1e41760b58e35696cebd55":"ad4c3627a494fc628316dc03faf81db8" AES-GCM Selftest diff --git a/tests/suites/test_suite_gcm.function b/tests/suites/test_suite_gcm.function index ea8d6a03ad..eb2ced34a8 100644 --- a/tests/suites/test_suite_gcm.function +++ b/tests/suites/test_suite_gcm.function @@ -454,7 +454,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ +/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST:MBEDTLS_AES_C */ void gcm_selftest( ) { TEST_ASSERT( mbedtls_gcm_self_test( 1 ) == 0 ); diff --git a/tests/suites/test_suite_pem.data b/tests/suites/test_suite_pem.data index d755c27601..1c9e0bf22d 100644 --- a/tests/suites/test_suite_pem.data +++ b/tests/suites/test_suite_pem.data @@ -28,7 +28,7 @@ depends_on:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MOD mbedtls_pem_read_buffer:"^":"$":"^\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: DES-CBC,00$":"pwd":MBEDTLS_ERR_PEM_INVALID_ENC_IV:"" PEM read (unknown encryption algorithm) -depends_on:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C mbedtls_pem_read_buffer:"^":"$":"^\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: AES-,00$":"pwd":MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG:"" PEM read (malformed PEM DES-CBC) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index 1210694526..bd9f250eaf 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -3115,6 +3115,7 @@ SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #1 # - App data payload: 70696e67 # - Complete record: 1703030015c74061535eb12f5f25a781957874742ab7fb305dd5 # - Padding used: No (== granularity 1) +depends_on:MBEDTLS_AES_C ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"70696e67":"c74061535eb12f5f25a781957874742ab7fb305dd5" SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #2 @@ -3125,6 +3126,7 @@ SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #2 # - App data payload: 706f6e67 # - Complete record: 1703030015370e5f168afa7fb16b663ecdfca3dbb81931a90ca7 # - Padding used: No (== granularity 1) +depends_on:MBEDTLS_AES_C ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"706f6e67":"370e5f168afa7fb16b663ecdfca3dbb81931a90ca7" SSL TLS 1.3 Record Encryption RFC 8448 Example #1 @@ -3143,6 +3145,7 @@ SSL TLS 1.3 Record Encryption RFC 8448 Example #1 # 62 97 4e 1f 5a 62 92 a2 97 70 14 bd 1e 3d ea e6 # 3a ee bb 21 69 49 15 e4 # - Padding used: No (== granularity 1) +depends_on:MBEDTLS_AES_C ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"a23f7054b62c94d0affafe8228ba55cbefacea42f914aa66bcab3f2b9819a8a5b46b395bd54a9a20441e2b62974e1f5a6292a2977014bd1e3deae63aeebb21694915e4" SSL TLS 1.3 Record Encryption RFC 8448 Example #2 @@ -3161,11 +3164,12 @@ SSL TLS 1.3 Record Encryption RFC 8448 Example #2 # fc c4 9c 4b f2 e5 f0 a2 1c 00 47 c2 ab f3 32 54 # 0d d0 32 e1 67 c2 95 5d # - Padding used: No (== granularity 1) +depends_on:MBEDTLS_AES_C ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"2e937e11ef4ac740e538ad36005fc4a46932fc3225d05f82aa1b36e30efaf97d90e6dffc602dcb501a59a8fcc49c4bf2e5f0a21c0047c2abf332540dd032e167c2955d" SSL TLS 1.3 Key schedule: Application secrets derivation helper # Vector from RFC 8448 -depends_on:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_AES_C ssl_tls13_derive_application_secrets:PSA_ALG_SHA_256:"e2d32d4ed66dd37897a0e80c84107503ce58bf8aad4cb55a5002d77ecb890ece":"b0aeffc46a2cfe33114e6fd7d51f9f04b1ca3c497dab08934a774a9d9ad7dbf3":"2abbf2b8e381d23dbebe1dd2a7d16a8bf484cb4950d23fb7fb7fa8547062d9a1":"cc21f1bf8feb7dd5fa505bd9c4b468a9984d554a993dc49e6d285598fb672691":"3fd93d4ffddc98e64b14dd107aedf8ee4add23f4510f58a4592d0b201bee56b4" SSL TLS 1.3 Key schedule: Resumption secrets derivation helper From 894edde9915bc34c814f5571d1b246f30a6337f7 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 29 Sep 2022 06:31:14 -0400 Subject: [PATCH 0731/1028] Add tls prf handling when there's no SHA256 or SHA384 Return a null prf function pointer and check for it when populating transform. Signed-off-by: Andrzej Kurek --- library/ssl_tls.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index c36729fc56..50a233ddb5 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -4046,6 +4046,7 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, const unsigned char * const end = buf + len; size_t session_len; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + tls_prf_fn prf_func = NULL; /* * The context should have been freshly setup or reset. @@ -4131,6 +4132,10 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, ssl->transform_out = ssl->transform; ssl->transform_negotiate = NULL; + prf_func = ssl_tls12prf_from_cs( ssl->session->ciphersuite ); + if( prf_func == NULL ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + /* Read random bytes and populate structure */ if( (size_t)( end - p ) < sizeof( ssl->transform->randbytes ) ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); @@ -4141,7 +4146,7 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM) ssl->session->encrypt_then_mac, #endif /* MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM */ - ssl_tls12prf_from_cs( ssl->session->ciphersuite ), + prf_func, p, /* currently pointing to randbytes */ MBEDTLS_SSL_VERSION_TLS1_2, /* (D)TLS 1.2 is forced */ ssl->conf->endpoint, @@ -7428,6 +7433,8 @@ exit: * Helper to get TLS 1.2 PRF from ciphersuite * (Duplicates bits of logic from ssl_set_handshake_prfs().) */ +#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ + defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) static tls_prf_fn ssl_tls12prf_from_cs( int ciphersuite_id ) { #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) @@ -7436,11 +7443,22 @@ static tls_prf_fn ssl_tls12prf_from_cs( int ciphersuite_id ) if( ciphersuite_info != NULL && ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) return( tls_prf_sha384 ); -#else - (void) ciphersuite_id; + else #endif - return( tls_prf_sha256 ); +#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + { + if( ciphersuite_info != NULL && ciphersuite_info->mac == MBEDTLS_MD_SHA256 ) + return( tls_prf_sha256 ); + } +#endif +#if !defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ + !defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + (void) ciphersuite_info; +#endif + return( NULL ); } +#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA || + MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ static mbedtls_tls_prf_types tls_prf_get_type( mbedtls_ssl_tls_prf_cb *tls_prf ) From 2d59dbc0323d30570a51d2ab36c067f9b3be6759 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 13 Oct 2022 08:34:38 -0400 Subject: [PATCH 0732/1028] Use TLS prf only if TLS 1.2 is compiled in Signed-off-by: Andrzej Kurek --- library/ssl_tls.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 50a233ddb5..7792957397 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -4046,7 +4046,9 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, const unsigned char * const end = buf + len; size_t session_len; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) tls_prf_fn prf_func = NULL; +#endif /* * The context should have been freshly setup or reset. @@ -4132,6 +4134,7 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, ssl->transform_out = ssl->transform; ssl->transform_negotiate = NULL; +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) prf_func = ssl_tls12prf_from_cs( ssl->session->ciphersuite ); if( prf_func == NULL ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); @@ -4139,7 +4142,7 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, /* Read random bytes and populate structure */ if( (size_t)( end - p ) < sizeof( ssl->transform->randbytes ) ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); -#if defined(MBEDTLS_SSL_PROTO_TLS1_2) + ret = ssl_tls12_populate_transform( ssl->transform, ssl->session->ciphersuite, ssl->session->master, From 084334c8f28fd2c32462d47be996a2b65dd7993c Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 27 Sep 2022 14:19:50 -0400 Subject: [PATCH 0733/1028] Compile constant time masking and hmac if there are suites using MAC This is used in TLS 1.2 authentication with NULL cipher, when there are no TLS_CBC suites. Signed-off-by: Andrzej Kurek --- library/constant_time_internal.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/constant_time_internal.h b/library/constant_time_internal.h index 340a5882d8..9cc63c2308 100644 --- a/library/constant_time_internal.h +++ b/library/constant_time_internal.h @@ -46,7 +46,7 @@ */ unsigned mbedtls_ct_uint_mask( unsigned value ); -#if defined(MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC) +#if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) /** Turn a value into a mask: * - if \p value == 0, return the all-bits 0 mask, aka 0 @@ -61,7 +61,7 @@ unsigned mbedtls_ct_uint_mask( unsigned value ); */ size_t mbedtls_ct_size_mask( size_t value ); -#endif /* MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC */ +#endif /* MBEDTLS_SSL_SOME_SUITES_USE_MAC */ #if defined(MBEDTLS_BIGNUM_C) From 46a987367c5f3bcbf126ec7db6a8a1743ffe08e4 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 17 Oct 2022 08:11:11 -0400 Subject: [PATCH 0734/1028] Formatting fix Signed-off-by: Andrzej Kurek --- library/ssl_msg.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/library/ssl_msg.c b/library/ssl_msg.c index ab2ecb327a..4f998b4f5f 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -1665,15 +1665,15 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_2) /* - * The next two sizes are the minimum and maximum values of - * data_len over all padlen values. - * - * They're independent of padlen, since we previously did - * data_len -= padlen. - * - * Note that max_len + maclen is never more than the buffer - * length, as we previously did in_msglen -= maclen too. - */ + * The next two sizes are the minimum and maximum values of + * data_len over all padlen values. + * + * They're independent of padlen, since we previously did + * data_len -= padlen. + * + * Note that max_len + maclen is never more than the buffer + * length, as we previously did in_msglen -= maclen too. + */ const size_t max_len = rec->data_len + padlen; const size_t min_len = ( max_len > 256 ) ? max_len - 256 : 0; From 0abebebe6d8a182ccdee8ea2275576a0accbe030 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 30 Sep 2022 12:54:41 -0400 Subject: [PATCH 0735/1028] Refactor ssl test suite to use pointers more This way it's easier to track structures that are partially set up. Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.function | 122 ++++++++++++++++----------- 1 file changed, 73 insertions(+), 49 deletions(-) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index d832853ee0..5042d9fc3a 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -797,9 +797,9 @@ int mbedtls_mock_tcp_recv_msg( void *ctx, unsigned char *buf, size_t buf_len ) */ typedef struct mbedtls_endpoint_certificate { - mbedtls_x509_crt ca_cert; - mbedtls_x509_crt cert; - mbedtls_pk_context pkey; + mbedtls_x509_crt* ca_cert; + mbedtls_x509_crt* cert; + mbedtls_pk_context* pkey; } mbedtls_endpoint_certificate; /* @@ -814,6 +814,42 @@ typedef struct mbedtls_endpoint mbedtls_endpoint_certificate cert; } mbedtls_endpoint; +/* + * Deinitializes certificates from endpoint represented by \p ep. + */ +void mbedtls_endpoint_certificate_free( mbedtls_endpoint *ep ) +{ + mbedtls_endpoint_certificate *cert = &( ep->cert ); + if( cert != NULL ) + { + if( cert->ca_cert != NULL ) + { + mbedtls_x509_crt_free( cert->ca_cert ); + mbedtls_free( cert->ca_cert ); + cert->ca_cert = NULL; + } + if( cert->cert != NULL ) + { + mbedtls_x509_crt_free( cert->cert ); + mbedtls_free( cert->cert ); + cert->cert = NULL; + } + if( cert->pkey != NULL ) + { +#if defined(MBEDTLS_USE_PSA_CRYPTO) + if( mbedtls_pk_get_type( cert->pkey ) == MBEDTLS_PK_OPAQUE ) + { + mbedtls_svc_key_id_t *key_slot = cert->pkey->pk_ctx; + psa_destroy_key( *key_slot ); + } +#endif + mbedtls_pk_free( cert->pkey ); + mbedtls_free( cert->pkey ); + cert->pkey = NULL; + } + } +} + /* * Initializes \p ep_cert structure and assigns it to endpoint * represented by \p ep. @@ -826,7 +862,7 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, { int i = 0; int ret = -1; - mbedtls_endpoint_certificate *cert; + mbedtls_endpoint_certificate *cert = NULL; #if defined(MBEDTLS_USE_PSA_CRYPTO) mbedtls_svc_key_id_t key_slot = MBEDTLS_SVC_KEY_ID_INIT; #endif @@ -837,15 +873,19 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, } cert = &( ep->cert ); - mbedtls_x509_crt_init( &( cert->ca_cert ) ); - mbedtls_x509_crt_init( &( cert->cert ) ); - mbedtls_pk_init( &( cert->pkey ) ); + cert->ca_cert = mbedtls_calloc( 1, sizeof(mbedtls_x509_crt) ); + cert->cert = mbedtls_calloc( 1, sizeof(mbedtls_x509_crt) ); + cert->pkey = mbedtls_calloc( 1, sizeof(mbedtls_pk_context) ); + + mbedtls_x509_crt_init( cert->ca_cert ); + mbedtls_x509_crt_init( cert->cert ); + mbedtls_pk_init( cert->pkey ); /* Load the trusted CA */ for( i = 0; mbedtls_test_cas_der[i] != NULL; i++ ) { - ret = mbedtls_x509_crt_parse_der( &( cert->ca_cert ), + ret = mbedtls_x509_crt_parse_der( cert->ca_cert, (const unsigned char *) mbedtls_test_cas_der[i], mbedtls_test_cas_der_len[i] ); TEST_ASSERT( ret == 0 ); @@ -857,12 +897,12 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, { if( pk_alg == MBEDTLS_PK_RSA ) { - ret = mbedtls_x509_crt_parse( &( cert->cert ), + ret = mbedtls_x509_crt_parse( cert->cert, (const unsigned char*) mbedtls_test_srv_crt_rsa_sha256_der, mbedtls_test_srv_crt_rsa_sha256_der_len ); TEST_ASSERT( ret == 0 ); - ret = mbedtls_pk_parse_key( &( cert->pkey ), + ret = mbedtls_pk_parse_key( cert->pkey, (const unsigned char*) mbedtls_test_srv_key_rsa_der, mbedtls_test_srv_key_rsa_der_len, NULL, 0, mbedtls_test_rnd_std_rand, NULL ); @@ -870,12 +910,12 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, } else { - ret = mbedtls_x509_crt_parse( &( cert->cert ), + ret = mbedtls_x509_crt_parse( cert->cert, (const unsigned char*) mbedtls_test_srv_crt_ec_der, mbedtls_test_srv_crt_ec_der_len ); TEST_ASSERT( ret == 0 ); - ret = mbedtls_pk_parse_key( &( cert->pkey ), + ret = mbedtls_pk_parse_key( cert->pkey, (const unsigned char*) mbedtls_test_srv_key_ec_der, mbedtls_test_srv_key_ec_der_len, NULL, 0, mbedtls_test_rnd_std_rand, NULL ); @@ -886,12 +926,12 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, { if( pk_alg == MBEDTLS_PK_RSA ) { - ret = mbedtls_x509_crt_parse( &( cert->cert ), + ret = mbedtls_x509_crt_parse( cert->cert, (const unsigned char *) mbedtls_test_cli_crt_rsa_der, mbedtls_test_cli_crt_rsa_der_len ); TEST_ASSERT( ret == 0 ); - ret = mbedtls_pk_parse_key( &( cert->pkey ), + ret = mbedtls_pk_parse_key( cert->pkey, (const unsigned char *) mbedtls_test_cli_key_rsa_der, mbedtls_test_cli_key_rsa_der_len, NULL, 0, mbedtls_test_rnd_std_rand, NULL ); @@ -899,12 +939,12 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, } else { - ret = mbedtls_x509_crt_parse( &( cert->cert ), + ret = mbedtls_x509_crt_parse( cert->cert, (const unsigned char *) mbedtls_test_cli_crt_ec_der, mbedtls_test_cli_crt_ec_len ); TEST_ASSERT( ret == 0 ); - ret = mbedtls_pk_parse_key( &( cert->pkey ), + ret = mbedtls_pk_parse_key( cert->pkey, (const unsigned char *) mbedtls_test_cli_key_ec_der, mbedtls_test_cli_key_ec_der_len, NULL, 0, mbedtls_test_rnd_std_rand, NULL ); @@ -915,7 +955,7 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, #if defined(MBEDTLS_USE_PSA_CRYPTO) if( opaque_alg != 0 ) { - TEST_EQUAL( mbedtls_pk_wrap_as_opaque( &( cert->pkey ), &key_slot, + TEST_EQUAL( mbedtls_pk_wrap_as_opaque( cert->pkey, &key_slot, opaque_alg, opaque_usage, opaque_alg2 ), 0 ); } @@ -925,10 +965,10 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, (void) opaque_usage; #endif - mbedtls_ssl_conf_ca_chain( &( ep->conf ), &( cert->ca_cert ), NULL ); + mbedtls_ssl_conf_ca_chain( &( ep->conf ), cert->ca_cert, NULL ); - ret = mbedtls_ssl_conf_own_cert( &( ep->conf ), &( cert->cert ), - &( cert->pkey ) ); + ret = mbedtls_ssl_conf_own_cert( &( ep->conf ), cert->cert, + cert->pkey ); TEST_ASSERT( ret == 0 ); TEST_ASSERT( ep->conf.key_cert != NULL ); @@ -936,20 +976,14 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, TEST_ASSERT( ret == 0 ); TEST_ASSERT( ep->conf.key_cert == NULL ); - ret = mbedtls_ssl_conf_own_cert( &( ep->conf ), &( cert->cert ), - &( cert->pkey ) ); + ret = mbedtls_ssl_conf_own_cert( &( ep->conf ), cert->cert, + cert->pkey ); TEST_ASSERT( ret == 0 ); exit: if( ret != 0 ) { - mbedtls_x509_crt_free( &( cert->ca_cert ) ); - mbedtls_x509_crt_free( &( cert->cert ) ); -#if defined(MBEDTLS_USE_PSA_CRYPTO) - if( opaque_alg != 0 ) - psa_destroy_key( key_slot ); -#endif - mbedtls_pk_free( &( cert->pkey ) ); + mbedtls_endpoint_certificate_free( ep ); } return ret; @@ -1075,25 +1109,6 @@ exit: return ret; } -/* - * Deinitializes certificates from endpoint represented by \p ep. - */ -void mbedtls_endpoint_certificate_free( mbedtls_endpoint *ep ) -{ - mbedtls_endpoint_certificate *cert = &( ep->cert ); - mbedtls_x509_crt_free( &( cert->ca_cert ) ); - mbedtls_x509_crt_free( &( cert->cert ) ); -#if defined(MBEDTLS_USE_PSA_CRYPTO) - if( mbedtls_pk_get_type( &( cert->pkey ) ) == MBEDTLS_PK_OPAQUE ) - { - mbedtls_svc_key_id_t *key_slot = cert->pkey.pk_ctx; - - psa_destroy_key( *key_slot ); - } -#endif - mbedtls_pk_free( &( cert->pkey ) ); -} - /* * Deinitializes endpoint represented by \p ep. */ @@ -2077,7 +2092,8 @@ void perform_handshake( handshake_test_options *options ) int expected_handshake_result = options->expected_handshake_result; USE_PSA_INIT( ); - + mbedtls_platform_zeroize( &client, sizeof(client) ); + mbedtls_platform_zeroize( &server, sizeof(server) ); mbedtls_test_message_queue server_queue, client_queue; mbedtls_test_message_socket_context server_context, client_context; mbedtls_message_socket_init( &server_context ); @@ -5122,6 +5138,8 @@ void move_handshake_to_state(int endpoint_type, int state, int need_pass) options.pk_alg = MBEDTLS_PK_RSA; USE_PSA_INIT( ); + mbedtls_platform_zeroize( &base_ep, sizeof(base_ep) ); + mbedtls_platform_zeroize( &second_ep, sizeof(second_ep) ); ret = mbedtls_endpoint_init( &base_ep, endpoint_type, &options, NULL, NULL, NULL, NULL ); @@ -5827,6 +5845,8 @@ void force_bad_session_id_len( ) options.srv_log_fun = log_analyzer; USE_PSA_INIT( ); + mbedtls_platform_zeroize( &client, sizeof(client) ); + mbedtls_platform_zeroize( &server, sizeof(server) ); mbedtls_message_socket_init( &server_context ); mbedtls_message_socket_init( &client_context ); @@ -6007,6 +6027,8 @@ void raw_key_agreement_fail( int bad_server_ecdhe_key ) uint16_t iana_tls_group_list[] = { MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1, MBEDTLS_SSL_IANA_TLS_GROUP_NONE }; USE_PSA_INIT( ); + mbedtls_platform_zeroize( &client, sizeof(client) ); + mbedtls_platform_zeroize( &server, sizeof(server) ); init_handshake_options( &options ); options.pk_alg = MBEDTLS_PK_ECDSA; @@ -6081,6 +6103,8 @@ void tls13_server_certificate_msg_invalid_vector_len( ) * Test set-up */ USE_PSA_INIT( ); + mbedtls_platform_zeroize( &client_ep, sizeof(client_ep) ); + mbedtls_platform_zeroize( &server_ep, sizeof(server_ep) ); init_handshake_options( &client_options ); client_options.pk_alg = MBEDTLS_PK_ECDSA; From 90e8204476e18f88e2575018aaa27e4b194cfb2c Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 17 Oct 2022 07:45:53 -0400 Subject: [PATCH 0736/1028] Add missing SHA256 and ECDSA_C dependencies in test_suite_ssl Most of the tests (including those using endpoint_init functions) parse certificates that require MBEDTLS_SHA256_C to be present. Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.data | 12 ++++++----- tests/suites/test_suite_ssl.function | 32 ++++++++++++++-------------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index bd9f250eaf..20a0c6d8d5 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -3115,7 +3115,7 @@ SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #1 # - App data payload: 70696e67 # - Complete record: 1703030015c74061535eb12f5f25a781957874742ab7fb305dd5 # - Padding used: No (== granularity 1) -depends_on:MBEDTLS_AES_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"70696e67":"c74061535eb12f5f25a781957874742ab7fb305dd5" SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #2 @@ -3126,7 +3126,7 @@ SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #2 # - App data payload: 706f6e67 # - Complete record: 1703030015370e5f168afa7fb16b663ecdfca3dbb81931a90ca7 # - Padding used: No (== granularity 1) -depends_on:MBEDTLS_AES_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"706f6e67":"370e5f168afa7fb16b663ecdfca3dbb81931a90ca7" SSL TLS 1.3 Record Encryption RFC 8448 Example #1 @@ -3145,7 +3145,7 @@ SSL TLS 1.3 Record Encryption RFC 8448 Example #1 # 62 97 4e 1f 5a 62 92 a2 97 70 14 bd 1e 3d ea e6 # 3a ee bb 21 69 49 15 e4 # - Padding used: No (== granularity 1) -depends_on:MBEDTLS_AES_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"a23f7054b62c94d0affafe8228ba55cbefacea42f914aa66bcab3f2b9819a8a5b46b395bd54a9a20441e2b62974e1f5a6292a2977014bd1e3deae63aeebb21694915e4" SSL TLS 1.3 Record Encryption RFC 8448 Example #2 @@ -3164,12 +3164,12 @@ SSL TLS 1.3 Record Encryption RFC 8448 Example #2 # fc c4 9c 4b f2 e5 f0 a2 1c 00 47 c2 ab f3 32 54 # 0d d0 32 e1 67 c2 95 5d # - Padding used: No (== granularity 1) -depends_on:MBEDTLS_AES_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"2e937e11ef4ac740e538ad36005fc4a46932fc3225d05f82aa1b36e30efaf97d90e6dffc602dcb501a59a8fcc49c4bf2e5f0a21c0047c2abf332540dd032e167c2955d" SSL TLS 1.3 Key schedule: Application secrets derivation helper # Vector from RFC 8448 -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_AES_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:PSA_WANT_ALG_SHA_256 ssl_tls13_derive_application_secrets:PSA_ALG_SHA_256:"e2d32d4ed66dd37897a0e80c84107503ce58bf8aad4cb55a5002d77ecb890ece":"b0aeffc46a2cfe33114e6fd7d51f9f04b1ca3c497dab08934a774a9d9ad7dbf3":"2abbf2b8e381d23dbebe1dd2a7d16a8bf484cb4950d23fb7fb7fa8547062d9a1":"cc21f1bf8feb7dd5fa505bd9c4b468a9984d554a993dc49e6d285598fb672691":"3fd93d4ffddc98e64b14dd107aedf8ee4add23f4510f58a4592d0b201bee56b4" SSL TLS 1.3 Key schedule: Resumption secrets derivation helper @@ -3522,9 +3522,11 @@ Sanity test cid functions cid_sanity: Raw key agreement: nominal +depends_on:MBEDTLS_SHA256_C raw_key_agreement_fail:0 Raw key agreement: bad server key +depends_on:MBEDTLS_SHA256_C raw_key_agreement_fail:1 Force a bad session id length diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 5042d9fc3a..d169160de2 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -4543,7 +4543,7 @@ void ssl_tls13_create_psk_binder( int hash_alg, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3 */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SHA256_C */ void ssl_tls13_record_protection( int ciphersuite, int endpoint, int ctr, @@ -5100,7 +5100,7 @@ void ssl_session_serialize_version_check( int corrupt_major, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15*/ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SHA256_C */ void mbedtls_endpoint_sanity( int endpoint_type ) { enum { BUFFSIZE = 1024 }; @@ -5127,7 +5127,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15 */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SHA256_C */ void move_handshake_to_state(int endpoint_type, int state, int need_pass) { enum { BUFFSIZE = 1024 }; @@ -5183,7 +5183,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ void handshake_version( int dtls, int client_min_version, int client_max_version, int server_min_version, int server_max_version, int expected_negotiated_version ) @@ -5208,7 +5208,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2 */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SHA256_C */ void handshake_psk_cipher( char* cipher, int pk_alg, data_t *psk_str, int dtls ) { handshake_test_options options; @@ -5229,7 +5229,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2 */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SHA256_C */ void handshake_cipher( char* cipher, int pk_alg, int dtls ) { test_handshake_psk_cipher( cipher, pk_alg, NULL, dtls ); @@ -5239,7 +5239,7 @@ void handshake_cipher( char* cipher, int pk_alg, int dtls ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2 */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SHA256_C */ void handshake_ciphersuite_select( char* cipher, int pk_alg, data_t *psk_str, int psa_alg, int psa_alg2, int psa_usage, int expected_handshake_result, @@ -5266,7 +5266,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ void app_data( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments, int dtls ) @@ -5294,7 +5294,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ void app_data_tls( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments ) @@ -5306,7 +5306,7 @@ void app_data_tls( int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SHA256_C */ void app_data_dtls( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments ) @@ -5318,7 +5318,7 @@ void app_data_dtls( int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SHA256_C */ void handshake_serialization( ) { handshake_test_options options; @@ -5334,7 +5334,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_SHA256_C */ void handshake_fragmentation( int mfl, int expected_srv_hs_fragmentation, int expected_cli_hs_fragmentation) { handshake_test_options options; @@ -5373,7 +5373,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SHA256_C */ void renegotiation( int legacy_renegotiation ) { handshake_test_options options; @@ -5392,7 +5392,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ void resize_buffers( int mfl, int renegotiation, int legacy_renegotiation, int serialize, int dtls, char *cipher ) { @@ -5416,7 +5416,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SHA256_C */ void resize_buffers_serialize_mfl( int mfl ) { test_resize_buffers( mfl, 0, MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION, 1, 1, @@ -5427,7 +5427,7 @@ void resize_buffers_serialize_mfl( int mfl ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ void resize_buffers_renegotiate_mfl( int mfl, int legacy_renegotiation, char *cipher ) { From 68327748d398b81deb7772ff06f1c4a04e48c88b Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 3 Oct 2022 06:18:18 -0400 Subject: [PATCH 0737/1028] Add missing dependencies Signed-off-by: Andrzej Kurek --- library/ssl_tls.c | 5 ++--- programs/ssl/ssl_client2.c | 3 ++- programs/ssl/ssl_server2.c | 3 ++- programs/test/benchmark.c | 5 +++-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 7792957397..eee0dadacf 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -7440,10 +7440,9 @@ exit: defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) static tls_prf_fn ssl_tls12prf_from_cs( int ciphersuite_id ) { -#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) const mbedtls_ssl_ciphersuite_t * const ciphersuite_info = - mbedtls_ssl_ciphersuite_from_id( ciphersuite_id ); - + mbedtls_ssl_ciphersuite_from_id( ciphersuite_id ); +#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) if( ciphersuite_info != NULL && ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) return( tls_prf_sha384 ); else diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index be474d4737..9426a82643 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -2030,7 +2030,8 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 4f789d5230..e3587a5b5a 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -3234,7 +3234,8 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/programs/test/benchmark.c b/programs/test/benchmark.c index 920a473c62..ecb093e14f 100644 --- a/programs/test/benchmark.c +++ b/programs/test/benchmark.c @@ -915,7 +915,8 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_HMAC_DRBG_C) +#if defined(MBEDTLS_HMAC_DRBG_C) && \ + ( defined(MBEDTLS_SHA1_C) || defined(MBEDTLS_SHA256_C) ) if( todo.hmac_drbg ) { mbedtls_hmac_drbg_context hmac_drbg; @@ -958,7 +959,7 @@ int main( int argc, char *argv[] ) #endif mbedtls_hmac_drbg_free( &hmac_drbg ); } -#endif +#endif /* MBEDTLS_HMAC_DRBG_C && ( MBEDTLS_SHA1_C || MBEDTLS_SHA256_C ) */ #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_GENPRIME) if( todo.rsa ) From e38b788b79f507ae61bb3a1e072dab59eff0f9e6 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 17 Oct 2022 07:46:51 -0400 Subject: [PATCH 0738/1028] Add missing key exchange dependencies Signed-off-by: Andrzej Kurek --- programs/ssl/ssl_client2.c | 26 ++++++++++++-------- programs/ssl/ssl_server2.c | 3 ++- tests/suites/test_suite_ssl.data | 42 ++++++++++++++++---------------- 3 files changed, 39 insertions(+), 32 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 9426a82643..caf9ac5cf5 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -541,7 +541,7 @@ struct options #include "ssl_test_common_source.c" -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) static unsigned char peer_crt_info[1024]; /* @@ -579,7 +579,7 @@ static int my_verify( void *data, mbedtls_x509_crt *crt, return( 0 ); } -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) int report_cid_usage( mbedtls_ssl_context *ssl, @@ -768,7 +768,7 @@ int main( int argc, char *argv[] ) psa_status_t status; #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) mbedtls_x509_crt_profile crt_profile_for_test = mbedtls_x509_crt_profile_default; #endif rng_context_t rng; @@ -781,7 +781,9 @@ int main( int argc, char *argv[] ) mbedtls_timing_delay_context timer; #endif #if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) uint32_t flags; +#endif mbedtls_x509_crt cacert; mbedtls_x509_crt clicert; mbedtls_pk_context pkey; @@ -2131,7 +2133,8 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ + defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( opt.context_crt_cb == 1 ) mbedtls_ssl_set_verify( &ssl, my_verify, NULL ); #endif /* MBEDTLS_X509_CRT_PARSE_C */ @@ -2455,7 +2458,8 @@ int main( int argc, char *argv[] ) } } -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ + defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* * 5. Verify the server certificate */ @@ -2478,7 +2482,7 @@ int main( int argc, char *argv[] ) mbedtls_printf( " . Peer certificate information ...\n" ); mbedtls_printf( "%s\n", peer_crt_info ); #endif /* !MBEDTLS_X509_REMOVE_INFO */ -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) ret = report_cid_usage( &ssl, "initial handshake" ); @@ -2853,9 +2857,10 @@ send_request: mbedtls_printf( " . Restarting connection from same port..." ); fflush( stdout ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ + defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ if( ( ret = mbedtls_ssl_session_reset( &ssl ) ) != 0 ) { @@ -3089,9 +3094,10 @@ reconnect: mbedtls_printf( " . Reconnecting with saved session..." ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ + defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ if( ( ret = mbedtls_ssl_session_reset( &ssl ) ) != 0 ) { diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index e3587a5b5a..0554d2cb12 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -1444,7 +1444,8 @@ int main( int argc, char *argv[] ) mbedtls_ssl_cookie_ctx cookie_ctx; #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ + defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) mbedtls_x509_crt_profile crt_profile_for_test = mbedtls_x509_crt_profile_default; #endif mbedtls_ssl_context ssl; diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index 20a0c6d8d5..c344b21826 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -254,23 +254,23 @@ depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C: handshake_cipher:"TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384":MBEDTLS_PK_RSA:0 Handshake, RSA-WITH-AES-128-CCM -depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED +depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_RSA_ENABLED handshake_cipher:"TLS-RSA-WITH-AES-128-CCM":MBEDTLS_PK_RSA:0 Handshake, DHE-RSA-WITH-AES-256-CBC-SHA256 -depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED +depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED handshake_cipher:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256":MBEDTLS_PK_RSA:0 Handshake, ECDHE-ECDSA-WITH-AES-256-CCM -depends_on:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED +depends_on:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED handshake_cipher:"TLS-ECDHE-ECDSA-WITH-AES-256-CCM":MBEDTLS_PK_ECDSA:0 Handshake, ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384 -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED handshake_cipher:"TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384":MBEDTLS_PK_ECDSA:0 Handshake, PSK-WITH-AES-128-CBC-SHA -depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_PSK_ENABLED handshake_psk_cipher:"TLS-PSK-WITH-AES-128-CBC-SHA":MBEDTLS_PK_RSA:"abc123":0 DTLS Handshake, tls1_2 @@ -282,23 +282,23 @@ depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C: handshake_cipher:"TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384":MBEDTLS_PK_RSA:1 DTLS Handshake, RSA-WITH-AES-128-CCM -depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS +depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_KEY_EXCHANGE_RSA_ENABLED handshake_cipher:"TLS-RSA-WITH-AES-128-CCM":MBEDTLS_PK_RSA:1 DTLS Handshake, DHE-RSA-WITH-AES-256-CBC-SHA256 -depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS +depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED handshake_cipher:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256":MBEDTLS_PK_RSA:1 DTLS Handshake, ECDHE-ECDSA-WITH-AES-256-CCM -depends_on:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS +depends_on:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED handshake_cipher:"TLS-ECDHE-ECDSA-WITH-AES-256-CCM":MBEDTLS_PK_ECDSA:1 DTLS Handshake, ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384 -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_SSL_PROTO_DTLS +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED handshake_cipher:"TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384":MBEDTLS_PK_ECDSA:1 DTLS Handshake, PSK-WITH-AES-128-CBC-SHA -depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_PSK_ENABLED handshake_psk_cipher:"TLS-PSK-WITH-AES-128-CBC-SHA":MBEDTLS_PK_RSA:"abc123":1 DTLS Handshake with serialization, tls1_2 @@ -354,27 +354,27 @@ depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER handshake_ciphersuite_select:"TLS-RSA-PSK-WITH-AES-256-CBC-SHA384":MBEDTLS_PK_RSA:"":PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ALG_NONE:PSA_KEY_USAGE_DECRYPT:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Handshake, select DHE-RSA-WITH-AES-256-GCM-SHA384, non-opaque -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED handshake_ciphersuite_select:"TLS-DHE-RSA-WITH-AES-256-GCM-SHA384":MBEDTLS_PK_RSA:"":PSA_ALG_NONE:PSA_ALG_NONE:0:0:MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 Handshake, select DHE-RSA-WITH-AES-256-GCM-SHA384, opaque, PSA_ALG_ANY_HASH -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-DHE-RSA-WITH-AES-256-GCM-SHA384":MBEDTLS_PK_RSA:"":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):PSA_ALG_NONE:PSA_KEY_USAGE_SIGN_HASH:0:MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 Handshake, select DHE-RSA-WITH-AES-256-GCM-SHA384, opaque, PSA_ALG_SHA_384 -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-DHE-RSA-WITH-AES-256-GCM-SHA384":MBEDTLS_PK_RSA:"":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ALG_NONE:PSA_KEY_USAGE_SIGN_HASH:0:MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 Handshake, select DHE-RSA-WITH-AES-256-GCM-SHA384, opaque, invalid alg -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-DHE-RSA-WITH-AES-256-GCM-SHA384":MBEDTLS_PK_RSA:"":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ALG_NONE:PSA_KEY_USAGE_SIGN_HASH:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Handshake, select DHE-RSA-WITH-AES-256-GCM-SHA384, opaque, bad alg -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-DHE-RSA-WITH-AES-256-GCM-SHA384":MBEDTLS_PK_RSA:"":PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ALG_NONE:PSA_KEY_USAGE_SIGN_HASH:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Handshake, select DHE-RSA-WITH-AES-256-GCM-SHA384, opaque, bad usage -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-DHE-RSA-WITH-AES-256-GCM-SHA384":MBEDTLS_PK_RSA:"":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):PSA_ALG_NONE:PSA_KEY_USAGE_DERIVE:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Handshake, select ECDHE-RSA-WITH-AES-256-GCM-SHA384, non-opaque @@ -3115,7 +3115,7 @@ SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #1 # - App data payload: 70696e67 # - Complete record: 1703030015c74061535eb12f5f25a781957874742ab7fb305dd5 # - Padding used: No (== granularity 1) -depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"70696e67":"c74061535eb12f5f25a781957874742ab7fb305dd5" SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #2 @@ -3126,7 +3126,7 @@ SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #2 # - App data payload: 706f6e67 # - Complete record: 1703030015370e5f168afa7fb16b663ecdfca3dbb81931a90ca7 # - Padding used: No (== granularity 1) -depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"706f6e67":"370e5f168afa7fb16b663ecdfca3dbb81931a90ca7" SSL TLS 1.3 Record Encryption RFC 8448 Example #1 @@ -3145,7 +3145,7 @@ SSL TLS 1.3 Record Encryption RFC 8448 Example #1 # 62 97 4e 1f 5a 62 92 a2 97 70 14 bd 1e 3d ea e6 # 3a ee bb 21 69 49 15 e4 # - Padding used: No (== granularity 1) -depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"a23f7054b62c94d0affafe8228ba55cbefacea42f914aa66bcab3f2b9819a8a5b46b395bd54a9a20441e2b62974e1f5a6292a2977014bd1e3deae63aeebb21694915e4" SSL TLS 1.3 Record Encryption RFC 8448 Example #2 @@ -3164,12 +3164,12 @@ SSL TLS 1.3 Record Encryption RFC 8448 Example #2 # fc c4 9c 4b f2 e5 f0 a2 1c 00 47 c2 ab f3 32 54 # 0d d0 32 e1 67 c2 95 5d # - Padding used: No (== granularity 1) -depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"2e937e11ef4ac740e538ad36005fc4a46932fc3225d05f82aa1b36e30efaf97d90e6dffc602dcb501a59a8fcc49c4bf2e5f0a21c0047c2abf332540dd032e167c2955d" SSL TLS 1.3 Key schedule: Application secrets derivation helper # Vector from RFC 8448 -depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:PSA_WANT_ALG_SHA_256 +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:PSA_WANT_ALG_SHA_256:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED ssl_tls13_derive_application_secrets:PSA_ALG_SHA_256:"e2d32d4ed66dd37897a0e80c84107503ce58bf8aad4cb55a5002d77ecb890ece":"b0aeffc46a2cfe33114e6fd7d51f9f04b1ca3c497dab08934a774a9d9ad7dbf3":"2abbf2b8e381d23dbebe1dd2a7d16a8bf484cb4950d23fb7fb7fa8547062d9a1":"cc21f1bf8feb7dd5fa505bd9c4b468a9984d554a993dc49e6d285598fb672691":"3fd93d4ffddc98e64b14dd107aedf8ee4add23f4510f58a4592d0b201bee56b4" SSL TLS 1.3 Key schedule: Resumption secrets derivation helper From 84f30f2eb022aa35084ff03368c7d14770af114b Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 3 Oct 2022 09:24:23 -0400 Subject: [PATCH 0739/1028] Add missing SHA256 dependency Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index d169160de2..464ae06c50 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -5828,7 +5828,7 @@ void conf_group() } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_CACHE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_DEBUG_C:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15 */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_CACHE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_DEBUG_C:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SHA256_C */ void force_bad_session_id_len( ) { enum { BUFFSIZE = 1024 }; From 8e44139ca0e4328db54f39bfa0cd98b81492ce4c Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 3 Oct 2022 09:24:51 -0400 Subject: [PATCH 0740/1028] Add missing CURVE25519 requirements to TLS 1.3 tests Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.data | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index c344b21826..f2497ec6bb 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -2949,26 +2949,26 @@ ssl_decrypt_non_etm_cbc:MBEDTLS_CIPHER_CAMELLIA_128_CBC:MBEDTLS_MD_SHA384:0:255 SSL TLS 1.3 Key schedule: Secret evolution #1 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Initial secret to Early Secret -depends_on:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED ssl_tls13_key_evolution:PSA_ALG_SHA_256:"":"":"33ad0a1c607ec03b09e6cd9893680ce210adf300aa1f2660e1b22e10f170f92a" SSL TLS 1.3 Key schedule: Secret evolution #2 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Early secret to Handshake Secret -depends_on:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED ssl_tls13_key_evolution:PSA_ALG_SHA_256:"33ad0a1c607ec03b09e6cd9893680ce210adf300aa1f2660e1b22e10f170f92a":"df4a291baa1eb7cfa6934b29b474baad2697e29f1f920dcc77c8a0a088447624":"fb9fc80689b3a5d02c33243bf69a1b1b20705588a794304a6e7120155edf149a" SSL TLS 1.3 Key schedule: Secret evolution #3 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Handshake secret to Master Secret -depends_on:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED ssl_tls13_key_evolution:PSA_ALG_SHA_256:"fb9fc80689b3a5d02c33243bf69a1b1b20705588a794304a6e7120155edf149a":"":"7f2882bb9b9a46265941653e9c2f19067118151e21d12e57a7b6aca1f8150c8d" SSL TLS 1.3 Key schedule: HKDF Expand Label #1 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Server handshake traffic secret -> Server traffic key # HKDF-Expand-Label(server_handshake_secret, "key", "", 16) -depends_on:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED ssl_tls13_hkdf_expand_label:PSA_ALG_SHA_256:"a2067265e7f0652a923d5d72ab0467c46132eeb968b6a32d311c805868548814":tls13_label_key:"":16:"844780a7acad9f980fa25c114e43402a" SSL TLS 1.3 Key schedule: HKDF Expand Label #2 @@ -3181,7 +3181,7 @@ SSL TLS 1.3 Key schedule: PSK binder # Vector from RFC 8448 # For the resumption PSK, see Section 3, 'generate resumption secret "tls13 resumption"' # For all other data, see Section 4, 'construct a ClientHello handshake message:' -depends_on:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED ssl_tls13_create_psk_binder:PSA_ALG_SHA_256:"4ecd0eb6ec3b4d87f5d6028f922ca4c5851a277fd41311c9e62d2c9492e1c4f3":MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION:"63224b2e4573f2d3454ca84b9d009a04f6be9e05711a8396473aefa01e924a14":"3add4fb2d8fdf822a0ca3cf7678ef5e88dae990141c5924d57bb6fa31b9e5f9d" SSL TLS_PRF MBEDTLS_SSL_TLS_PRF_NONE From e64bd43495fe9a5cbc4d6e94d37e6b52374daba7 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 3 Oct 2022 10:51:10 -0400 Subject: [PATCH 0741/1028] Add missing ECP and ECDH dependencies in ssl test suites Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.data | 67 +++++++++++++++++++++----------- 1 file changed, 44 insertions(+), 23 deletions(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index f2497ec6bb..eab6c862a7 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -111,53 +111,63 @@ Test moving clients handshake to state: CLIENT_HELLO move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_HELLO:1 Test moving clients handshake to state: SERVER_HELLO +depends_on:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_HELLO:1 Test moving clients handshake to state: SERVER_CERTIFICATE +depends_on:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_CERTIFICATE:1 Test moving clients handshake to state: SERVER_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_KEY_EXCHANGE:1 Test moving clients handshake to state: CERTIFICATE_REQUEST +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CERTIFICATE_REQUEST:1 Test moving clients handshake to state: SERVER_HELLO_DONE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_HELLO_DONE:1 Test moving clients handshake to state: CLIENT_CERTIFICATE +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_CERTIFICATE:1 Test moving clients handshake to state: CLIENT_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_KEY_EXCHANGE:1 Test moving clients handshake to state: CERTIFICATE_VERIFY +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CERTIFICATE_VERIFY:1 Test moving clients handshake to state: CLIENT_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC:1 Test moving clients handshake to state: CLIENT_FINISHED +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_FINISHED:1 Test moving clients handshake to state: SERVER_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC:1 Test moving clients handshake to state: SERVER_FINISHED +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_FINISHED:1 Test moving clients handshake to state: FLUSH_BUFFERS +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_FLUSH_BUFFERS:1 Test moving clients handshake to state: HANDSHAKE_WRAPUP +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_HANDSHAKE_WRAPUP:1 Test moving clients handshake to state: HANDSHAKE_OVER +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_HANDSHAKE_OVER:1 Test moving servers handshake to state: HELLO_REQUEST @@ -167,54 +177,63 @@ Test moving servers handshake to state: CLIENT_HELLO move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_HELLO:1 Test moving servers handshake to state: SERVER_HELLO +depends_on:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_HELLO:1 Test moving servers handshake to state: SERVER_CERTIFICATE +depends_on:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_CERTIFICATE:1 Test moving servers handshake to state: SERVER_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_KEY_EXCHANGE:1 Test moving servers handshake to state: CERTIFICATE_REQUEST +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CERTIFICATE_REQUEST:1 Test moving servers handshake to state: SERVER_HELLO_DONE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_HELLO_DONE:1 Test moving servers handshake to state: CLIENT_CERTIFICATE +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_CERTIFICATE:1 Test moving servers handshake to state: CLIENT_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_KEY_EXCHANGE:1 Test moving servers handshake to state: CERTIFICATE_VERIFY +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CERTIFICATE_VERIFY:1 Test moving servers handshake to state: CLIENT_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC:1 Test moving servers handshake to state: CLIENT_FINISHED +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_FINISHED:1 Test moving servers handshake to state: SERVER_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC:1 Test moving servers handshake to state: SERVER_FINISHED +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_FINISHED:1 Test moving servers handshake to state: FLUSH_BUFFERS -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_FLUSH_BUFFERS:1 Test moving servers handshake to state: HANDSHAKE_WRAPUP +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_HANDSHAKE_WRAPUP:1 Test moving servers handshake to state: HANDSHAKE_OVER +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_HANDSHAKE_OVER:1 Negative test moving clients ssl to state: VERIFY_REQUEST_SENT @@ -314,7 +333,7 @@ depends_on:MBEDTLS_SSL_PROTO_DTLS handshake_fragmentation:MBEDTLS_SSL_MAX_FRAG_LEN_1024:0:1 Handshake min/max version check, all -> 1.2 -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C handshake_version:0:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_TLS1_2 Handshake, select RSA-WITH-AES-256-CBC-SHA256, non-opaque @@ -458,41 +477,43 @@ depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER handshake_ciphersuite_select:"TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384":MBEDTLS_PK_ECDSA:"":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):PSA_ALG_ECDH:PSA_KEY_USAGE_SIGN_HASH:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Sending app data via TLS, MFL=512 without fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_512:400:512:1:1 Sending app data via TLS, MFL=512 with fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_512:513:1536:2:3 Sending app data via TLS, MFL=1024 without fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_1024:1000:1024:1:1 Sending app data via TLS, MFL=1024 with fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_1024:1025:5120:2:5 Sending app data via TLS, MFL=2048 without fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_2048:2000:2048:1:1 Sending app data via TLS, MFL=2048 with fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_2048:2049:8192:2:4 Sending app data via TLS, MFL=4096 without fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_4096:4000:4096:1:1 Sending app data via TLS, MFL=4096 with fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_4096:4097:12288:2:3 Sending app data via TLS without MFL and without fragmentation +depends_on:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_NONE:16001:16384:1:1 Sending app data via TLS without MFL and with fragmentation +depends_on:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_NONE:16385:100000:2:7 Sending app data via DTLS, MFL=512 without fragmentation @@ -2955,13 +2976,13 @@ ssl_tls13_key_evolution:PSA_ALG_SHA_256:"":"":"33ad0a1c607ec03b09e6cd9893680ce21 SSL TLS 1.3 Key schedule: Secret evolution #2 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Early secret to Handshake Secret -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED:MBEDTLS_ECP_C ssl_tls13_key_evolution:PSA_ALG_SHA_256:"33ad0a1c607ec03b09e6cd9893680ce210adf300aa1f2660e1b22e10f170f92a":"df4a291baa1eb7cfa6934b29b474baad2697e29f1f920dcc77c8a0a088447624":"fb9fc80689b3a5d02c33243bf69a1b1b20705588a794304a6e7120155edf149a" SSL TLS 1.3 Key schedule: Secret evolution #3 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Handshake secret to Master Secret -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED:MBEDTLS_ECP_C ssl_tls13_key_evolution:PSA_ALG_SHA_256:"fb9fc80689b3a5d02c33243bf69a1b1b20705588a794304a6e7120155edf149a":"":"7f2882bb9b9a46265941653e9c2f19067118151e21d12e57a7b6aca1f8150c8d" SSL TLS 1.3 Key schedule: HKDF Expand Label #1 @@ -3181,7 +3202,7 @@ SSL TLS 1.3 Key schedule: PSK binder # Vector from RFC 8448 # For the resumption PSK, see Section 3, 'generate resumption secret "tls13 resumption"' # For all other data, see Section 4, 'construct a ClientHello handshake message:' -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED:MBEDTLS_ECP_C ssl_tls13_create_psk_binder:PSA_ALG_SHA_256:"4ecd0eb6ec3b4d87f5d6028f922ca4c5851a277fd41311c9e62d2c9492e1c4f3":MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION:"63224b2e4573f2d3454ca84b9d009a04f6be9e05711a8396473aefa01e924a14":"3add4fb2d8fdf822a0ca3cf7678ef5e88dae990141c5924d57bb6fa31b9e5f9d" SSL TLS_PRF MBEDTLS_SSL_TLS_PRF_NONE From c19fb08dd37a58bb8a2dc99359d4a75a3abf60d4 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 3 Oct 2022 10:52:24 -0400 Subject: [PATCH 0742/1028] Add missing ECDH dependency in tls 1.3 client Signed-off-by: Andrzej Kurek --- library/ssl_tls13_client.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 2b59b4aae1..8510d8f3e6 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -379,6 +379,7 @@ static int ssl_tls13_parse_hrr_key_share_ext( mbedtls_ssl_context *ssl, const unsigned char *buf, const unsigned char *end ) { +#if defined(MBEDTLS_ECDH_C) const mbedtls_ecp_curve_info *curve_info = NULL; const unsigned char *p = buf; int selected_group; @@ -435,6 +436,12 @@ static int ssl_tls13_parse_hrr_key_share_ext( mbedtls_ssl_context *ssl, ssl->handshake->offered_group_id = selected_group; return( 0 ); +#else + (void) ssl; + (void) buf; + (void) end; + return( MBEDTLS_ERR_SSL_BAD_CONFIG ); +#endif } /* From e05b17fb85109b9eb516d8a3a72a0e643f404fd1 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 28 Sep 2022 03:17:56 -0400 Subject: [PATCH 0743/1028] Update depends.py Remove old and add new dependencies. Introduce a way to handle non-trivial problems stemming from exclusive group testing. Exclude SHA256 and SHA512, as these are tested in SHA224 and SHA384 jobs, respectively. Change config.h to mbedtls_config.h). Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 91 ++++++++++++++++++++++++++++++---------- 1 file changed, 69 insertions(+), 22 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 11af322fd6..b2a2f27b2a 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -68,7 +68,7 @@ cmd is a list of strings: a command name and its arguments.""" log_line(' '.join(cmd), prefix='+') def backup_config(options): - """Back up the library configuration file (config.h). + """Back up the library configuration file (mbedtls_config.h). If the backup file already exists, it is presumed to be the desired backup, so don't make another backup.""" if os.path.exists(options.config_backup): @@ -78,7 +78,7 @@ so don't make another backup.""" shutil.copy(options.config, options.config_backup) def restore_config(options): - """Restore the library configuration file (config.h). + """Restore the library configuration file (mbedtls_config.h). Remove the backup file if it was saved earlier.""" if options.own_backup: shutil.move(options.config_backup, options.config) @@ -88,7 +88,7 @@ Remove the backup file if it was saved earlier.""" def run_config_pl(options, args): """Run scripts/config.pl with the specified arguments.""" cmd = ['scripts/config.pl'] - if options.config != 'include/mbedtls/config.h': + if options.config != 'include/mbedtls/mbedtls_config.h': cmd += ['--file', options.config] cmd += args log_command(cmd) @@ -123,7 +123,7 @@ If what is False, announce that the job has failed.''' log_line('starting ' + self.name) def set_reference_config(self, options): - """Change the library configuration file (config.h) to the reference state. + """Change the library configuration file (mbedtls_config.h) to the reference state. The reference state is the one from which the tested configurations are derived.""" # Turn off memory management options that are not relevant to @@ -181,22 +181,19 @@ ssl_pre_1_2_dependencies = ['MBEDTLS_SSL_CBC_RECORD_SPLITTING', # to extract automatically. reverse_dependencies = { 'MBEDTLS_AES_C': ['MBEDTLS_CTR_DRBG_C', - 'MBEDTLS_NIST_KW_C', - 'MBEDTLS_PSA_CRYPTO_STORAGE_C', - 'MBEDTLS_PSA_CRYPTO_STORAGE_FILE_C', - 'MBEDTLS_PSA_CRYPTO_C'], + 'MBEDTLS_NIST_KW_C'], 'MBEDTLS_CHACHA20_C': ['MBEDTLS_CHACHAPOLY_C'], - 'MBEDTLS_ECDSA_C': ['MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED'], + 'MBEDTLS_ECDSA_C': ['MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED'], 'MBEDTLS_ECP_C': ['MBEDTLS_ECDSA_C', 'MBEDTLS_ECDH_C', 'MBEDTLS_ECJPAKE_C', - 'MBEDTLS_ECP_RESTARTABLE', - 'MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED'], + 'MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], 'MBEDTLS_ECP_DP_SECP256R1_ENABLED': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], 'MBEDTLS_MD5_C': ssl_pre_1_2_dependencies, 'MBEDTLS_PKCS1_V21': ['MBEDTLS_X509_RSASSA_PSS_SUPPORT'], @@ -208,13 +205,59 @@ reverse_dependencies = { 'MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED'], + 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED'], 'MBEDTLS_SHA1_C': ssl_pre_1_2_dependencies, 'MBEDTLS_SHA256_C': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', - 'MBEDTLS_ENTROPY_FORCE_SHA256'], - 'MBEDTLS_X509_RSASSA_PSS_SUPPORT': [], + 'MBEDTLS_ENTROPY_FORCE_SHA256', + 'MBEDTLS_SHA224_C', + 'MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT', + 'MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY', + 'MBEDTLS_SSL_PROTO_TLS1_3'], + 'MBEDTLS_SHA512_C': ['MBEDTLS_SHA384_C', + 'MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT', + 'MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY'], + 'MBEDTLS_SHA224_C': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', + 'MBEDTLS_ENTROPY_FORCE_SHA256', + 'MBEDTLS_SHA256_C', + 'MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT', + 'MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY'], + 'MBEDTLS_SHA384_C': ['MBEDTLS_SSL_PROTO_TLS1_3'], + 'MBEDTLS_X509_RSASSA_PSS_SUPPORT': [] } +# If an option is tested in an exclusive test, alter the following defines. +# These are not neccesarily dependencies, but just minimal required changes +# if a given define is the only one enabled from an exclusive group. +exclusive_groups = { + 'MBEDTLS_SHA224_C': ['MBEDTLS_SHA256_C'], + 'MBEDTLS_SHA384_C': ['MBEDTLS_SHA512_C'], + 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['!MBEDTLS_ECDSA_C', + '!MBEDTLS_ECDSA_DETERMINISTIC', + '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', + '!MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', + '!MBEDTLS_ECJPAKE_C', + '!MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], + 'MBEDTLS_ECP_DP_CURVE25519_ENABLED': ['!MBEDTLS_ECDSA_C', + '!MBEDTLS_ECDSA_DETERMINISTIC', + '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', + '!MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', + '!MBEDTLS_ECJPAKE_C', + '!MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], + 'MBEDTLS_ARIA_C': ['!MBEDTLS_CMAC_C'], + 'MBEDTLS_CAMELLIA_C': ['!MBEDTLS_CMAC_C'], + 'MBEDTLS_CHACHA20_C': ['!MBEDTLS_CMAC_C', '!MBEDTLS_CCM_C', '!MBEDTLS_GCM_C'], + 'MBEDTLS_DES_C': ['!MBEDTLS_CCM_C', '!MBEDTLS_GCM_C'], +} +def handle_exclusive_groups(config_settings, symbol): + """For every symbol tested in an exclusive group check if there are other +defines to be altered. """ + for dep in exclusive_groups.get(symbol, []): + unset = dep.startswith('!') + if unset: + dep=dep[1:] + config_settings[dep] = not unset + def turn_off_dependencies(config_settings): """For every option turned off config_settings, also turn off what depends on it. An option O is turned off if config_settings[O] is False.""" @@ -252,6 +295,8 @@ would match this regular expression.""" continue config_settings = base_config_settings.copy() config_settings[symbol] = not invert + if not invert: + handle_exclusive_groups(config_settings, symbol) turn_off_dependencies(config_settings) job = Job(description, config_settings, commands) self.jobs.append(job) @@ -285,7 +330,7 @@ class CipherInfo: class DomainData: """Collect data about the library.""" def collect_config_symbols(self, options): - """Read the list of settings from config.h. + """Read the list of settings from mbedtls_config.h. Return them in a generator.""" with open(options.config) as config_file: rx = re.compile(r'\s*(?://\s*)?#define\s+(\w+)\s*(?:$|/[/*])') @@ -295,7 +340,7 @@ Return them in a generator.""" yield m.group(1) def config_symbols_matching(self, regexp): - """List the config.h settings matching regexp.""" + """List the mbedtls_config.h settings matching regexp.""" return [symbol for symbol in self.all_config_symbols if re.match(regexp, symbol)] @@ -312,7 +357,8 @@ Return them in a generator.""" key_exchange_symbols = self.config_symbols_matching(r'MBEDTLS_KEY_EXCHANGE_\w+_ENABLED\Z') # Find cipher IDs (block permutations and stream ciphers --- chaining # and padding modes are exercised separately) information by parsing - # cipher.h, as the information is not readily available in config.h. + # cipher.h, as the information is not readily available in mbedtls_config.h. + cipher_info = CipherInfo(options) # Find block cipher chaining and padding mode enabling macros by name. cipher_chaining_symbols = self.config_symbols_matching(r'MBEDTLS_CIPHER_MODE_\w+\Z') @@ -328,9 +374,10 @@ Return them in a generator.""" # Elliptic curves. Run the test suites. 'curves': ExclusiveDomain(curve_symbols, build_and_test), # Hash algorithms. Exclude configurations with only one - # hash which is obsolete. Run the test suites. + # hash which is obsolete. Run the test suites. Exclude + # SHA512 and SHA256, as these are tested with SHA384 and SHA224. 'hashes': ExclusiveDomain(hash_symbols, build_and_test, - exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_)'), + exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_|SHA256_|SHA512_)|!MBEDTLS_(SHA256_|SHA512_)'), # Key exchange types. Only build the library and the sample # programs. 'kex': ExclusiveDomain(key_exchange_symbols, @@ -415,7 +462,7 @@ if __name__ == '__main__': choices=['always', 'auto', 'never'], default='auto') parser.add_argument('-c', '--config', metavar='FILE', help='Configuration file to modify', - default='include/mbedtls/config.h') + default='include/mbedtls/mbedtls_config.h') parser.add_argument('-C', '--directory', metavar='DIR', help='Change to this directory before anything else', default='.') @@ -435,7 +482,7 @@ if __name__ == '__main__': help='Command to run instead of make (e.g. gmake)', action='store', default='make') parser.add_argument('domains', metavar='DOMAIN', nargs='*', - help='The domain(s) to test (default: all)', + help='The domain(s) to test (default: all). This can be also a list of jobs to run.', default=True) options = parser.parse_args() os.chdir(options.directory) From 3cca0c8e68a6d548288c210fbeae121582ffc766 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 4 Oct 2022 10:38:28 -0400 Subject: [PATCH 0744/1028] Add an all.sh component running depends.pl Signed-off-by: Andrzej Kurek --- tests/scripts/all.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index f1b2f0e29f..93dbfb968e 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1777,6 +1777,11 @@ component_build_key_exchanges () { tests/scripts/key-exchanges.pl } +component_test_depends () { + msg "test/build: depends.py (gcc)" # ~ 15 min + tests/scripts/depends.py +} + component_test_make_cxx () { msg "build: Unix make, full, gcc + g++" scripts/config.py full From 0e8b2d74f0fa7c30ce30ceedd6cadfba25b4cb44 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 4 Oct 2022 11:14:59 -0400 Subject: [PATCH 0745/1028] Fix python formatting and indentation Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index b2a2f27b2a..79a43dd6c9 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -233,17 +233,17 @@ exclusive_groups = { 'MBEDTLS_SHA224_C': ['MBEDTLS_SHA256_C'], 'MBEDTLS_SHA384_C': ['MBEDTLS_SHA512_C'], 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['!MBEDTLS_ECDSA_C', - '!MBEDTLS_ECDSA_DETERMINISTIC', - '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', - '!MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', - '!MBEDTLS_ECJPAKE_C', - '!MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], + '!MBEDTLS_ECDSA_DETERMINISTIC', + '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', + '!MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', + '!MBEDTLS_ECJPAKE_C', + '!MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], 'MBEDTLS_ECP_DP_CURVE25519_ENABLED': ['!MBEDTLS_ECDSA_C', - '!MBEDTLS_ECDSA_DETERMINISTIC', - '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', - '!MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', - '!MBEDTLS_ECJPAKE_C', - '!MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], + '!MBEDTLS_ECDSA_DETERMINISTIC', + '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', + '!MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', + '!MBEDTLS_ECJPAKE_C', + '!MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], 'MBEDTLS_ARIA_C': ['!MBEDTLS_CMAC_C'], 'MBEDTLS_CAMELLIA_C': ['!MBEDTLS_CMAC_C'], 'MBEDTLS_CHACHA20_C': ['!MBEDTLS_CMAC_C', '!MBEDTLS_CCM_C', '!MBEDTLS_GCM_C'], @@ -255,7 +255,7 @@ defines to be altered. """ for dep in exclusive_groups.get(symbol, []): unset = dep.startswith('!') if unset: - dep=dep[1:] + dep = dep[1:] config_settings[dep] = not unset def turn_off_dependencies(config_settings): From 3322c220870ac6e65a043e5de8ac7cf0f8ebf104 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 4 Oct 2022 15:02:41 -0400 Subject: [PATCH 0746/1028] Improve depends.py structrue Apply most improvements suggested by pylint. Use config.py instead of config.pl. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 105 +++++++++++++++++++-------------------- 1 file changed, 52 insertions(+), 53 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 79a43dd6c9..4c47778b09 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -28,7 +28,7 @@ import subprocess import sys import traceback -class Colors: +class Colors: # pylint: disable=too-few-public-methods """Minimalistic support for colored output. Each field of an object of this class is either None if colored output is not possible or not desired, or a pair of strings (start, stop) such @@ -39,6 +39,7 @@ stop switches the text color back to the default.""" bold_red = None bold_green = None def __init__(self, options=None): + """Initialize color profile according to passed options.""" if not options or options.color in ['no', 'never']: want_color = False elif options.color in ['yes', 'always']: @@ -56,7 +57,7 @@ NO_COLORS = Colors(None) def log_line(text, prefix='depends.py:', suffix='', color=None): """Print a status message.""" - if color != None: + if color is not None: prefix = color[0] + prefix suffix = suffix + color[1] sys.stderr.write(prefix + ' ' + text + suffix + '\n') @@ -86,14 +87,35 @@ Remove the backup file if it was saved earlier.""" shutil.copy(options.config_backup, options.config) def run_config_pl(options, args): - """Run scripts/config.pl with the specified arguments.""" - cmd = ['scripts/config.pl'] + """Run scripts/config.py with the specified arguments.""" + cmd = ['scripts/config.py'] if options.config != 'include/mbedtls/mbedtls_config.h': cmd += ['--file', options.config] cmd += args log_command(cmd) subprocess.check_call(cmd) +def set_reference_config(options): + """Change the library configuration file (mbedtls_config.h) to the reference state. +The reference state is the one from which the tested configurations are +derived.""" + # Turn off memory management options that are not relevant to + # the tests and slow them down. + run_config_pl(options, ['full']) + run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BACKTRACE']) + run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BUFFER_ALLOC_C']) + run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_DEBUG']) + +def collect_config_symbols(options): + """Read the list of settings from mbedtls_config.h. +Return them in a generator.""" + with open(options.config, encoding="utf-8") as config_file: + rx = re.compile(r'\s*(?://\s*)?#define\s+(\w+)\s*(?:$|/[/*])') + for line in config_file: + m = re.match(rx, line) + if m: + yield m.group(1) + class Job: """A job builds the library in a specific configuration and runs some tests.""" def __init__(self, name, config_settings, commands): @@ -122,21 +144,10 @@ If what is False, announce that the job has failed.''' else: log_line('starting ' + self.name) - def set_reference_config(self, options): - """Change the library configuration file (mbedtls_config.h) to the reference state. - The reference state is the one from which the tested configurations are - derived.""" - # Turn off memory management options that are not relevant to - # the tests and slow them down. - run_config_pl(options, ['full']) - run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BACKTRACE']) - run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BUFFER_ALLOC_C']) - run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_DEBUG']) - def configure(self, options): '''Set library configuration options as required for the job. config_file_name indicates which file to modify.''' - self.set_reference_config(options) + set_reference_config(options) for key, value in sorted(self.config_settings.items()): if value is True: args = ['set', key] @@ -267,11 +278,7 @@ An option O is turned off if config_settings[O] is False.""" for dep in reverse_dependencies.get(key, []): config_settings[dep] = False -class Domain: - """A domain is a set of jobs that all relate to a particular configuration aspect.""" - pass - -class ExclusiveDomain(Domain): +class ExclusiveDomain: # pylint: disable=too-few-public-methods """A domain consisting of a set of conceptually-equivalent settings. Establish a list of configuration symbols. For each symbol, run a test job with this symbol set and the others unset, and a test job with this symbol @@ -301,7 +308,7 @@ would match this regular expression.""" job = Job(description, config_settings, commands) self.jobs.append(job) -class ComplementaryDomain: +class ComplementaryDomain: # pylint: disable=too-few-public-methods """A domain consisting of a set of loosely-related settings. Establish a list of configuration symbols. For each symbol, run a test job with this symbol unset.""" @@ -317,28 +324,18 @@ Each job runs the specified commands.""" job = Job(description, config_settings, commands) self.jobs.append(job) -class CipherInfo: +class CipherInfo: # pylint: disable=too-few-public-methods """Collect data about cipher.h.""" - def __init__(self, options): + def __init__(self): self.base_symbols = set() - with open('include/mbedtls/cipher.h') as fh: + with open('include/mbedtls/cipher.h', encoding="utf-8") as fh: for line in fh: m = re.match(r' *MBEDTLS_CIPHER_ID_(\w+),', line) if m and m.group(1) not in ['NONE', 'NULL', '3DES']: self.base_symbols.add('MBEDTLS_' + m.group(1) + '_C') class DomainData: - """Collect data about the library.""" - def collect_config_symbols(self, options): - """Read the list of settings from mbedtls_config.h. -Return them in a generator.""" - with open(options.config) as config_file: - rx = re.compile(r'\s*(?://\s*)?#define\s+(\w+)\s*(?:$|/[/*])') - for line in config_file: - m = re.match(rx, line) - if m: - yield m.group(1) - + """A container for domains and jobs, used to structurize testing.""" def config_symbols_matching(self, regexp): """List the mbedtls_config.h settings matching regexp.""" return [symbol for symbol in self.all_config_symbols @@ -348,7 +345,7 @@ Return them in a generator.""" """Gather data about the library and establish a list of domains to test.""" build_command = [options.make_command, 'CFLAGS=-Werror'] build_and_test = [build_command, [options.make_command, 'test']] - self.all_config_symbols = set(self.collect_config_symbols(options)) + self.all_config_symbols = set(collect_config_symbols(options)) # Find hash modules by name. hash_symbols = self.config_symbols_matching(r'MBEDTLS_(MD|RIPEMD|SHA)[0-9]+_C\Z') # Find elliptic curve enabling macros by name. @@ -359,7 +356,7 @@ Return them in a generator.""" # and padding modes are exercised separately) information by parsing # cipher.h, as the information is not readily available in mbedtls_config.h. - cipher_info = CipherInfo(options) + cipher_info = CipherInfo() # Find block cipher chaining and padding mode enabling macros by name. cipher_chaining_symbols = self.config_symbols_matching(r'MBEDTLS_CIPHER_MODE_\w+\Z') cipher_padding_symbols = self.config_symbols_matching(r'MBEDTLS_CIPHER_PADDING_\w+\Z') @@ -377,7 +374,8 @@ Return them in a generator.""" # hash which is obsolete. Run the test suites. Exclude # SHA512 and SHA256, as these are tested with SHA384 and SHA224. 'hashes': ExclusiveDomain(hash_symbols, build_and_test, - exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_|SHA256_|SHA512_)|!MBEDTLS_(SHA256_|SHA512_)'), + exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_|SHA256_|SHA512_)\ + |!MBEDTLS_(SHA256_|SHA512_)'), # Key exchange types. Only build the library and the sample # programs. 'kex': ExclusiveDomain(key_exchange_symbols, @@ -413,7 +411,7 @@ def run(options, job, colors=NO_COLORS): job.announce(colors, success) return success -def main(options, domain_data): +def run_tests(options, domain_data): """Run the desired jobs. domain_data should be a DomainData instance that describes the available domains and jobs. @@ -453,8 +451,7 @@ Run the jobs listed in options.domains.""" else: return True - -if __name__ == '__main__': +def main(): try: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument('--color', metavar='WHEN', @@ -482,22 +479,24 @@ if __name__ == '__main__': help='Command to run instead of make (e.g. gmake)', action='store', default='make') parser.add_argument('domains', metavar='DOMAIN', nargs='*', - help='The domain(s) to test (default: all). This can be also a list of jobs to run.', + help='The domain(s) to test (default: all). This can \ + be also a list of jobs to run.', default=True) options = parser.parse_args() os.chdir(options.directory) domain_data = DomainData(options) - if options.domains == True: + if options.domains is True: options.domains = sorted(domain_data.domains.keys()) if options.list: - for what in options.list: - for key in sorted(getattr(domain_data, what).keys()): - print(key) - exit(0) + for arg in options.list: + for domain_name in sorted(getattr(domain_data, arg).keys()): + print(domain_name) + sys.exit(0) else: - sys.exit(0 if main(options, domain_data) else 1) - except SystemExit: - raise - except: + sys.exit(0 if run_tests(options, domain_data) else 1) + except Exception: # pylint: disable=broad-except traceback.print_exc() - exit(3) + sys.exit(3) + +if __name__ == '__main__': + main() From 202932f521372a78da629d552ccab3758bcd1761 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 4 Oct 2022 16:22:22 -0400 Subject: [PATCH 0747/1028] Use upper case for constants in depends.py Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 4c47778b09..feb88f2434 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -180,17 +180,17 @@ and subsequent commands are tests that cannot run if the build failed).''' # SSL/TLS versions up to 1.1 and corresponding options. These require # both MD5 and SHA-1. -ssl_pre_1_2_dependencies = ['MBEDTLS_SSL_CBC_RECORD_SPLITTING', +SSL_PRE_1_2_DEPENDENCIES = ['MBEDTLS_SSL_CBC_RECORD_SPLITTING', 'MBEDTLS_SSL_PROTO_SSL3', 'MBEDTLS_SSL_PROTO_TLS1', 'MBEDTLS_SSL_PROTO_TLS1_1'] # If the configuration option A requires B, make sure that -# B in reverse_dependencies[A]. +# B in REVERSE_DEPENDENCIES[A]. # All the information here should be contained in check_config.h. This # file includes a copy because it changes rarely and it would be a pain # to extract automatically. -reverse_dependencies = { +REVERSE_DEPENDENCIES = { 'MBEDTLS_AES_C': ['MBEDTLS_CTR_DRBG_C', 'MBEDTLS_NIST_KW_C'], 'MBEDTLS_CHACHA20_C': ['MBEDTLS_CHACHAPOLY_C'], @@ -206,7 +206,7 @@ reverse_dependencies = { 'MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], 'MBEDTLS_ECP_DP_SECP256R1_ENABLED': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], - 'MBEDTLS_MD5_C': ssl_pre_1_2_dependencies, + 'MBEDTLS_MD5_C': SSL_PRE_1_2_DEPENDENCIES, 'MBEDTLS_PKCS1_V21': ['MBEDTLS_X509_RSASSA_PSS_SUPPORT'], 'MBEDTLS_PKCS1_V15': ['MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', @@ -218,7 +218,7 @@ reverse_dependencies = { 'MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED', 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED'], - 'MBEDTLS_SHA1_C': ssl_pre_1_2_dependencies, + 'MBEDTLS_SHA1_C': SSL_PRE_1_2_DEPENDENCIES, 'MBEDTLS_SHA256_C': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', 'MBEDTLS_ENTROPY_FORCE_SHA256', 'MBEDTLS_SHA224_C', @@ -240,7 +240,7 @@ reverse_dependencies = { # If an option is tested in an exclusive test, alter the following defines. # These are not neccesarily dependencies, but just minimal required changes # if a given define is the only one enabled from an exclusive group. -exclusive_groups = { +EXCLUSIVE_GROUPS = { 'MBEDTLS_SHA224_C': ['MBEDTLS_SHA256_C'], 'MBEDTLS_SHA384_C': ['MBEDTLS_SHA512_C'], 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['!MBEDTLS_ECDSA_C', @@ -263,7 +263,7 @@ exclusive_groups = { def handle_exclusive_groups(config_settings, symbol): """For every symbol tested in an exclusive group check if there are other defines to be altered. """ - for dep in exclusive_groups.get(symbol, []): + for dep in EXCLUSIVE_GROUPS.get(symbol, []): unset = dep.startswith('!') if unset: dep = dep[1:] @@ -275,7 +275,7 @@ An option O is turned off if config_settings[O] is False.""" for key, value in sorted(config_settings.items()): if value is not False: continue - for dep in reverse_dependencies.get(key, []): + for dep in REVERSE_DEPENDENCIES.get(key, []): config_settings[dep] = False class ExclusiveDomain: # pylint: disable=too-few-public-methods From fcbd2acbc2faf7e3e651551c2ea130bea15a4b58 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 5 Oct 2022 09:14:07 -0400 Subject: [PATCH 0748/1028] Split depends.py all.sh job into seven Signed-off-by: Andrzej Kurek --- tests/scripts/all.sh | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 93dbfb968e..07adc15232 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1777,9 +1777,39 @@ component_build_key_exchanges () { tests/scripts/key-exchanges.pl } -component_test_depends () { - msg "test/build: depends.py (gcc)" # ~ 15 min - tests/scripts/depends.py +component_test_depends_py_cipher_id () { + msg "test/build: depends.py cipher_id (gcc)" + tests/scripts/depends.py cipher_id +} + +component_test_depends_py_cipher_chaining () { + msg "test/build: depends.py cipher_chaining (gcc)" + tests/scripts/depends.py cipher_chaining +} + +component_test_depends_py_cipher_padding () { + msg "test/build: depends.py cipher_padding (gcc)" + tests/scripts/depends.py cipher_padding +} + +component_test_depends_py_curves () { + msg "test/build: depends.py curves (gcc)" + tests/scripts/depends.py curves +} + +component_test_depends_py_hashes () { + msg "test/build: depends.py hashes (gcc)" + tests/scripts/depends.py hashes +} + +component_test_depends_py_kex () { + msg "test/build: depends.py kex (gcc)" + tests/scripts/depends.py kex +} + +component_test_depends_py_pkalgs () { + msg "test/build: depends.py pkalgs (gcc)" + tests/scripts/depends.py pkalgs } component_test_make_cxx () { From fe469496862789a9eb3b20ff15a9021b06671a21 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 6 Oct 2022 16:57:38 -0400 Subject: [PATCH 0749/1028] depends.py: disable part of the test jobs Disable exclusive jobs that run with a single config disabled. A lot more bugs should be found by running jobs with only one config of a family enabled. This will also lessen the burden on the CI. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index feb88f2434..859cad14a8 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -281,32 +281,28 @@ An option O is turned off if config_settings[O] is False.""" class ExclusiveDomain: # pylint: disable=too-few-public-methods """A domain consisting of a set of conceptually-equivalent settings. Establish a list of configuration symbols. For each symbol, run a test job -with this symbol set and the others unset, and a test job with this symbol -unset and the others set.""" +with this symbol set and the others unset.""" def __init__(self, symbols, commands, exclude=None): """Build a domain for the specified list of configuration symbols. -The domain contains two sets of jobs: jobs that enable one of the elements -of symbols and disable the others, and jobs that disable one of the elements -of symbols and enable the others. +The domain contains a set of jobs that enable one of the elements +of symbols and disable the others. Each job runs the specified commands. If exclude is a regular expression, skip generated jobs whose description would match this regular expression.""" self.jobs = [] - for invert in [False, True]: - base_config_settings = {} - for symbol in symbols: - base_config_settings[symbol] = invert - for symbol in symbols: - description = '!' + symbol if invert else symbol - if exclude and re.match(exclude, description): - continue - config_settings = base_config_settings.copy() - config_settings[symbol] = not invert - if not invert: - handle_exclusive_groups(config_settings, symbol) - turn_off_dependencies(config_settings) - job = Job(description, config_settings, commands) - self.jobs.append(job) + base_config_settings = {} + for symbol in symbols: + base_config_settings[symbol] = False + for symbol in symbols: + description = symbol + if exclude and re.match(exclude, description): + continue + config_settings = base_config_settings.copy() + config_settings[symbol] = True + handle_exclusive_groups(config_settings, symbol) + turn_off_dependencies(config_settings) + job = Job(description, config_settings, commands) + self.jobs.append(job) class ComplementaryDomain: # pylint: disable=too-few-public-methods """A domain consisting of a set of loosely-related settings. From 228b12ce54cbe9994fb255bb176869510aec4db3 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 6 Oct 2022 18:52:44 -0400 Subject: [PATCH 0750/1028] Rework depends.py to run more tests with hashes The test coverage reduction introduced in dc25cee lowered the coverage of hash tests due to intertwining dependencies. This commit introduces a new class for building a domain using both the complementary and exclusive classes. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 859cad14a8..2d7750f77e 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -278,7 +278,13 @@ An option O is turned off if config_settings[O] is False.""" for dep in REVERSE_DEPENDENCIES.get(key, []): config_settings[dep] = False -class ExclusiveDomain: # pylint: disable=too-few-public-methods +class BaseDomain: # pylint: disable=too-few-public-methods, unused-argument + """A base class for all domains.""" + def __init__(self, symbols, commands, exclude): + """Initialize the jobs container""" + self.jobs = [] + +class ExclusiveDomain(BaseDomain): # pylint: disable=too-few-public-methods """A domain consisting of a set of conceptually-equivalent settings. Establish a list of configuration symbols. For each symbol, run a test job with this symbol set and the others unset.""" @@ -289,7 +295,7 @@ of symbols and disable the others. Each job runs the specified commands. If exclude is a regular expression, skip generated jobs whose description would match this regular expression.""" - self.jobs = [] + super().__init__(symbols, commands, exclude) base_config_settings = {} for symbol in symbols: base_config_settings[symbol] = False @@ -304,22 +310,29 @@ would match this regular expression.""" job = Job(description, config_settings, commands) self.jobs.append(job) -class ComplementaryDomain: # pylint: disable=too-few-public-methods +class ComplementaryDomain(BaseDomain): # pylint: disable=too-few-public-methods """A domain consisting of a set of loosely-related settings. Establish a list of configuration symbols. For each symbol, run a test job with this symbol unset.""" - def __init__(self, symbols, commands): + def __init__(self, symbols, commands, exclude=None): """Build a domain for the specified list of configuration symbols. Each job in the domain disables one of the specified symbols. Each job runs the specified commands.""" - self.jobs = [] + super().__init__(symbols, commands, exclude) for symbol in symbols: description = '!' + symbol + if exclude and re.match(exclude, description): + continue config_settings = {symbol: False} turn_off_dependencies(config_settings) job = Job(description, config_settings, commands) self.jobs.append(job) +class DualDomain(ExclusiveDomain, ComplementaryDomain): # pylint: disable=too-few-public-methods + """A domain that contains both the ExclusiveDomain and BaseDomain tests""" + def __init__(self, symbols, commands, exclude=None): + super().__init__(symbols=symbols, commands=commands, exclude=exclude) + class CipherInfo: # pylint: disable=too-few-public-methods """Collect data about cipher.h.""" def __init__(self): @@ -369,9 +382,9 @@ class DomainData: # Hash algorithms. Exclude configurations with only one # hash which is obsolete. Run the test suites. Exclude # SHA512 and SHA256, as these are tested with SHA384 and SHA224. - 'hashes': ExclusiveDomain(hash_symbols, build_and_test, - exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_|SHA256_|SHA512_)\ - |!MBEDTLS_(SHA256_|SHA512_)'), + 'hashes': DualDomain(hash_symbols, build_and_test, + exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_|SHA256_|SHA512_)' \ + '|!MBEDTLS_(SHA256_|SHA512_)'), # Key exchange types. Only build the library and the sample # programs. 'kex': ExclusiveDomain(key_exchange_symbols, From eabeb30c65d5f31856af46100ffe4c9fc2bd843b Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 17 Oct 2022 07:52:51 -0400 Subject: [PATCH 0751/1028] Fix SHA512 vs SHA384 dependencies When building SHA512 without SHA384, there are some code paths that resulted in unused variables or usage of undefined code. This commit fixes that. Signed-off-by: Andrzej Kurek --- library/ssl_cookie.c | 4 ++-- library/ssl_tls.c | 24 ++++++++++++++++++------ programs/fuzz/fuzz_dtlsserver.c | 10 +++++++--- tests/scripts/depends.py | 1 + 4 files changed, 28 insertions(+), 11 deletions(-) diff --git a/library/ssl_cookie.c b/library/ssl_cookie.c index 190c0f0667..3f9bf87b42 100644 --- a/library/ssl_cookie.c +++ b/library/ssl_cookie.c @@ -38,8 +38,8 @@ #include /* - * If DTLS is in use, then at least one of SHA-1, SHA-256, SHA-512 is - * available. Try SHA-256 first, 512 wastes resources + * If DTLS is in use, then at least one of SHA-1, SHA-256, SHA-384 is + * available. Try SHA-256 first, 384 wastes resources */ #if defined(MBEDTLS_HAS_ALG_SHA_224_VIA_LOWLEVEL_OR_PSA) #define COOKIE_MD MBEDTLS_MD_SHA224 diff --git a/library/ssl_tls.c b/library/ssl_tls.c index eee0dadacf..4678f53864 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -604,6 +604,12 @@ static void ssl_update_checksum_start( mbedtls_ssl_context *ssl, mbedtls_sha512_update( &ssl->handshake->fin_sha384, buf, len ); #endif #endif +#if !defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ + !defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + (void) ssl; + (void) buf; + (void) len; +#endif } #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) @@ -5165,6 +5171,10 @@ int mbedtls_ssl_get_handshake_transcript( mbedtls_ssl_context *ssl, goto exit; exit: +#if !defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ + !defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + (void) ssl; +#endif return( psa_ssl_status_to_mbedtls( status ) ); } #else /* MBEDTLS_USE_PSA_CRYPTO */ @@ -5437,6 +5447,8 @@ static psa_status_t setup_psa_key_derivation( psa_key_derivation_operation_t* de return( PSA_SUCCESS ); } +#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_CHECK_RETURN_CRITICAL static int tls_prf_generic( mbedtls_md_type_t md_type, const unsigned char *secret, size_t slen, @@ -5511,7 +5523,7 @@ static int tls_prf_generic( mbedtls_md_type_t md_type, return( 0 ); } - +#endif #else /* MBEDTLS_USE_PSA_CRYPTO */ MBEDTLS_CHECK_RETURN_CRITICAL @@ -5917,7 +5929,10 @@ int mbedtls_ssl_set_calc_verify_md( mbedtls_ssl_context *ssl, int md ) default: return( -1 ); } - +#if !defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ + !defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + (void) ssl; +#endif return( 0 ); } @@ -7436,8 +7451,6 @@ exit: * Helper to get TLS 1.2 PRF from ciphersuite * (Duplicates bits of logic from ssl_set_handshake_prfs().) */ -#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ - defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) static tls_prf_fn ssl_tls12prf_from_cs( int ciphersuite_id ) { const mbedtls_ssl_ciphersuite_t * const ciphersuite_info = @@ -7457,10 +7470,9 @@ static tls_prf_fn ssl_tls12prf_from_cs( int ciphersuite_id ) !defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) (void) ciphersuite_info; #endif + return( NULL ); } -#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA || - MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ static mbedtls_tls_prf_types tls_prf_get_type( mbedtls_ssl_tls_prf_cb *tls_prf ) diff --git a/programs/fuzz/fuzz_dtlsserver.c b/programs/fuzz/fuzz_dtlsserver.c index 1aa757c376..17caab211c 100644 --- a/programs/fuzz/fuzz_dtlsserver.c +++ b/programs/fuzz/fuzz_dtlsserver.c @@ -11,12 +11,14 @@ #include "mbedtls/ctr_drbg.h" #include "mbedtls/timing.h" #include "mbedtls/ssl_cookie.h" - +#include "mbedtls/legacy_or_psa.h" #if defined(MBEDTLS_SSL_SRV_C) && \ defined(MBEDTLS_ENTROPY_C) && \ defined(MBEDTLS_CTR_DRBG_C) && \ - defined(MBEDTLS_TIMING_C) + defined(MBEDTLS_TIMING_C) && \ + ( defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) ) const char *pers = "fuzz_dtlsserver"; const unsigned char client_ip[4] = {0x7F, 0, 0, 1}; static int initialized = 0; @@ -32,7 +34,9 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { defined(MBEDTLS_SSL_SRV_C) && \ defined(MBEDTLS_ENTROPY_C) && \ defined(MBEDTLS_CTR_DRBG_C) && \ - defined(MBEDTLS_TIMING_C) + defined(MBEDTLS_TIMING_C) && \ + ( defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) ) int ret; size_t len; mbedtls_ssl_context ssl; diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 2d7750f77e..409d144136 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -243,6 +243,7 @@ REVERSE_DEPENDENCIES = { EXCLUSIVE_GROUPS = { 'MBEDTLS_SHA224_C': ['MBEDTLS_SHA256_C'], 'MBEDTLS_SHA384_C': ['MBEDTLS_SHA512_C'], + 'MBEDTLS_SHA512_C': ['!MBEDTLS_SSL_COOKIE_C'], 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['!MBEDTLS_ECDSA_C', '!MBEDTLS_ECDSA_DETERMINISTIC', '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', From 2f8ac287b61da83c0cb826a605fbb780f5e6f662 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 7 Oct 2022 16:07:58 -0400 Subject: [PATCH 0752/1028] Disable MBEDTLS_TEST_HOOKS in depends.py This option was increasing testing duration by about 40%. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 409d144136..6a1c171c94 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -105,6 +105,7 @@ derived.""" run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BACKTRACE']) run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BUFFER_ALLOC_C']) run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_DEBUG']) + run_config_pl(options, ['unset', 'MBEDTLS_TEST_HOOKS']) def collect_config_symbols(options): """Read the list of settings from mbedtls_config.h. From 01af84a0ca90e94705c22be966c3197ba934b67a Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Sun, 9 Oct 2022 05:29:44 -0400 Subject: [PATCH 0753/1028] depends.py: Add script documentation Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 57 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 3 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 6a1c171c94..9f37a33999 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -17,9 +17,53 @@ # # This file is part of Mbed TLS (https://tls.mbed.org) -"""Test Mbed TLS with a subset of algorithms. """ +Test Mbed TLS with a subset of algorithms. +This script can be divided into several steps: + +First, include/mbedtls/mbedtls_config.h or a different config file passed +in the arguments is parsed to extract any configuration options (collect_config_symbols). + +Then, test domains (groups of jobs, tests) are built based on predefined data +collected in the DomainData class. Here, each domain has five major traits: +- domain name, can be used to run only specific tests via commandline; +- configuration building method, described in detail below; +- list of symbols passed to the configuration building method; +- commands to be run on each job (only build, build and test, or any other custom); +- optional list of symbols to be excluded from testing. + +The configuration building method can be one of the three following: + +- ComplementaryDomain - build a job for each passed symbol by disabling a single + symbol and its reverse dependencies (defined in REVERSE_DEPENDENCIES); + +- ExclusiveDomain - build a job where, for each passed symbol, only this particular + one is defined and other symbols from the list are unset. For each job look for + any non-standard symbols to set/unset in EXCLUSIVE_GROUPS. These are usually not + direct dependencies, but rather non-trivial results of other configs missing. Then + look for any unset symbols and handle their reverse dependencies. + Examples of EXCLUSIVE_GROUPS usage: + - MBEDTLS_SHA224 job turns off all hashes except SHA224, however, when investigating + reverse dependencies, SHA256 is found to depend on SHA224, so it is disabled, + and then SHA224 is found to depend on SHA256, so it is also disabled. To handle + this, there's a field in EXCLUSIVE_GROUPS that states that in a SHA224 test SHA256 + should also be enabled before processing reverse dependencies: + 'MBEDTLS_SHA224_C': ['MBEDTLS_SHA256_C'] + - MBEDTLS_SHA512_C job turns off all hashes except SHA512. MBEDTLS_SSL_COOKIE_C + requires either SHA256 or SHA384 to work, so it also has to be disabled. + This is not a dependency on SHA512_C, but a result of an exclusive domain + config building method. Relevant field: + 'MBEDTLS_SHA512_C': ['!MBEDTLS_SSL_COOKIE_C'], + +- DualDomain - combination of the two above - both complementary and exclusive domain + job generation code will be run. Currently only used for hashes. + +Lastly, the collected jobs are executed and (optionally) tested, with +error reporting and coloring as configured in options. Each test starts with +a full config without a couple of slowing down or unnecessary options +(see set_reference_config), then the specific job config is derived. +""" import argparse import os import re @@ -239,7 +283,7 @@ REVERSE_DEPENDENCIES = { } # If an option is tested in an exclusive test, alter the following defines. -# These are not neccesarily dependencies, but just minimal required changes +# These are not necessarily dependencies, but just minimal required changes # if a given define is the only one enabled from an exclusive group. EXCLUSIVE_GROUPS = { 'MBEDTLS_SHA224_C': ['MBEDTLS_SHA256_C'], @@ -464,7 +508,14 @@ Run the jobs listed in options.domains.""" def main(): try: - parser = argparse.ArgumentParser(description=__doc__) + parser = argparse.ArgumentParser( + formatter_class=argparse.RawDescriptionHelpFormatter, + description= + "Test Mbed TLS with a subset of algorithms.\n\n" + "Example usage:\n" + r"./tests/scripts/depends.py \!MBEDTLS_SHA1_C MBEDTLS_SHA224_C""\n" + "./tests/scripts/depends.py MBEDTLS_AES_C hashes\n" + "./tests/scripts/depends.py cipher_id cipher_chaining\n") parser.add_argument('--color', metavar='WHEN', help='Colorize the output (always/auto/never)', choices=['always', 'auto', 'never'], default='auto') From 2d637c4cbbd4d72dc923a8d26e6b96db570003f4 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 12 Oct 2022 09:27:44 -0400 Subject: [PATCH 0754/1028] Fix unchecked allocation in test_suite_ssl Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.function | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 464ae06c50..c5ded5a71e 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -873,9 +873,9 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, } cert = &( ep->cert ); - cert->ca_cert = mbedtls_calloc( 1, sizeof(mbedtls_x509_crt) ); - cert->cert = mbedtls_calloc( 1, sizeof(mbedtls_x509_crt) ); - cert->pkey = mbedtls_calloc( 1, sizeof(mbedtls_pk_context) ); + ASSERT_ALLOC( cert->ca_cert, sizeof(mbedtls_x509_crt) ); + ASSERT_ALLOC( cert->cert, sizeof(mbedtls_x509_crt) ); + ASSERT_ALLOC( cert->pkey, sizeof(mbedtls_pk_context) ); mbedtls_x509_crt_init( cert->ca_cert ); mbedtls_x509_crt_init( cert->cert ); From 6ee1e20d7fb1fb1c29c50b2b7f51f6e113a37133 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 12 Oct 2022 10:17:25 -0400 Subject: [PATCH 0755/1028] Replace x509_CRT_PARSE_C with KEY_EXCHANGE_WITH_CERT_ENABLED SSL programs use certificates in an exchange, so it's more natural to have such dependency instead of just certificate parsing. Signed-off-by: Andrzej Kurek --- programs/ssl/ssl_client2.c | 60 ++++++++++++++++---------------------- programs/ssl/ssl_server2.c | 45 ++++++++++++---------------- 2 files changed, 43 insertions(+), 62 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index caf9ac5cf5..87c13c02a9 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -120,7 +120,7 @@ int main( void ) #define GET_REQUEST "GET %s HTTP/1.0\r\nExtra-header: " #define GET_REQUEST_END "\r\n\r\n" -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) #define USAGE_CONTEXT_CRT_CB \ " context_crt_cb=%%d This determines whether the CRT verification callback is bound\n" \ " to the SSL configuration of the SSL context.\n" \ @@ -129,8 +129,8 @@ int main( void ) " - 1: Use CRT callback bound to SSL context\n" #else #define USAGE_CONTEXT_CRT_CB "" -#endif /* MBEDTLS_X509_CRT_PARSE_C */ -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) #if defined(MBEDTLS_FS_IO) #define USAGE_IO \ " ca_file=%%s The single file containing the top-level CA(s) you fully trust\n" \ @@ -148,10 +148,10 @@ int main( void ) #define USAGE_IO \ " No file operations available (MBEDTLS_FS_IO not defined)\n" #endif /* MBEDTLS_FS_IO */ -#else /* MBEDTLS_X509_CRT_PARSE_C */ +#else /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #define USAGE_IO "" -#endif /* MBEDTLS_X509_CRT_PARSE_C */ -#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_X509_CRT_PARSE_C) +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) #define USAGE_KEY_OPAQUE \ " key_opaque=%%d Handle your private key as if it were opaque\n" \ " default: 0 (disabled)\n" @@ -768,9 +768,6 @@ int main( int argc, char *argv[] ) psa_status_t status; #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) - mbedtls_x509_crt_profile crt_profile_for_test = mbedtls_x509_crt_profile_default; -#endif rng_context_t rng; mbedtls_ssl_context ssl; mbedtls_ssl_config conf; @@ -780,17 +777,16 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_TIMING_C) mbedtls_timing_delay_context timer; #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) #if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) uint32_t flags; -#endif mbedtls_x509_crt cacert; mbedtls_x509_crt clicert; mbedtls_pk_context pkey; + mbedtls_x509_crt_profile crt_profile_for_test = mbedtls_x509_crt_profile_default; #if defined(MBEDTLS_USE_PSA_CRYPTO) mbedtls_svc_key_id_t key_slot = MBEDTLS_SVC_KEY_ID_INIT; /* invalid key slot */ #endif -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ char *p, *q; const int *list; #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) @@ -831,7 +827,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_config_init( &conf ); memset( &saved_session, 0, sizeof( mbedtls_ssl_session ) ); rng_init( &rng ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) mbedtls_x509_crt_init( &cacert ); mbedtls_x509_crt_init( &clicert ); mbedtls_pk_init( &pkey ); @@ -1031,7 +1027,7 @@ int main( int argc, char *argv[] ) opt.key_file = q; else if( strcmp( p, "key_pwd" ) == 0 ) opt.key_pwd = q; -#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) else if( strcmp( p, "key_opaque" ) == 0 ) opt.key_opaque = atoi( q ); #endif @@ -1709,7 +1705,7 @@ int main( int argc, char *argv[] ) goto exit; mbedtls_printf( " ok\n" ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* * 1.1. Load the trusted CA */ @@ -1831,7 +1827,7 @@ int main( int argc, char *argv[] ) mbedtls_printf( " ok (key type: %s)\n", strlen( opt.key_file ) || strlen( opt.key_opaque_alg1 ) ? mbedtls_pk_get_name( &pkey ) : "none" ); -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ /* * 2. Setup stuff @@ -1849,7 +1845,6 @@ int main( int argc, char *argv[] ) goto exit; } -#if defined(MBEDTLS_X509_CRT_PARSE_C) #if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* The default algorithms profile disables SHA-1, but our tests still rely on it heavily. */ @@ -1864,7 +1859,6 @@ int main( int argc, char *argv[] ) memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); #endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ -#endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) if( opt.cid_enabled == 1 || opt.cid_enabled_renego == 1 ) @@ -2001,7 +1995,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_conf_renegotiation( &conf, opt.renegotiation ); #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( strcmp( opt.ca_path, "none" ) != 0 && strcmp( opt.ca_file, "none" ) != 0 ) { @@ -2022,7 +2016,7 @@ int main( int argc, char *argv[] ) goto exit; } } -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) if( opt.curves != NULL && @@ -2110,7 +2104,7 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_SSL_DTLS_SRTP */ -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( ( ret = mbedtls_ssl_set_hostname( &ssl, opt.server_name ) ) != 0 ) { mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", @@ -2133,11 +2127,10 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( opt.context_crt_cb == 1 ) mbedtls_ssl_set_verify( &ssl, my_verify, NULL ); -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ io_ctx.ssl = &ssl; io_ctx.net = &server_fd; @@ -2458,8 +2451,7 @@ int main( int argc, char *argv[] ) } } -#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* * 5. Verify the server certificate */ @@ -2482,7 +2474,7 @@ int main( int argc, char *argv[] ) mbedtls_printf( " . Peer certificate information ...\n" ); mbedtls_printf( "%s\n", peer_crt_info ); #endif /* !MBEDTLS_X509_REMOVE_INFO */ -#endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) ret = report_cid_usage( &ssl, "initial handshake" ); @@ -2857,10 +2849,9 @@ send_request: mbedtls_printf( " . Restarting connection from same port..." ); fflush( stdout ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); -#endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ if( ( ret = mbedtls_ssl_session_reset( &ssl ) ) != 0 ) { @@ -3094,10 +3085,9 @@ reconnect: mbedtls_printf( " . Reconnecting with saved session..." ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); -#endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ if( ( ret = mbedtls_ssl_session_reset( &ssl ) ) != 0 ) { @@ -3201,14 +3191,14 @@ exit: mbedtls_free( context_buf ); #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) mbedtls_x509_crt_free( &clicert ); mbedtls_x509_crt_free( &cacert ); mbedtls_pk_free( &pkey ); #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_destroy_key( key_slot ); #endif -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) && \ defined(MBEDTLS_USE_PSA_CRYPTO) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 0554d2cb12..c39871a6dc 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -175,7 +175,7 @@ int main( void ) */ #define DFL_IO_BUF_LEN 200 -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) #if defined(MBEDTLS_FS_IO) #define USAGE_IO \ " ca_file=%%s The single file containing the top-level CA(s) you fully trust\n" \ @@ -206,8 +206,8 @@ int main( void ) #endif /* MBEDTLS_FS_IO */ #else #define USAGE_IO "" -#endif /* MBEDTLS_X509_CRT_PARSE_C */ -#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_X509_CRT_PARSE_C) +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) #define USAGE_KEY_OPAQUE \ " key_opaque=%%d Handle your private keys as if they were opaque\n" \ " default: 0 (disabled)\n" @@ -1444,10 +1444,6 @@ int main( int argc, char *argv[] ) mbedtls_ssl_cookie_ctx cookie_ctx; #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) - mbedtls_x509_crt_profile crt_profile_for_test = mbedtls_x509_crt_profile_default; -#endif mbedtls_ssl_context ssl; mbedtls_ssl_config conf; #if defined(MBEDTLS_TIMING_C) @@ -1456,13 +1452,14 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_SSL_RENEGOTIATION) unsigned char renego_period[8] = { 0 }; #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) uint32_t flags; mbedtls_x509_crt cacert; mbedtls_x509_crt srvcert; mbedtls_pk_context pkey; mbedtls_x509_crt srvcert2; mbedtls_pk_context pkey2; + mbedtls_x509_crt_profile crt_profile_for_test = mbedtls_x509_crt_profile_default; #if defined(MBEDTLS_USE_PSA_CRYPTO) mbedtls_svc_key_id_t key_slot = MBEDTLS_SVC_KEY_ID_INIT; /* invalid key slot */ mbedtls_svc_key_id_t key_slot2 = MBEDTLS_SVC_KEY_ID_INIT; /* invalid key slot */ @@ -1471,7 +1468,7 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) ssl_async_key_context_t ssl_async_keys; #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_FS_IO) mbedtls_dhm_context dhm; #endif @@ -1553,7 +1550,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_init( &ssl ); mbedtls_ssl_config_init( &conf ); rng_init( &rng ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) mbedtls_x509_crt_init( &cacert ); mbedtls_x509_crt_init( &srvcert ); mbedtls_pk_init( &pkey ); @@ -1782,7 +1779,7 @@ int main( int argc, char *argv[] ) opt.key_file = q; else if( strcmp( p, "key_pwd" ) == 0 ) opt.key_pwd = q; -#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) else if( strcmp( p, "key_opaque" ) == 0 ) opt.key_opaque = atoi( q ); #endif @@ -2586,7 +2583,7 @@ int main( int argc, char *argv[] ) goto exit; mbedtls_printf( " ok\n" ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* * 1.1. Load the trusted CA */ @@ -2794,7 +2791,7 @@ int main( int argc, char *argv[] ) mbedtls_printf( " ok (key types: %s, %s)\n", key_cert_init ? mbedtls_pk_get_name( &pkey ) : "none", key_cert_init2 ? mbedtls_pk_get_name( &pkey2 ) : "none" ); -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_FS_IO) if( opt.dhm_file != NULL ) @@ -2844,7 +2841,6 @@ int main( int argc, char *argv[] ) goto exit; } -#if defined(MBEDTLS_X509_CRT_PARSE_C) #if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* The default algorithms profile disables SHA-1, but our tests still rely on it heavily. Hence we allow it here. A real-world server @@ -2856,7 +2852,6 @@ int main( int argc, char *argv[] ) mbedtls_ssl_conf_sig_algs( &conf, ssl_sig_algs_for_test ); } #endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ -#endif /* MBEDTLS_X509_CRT_PARSE_C */ if( opt.auth_mode != DFL_AUTH_MODE ) mbedtls_ssl_conf_authmode( &conf, opt.auth_mode ); @@ -2864,15 +2859,13 @@ int main( int argc, char *argv[] ) if( opt.cert_req_ca_list != DFL_CERT_REQ_CA_LIST ) mbedtls_ssl_conf_cert_req_ca_list( &conf, opt.cert_req_ca_list ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) -#if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* exercise setting DN hints for server certificate request * (Intended for use where the client cert expected has been signed by * a specific CA which is an intermediate in a CA chain, not the root) */ if( opt.cert_req_dn_hint == 2 && key_cert_init2 ) mbedtls_ssl_conf_dn_hints( &conf, &srvcert2 ); #endif -#endif #if defined(MBEDTLS_SSL_PROTO_DTLS) if( opt.hs_to_min != DFL_HS_TO_MIN || opt.hs_to_max != DFL_HS_TO_MAX ) @@ -3109,7 +3102,7 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( strcmp( opt.ca_path, "none" ) != 0 && strcmp( opt.ca_file, "none" ) != 0 ) { @@ -3198,7 +3191,7 @@ int main( int argc, char *argv[] ) &ssl_async_keys ); } #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(SNI_OPTION) if( opt.sni != NULL ) @@ -3492,9 +3485,8 @@ reset: } #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) -#if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* exercise setting DN hints for server certificate request * (Intended for use where the client cert expected has been signed by * a specific CA which is an intermediate in a CA chain, not the root) @@ -3503,7 +3495,6 @@ reset: if( opt.cert_req_dn_hint == 3 && key_cert_init2 ) mbedtls_ssl_set_hs_dn_hints( &ssl, &srvcert2 ); #endif -#endif #endif mbedtls_printf( " ok\n" ); @@ -3552,7 +3543,7 @@ handshake: { mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", (unsigned int) -ret ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED ) { char vrfy_buf[512]; @@ -3607,7 +3598,7 @@ handshake: } #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* * 5. Verify the client certificate */ @@ -3636,7 +3627,7 @@ handshake: mbedtls_printf( "%s\n", crt_buf ); } #endif /* MBEDTLS_X509_REMOVE_INFO */ -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ if( opt.eap_tls != 0 ) { @@ -4330,7 +4321,7 @@ exit: mbedtls_printf( "Failed to list of opaque PSKs - error was %d\n", ret ); #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) mbedtls_x509_crt_free( &cacert ); mbedtls_x509_crt_free( &srvcert ); mbedtls_pk_free( &pkey ); From daf43fbe219bf1769e72702c4796b5de32497698 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 12 Oct 2022 10:46:42 -0400 Subject: [PATCH 0756/1028] Move the location of MBEDTLS_ECP_C dependencies Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.data | 84 +++++++++++++--------------- tests/suites/test_suite_ssl.function | 36 ++++++------ 2 files changed, 57 insertions(+), 63 deletions(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index eab6c862a7..6b28a2fe97 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -111,63 +111,61 @@ Test moving clients handshake to state: CLIENT_HELLO move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_HELLO:1 Test moving clients handshake to state: SERVER_HELLO -depends_on:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_HELLO:1 Test moving clients handshake to state: SERVER_CERTIFICATE -depends_on:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_CERTIFICATE:1 Test moving clients handshake to state: SERVER_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_KEY_EXCHANGE:1 Test moving clients handshake to state: CERTIFICATE_REQUEST -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CERTIFICATE_REQUEST:1 Test moving clients handshake to state: SERVER_HELLO_DONE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_HELLO_DONE:1 Test moving clients handshake to state: CLIENT_CERTIFICATE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_CERTIFICATE:1 Test moving clients handshake to state: CLIENT_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_KEY_EXCHANGE:1 Test moving clients handshake to state: CERTIFICATE_VERIFY -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CERTIFICATE_VERIFY:1 Test moving clients handshake to state: CLIENT_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC:1 Test moving clients handshake to state: CLIENT_FINISHED -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_FINISHED:1 Test moving clients handshake to state: SERVER_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC:1 Test moving clients handshake to state: SERVER_FINISHED -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_FINISHED:1 Test moving clients handshake to state: FLUSH_BUFFERS -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_FLUSH_BUFFERS:1 Test moving clients handshake to state: HANDSHAKE_WRAPUP -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_HANDSHAKE_WRAPUP:1 Test moving clients handshake to state: HANDSHAKE_OVER -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_HANDSHAKE_OVER:1 Test moving servers handshake to state: HELLO_REQUEST @@ -177,63 +175,61 @@ Test moving servers handshake to state: CLIENT_HELLO move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_HELLO:1 Test moving servers handshake to state: SERVER_HELLO -depends_on:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_HELLO:1 Test moving servers handshake to state: SERVER_CERTIFICATE -depends_on:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_CERTIFICATE:1 Test moving servers handshake to state: SERVER_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_KEY_EXCHANGE:1 Test moving servers handshake to state: CERTIFICATE_REQUEST -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CERTIFICATE_REQUEST:1 Test moving servers handshake to state: SERVER_HELLO_DONE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_HELLO_DONE:1 Test moving servers handshake to state: CLIENT_CERTIFICATE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_CERTIFICATE:1 Test moving servers handshake to state: CLIENT_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_KEY_EXCHANGE:1 Test moving servers handshake to state: CERTIFICATE_VERIFY -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CERTIFICATE_VERIFY:1 Test moving servers handshake to state: CLIENT_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC:1 Test moving servers handshake to state: CLIENT_FINISHED -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_FINISHED:1 Test moving servers handshake to state: SERVER_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC:1 Test moving servers handshake to state: SERVER_FINISHED -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_FINISHED:1 Test moving servers handshake to state: FLUSH_BUFFERS -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_FLUSH_BUFFERS:1 Test moving servers handshake to state: HANDSHAKE_WRAPUP -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_HANDSHAKE_WRAPUP:1 Test moving servers handshake to state: HANDSHAKE_OVER -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_HANDSHAKE_OVER:1 Negative test moving clients ssl to state: VERIFY_REQUEST_SENT @@ -333,7 +329,7 @@ depends_on:MBEDTLS_SSL_PROTO_DTLS handshake_fragmentation:MBEDTLS_SSL_MAX_FRAG_LEN_1024:0:1 Handshake min/max version check, all -> 1.2 -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 handshake_version:0:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_TLS1_2 Handshake, select RSA-WITH-AES-256-CBC-SHA256, non-opaque @@ -477,43 +473,41 @@ depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER handshake_ciphersuite_select:"TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384":MBEDTLS_PK_ECDSA:"":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):PSA_ALG_ECDH:PSA_KEY_USAGE_SIGN_HASH:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Sending app data via TLS, MFL=512 without fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_512:400:512:1:1 Sending app data via TLS, MFL=512 with fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_512:513:1536:2:3 Sending app data via TLS, MFL=1024 without fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_1024:1000:1024:1:1 Sending app data via TLS, MFL=1024 with fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_1024:1025:5120:2:5 Sending app data via TLS, MFL=2048 without fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_2048:2000:2048:1:1 Sending app data via TLS, MFL=2048 with fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_2048:2049:8192:2:4 Sending app data via TLS, MFL=4096 without fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_4096:4000:4096:1:1 Sending app data via TLS, MFL=4096 with fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_4096:4097:12288:2:3 Sending app data via TLS without MFL and without fragmentation -depends_on:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_NONE:16001:16384:1:1 Sending app data via TLS without MFL and with fragmentation -depends_on:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_NONE:16385:100000:2:7 Sending app data via DTLS, MFL=512 without fragmentation @@ -2976,13 +2970,13 @@ ssl_tls13_key_evolution:PSA_ALG_SHA_256:"":"":"33ad0a1c607ec03b09e6cd9893680ce21 SSL TLS 1.3 Key schedule: Secret evolution #2 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Early secret to Handshake Secret -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED:MBEDTLS_ECP_C +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED ssl_tls13_key_evolution:PSA_ALG_SHA_256:"33ad0a1c607ec03b09e6cd9893680ce210adf300aa1f2660e1b22e10f170f92a":"df4a291baa1eb7cfa6934b29b474baad2697e29f1f920dcc77c8a0a088447624":"fb9fc80689b3a5d02c33243bf69a1b1b20705588a794304a6e7120155edf149a" SSL TLS 1.3 Key schedule: Secret evolution #3 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Handshake secret to Master Secret -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED:MBEDTLS_ECP_C +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED ssl_tls13_key_evolution:PSA_ALG_SHA_256:"fb9fc80689b3a5d02c33243bf69a1b1b20705588a794304a6e7120155edf149a":"":"7f2882bb9b9a46265941653e9c2f19067118151e21d12e57a7b6aca1f8150c8d" SSL TLS 1.3 Key schedule: HKDF Expand Label #1 @@ -3543,11 +3537,11 @@ Sanity test cid functions cid_sanity: Raw key agreement: nominal -depends_on:MBEDTLS_SHA256_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA raw_key_agreement_fail:0 Raw key agreement: bad server key -depends_on:MBEDTLS_SHA256_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA raw_key_agreement_fail:1 Force a bad session id length diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index c5ded5a71e..c129903299 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -4543,7 +4543,7 @@ void ssl_tls13_create_psk_binder( int hash_alg, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void ssl_tls13_record_protection( int ciphersuite, int endpoint, int ctr, @@ -4643,7 +4643,7 @@ void ssl_tls13_record_protection( int ciphersuite, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3 */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_ECP_C */ void ssl_tls13_key_evolution( int hash_alg, data_t *secret, data_t *input, @@ -5100,7 +5100,7 @@ void ssl_session_serialize_version_check( int corrupt_major, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void mbedtls_endpoint_sanity( int endpoint_type ) { enum { BUFFSIZE = 1024 }; @@ -5127,7 +5127,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void move_handshake_to_state(int endpoint_type, int state, int need_pass) { enum { BUFFSIZE = 1024 }; @@ -5183,7 +5183,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void handshake_version( int dtls, int client_min_version, int client_max_version, int server_min_version, int server_max_version, int expected_negotiated_version ) @@ -5208,7 +5208,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_psk_cipher( char* cipher, int pk_alg, data_t *psk_str, int dtls ) { handshake_test_options options; @@ -5229,7 +5229,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_cipher( char* cipher, int pk_alg, int dtls ) { test_handshake_psk_cipher( cipher, pk_alg, NULL, dtls ); @@ -5239,7 +5239,7 @@ void handshake_cipher( char* cipher, int pk_alg, int dtls ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_ciphersuite_select( char* cipher, int pk_alg, data_t *psk_str, int psa_alg, int psa_alg2, int psa_usage, int expected_handshake_result, @@ -5266,7 +5266,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void app_data( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments, int dtls ) @@ -5294,7 +5294,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void app_data_tls( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments ) @@ -5306,7 +5306,7 @@ void app_data_tls( int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void app_data_dtls( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments ) @@ -5318,7 +5318,7 @@ void app_data_dtls( int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_serialization( ) { handshake_test_options options; @@ -5334,7 +5334,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_fragmentation( int mfl, int expected_srv_hs_fragmentation, int expected_cli_hs_fragmentation) { handshake_test_options options; @@ -5373,7 +5373,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void renegotiation( int legacy_renegotiation ) { handshake_test_options options; @@ -5392,7 +5392,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers( int mfl, int renegotiation, int legacy_renegotiation, int serialize, int dtls, char *cipher ) { @@ -5416,7 +5416,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers_serialize_mfl( int mfl ) { test_resize_buffers( mfl, 0, MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION, 1, 1, @@ -5427,7 +5427,7 @@ void resize_buffers_serialize_mfl( int mfl ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers_renegotiate_mfl( int mfl, int legacy_renegotiation, char *cipher ) { @@ -5828,7 +5828,7 @@ void conf_group() } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_CACHE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_DEBUG_C:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_CACHE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_DEBUG_C:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void force_bad_session_id_len( ) { enum { BUFFSIZE = 1024 }; From e5a5cc194442d6757cc6da452ee8fbd5a614080e Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 12 Oct 2022 11:14:28 -0400 Subject: [PATCH 0757/1028] Remove the dependency of tls1_3 key evolution tests on curve25519 Signed-off-by: Andrzej Kurek --- library/ssl_tls13_keys.c | 5 ++++- tests/suites/test_suite_ssl.data | 8 ++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 48de3d008d..56967cd122 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -38,6 +38,9 @@ #define MBEDTLS_SSL_TLS1_3_LABEL( name, string ) \ .name = string, +#define MBEDTLS_EVOLVE_INPUT_SIZE (PSA_HASH_MAX_SIZE > PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE)? \ + PSA_HASH_MAX_SIZE : PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE + struct mbedtls_ssl_tls13_labels_struct const mbedtls_ssl_tls13_labels = { /* This seems to work in C, despite the string literal being one @@ -333,7 +336,7 @@ int mbedtls_ssl_tls13_evolve_secret( psa_status_t abort_status = PSA_ERROR_CORRUPTION_DETECTED; size_t hlen, ilen; unsigned char tmp_secret[ PSA_MAC_MAX_SIZE ] = { 0 }; - unsigned char tmp_input [ MBEDTLS_ECP_MAX_BYTES ] = { 0 }; + unsigned char tmp_input [ MBEDTLS_EVOLVE_INPUT_SIZE ] = { 0 }; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index 6b28a2fe97..1cc1c9821f 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -2964,26 +2964,26 @@ ssl_decrypt_non_etm_cbc:MBEDTLS_CIPHER_CAMELLIA_128_CBC:MBEDTLS_MD_SHA384:0:255 SSL TLS 1.3 Key schedule: Secret evolution #1 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Initial secret to Early Secret -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED +depends_on:PSA_WANT_ALG_SHA_256 ssl_tls13_key_evolution:PSA_ALG_SHA_256:"":"":"33ad0a1c607ec03b09e6cd9893680ce210adf300aa1f2660e1b22e10f170f92a" SSL TLS 1.3 Key schedule: Secret evolution #2 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Early secret to Handshake Secret -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED +depends_on:PSA_WANT_ALG_SHA_256 ssl_tls13_key_evolution:PSA_ALG_SHA_256:"33ad0a1c607ec03b09e6cd9893680ce210adf300aa1f2660e1b22e10f170f92a":"df4a291baa1eb7cfa6934b29b474baad2697e29f1f920dcc77c8a0a088447624":"fb9fc80689b3a5d02c33243bf69a1b1b20705588a794304a6e7120155edf149a" SSL TLS 1.3 Key schedule: Secret evolution #3 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Handshake secret to Master Secret -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED +depends_on:PSA_WANT_ALG_SHA_256 ssl_tls13_key_evolution:PSA_ALG_SHA_256:"fb9fc80689b3a5d02c33243bf69a1b1b20705588a794304a6e7120155edf149a":"":"7f2882bb9b9a46265941653e9c2f19067118151e21d12e57a7b6aca1f8150c8d" SSL TLS 1.3 Key schedule: HKDF Expand Label #1 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Server handshake traffic secret -> Server traffic key # HKDF-Expand-Label(server_handshake_secret, "key", "", 16) -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED +depends_on:PSA_WANT_ALG_SHA_256 ssl_tls13_hkdf_expand_label:PSA_ALG_SHA_256:"a2067265e7f0652a923d5d72ab0467c46132eeb968b6a32d311c805868548814":tls13_label_key:"":16:"844780a7acad9f980fa25c114e43402a" SSL TLS 1.3 Key schedule: HKDF Expand Label #2 From 658442fe78738690195a6abf84e62230e8a1af3b Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 12 Oct 2022 11:28:41 -0400 Subject: [PATCH 0758/1028] Remove unnecessary ECP_C dependencies Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.data | 2 +- tests/suites/test_suite_ssl.function | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index 1cc1c9821f..2b58e6005c 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -3196,7 +3196,7 @@ SSL TLS 1.3 Key schedule: PSK binder # Vector from RFC 8448 # For the resumption PSK, see Section 3, 'generate resumption secret "tls13 resumption"' # For all other data, see Section 4, 'construct a ClientHello handshake message:' -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED:MBEDTLS_ECP_C +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED ssl_tls13_create_psk_binder:PSA_ALG_SHA_256:"4ecd0eb6ec3b4d87f5d6028f922ca4c5851a277fd41311c9e62d2c9492e1c4f3":MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION:"63224b2e4573f2d3454ca84b9d009a04f6be9e05711a8396473aefa01e924a14":"3add4fb2d8fdf822a0ca3cf7678ef5e88dae990141c5924d57bb6fa31b9e5f9d" SSL TLS_PRF MBEDTLS_SSL_TLS_PRF_NONE diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index c129903299..6664a79f97 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -4643,7 +4643,7 @@ void ssl_tls13_record_protection( int ciphersuite, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_ECP_C */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3 */ void ssl_tls13_key_evolution( int hash_alg, data_t *secret, data_t *input, @@ -6015,7 +6015,7 @@ void cid_sanity( ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_C:MBEDTLS_ECDSA_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECDSA_C */ void raw_key_agreement_fail( int bad_server_ecdhe_key ) { enum { BUFFSIZE = 17000 }; From 6454a90c6deed835586cf6f0178ee25e00f59976 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 12 Oct 2022 11:57:04 -0400 Subject: [PATCH 0759/1028] Remove pre-1_2 TLS dependencies from depends.py Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 9f37a33999..829e330cea 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -223,13 +223,6 @@ and subsequent commands are tests that cannot run if the build failed).''' built = True return success -# SSL/TLS versions up to 1.1 and corresponding options. These require -# both MD5 and SHA-1. -SSL_PRE_1_2_DEPENDENCIES = ['MBEDTLS_SSL_CBC_RECORD_SPLITTING', - 'MBEDTLS_SSL_PROTO_SSL3', - 'MBEDTLS_SSL_PROTO_TLS1', - 'MBEDTLS_SSL_PROTO_TLS1_1'] - # If the configuration option A requires B, make sure that # B in REVERSE_DEPENDENCIES[A]. # All the information here should be contained in check_config.h. This @@ -251,7 +244,6 @@ REVERSE_DEPENDENCIES = { 'MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], 'MBEDTLS_ECP_DP_SECP256R1_ENABLED': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], - 'MBEDTLS_MD5_C': SSL_PRE_1_2_DEPENDENCIES, 'MBEDTLS_PKCS1_V21': ['MBEDTLS_X509_RSASSA_PSS_SUPPORT'], 'MBEDTLS_PKCS1_V15': ['MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', @@ -263,7 +255,6 @@ REVERSE_DEPENDENCIES = { 'MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED', 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED'], - 'MBEDTLS_SHA1_C': SSL_PRE_1_2_DEPENDENCIES, 'MBEDTLS_SHA256_C': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', 'MBEDTLS_ENTROPY_FORCE_SHA256', 'MBEDTLS_SHA224_C', From a2a96885015cb6f65f1f09468327dc5ea978b75e Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 13 Oct 2022 08:22:08 -0400 Subject: [PATCH 0760/1028] Fix the memory allocation in test_suite_ssl ASSERT_ALLOC calculates the size itself, and the parameter indicates number of elements. ``` mbedtls_calloc( sizeof( *( pointer ) ), ( length ) ); ``` Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.function | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 6664a79f97..cd356f563c 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -873,9 +873,9 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, } cert = &( ep->cert ); - ASSERT_ALLOC( cert->ca_cert, sizeof(mbedtls_x509_crt) ); - ASSERT_ALLOC( cert->cert, sizeof(mbedtls_x509_crt) ); - ASSERT_ALLOC( cert->pkey, sizeof(mbedtls_pk_context) ); + ASSERT_ALLOC( cert->ca_cert, 1 ); + ASSERT_ALLOC( cert->cert, 1 ); + ASSERT_ALLOC( cert->pkey, 1 ); mbedtls_x509_crt_init( cert->ca_cert ); mbedtls_x509_crt_init( cert->cert ); From ecb630925fd348620c4e7510e094fd5330b66899 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 13 Oct 2022 09:05:12 -0400 Subject: [PATCH 0761/1028] Fix constant name in ssl_tls13_keys Signed-off-by: Andrzej Kurek --- library/ssl_tls13_keys.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 56967cd122..d22aab8de2 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -38,8 +38,8 @@ #define MBEDTLS_SSL_TLS1_3_LABEL( name, string ) \ .name = string, -#define MBEDTLS_EVOLVE_INPUT_SIZE (PSA_HASH_MAX_SIZE > PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE)? \ - PSA_HASH_MAX_SIZE : PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE +#define TLS1_3_EVOLVE_INPUT_SIZE (PSA_HASH_MAX_SIZE > PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE)? \ + PSA_HASH_MAX_SIZE : PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE struct mbedtls_ssl_tls13_labels_struct const mbedtls_ssl_tls13_labels = { @@ -336,7 +336,7 @@ int mbedtls_ssl_tls13_evolve_secret( psa_status_t abort_status = PSA_ERROR_CORRUPTION_DETECTED; size_t hlen, ilen; unsigned char tmp_secret[ PSA_MAC_MAX_SIZE ] = { 0 }; - unsigned char tmp_input [ MBEDTLS_EVOLVE_INPUT_SIZE ] = { 0 }; + unsigned char tmp_input [ TLS1_3_EVOLVE_INPUT_SIZE ] = { 0 }; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; From d0786f5f26a119907e7199c5f911e05e7b09f484 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 13 Oct 2022 09:06:48 -0400 Subject: [PATCH 0762/1028] Revert one of the changes to ssl_server2 dependencies Signed-off-by: Andrzej Kurek --- programs/ssl/ssl_server2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index c39871a6dc..678311ccb4 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -2859,7 +2859,7 @@ int main( int argc, char *argv[] ) if( opt.cert_req_ca_list != DFL_CERT_REQ_CA_LIST ) mbedtls_ssl_conf_cert_req_ca_list( &conf, opt.cert_req_ca_list ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) /* exercise setting DN hints for server certificate request * (Intended for use where the client cert expected has been signed by * a specific CA which is an intermediate in a CA chain, not the root) */ @@ -3486,7 +3486,7 @@ reset: #endif #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) /* exercise setting DN hints for server certificate request * (Intended for use where the client cert expected has been signed by * a specific CA which is an intermediate in a CA chain, not the root) From e5535e3123766cc33bc3de0a1fbd87bfbecb39bd Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 13 Oct 2022 09:07:47 -0400 Subject: [PATCH 0763/1028] Add MBEDTLS_DES_C exclusive group dependencies Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 829e330cea..a2c939a157 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -295,7 +295,8 @@ EXCLUSIVE_GROUPS = { 'MBEDTLS_ARIA_C': ['!MBEDTLS_CMAC_C'], 'MBEDTLS_CAMELLIA_C': ['!MBEDTLS_CMAC_C'], 'MBEDTLS_CHACHA20_C': ['!MBEDTLS_CMAC_C', '!MBEDTLS_CCM_C', '!MBEDTLS_GCM_C'], - 'MBEDTLS_DES_C': ['!MBEDTLS_CCM_C', '!MBEDTLS_GCM_C'], + 'MBEDTLS_DES_C': ['!MBEDTLS_CCM_C', '!MBEDTLS_GCM_C', '!MBEDTLS_SSL_TICKET_C', + '!MBEDTLS_SSL_CONTEXT_SERIALIZATION'], } def handle_exclusive_groups(config_settings, symbol): """For every symbol tested in an exclusive group check if there are other From b50754ae869169cb6f627ac39aca96774c56412e Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 13 Oct 2022 14:19:01 -0400 Subject: [PATCH 0764/1028] Switch from x509_CRT_PARSE to KEY_EXCHANGE_WITH_CERT_ENABLED Signed-off-by: Andrzej Kurek --- programs/ssl/ssl_server2.c | 24 ++++++----- tests/suites/test_suite_ssl.function | 64 ++++++++++++++-------------- 2 files changed, 46 insertions(+), 42 deletions(-) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 678311ccb4..1fd63d2d0d 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -1103,14 +1103,6 @@ typedef enum ASYNC_OP_SIGN, ASYNC_OP_DECRYPT, } ssl_async_operation_type_t; -/* Note that the enum above and the array below need to be kept in sync! - * `ssl_async_operation_names[op]` is the name of op for each value `op` - * of type `ssl_async_operation_type_t`. */ -static const char *const ssl_async_operation_names[] = -{ - "sign", - "decrypt", -}; typedef struct { @@ -1122,6 +1114,17 @@ typedef struct unsigned remaining_delay; } ssl_async_operation_context_t; +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) + +/* Note that ssl_async_operation_type_t and the array below need to be kept in sync! + * `ssl_async_operation_names[op]` is the name of op for each value `op` + * of type `ssl_async_operation_type_t`. */ +static const char *const ssl_async_operation_names[] = +{ + "sign", + "decrypt", +}; + static int ssl_async_start( mbedtls_ssl_context *ssl, mbedtls_x509_crt *cert, ssl_async_operation_type_t op_type, @@ -1274,6 +1277,7 @@ static void ssl_async_cancel( mbedtls_ssl_context *ssl ) mbedtls_printf( "Async cancel callback.\n" ); mbedtls_free( ctx ); } +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ #if defined(MBEDTLS_USE_PSA_CRYPTO) @@ -1465,10 +1469,10 @@ int main( int argc, char *argv[] ) mbedtls_svc_key_id_t key_slot2 = MBEDTLS_SVC_KEY_ID_INIT; /* invalid key slot */ #endif int key_cert_init = 0, key_cert_init2 = 0; +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) ssl_async_key_context_t ssl_async_keys; #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_FS_IO) mbedtls_dhm_context dhm; #endif @@ -1556,10 +1560,10 @@ int main( int argc, char *argv[] ) mbedtls_pk_init( &pkey ); mbedtls_x509_crt_init( &srvcert2 ); mbedtls_pk_init( &pkey2 ); +#endif #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) memset( &ssl_async_keys, 0, sizeof( ssl_async_keys ) ); #endif -#endif #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_FS_IO) mbedtls_dhm_init( &dhm ); #endif diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index cd356f563c..cc7497818f 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -31,7 +31,7 @@ typedef struct log_pattern size_t counter; } log_pattern; -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) static int rng_seed = 0xBEEF; static int rng_get( void *p_rng, unsigned char *output, size_t output_len ) { @@ -103,7 +103,7 @@ typedef struct handshake_test_options void init_handshake_options( handshake_test_options *opts ) { -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) srand( rng_seed ); rng_seed += 0xD0; #endif @@ -790,7 +790,7 @@ int mbedtls_mock_tcp_recv_msg( void *ctx, unsigned char *buf, size_t buf_len ) return msg_len; } -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* * Structure with endpoint's certificates for SSL communication tests. @@ -1178,7 +1178,7 @@ int mbedtls_move_handshake_to_state( mbedtls_ssl_context *ssl, return ( max_steps >= 0 ) ? ret : -1; } -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ /* * Write application data. Increase write counter if necessary. @@ -1750,7 +1750,7 @@ static int ssl_tls12_populate_session( mbedtls_ssl_session *session, memset( session->id, 66, session->id_len ); memset( session->master, 17, sizeof( session->master ) ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_FS_IO) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) && defined(MBEDTLS_FS_IO) if( crt_file != NULL && strlen( crt_file ) != 0 ) { mbedtls_x509_crt tmp_crt; @@ -1801,9 +1801,9 @@ static int ssl_tls12_populate_session( mbedtls_ssl_session *session, mbedtls_x509_crt_free( &tmp_crt ); } -#else /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_FS_IO */ +#else /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED && MBEDTLS_FS_IO */ (void) crt_file; -#endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_FS_IO */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED && MBEDTLS_FS_IO */ session->verify_result = 0xdeadbeef; #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) @@ -2029,7 +2029,7 @@ int exchange_data( mbedtls_ssl_context *ssl_1, ssl_2, 256, 1 ); } -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) static int check_ssl_version( mbedtls_ssl_protocol_version expected_negotiated_version, const mbedtls_ssl_context *ssl ) { @@ -2066,10 +2066,10 @@ static int check_ssl_version( mbedtls_ssl_protocol_version expected_negotiated_v exit: return( 0 ); } -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) void perform_handshake( handshake_test_options *options ) { /* forced_ciphersuite needs to last until the end of the handshake */ @@ -2467,7 +2467,7 @@ exit: #endif USE_PSA_DONE( ); } -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_TEST_HOOKS) /* @@ -3685,7 +3685,7 @@ void ssl_dtls_replay( data_t * prevs, data_t * new, int ret ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ void ssl_set_hostname_twice( char *hostname0, char *hostname1 ) { mbedtls_ssl_context ssl; @@ -4752,7 +4752,7 @@ void ssl_serialize_session_save_load( int ticket_len, char *crt_file, TEST_ASSERT( memcmp( original.master, restored.master, sizeof( original.master ) ) == 0 ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) TEST_ASSERT( ( original.peer_cert == NULL ) == ( restored.peer_cert == NULL ) ); @@ -4778,7 +4778,7 @@ void ssl_serialize_session_save_load( int ticket_len, char *crt_file, original.peer_cert_digest_len ) == 0 ); } #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ TEST_ASSERT( original.verify_result == restored.verify_result ); #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) @@ -5100,7 +5100,7 @@ void ssl_session_serialize_version_check( int corrupt_major, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void mbedtls_endpoint_sanity( int endpoint_type ) { enum { BUFFSIZE = 1024 }; @@ -5127,7 +5127,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void move_handshake_to_state(int endpoint_type, int state, int need_pass) { enum { BUFFSIZE = 1024 }; @@ -5183,7 +5183,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void handshake_version( int dtls, int client_min_version, int client_max_version, int server_min_version, int server_max_version, int expected_negotiated_version ) @@ -5208,7 +5208,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_psk_cipher( char* cipher, int pk_alg, data_t *psk_str, int dtls ) { handshake_test_options options; @@ -5229,7 +5229,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_cipher( char* cipher, int pk_alg, int dtls ) { test_handshake_psk_cipher( cipher, pk_alg, NULL, dtls ); @@ -5239,7 +5239,7 @@ void handshake_cipher( char* cipher, int pk_alg, int dtls ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_ciphersuite_select( char* cipher, int pk_alg, data_t *psk_str, int psa_alg, int psa_alg2, int psa_usage, int expected_handshake_result, @@ -5266,7 +5266,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void app_data( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments, int dtls ) @@ -5294,7 +5294,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void app_data_tls( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments ) @@ -5306,7 +5306,7 @@ void app_data_tls( int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void app_data_dtls( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments ) @@ -5318,7 +5318,7 @@ void app_data_dtls( int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_serialization( ) { handshake_test_options options; @@ -5334,7 +5334,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_fragmentation( int mfl, int expected_srv_hs_fragmentation, int expected_cli_hs_fragmentation) { handshake_test_options options; @@ -5373,7 +5373,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void renegotiation( int legacy_renegotiation ) { handshake_test_options options; @@ -5392,7 +5392,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers( int mfl, int renegotiation, int legacy_renegotiation, int serialize, int dtls, char *cipher ) { @@ -5416,7 +5416,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers_serialize_mfl( int mfl ) { test_resize_buffers( mfl, 0, MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION, 1, 1, @@ -5427,7 +5427,7 @@ void resize_buffers_serialize_mfl( int mfl ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers_renegotiate_mfl( int mfl, int legacy_renegotiation, char *cipher ) { @@ -5828,7 +5828,7 @@ void conf_group() } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_CACHE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_DEBUG_C:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_CACHE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_DEBUG_C:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void force_bad_session_id_len( ) { enum { BUFFSIZE = 1024 }; @@ -6015,7 +6015,7 @@ void cid_sanity( ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECDSA_C */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECDSA_C */ void raw_key_agreement_fail( int bad_server_ecdhe_key ) { enum { BUFFSIZE = 17000 }; @@ -6086,7 +6086,7 @@ exit: USE_PSA_DONE( ); } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ void tls13_server_certificate_msg_invalid_vector_len( ) { int ret = -1; From a0cb4fa302cf5a3253027bbfebfcec4ba1c0a2c9 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 14 Oct 2022 07:06:43 -0400 Subject: [PATCH 0765/1028] Improve depends.py readability Switch from SHA224 & SHA384 testing to SHA256 and SHA512. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index a2c939a157..48e2f2b707 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -143,8 +143,7 @@ def set_reference_config(options): """Change the library configuration file (mbedtls_config.h) to the reference state. The reference state is the one from which the tested configurations are derived.""" - # Turn off memory management options that are not relevant to - # the tests and slow them down. + # Turn off options that are not relevant to the tests and slow them down. run_config_pl(options, ['full']) run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BACKTRACE']) run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BUFFER_ALLOC_C']) @@ -190,8 +189,7 @@ If what is False, announce that the job has failed.''' log_line('starting ' + self.name) def configure(self, options): - '''Set library configuration options as required for the job. -config_file_name indicates which file to modify.''' + '''Set library configuration options as required for the job.''' set_reference_config(options) for key, value in sorted(self.config_settings.items()): if value is True: @@ -277,7 +275,7 @@ REVERSE_DEPENDENCIES = { # These are not necessarily dependencies, but just minimal required changes # if a given define is the only one enabled from an exclusive group. EXCLUSIVE_GROUPS = { - 'MBEDTLS_SHA224_C': ['MBEDTLS_SHA256_C'], + 'MBEDTLS_SHA256_C': ['MBEDTLS_SHA224_C'], 'MBEDTLS_SHA384_C': ['MBEDTLS_SHA512_C'], 'MBEDTLS_SHA512_C': ['!MBEDTLS_SSL_COOKIE_C'], 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['!MBEDTLS_ECDSA_C', @@ -351,7 +349,9 @@ would match this regular expression.""" class ComplementaryDomain(BaseDomain): # pylint: disable=too-few-public-methods """A domain consisting of a set of loosely-related settings. Establish a list of configuration symbols. For each symbol, run a test job -with this symbol unset.""" +with this symbol unset. +If exclude is a regular expression, skip generated jobs whose description +would match this regular expression.""" def __init__(self, symbols, commands, exclude=None): """Build a domain for the specified list of configuration symbols. Each job in the domain disables one of the specified symbols. @@ -367,9 +367,12 @@ Each job runs the specified commands.""" self.jobs.append(job) class DualDomain(ExclusiveDomain, ComplementaryDomain): # pylint: disable=too-few-public-methods - """A domain that contains both the ExclusiveDomain and BaseDomain tests""" + """A domain that contains both the ExclusiveDomain and BaseDomain tests. +Both parent class __init__ calls are performed in any order and +each call adds respective jobs. The job array initialization is done once in +BaseDomain, before the parent __init__ calls.""" def __init__(self, symbols, commands, exclude=None): - super().__init__(symbols=symbols, commands=commands, exclude=exclude) + super().__init__(symbols, commands, exclude) class CipherInfo: # pylint: disable=too-few-public-methods """Collect data about cipher.h.""" @@ -402,7 +405,6 @@ class DomainData: # Find cipher IDs (block permutations and stream ciphers --- chaining # and padding modes are exercised separately) information by parsing # cipher.h, as the information is not readily available in mbedtls_config.h. - cipher_info = CipherInfo() # Find block cipher chaining and padding mode enabling macros by name. cipher_chaining_symbols = self.config_symbols_matching(r'MBEDTLS_CIPHER_MODE_\w+\Z') @@ -417,12 +419,15 @@ class DomainData: build_and_test), # Elliptic curves. Run the test suites. 'curves': ExclusiveDomain(curve_symbols, build_and_test), - # Hash algorithms. Exclude configurations with only one - # hash which is obsolete. Run the test suites. Exclude - # SHA512 and SHA256, as these are tested with SHA384 and SHA224. + # Hash algorithms. Exclude three groups: + # - Exclusive domain of MD, RIPEMD, SHA1 (obsolete); + # - Exclusive domain of SHA224 (tested with and depends on SHA256); + # - Complementary domain of SHA224 and SHA384 - tested with and depend + # on SHA256 and SHA512, respectively. 'hashes': DualDomain(hash_symbols, build_and_test, - exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_|SHA256_|SHA512_)' \ - '|!MBEDTLS_(SHA256_|SHA512_)'), + exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_)' \ + '|MBEDTLS_SHA224_'\ + '|!MBEDTLS_(SHA224_|SHA384_)'), # Key exchange types. Only build the library and the sample # programs. 'kex': ExclusiveDomain(key_exchange_symbols, From f4b18672ffe43a4ff3e048714905fc8883f70a07 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 14 Oct 2022 07:57:00 -0400 Subject: [PATCH 0766/1028] depends.py: fix TLS 1.3 requirements Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 48e2f2b707..e1c8c13e24 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -257,8 +257,7 @@ REVERSE_DEPENDENCIES = { 'MBEDTLS_ENTROPY_FORCE_SHA256', 'MBEDTLS_SHA224_C', 'MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT', - 'MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY', - 'MBEDTLS_SSL_PROTO_TLS1_3'], + 'MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY'], 'MBEDTLS_SHA512_C': ['MBEDTLS_SHA384_C', 'MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT', 'MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY'], @@ -267,7 +266,6 @@ REVERSE_DEPENDENCIES = { 'MBEDTLS_SHA256_C', 'MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT', 'MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY'], - 'MBEDTLS_SHA384_C': ['MBEDTLS_SSL_PROTO_TLS1_3'], 'MBEDTLS_X509_RSASSA_PSS_SUPPORT': [] } @@ -277,7 +275,7 @@ REVERSE_DEPENDENCIES = { EXCLUSIVE_GROUPS = { 'MBEDTLS_SHA256_C': ['MBEDTLS_SHA224_C'], 'MBEDTLS_SHA384_C': ['MBEDTLS_SHA512_C'], - 'MBEDTLS_SHA512_C': ['!MBEDTLS_SSL_COOKIE_C'], + 'MBEDTLS_SHA512_C': ['!MBEDTLS_SSL_COOKIE_C', '!MBEDTLS_SSL_PROTO_TLS1_3'], 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['!MBEDTLS_ECDSA_C', '!MBEDTLS_ECDSA_DETERMINISTIC', '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', @@ -368,11 +366,9 @@ Each job runs the specified commands.""" class DualDomain(ExclusiveDomain, ComplementaryDomain): # pylint: disable=too-few-public-methods """A domain that contains both the ExclusiveDomain and BaseDomain tests. -Both parent class __init__ calls are performed in any order and +Both parent class __init__ calls are performed in any order and each call adds respective jobs. The job array initialization is done once in BaseDomain, before the parent __init__ calls.""" - def __init__(self, symbols, commands, exclude=None): - super().__init__(symbols, commands, exclude) class CipherInfo: # pylint: disable=too-few-public-methods """Collect data about cipher.h.""" From 65b2ac1f1d4da9f7b7b36eda4bcdbdf8417bcf05 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 14 Oct 2022 08:09:16 -0400 Subject: [PATCH 0767/1028] Change the way exclusive groups are defined in depends.py Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 48 +++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index e1c8c13e24..894857ff2d 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -273,34 +273,36 @@ REVERSE_DEPENDENCIES = { # These are not necessarily dependencies, but just minimal required changes # if a given define is the only one enabled from an exclusive group. EXCLUSIVE_GROUPS = { - 'MBEDTLS_SHA256_C': ['MBEDTLS_SHA224_C'], - 'MBEDTLS_SHA384_C': ['MBEDTLS_SHA512_C'], - 'MBEDTLS_SHA512_C': ['!MBEDTLS_SSL_COOKIE_C', '!MBEDTLS_SSL_PROTO_TLS1_3'], - 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['!MBEDTLS_ECDSA_C', - '!MBEDTLS_ECDSA_DETERMINISTIC', - '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', - '!MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', - '!MBEDTLS_ECJPAKE_C', - '!MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], - 'MBEDTLS_ECP_DP_CURVE25519_ENABLED': ['!MBEDTLS_ECDSA_C', - '!MBEDTLS_ECDSA_DETERMINISTIC', - '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', - '!MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', - '!MBEDTLS_ECJPAKE_C', - '!MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], - 'MBEDTLS_ARIA_C': ['!MBEDTLS_CMAC_C'], - 'MBEDTLS_CAMELLIA_C': ['!MBEDTLS_CMAC_C'], - 'MBEDTLS_CHACHA20_C': ['!MBEDTLS_CMAC_C', '!MBEDTLS_CCM_C', '!MBEDTLS_GCM_C'], - 'MBEDTLS_DES_C': ['!MBEDTLS_CCM_C', '!MBEDTLS_GCM_C', '!MBEDTLS_SSL_TICKET_C', - '!MBEDTLS_SSL_CONTEXT_SERIALIZATION'], + 'MBEDTLS_SHA256_C': ['+MBEDTLS_SHA224_C'], + 'MBEDTLS_SHA384_C': ['+MBEDTLS_SHA512_C'], + 'MBEDTLS_SHA512_C': ['-MBEDTLS_SSL_COOKIE_C', + '-MBEDTLS_SSL_PROTO_TLS1_3'], + 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['-MBEDTLS_ECDSA_C', + '-MBEDTLS_ECDSA_DETERMINISTIC', + '-MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', + '-MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', + '-MBEDTLS_ECJPAKE_C', + '-MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], + 'MBEDTLS_ECP_DP_CURVE25519_ENABLED': ['-MBEDTLS_ECDSA_C', + '-MBEDTLS_ECDSA_DETERMINISTIC', + '-MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', + '-MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', + '-MBEDTLS_ECJPAKE_C', + '-MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], + 'MBEDTLS_ARIA_C': ['-MBEDTLS_CMAC_C'], + 'MBEDTLS_CAMELLIA_C': ['-MBEDTLS_CMAC_C'], + 'MBEDTLS_CHACHA20_C': ['-MBEDTLS_CMAC_C', '-MBEDTLS_CCM_C', '-MBEDTLS_GCM_C'], + 'MBEDTLS_DES_C': ['-MBEDTLS_CCM_C', + '-MBEDTLS_GCM_C', + '-MBEDTLS_SSL_TICKET_C', + '-MBEDTLS_SSL_CONTEXT_SERIALIZATION'], } def handle_exclusive_groups(config_settings, symbol): """For every symbol tested in an exclusive group check if there are other defines to be altered. """ for dep in EXCLUSIVE_GROUPS.get(symbol, []): - unset = dep.startswith('!') - if unset: - dep = dep[1:] + unset = dep.startswith('-') + dep = dep[1:] config_settings[dep] = not unset def turn_off_dependencies(config_settings): From c610e7402e0fe5a078c3057a4a59106be0d6c74e Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 14 Oct 2022 10:02:24 -0400 Subject: [PATCH 0768/1028] Formatting & unnecessary (void) fixes Signed-off-by: Andrzej Kurek --- library/ssl_tls13_keys.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index d22aab8de2..730e50c67a 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -38,7 +38,7 @@ #define MBEDTLS_SSL_TLS1_3_LABEL( name, string ) \ .name = string, -#define TLS1_3_EVOLVE_INPUT_SIZE (PSA_HASH_MAX_SIZE > PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE)? \ +#define TLS1_3_EVOLVE_INPUT_SIZE ( PSA_HASH_MAX_SIZE > PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE ) ? \ PSA_HASH_MAX_SIZE : PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE struct mbedtls_ssl_tls13_labels_struct const mbedtls_ssl_tls13_labels = From 22b959d9a56e2e72342d919d9a10fd14b6c4e2b7 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Sun, 16 Oct 2022 12:51:41 -0400 Subject: [PATCH 0769/1028] depends.py - add SHA256 dependency of LMS Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 894857ff2d..9a5599d919 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -257,7 +257,9 @@ REVERSE_DEPENDENCIES = { 'MBEDTLS_ENTROPY_FORCE_SHA256', 'MBEDTLS_SHA224_C', 'MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT', - 'MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY'], + 'MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY', + 'MBEDTLS_LMS_C', + 'MBEDTLS_LMS_PRIVATE'], 'MBEDTLS_SHA512_C': ['MBEDTLS_SHA384_C', 'MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT', 'MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY'], From a44c5bcdb7e9009deaa5c49d1a772c0eba6f9b3b Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Sun, 16 Oct 2022 12:52:20 -0400 Subject: [PATCH 0770/1028] depends.py: rename config_pl usage to config_py Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 9a5599d919..232e3fc77f 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -130,7 +130,7 @@ Remove the backup file if it was saved earlier.""" else: shutil.copy(options.config_backup, options.config) -def run_config_pl(options, args): +def run_config_py(options, args): """Run scripts/config.py with the specified arguments.""" cmd = ['scripts/config.py'] if options.config != 'include/mbedtls/mbedtls_config.h': @@ -144,11 +144,11 @@ def set_reference_config(options): The reference state is the one from which the tested configurations are derived.""" # Turn off options that are not relevant to the tests and slow them down. - run_config_pl(options, ['full']) - run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BACKTRACE']) - run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BUFFER_ALLOC_C']) - run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_DEBUG']) - run_config_pl(options, ['unset', 'MBEDTLS_TEST_HOOKS']) + run_config_py(options, ['full']) + run_config_py(options, ['unset', 'MBEDTLS_MEMORY_BACKTRACE']) + run_config_py(options, ['unset', 'MBEDTLS_MEMORY_BUFFER_ALLOC_C']) + run_config_py(options, ['unset', 'MBEDTLS_MEMORY_DEBUG']) + run_config_py(options, ['unset', 'MBEDTLS_TEST_HOOKS']) def collect_config_symbols(options): """Read the list of settings from mbedtls_config.h. @@ -198,7 +198,7 @@ If what is False, announce that the job has failed.''' args = ['unset', key] else: args = ['set', key, value] - run_config_pl(options, args) + run_config_py(options, args) def test(self, options): '''Run the job's build and test commands. From b489f958b81af0e27fadba63c7106e6c05f2e9a1 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 17 Oct 2022 06:51:10 -0400 Subject: [PATCH 0771/1028] depends.py: remove config options that are unset anyway Over the lifespan of this script these options have been removed from the "full" configuration. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 232e3fc77f..c5d0bbadec 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -145,9 +145,6 @@ The reference state is the one from which the tested configurations are derived.""" # Turn off options that are not relevant to the tests and slow them down. run_config_py(options, ['full']) - run_config_py(options, ['unset', 'MBEDTLS_MEMORY_BACKTRACE']) - run_config_py(options, ['unset', 'MBEDTLS_MEMORY_BUFFER_ALLOC_C']) - run_config_py(options, ['unset', 'MBEDTLS_MEMORY_DEBUG']) run_config_py(options, ['unset', 'MBEDTLS_TEST_HOOKS']) def collect_config_symbols(options): From 9387b7b34e9c10045ec49c2995e3dfa6ae04f02f Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 4 Oct 2022 08:06:59 -0400 Subject: [PATCH 0772/1028] Add a temporary solution to create a seedfile This caused problems if a config with SHA512 was compiled after a config without it and the seedfile did not contain enough data. Signed-off-by: Andrzej Kurek --- library/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/library/Makefile b/library/Makefile index 624773dc19..b1cdc7f0ea 100644 --- a/library/Makefile +++ b/library/Makefile @@ -199,6 +199,7 @@ all: shared static endif static: libmbedcrypto.a libmbedx509.a libmbedtls.a + cd ../tests && echo "This is a seedfile that contains 64 bytes (65 on Windows)......" > seedfile shared: libmbedcrypto.$(DLEXT) libmbedx509.$(DLEXT) libmbedtls.$(DLEXT) From 629c412e812a9e9b0fdd425b68ec289320940039 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 17 Oct 2022 08:34:40 -0400 Subject: [PATCH 0773/1028] depends.py documentation fixes Now that the format of exclusive groups has been changed, update the documentation using it too. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index c5d0bbadec..b86192079f 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -# Copyright (c) 2018, Arm Limited, All Rights Reserved. +# Copyright (c) 2022, Arm Limited, All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -27,7 +27,7 @@ in the arguments is parsed to extract any configuration options (collect_config_ Then, test domains (groups of jobs, tests) are built based on predefined data collected in the DomainData class. Here, each domain has five major traits: -- domain name, can be used to run only specific tests via commandline; +- domain name, can be used to run only specific tests via command-line; - configuration building method, described in detail below; - list of symbols passed to the configuration building method; - commands to be run on each job (only build, build and test, or any other custom); @@ -44,17 +44,17 @@ The configuration building method can be one of the three following: direct dependencies, but rather non-trivial results of other configs missing. Then look for any unset symbols and handle their reverse dependencies. Examples of EXCLUSIVE_GROUPS usage: - - MBEDTLS_SHA224 job turns off all hashes except SHA224, however, when investigating - reverse dependencies, SHA256 is found to depend on SHA224, so it is disabled, - and then SHA224 is found to depend on SHA256, so it is also disabled. To handle - this, there's a field in EXCLUSIVE_GROUPS that states that in a SHA224 test SHA256 + - MBEDTLS_SHA256 job turns off all hashes except SHA256, however, when investigating + reverse dependencies, SHA224 is found to depend on SHA256, so it is disabled, + and then SHA256 is found to depend on SHA224, so it is also disabled. To handle + this, there's a field in EXCLUSIVE_GROUPS that states that in a SHA256 test SHA224 should also be enabled before processing reverse dependencies: - 'MBEDTLS_SHA224_C': ['MBEDTLS_SHA256_C'] + 'MBEDTLS_SHA256_C': ['+MBEDTLS_SHA224_C'] - MBEDTLS_SHA512_C job turns off all hashes except SHA512. MBEDTLS_SSL_COOKIE_C requires either SHA256 or SHA384 to work, so it also has to be disabled. This is not a dependency on SHA512_C, but a result of an exclusive domain config building method. Relevant field: - 'MBEDTLS_SHA512_C': ['!MBEDTLS_SSL_COOKIE_C'], + 'MBEDTLS_SHA512_C': ['-MBEDTLS_SSL_COOKIE_C'], - DualDomain - combination of the two above - both complementary and exclusive domain job generation code will be run. Currently only used for hashes. @@ -507,7 +507,7 @@ def main(): description= "Test Mbed TLS with a subset of algorithms.\n\n" "Example usage:\n" - r"./tests/scripts/depends.py \!MBEDTLS_SHA1_C MBEDTLS_SHA224_C""\n" + r"./tests/scripts/depends.py \!MBEDTLS_SHA1_C MBEDTLS_SHA256_C""\n" "./tests/scripts/depends.py MBEDTLS_AES_C hashes\n" "./tests/scripts/depends.py cipher_id cipher_chaining\n") parser.add_argument('--color', metavar='WHEN', From b8a97e7520280112eef0083aa9ef19dbd67ee23a Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 17 Oct 2022 08:39:09 -0400 Subject: [PATCH 0774/1028] depends.py: rename domains argument to tasks Tasks can consist of domains and/or jobs. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index b86192079f..ce7fee65c2 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -464,14 +464,14 @@ def run_tests(options, domain_data): """Run the desired jobs. domain_data should be a DomainData instance that describes the available domains and jobs. -Run the jobs listed in options.domains.""" +Run the jobs listed in options.tasks.""" if not hasattr(options, 'config_backup'): options.config_backup = options.config + '.bak' colors = Colors(options) jobs = [] failures = [] successes = [] - for name in options.domains: + for name in options.tasks: jobs += domain_data.get_jobs(name) backup_config(options) try: @@ -534,15 +534,14 @@ def main(): parser.add_argument('--make-command', metavar='CMD', help='Command to run instead of make (e.g. gmake)', action='store', default='make') - parser.add_argument('domains', metavar='DOMAIN', nargs='*', - help='The domain(s) to test (default: all). This can \ - be also a list of jobs to run.', + parser.add_argument('tasks', metavar='TASKS', nargs='*', + help='The domain(s) or job(s) to test (default: all).', default=True) options = parser.parse_args() os.chdir(options.directory) domain_data = DomainData(options) - if options.domains is True: - options.domains = sorted(domain_data.domains.keys()) + if options.tasks is True: + options.tasks = sorted(domain_data.domains.keys()) if options.list: for arg in options.list: for domain_name in sorted(getattr(domain_data, arg).keys()): From f4b8a4f9719a7009bd137da3de9f0b08863585d4 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 19 Oct 2022 09:13:11 -0400 Subject: [PATCH 0775/1028] pylint: ignore duplicated imports It is not uncommon to have the same imports across different python files. Ignore it when running pylint. Starting at pylint 2.14.5 this is the default value. Signed-off-by: Andrzej Kurek --- .pylintrc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.pylintrc b/.pylintrc index d217ff69c5..10c93f8791 100644 --- a/.pylintrc +++ b/.pylintrc @@ -73,3 +73,7 @@ reports=no # Allow unused variables if their name starts with an underscore. # [unused-argument] dummy-variables-rgx=_.* + +[SIMILARITIES] +# Ignore imports when computing similarities. +ignore-imports=yes From c6004a2ab3139e36207ca1d3d6f5da76abe4e3f5 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 4 Oct 2022 16:16:16 +0100 Subject: [PATCH 0776/1028] Move bignum_core tests into separate files Test cases for mpi_core_add_if, mpi_core_mla, mpi_core_sub, mpi_core_montmul are not copied into new files, these are generated in subsequent commits. Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_core.data | 264 + tests/suites/test_suite_bignum_core.function | 635 + tests/suites/test_suite_mpi.data | 13667 ----------------- tests/suites/test_suite_mpi.function | 622 - 4 files changed, 899 insertions(+), 14289 deletions(-) create mode 100644 tests/suites/test_suite_bignum_core.data create mode 100644 tests/suites/test_suite_bignum_core.function diff --git a/tests/suites/test_suite_bignum_core.data b/tests/suites/test_suite_bignum_core.data new file mode 100644 index 0000000000..d61acd00ee --- /dev/null +++ b/tests/suites/test_suite_bignum_core.data @@ -0,0 +1,264 @@ +Test mbedtls_mpi_core_io functions with null pointers +mpi_core_io_null + +Test mbedtls_mpi_core_io_be #1 (Buffer and limbs just fit, input limb-aligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:0:0 + +Test mbedtls_mpi_core_io_be #2 (Buffer and limbs just fit, input unaligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:0:0 + +Test mbedtls_mpi_core_io_be #3 (Buffer just fits, extra limbs, input limb-aligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:0:0 + +Test mbedtls_mpi_core_io_be #4 (Buffer just fits, extra limbs, input unaligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:0:0 + +Test mbedtls_mpi_core_io_be #5 (Extra limbs, buffer aligned to extra limbs, input limb-aligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:0:0 + +Test mbedtls_mpi_core_io_be #6 (Extra limbs, buffer aligned to extra limbs, input unaligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:0:0 + +Test mbedtls_mpi_core_io_be #7 (Buffer and limbs just fit, input limb-aligned with leading zeroes) +mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:24:0:0 + +Test mbedtls_mpi_core_io_be #8 (Buffer and limbs just fit, input unaligned with leading zeroes) +mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:24:0:0 + +Test mbedtls_mpi_core_io_be #9 (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) +mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:28:0:0 + +Test mbedtls_mpi_core_io_be #10 (Buffer just fits, extra limbs, input unaligned with leading zeroes) +mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:28:0:0 + +Test mbedtls_mpi_core_io_be #11 (Zero) +mpi_core_io_be:"00":1:1:0:0 + +Test mbedtls_mpi_core_io_be #12 (Zero, empty output) +mpi_core_io_be:"00":0:1:0:0 + +Test mbedtls_mpi_core_io_be #13 (Zero, empty input) +mpi_core_io_be:"":1:1:0:0 + +Test mbedtls_mpi_core_io_be #14 (One) +mpi_core_io_be:"01":1:1:0:0 + +Test mbedtls_mpi_core_io_be #15 (One limb, 32 bit) +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_io_be:"ff000000":4:1:0:0 + +Test mbedtls_mpi_core_io_be #16 (One limb, 64 bit) +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_io_be:"ff00000000000000":8:2:0:0 + +Test mbedtls_mpi_core_io_be #17 (not enough limbs, input limb-aligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 + +Test mbedtls_mpi_core_io_be #18 (not enough limbs, input unaligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 + +Test mbedtls_mpi_core_io_be #19 (buffer too small, input limb-aligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +Test mbedtls_mpi_core_io_be #20 (buffer too small, input unaligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +Test mbedtls_mpi_core_io_be #21 (Buffer and limbs fit, input unaligned, odd number of limbs) +mpi_core_io_be:"00de4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":82:21:0:0 + +Test mbedtls_mpi_core_io_le #1 (Buffer and limbs just fit, input limb-aligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:0:0 + +Test mbedtls_mpi_core_io_le #2 (Buffer and limbs just fit, input unaligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:0:0 + +Test mbedtls_mpi_core_io_le #3 (Buffer just fits, extra limbs, input limb-aligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:0:0 + +Test mbedtls_mpi_core_io_le #4 (Buffer just fits, extra limbs, input unaligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:0:0 + +Test mbedtls_mpi_core_io_le #5 (Extra limbs, buffer aligned to extra limbs, input limb-aligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:0:0 + +Test mbedtls_mpi_core_io_le #6 (Extra limbs, buffer aligned to extra limbs, input unaligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:0:0 + +Test mbedtls_mpi_core_io_le #7 (Buffer and limbs just fit, input limb-aligned with leading zeroes) +mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:24:0:0 + +Test mbedtls_mpi_core_io_le #8 (Buffer and limbs just fit, input unaligned with leading zeroes) +mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:24:0:0 + +Test mbedtls_mpi_core_io_le #9 (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) +mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:28:0:0 + +Test mbedtls_mpi_core_io_le #10 (Buffer just fits, extra limbs, input unaligned with leading zeroes) +mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:28:0:0 + +Test mbedtls_mpi_core_io_le #11 (Zero) +mpi_core_io_le:"00":1:1:0:0 + +Test mbedtls_mpi_core_io_le #12 (Zero, empty output) +mpi_core_io_le:"00":0:1:0:0 + +Test mbedtls_mpi_core_io_le #13 (Zero, empty input) +mpi_core_io_le:"":1:1:0:0 + +Test mbedtls_mpi_core_io_le #14 (One) +mpi_core_io_le:"01":1:1:0:0 + +Test mbedtls_mpi_core_io_le #15 (One limb) +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_io_le:"000000ff":4:1:0:0 + +Test mbedtls_mpi_core_io_le #16 (One limb) +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_io_le:"00000000000000ff":8:2:0:0 + +Test mbedtls_mpi_core_io_le #17 (not enough limbs, input limb-aligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 + +Test mbedtls_mpi_core_io_le #18 (not enough limbs, input unaligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 + +Test mbedtls_mpi_core_io_le #19 (buffer too small, input limb-aligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +Test mbedtls_mpi_core_io_le #20 (buffer too small, input unaligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +Test mbedtls_mpi_core_io_le #21 (Buffer and limbs fit, input unaligned, odd number of limbs) +mpi_core_io_le:"de4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b442400":82:21:0:0 + +mbedtls_mpi_core_lt_ct: x=y (1 limb) +mpi_core_lt_ct:"2B5":"2B5":0 + +mbedtls_mpi_core_lt_ct: x>y (1 limb) +mpi_core_lt_ct:"2B5":"2B4":0 + +mbedtls_mpi_core_lt_ct: xy (63 bit x, y first byte greater) +mpi_core_lt_ct:"7FFFFFFFFFFFFFFF":"00000000000000FF":0 + +mbedtls_mpi_core_lt_ct: xy (64 bit x, y=x-1) +mpi_core_lt_ct:"8000000000000000":"7FFFFFFFFFFFFFFF":0 + +mbedtls_mpi_core_lt_ct: xy (64 bit x, y=1) +mpi_core_lt_ct:"8000000000000000":"0000000000000001":0 + +mbedtls_mpi_core_lt_ct: xy (64 bit x, y=0) +mpi_core_lt_ct:"8000000000000000":"0000000000000000":0 + +mbedtls_mpi_core_lt_ct: xy (64 bit x, first bytes equal) +mpi_core_lt_ct:"FFFFFFFFFFFFFFFF":"00000000000000FF":0 + +mbedtls_mpi_core_lt_ct: xy (31 bit x, y first byte greater) +mpi_core_lt_ct:"7FFFFFFF":"000000FF":0 + +mbedtls_mpi_core_lt_ct: xy (32 bit x, y=x-1) +mpi_core_lt_ct:"80000000":"7FFFFFFF":0 + +mbedtls_mpi_core_lt_ct: xy (32 bit x, y=1) +mpi_core_lt_ct:"80000000":"00000001":0 + +mbedtls_mpi_core_lt_ct: xy (32 bit x, y=0) +mpi_core_lt_ct:"80000000":"00000000":0 + +mbedtls_mpi_core_lt_ct: xy (32 bit x, first bytes equal) +mpi_core_lt_ct:"FFFFFFFF":"000000FF":0 + +mbedtls_mpi_core_lt_ct: xy, equal MS limbs +mpi_core_lt_ct:"EEFFFFFFFFFFFFFFFF":"EEFFFFFFFFFFFFFFF1":0 + +mbedtls_mpi_core_lt_ct: x=y (multi-limb) +mpi_core_lt_ct:"EEFFFFFFFFFFFFFFFF":"EEFFFFFFFFFFFFFFFF":0 + +mbedtls_mpi_core_lt_ct: xy (alternating limbs) +mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 + +mbedtls_mpi_montg_init #1 +mpi_montg_init:"000000000000001d":"cb08d3dcb08d3dcb" + +mbedtls_mpi_montg_init #2 +mpi_montg_init:"0000000000000009":"71c71c71c71c71c7" + +mbedtls_mpi_montg_init #3 +mpi_montg_init:"000000000001869f":"34d76bc8e5e3eaa1" + +mbedtls_mpi_montg_init #4 +mpi_montg_init:"00000000000080000000000000000001":"ffffffffffffffff" + +mbedtls_mpi_montg_init #5 +mpi_montg_init:"0000000000a1ffffffffffffffffffff":"0000000000000001" + +mbedtls_mpi_montg_init #6 +mpi_montg_init:"00000000000257ffffffffffffffffff":"0000000000000001" + +mbedtls_mpi_montg_init #7 +mpi_montg_init:"b91ba63180c726fbd57786f27f1ede97a3b40c59a7fcfb5898f076e9af57028d":"32edc7e1ac2e6fbb" + +mbedtls_mpi_montg_init #8 +mpi_montg_init:"b3a119602ee213cde28581ecd892e0f592a338655dce4ca88054b3d124d0e561":"e41cfb909805815f" + +mbedtls_mpi_montg_init #9 +mpi_montg_init:"0284139ea19c139ebe09a8111926aaa39a2c2be12ed487a809d3cb5bc55854725b4cdcb5734c58f90b2f60d99cc1950cdbc8d651793e93c9c6f0ead752500a32c56c62082912b66132b2a6aa42ada923e1ad22ceb7ba0123":"c02e2164b293c975" + +mbedtls_mpi_montg_init #10 +mpi_montg_init:"00000000000000011a9351d2d32ccd568e75bf8b4ebbb2a36be691b55832edac662ff79803df8af525fba453068be16ac3920bcc1b468f8f7fe786e0fa4ecbabcad31e5e3b05def802eb8600deaf11ef452487db878df20a80606e4bb6a163b83895d034cc8b53dbcd005be42ffdd2ce99bed06089a0b79d":"ffec8978c055794b" + +mbedtls_mpi_montg_init #11 +mpi_montg_init:"eeaf0ab9adb38dd69c33f80afa8fc5e86072618775ff3c0b9ea2314c9c256576d674df7496ea81d3383b4813d692c6e0e0d5d8e250b98be48e495c1d6089dad15dc7d7b46154d6b6ce8ef4ad69b15d4982559b297bcf1885c529f566660e57ec68edbc3c05726cc02fd4cbf4976eaa9afd5138fe8376435b9fc61d2fc0eb06e3":"7b07a0b0379b9135" + +mbedtls_mpi_montg_init #12 +mpi_montg_init:"00000007a364ab3de755f924642bd5273524234f78395da1ed9098f39af4fe248288b0cb7f1c27214588969479d7dc9f0d327b5544dd4c095aa1fa271df421fe9ee460855cc8423d223e2c85dc793f6babdca7fc804ea1f408f867db053bfd98c45085ea5d805c78d2863bacdfcaf4c6147ebb74a9056045074785714c0b84ed":"8f54b233c070871b" + +mbedtls_mpi_montg_init #13 +mpi_montg_init:"e2df85c83ee8463b3af26805791cc0b1ba1af89564e887a63d5ba18ea72fb593b664cf8ace78241ea3109b7644510e02324a5c1e9a85daada3c383759d7678ce8d8886b51a3237dc84b543de4f843c77fc77ba08ef90e7e96ba622478f6b96daa3e9b8511f36279fb0120ef93bad2090e7878346fe4ae29ad61be48b6835e8407d0849422e05c7a4d1e02322f2675056d73d4c5a1ab376bfaccfd61ff7d64b715c9525a7ed8dcda1144f8722c30d12ba3d95221d897edc825a1598a645e2c457":"b777a905d9239899" + +mbedtls_mpi_montg_init #14 +mpi_montg_init:"baea2d65939296fc2536f18f2a4042a741f33088ecd5000e76c67a466e7a1e696f8ee9a15497168b3a2b597799dc9475909ebbc64b96f233430c6aa3e4a86e9352b0230081502da09ef41dc0a164a1c6a31bd1338e359a28c78ef50c89f06a46b46a27d7245bba7468334625687201d62ef084de4c5190dfe70c14a318204492de6edd138e14e9337fda739dcadd0212302db7770de28d8c5c79b6a6b5f927e656e157cd7e41204ec39731fe3608ecd4b885a194647fe7f02b74639cc76cdf03":"827ef0810f71fc55" + +mbedtls_mpi_montg_init #15 +mpi_montg_init:"bf741f75e28a44e271cf43e68dbadd23c72d2f2e1fc78a6d6aaaadf2ccbf26c9a232aff5b3f3f29323b114f3018144ed9438943e07820e222137d3bb229b61671e61f75f6021a26436df9e669929fa392df021f105d2fce0717468a522018721ccde541b9a7b558128419f457ef33a5753f00c20c2d709727eef6278c55b278b10abe1d13e538514128b5dcb7bfd015e0fdcb081555071813974135d5ab5000630a94f5b0f4021a504ab4f3df2403e6140b9939f8bbe714635f5cff10744be03":"aab901da57bba355" diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function new file mode 100644 index 0000000000..a24bade199 --- /dev/null +++ b/tests/suites/test_suite_bignum_core.function @@ -0,0 +1,635 @@ +/* BEGIN_HEADER */ +#include "mbedtls/bignum.h" +#include "mbedtls/entropy.h" +#include "bignum_core.h" +#include "constant_time_internal.h" +#include "test/constant_flow.h" + +/* END_HEADER */ + +/* BEGIN_DEPENDENCIES + * depends_on:MBEDTLS_BIGNUM_C + * END_DEPENDENCIES + */ + +/* BEGIN_CASE */ +void mpi_core_io_null() +{ + mbedtls_mpi_uint X = 0; + int ret; + + ret = mbedtls_mpi_core_read_be( &X, 1, NULL, 0 ); + TEST_EQUAL( ret, 0 ); + ret = mbedtls_mpi_core_write_be( &X, 1, NULL, 0 ); + TEST_EQUAL( ret, 0 ); + + ret = mbedtls_mpi_core_read_be( NULL, 0, NULL, 0 ); + TEST_EQUAL( ret, 0 ); + ret = mbedtls_mpi_core_write_be( NULL, 0, NULL, 0 ); + TEST_EQUAL( ret, 0 ); + + ret = mbedtls_mpi_core_read_le( &X, 1, NULL, 0 ); + TEST_EQUAL( ret, 0 ); + ret = mbedtls_mpi_core_write_le( &X, 1, NULL, 0 ); + TEST_EQUAL( ret, 0 ); + + ret = mbedtls_mpi_core_read_le( NULL, 0, NULL, 0 ); + TEST_EQUAL( ret, 0 ); + ret = mbedtls_mpi_core_write_le( NULL, 0, NULL, 0 ); + TEST_EQUAL( ret, 0 ); + +exit: + ; +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_io_be( data_t *input, int nb_int, int nx_32_int, int iret, + int oret ) +{ + if( iret != 0 ) + TEST_ASSERT( oret == 0 ); + + TEST_LE_S( 0, nb_int ); + size_t nb = nb_int; + + unsigned char buf[1024]; + TEST_LE_U( nb, sizeof( buf ) ); + + /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need + * to halve the number of limbs to have the same size. */ + size_t nx; + TEST_LE_S( 0, nx_32_int ); + if( sizeof( mbedtls_mpi_uint ) == 8 ) + nx = nx_32_int / 2 + nx_32_int % 2; + else + nx = nx_32_int; + + mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; + TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); + + int ret = mbedtls_mpi_core_read_be( X, nx, input->x, input->len ); + TEST_EQUAL( ret, iret ); + + if( iret == 0 ) + { + ret = mbedtls_mpi_core_write_be( X, nx, buf, nb ); + TEST_EQUAL( ret, oret ); + } + + if( ( iret == 0 ) && ( oret == 0 ) ) + { + if( nb > input->len ) + { + size_t leading_zeroes = nb - input->len; + TEST_ASSERT( memcmp( buf + nb - input->len, input->x, input->len ) == 0 ); + for( size_t i = 0; i < leading_zeroes; i++ ) + TEST_EQUAL( buf[i], 0 ); + } + else + { + size_t leading_zeroes = input->len - nb; + TEST_ASSERT( memcmp( input->x + input->len - nb, buf, nb ) == 0 ); + for( size_t i = 0; i < leading_zeroes; i++ ) + TEST_EQUAL( input->x[i], 0 ); + } + } + +exit: + ; +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_io_le( data_t *input, int nb_int, int nx_32_int, int iret, + int oret ) +{ + if( iret != 0 ) + TEST_ASSERT( oret == 0 ); + + TEST_LE_S( 0, nb_int ); + size_t nb = nb_int; + + unsigned char buf[1024]; + TEST_LE_U( nb, sizeof( buf ) ); + + /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need + * to halve the number of limbs to have the same size. */ + size_t nx; + TEST_LE_S( 0, nx_32_int ); + if( sizeof( mbedtls_mpi_uint ) == 8 ) + nx = nx_32_int / 2 + nx_32_int % 2; + else + nx = nx_32_int; + + mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; + TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); + + int ret = mbedtls_mpi_core_read_le( X, nx, input->x, input->len ); + TEST_EQUAL( ret, iret ); + + if( iret == 0 ) + { + ret = mbedtls_mpi_core_write_le( X, nx, buf, nb ); + TEST_EQUAL( ret, oret ); + } + + if( ( iret == 0 ) && ( oret == 0 ) ) + { + if( nb > input->len ) + { + TEST_ASSERT( memcmp( buf, input->x, input->len ) == 0 ); + for( size_t i = input->len; i < nb; i++ ) + TEST_EQUAL( buf[i], 0 ); + } + else + { + TEST_ASSERT( memcmp( input->x, buf, nb ) == 0 ); + for( size_t i = nb; i < input->len; i++ ) + TEST_EQUAL( input->x[i], 0 ); + } + } + +exit: + ; +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_lt_ct( char *input_X, char *input_Y, int exp_ret ) +{ + mbedtls_mpi_uint *X = NULL; + size_t X_limbs; + mbedtls_mpi_uint *Y = NULL; + size_t Y_limbs; + int ret; + + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &X_limbs, input_X ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &Y, &Y_limbs, input_Y ) ); + + /* We need two same-length limb arrays */ + TEST_EQUAL( X_limbs, Y_limbs ); + + TEST_CF_SECRET( X, X_limbs * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, X_limbs * sizeof( mbedtls_mpi_uint ) ); + + ret = mbedtls_mpi_core_lt_ct( X, Y, X_limbs ); + TEST_EQUAL( ret, exp_ret ); + +exit: + mbedtls_free( X ); + mbedtls_free( Y ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_add_if( char * input_A, char * input_B, + char * input_S4, int carry4, + char * input_S8, int carry8 ) +{ + mbedtls_mpi S4, S8, A, B; + mbedtls_mpi_uint *a = NULL; /* first value to add */ + mbedtls_mpi_uint *b = NULL; /* second value to add */ + mbedtls_mpi_uint *sum = NULL; + mbedtls_mpi_uint *d = NULL; /* destination - the in/out first operand */ + + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &B ); + mbedtls_mpi_init( &S4 ); + mbedtls_mpi_init( &S8 ); + + TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &S4, input_S4 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &S8, input_S8 ) ); + + /* We only need to work with one of (S4, carry4) or (S8, carry8) depending + * on sizeof(mbedtls_mpi_uint) + */ + mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &S4 : &S8; + mbedtls_mpi_uint carry = ( sizeof(mbedtls_mpi_uint) == 4 ) ? carry4 : carry8; + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, A.s ); + TEST_EQUAL( 1, B.s ); + TEST_EQUAL( 1, X->s ); + + /* Test cases are such that A <= B, so #limbs should be <= */ + TEST_LE_U( A.n, B.n ); + TEST_LE_U( X->n, B.n ); + + /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ + + /* mbedtls_mpi_core_add_if() uses input arrays of mbedtls_mpi_uints which + * must be the same size. The MPIs we've read in will only have arrays + * large enough for the number they represent. Therefore we create new + * raw arrays of mbedtls_mpi_uints and populate them from the MPIs we've + * just read in. + * + * We generated test data such that B was always >= A, so that's how many + * limbs each of these need. + */ + size_t limbs = B.n; + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); + + /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ + ASSERT_ALLOC( a, bytes ); + ASSERT_ALLOC( b, bytes ); + ASSERT_ALLOC( sum, bytes ); + ASSERT_ALLOC( d, bytes ); + + /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as + * processed by mbedtls_mpi_core_add_if()) are little endian, we can just + * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()) + */ + memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); + memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); + memcpy( sum, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + + /* The test cases have a <= b to avoid repetition, so we test a + b then, + * if a != b, b + a. If a == b, we can test when a and b are aliased */ + + /* a + b */ + + /* cond = 0 => d unchanged, no carry */ + memcpy( d, a, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, b, limbs, 0 ) ); + ASSERT_COMPARE( d, bytes, a, bytes ); + + /* cond = 1 => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, b, limbs, 1 ) ); + ASSERT_COMPARE( d, bytes, sum, bytes ); + + if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) + { + /* a == b, so test where a and b are aliased */ + + /* cond = 0 => d unchanged, no carry */ + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( b, b, limbs, 0 ) ); + ASSERT_COMPARE( b, bytes, B.p, bytes ); + + /* cond = 1 => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( b, b, limbs, 1 ) ); + ASSERT_COMPARE( b, bytes, sum, bytes ); + } + else + { + /* a != b, so test b + a */ + + /* cond = 0 => d unchanged, no carry */ + memcpy( d, b, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, a, limbs, 0 ) ); + ASSERT_COMPARE( d, bytes, b, bytes ); + + /* cond = 1 => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, a, limbs, 1 ) ); + ASSERT_COMPARE( d, bytes, sum, bytes ); + } + +exit: + mbedtls_free( a ); + mbedtls_free( b ); + mbedtls_free( sum ); + mbedtls_free( d ); + + mbedtls_mpi_free( &S4 ); + mbedtls_mpi_free( &S8 ); + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &B ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_sub( char * input_A, char * input_B, + char * input_X4, char * input_X8, + int carry ) +{ + mbedtls_mpi A, B, X4, X8; + mbedtls_mpi_uint *a = NULL; + mbedtls_mpi_uint *b = NULL; + mbedtls_mpi_uint *x = NULL; /* expected */ + mbedtls_mpi_uint *r = NULL; /* result */ + + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &B ); + mbedtls_mpi_init( &X4 ); + mbedtls_mpi_init( &X8 ); + + TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, A.s ); + TEST_EQUAL( 1, B.s ); + TEST_EQUAL( 1, X4.s ); + TEST_EQUAL( 1, X8.s ); + + /* Get the number of limbs we will need */ + size_t limbs = MAX( A.n, B.n ); + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); + + /* We only need to work with X4 or X8, depending on sizeof(mbedtls_mpi_uint) */ + mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; + + /* The result shouldn't have more limbs than the longest input */ + TEST_LE_U( X->n, limbs ); + + /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ + + /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ + ASSERT_ALLOC( a, bytes ); + ASSERT_ALLOC( b, bytes ); + ASSERT_ALLOC( x, bytes ); + ASSERT_ALLOC( r, bytes ); + + /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as + * processed by mbedtls_mpi_core_sub()) are little endian, we can just + * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()) + */ + memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); + memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); + memcpy( x, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + + /* 1a) r = a - b => we should get the correct carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, a, b, limbs ) ); + + /* 1b) r = a - b => we should get the correct result */ + ASSERT_COMPARE( r, bytes, x, bytes ); + + /* 2 and 3 test "r may be aliased to a or b" */ + /* 2a) r = a; r -= b => we should get the correct carry (use r to avoid clobbering a) */ + memcpy( r, a, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, r, b, limbs ) ); + + /* 2b) r -= b => we should get the correct result */ + ASSERT_COMPARE( r, bytes, x, bytes ); + + /* 3a) r = b; r = a - r => we should get the correct carry (use r to avoid clobbering b) */ + memcpy( r, b, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, a, r, limbs ) ); + + /* 3b) r = a - b => we should get the correct result */ + ASSERT_COMPARE( r, bytes, x, bytes ); + + /* 4 tests "r may be aliased to [...] both" */ + if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) + { + memcpy( r, b, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, r, r, limbs ) ); + ASSERT_COMPARE( r, bytes, x, bytes ); + } + +exit: + mbedtls_free( a ); + mbedtls_free( b ); + mbedtls_free( x ); + mbedtls_free( r ); + + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &B ); + mbedtls_mpi_free( &X4 ); + mbedtls_mpi_free( &X8 ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_mla( char * input_A, char * input_B, char * input_S, + char * input_X4, char * input_cy4, + char * input_X8, char * input_cy8 ) +{ + /* We are testing A += B * s; A, B are MPIs, s is a scalar. + * + * However, we encode s as an MPI in the .data file as the test framework + * currently only supports `int`-typed scalars, and that doesn't cover the + * full range of `mbedtls_mpi_uint`. + * + * We also have the different results for sizeof(mbedtls_mpi_uint) == 4 or 8. + */ + mbedtls_mpi A, B, S, X4, X8, cy4, cy8; + mbedtls_mpi_uint *a = NULL; + mbedtls_mpi_uint *x = NULL; + + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &B ); + mbedtls_mpi_init( &S ); + mbedtls_mpi_init( &X4 ); + mbedtls_mpi_init( &X8 ); + mbedtls_mpi_init( &cy4 ); + mbedtls_mpi_init( &cy8 ); + + TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &S, input_S ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &cy4, input_cy4 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &cy8, input_cy8 ) ); + + /* The MPI encoding of scalar s must be only 1 limb */ + TEST_EQUAL( 1, S.n ); + + /* We only need to work with X4 or X8, and cy4 or cy8, depending on sizeof(mbedtls_mpi_uint) */ + mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; + mbedtls_mpi *cy = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &cy4 : &cy8; + + /* The carry should only have one limb */ + TEST_EQUAL( 1, cy->n ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, A.s ); + TEST_EQUAL( 1, B.s ); + TEST_EQUAL( 1, S.s ); + TEST_EQUAL( 1, X->s ); + TEST_EQUAL( 1, cy->s ); + + /* Get the (max) number of limbs we will need */ + size_t limbs = MAX( A.n, B.n ); + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); + + /* The result shouldn't have more limbs than the longest input */ + TEST_LE_U( X->n, limbs ); + + /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ + + /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ + ASSERT_ALLOC( a, bytes ); + ASSERT_ALLOC( x, bytes ); + + /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as + * processed by mbedtls_mpi_core_mla()) are little endian, we can just + * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()). + */ + memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); + memcpy( x, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + + /* 1a) A += B * s => we should get the correct carry */ + TEST_EQUAL( mbedtls_mpi_core_mla( a, limbs, B.p, B.n, *S.p ), *cy->p ); + + /* 1b) A += B * s => we should get the correct result */ + ASSERT_COMPARE( a, bytes, x, bytes ); + + if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) + { + /* Check when A and B are aliased */ + memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); + TEST_EQUAL( mbedtls_mpi_core_mla( a, limbs, a, limbs, *S.p ), *cy->p ); + ASSERT_COMPARE( a, bytes, x, bytes ); + } + +exit: + mbedtls_free( a ); + mbedtls_free( x ); + + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &B ); + mbedtls_mpi_free( &S ); + mbedtls_mpi_free( &X4 ); + mbedtls_mpi_free( &X8 ); + mbedtls_mpi_free( &cy4 ); + mbedtls_mpi_free( &cy8 ); +} +/* END_CASE */ + + +/* BEGIN_CASE */ +void mpi_montg_init( char * input_N, char * input_mm ) +{ + mbedtls_mpi N, mm; + + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &mm ); + + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &mm, input_mm ) ); + + /* The MPI encoding of mm should be 1 limb (sizeof(mbedtls_mpi_uint) == 8) or + * 2 limbs (sizeof(mbedtls_mpi_uint) == 4). + * + * The data file contains the expected result for sizeof(mbedtls_mpi_uint) == 8; + * for sizeof(mbedtls_mpi_uint) == 4 it's just the LSW of this. + */ + TEST_ASSERT( mm.n == 1 || mm.n == 2 ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, N.s ); + TEST_EQUAL( 1, mm.s ); + + /* mbedtls_mpi_core_montmul_init() only returns a result, no error possible */ + mbedtls_mpi_uint result = mbedtls_mpi_core_montmul_init( N.p ); + + /* Check we got the correct result */ + TEST_EQUAL( result, mm.p[0] ); + +exit: + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &mm ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_montmul( int limbs_AN4, int limbs_B4, + int limbs_AN8, int limbs_B8, + char * input_A, + char * input_B, + char * input_N, + char * input_X4, + char * input_X8 ) +{ + mbedtls_mpi A, B, N, X4, X8, T, R; + + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &B ); + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &X4 ); /* expected result, sizeof(mbedtls_mpi_uint) == 4 */ + mbedtls_mpi_init( &X8 ); /* expected result, sizeof(mbedtls_mpi_uint) == 8 */ + mbedtls_mpi_init( &T ); + mbedtls_mpi_init( &R ); /* for the result */ + + TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); + + mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; + + int limbs_AN = ( sizeof(mbedtls_mpi_uint) == 4 ) ? limbs_AN4 : limbs_AN8; + int limbs_B = ( sizeof(mbedtls_mpi_uint) == 4 ) ? limbs_B4 : limbs_B8; + + TEST_LE_U( A.n, (size_t)limbs_AN ); + TEST_LE_U( X->n, (size_t)limbs_AN ); + TEST_LE_U( B.n, (size_t)limbs_B ); + TEST_LE_U( limbs_B, limbs_AN ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, A.s ); + TEST_EQUAL( 1, B.s ); + TEST_EQUAL( 1, N.s ); + TEST_EQUAL( 1, X->s ); + + TEST_EQUAL( 0, mbedtls_mpi_grow( &A, limbs_AN ) ); + TEST_EQUAL( 0, mbedtls_mpi_grow( &N, limbs_AN ) ); + TEST_EQUAL( 0, mbedtls_mpi_grow( X, limbs_AN ) ); + TEST_EQUAL( 0, mbedtls_mpi_grow( &B, limbs_B ) ); + + TEST_EQUAL( 0, mbedtls_mpi_grow( &T, limbs_AN * 2 + 1 ) ); + + /* Calculate the Montgomery constant (this is unit tested separately) */ + mbedtls_mpi_uint mm = mbedtls_mpi_core_montmul_init( N.p ); + + TEST_EQUAL( 0, mbedtls_mpi_grow( &R, limbs_AN ) ); /* ensure it's got the right number of limbs */ + + mbedtls_mpi_core_montmul( R.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); + size_t bytes = N.n * sizeof(mbedtls_mpi_uint); + ASSERT_COMPARE( R.p, bytes, X->p, bytes ); + + /* The output (R, above) may be aliased to A - use R to save the value of A */ + + memcpy( R.p, A.p, bytes ); + + mbedtls_mpi_core_montmul( A.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); + ASSERT_COMPARE( A.p, bytes, X->p, bytes ); + + memcpy( A.p, R.p, bytes ); /* restore A */ + + /* The output may be aliased to N - use R to save the value of N */ + + memcpy( R.p, N.p, bytes ); + + mbedtls_mpi_core_montmul( N.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); + ASSERT_COMPARE( N.p, bytes, X->p, bytes ); + + memcpy( N.p, R.p, bytes ); + + if (limbs_AN == limbs_B) + { + /* Test when A aliased to B (requires A == B on input values) */ + if ( memcmp( A.p, B.p, bytes ) == 0 ) + { + /* Test with A aliased to B and output, since this is permitted - + * don't bother with yet another test with only A and B aliased */ + + mbedtls_mpi_core_montmul( B.p, B.p, B.p, B.n, N.p, N.n, mm, T.p ); + ASSERT_COMPARE( B.p, bytes, X->p, bytes ); + + memcpy( B.p, A.p, bytes ); /* restore B from equal value A */ + } + + /* The output may be aliased to B - last test, so we don't save B */ + + mbedtls_mpi_core_montmul( B.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); + ASSERT_COMPARE( B.p, bytes, X->p, bytes ); + } + +exit: + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &B ); + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &X4 ); + mbedtls_mpi_free( &X8 ); + mbedtls_mpi_free( &T ); + mbedtls_mpi_free( &R ); +} +/* END_CASE */ diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 22d99a9287..4acb41f945 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -82,138 +82,6 @@ mpi_read_write_string:16:"":2:"0":4:0:0 Test mpi_write_string #10 (Negative hex with odd number of digits) mpi_read_write_string:16:"-1":16:"":3:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL -Test mbedtls_mpi_core_io functions with null pointers -mpi_core_io_null - -Test mbedtls_mpi_core_io_be #1 (Buffer and limbs just fit, input limb-aligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:0:0 - -Test mbedtls_mpi_core_io_be #2 (Buffer and limbs just fit, input unaligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:0:0 - -Test mbedtls_mpi_core_io_be #3 (Buffer just fits, extra limbs, input limb-aligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:0:0 - -Test mbedtls_mpi_core_io_be #4 (Buffer just fits, extra limbs, input unaligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:0:0 - -Test mbedtls_mpi_core_io_be #5 (Extra limbs, buffer aligned to extra limbs, input limb-aligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:0:0 - -Test mbedtls_mpi_core_io_be #6 (Extra limbs, buffer aligned to extra limbs, input unaligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:0:0 - -Test mbedtls_mpi_core_io_be #7 (Buffer and limbs just fit, input limb-aligned with leading zeroes) -mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:24:0:0 - -Test mbedtls_mpi_core_io_be #8 (Buffer and limbs just fit, input unaligned with leading zeroes) -mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:24:0:0 - -Test mbedtls_mpi_core_io_be #9 (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) -mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:28:0:0 - -Test mbedtls_mpi_core_io_be #10 (Buffer just fits, extra limbs, input unaligned with leading zeroes) -mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:28:0:0 - -Test mbedtls_mpi_core_io_be #11 (Zero) -mpi_core_io_be:"00":1:1:0:0 - -Test mbedtls_mpi_core_io_be #12 (Zero, empty output) -mpi_core_io_be:"00":0:1:0:0 - -Test mbedtls_mpi_core_io_be #13 (Zero, empty input) -mpi_core_io_be:"":1:1:0:0 - -Test mbedtls_mpi_core_io_be #14 (One) -mpi_core_io_be:"01":1:1:0:0 - -Test mbedtls_mpi_core_io_be #15 (One limb, 32 bit) -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_io_be:"ff000000":4:1:0:0 - -Test mbedtls_mpi_core_io_be #16 (One limb, 64 bit) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_io_be:"ff00000000000000":8:2:0:0 - -Test mbedtls_mpi_core_io_be #17 (not enough limbs, input limb-aligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 - -Test mbedtls_mpi_core_io_be #18 (not enough limbs, input unaligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 - -Test mbedtls_mpi_core_io_be #19 (buffer too small, input limb-aligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_core_io_be #20 (buffer too small, input unaligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_core_io_be #21 (Buffer and limbs fit, input unaligned, odd number of limbs) -mpi_core_io_be:"00de4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":82:21:0:0 - -Test mbedtls_mpi_core_io_le #1 (Buffer and limbs just fit, input limb-aligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:0:0 - -Test mbedtls_mpi_core_io_le #2 (Buffer and limbs just fit, input unaligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:0:0 - -Test mbedtls_mpi_core_io_le #3 (Buffer just fits, extra limbs, input limb-aligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:0:0 - -Test mbedtls_mpi_core_io_le #4 (Buffer just fits, extra limbs, input unaligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:0:0 - -Test mbedtls_mpi_core_io_le #5 (Extra limbs, buffer aligned to extra limbs, input limb-aligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:0:0 - -Test mbedtls_mpi_core_io_le #6 (Extra limbs, buffer aligned to extra limbs, input unaligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:0:0 - -Test mbedtls_mpi_core_io_le #7 (Buffer and limbs just fit, input limb-aligned with leading zeroes) -mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:24:0:0 - -Test mbedtls_mpi_core_io_le #8 (Buffer and limbs just fit, input unaligned with leading zeroes) -mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:24:0:0 - -Test mbedtls_mpi_core_io_le #9 (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) -mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:28:0:0 - -Test mbedtls_mpi_core_io_le #10 (Buffer just fits, extra limbs, input unaligned with leading zeroes) -mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:28:0:0 - -Test mbedtls_mpi_core_io_le #11 (Zero) -mpi_core_io_le:"00":1:1:0:0 - -Test mbedtls_mpi_core_io_le #12 (Zero, empty output) -mpi_core_io_le:"00":0:1:0:0 - -Test mbedtls_mpi_core_io_le #13 (Zero, empty input) -mpi_core_io_le:"":1:1:0:0 - -Test mbedtls_mpi_core_io_le #14 (One) -mpi_core_io_le:"01":1:1:0:0 - -Test mbedtls_mpi_core_io_le #15 (One limb) -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_io_le:"000000ff":4:1:0:0 - -Test mbedtls_mpi_core_io_le #16 (One limb) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_io_le:"00000000000000ff":8:2:0:0 - -Test mbedtls_mpi_core_io_le #17 (not enough limbs, input limb-aligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 - -Test mbedtls_mpi_core_io_le #18 (not enough limbs, input unaligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 - -Test mbedtls_mpi_core_io_le #19 (buffer too small, input limb-aligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_core_io_le #20 (buffer too small, input unaligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_core_io_le #21 (Buffer and limbs fit, input unaligned, odd number of limbs) -mpi_core_io_le:"de4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b442400":82:21:0:0 Test mbedtls_mpi_mod_raw_io #1 BE (Buffer and limbs just fit, input limb-aligned) mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 @@ -630,93 +498,6 @@ mpi_cmp_mpi:"-1230000000000000000":"":-1 Test mbedtls_mpi_cmp_mpi: large negative < 0 (1 limb) mpi_cmp_mpi:"-1230000000000000000":"0":-1 -mbedtls_mpi_core_lt_ct: x=y (1 limb) -mpi_core_lt_ct:"2B5":"2B5":0 - -mbedtls_mpi_core_lt_ct: x>y (1 limb) -mpi_core_lt_ct:"2B5":"2B4":0 - -mbedtls_mpi_core_lt_ct: xy (63 bit x, y first byte greater) -mpi_core_lt_ct:"7FFFFFFFFFFFFFFF":"00000000000000FF":0 - -mbedtls_mpi_core_lt_ct: xy (64 bit x, y=x-1) -mpi_core_lt_ct:"8000000000000000":"7FFFFFFFFFFFFFFF":0 - -mbedtls_mpi_core_lt_ct: xy (64 bit x, y=1) -mpi_core_lt_ct:"8000000000000000":"0000000000000001":0 - -mbedtls_mpi_core_lt_ct: xy (64 bit x, y=0) -mpi_core_lt_ct:"8000000000000000":"0000000000000000":0 - -mbedtls_mpi_core_lt_ct: xy (64 bit x, first bytes equal) -mpi_core_lt_ct:"FFFFFFFFFFFFFFFF":"00000000000000FF":0 - -mbedtls_mpi_core_lt_ct: xy (31 bit x, y first byte greater) -mpi_core_lt_ct:"7FFFFFFF":"000000FF":0 - -mbedtls_mpi_core_lt_ct: xy (32 bit x, y=x-1) -mpi_core_lt_ct:"80000000":"7FFFFFFF":0 - -mbedtls_mpi_core_lt_ct: xy (32 bit x, y=1) -mpi_core_lt_ct:"80000000":"00000001":0 - -mbedtls_mpi_core_lt_ct: xy (32 bit x, y=0) -mpi_core_lt_ct:"80000000":"00000000":0 - -mbedtls_mpi_core_lt_ct: xy (32 bit x, first bytes equal) -mpi_core_lt_ct:"FFFFFFFF":"000000FF":0 - -mbedtls_mpi_core_lt_ct: xy, equal MS limbs -mpi_core_lt_ct:"EEFFFFFFFFFFFFFFFF":"EEFFFFFFFFFFFFFFF1":0 - -mbedtls_mpi_core_lt_ct: x=y (multi-limb) -mpi_core_lt_ct:"EEFFFFFFFFFFFFFFFF":"EEFFFFFFFFFFFFFFFF":0 - -mbedtls_mpi_core_lt_ct: xy (alternating limbs) -mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 - mbedtls_mpi_core_cond_assign: 1 limb mpi_core_cond_assign:"FFFFFFFF":"11111111":4 @@ -2396,13454 +2177,6 @@ mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA -mbedtls_mpi_core_add_if #1: 0x0 + 0x0 = (0x0, carry 0)/(0x0, carry 0) (for when sizeof(mbedtls_mpi_uint) == 4/8) -mpi_core_add_if:"0":"0":"0":0:"0":0 - -mbedtls_mpi_core_add_if #2: 0x0 + 0x1 = (0x1, carry 0)/(0x1, carry 0) -mpi_core_add_if:"0":"1":"1":0:"1":0 - -mbedtls_mpi_core_add_if #3: 0x0 + 0x3 = (0x3, carry 0)/(0x3, carry 0) -mpi_core_add_if:"0":"3":"3":0:"3":0 - -mbedtls_mpi_core_add_if #4: 0x0 + 0xf = (0xf, carry 0)/(0xf, carry 0) -mpi_core_add_if:"0":"f":"f":0:"f":0 - -mbedtls_mpi_core_add_if #5: 0x0 + 0xfe = (0xfe, carry 0)/(0xfe, carry 0) -mpi_core_add_if:"0":"fe":"fe":0:"fe":0 - -mbedtls_mpi_core_add_if #6: 0x0 + 0xff = (0xff, carry 0)/(0xff, carry 0) -mpi_core_add_if:"0":"ff":"ff":0:"ff":0 - -mbedtls_mpi_core_add_if #7: 0x0 + 0x100 = (0x100, carry 0)/(0x100, carry 0) -mpi_core_add_if:"0":"100":"100":0:"100":0 - -mbedtls_mpi_core_add_if #8: 0x0 + 0xff00 = (0xff00, carry 0)/(0xff00, carry 0) -mpi_core_add_if:"0":"ff00":"ff00":0:"ff00":0 - -mbedtls_mpi_core_add_if #9: 0x0 + 0xfffe = (0xfffe, carry 0)/(0xfffe, carry 0) -mpi_core_add_if:"0":"fffe":"fffe":0:"fffe":0 - -mbedtls_mpi_core_add_if #10: 0x0 + 0xffff = (0xffff, carry 0)/(0xffff, carry 0) -mpi_core_add_if:"0":"ffff":"ffff":0:"ffff":0 - -mbedtls_mpi_core_add_if #11: 0x0 + 0x10000 = (0x10000, carry 0)/(0x10000, carry 0) -mpi_core_add_if:"0":"10000":"10000":0:"10000":0 - -mbedtls_mpi_core_add_if #12: 0x0 + 0xfffffffe = (0xfffffffe, carry 0)/(0xfffffffe, carry 0) -mpi_core_add_if:"0":"fffffffe":"fffffffe":0:"fffffffe":0 - -mbedtls_mpi_core_add_if #13: 0x0 + 0xffffffff = (0xffffffff, carry 0)/(0xffffffff, carry 0) -mpi_core_add_if:"0":"ffffffff":"ffffffff":0:"ffffffff":0 - -mbedtls_mpi_core_add_if #14: 0x0 + 0x100000000 = (0x100000000, carry 0)/(0x100000000, carry 0) -mpi_core_add_if:"0":"100000000":"100000000":0:"100000000":0 - -mbedtls_mpi_core_add_if #15: 0x0 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f7f7f, carry 0)/(0x1f7f7f7f7f7f7f, carry 0) -mpi_core_add_if:"0":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":0:"1f7f7f7f7f7f7f":0 - -mbedtls_mpi_core_add_if #16: 0x0 + 0x8000000000000000 = (0x8000000000000000, carry 0)/(0x8000000000000000, carry 0) -mpi_core_add_if:"0":"8000000000000000":"8000000000000000":0:"8000000000000000":0 - -mbedtls_mpi_core_add_if #17: 0x0 + 0xfefefefefefefefe = (0xfefefefefefefefe, carry 0)/(0xfefefefefefefefe, carry 0) -mpi_core_add_if:"0":"fefefefefefefefe":"fefefefefefefefe":0:"fefefefefefefefe":0 - -mbedtls_mpi_core_add_if #18: 0x0 + 0xfffffffffffffffe = (0xfffffffffffffffe, carry 0)/(0xfffffffffffffffe, carry 0) -mpi_core_add_if:"0":"fffffffffffffffe":"fffffffffffffffe":0:"fffffffffffffffe":0 - -mbedtls_mpi_core_add_if #19: 0x0 + 0xffffffffffffffff = (0xffffffffffffffff, carry 0)/(0xffffffffffffffff, carry 0) -mpi_core_add_if:"0":"ffffffffffffffff":"ffffffffffffffff":0:"ffffffffffffffff":0 - -mbedtls_mpi_core_add_if #20: 0x0 + 0x10000000000000000 = (0x10000000000000000, carry 0)/(0x10000000000000000, carry 0) -mpi_core_add_if:"0":"10000000000000000":"10000000000000000":0:"10000000000000000":0 - -mbedtls_mpi_core_add_if #21: 0x0 + 0x1234567890abcdef0 = (0x1234567890abcdef0, carry 0)/(0x1234567890abcdef0, carry 0) -mpi_core_add_if:"0":"1234567890abcdef0":"1234567890abcdef0":0:"1234567890abcdef0":0 - -mbedtls_mpi_core_add_if #22: 0x0 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefefe, carry 0)/(0xfffffffffffffffffefefefefefefefe, carry 0) -mpi_core_add_if:"0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":0:"fffffffffffffffffefefefefefefefe":0 - -mbedtls_mpi_core_add_if #23: 0x0 + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffe, carry 0)/(0xfffffffffffffffffffffffffffffffe, carry 0) -mpi_core_add_if:"0":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":0:"fffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_add_if #24: 0x0 + 0xffffffffffffffffffffffffffffffff = (0xffffffffffffffffffffffffffffffff, carry 0)/(0xffffffffffffffffffffffffffffffff, carry 0) -mpi_core_add_if:"0":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_add_if #25: 0x0 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000000000, carry 0)/(0x100000000000000000000000000000000, carry 0) -mpi_core_add_if:"0":"100000000000000000000000000000000":"100000000000000000000000000000000":0:"100000000000000000000000000000000":0 - -mbedtls_mpi_core_add_if #26: 0x0 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef0, carry 0) -mpi_core_add_if:"0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":0:"1234567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_add_if #27: 0x0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0) -mpi_core_add_if:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0 - -mbedtls_mpi_core_add_if #28: 0x0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0) -mpi_core_add_if:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_add_if #29: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0) -mpi_core_add_if:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_add_if #30: 0x0 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000000000, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000000000, carry 0) -mpi_core_add_if:"0":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":0:"10000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_core_add_if #31: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0) -mpi_core_add_if:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_add_if #32: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0) -mpi_core_add_if:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 - -mbedtls_mpi_core_add_if #33: 0x1 + 0x1 = (0x2, carry 0)/(0x2, carry 0) -mpi_core_add_if:"1":"1":"2":0:"2":0 - -mbedtls_mpi_core_add_if #34: 0x1 + 0x3 = (0x4, carry 0)/(0x4, carry 0) -mpi_core_add_if:"1":"3":"4":0:"4":0 - -mbedtls_mpi_core_add_if #35: 0x1 + 0xf = (0x10, carry 0)/(0x10, carry 0) -mpi_core_add_if:"1":"f":"10":0:"10":0 - -mbedtls_mpi_core_add_if #36: 0x1 + 0xfe = (0xff, carry 0)/(0xff, carry 0) -mpi_core_add_if:"1":"fe":"ff":0:"ff":0 - -mbedtls_mpi_core_add_if #37: 0x1 + 0xff = (0x100, carry 0)/(0x100, carry 0) -mpi_core_add_if:"1":"ff":"100":0:"100":0 - -mbedtls_mpi_core_add_if #38: 0x1 + 0x100 = (0x101, carry 0)/(0x101, carry 0) -mpi_core_add_if:"1":"100":"101":0:"101":0 - -mbedtls_mpi_core_add_if #39: 0x1 + 0xff00 = (0xff01, carry 0)/(0xff01, carry 0) -mpi_core_add_if:"1":"ff00":"ff01":0:"ff01":0 - -mbedtls_mpi_core_add_if #40: 0x1 + 0xfffe = (0xffff, carry 0)/(0xffff, carry 0) -mpi_core_add_if:"1":"fffe":"ffff":0:"ffff":0 - -mbedtls_mpi_core_add_if #41: 0x1 + 0xffff = (0x10000, carry 0)/(0x10000, carry 0) -mpi_core_add_if:"1":"ffff":"10000":0:"10000":0 - -mbedtls_mpi_core_add_if #42: 0x1 + 0x10000 = (0x10001, carry 0)/(0x10001, carry 0) -mpi_core_add_if:"1":"10000":"10001":0:"10001":0 - -mbedtls_mpi_core_add_if #43: 0x1 + 0xfffffffe = (0xffffffff, carry 0)/(0xffffffff, carry 0) -mpi_core_add_if:"1":"fffffffe":"ffffffff":0:"ffffffff":0 - -mbedtls_mpi_core_add_if #44: 0x1 + 0xffffffff = (0x0, carry 1)/(0x100000000, carry 0) -mpi_core_add_if:"1":"ffffffff":"0":1:"100000000":0 - -mbedtls_mpi_core_add_if #45: 0x1 + 0x100000000 = (0x100000001, carry 0)/(0x100000001, carry 0) -mpi_core_add_if:"1":"100000000":"100000001":0:"100000001":0 - -mbedtls_mpi_core_add_if #46: 0x1 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f7f80, carry 0)/(0x1f7f7f7f7f7f80, carry 0) -mpi_core_add_if:"1":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f80":0:"1f7f7f7f7f7f80":0 - -mbedtls_mpi_core_add_if #47: 0x1 + 0x8000000000000000 = (0x8000000000000001, carry 0)/(0x8000000000000001, carry 0) -mpi_core_add_if:"1":"8000000000000000":"8000000000000001":0:"8000000000000001":0 - -mbedtls_mpi_core_add_if #48: 0x1 + 0xfefefefefefefefe = (0xfefefefefefefeff, carry 0)/(0xfefefefefefefeff, carry 0) -mpi_core_add_if:"1":"fefefefefefefefe":"fefefefefefefeff":0:"fefefefefefefeff":0 - -mbedtls_mpi_core_add_if #49: 0x1 + 0xfffffffffffffffe = (0xffffffffffffffff, carry 0)/(0xffffffffffffffff, carry 0) -mpi_core_add_if:"1":"fffffffffffffffe":"ffffffffffffffff":0:"ffffffffffffffff":0 - -mbedtls_mpi_core_add_if #50: 0x1 + 0xffffffffffffffff = (0x0, carry 1)/(0x0, carry 1) -mpi_core_add_if:"1":"ffffffffffffffff":"0":1:"0":1 - -mbedtls_mpi_core_add_if #51: 0x1 + 0x10000000000000000 = (0x10000000000000001, carry 0)/(0x10000000000000001, carry 0) -mpi_core_add_if:"1":"10000000000000000":"10000000000000001":0:"10000000000000001":0 - -mbedtls_mpi_core_add_if #52: 0x1 + 0x1234567890abcdef0 = (0x1234567890abcdef1, carry 0)/(0x1234567890abcdef1, carry 0) -mpi_core_add_if:"1":"1234567890abcdef0":"1234567890abcdef1":0:"1234567890abcdef1":0 - -mbedtls_mpi_core_add_if #53: 0x1 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefeff, carry 0)/(0xfffffffffffffffffefefefefefefeff, carry 0) -mpi_core_add_if:"1":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefeff":0:"fffffffffffffffffefefefefefefeff":0 - -mbedtls_mpi_core_add_if #54: 0x1 + 0xfffffffffffffffffffffffffffffffe = (0xffffffffffffffffffffffffffffffff, carry 0)/(0xffffffffffffffffffffffffffffffff, carry 0) -mpi_core_add_if:"1":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_add_if #55: 0x1 + 0xffffffffffffffffffffffffffffffff = (0x0, carry 1)/(0x0, carry 1) -mpi_core_add_if:"1":"ffffffffffffffffffffffffffffffff":"0":1:"0":1 - -mbedtls_mpi_core_add_if #56: 0x1 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000000001, carry 0)/(0x100000000000000000000000000000001, carry 0) -mpi_core_add_if:"1":"100000000000000000000000000000000":"100000000000000000000000000000001":0:"100000000000000000000000000000001":0 - -mbedtls_mpi_core_add_if #57: 0x1 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef1, carry 0)/(0x1234567890abcdef01234567890abcdef1, carry 0) -mpi_core_add_if:"1":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef1":0:"1234567890abcdef01234567890abcdef1":0 - -mbedtls_mpi_core_add_if #58: 0x1 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff, carry 0) -mpi_core_add_if:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":0 - -mbedtls_mpi_core_add_if #59: 0x1 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0) -mpi_core_add_if:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_add_if #60: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x0, carry 1)/(0x0, carry 1) -mpi_core_add_if:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":1:"0":1 - -mbedtls_mpi_core_add_if #61: 0x1 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000000001, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000000001, carry 0) -mpi_core_add_if:"1":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000001":0:"10000000000000000000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_core_add_if #62: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1, carry 0) -mpi_core_add_if:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":0 - -mbedtls_mpi_core_add_if #63: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c, carry 0) -mpi_core_add_if:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":0 - -mbedtls_mpi_core_add_if #64: 0x3 + 0x3 = (0x6, carry 0)/(0x6, carry 0) -mpi_core_add_if:"3":"3":"6":0:"6":0 - -mbedtls_mpi_core_add_if #65: 0x3 + 0xf = (0x12, carry 0)/(0x12, carry 0) -mpi_core_add_if:"3":"f":"12":0:"12":0 - -mbedtls_mpi_core_add_if #66: 0x3 + 0xfe = (0x101, carry 0)/(0x101, carry 0) -mpi_core_add_if:"3":"fe":"101":0:"101":0 - -mbedtls_mpi_core_add_if #67: 0x3 + 0xff = (0x102, carry 0)/(0x102, carry 0) -mpi_core_add_if:"3":"ff":"102":0:"102":0 - -mbedtls_mpi_core_add_if #68: 0x3 + 0x100 = (0x103, carry 0)/(0x103, carry 0) -mpi_core_add_if:"3":"100":"103":0:"103":0 - -mbedtls_mpi_core_add_if #69: 0x3 + 0xff00 = (0xff03, carry 0)/(0xff03, carry 0) -mpi_core_add_if:"3":"ff00":"ff03":0:"ff03":0 - -mbedtls_mpi_core_add_if #70: 0x3 + 0xfffe = (0x10001, carry 0)/(0x10001, carry 0) -mpi_core_add_if:"3":"fffe":"10001":0:"10001":0 - -mbedtls_mpi_core_add_if #71: 0x3 + 0xffff = (0x10002, carry 0)/(0x10002, carry 0) -mpi_core_add_if:"3":"ffff":"10002":0:"10002":0 - -mbedtls_mpi_core_add_if #72: 0x3 + 0x10000 = (0x10003, carry 0)/(0x10003, carry 0) -mpi_core_add_if:"3":"10000":"10003":0:"10003":0 - -mbedtls_mpi_core_add_if #73: 0x3 + 0xfffffffe = (0x1, carry 1)/(0x100000001, carry 0) -mpi_core_add_if:"3":"fffffffe":"1":1:"100000001":0 - -mbedtls_mpi_core_add_if #74: 0x3 + 0xffffffff = (0x2, carry 1)/(0x100000002, carry 0) -mpi_core_add_if:"3":"ffffffff":"2":1:"100000002":0 - -mbedtls_mpi_core_add_if #75: 0x3 + 0x100000000 = (0x100000003, carry 0)/(0x100000003, carry 0) -mpi_core_add_if:"3":"100000000":"100000003":0:"100000003":0 - -mbedtls_mpi_core_add_if #76: 0x3 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f7f82, carry 0)/(0x1f7f7f7f7f7f82, carry 0) -mpi_core_add_if:"3":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f82":0:"1f7f7f7f7f7f82":0 - -mbedtls_mpi_core_add_if #77: 0x3 + 0x8000000000000000 = (0x8000000000000003, carry 0)/(0x8000000000000003, carry 0) -mpi_core_add_if:"3":"8000000000000000":"8000000000000003":0:"8000000000000003":0 - -mbedtls_mpi_core_add_if #78: 0x3 + 0xfefefefefefefefe = (0xfefefefefefeff01, carry 0)/(0xfefefefefefeff01, carry 0) -mpi_core_add_if:"3":"fefefefefefefefe":"fefefefefefeff01":0:"fefefefefefeff01":0 - -mbedtls_mpi_core_add_if #79: 0x3 + 0xfffffffffffffffe = (0x1, carry 1)/(0x1, carry 1) -mpi_core_add_if:"3":"fffffffffffffffe":"1":1:"1":1 - -mbedtls_mpi_core_add_if #80: 0x3 + 0xffffffffffffffff = (0x2, carry 1)/(0x2, carry 1) -mpi_core_add_if:"3":"ffffffffffffffff":"2":1:"2":1 - -mbedtls_mpi_core_add_if #81: 0x3 + 0x10000000000000000 = (0x10000000000000003, carry 0)/(0x10000000000000003, carry 0) -mpi_core_add_if:"3":"10000000000000000":"10000000000000003":0:"10000000000000003":0 - -mbedtls_mpi_core_add_if #82: 0x3 + 0x1234567890abcdef0 = (0x1234567890abcdef3, carry 0)/(0x1234567890abcdef3, carry 0) -mpi_core_add_if:"3":"1234567890abcdef0":"1234567890abcdef3":0:"1234567890abcdef3":0 - -mbedtls_mpi_core_add_if #83: 0x3 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefeff01, carry 0)/(0xfffffffffffffffffefefefefefeff01, carry 0) -mpi_core_add_if:"3":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefeff01":0:"fffffffffffffffffefefefefefeff01":0 - -mbedtls_mpi_core_add_if #84: 0x3 + 0xfffffffffffffffffffffffffffffffe = (0x1, carry 1)/(0x1, carry 1) -mpi_core_add_if:"3":"fffffffffffffffffffffffffffffffe":"1":1:"1":1 - -mbedtls_mpi_core_add_if #85: 0x3 + 0xffffffffffffffffffffffffffffffff = (0x2, carry 1)/(0x2, carry 1) -mpi_core_add_if:"3":"ffffffffffffffffffffffffffffffff":"2":1:"2":1 - -mbedtls_mpi_core_add_if #86: 0x3 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000000003, carry 0)/(0x100000000000000000000000000000003, carry 0) -mpi_core_add_if:"3":"100000000000000000000000000000000":"100000000000000000000000000000003":0:"100000000000000000000000000000003":0 - -mbedtls_mpi_core_add_if #87: 0x3 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef3, carry 0)/(0x1234567890abcdef01234567890abcdef3, carry 0) -mpi_core_add_if:"3":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef3":0:"1234567890abcdef01234567890abcdef3":0 - -mbedtls_mpi_core_add_if #88: 0x3 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01, carry 0) -mpi_core_add_if:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01":0 - -mbedtls_mpi_core_add_if #89: 0x3 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x1, carry 1)/(0x1, carry 1) -mpi_core_add_if:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1":1:"1":1 - -mbedtls_mpi_core_add_if #90: 0x3 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x2, carry 1)/(0x2, carry 1) -mpi_core_add_if:"3":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"2":1:"2":1 - -mbedtls_mpi_core_add_if #91: 0x3 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000000003, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000000003, carry 0) -mpi_core_add_if:"3":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000003":0:"10000000000000000000000000000000000000000000000000000000000000003":0 - -mbedtls_mpi_core_add_if #92: 0x3 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3, carry 0) -mpi_core_add_if:"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":0 - -mbedtls_mpi_core_add_if #93: 0x3 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e, carry 0) -mpi_core_add_if:"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":0 - -mbedtls_mpi_core_add_if #94: 0xf + 0xf = (0x1e, carry 0)/(0x1e, carry 0) -mpi_core_add_if:"f":"f":"1e":0:"1e":0 - -mbedtls_mpi_core_add_if #95: 0xf + 0xfe = (0x10d, carry 0)/(0x10d, carry 0) -mpi_core_add_if:"f":"fe":"10d":0:"10d":0 - -mbedtls_mpi_core_add_if #96: 0xf + 0xff = (0x10e, carry 0)/(0x10e, carry 0) -mpi_core_add_if:"f":"ff":"10e":0:"10e":0 - -mbedtls_mpi_core_add_if #97: 0xf + 0x100 = (0x10f, carry 0)/(0x10f, carry 0) -mpi_core_add_if:"f":"100":"10f":0:"10f":0 - -mbedtls_mpi_core_add_if #98: 0xf + 0xff00 = (0xff0f, carry 0)/(0xff0f, carry 0) -mpi_core_add_if:"f":"ff00":"ff0f":0:"ff0f":0 - -mbedtls_mpi_core_add_if #99: 0xf + 0xfffe = (0x1000d, carry 0)/(0x1000d, carry 0) -mpi_core_add_if:"f":"fffe":"1000d":0:"1000d":0 - -mbedtls_mpi_core_add_if #100: 0xf + 0xffff = (0x1000e, carry 0)/(0x1000e, carry 0) -mpi_core_add_if:"f":"ffff":"1000e":0:"1000e":0 - -mbedtls_mpi_core_add_if #101: 0xf + 0x10000 = (0x1000f, carry 0)/(0x1000f, carry 0) -mpi_core_add_if:"f":"10000":"1000f":0:"1000f":0 - -mbedtls_mpi_core_add_if #102: 0xf + 0xfffffffe = (0xd, carry 1)/(0x10000000d, carry 0) -mpi_core_add_if:"f":"fffffffe":"d":1:"10000000d":0 - -mbedtls_mpi_core_add_if #103: 0xf + 0xffffffff = (0xe, carry 1)/(0x10000000e, carry 0) -mpi_core_add_if:"f":"ffffffff":"e":1:"10000000e":0 - -mbedtls_mpi_core_add_if #104: 0xf + 0x100000000 = (0x10000000f, carry 0)/(0x10000000f, carry 0) -mpi_core_add_if:"f":"100000000":"10000000f":0:"10000000f":0 - -mbedtls_mpi_core_add_if #105: 0xf + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f7f8e, carry 0)/(0x1f7f7f7f7f7f8e, carry 0) -mpi_core_add_if:"f":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f8e":0:"1f7f7f7f7f7f8e":0 - -mbedtls_mpi_core_add_if #106: 0xf + 0x8000000000000000 = (0x800000000000000f, carry 0)/(0x800000000000000f, carry 0) -mpi_core_add_if:"f":"8000000000000000":"800000000000000f":0:"800000000000000f":0 - -mbedtls_mpi_core_add_if #107: 0xf + 0xfefefefefefefefe = (0xfefefefefefeff0d, carry 0)/(0xfefefefefefeff0d, carry 0) -mpi_core_add_if:"f":"fefefefefefefefe":"fefefefefefeff0d":0:"fefefefefefeff0d":0 - -mbedtls_mpi_core_add_if #108: 0xf + 0xfffffffffffffffe = (0xd, carry 1)/(0xd, carry 1) -mpi_core_add_if:"f":"fffffffffffffffe":"d":1:"d":1 - -mbedtls_mpi_core_add_if #109: 0xf + 0xffffffffffffffff = (0xe, carry 1)/(0xe, carry 1) -mpi_core_add_if:"f":"ffffffffffffffff":"e":1:"e":1 - -mbedtls_mpi_core_add_if #110: 0xf + 0x10000000000000000 = (0x1000000000000000f, carry 0)/(0x1000000000000000f, carry 0) -mpi_core_add_if:"f":"10000000000000000":"1000000000000000f":0:"1000000000000000f":0 - -mbedtls_mpi_core_add_if #111: 0xf + 0x1234567890abcdef0 = (0x1234567890abcdeff, carry 0)/(0x1234567890abcdeff, carry 0) -mpi_core_add_if:"f":"1234567890abcdef0":"1234567890abcdeff":0:"1234567890abcdeff":0 - -mbedtls_mpi_core_add_if #112: 0xf + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefeff0d, carry 0)/(0xfffffffffffffffffefefefefefeff0d, carry 0) -mpi_core_add_if:"f":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefeff0d":0:"fffffffffffffffffefefefefefeff0d":0 - -mbedtls_mpi_core_add_if #113: 0xf + 0xfffffffffffffffffffffffffffffffe = (0xd, carry 1)/(0xd, carry 1) -mpi_core_add_if:"f":"fffffffffffffffffffffffffffffffe":"d":1:"d":1 - -mbedtls_mpi_core_add_if #114: 0xf + 0xffffffffffffffffffffffffffffffff = (0xe, carry 1)/(0xe, carry 1) -mpi_core_add_if:"f":"ffffffffffffffffffffffffffffffff":"e":1:"e":1 - -mbedtls_mpi_core_add_if #115: 0xf + 0x100000000000000000000000000000000 = (0x10000000000000000000000000000000f, carry 0)/(0x10000000000000000000000000000000f, carry 0) -mpi_core_add_if:"f":"100000000000000000000000000000000":"10000000000000000000000000000000f":0:"10000000000000000000000000000000f":0 - -mbedtls_mpi_core_add_if #116: 0xf + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdeff, carry 0)/(0x1234567890abcdef01234567890abcdeff, carry 0) -mpi_core_add_if:"f":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdeff":0:"1234567890abcdef01234567890abcdeff":0 - -mbedtls_mpi_core_add_if #117: 0xf + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d, carry 0) -mpi_core_add_if:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d":0 - -mbedtls_mpi_core_add_if #118: 0xf + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xd, carry 1)/(0xd, carry 1) -mpi_core_add_if:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"d":1:"d":1 - -mbedtls_mpi_core_add_if #119: 0xf + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xe, carry 1)/(0xe, carry 1) -mpi_core_add_if:"f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"e":1:"e":1 - -mbedtls_mpi_core_add_if #120: 0xf + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000000000000000000f, carry 0)/(0x1000000000000000000000000000000000000000000000000000000000000000f, carry 0) -mpi_core_add_if:"f":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000000f":0:"1000000000000000000000000000000000000000000000000000000000000000f":0 - -mbedtls_mpi_core_add_if #121: 0xf + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff, carry 0) -mpi_core_add_if:"f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff":0 - -mbedtls_mpi_core_add_if #122: 0xf + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a, carry 0) -mpi_core_add_if:"f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a":0 - -mbedtls_mpi_core_add_if #123: 0xfe + 0xfe = (0x1fc, carry 0)/(0x1fc, carry 0) -mpi_core_add_if:"fe":"fe":"1fc":0:"1fc":0 - -mbedtls_mpi_core_add_if #124: 0xfe + 0xff = (0x1fd, carry 0)/(0x1fd, carry 0) -mpi_core_add_if:"fe":"ff":"1fd":0:"1fd":0 - -mbedtls_mpi_core_add_if #125: 0xfe + 0x100 = (0x1fe, carry 0)/(0x1fe, carry 0) -mpi_core_add_if:"fe":"100":"1fe":0:"1fe":0 - -mbedtls_mpi_core_add_if #126: 0xfe + 0xff00 = (0xfffe, carry 0)/(0xfffe, carry 0) -mpi_core_add_if:"fe":"ff00":"fffe":0:"fffe":0 - -mbedtls_mpi_core_add_if #127: 0xfe + 0xfffe = (0x100fc, carry 0)/(0x100fc, carry 0) -mpi_core_add_if:"fe":"fffe":"100fc":0:"100fc":0 - -mbedtls_mpi_core_add_if #128: 0xfe + 0xffff = (0x100fd, carry 0)/(0x100fd, carry 0) -mpi_core_add_if:"fe":"ffff":"100fd":0:"100fd":0 - -mbedtls_mpi_core_add_if #129: 0xfe + 0x10000 = (0x100fe, carry 0)/(0x100fe, carry 0) -mpi_core_add_if:"fe":"10000":"100fe":0:"100fe":0 - -mbedtls_mpi_core_add_if #130: 0xfe + 0xfffffffe = (0xfc, carry 1)/(0x1000000fc, carry 0) -mpi_core_add_if:"fe":"fffffffe":"fc":1:"1000000fc":0 - -mbedtls_mpi_core_add_if #131: 0xfe + 0xffffffff = (0xfd, carry 1)/(0x1000000fd, carry 0) -mpi_core_add_if:"fe":"ffffffff":"fd":1:"1000000fd":0 - -mbedtls_mpi_core_add_if #132: 0xfe + 0x100000000 = (0x1000000fe, carry 0)/(0x1000000fe, carry 0) -mpi_core_add_if:"fe":"100000000":"1000000fe":0:"1000000fe":0 - -mbedtls_mpi_core_add_if #133: 0xfe + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f807d, carry 0)/(0x1f7f7f7f7f807d, carry 0) -mpi_core_add_if:"fe":"1f7f7f7f7f7f7f":"1f7f7f7f7f807d":0:"1f7f7f7f7f807d":0 - -mbedtls_mpi_core_add_if #134: 0xfe + 0x8000000000000000 = (0x80000000000000fe, carry 0)/(0x80000000000000fe, carry 0) -mpi_core_add_if:"fe":"8000000000000000":"80000000000000fe":0:"80000000000000fe":0 - -mbedtls_mpi_core_add_if #135: 0xfe + 0xfefefefefefefefe = (0xfefefefefefefffc, carry 0)/(0xfefefefefefefffc, carry 0) -mpi_core_add_if:"fe":"fefefefefefefefe":"fefefefefefefffc":0:"fefefefefefefffc":0 - -mbedtls_mpi_core_add_if #136: 0xfe + 0xfffffffffffffffe = (0xfc, carry 1)/(0xfc, carry 1) -mpi_core_add_if:"fe":"fffffffffffffffe":"fc":1:"fc":1 - -mbedtls_mpi_core_add_if #137: 0xfe + 0xffffffffffffffff = (0xfd, carry 1)/(0xfd, carry 1) -mpi_core_add_if:"fe":"ffffffffffffffff":"fd":1:"fd":1 - -mbedtls_mpi_core_add_if #138: 0xfe + 0x10000000000000000 = (0x100000000000000fe, carry 0)/(0x100000000000000fe, carry 0) -mpi_core_add_if:"fe":"10000000000000000":"100000000000000fe":0:"100000000000000fe":0 - -mbedtls_mpi_core_add_if #139: 0xfe + 0x1234567890abcdef0 = (0x1234567890abcdfee, carry 0)/(0x1234567890abcdfee, carry 0) -mpi_core_add_if:"fe":"1234567890abcdef0":"1234567890abcdfee":0:"1234567890abcdfee":0 - -mbedtls_mpi_core_add_if #140: 0xfe + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefffc, carry 0)/(0xfffffffffffffffffefefefefefefffc, carry 0) -mpi_core_add_if:"fe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefffc":0:"fffffffffffffffffefefefefefefffc":0 - -mbedtls_mpi_core_add_if #141: 0xfe + 0xfffffffffffffffffffffffffffffffe = (0xfc, carry 1)/(0xfc, carry 1) -mpi_core_add_if:"fe":"fffffffffffffffffffffffffffffffe":"fc":1:"fc":1 - -mbedtls_mpi_core_add_if #142: 0xfe + 0xffffffffffffffffffffffffffffffff = (0xfd, carry 1)/(0xfd, carry 1) -mpi_core_add_if:"fe":"ffffffffffffffffffffffffffffffff":"fd":1:"fd":1 - -mbedtls_mpi_core_add_if #143: 0xfe + 0x100000000000000000000000000000000 = (0x1000000000000000000000000000000fe, carry 0)/(0x1000000000000000000000000000000fe, carry 0) -mpi_core_add_if:"fe":"100000000000000000000000000000000":"1000000000000000000000000000000fe":0:"1000000000000000000000000000000fe":0 - -mbedtls_mpi_core_add_if #144: 0xfe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdfee, carry 0)/(0x1234567890abcdef01234567890abcdfee, carry 0) -mpi_core_add_if:"fe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdfee":0:"1234567890abcdef01234567890abcdfee":0 - -mbedtls_mpi_core_add_if #145: 0xfe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc, carry 0) -mpi_core_add_if:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc":0 - -mbedtls_mpi_core_add_if #146: 0xfe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfc, carry 1)/(0xfc, carry 1) -mpi_core_add_if:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fc":1:"fc":1 - -mbedtls_mpi_core_add_if #147: 0xfe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfd, carry 1)/(0xfd, carry 1) -mpi_core_add_if:"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fd":1:"fd":1 - -mbedtls_mpi_core_add_if #148: 0xfe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000000000000000000000000000000000fe, carry 0)/(0x100000000000000000000000000000000000000000000000000000000000000fe, carry 0) -mpi_core_add_if:"fe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000000000fe":0:"100000000000000000000000000000000000000000000000000000000000000fe":0 - -mbedtls_mpi_core_add_if #149: 0xfe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee, carry 0) -mpi_core_add_if:"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":0 - -mbedtls_mpi_core_add_if #150: 0xfe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229, carry 0) -mpi_core_add_if:"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":0 - -mbedtls_mpi_core_add_if #151: 0xff + 0xff = (0x1fe, carry 0)/(0x1fe, carry 0) -mpi_core_add_if:"ff":"ff":"1fe":0:"1fe":0 - -mbedtls_mpi_core_add_if #152: 0xff + 0x100 = (0x1ff, carry 0)/(0x1ff, carry 0) -mpi_core_add_if:"ff":"100":"1ff":0:"1ff":0 - -mbedtls_mpi_core_add_if #153: 0xff + 0xff00 = (0xffff, carry 0)/(0xffff, carry 0) -mpi_core_add_if:"ff":"ff00":"ffff":0:"ffff":0 - -mbedtls_mpi_core_add_if #154: 0xff + 0xfffe = (0x100fd, carry 0)/(0x100fd, carry 0) -mpi_core_add_if:"ff":"fffe":"100fd":0:"100fd":0 - -mbedtls_mpi_core_add_if #155: 0xff + 0xffff = (0x100fe, carry 0)/(0x100fe, carry 0) -mpi_core_add_if:"ff":"ffff":"100fe":0:"100fe":0 - -mbedtls_mpi_core_add_if #156: 0xff + 0x10000 = (0x100ff, carry 0)/(0x100ff, carry 0) -mpi_core_add_if:"ff":"10000":"100ff":0:"100ff":0 - -mbedtls_mpi_core_add_if #157: 0xff + 0xfffffffe = (0xfd, carry 1)/(0x1000000fd, carry 0) -mpi_core_add_if:"ff":"fffffffe":"fd":1:"1000000fd":0 - -mbedtls_mpi_core_add_if #158: 0xff + 0xffffffff = (0xfe, carry 1)/(0x1000000fe, carry 0) -mpi_core_add_if:"ff":"ffffffff":"fe":1:"1000000fe":0 - -mbedtls_mpi_core_add_if #159: 0xff + 0x100000000 = (0x1000000ff, carry 0)/(0x1000000ff, carry 0) -mpi_core_add_if:"ff":"100000000":"1000000ff":0:"1000000ff":0 - -mbedtls_mpi_core_add_if #160: 0xff + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f807e, carry 0)/(0x1f7f7f7f7f807e, carry 0) -mpi_core_add_if:"ff":"1f7f7f7f7f7f7f":"1f7f7f7f7f807e":0:"1f7f7f7f7f807e":0 - -mbedtls_mpi_core_add_if #161: 0xff + 0x8000000000000000 = (0x80000000000000ff, carry 0)/(0x80000000000000ff, carry 0) -mpi_core_add_if:"ff":"8000000000000000":"80000000000000ff":0:"80000000000000ff":0 - -mbedtls_mpi_core_add_if #162: 0xff + 0xfefefefefefefefe = (0xfefefefefefefffd, carry 0)/(0xfefefefefefefffd, carry 0) -mpi_core_add_if:"ff":"fefefefefefefefe":"fefefefefefefffd":0:"fefefefefefefffd":0 - -mbedtls_mpi_core_add_if #163: 0xff + 0xfffffffffffffffe = (0xfd, carry 1)/(0xfd, carry 1) -mpi_core_add_if:"ff":"fffffffffffffffe":"fd":1:"fd":1 - -mbedtls_mpi_core_add_if #164: 0xff + 0xffffffffffffffff = (0xfe, carry 1)/(0xfe, carry 1) -mpi_core_add_if:"ff":"ffffffffffffffff":"fe":1:"fe":1 - -mbedtls_mpi_core_add_if #165: 0xff + 0x10000000000000000 = (0x100000000000000ff, carry 0)/(0x100000000000000ff, carry 0) -mpi_core_add_if:"ff":"10000000000000000":"100000000000000ff":0:"100000000000000ff":0 - -mbedtls_mpi_core_add_if #166: 0xff + 0x1234567890abcdef0 = (0x1234567890abcdfef, carry 0)/(0x1234567890abcdfef, carry 0) -mpi_core_add_if:"ff":"1234567890abcdef0":"1234567890abcdfef":0:"1234567890abcdfef":0 - -mbedtls_mpi_core_add_if #167: 0xff + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefffd, carry 0)/(0xfffffffffffffffffefefefefefefffd, carry 0) -mpi_core_add_if:"ff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefffd":0:"fffffffffffffffffefefefefefefffd":0 - -mbedtls_mpi_core_add_if #168: 0xff + 0xfffffffffffffffffffffffffffffffe = (0xfd, carry 1)/(0xfd, carry 1) -mpi_core_add_if:"ff":"fffffffffffffffffffffffffffffffe":"fd":1:"fd":1 - -mbedtls_mpi_core_add_if #169: 0xff + 0xffffffffffffffffffffffffffffffff = (0xfe, carry 1)/(0xfe, carry 1) -mpi_core_add_if:"ff":"ffffffffffffffffffffffffffffffff":"fe":1:"fe":1 - -mbedtls_mpi_core_add_if #170: 0xff + 0x100000000000000000000000000000000 = (0x1000000000000000000000000000000ff, carry 0)/(0x1000000000000000000000000000000ff, carry 0) -mpi_core_add_if:"ff":"100000000000000000000000000000000":"1000000000000000000000000000000ff":0:"1000000000000000000000000000000ff":0 - -mbedtls_mpi_core_add_if #171: 0xff + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdfef, carry 0)/(0x1234567890abcdef01234567890abcdfef, carry 0) -mpi_core_add_if:"ff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdfef":0:"1234567890abcdef01234567890abcdfef":0 - -mbedtls_mpi_core_add_if #172: 0xff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd, carry 0) -mpi_core_add_if:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd":0 - -mbedtls_mpi_core_add_if #173: 0xff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfd, carry 1)/(0xfd, carry 1) -mpi_core_add_if:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fd":1:"fd":1 - -mbedtls_mpi_core_add_if #174: 0xff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfe, carry 1)/(0xfe, carry 1) -mpi_core_add_if:"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":1:"fe":1 - -mbedtls_mpi_core_add_if #175: 0xff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000000000000000000000000000000000ff, carry 0)/(0x100000000000000000000000000000000000000000000000000000000000000ff, carry 0) -mpi_core_add_if:"ff":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000000000ff":0:"100000000000000000000000000000000000000000000000000000000000000ff":0 - -mbedtls_mpi_core_add_if #176: 0xff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef, carry 0) -mpi_core_add_if:"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":0 - -mbedtls_mpi_core_add_if #177: 0xff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a, carry 0) -mpi_core_add_if:"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":0 - -mbedtls_mpi_core_add_if #178: 0x100 + 0x100 = (0x200, carry 0)/(0x200, carry 0) -mpi_core_add_if:"100":"100":"200":0:"200":0 - -mbedtls_mpi_core_add_if #179: 0x100 + 0xff00 = (0x10000, carry 0)/(0x10000, carry 0) -mpi_core_add_if:"100":"ff00":"10000":0:"10000":0 - -mbedtls_mpi_core_add_if #180: 0x100 + 0xfffe = (0x100fe, carry 0)/(0x100fe, carry 0) -mpi_core_add_if:"100":"fffe":"100fe":0:"100fe":0 - -mbedtls_mpi_core_add_if #181: 0x100 + 0xffff = (0x100ff, carry 0)/(0x100ff, carry 0) -mpi_core_add_if:"100":"ffff":"100ff":0:"100ff":0 - -mbedtls_mpi_core_add_if #182: 0x100 + 0x10000 = (0x10100, carry 0)/(0x10100, carry 0) -mpi_core_add_if:"100":"10000":"10100":0:"10100":0 - -mbedtls_mpi_core_add_if #183: 0x100 + 0xfffffffe = (0xfe, carry 1)/(0x1000000fe, carry 0) -mpi_core_add_if:"100":"fffffffe":"fe":1:"1000000fe":0 - -mbedtls_mpi_core_add_if #184: 0x100 + 0xffffffff = (0xff, carry 1)/(0x1000000ff, carry 0) -mpi_core_add_if:"100":"ffffffff":"ff":1:"1000000ff":0 - -mbedtls_mpi_core_add_if #185: 0x100 + 0x100000000 = (0x100000100, carry 0)/(0x100000100, carry 0) -mpi_core_add_if:"100":"100000000":"100000100":0:"100000100":0 - -mbedtls_mpi_core_add_if #186: 0x100 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f807f, carry 0)/(0x1f7f7f7f7f807f, carry 0) -mpi_core_add_if:"100":"1f7f7f7f7f7f7f":"1f7f7f7f7f807f":0:"1f7f7f7f7f807f":0 - -mbedtls_mpi_core_add_if #187: 0x100 + 0x8000000000000000 = (0x8000000000000100, carry 0)/(0x8000000000000100, carry 0) -mpi_core_add_if:"100":"8000000000000000":"8000000000000100":0:"8000000000000100":0 - -mbedtls_mpi_core_add_if #188: 0x100 + 0xfefefefefefefefe = (0xfefefefefefefffe, carry 0)/(0xfefefefefefefffe, carry 0) -mpi_core_add_if:"100":"fefefefefefefefe":"fefefefefefefffe":0:"fefefefefefefffe":0 - -mbedtls_mpi_core_add_if #189: 0x100 + 0xfffffffffffffffe = (0xfe, carry 1)/(0xfe, carry 1) -mpi_core_add_if:"100":"fffffffffffffffe":"fe":1:"fe":1 - -mbedtls_mpi_core_add_if #190: 0x100 + 0xffffffffffffffff = (0xff, carry 1)/(0xff, carry 1) -mpi_core_add_if:"100":"ffffffffffffffff":"ff":1:"ff":1 - -mbedtls_mpi_core_add_if #191: 0x100 + 0x10000000000000000 = (0x10000000000000100, carry 0)/(0x10000000000000100, carry 0) -mpi_core_add_if:"100":"10000000000000000":"10000000000000100":0:"10000000000000100":0 - -mbedtls_mpi_core_add_if #192: 0x100 + 0x1234567890abcdef0 = (0x1234567890abcdff0, carry 0)/(0x1234567890abcdff0, carry 0) -mpi_core_add_if:"100":"1234567890abcdef0":"1234567890abcdff0":0:"1234567890abcdff0":0 - -mbedtls_mpi_core_add_if #193: 0x100 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefffe, carry 0)/(0xfffffffffffffffffefefefefefefffe, carry 0) -mpi_core_add_if:"100":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefffe":0:"fffffffffffffffffefefefefefefffe":0 - -mbedtls_mpi_core_add_if #194: 0x100 + 0xfffffffffffffffffffffffffffffffe = (0xfe, carry 1)/(0xfe, carry 1) -mpi_core_add_if:"100":"fffffffffffffffffffffffffffffffe":"fe":1:"fe":1 - -mbedtls_mpi_core_add_if #195: 0x100 + 0xffffffffffffffffffffffffffffffff = (0xff, carry 1)/(0xff, carry 1) -mpi_core_add_if:"100":"ffffffffffffffffffffffffffffffff":"ff":1:"ff":1 - -mbedtls_mpi_core_add_if #196: 0x100 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000000100, carry 0)/(0x100000000000000000000000000000100, carry 0) -mpi_core_add_if:"100":"100000000000000000000000000000000":"100000000000000000000000000000100":0:"100000000000000000000000000000100":0 - -mbedtls_mpi_core_add_if #197: 0x100 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdff0, carry 0)/(0x1234567890abcdef01234567890abcdff0, carry 0) -mpi_core_add_if:"100":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdff0":0:"1234567890abcdef01234567890abcdff0":0 - -mbedtls_mpi_core_add_if #198: 0x100 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe, carry 0) -mpi_core_add_if:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe":0 - -mbedtls_mpi_core_add_if #199: 0x100 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfe, carry 1)/(0xfe, carry 1) -mpi_core_add_if:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fe":1:"fe":1 - -mbedtls_mpi_core_add_if #200: 0x100 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xff, carry 1)/(0xff, carry 1) -mpi_core_add_if:"100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":1:"ff":1 - -mbedtls_mpi_core_add_if #201: 0x100 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000000100, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000000100, carry 0) -mpi_core_add_if:"100":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000100":0:"10000000000000000000000000000000000000000000000000000000000000100":0 - -mbedtls_mpi_core_add_if #202: 0x100 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0, carry 0) -mpi_core_add_if:"100":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0":0 - -mbedtls_mpi_core_add_if #203: 0x100 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b, carry 0) -mpi_core_add_if:"100":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b":0 - -mbedtls_mpi_core_add_if #204: 0xff00 + 0xff00 = (0x1fe00, carry 0)/(0x1fe00, carry 0) -mpi_core_add_if:"ff00":"ff00":"1fe00":0:"1fe00":0 - -mbedtls_mpi_core_add_if #205: 0xff00 + 0xfffe = (0x1fefe, carry 0)/(0x1fefe, carry 0) -mpi_core_add_if:"ff00":"fffe":"1fefe":0:"1fefe":0 - -mbedtls_mpi_core_add_if #206: 0xff00 + 0xffff = (0x1feff, carry 0)/(0x1feff, carry 0) -mpi_core_add_if:"ff00":"ffff":"1feff":0:"1feff":0 - -mbedtls_mpi_core_add_if #207: 0xff00 + 0x10000 = (0x1ff00, carry 0)/(0x1ff00, carry 0) -mpi_core_add_if:"ff00":"10000":"1ff00":0:"1ff00":0 - -mbedtls_mpi_core_add_if #208: 0xff00 + 0xfffffffe = (0xfefe, carry 1)/(0x10000fefe, carry 0) -mpi_core_add_if:"ff00":"fffffffe":"fefe":1:"10000fefe":0 - -mbedtls_mpi_core_add_if #209: 0xff00 + 0xffffffff = (0xfeff, carry 1)/(0x10000feff, carry 0) -mpi_core_add_if:"ff00":"ffffffff":"feff":1:"10000feff":0 - -mbedtls_mpi_core_add_if #210: 0xff00 + 0x100000000 = (0x10000ff00, carry 0)/(0x10000ff00, carry 0) -mpi_core_add_if:"ff00":"100000000":"10000ff00":0:"10000ff00":0 - -mbedtls_mpi_core_add_if #211: 0xff00 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f807e7f, carry 0)/(0x1f7f7f7f807e7f, carry 0) -mpi_core_add_if:"ff00":"1f7f7f7f7f7f7f":"1f7f7f7f807e7f":0:"1f7f7f7f807e7f":0 - -mbedtls_mpi_core_add_if #212: 0xff00 + 0x8000000000000000 = (0x800000000000ff00, carry 0)/(0x800000000000ff00, carry 0) -mpi_core_add_if:"ff00":"8000000000000000":"800000000000ff00":0:"800000000000ff00":0 - -mbedtls_mpi_core_add_if #213: 0xff00 + 0xfefefefefefefefe = (0xfefefefefefffdfe, carry 0)/(0xfefefefefefffdfe, carry 0) -mpi_core_add_if:"ff00":"fefefefefefefefe":"fefefefefefffdfe":0:"fefefefefefffdfe":0 - -mbedtls_mpi_core_add_if #214: 0xff00 + 0xfffffffffffffffe = (0xfefe, carry 1)/(0xfefe, carry 1) -mpi_core_add_if:"ff00":"fffffffffffffffe":"fefe":1:"fefe":1 - -mbedtls_mpi_core_add_if #215: 0xff00 + 0xffffffffffffffff = (0xfeff, carry 1)/(0xfeff, carry 1) -mpi_core_add_if:"ff00":"ffffffffffffffff":"feff":1:"feff":1 - -mbedtls_mpi_core_add_if #216: 0xff00 + 0x10000000000000000 = (0x1000000000000ff00, carry 0)/(0x1000000000000ff00, carry 0) -mpi_core_add_if:"ff00":"10000000000000000":"1000000000000ff00":0:"1000000000000ff00":0 - -mbedtls_mpi_core_add_if #217: 0xff00 + 0x1234567890abcdef0 = (0x1234567890abdddf0, carry 0)/(0x1234567890abdddf0, carry 0) -mpi_core_add_if:"ff00":"1234567890abcdef0":"1234567890abdddf0":0:"1234567890abdddf0":0 - -mbedtls_mpi_core_add_if #218: 0xff00 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefffdfe, carry 0)/(0xfffffffffffffffffefefefefefffdfe, carry 0) -mpi_core_add_if:"ff00":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffdfe":0:"fffffffffffffffffefefefefefffdfe":0 - -mbedtls_mpi_core_add_if #219: 0xff00 + 0xfffffffffffffffffffffffffffffffe = (0xfefe, carry 1)/(0xfefe, carry 1) -mpi_core_add_if:"ff00":"fffffffffffffffffffffffffffffffe":"fefe":1:"fefe":1 - -mbedtls_mpi_core_add_if #220: 0xff00 + 0xffffffffffffffffffffffffffffffff = (0xfeff, carry 1)/(0xfeff, carry 1) -mpi_core_add_if:"ff00":"ffffffffffffffffffffffffffffffff":"feff":1:"feff":1 - -mbedtls_mpi_core_add_if #221: 0xff00 + 0x100000000000000000000000000000000 = (0x10000000000000000000000000000ff00, carry 0)/(0x10000000000000000000000000000ff00, carry 0) -mpi_core_add_if:"ff00":"100000000000000000000000000000000":"10000000000000000000000000000ff00":0:"10000000000000000000000000000ff00":0 - -mbedtls_mpi_core_add_if #222: 0xff00 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abdddf0, carry 0)/(0x1234567890abcdef01234567890abdddf0, carry 0) -mpi_core_add_if:"ff00":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abdddf0":0:"1234567890abcdef01234567890abdddf0":0 - -mbedtls_mpi_core_add_if #223: 0xff00 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe, carry 0) -mpi_core_add_if:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe":0 - -mbedtls_mpi_core_add_if #224: 0xff00 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfefe, carry 1)/(0xfefe, carry 1) -mpi_core_add_if:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefe":1:"fefe":1 - -mbedtls_mpi_core_add_if #225: 0xff00 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfeff, carry 1)/(0xfeff, carry 1) -mpi_core_add_if:"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"feff":1:"feff":1 - -mbedtls_mpi_core_add_if #226: 0xff00 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000000000000000ff00, carry 0)/(0x1000000000000000000000000000000000000000000000000000000000000ff00, carry 0) -mpi_core_add_if:"ff00":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000ff00":0:"1000000000000000000000000000000000000000000000000000000000000ff00":0 - -mbedtls_mpi_core_add_if #227: 0xff00 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0, carry 0) -mpi_core_add_if:"ff00":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0":0 - -mbedtls_mpi_core_add_if #228: 0xff00 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b, carry 0) -mpi_core_add_if:"ff00":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b":0 - -mbedtls_mpi_core_add_if #229: 0xfffe + 0xfffe = (0x1fffc, carry 0)/(0x1fffc, carry 0) -mpi_core_add_if:"fffe":"fffe":"1fffc":0:"1fffc":0 - -mbedtls_mpi_core_add_if #230: 0xfffe + 0xffff = (0x1fffd, carry 0)/(0x1fffd, carry 0) -mpi_core_add_if:"fffe":"ffff":"1fffd":0:"1fffd":0 - -mbedtls_mpi_core_add_if #231: 0xfffe + 0x10000 = (0x1fffe, carry 0)/(0x1fffe, carry 0) -mpi_core_add_if:"fffe":"10000":"1fffe":0:"1fffe":0 - -mbedtls_mpi_core_add_if #232: 0xfffe + 0xfffffffe = (0xfffc, carry 1)/(0x10000fffc, carry 0) -mpi_core_add_if:"fffe":"fffffffe":"fffc":1:"10000fffc":0 - -mbedtls_mpi_core_add_if #233: 0xfffe + 0xffffffff = (0xfffd, carry 1)/(0x10000fffd, carry 0) -mpi_core_add_if:"fffe":"ffffffff":"fffd":1:"10000fffd":0 - -mbedtls_mpi_core_add_if #234: 0xfffe + 0x100000000 = (0x10000fffe, carry 0)/(0x10000fffe, carry 0) -mpi_core_add_if:"fffe":"100000000":"10000fffe":0:"10000fffe":0 - -mbedtls_mpi_core_add_if #235: 0xfffe + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f807f7d, carry 0)/(0x1f7f7f7f807f7d, carry 0) -mpi_core_add_if:"fffe":"1f7f7f7f7f7f7f":"1f7f7f7f807f7d":0:"1f7f7f7f807f7d":0 - -mbedtls_mpi_core_add_if #236: 0xfffe + 0x8000000000000000 = (0x800000000000fffe, carry 0)/(0x800000000000fffe, carry 0) -mpi_core_add_if:"fffe":"8000000000000000":"800000000000fffe":0:"800000000000fffe":0 - -mbedtls_mpi_core_add_if #237: 0xfffe + 0xfefefefefefefefe = (0xfefefefefefffefc, carry 0)/(0xfefefefefefffefc, carry 0) -mpi_core_add_if:"fffe":"fefefefefefefefe":"fefefefefefffefc":0:"fefefefefefffefc":0 - -mbedtls_mpi_core_add_if #238: 0xfffe + 0xfffffffffffffffe = (0xfffc, carry 1)/(0xfffc, carry 1) -mpi_core_add_if:"fffe":"fffffffffffffffe":"fffc":1:"fffc":1 - -mbedtls_mpi_core_add_if #239: 0xfffe + 0xffffffffffffffff = (0xfffd, carry 1)/(0xfffd, carry 1) -mpi_core_add_if:"fffe":"ffffffffffffffff":"fffd":1:"fffd":1 - -mbedtls_mpi_core_add_if #240: 0xfffe + 0x10000000000000000 = (0x1000000000000fffe, carry 0)/(0x1000000000000fffe, carry 0) -mpi_core_add_if:"fffe":"10000000000000000":"1000000000000fffe":0:"1000000000000fffe":0 - -mbedtls_mpi_core_add_if #241: 0xfffe + 0x1234567890abcdef0 = (0x1234567890abddeee, carry 0)/(0x1234567890abddeee, carry 0) -mpi_core_add_if:"fffe":"1234567890abcdef0":"1234567890abddeee":0:"1234567890abddeee":0 - -mbedtls_mpi_core_add_if #242: 0xfffe + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefffefc, carry 0)/(0xfffffffffffffffffefefefefefffefc, carry 0) -mpi_core_add_if:"fffe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffefc":0:"fffffffffffffffffefefefefefffefc":0 - -mbedtls_mpi_core_add_if #243: 0xfffe + 0xfffffffffffffffffffffffffffffffe = (0xfffc, carry 1)/(0xfffc, carry 1) -mpi_core_add_if:"fffe":"fffffffffffffffffffffffffffffffe":"fffc":1:"fffc":1 - -mbedtls_mpi_core_add_if #244: 0xfffe + 0xffffffffffffffffffffffffffffffff = (0xfffd, carry 1)/(0xfffd, carry 1) -mpi_core_add_if:"fffe":"ffffffffffffffffffffffffffffffff":"fffd":1:"fffd":1 - -mbedtls_mpi_core_add_if #245: 0xfffe + 0x100000000000000000000000000000000 = (0x10000000000000000000000000000fffe, carry 0)/(0x10000000000000000000000000000fffe, carry 0) -mpi_core_add_if:"fffe":"100000000000000000000000000000000":"10000000000000000000000000000fffe":0:"10000000000000000000000000000fffe":0 - -mbedtls_mpi_core_add_if #246: 0xfffe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abddeee, carry 0)/(0x1234567890abcdef01234567890abddeee, carry 0) -mpi_core_add_if:"fffe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abddeee":0:"1234567890abcdef01234567890abddeee":0 - -mbedtls_mpi_core_add_if #247: 0xfffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc, carry 0) -mpi_core_add_if:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc":0 - -mbedtls_mpi_core_add_if #248: 0xfffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffc, carry 1)/(0xfffc, carry 1) -mpi_core_add_if:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffc":1:"fffc":1 - -mbedtls_mpi_core_add_if #249: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffd, carry 1)/(0xfffd, carry 1) -mpi_core_add_if:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffd":1:"fffd":1 - -mbedtls_mpi_core_add_if #250: 0xfffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000000000000000fffe, carry 0)/(0x1000000000000000000000000000000000000000000000000000000000000fffe, carry 0) -mpi_core_add_if:"fffe":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000fffe":0:"1000000000000000000000000000000000000000000000000000000000000fffe":0 - -mbedtls_mpi_core_add_if #251: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee, carry 0) -mpi_core_add_if:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee":0 - -mbedtls_mpi_core_add_if #252: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129, carry 0) -mpi_core_add_if:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129":0 - -mbedtls_mpi_core_add_if #253: 0xffff + 0xffff = (0x1fffe, carry 0)/(0x1fffe, carry 0) -mpi_core_add_if:"ffff":"ffff":"1fffe":0:"1fffe":0 - -mbedtls_mpi_core_add_if #254: 0xffff + 0x10000 = (0x1ffff, carry 0)/(0x1ffff, carry 0) -mpi_core_add_if:"ffff":"10000":"1ffff":0:"1ffff":0 - -mbedtls_mpi_core_add_if #255: 0xffff + 0xfffffffe = (0xfffd, carry 1)/(0x10000fffd, carry 0) -mpi_core_add_if:"ffff":"fffffffe":"fffd":1:"10000fffd":0 - -mbedtls_mpi_core_add_if #256: 0xffff + 0xffffffff = (0xfffe, carry 1)/(0x10000fffe, carry 0) -mpi_core_add_if:"ffff":"ffffffff":"fffe":1:"10000fffe":0 - -mbedtls_mpi_core_add_if #257: 0xffff + 0x100000000 = (0x10000ffff, carry 0)/(0x10000ffff, carry 0) -mpi_core_add_if:"ffff":"100000000":"10000ffff":0:"10000ffff":0 - -mbedtls_mpi_core_add_if #258: 0xffff + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f807f7e, carry 0)/(0x1f7f7f7f807f7e, carry 0) -mpi_core_add_if:"ffff":"1f7f7f7f7f7f7f":"1f7f7f7f807f7e":0:"1f7f7f7f807f7e":0 - -mbedtls_mpi_core_add_if #259: 0xffff + 0x8000000000000000 = (0x800000000000ffff, carry 0)/(0x800000000000ffff, carry 0) -mpi_core_add_if:"ffff":"8000000000000000":"800000000000ffff":0:"800000000000ffff":0 - -mbedtls_mpi_core_add_if #260: 0xffff + 0xfefefefefefefefe = (0xfefefefefefffefd, carry 0)/(0xfefefefefefffefd, carry 0) -mpi_core_add_if:"ffff":"fefefefefefefefe":"fefefefefefffefd":0:"fefefefefefffefd":0 - -mbedtls_mpi_core_add_if #261: 0xffff + 0xfffffffffffffffe = (0xfffd, carry 1)/(0xfffd, carry 1) -mpi_core_add_if:"ffff":"fffffffffffffffe":"fffd":1:"fffd":1 - -mbedtls_mpi_core_add_if #262: 0xffff + 0xffffffffffffffff = (0xfffe, carry 1)/(0xfffe, carry 1) -mpi_core_add_if:"ffff":"ffffffffffffffff":"fffe":1:"fffe":1 - -mbedtls_mpi_core_add_if #263: 0xffff + 0x10000000000000000 = (0x1000000000000ffff, carry 0)/(0x1000000000000ffff, carry 0) -mpi_core_add_if:"ffff":"10000000000000000":"1000000000000ffff":0:"1000000000000ffff":0 - -mbedtls_mpi_core_add_if #264: 0xffff + 0x1234567890abcdef0 = (0x1234567890abddeef, carry 0)/(0x1234567890abddeef, carry 0) -mpi_core_add_if:"ffff":"1234567890abcdef0":"1234567890abddeef":0:"1234567890abddeef":0 - -mbedtls_mpi_core_add_if #265: 0xffff + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefffefd, carry 0)/(0xfffffffffffffffffefefefefefffefd, carry 0) -mpi_core_add_if:"ffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffefd":0:"fffffffffffffffffefefefefefffefd":0 - -mbedtls_mpi_core_add_if #266: 0xffff + 0xfffffffffffffffffffffffffffffffe = (0xfffd, carry 1)/(0xfffd, carry 1) -mpi_core_add_if:"ffff":"fffffffffffffffffffffffffffffffe":"fffd":1:"fffd":1 - -mbedtls_mpi_core_add_if #267: 0xffff + 0xffffffffffffffffffffffffffffffff = (0xfffe, carry 1)/(0xfffe, carry 1) -mpi_core_add_if:"ffff":"ffffffffffffffffffffffffffffffff":"fffe":1:"fffe":1 - -mbedtls_mpi_core_add_if #268: 0xffff + 0x100000000000000000000000000000000 = (0x10000000000000000000000000000ffff, carry 0)/(0x10000000000000000000000000000ffff, carry 0) -mpi_core_add_if:"ffff":"100000000000000000000000000000000":"10000000000000000000000000000ffff":0:"10000000000000000000000000000ffff":0 - -mbedtls_mpi_core_add_if #269: 0xffff + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abddeef, carry 0)/(0x1234567890abcdef01234567890abddeef, carry 0) -mpi_core_add_if:"ffff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abddeef":0:"1234567890abcdef01234567890abddeef":0 - -mbedtls_mpi_core_add_if #270: 0xffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd, carry 0) -mpi_core_add_if:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd":0 - -mbedtls_mpi_core_add_if #271: 0xffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffd, carry 1)/(0xfffd, carry 1) -mpi_core_add_if:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffd":1:"fffd":1 - -mbedtls_mpi_core_add_if #272: 0xffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffe, carry 1)/(0xfffe, carry 1) -mpi_core_add_if:"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":1:"fffe":1 - -mbedtls_mpi_core_add_if #273: 0xffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000000000000000ffff, carry 0)/(0x1000000000000000000000000000000000000000000000000000000000000ffff, carry 0) -mpi_core_add_if:"ffff":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000ffff":0:"1000000000000000000000000000000000000000000000000000000000000ffff":0 - -mbedtls_mpi_core_add_if #274: 0xffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef, carry 0) -mpi_core_add_if:"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":0 - -mbedtls_mpi_core_add_if #275: 0xffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a, carry 0) -mpi_core_add_if:"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":0 - -mbedtls_mpi_core_add_if #276: 0x10000 + 0x10000 = (0x20000, carry 0)/(0x20000, carry 0) -mpi_core_add_if:"10000":"10000":"20000":0:"20000":0 - -mbedtls_mpi_core_add_if #277: 0x10000 + 0xfffffffe = (0xfffe, carry 1)/(0x10000fffe, carry 0) -mpi_core_add_if:"10000":"fffffffe":"fffe":1:"10000fffe":0 - -mbedtls_mpi_core_add_if #278: 0x10000 + 0xffffffff = (0xffff, carry 1)/(0x10000ffff, carry 0) -mpi_core_add_if:"10000":"ffffffff":"ffff":1:"10000ffff":0 - -mbedtls_mpi_core_add_if #279: 0x10000 + 0x100000000 = (0x100010000, carry 0)/(0x100010000, carry 0) -mpi_core_add_if:"10000":"100000000":"100010000":0:"100010000":0 - -mbedtls_mpi_core_add_if #280: 0x10000 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f807f7f, carry 0)/(0x1f7f7f7f807f7f, carry 0) -mpi_core_add_if:"10000":"1f7f7f7f7f7f7f":"1f7f7f7f807f7f":0:"1f7f7f7f807f7f":0 - -mbedtls_mpi_core_add_if #281: 0x10000 + 0x8000000000000000 = (0x8000000000010000, carry 0)/(0x8000000000010000, carry 0) -mpi_core_add_if:"10000":"8000000000000000":"8000000000010000":0:"8000000000010000":0 - -mbedtls_mpi_core_add_if #282: 0x10000 + 0xfefefefefefefefe = (0xfefefefefefffefe, carry 0)/(0xfefefefefefffefe, carry 0) -mpi_core_add_if:"10000":"fefefefefefefefe":"fefefefefefffefe":0:"fefefefefefffefe":0 - -mbedtls_mpi_core_add_if #283: 0x10000 + 0xfffffffffffffffe = (0xfffe, carry 1)/(0xfffe, carry 1) -mpi_core_add_if:"10000":"fffffffffffffffe":"fffe":1:"fffe":1 - -mbedtls_mpi_core_add_if #284: 0x10000 + 0xffffffffffffffff = (0xffff, carry 1)/(0xffff, carry 1) -mpi_core_add_if:"10000":"ffffffffffffffff":"ffff":1:"ffff":1 - -mbedtls_mpi_core_add_if #285: 0x10000 + 0x10000000000000000 = (0x10000000000010000, carry 0)/(0x10000000000010000, carry 0) -mpi_core_add_if:"10000":"10000000000000000":"10000000000010000":0:"10000000000010000":0 - -mbedtls_mpi_core_add_if #286: 0x10000 + 0x1234567890abcdef0 = (0x1234567890abddef0, carry 0)/(0x1234567890abddef0, carry 0) -mpi_core_add_if:"10000":"1234567890abcdef0":"1234567890abddef0":0:"1234567890abddef0":0 - -mbedtls_mpi_core_add_if #287: 0x10000 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefffefe, carry 0)/(0xfffffffffffffffffefefefefefffefe, carry 0) -mpi_core_add_if:"10000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffefe":0:"fffffffffffffffffefefefefefffefe":0 - -mbedtls_mpi_core_add_if #288: 0x10000 + 0xfffffffffffffffffffffffffffffffe = (0xfffe, carry 1)/(0xfffe, carry 1) -mpi_core_add_if:"10000":"fffffffffffffffffffffffffffffffe":"fffe":1:"fffe":1 - -mbedtls_mpi_core_add_if #289: 0x10000 + 0xffffffffffffffffffffffffffffffff = (0xffff, carry 1)/(0xffff, carry 1) -mpi_core_add_if:"10000":"ffffffffffffffffffffffffffffffff":"ffff":1:"ffff":1 - -mbedtls_mpi_core_add_if #290: 0x10000 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000010000, carry 0)/(0x100000000000000000000000000010000, carry 0) -mpi_core_add_if:"10000":"100000000000000000000000000000000":"100000000000000000000000000010000":0:"100000000000000000000000000010000":0 - -mbedtls_mpi_core_add_if #291: 0x10000 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abddef0, carry 0)/(0x1234567890abcdef01234567890abddef0, carry 0) -mpi_core_add_if:"10000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abddef0":0:"1234567890abcdef01234567890abddef0":0 - -mbedtls_mpi_core_add_if #292: 0x10000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe, carry 0) -mpi_core_add_if:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe":0 - -mbedtls_mpi_core_add_if #293: 0x10000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffe, carry 1)/(0xfffe, carry 1) -mpi_core_add_if:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffe":1:"fffe":1 - -mbedtls_mpi_core_add_if #294: 0x10000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffff, carry 1)/(0xffff, carry 1) -mpi_core_add_if:"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":1:"ffff":1 - -mbedtls_mpi_core_add_if #295: 0x10000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000010000, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000010000, carry 0) -mpi_core_add_if:"10000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000010000":0:"10000000000000000000000000000000000000000000000000000000000010000":0 - -mbedtls_mpi_core_add_if #296: 0x10000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0, carry 0) -mpi_core_add_if:"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":0 - -mbedtls_mpi_core_add_if #297: 0x10000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b, carry 0) -mpi_core_add_if:"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":0 - -mbedtls_mpi_core_add_if #298: 0xfffffffe + 0xfffffffe = (0xfffffffc, carry 1)/(0x1fffffffc, carry 0) -mpi_core_add_if:"fffffffe":"fffffffe":"fffffffc":1:"1fffffffc":0 - -mbedtls_mpi_core_add_if #299: 0xfffffffe + 0xffffffff = (0xfffffffd, carry 1)/(0x1fffffffd, carry 0) -mpi_core_add_if:"fffffffe":"ffffffff":"fffffffd":1:"1fffffffd":0 - -mbedtls_mpi_core_add_if #300: 0xfffffffe + 0x100000000 = (0x1fffffffe, carry 0)/(0x1fffffffe, carry 0) -mpi_core_add_if:"fffffffe":"100000000":"1fffffffe":0:"1fffffffe":0 - -mbedtls_mpi_core_add_if #301: 0xfffffffe + 0x1f7f7f7f7f7f7f = (0x1f7f807f7f7f7d, carry 0)/(0x1f7f807f7f7f7d, carry 0) -mpi_core_add_if:"fffffffe":"1f7f7f7f7f7f7f":"1f7f807f7f7f7d":0:"1f7f807f7f7f7d":0 - -mbedtls_mpi_core_add_if #302: 0xfffffffe + 0x8000000000000000 = (0x80000000fffffffe, carry 0)/(0x80000000fffffffe, carry 0) -mpi_core_add_if:"fffffffe":"8000000000000000":"80000000fffffffe":0:"80000000fffffffe":0 - -mbedtls_mpi_core_add_if #303: 0xfffffffe + 0xfefefefefefefefe = (0xfefefefffefefefc, carry 0)/(0xfefefefffefefefc, carry 0) -mpi_core_add_if:"fffffffe":"fefefefefefefefe":"fefefefffefefefc":0:"fefefefffefefefc":0 - -mbedtls_mpi_core_add_if #304: 0xfffffffe + 0xfffffffffffffffe = (0xfffffffc, carry 1)/(0xfffffffc, carry 1) -mpi_core_add_if:"fffffffe":"fffffffffffffffe":"fffffffc":1:"fffffffc":1 - -mbedtls_mpi_core_add_if #305: 0xfffffffe + 0xffffffffffffffff = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mpi_core_add_if:"fffffffe":"ffffffffffffffff":"fffffffd":1:"fffffffd":1 - -mbedtls_mpi_core_add_if #306: 0xfffffffe + 0x10000000000000000 = (0x100000000fffffffe, carry 0)/(0x100000000fffffffe, carry 0) -mpi_core_add_if:"fffffffe":"10000000000000000":"100000000fffffffe":0:"100000000fffffffe":0 - -mbedtls_mpi_core_add_if #307: 0xfffffffe + 0x1234567890abcdef0 = (0x12345678a0abcdeee, carry 0)/(0x12345678a0abcdeee, carry 0) -mpi_core_add_if:"fffffffe":"1234567890abcdef0":"12345678a0abcdeee":0:"12345678a0abcdeee":0 - -mbedtls_mpi_core_add_if #308: 0xfffffffe + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefffefefefc, carry 0)/(0xfffffffffffffffffefefefffefefefc, carry 0) -mpi_core_add_if:"fffffffe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefffefefefc":0:"fffffffffffffffffefefefffefefefc":0 - -mbedtls_mpi_core_add_if #309: 0xfffffffe + 0xfffffffffffffffffffffffffffffffe = (0xfffffffc, carry 1)/(0xfffffffc, carry 1) -mpi_core_add_if:"fffffffe":"fffffffffffffffffffffffffffffffe":"fffffffc":1:"fffffffc":1 - -mbedtls_mpi_core_add_if #310: 0xfffffffe + 0xffffffffffffffffffffffffffffffff = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mpi_core_add_if:"fffffffe":"ffffffffffffffffffffffffffffffff":"fffffffd":1:"fffffffd":1 - -mbedtls_mpi_core_add_if #311: 0xfffffffe + 0x100000000000000000000000000000000 = (0x1000000000000000000000000fffffffe, carry 0)/(0x1000000000000000000000000fffffffe, carry 0) -mpi_core_add_if:"fffffffe":"100000000000000000000000000000000":"1000000000000000000000000fffffffe":0:"1000000000000000000000000fffffffe":0 - -mbedtls_mpi_core_add_if #312: 0xfffffffe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef012345678a0abcdeee, carry 0)/(0x1234567890abcdef012345678a0abcdeee, carry 0) -mpi_core_add_if:"fffffffe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012345678a0abcdeee":0:"1234567890abcdef012345678a0abcdeee":0 - -mbedtls_mpi_core_add_if #313: 0xfffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc, carry 0) -mpi_core_add_if:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc":0 - -mbedtls_mpi_core_add_if #314: 0xfffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffc, carry 1)/(0xfffffffc, carry 1) -mpi_core_add_if:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffc":1:"fffffffc":1 - -mbedtls_mpi_core_add_if #315: 0xfffffffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mpi_core_add_if:"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffd":1:"fffffffd":1 - -mbedtls_mpi_core_add_if #316: 0xfffffffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000000000000000000000000000fffffffe, carry 0)/(0x100000000000000000000000000000000000000000000000000000000fffffffe, carry 0) -mpi_core_add_if:"fffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000fffffffe":0:"100000000000000000000000000000000000000000000000000000000fffffffe":0 - -mbedtls_mpi_core_add_if #317: 0xfffffffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee, carry 0) -mpi_core_add_if:"fffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee":0:"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee":0 - -mbedtls_mpi_core_add_if #318: 0xfffffffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129, carry 0) -mpi_core_add_if:"fffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129":0 - -mbedtls_mpi_core_add_if #319: 0xffffffff + 0xffffffff = (0xfffffffe, carry 1)/(0x1fffffffe, carry 0) -mpi_core_add_if:"ffffffff":"ffffffff":"fffffffe":1:"1fffffffe":0 - -mbedtls_mpi_core_add_if #320: 0xffffffff + 0x100000000 = (0x1ffffffff, carry 0)/(0x1ffffffff, carry 0) -mpi_core_add_if:"ffffffff":"100000000":"1ffffffff":0:"1ffffffff":0 - -mbedtls_mpi_core_add_if #321: 0xffffffff + 0x1f7f7f7f7f7f7f = (0x1f7f807f7f7f7e, carry 0)/(0x1f7f807f7f7f7e, carry 0) -mpi_core_add_if:"ffffffff":"1f7f7f7f7f7f7f":"1f7f807f7f7f7e":0:"1f7f807f7f7f7e":0 - -mbedtls_mpi_core_add_if #322: 0xffffffff + 0x8000000000000000 = (0x80000000ffffffff, carry 0)/(0x80000000ffffffff, carry 0) -mpi_core_add_if:"ffffffff":"8000000000000000":"80000000ffffffff":0:"80000000ffffffff":0 - -mbedtls_mpi_core_add_if #323: 0xffffffff + 0xfefefefefefefefe = (0xfefefefffefefefd, carry 0)/(0xfefefefffefefefd, carry 0) -mpi_core_add_if:"ffffffff":"fefefefefefefefe":"fefefefffefefefd":0:"fefefefffefefefd":0 - -mbedtls_mpi_core_add_if #324: 0xffffffff + 0xfffffffffffffffe = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mpi_core_add_if:"ffffffff":"fffffffffffffffe":"fffffffd":1:"fffffffd":1 - -mbedtls_mpi_core_add_if #325: 0xffffffff + 0xffffffffffffffff = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mpi_core_add_if:"ffffffff":"ffffffffffffffff":"fffffffe":1:"fffffffe":1 - -mbedtls_mpi_core_add_if #326: 0xffffffff + 0x10000000000000000 = (0x100000000ffffffff, carry 0)/(0x100000000ffffffff, carry 0) -mpi_core_add_if:"ffffffff":"10000000000000000":"100000000ffffffff":0:"100000000ffffffff":0 - -mbedtls_mpi_core_add_if #327: 0xffffffff + 0x1234567890abcdef0 = (0x12345678a0abcdeef, carry 0)/(0x12345678a0abcdeef, carry 0) -mpi_core_add_if:"ffffffff":"1234567890abcdef0":"12345678a0abcdeef":0:"12345678a0abcdeef":0 - -mbedtls_mpi_core_add_if #328: 0xffffffff + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefffefefefd, carry 0)/(0xfffffffffffffffffefefefffefefefd, carry 0) -mpi_core_add_if:"ffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefffefefefd":0:"fffffffffffffffffefefefffefefefd":0 - -mbedtls_mpi_core_add_if #329: 0xffffffff + 0xfffffffffffffffffffffffffffffffe = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mpi_core_add_if:"ffffffff":"fffffffffffffffffffffffffffffffe":"fffffffd":1:"fffffffd":1 - -mbedtls_mpi_core_add_if #330: 0xffffffff + 0xffffffffffffffffffffffffffffffff = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mpi_core_add_if:"ffffffff":"ffffffffffffffffffffffffffffffff":"fffffffe":1:"fffffffe":1 - -mbedtls_mpi_core_add_if #331: 0xffffffff + 0x100000000000000000000000000000000 = (0x1000000000000000000000000ffffffff, carry 0)/(0x1000000000000000000000000ffffffff, carry 0) -mpi_core_add_if:"ffffffff":"100000000000000000000000000000000":"1000000000000000000000000ffffffff":0:"1000000000000000000000000ffffffff":0 - -mbedtls_mpi_core_add_if #332: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef012345678a0abcdeef, carry 0)/(0x1234567890abcdef012345678a0abcdeef, carry 0) -mpi_core_add_if:"ffffffff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012345678a0abcdeef":0:"1234567890abcdef012345678a0abcdeef":0 - -mbedtls_mpi_core_add_if #333: 0xffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd, carry 0) -mpi_core_add_if:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd":0 - -mbedtls_mpi_core_add_if #334: 0xffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mpi_core_add_if:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffd":1:"fffffffd":1 - -mbedtls_mpi_core_add_if #335: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mpi_core_add_if:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffe":1:"fffffffe":1 - -mbedtls_mpi_core_add_if #336: 0xffffffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000000000000000000000000000ffffffff, carry 0)/(0x100000000000000000000000000000000000000000000000000000000ffffffff, carry 0) -mpi_core_add_if:"ffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000ffffffff":0:"100000000000000000000000000000000000000000000000000000000ffffffff":0 - -mbedtls_mpi_core_add_if #337: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef, carry 0) -mpi_core_add_if:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":0:"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":0 - -mbedtls_mpi_core_add_if #338: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a, carry 0) -mpi_core_add_if:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":0 - -mbedtls_mpi_core_add_if #339: 0x100000000 + 0x100000000 = (0x200000000, carry 0)/(0x200000000, carry 0) -mpi_core_add_if:"100000000":"100000000":"200000000":0:"200000000":0 - -mbedtls_mpi_core_add_if #340: 0x100000000 + 0x1f7f7f7f7f7f7f = (0x1f7f807f7f7f7f, carry 0)/(0x1f7f807f7f7f7f, carry 0) -mpi_core_add_if:"100000000":"1f7f7f7f7f7f7f":"1f7f807f7f7f7f":0:"1f7f807f7f7f7f":0 - -mbedtls_mpi_core_add_if #341: 0x100000000 + 0x8000000000000000 = (0x8000000100000000, carry 0)/(0x8000000100000000, carry 0) -mpi_core_add_if:"100000000":"8000000000000000":"8000000100000000":0:"8000000100000000":0 - -mbedtls_mpi_core_add_if #342: 0x100000000 + 0xfefefefefefefefe = (0xfefefefffefefefe, carry 0)/(0xfefefefffefefefe, carry 0) -mpi_core_add_if:"100000000":"fefefefefefefefe":"fefefefffefefefe":0:"fefefefffefefefe":0 - -mbedtls_mpi_core_add_if #343: 0x100000000 + 0xfffffffffffffffe = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mpi_core_add_if:"100000000":"fffffffffffffffe":"fffffffe":1:"fffffffe":1 - -mbedtls_mpi_core_add_if #344: 0x100000000 + 0xffffffffffffffff = (0xffffffff, carry 1)/(0xffffffff, carry 1) -mpi_core_add_if:"100000000":"ffffffffffffffff":"ffffffff":1:"ffffffff":1 - -mbedtls_mpi_core_add_if #345: 0x100000000 + 0x10000000000000000 = (0x10000000100000000, carry 0)/(0x10000000100000000, carry 0) -mpi_core_add_if:"100000000":"10000000000000000":"10000000100000000":0:"10000000100000000":0 - -mbedtls_mpi_core_add_if #346: 0x100000000 + 0x1234567890abcdef0 = (0x12345678a0abcdef0, carry 0)/(0x12345678a0abcdef0, carry 0) -mpi_core_add_if:"100000000":"1234567890abcdef0":"12345678a0abcdef0":0:"12345678a0abcdef0":0 - -mbedtls_mpi_core_add_if #347: 0x100000000 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefffefefefe, carry 0)/(0xfffffffffffffffffefefefffefefefe, carry 0) -mpi_core_add_if:"100000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefffefefefe":0:"fffffffffffffffffefefefffefefefe":0 - -mbedtls_mpi_core_add_if #348: 0x100000000 + 0xfffffffffffffffffffffffffffffffe = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mpi_core_add_if:"100000000":"fffffffffffffffffffffffffffffffe":"fffffffe":1:"fffffffe":1 - -mbedtls_mpi_core_add_if #349: 0x100000000 + 0xffffffffffffffffffffffffffffffff = (0xffffffff, carry 1)/(0xffffffff, carry 1) -mpi_core_add_if:"100000000":"ffffffffffffffffffffffffffffffff":"ffffffff":1:"ffffffff":1 - -mbedtls_mpi_core_add_if #350: 0x100000000 + 0x100000000000000000000000000000000 = (0x100000000000000000000000100000000, carry 0)/(0x100000000000000000000000100000000, carry 0) -mpi_core_add_if:"100000000":"100000000000000000000000000000000":"100000000000000000000000100000000":0:"100000000000000000000000100000000":0 - -mbedtls_mpi_core_add_if #351: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef012345678a0abcdef0, carry 0)/(0x1234567890abcdef012345678a0abcdef0, carry 0) -mpi_core_add_if:"100000000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012345678a0abcdef0":0:"1234567890abcdef012345678a0abcdef0":0 - -mbedtls_mpi_core_add_if #352: 0x100000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe, carry 0) -mpi_core_add_if:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe":0 - -mbedtls_mpi_core_add_if #353: 0x100000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mpi_core_add_if:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffe":1:"fffffffe":1 - -mbedtls_mpi_core_add_if #354: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffffffff, carry 1)/(0xffffffff, carry 1) -mpi_core_add_if:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":1:"ffffffff":1 - -mbedtls_mpi_core_add_if #355: 0x100000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000100000000, carry 0)/(0x10000000000000000000000000000000000000000000000000000000100000000, carry 0) -mpi_core_add_if:"100000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000100000000":0:"10000000000000000000000000000000000000000000000000000000100000000":0 - -mbedtls_mpi_core_add_if #356: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0, carry 0) -mpi_core_add_if:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":0 - -mbedtls_mpi_core_add_if #357: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b, carry 0) -mpi_core_add_if:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":0 - -mbedtls_mpi_core_add_if #358: 0x1f7f7f7f7f7f7f + 0x1f7f7f7f7f7f7f = (0x3efefefefefefe, carry 0)/(0x3efefefefefefe, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":"3efefefefefefe":0:"3efefefefefefe":0 - -mbedtls_mpi_core_add_if #359: 0x1f7f7f7f7f7f7f + 0x8000000000000000 = (0x801f7f7f7f7f7f7f, carry 0)/(0x801f7f7f7f7f7f7f, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"8000000000000000":"801f7f7f7f7f7f7f":0:"801f7f7f7f7f7f7f":0 - -mbedtls_mpi_core_add_if #360: 0x1f7f7f7f7f7f7f + 0xfefefefefefefefe = (0xff1e7e7e7e7e7e7d, carry 0)/(0xff1e7e7e7e7e7e7d, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"fefefefefefefefe":"ff1e7e7e7e7e7e7d":0:"ff1e7e7e7e7e7e7d":0 - -mbedtls_mpi_core_add_if #361: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffe = (0x1f7f7f7f7f7f7d, carry 1)/(0x1f7f7f7f7f7f7d, carry 1) -mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffe":"1f7f7f7f7f7f7d":1:"1f7f7f7f7f7f7d":1 - -mbedtls_mpi_core_add_if #362: 0x1f7f7f7f7f7f7f + 0xffffffffffffffff = (0x1f7f7f7f7f7f7e, carry 1)/(0x1f7f7f7f7f7f7e, carry 1) -mpi_core_add_if:"1f7f7f7f7f7f7f":"ffffffffffffffff":"1f7f7f7f7f7f7e":1:"1f7f7f7f7f7f7e":1 - -mbedtls_mpi_core_add_if #363: 0x1f7f7f7f7f7f7f + 0x10000000000000000 = (0x1001f7f7f7f7f7f7f, carry 0)/(0x1001f7f7f7f7f7f7f, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"10000000000000000":"1001f7f7f7f7f7f7f":0:"1001f7f7f7f7f7f7f":0 - -mbedtls_mpi_core_add_if #364: 0x1f7f7f7f7f7f7f + 0x1234567890abcdef0 = (0x12364e7088a3c5e6f, carry 0)/(0x12364e7088a3c5e6f, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"1234567890abcdef0":"12364e7088a3c5e6f":0:"12364e7088a3c5e6f":0 - -mbedtls_mpi_core_add_if #365: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffffefefefefefefefe = (0xffffffffffffffffff1e7e7e7e7e7e7d, carry 0)/(0xffffffffffffffffff1e7e7e7e7e7e7d, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffff1e7e7e7e7e7e7d":0:"ffffffffffffffffff1e7e7e7e7e7e7d":0 - -mbedtls_mpi_core_add_if #366: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffffffffffffffffffe = (0x1f7f7f7f7f7f7d, carry 1)/(0x1f7f7f7f7f7f7d, carry 1) -mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7d":1:"1f7f7f7f7f7f7d":1 - -mbedtls_mpi_core_add_if #367: 0x1f7f7f7f7f7f7f + 0xffffffffffffffffffffffffffffffff = (0x1f7f7f7f7f7f7e, carry 1)/(0x1f7f7f7f7f7f7e, carry 1) -mpi_core_add_if:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7e":1:"1f7f7f7f7f7f7e":1 - -mbedtls_mpi_core_add_if #368: 0x1f7f7f7f7f7f7f + 0x100000000000000000000000000000000 = (0x10000000000000000001f7f7f7f7f7f7f, carry 0)/(0x10000000000000000001f7f7f7f7f7f7f, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"100000000000000000000000000000000":"10000000000000000001f7f7f7f7f7f7f":0:"10000000000000000001f7f7f7f7f7f7f":0 - -mbedtls_mpi_core_add_if #369: 0x1f7f7f7f7f7f7f + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef012364e7088a3c5e6f, carry 0)/(0x1234567890abcdef012364e7088a3c5e6f, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012364e7088a3c5e6f":0:"1234567890abcdef012364e7088a3c5e6f":0 - -mbedtls_mpi_core_add_if #370: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d, carry 0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d":0:"ffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d":0 - -mbedtls_mpi_core_add_if #371: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x1f7f7f7f7f7f7d, carry 1)/(0x1f7f7f7f7f7f7d, carry 1) -mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7d":1:"1f7f7f7f7f7f7d":1 - -mbedtls_mpi_core_add_if #372: 0x1f7f7f7f7f7f7f + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x1f7f7f7f7f7f7e, carry 1)/(0x1f7f7f7f7f7f7e, carry 1) -mpi_core_add_if:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7e":1:"1f7f7f7f7f7f7e":1 - -mbedtls_mpi_core_add_if #373: 0x1f7f7f7f7f7f7f + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f, carry 0)/(0x1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":0:"1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":0 - -mbedtls_mpi_core_add_if #374: 0x1f7f7f7f7f7f7f + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f":0:"1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f":0 - -mbedtls_mpi_core_add_if #375: 0x1f7f7f7f7f7f7f + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa":0 - -mbedtls_mpi_core_add_if #376: 0x8000000000000000 + 0x8000000000000000 = (0x0, carry 1)/(0x0, carry 1) -mpi_core_add_if:"8000000000000000":"8000000000000000":"0":1:"0":1 - -mbedtls_mpi_core_add_if #377: 0x8000000000000000 + 0xfefefefefefefefe = (0x7efefefefefefefe, carry 1)/(0x7efefefefefefefe, carry 1) -mpi_core_add_if:"8000000000000000":"fefefefefefefefe":"7efefefefefefefe":1:"7efefefefefefefe":1 - -mbedtls_mpi_core_add_if #378: 0x8000000000000000 + 0xfffffffffffffffe = (0x7ffffffffffffffe, carry 1)/(0x7ffffffffffffffe, carry 1) -mpi_core_add_if:"8000000000000000":"fffffffffffffffe":"7ffffffffffffffe":1:"7ffffffffffffffe":1 - -mbedtls_mpi_core_add_if #379: 0x8000000000000000 + 0xffffffffffffffff = (0x7fffffffffffffff, carry 1)/(0x7fffffffffffffff, carry 1) -mpi_core_add_if:"8000000000000000":"ffffffffffffffff":"7fffffffffffffff":1:"7fffffffffffffff":1 - -mbedtls_mpi_core_add_if #380: 0x8000000000000000 + 0x10000000000000000 = (0x18000000000000000, carry 0)/(0x18000000000000000, carry 0) -mpi_core_add_if:"8000000000000000":"10000000000000000":"18000000000000000":0:"18000000000000000":0 - -mbedtls_mpi_core_add_if #381: 0x8000000000000000 + 0x1234567890abcdef0 = (0x1a34567890abcdef0, carry 0)/(0x1a34567890abcdef0, carry 0) -mpi_core_add_if:"8000000000000000":"1234567890abcdef0":"1a34567890abcdef0":0:"1a34567890abcdef0":0 - -mbedtls_mpi_core_add_if #382: 0x8000000000000000 + 0xfffffffffffffffffefefefefefefefe = (0x7efefefefefefefe, carry 1)/(0x7efefefefefefefe, carry 1) -mpi_core_add_if:"8000000000000000":"fffffffffffffffffefefefefefefefe":"7efefefefefefefe":1:"7efefefefefefefe":1 - -mbedtls_mpi_core_add_if #383: 0x8000000000000000 + 0xfffffffffffffffffffffffffffffffe = (0x7ffffffffffffffe, carry 1)/(0x7ffffffffffffffe, carry 1) -mpi_core_add_if:"8000000000000000":"fffffffffffffffffffffffffffffffe":"7ffffffffffffffe":1:"7ffffffffffffffe":1 - -mbedtls_mpi_core_add_if #384: 0x8000000000000000 + 0xffffffffffffffffffffffffffffffff = (0x7fffffffffffffff, carry 1)/(0x7fffffffffffffff, carry 1) -mpi_core_add_if:"8000000000000000":"ffffffffffffffffffffffffffffffff":"7fffffffffffffff":1:"7fffffffffffffff":1 - -mbedtls_mpi_core_add_if #385: 0x8000000000000000 + 0x100000000000000000000000000000000 = (0x100000000000000008000000000000000, carry 0)/(0x100000000000000008000000000000000, carry 0) -mpi_core_add_if:"8000000000000000":"100000000000000000000000000000000":"100000000000000008000000000000000":0:"100000000000000008000000000000000":0 - -mbedtls_mpi_core_add_if #386: 0x8000000000000000 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01a34567890abcdef0, carry 0)/(0x1234567890abcdef01a34567890abcdef0, carry 0) -mpi_core_add_if:"8000000000000000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01a34567890abcdef0":0:"1234567890abcdef01a34567890abcdef0":0 - -mbedtls_mpi_core_add_if #387: 0x8000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0x7efefefefefefefe, carry 1)/(0x7efefefefefefefe, carry 1) -mpi_core_add_if:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"7efefefefefefefe":1:"7efefefefefefefe":1 - -mbedtls_mpi_core_add_if #388: 0x8000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x7ffffffffffffffe, carry 1)/(0x7ffffffffffffffe, carry 1) -mpi_core_add_if:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"7ffffffffffffffe":1:"7ffffffffffffffe":1 - -mbedtls_mpi_core_add_if #389: 0x8000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x7fffffffffffffff, carry 1)/(0x7fffffffffffffff, carry 1) -mpi_core_add_if:"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7fffffffffffffff":1:"7fffffffffffffff":1 - -mbedtls_mpi_core_add_if #390: 0x8000000000000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000008000000000000000, carry 0)/(0x10000000000000000000000000000000000000000000000008000000000000000, carry 0) -mpi_core_add_if:"8000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000008000000000000000":0:"10000000000000000000000000000000000000000000000008000000000000000":0 - -mbedtls_mpi_core_add_if #391: 0x8000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0, carry 0) -mpi_core_add_if:"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":0 - -mbedtls_mpi_core_add_if #392: 0x8000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b, carry 0) -mpi_core_add_if:"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":0 - -mbedtls_mpi_core_add_if #393: 0xfefefefefefefefe + 0xfefefefefefefefe = (0xfdfdfdfdfdfdfdfc, carry 1)/(0xfdfdfdfdfdfdfdfc, carry 1) -mpi_core_add_if:"fefefefefefefefe":"fefefefefefefefe":"fdfdfdfdfdfdfdfc":1:"fdfdfdfdfdfdfdfc":1 - -mbedtls_mpi_core_add_if #394: 0xfefefefefefefefe + 0xfffffffffffffffe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) -mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffe":"fefefefefefefefc":1:"fefefefefefefefc":1 - -mbedtls_mpi_core_add_if #395: 0xfefefefefefefefe + 0xffffffffffffffff = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) -mpi_core_add_if:"fefefefefefefefe":"ffffffffffffffff":"fefefefefefefefd":1:"fefefefefefefefd":1 - -mbedtls_mpi_core_add_if #396: 0xfefefefefefefefe + 0x10000000000000000 = (0x1fefefefefefefefe, carry 0)/(0x1fefefefefefefefe, carry 0) -mpi_core_add_if:"fefefefefefefefe":"10000000000000000":"1fefefefefefefefe":0:"1fefefefefefefefe":0 - -mbedtls_mpi_core_add_if #397: 0xfefefefefefefefe + 0x1234567890abcdef0 = (0x22244668809bbddee, carry 0)/(0x22244668809bbddee, carry 0) -mpi_core_add_if:"fefefefefefefefe":"1234567890abcdef0":"22244668809bbddee":0:"22244668809bbddee":0 - -mbedtls_mpi_core_add_if #398: 0xfefefefefefefefe + 0xfffffffffffffffffefefefefefefefe = (0xfdfdfdfdfdfdfdfc, carry 1)/(0xfdfdfdfdfdfdfdfc, carry 1) -mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fdfdfdfdfdfdfdfc":1:"fdfdfdfdfdfdfdfc":1 - -mbedtls_mpi_core_add_if #399: 0xfefefefefefefefe + 0xfffffffffffffffffffffffffffffffe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) -mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fefefefefefefefc":1:"fefefefefefefefc":1 - -mbedtls_mpi_core_add_if #400: 0xfefefefefefefefe + 0xffffffffffffffffffffffffffffffff = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) -mpi_core_add_if:"fefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fefefefefefefefd":1:"fefefefefefefefd":1 - -mbedtls_mpi_core_add_if #401: 0xfefefefefefefefe + 0x100000000000000000000000000000000 = (0x10000000000000000fefefefefefefefe, carry 0)/(0x10000000000000000fefefefefefefefe, carry 0) -mpi_core_add_if:"fefefefefefefefe":"100000000000000000000000000000000":"10000000000000000fefefefefefefefe":0:"10000000000000000fefefefefefefefe":0 - -mbedtls_mpi_core_add_if #402: 0xfefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef022244668809bbddee, carry 0)/(0x1234567890abcdef022244668809bbddee, carry 0) -mpi_core_add_if:"fefefefefefefefe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef022244668809bbddee":0:"1234567890abcdef022244668809bbddee":0 - -mbedtls_mpi_core_add_if #403: 0xfefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfdfdfdfdfdfdfdfc, carry 1)/(0xfdfdfdfdfdfdfdfc, carry 1) -mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fdfdfdfdfdfdfdfc":1:"fdfdfdfdfdfdfdfc":1 - -mbedtls_mpi_core_add_if #404: 0xfefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) -mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefefefefefefefc":1:"fefefefefefefefc":1 - -mbedtls_mpi_core_add_if #405: 0xfefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) -mpi_core_add_if:"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fefefefefefefefd":1:"fefefefefefefefd":1 - -mbedtls_mpi_core_add_if #406: 0xfefefefefefefefe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000fefefefefefefefe, carry 0)/(0x1000000000000000000000000000000000000000000000000fefefefefefefefe, carry 0) -mpi_core_add_if:"fefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000fefefefefefefefe":0:"1000000000000000000000000000000000000000000000000fefefefefefefefe":0 - -mbedtls_mpi_core_add_if #407: 0xfefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee, carry 0) -mpi_core_add_if:"fefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee":0:"1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee":0 - -mbedtls_mpi_core_add_if #408: 0xfefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029, carry 0) -mpi_core_add_if:"fefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029":0 - -mbedtls_mpi_core_add_if #409: 0xfffffffffffffffe + 0xfffffffffffffffe = (0xfffffffffffffffc, carry 1)/(0xfffffffffffffffc, carry 1) -mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffe":"fffffffffffffffc":1:"fffffffffffffffc":1 - -mbedtls_mpi_core_add_if #410: 0xfffffffffffffffe + 0xffffffffffffffff = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) -mpi_core_add_if:"fffffffffffffffe":"ffffffffffffffff":"fffffffffffffffd":1:"fffffffffffffffd":1 - -mbedtls_mpi_core_add_if #411: 0xfffffffffffffffe + 0x10000000000000000 = (0x1fffffffffffffffe, carry 0)/(0x1fffffffffffffffe, carry 0) -mpi_core_add_if:"fffffffffffffffe":"10000000000000000":"1fffffffffffffffe":0:"1fffffffffffffffe":0 - -mbedtls_mpi_core_add_if #412: 0xfffffffffffffffe + 0x1234567890abcdef0 = (0x2234567890abcdeee, carry 0)/(0x2234567890abcdeee, carry 0) -mpi_core_add_if:"fffffffffffffffe":"1234567890abcdef0":"2234567890abcdeee":0:"2234567890abcdeee":0 - -mbedtls_mpi_core_add_if #413: 0xfffffffffffffffe + 0xfffffffffffffffffefefefefefefefe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) -mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffefefefefefefefe":"fefefefefefefefc":1:"fefefefefefefefc":1 - -mbedtls_mpi_core_add_if #414: 0xfffffffffffffffe + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffc, carry 1)/(0xfffffffffffffffc, carry 1) -mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffc":1:"fffffffffffffffc":1 - -mbedtls_mpi_core_add_if #415: 0xfffffffffffffffe + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) -mpi_core_add_if:"fffffffffffffffe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffd":1:"fffffffffffffffd":1 - -mbedtls_mpi_core_add_if #416: 0xfffffffffffffffe + 0x100000000000000000000000000000000 = (0x10000000000000000fffffffffffffffe, carry 0)/(0x10000000000000000fffffffffffffffe, carry 0) -mpi_core_add_if:"fffffffffffffffe":"100000000000000000000000000000000":"10000000000000000fffffffffffffffe":0:"10000000000000000fffffffffffffffe":0 - -mbedtls_mpi_core_add_if #417: 0xfffffffffffffffe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef02234567890abcdeee, carry 0)/(0x1234567890abcdef02234567890abcdeee, carry 0) -mpi_core_add_if:"fffffffffffffffe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02234567890abcdeee":0:"1234567890abcdef02234567890abcdeee":0 - -mbedtls_mpi_core_add_if #418: 0xfffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) -mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefc":1:"fefefefefefefefc":1 - -mbedtls_mpi_core_add_if #419: 0xfffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffc, carry 1)/(0xfffffffffffffffc, carry 1) -mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffc":1:"fffffffffffffffc":1 - -mbedtls_mpi_core_add_if #420: 0xfffffffffffffffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) -mpi_core_add_if:"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffd":1:"fffffffffffffffd":1 - -mbedtls_mpi_core_add_if #421: 0xfffffffffffffffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000fffffffffffffffe, carry 0)/(0x1000000000000000000000000000000000000000000000000fffffffffffffffe, carry 0) -mpi_core_add_if:"fffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000fffffffffffffffe":0:"1000000000000000000000000000000000000000000000000fffffffffffffffe":0 - -mbedtls_mpi_core_add_if #422: 0xfffffffffffffffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee, carry 0) -mpi_core_add_if:"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":0:"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":0 - -mbedtls_mpi_core_add_if #423: 0xfffffffffffffffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129, carry 0) -mpi_core_add_if:"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":0 - -mbedtls_mpi_core_add_if #424: 0xffffffffffffffff + 0xffffffffffffffff = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) -mpi_core_add_if:"ffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":1:"fffffffffffffffe":1 - -mbedtls_mpi_core_add_if #425: 0xffffffffffffffff + 0x10000000000000000 = (0x1ffffffffffffffff, carry 0)/(0x1ffffffffffffffff, carry 0) -mpi_core_add_if:"ffffffffffffffff":"10000000000000000":"1ffffffffffffffff":0:"1ffffffffffffffff":0 - -mbedtls_mpi_core_add_if #426: 0xffffffffffffffff + 0x1234567890abcdef0 = (0x2234567890abcdeef, carry 0)/(0x2234567890abcdeef, carry 0) -mpi_core_add_if:"ffffffffffffffff":"1234567890abcdef0":"2234567890abcdeef":0:"2234567890abcdeef":0 - -mbedtls_mpi_core_add_if #427: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) -mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fefefefefefefefd":1:"fefefefefefefefd":1 - -mbedtls_mpi_core_add_if #428: 0xffffffffffffffff + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) -mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffffffffffffffffe":"fffffffffffffffd":1:"fffffffffffffffd":1 - -mbedtls_mpi_core_add_if #429: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) -mpi_core_add_if:"ffffffffffffffff":"ffffffffffffffffffffffffffffffff":"fffffffffffffffe":1:"fffffffffffffffe":1 - -mbedtls_mpi_core_add_if #430: 0xffffffffffffffff + 0x100000000000000000000000000000000 = (0x10000000000000000ffffffffffffffff, carry 0)/(0x10000000000000000ffffffffffffffff, carry 0) -mpi_core_add_if:"ffffffffffffffff":"100000000000000000000000000000000":"10000000000000000ffffffffffffffff":0:"10000000000000000ffffffffffffffff":0 - -mbedtls_mpi_core_add_if #431: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef02234567890abcdeef, carry 0)/(0x1234567890abcdef02234567890abcdeef, carry 0) -mpi_core_add_if:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02234567890abcdeef":0:"1234567890abcdef02234567890abcdeef":0 - -mbedtls_mpi_core_add_if #432: 0xffffffffffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) -mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefd":1:"fefefefefefefefd":1 - -mbedtls_mpi_core_add_if #433: 0xffffffffffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) -mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffd":1:"fffffffffffffffd":1 - -mbedtls_mpi_core_add_if #434: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) -mpi_core_add_if:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":1:"fffffffffffffffe":1 - -mbedtls_mpi_core_add_if #435: 0xffffffffffffffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000ffffffffffffffff, carry 0)/(0x1000000000000000000000000000000000000000000000000ffffffffffffffff, carry 0) -mpi_core_add_if:"ffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000ffffffffffffffff":0:"1000000000000000000000000000000000000000000000000ffffffffffffffff":0 - -mbedtls_mpi_core_add_if #436: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef, carry 0) -mpi_core_add_if:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef":0:"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef":0 - -mbedtls_mpi_core_add_if #437: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a, carry 0) -mpi_core_add_if:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a":0 - -mbedtls_mpi_core_add_if #438: 0x10000000000000000 + 0x10000000000000000 = (0x20000000000000000, carry 0)/(0x20000000000000000, carry 0) -mpi_core_add_if:"10000000000000000":"10000000000000000":"20000000000000000":0:"20000000000000000":0 - -mbedtls_mpi_core_add_if #439: 0x10000000000000000 + 0x1234567890abcdef0 = (0x2234567890abcdef0, carry 0)/(0x2234567890abcdef0, carry 0) -mpi_core_add_if:"10000000000000000":"1234567890abcdef0":"2234567890abcdef0":0:"2234567890abcdef0":0 - -mbedtls_mpi_core_add_if #440: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe = (0xfefefefefefefefe, carry 1)/(0xfefefefefefefefe, carry 1) -mpi_core_add_if:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fefefefefefefefe":1:"fefefefefefefefe":1 - -mbedtls_mpi_core_add_if #441: 0x10000000000000000 + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) -mpi_core_add_if:"10000000000000000":"fffffffffffffffffffffffffffffffe":"fffffffffffffffe":1:"fffffffffffffffe":1 - -mbedtls_mpi_core_add_if #442: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffff = (0xffffffffffffffff, carry 1)/(0xffffffffffffffff, carry 1) -mpi_core_add_if:"10000000000000000":"ffffffffffffffffffffffffffffffff":"ffffffffffffffff":1:"ffffffffffffffff":1 - -mbedtls_mpi_core_add_if #443: 0x10000000000000000 + 0x100000000000000000000000000000000 = (0x100000000000000010000000000000000, carry 0)/(0x100000000000000010000000000000000, carry 0) -mpi_core_add_if:"10000000000000000":"100000000000000000000000000000000":"100000000000000010000000000000000":0:"100000000000000010000000000000000":0 - -mbedtls_mpi_core_add_if #444: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef02234567890abcdef0, carry 0)/(0x1234567890abcdef02234567890abcdef0, carry 0) -mpi_core_add_if:"10000000000000000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02234567890abcdef0":0:"1234567890abcdef02234567890abcdef0":0 - -mbedtls_mpi_core_add_if #445: 0x10000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfefefefefefefefe, carry 1)/(0xfefefefefefefefe, carry 1) -mpi_core_add_if:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefe":1:"fefefefefefefefe":1 - -mbedtls_mpi_core_add_if #446: 0x10000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) -mpi_core_add_if:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffe":1:"fffffffffffffffe":1 - -mbedtls_mpi_core_add_if #447: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffffffffffffffff, carry 1)/(0xffffffffffffffff, carry 1) -mpi_core_add_if:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":1:"ffffffffffffffff":1 - -mbedtls_mpi_core_add_if #448: 0x10000000000000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000010000000000000000, carry 0)/(0x10000000000000000000000000000000000000000000000010000000000000000, carry 0) -mpi_core_add_if:"10000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000010000000000000000":0:"10000000000000000000000000000000000000000000000010000000000000000":0 - -mbedtls_mpi_core_add_if #449: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0, carry 0) -mpi_core_add_if:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":0 - -mbedtls_mpi_core_add_if #450: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b, carry 0) -mpi_core_add_if:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":0 - -mbedtls_mpi_core_add_if #451: 0x1234567890abcdef0 + 0x1234567890abcdef0 = (0x2468acf121579bde0, carry 0)/(0x2468acf121579bde0, carry 0) -mpi_core_add_if:"1234567890abcdef0":"1234567890abcdef0":"2468acf121579bde0":0:"2468acf121579bde0":0 - -mbedtls_mpi_core_add_if #452: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe = (0x12244668809bbddee, carry 1)/(0x12244668809bbddee, carry 1) -mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"12244668809bbddee":1:"12244668809bbddee":1 - -mbedtls_mpi_core_add_if #453: 0x1234567890abcdef0 + 0xfffffffffffffffffffffffffffffffe = (0x1234567890abcdeee, carry 1)/(0x1234567890abcdeee, carry 1) -mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1234567890abcdeee":1:"1234567890abcdeee":1 - -mbedtls_mpi_core_add_if #454: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffff = (0x1234567890abcdeef, carry 1)/(0x1234567890abcdeef, carry 1) -mpi_core_add_if:"1234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1234567890abcdeef":1:"1234567890abcdeef":1 - -mbedtls_mpi_core_add_if #455: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 = (0x10000000000000001234567890abcdef0, carry 0)/(0x10000000000000001234567890abcdef0, carry 0) -mpi_core_add_if:"1234567890abcdef0":"100000000000000000000000000000000":"10000000000000001234567890abcdef0":0:"10000000000000001234567890abcdef0":0 - -mbedtls_mpi_core_add_if #456: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef02468acf121579bde0, carry 0)/(0x1234567890abcdef02468acf121579bde0, carry 0) -mpi_core_add_if:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02468acf121579bde0":0:"1234567890abcdef02468acf121579bde0":0 - -mbedtls_mpi_core_add_if #457: 0x1234567890abcdef0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0x12244668809bbddee, carry 1)/(0x12244668809bbddee, carry 1) -mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"12244668809bbddee":1:"12244668809bbddee":1 - -mbedtls_mpi_core_add_if #458: 0x1234567890abcdef0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x1234567890abcdeee, carry 1)/(0x1234567890abcdeee, carry 1) -mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdeee":1:"1234567890abcdeee":1 - -mbedtls_mpi_core_add_if #459: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x1234567890abcdeef, carry 1)/(0x1234567890abcdeef, carry 1) -mpi_core_add_if:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdeef":1:"1234567890abcdeef":1 - -mbedtls_mpi_core_add_if #460: 0x1234567890abcdef0 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000001234567890abcdef0, carry 0)/(0x1000000000000000000000000000000000000000000000001234567890abcdef0, carry 0) -mpi_core_add_if:"1234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000001234567890abcdef0":0:"1000000000000000000000000000000000000000000000001234567890abcdef0":0 - -mbedtls_mpi_core_add_if #461: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0, carry 0) -mpi_core_add_if:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0":0:"1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0":0 - -mbedtls_mpi_core_add_if #462: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b, carry 0) -mpi_core_add_if:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b":0 - -mbedtls_mpi_core_add_if #463: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffdfdfdfdfdfdfdfc, carry 1)/(0xfffffffffffffffffdfdfdfdfdfdfdfc, carry 1) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffdfdfdfdfdfdfdfc":1:"fffffffffffffffffdfdfdfdfdfdfdfc":1 - -mbedtls_mpi_core_add_if #464: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffffefefefefefefefc, carry 1)/(0xfffffffffffffffffefefefefefefefc, carry 1) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefc":1:"fffffffffffffffffefefefefefefefc":1 - -mbedtls_mpi_core_add_if #465: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffffefefefefefefefd, carry 1)/(0xfffffffffffffffffefefefefefefefd, carry 1) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefd":1:"fffffffffffffffffefefefefefefefd":1 - -mbedtls_mpi_core_add_if #466: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 = (0x1fffffffffffffffffefefefefefefefe, carry 0)/(0x1fffffffffffffffffefefefefefefefe, carry 0) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"1fffffffffffffffffefefefefefefefe":0:"1fffffffffffffffffefefefefefefefe":0 - -mbedtls_mpi_core_add_if #467: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 = (0x1334567890abcdef012244668809bbddee, carry 0)/(0x1334567890abcdef012244668809bbddee, carry 0) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"1334567890abcdef012244668809bbddee":0:"1334567890abcdef012244668809bbddee":0 - -mbedtls_mpi_core_add_if #468: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffdfdfdfdfdfdfdfc, carry 1)/(0xfffffffffffffffffdfdfdfdfdfdfdfc, carry 1) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffdfdfdfdfdfdfdfc":1:"fffffffffffffffffdfdfdfdfdfdfdfc":1 - -mbedtls_mpi_core_add_if #469: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffefefefefefefefc, carry 1)/(0xfffffffffffffffffefefefefefefefc, carry 1) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefc":1:"fffffffffffffffffefefefefefefefc":1 - -mbedtls_mpi_core_add_if #470: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffefefefefefefefd, carry 1)/(0xfffffffffffffffffefefefefefefefd, carry 1) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefd":1:"fffffffffffffffffefefefefefefefd":1 - -mbedtls_mpi_core_add_if #471: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000fffffffffffffffffefefefefefefefe, carry 0)/(0x100000000000000000000000000000000fffffffffffffffffefefefefefefefe, carry 0) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000fffffffffffffffffefefefefefefefe":0:"100000000000000000000000000000000fffffffffffffffffefefefefefefefe":0 - -mbedtls_mpi_core_add_if #472: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee, carry 0)/(0x1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee, carry 0) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee":0:"1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee":0 - -mbedtls_mpi_core_add_if #473: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029, carry 0) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029":0 - -mbedtls_mpi_core_add_if #474: 0xfffffffffffffffffffffffffffffffe + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffc, carry 1)/(0xfffffffffffffffffffffffffffffffc, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffc":1:"fffffffffffffffffffffffffffffffc":1 - -mbedtls_mpi_core_add_if #475: 0xfffffffffffffffffffffffffffffffe + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffd, carry 1)/(0xfffffffffffffffffffffffffffffffd, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffd":1 - -mbedtls_mpi_core_add_if #476: 0xfffffffffffffffffffffffffffffffe + 0x100000000000000000000000000000000 = (0x1fffffffffffffffffffffffffffffffe, carry 0)/(0x1fffffffffffffffffffffffffffffffe, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"1fffffffffffffffffffffffffffffffe":0:"1fffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_add_if #477: 0xfffffffffffffffffffffffffffffffe + 0x1234567890abcdef01234567890abcdef0 = (0x1334567890abcdef01234567890abcdeee, carry 0)/(0x1334567890abcdef01234567890abcdeee, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef0":"1334567890abcdef01234567890abcdeee":0:"1334567890abcdef01234567890abcdeee":0 - -mbedtls_mpi_core_add_if #478: 0xfffffffffffffffffffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefefc, carry 1)/(0xfffffffffffffffffefefefefefefefc, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefc":1:"fffffffffffffffffefefefefefefefc":1 - -mbedtls_mpi_core_add_if #479: 0xfffffffffffffffffffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffc, carry 1)/(0xfffffffffffffffffffffffffffffffc, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffc":1:"fffffffffffffffffffffffffffffffc":1 - -mbedtls_mpi_core_add_if #480: 0xfffffffffffffffffffffffffffffffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffd, carry 1)/(0xfffffffffffffffffffffffffffffffd, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffd":1 - -mbedtls_mpi_core_add_if #481: 0xfffffffffffffffffffffffffffffffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000fffffffffffffffffffffffffffffffe, carry 0)/(0x100000000000000000000000000000000fffffffffffffffffffffffffffffffe, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000fffffffffffffffffffffffffffffffe":0:"100000000000000000000000000000000fffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_add_if #482: 0xfffffffffffffffffffffffffffffffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee, carry 0)/(0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee":0:"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee":0 - -mbedtls_mpi_core_add_if #483: 0xfffffffffffffffffffffffffffffffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129":0 - -mbedtls_mpi_core_add_if #484: 0xffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffe, carry 1)/(0xfffffffffffffffffffffffffffffffe, carry 1) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffe":1 - -mbedtls_mpi_core_add_if #485: 0xffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 = (0x1ffffffffffffffffffffffffffffffff, carry 0)/(0x1ffffffffffffffffffffffffffffffff, carry 0) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"1ffffffffffffffffffffffffffffffff":0:"1ffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_add_if #486: 0xffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 = (0x1334567890abcdef01234567890abcdeef, carry 0)/(0x1334567890abcdef01234567890abcdeef, carry 0) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"1334567890abcdef01234567890abcdeef":0:"1334567890abcdef01234567890abcdeef":0 - -mbedtls_mpi_core_add_if #487: 0xffffffffffffffffffffffffffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefefd, carry 1)/(0xfffffffffffffffffefefefefefefefd, carry 1) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefd":1:"fffffffffffffffffefefefefefefefd":1 - -mbedtls_mpi_core_add_if #488: 0xffffffffffffffffffffffffffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffd, carry 1)/(0xfffffffffffffffffffffffffffffffd, carry 1) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffd":1 - -mbedtls_mpi_core_add_if #489: 0xffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffe, carry 1)/(0xfffffffffffffffffffffffffffffffe, carry 1) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffe":1 - -mbedtls_mpi_core_add_if #490: 0xffffffffffffffffffffffffffffffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000ffffffffffffffffffffffffffffffff, carry 0)/(0x100000000000000000000000000000000ffffffffffffffffffffffffffffffff, carry 0) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000ffffffffffffffffffffffffffffffff":0:"100000000000000000000000000000000ffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_add_if #491: 0xffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef, carry 0)/(0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef, carry 0) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef":0:"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef":0 - -mbedtls_mpi_core_add_if #492: 0xffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a, carry 0) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a":0 - -mbedtls_mpi_core_add_if #493: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 = (0x200000000000000000000000000000000, carry 0)/(0x200000000000000000000000000000000, carry 0) -mpi_core_add_if:"100000000000000000000000000000000":"100000000000000000000000000000000":"200000000000000000000000000000000":0:"200000000000000000000000000000000":0 - -mbedtls_mpi_core_add_if #494: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 = (0x1334567890abcdef01234567890abcdef0, carry 0)/(0x1334567890abcdef01234567890abcdef0, carry 0) -mpi_core_add_if:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"1334567890abcdef01234567890abcdef0":0:"1334567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_add_if #495: 0x100000000000000000000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefefe, carry 1)/(0xfffffffffffffffffefefefefefefefe, carry 1) -mpi_core_add_if:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":1:"fffffffffffffffffefefefefefefefe":1 - -mbedtls_mpi_core_add_if #496: 0x100000000000000000000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffe, carry 1)/(0xfffffffffffffffffffffffffffffffe, carry 1) -mpi_core_add_if:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffe":1 - -mbedtls_mpi_core_add_if #497: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffffffffffffffffffffffffffffffff, carry 1)/(0xffffffffffffffffffffffffffffffff, carry 1) -mpi_core_add_if:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1:"ffffffffffffffffffffffffffffffff":1 - -mbedtls_mpi_core_add_if #498: 0x100000000000000000000000000000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000100000000000000000000000000000000, carry 0)/(0x10000000000000000000000000000000100000000000000000000000000000000, carry 0) -mpi_core_add_if:"100000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000100000000000000000000000000000000":0:"10000000000000000000000000000000100000000000000000000000000000000":0 - -mbedtls_mpi_core_add_if #499: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0, carry 0) -mpi_core_add_if:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0":0:"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_add_if #500: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b, carry 0) -mpi_core_add_if:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b":0 - -mbedtls_mpi_core_add_if #501: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 = (0x2468acf121579bde02468acf121579bde0, carry 0)/(0x2468acf121579bde02468acf121579bde0, carry 0) -mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"2468acf121579bde02468acf121579bde0":0:"2468acf121579bde02468acf121579bde0":0 - -mbedtls_mpi_core_add_if #502: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0x1234567890abcdef012244668809bbddee, carry 1)/(0x1234567890abcdef012244668809bbddee, carry 1) -mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef012244668809bbddee":1:"1234567890abcdef012244668809bbddee":1 - -mbedtls_mpi_core_add_if #503: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x1234567890abcdef01234567890abcdeee, carry 1)/(0x1234567890abcdef01234567890abcdeee, carry 1) -mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdeee":1:"1234567890abcdef01234567890abcdeee":1 - -mbedtls_mpi_core_add_if #504: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x1234567890abcdef01234567890abcdeef, carry 1)/(0x1234567890abcdef01234567890abcdeef, carry 1) -mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdeef":1:"1234567890abcdef01234567890abcdeef":1 - -mbedtls_mpi_core_add_if #505: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000001234567890abcdef01234567890abcdef0, carry 0)/(0x10000000000000000000000000000001234567890abcdef01234567890abcdef0, carry 0) -mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000001234567890abcdef01234567890abcdef0":0:"10000000000000000000000000000001234567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_add_if #506: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0, carry 0)/(0x1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0, carry 0) -mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0":0:"1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0":0 - -mbedtls_mpi_core_add_if #507: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b, carry 0) -mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b":0 - -mbedtls_mpi_core_add_if #508: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc":1:"fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc":1 - -mbedtls_mpi_core_add_if #509: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc":1:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc":1 - -mbedtls_mpi_core_add_if #510: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":1:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":1 - -mbedtls_mpi_core_add_if #511: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0)/(0x1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0:"1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0 - -mbedtls_mpi_core_add_if #512: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee, carry 0)/(0x1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee":0:"1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee":0 - -mbedtls_mpi_core_add_if #513: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029":0 - -mbedtls_mpi_core_add_if #514: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":1 - -mbedtls_mpi_core_add_if #515: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":1 - -mbedtls_mpi_core_add_if #516: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0)/(0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0:"1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_add_if #517: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee, carry 0)/(0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee":0:"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee":0 - -mbedtls_mpi_core_add_if #518: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129":0 - -mbedtls_mpi_core_add_if #519: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 1) -mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":1 - -mbedtls_mpi_core_add_if #520: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0)/(0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0) -mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0:"1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_add_if #521: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef, carry 0)/(0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef, carry 0) -mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":0:"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":0 - -mbedtls_mpi_core_add_if #522: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a, carry 0) -mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":0 - -mbedtls_mpi_core_add_if #523: 0x10000000000000000000000000000000000000000000000000000000000000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x20000000000000000000000000000000000000000000000000000000000000000, carry 0)/(0x20000000000000000000000000000000000000000000000000000000000000000, carry 0) -mpi_core_add_if:"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"20000000000000000000000000000000000000000000000000000000000000000":0:"20000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_core_add_if #524: 0x10000000000000000000000000000000000000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0)/(0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0) -mpi_core_add_if:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0:"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_add_if #525: 0x10000000000000000000000000000000000000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0) -mpi_core_add_if:"10000000000000000000000000000000000000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 - -mbedtls_mpi_core_add_if #526: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0, carry 0)/(0x2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0, carry 0) -mpi_core_add_if:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0":0:"2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0":0 - -mbedtls_mpi_core_add_if #527: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b, carry 0) -mpi_core_add_if:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b":0 - -mbedtls_mpi_core_add_if #528: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256, carry 0)/(0x9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256, carry 0) -mpi_core_add_if:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256":0:"9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256":0 - -mbedtls_mpi_core_sub #1: 0x0 - 0x0 = 0x0/0 (for when sizeof(mbedtls_mpi_uint) == 4/8), carry 0 -mpi_core_sub:"0":"0":"0":"0":0 - -mbedtls_mpi_core_sub #2: 0x0 - 0x1 = 0xffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"0":"1":"ffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #3: 0x0 - 0x3 = 0xfffffffd/fffffffffffffffd, carry 1 -mpi_core_sub:"0":"3":"fffffffd":"fffffffffffffffd":1 - -mbedtls_mpi_core_sub #4: 0x0 - 0xf = 0xfffffff1/fffffffffffffff1, carry 1 -mpi_core_sub:"0":"f":"fffffff1":"fffffffffffffff1":1 - -mbedtls_mpi_core_sub #5: 0x0 - 0xfe = 0xffffff02/ffffffffffffff02, carry 1 -mpi_core_sub:"0":"fe":"ffffff02":"ffffffffffffff02":1 - -mbedtls_mpi_core_sub #6: 0x0 - 0xff = 0xffffff01/ffffffffffffff01, carry 1 -mpi_core_sub:"0":"ff":"ffffff01":"ffffffffffffff01":1 - -mbedtls_mpi_core_sub #7: 0x0 - 0x100 = 0xffffff00/ffffffffffffff00, carry 1 -mpi_core_sub:"0":"100":"ffffff00":"ffffffffffffff00":1 - -mbedtls_mpi_core_sub #8: 0x0 - 0xff00 = 0xffff0100/ffffffffffff0100, carry 1 -mpi_core_sub:"0":"ff00":"ffff0100":"ffffffffffff0100":1 - -mbedtls_mpi_core_sub #9: 0x0 - 0xfffe = 0xffff0002/ffffffffffff0002, carry 1 -mpi_core_sub:"0":"fffe":"ffff0002":"ffffffffffff0002":1 - -mbedtls_mpi_core_sub #10: 0x0 - 0xffff = 0xffff0001/ffffffffffff0001, carry 1 -mpi_core_sub:"0":"ffff":"ffff0001":"ffffffffffff0001":1 - -mbedtls_mpi_core_sub #11: 0x0 - 0x10000 = 0xffff0000/ffffffffffff0000, carry 1 -mpi_core_sub:"0":"10000":"ffff0000":"ffffffffffff0000":1 - -mbedtls_mpi_core_sub #12: 0x0 - 0xfffffffe = 0x2/ffffffff00000002, carry 1 -mpi_core_sub:"0":"fffffffe":"2":"ffffffff00000002":1 - -mbedtls_mpi_core_sub #13: 0x0 - 0xffffffff = 0x1/ffffffff00000001, carry 1 -mpi_core_sub:"0":"ffffffff":"1":"ffffffff00000001":1 - -mbedtls_mpi_core_sub #14: 0x0 - 0x100000000 = 0xffffffff00000000/ffffffff00000000, carry 1 -mpi_core_sub:"0":"100000000":"ffffffff00000000":"ffffffff00000000":1 - -mbedtls_mpi_core_sub #15: 0x0 - 0x1f7f7f7f7f7f7f = 0xffe0808080808081/ffe0808080808081, carry 1 -mpi_core_sub:"0":"1f7f7f7f7f7f7f":"ffe0808080808081":"ffe0808080808081":1 - -mbedtls_mpi_core_sub #16: 0x0 - 0x8000000000000000 = 0x8000000000000000/8000000000000000, carry 1 -mpi_core_sub:"0":"8000000000000000":"8000000000000000":"8000000000000000":1 - -mbedtls_mpi_core_sub #17: 0x0 - 0xfefefefefefefefe = 0x101010101010102/101010101010102, carry 1 -mpi_core_sub:"0":"fefefefefefefefe":"101010101010102":"101010101010102":1 - -mbedtls_mpi_core_sub #18: 0x0 - 0xfffffffffffffffe = 0x2/2, carry 1 -mpi_core_sub:"0":"fffffffffffffffe":"2":"2":1 - -mbedtls_mpi_core_sub #19: 0x0 - 0xffffffffffffffff = 0x1/1, carry 1 -mpi_core_sub:"0":"ffffffffffffffff":"1":"1":1 - -mbedtls_mpi_core_sub #20: 0x0 - 0x10000000000000000 = 0xffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 1 -mpi_core_sub:"0":"10000000000000000":"ffffffff0000000000000000":"ffffffffffffffff0000000000000000":1 - -mbedtls_mpi_core_sub #21: 0x0 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5432110/fffffffffffffffedcba9876f5432110, carry 1 -mpi_core_sub:"0":"1234567890abcdef0":"fffffffedcba9876f5432110":"fffffffffffffffedcba9876f5432110":1 - -mbedtls_mpi_core_sub #22: 0x0 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010102/101010101010102, carry 1 -mpi_core_sub:"0":"fffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":1 - -mbedtls_mpi_core_sub #23: 0x0 - 0xfffffffffffffffffffffffffffffffe = 0x2/2, carry 1 -mpi_core_sub:"0":"fffffffffffffffffffffffffffffffe":"2":"2":1 - -mbedtls_mpi_core_sub #24: 0x0 - 0xffffffffffffffffffffffffffffffff = 0x1/1, carry 1 -mpi_core_sub:"0":"ffffffffffffffffffffffffffffffff":"1":"1":1 - -mbedtls_mpi_core_sub #25: 0x0 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000/ffffffffffffffff00000000000000000000000000000000, carry 1 -mpi_core_sub:"0":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000000":"ffffffffffffffff00000000000000000000000000000000":1 - -mbedtls_mpi_core_sub #26: 0x0 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5432110/ffffffffffffffedcba9876f543210fedcba9876f5432110, carry 1 -mpi_core_sub:"0":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432110":"ffffffffffffffedcba9876f543210fedcba9876f5432110":1 - -mbedtls_mpi_core_sub #27: 0x0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010102/101010101010102, carry 1 -mpi_core_sub:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":1 - -mbedtls_mpi_core_sub #28: 0x0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x2/2, carry 1 -mpi_core_sub:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2":"2":1 - -mbedtls_mpi_core_sub #29: 0x0 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1/1, carry 1 -mpi_core_sub:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"1":1 - -mbedtls_mpi_core_sub #30: 0x0 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000000000/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000, carry 1 -mpi_core_sub:"0":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000":1 - -mbedtls_mpi_core_sub #31: 0x0 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110, carry 1 -mpi_core_sub:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":1 - -mbedtls_mpi_core_sub #32: 0x0 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5, carry 1 -mpi_core_sub:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":1 - -mbedtls_mpi_core_sub #33: 0x1 - 0x0 = 0x1/1, carry 0 -mpi_core_sub:"1":"0":"1":"1":0 - -mbedtls_mpi_core_sub #34: 0x1 - 0x1 = 0x0/0, carry 0 -mpi_core_sub:"1":"1":"0":"0":0 - -mbedtls_mpi_core_sub #35: 0x1 - 0x3 = 0xfffffffe/fffffffffffffffe, carry 1 -mpi_core_sub:"1":"3":"fffffffe":"fffffffffffffffe":1 - -mbedtls_mpi_core_sub #36: 0x1 - 0xf = 0xfffffff2/fffffffffffffff2, carry 1 -mpi_core_sub:"1":"f":"fffffff2":"fffffffffffffff2":1 - -mbedtls_mpi_core_sub #37: 0x1 - 0xfe = 0xffffff03/ffffffffffffff03, carry 1 -mpi_core_sub:"1":"fe":"ffffff03":"ffffffffffffff03":1 - -mbedtls_mpi_core_sub #38: 0x1 - 0xff = 0xffffff02/ffffffffffffff02, carry 1 -mpi_core_sub:"1":"ff":"ffffff02":"ffffffffffffff02":1 - -mbedtls_mpi_core_sub #39: 0x1 - 0x100 = 0xffffff01/ffffffffffffff01, carry 1 -mpi_core_sub:"1":"100":"ffffff01":"ffffffffffffff01":1 - -mbedtls_mpi_core_sub #40: 0x1 - 0xff00 = 0xffff0101/ffffffffffff0101, carry 1 -mpi_core_sub:"1":"ff00":"ffff0101":"ffffffffffff0101":1 - -mbedtls_mpi_core_sub #41: 0x1 - 0xfffe = 0xffff0003/ffffffffffff0003, carry 1 -mpi_core_sub:"1":"fffe":"ffff0003":"ffffffffffff0003":1 - -mbedtls_mpi_core_sub #42: 0x1 - 0xffff = 0xffff0002/ffffffffffff0002, carry 1 -mpi_core_sub:"1":"ffff":"ffff0002":"ffffffffffff0002":1 - -mbedtls_mpi_core_sub #43: 0x1 - 0x10000 = 0xffff0001/ffffffffffff0001, carry 1 -mpi_core_sub:"1":"10000":"ffff0001":"ffffffffffff0001":1 - -mbedtls_mpi_core_sub #44: 0x1 - 0xfffffffe = 0x3/ffffffff00000003, carry 1 -mpi_core_sub:"1":"fffffffe":"3":"ffffffff00000003":1 - -mbedtls_mpi_core_sub #45: 0x1 - 0xffffffff = 0x2/ffffffff00000002, carry 1 -mpi_core_sub:"1":"ffffffff":"2":"ffffffff00000002":1 - -mbedtls_mpi_core_sub #46: 0x1 - 0x100000000 = 0xffffffff00000001/ffffffff00000001, carry 1 -mpi_core_sub:"1":"100000000":"ffffffff00000001":"ffffffff00000001":1 - -mbedtls_mpi_core_sub #47: 0x1 - 0x1f7f7f7f7f7f7f = 0xffe0808080808082/ffe0808080808082, carry 1 -mpi_core_sub:"1":"1f7f7f7f7f7f7f":"ffe0808080808082":"ffe0808080808082":1 - -mbedtls_mpi_core_sub #48: 0x1 - 0x8000000000000000 = 0x8000000000000001/8000000000000001, carry 1 -mpi_core_sub:"1":"8000000000000000":"8000000000000001":"8000000000000001":1 - -mbedtls_mpi_core_sub #49: 0x1 - 0xfefefefefefefefe = 0x101010101010103/101010101010103, carry 1 -mpi_core_sub:"1":"fefefefefefefefe":"101010101010103":"101010101010103":1 - -mbedtls_mpi_core_sub #50: 0x1 - 0xfffffffffffffffe = 0x3/3, carry 1 -mpi_core_sub:"1":"fffffffffffffffe":"3":"3":1 - -mbedtls_mpi_core_sub #51: 0x1 - 0xffffffffffffffff = 0x2/2, carry 1 -mpi_core_sub:"1":"ffffffffffffffff":"2":"2":1 - -mbedtls_mpi_core_sub #52: 0x1 - 0x10000000000000000 = 0xffffffff0000000000000001/ffffffffffffffff0000000000000001, carry 1 -mpi_core_sub:"1":"10000000000000000":"ffffffff0000000000000001":"ffffffffffffffff0000000000000001":1 - -mbedtls_mpi_core_sub #53: 0x1 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5432111/fffffffffffffffedcba9876f5432111, carry 1 -mpi_core_sub:"1":"1234567890abcdef0":"fffffffedcba9876f5432111":"fffffffffffffffedcba9876f5432111":1 - -mbedtls_mpi_core_sub #54: 0x1 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010103/101010101010103, carry 1 -mpi_core_sub:"1":"fffffffffffffffffefefefefefefefe":"101010101010103":"101010101010103":1 - -mbedtls_mpi_core_sub #55: 0x1 - 0xfffffffffffffffffffffffffffffffe = 0x3/3, carry 1 -mpi_core_sub:"1":"fffffffffffffffffffffffffffffffe":"3":"3":1 - -mbedtls_mpi_core_sub #56: 0x1 - 0xffffffffffffffffffffffffffffffff = 0x2/2, carry 1 -mpi_core_sub:"1":"ffffffffffffffffffffffffffffffff":"2":"2":1 - -mbedtls_mpi_core_sub #57: 0x1 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000000001/ffffffffffffffff00000000000000000000000000000001, carry 1 -mpi_core_sub:"1":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000001":"ffffffffffffffff00000000000000000000000000000001":1 - -mbedtls_mpi_core_sub #58: 0x1 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5432111/ffffffffffffffedcba9876f543210fedcba9876f5432111, carry 1 -mpi_core_sub:"1":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432111":"ffffffffffffffedcba9876f543210fedcba9876f5432111":1 - -mbedtls_mpi_core_sub #59: 0x1 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010103/101010101010103, carry 1 -mpi_core_sub:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010103":"101010101010103":1 - -mbedtls_mpi_core_sub #60: 0x1 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x3/3, carry 1 -mpi_core_sub:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"3":"3":1 - -mbedtls_mpi_core_sub #61: 0x1 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x2/2, carry 1 -mpi_core_sub:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"2":"2":1 - -mbedtls_mpi_core_sub #62: 0x1 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000000001/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001, carry 1 -mpi_core_sub:"1":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000001":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001":1 - -mbedtls_mpi_core_sub #63: 0x1 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111, carry 1 -mpi_core_sub:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111":1 - -mbedtls_mpi_core_sub #64: 0x1 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6, carry 1 -mpi_core_sub:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6":1 - -mbedtls_mpi_core_sub #65: 0x3 - 0x0 = 0x3/3, carry 0 -mpi_core_sub:"3":"0":"3":"3":0 - -mbedtls_mpi_core_sub #66: 0x3 - 0x1 = 0x2/2, carry 0 -mpi_core_sub:"3":"1":"2":"2":0 - -mbedtls_mpi_core_sub #67: 0x3 - 0x3 = 0x0/0, carry 0 -mpi_core_sub:"3":"3":"0":"0":0 - -mbedtls_mpi_core_sub #68: 0x3 - 0xf = 0xfffffff4/fffffffffffffff4, carry 1 -mpi_core_sub:"3":"f":"fffffff4":"fffffffffffffff4":1 - -mbedtls_mpi_core_sub #69: 0x3 - 0xfe = 0xffffff05/ffffffffffffff05, carry 1 -mpi_core_sub:"3":"fe":"ffffff05":"ffffffffffffff05":1 - -mbedtls_mpi_core_sub #70: 0x3 - 0xff = 0xffffff04/ffffffffffffff04, carry 1 -mpi_core_sub:"3":"ff":"ffffff04":"ffffffffffffff04":1 - -mbedtls_mpi_core_sub #71: 0x3 - 0x100 = 0xffffff03/ffffffffffffff03, carry 1 -mpi_core_sub:"3":"100":"ffffff03":"ffffffffffffff03":1 - -mbedtls_mpi_core_sub #72: 0x3 - 0xff00 = 0xffff0103/ffffffffffff0103, carry 1 -mpi_core_sub:"3":"ff00":"ffff0103":"ffffffffffff0103":1 - -mbedtls_mpi_core_sub #73: 0x3 - 0xfffe = 0xffff0005/ffffffffffff0005, carry 1 -mpi_core_sub:"3":"fffe":"ffff0005":"ffffffffffff0005":1 - -mbedtls_mpi_core_sub #74: 0x3 - 0xffff = 0xffff0004/ffffffffffff0004, carry 1 -mpi_core_sub:"3":"ffff":"ffff0004":"ffffffffffff0004":1 - -mbedtls_mpi_core_sub #75: 0x3 - 0x10000 = 0xffff0003/ffffffffffff0003, carry 1 -mpi_core_sub:"3":"10000":"ffff0003":"ffffffffffff0003":1 - -mbedtls_mpi_core_sub #76: 0x3 - 0xfffffffe = 0x5/ffffffff00000005, carry 1 -mpi_core_sub:"3":"fffffffe":"5":"ffffffff00000005":1 - -mbedtls_mpi_core_sub #77: 0x3 - 0xffffffff = 0x4/ffffffff00000004, carry 1 -mpi_core_sub:"3":"ffffffff":"4":"ffffffff00000004":1 - -mbedtls_mpi_core_sub #78: 0x3 - 0x100000000 = 0xffffffff00000003/ffffffff00000003, carry 1 -mpi_core_sub:"3":"100000000":"ffffffff00000003":"ffffffff00000003":1 - -mbedtls_mpi_core_sub #79: 0x3 - 0x1f7f7f7f7f7f7f = 0xffe0808080808084/ffe0808080808084, carry 1 -mpi_core_sub:"3":"1f7f7f7f7f7f7f":"ffe0808080808084":"ffe0808080808084":1 - -mbedtls_mpi_core_sub #80: 0x3 - 0x8000000000000000 = 0x8000000000000003/8000000000000003, carry 1 -mpi_core_sub:"3":"8000000000000000":"8000000000000003":"8000000000000003":1 - -mbedtls_mpi_core_sub #81: 0x3 - 0xfefefefefefefefe = 0x101010101010105/101010101010105, carry 1 -mpi_core_sub:"3":"fefefefefefefefe":"101010101010105":"101010101010105":1 - -mbedtls_mpi_core_sub #82: 0x3 - 0xfffffffffffffffe = 0x5/5, carry 1 -mpi_core_sub:"3":"fffffffffffffffe":"5":"5":1 - -mbedtls_mpi_core_sub #83: 0x3 - 0xffffffffffffffff = 0x4/4, carry 1 -mpi_core_sub:"3":"ffffffffffffffff":"4":"4":1 - -mbedtls_mpi_core_sub #84: 0x3 - 0x10000000000000000 = 0xffffffff0000000000000003/ffffffffffffffff0000000000000003, carry 1 -mpi_core_sub:"3":"10000000000000000":"ffffffff0000000000000003":"ffffffffffffffff0000000000000003":1 - -mbedtls_mpi_core_sub #85: 0x3 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5432113/fffffffffffffffedcba9876f5432113, carry 1 -mpi_core_sub:"3":"1234567890abcdef0":"fffffffedcba9876f5432113":"fffffffffffffffedcba9876f5432113":1 - -mbedtls_mpi_core_sub #86: 0x3 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010105/101010101010105, carry 1 -mpi_core_sub:"3":"fffffffffffffffffefefefefefefefe":"101010101010105":"101010101010105":1 - -mbedtls_mpi_core_sub #87: 0x3 - 0xfffffffffffffffffffffffffffffffe = 0x5/5, carry 1 -mpi_core_sub:"3":"fffffffffffffffffffffffffffffffe":"5":"5":1 - -mbedtls_mpi_core_sub #88: 0x3 - 0xffffffffffffffffffffffffffffffff = 0x4/4, carry 1 -mpi_core_sub:"3":"ffffffffffffffffffffffffffffffff":"4":"4":1 - -mbedtls_mpi_core_sub #89: 0x3 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000000003/ffffffffffffffff00000000000000000000000000000003, carry 1 -mpi_core_sub:"3":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000003":"ffffffffffffffff00000000000000000000000000000003":1 - -mbedtls_mpi_core_sub #90: 0x3 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5432113/ffffffffffffffedcba9876f543210fedcba9876f5432113, carry 1 -mpi_core_sub:"3":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432113":"ffffffffffffffedcba9876f543210fedcba9876f5432113":1 - -mbedtls_mpi_core_sub #91: 0x3 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010105/101010101010105, carry 1 -mpi_core_sub:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010105":"101010101010105":1 - -mbedtls_mpi_core_sub #92: 0x3 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x5/5, carry 1 -mpi_core_sub:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"5":"5":1 - -mbedtls_mpi_core_sub #93: 0x3 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x4/4, carry 1 -mpi_core_sub:"3":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4":"4":1 - -mbedtls_mpi_core_sub #94: 0x3 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000000003/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000003, carry 1 -mpi_core_sub:"3":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000003":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000003":1 - -mbedtls_mpi_core_sub #95: 0x3 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113, carry 1 -mpi_core_sub:"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113":1 - -mbedtls_mpi_core_sub #96: 0x3 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8, carry 1 -mpi_core_sub:"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8":1 - -mbedtls_mpi_core_sub #97: 0xf - 0x0 = 0xf/f, carry 0 -mpi_core_sub:"f":"0":"f":"f":0 - -mbedtls_mpi_core_sub #98: 0xf - 0x1 = 0xe/e, carry 0 -mpi_core_sub:"f":"1":"e":"e":0 - -mbedtls_mpi_core_sub #99: 0xf - 0x3 = 0xc/c, carry 0 -mpi_core_sub:"f":"3":"c":"c":0 - -mbedtls_mpi_core_sub #100: 0xf - 0xf = 0x0/0, carry 0 -mpi_core_sub:"f":"f":"0":"0":0 - -mbedtls_mpi_core_sub #101: 0xf - 0xfe = 0xffffff11/ffffffffffffff11, carry 1 -mpi_core_sub:"f":"fe":"ffffff11":"ffffffffffffff11":1 - -mbedtls_mpi_core_sub #102: 0xf - 0xff = 0xffffff10/ffffffffffffff10, carry 1 -mpi_core_sub:"f":"ff":"ffffff10":"ffffffffffffff10":1 - -mbedtls_mpi_core_sub #103: 0xf - 0x100 = 0xffffff0f/ffffffffffffff0f, carry 1 -mpi_core_sub:"f":"100":"ffffff0f":"ffffffffffffff0f":1 - -mbedtls_mpi_core_sub #104: 0xf - 0xff00 = 0xffff010f/ffffffffffff010f, carry 1 -mpi_core_sub:"f":"ff00":"ffff010f":"ffffffffffff010f":1 - -mbedtls_mpi_core_sub #105: 0xf - 0xfffe = 0xffff0011/ffffffffffff0011, carry 1 -mpi_core_sub:"f":"fffe":"ffff0011":"ffffffffffff0011":1 - -mbedtls_mpi_core_sub #106: 0xf - 0xffff = 0xffff0010/ffffffffffff0010, carry 1 -mpi_core_sub:"f":"ffff":"ffff0010":"ffffffffffff0010":1 - -mbedtls_mpi_core_sub #107: 0xf - 0x10000 = 0xffff000f/ffffffffffff000f, carry 1 -mpi_core_sub:"f":"10000":"ffff000f":"ffffffffffff000f":1 - -mbedtls_mpi_core_sub #108: 0xf - 0xfffffffe = 0x11/ffffffff00000011, carry 1 -mpi_core_sub:"f":"fffffffe":"11":"ffffffff00000011":1 - -mbedtls_mpi_core_sub #109: 0xf - 0xffffffff = 0x10/ffffffff00000010, carry 1 -mpi_core_sub:"f":"ffffffff":"10":"ffffffff00000010":1 - -mbedtls_mpi_core_sub #110: 0xf - 0x100000000 = 0xffffffff0000000f/ffffffff0000000f, carry 1 -mpi_core_sub:"f":"100000000":"ffffffff0000000f":"ffffffff0000000f":1 - -mbedtls_mpi_core_sub #111: 0xf - 0x1f7f7f7f7f7f7f = 0xffe0808080808090/ffe0808080808090, carry 1 -mpi_core_sub:"f":"1f7f7f7f7f7f7f":"ffe0808080808090":"ffe0808080808090":1 - -mbedtls_mpi_core_sub #112: 0xf - 0x8000000000000000 = 0x800000000000000f/800000000000000f, carry 1 -mpi_core_sub:"f":"8000000000000000":"800000000000000f":"800000000000000f":1 - -mbedtls_mpi_core_sub #113: 0xf - 0xfefefefefefefefe = 0x101010101010111/101010101010111, carry 1 -mpi_core_sub:"f":"fefefefefefefefe":"101010101010111":"101010101010111":1 - -mbedtls_mpi_core_sub #114: 0xf - 0xfffffffffffffffe = 0x11/11, carry 1 -mpi_core_sub:"f":"fffffffffffffffe":"11":"11":1 - -mbedtls_mpi_core_sub #115: 0xf - 0xffffffffffffffff = 0x10/10, carry 1 -mpi_core_sub:"f":"ffffffffffffffff":"10":"10":1 - -mbedtls_mpi_core_sub #116: 0xf - 0x10000000000000000 = 0xffffffff000000000000000f/ffffffffffffffff000000000000000f, carry 1 -mpi_core_sub:"f":"10000000000000000":"ffffffff000000000000000f":"ffffffffffffffff000000000000000f":1 - -mbedtls_mpi_core_sub #117: 0xf - 0x1234567890abcdef0 = 0xfffffffedcba9876f543211f/fffffffffffffffedcba9876f543211f, carry 1 -mpi_core_sub:"f":"1234567890abcdef0":"fffffffedcba9876f543211f":"fffffffffffffffedcba9876f543211f":1 - -mbedtls_mpi_core_sub #118: 0xf - 0xfffffffffffffffffefefefefefefefe = 0x101010101010111/101010101010111, carry 1 -mpi_core_sub:"f":"fffffffffffffffffefefefefefefefe":"101010101010111":"101010101010111":1 - -mbedtls_mpi_core_sub #119: 0xf - 0xfffffffffffffffffffffffffffffffe = 0x11/11, carry 1 -mpi_core_sub:"f":"fffffffffffffffffffffffffffffffe":"11":"11":1 - -mbedtls_mpi_core_sub #120: 0xf - 0xffffffffffffffffffffffffffffffff = 0x10/10, carry 1 -mpi_core_sub:"f":"ffffffffffffffffffffffffffffffff":"10":"10":1 - -mbedtls_mpi_core_sub #121: 0xf - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000f/ffffffffffffffff0000000000000000000000000000000f, carry 1 -mpi_core_sub:"f":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000000f":"ffffffffffffffff0000000000000000000000000000000f":1 - -mbedtls_mpi_core_sub #122: 0xf - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f543211f/ffffffffffffffedcba9876f543210fedcba9876f543211f, carry 1 -mpi_core_sub:"f":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f543211f":"ffffffffffffffedcba9876f543210fedcba9876f543211f":1 - -mbedtls_mpi_core_sub #123: 0xf - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010111/101010101010111, carry 1 -mpi_core_sub:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010111":"101010101010111":1 - -mbedtls_mpi_core_sub #124: 0xf - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x11/11, carry 1 -mpi_core_sub:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"11":"11":1 - -mbedtls_mpi_core_sub #125: 0xf - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10/10, carry 1 -mpi_core_sub:"f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10":"10":1 - -mbedtls_mpi_core_sub #126: 0xf - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000000000000000000f/ffffffffffffffff000000000000000000000000000000000000000000000000000000000000000f, carry 1 -mpi_core_sub:"f":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000000f":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000000f":1 - -mbedtls_mpi_core_sub #127: 0xf - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f, carry 1 -mpi_core_sub:"f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f":1 - -mbedtls_mpi_core_sub #128: 0xf - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4, carry 1 -mpi_core_sub:"f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4":1 - -mbedtls_mpi_core_sub #129: 0xfe - 0x0 = 0xfe/fe, carry 0 -mpi_core_sub:"fe":"0":"fe":"fe":0 - -mbedtls_mpi_core_sub #130: 0xfe - 0x1 = 0xfd/fd, carry 0 -mpi_core_sub:"fe":"1":"fd":"fd":0 - -mbedtls_mpi_core_sub #131: 0xfe - 0x3 = 0xfb/fb, carry 0 -mpi_core_sub:"fe":"3":"fb":"fb":0 - -mbedtls_mpi_core_sub #132: 0xfe - 0xf = 0xef/ef, carry 0 -mpi_core_sub:"fe":"f":"ef":"ef":0 - -mbedtls_mpi_core_sub #133: 0xfe - 0xfe = 0x0/0, carry 0 -mpi_core_sub:"fe":"fe":"0":"0":0 - -mbedtls_mpi_core_sub #134: 0xfe - 0xff = 0xffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"fe":"ff":"ffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #135: 0xfe - 0x100 = 0xfffffffe/fffffffffffffffe, carry 1 -mpi_core_sub:"fe":"100":"fffffffe":"fffffffffffffffe":1 - -mbedtls_mpi_core_sub #136: 0xfe - 0xff00 = 0xffff01fe/ffffffffffff01fe, carry 1 -mpi_core_sub:"fe":"ff00":"ffff01fe":"ffffffffffff01fe":1 - -mbedtls_mpi_core_sub #137: 0xfe - 0xfffe = 0xffff0100/ffffffffffff0100, carry 1 -mpi_core_sub:"fe":"fffe":"ffff0100":"ffffffffffff0100":1 - -mbedtls_mpi_core_sub #138: 0xfe - 0xffff = 0xffff00ff/ffffffffffff00ff, carry 1 -mpi_core_sub:"fe":"ffff":"ffff00ff":"ffffffffffff00ff":1 - -mbedtls_mpi_core_sub #139: 0xfe - 0x10000 = 0xffff00fe/ffffffffffff00fe, carry 1 -mpi_core_sub:"fe":"10000":"ffff00fe":"ffffffffffff00fe":1 - -mbedtls_mpi_core_sub #140: 0xfe - 0xfffffffe = 0x100/ffffffff00000100, carry 1 -mpi_core_sub:"fe":"fffffffe":"100":"ffffffff00000100":1 - -mbedtls_mpi_core_sub #141: 0xfe - 0xffffffff = 0xff/ffffffff000000ff, carry 1 -mpi_core_sub:"fe":"ffffffff":"ff":"ffffffff000000ff":1 - -mbedtls_mpi_core_sub #142: 0xfe - 0x100000000 = 0xffffffff000000fe/ffffffff000000fe, carry 1 -mpi_core_sub:"fe":"100000000":"ffffffff000000fe":"ffffffff000000fe":1 - -mbedtls_mpi_core_sub #143: 0xfe - 0x1f7f7f7f7f7f7f = 0xffe080808080817f/ffe080808080817f, carry 1 -mpi_core_sub:"fe":"1f7f7f7f7f7f7f":"ffe080808080817f":"ffe080808080817f":1 - -mbedtls_mpi_core_sub #144: 0xfe - 0x8000000000000000 = 0x80000000000000fe/80000000000000fe, carry 1 -mpi_core_sub:"fe":"8000000000000000":"80000000000000fe":"80000000000000fe":1 - -mbedtls_mpi_core_sub #145: 0xfe - 0xfefefefefefefefe = 0x101010101010200/101010101010200, carry 1 -mpi_core_sub:"fe":"fefefefefefefefe":"101010101010200":"101010101010200":1 - -mbedtls_mpi_core_sub #146: 0xfe - 0xfffffffffffffffe = 0x100/100, carry 1 -mpi_core_sub:"fe":"fffffffffffffffe":"100":"100":1 - -mbedtls_mpi_core_sub #147: 0xfe - 0xffffffffffffffff = 0xff/ff, carry 1 -mpi_core_sub:"fe":"ffffffffffffffff":"ff":"ff":1 - -mbedtls_mpi_core_sub #148: 0xfe - 0x10000000000000000 = 0xffffffff00000000000000fe/ffffffffffffffff00000000000000fe, carry 1 -mpi_core_sub:"fe":"10000000000000000":"ffffffff00000000000000fe":"ffffffffffffffff00000000000000fe":1 - -mbedtls_mpi_core_sub #149: 0xfe - 0x1234567890abcdef0 = 0xfffffffedcba9876f543220e/fffffffffffffffedcba9876f543220e, carry 1 -mpi_core_sub:"fe":"1234567890abcdef0":"fffffffedcba9876f543220e":"fffffffffffffffedcba9876f543220e":1 - -mbedtls_mpi_core_sub #150: 0xfe - 0xfffffffffffffffffefefefefefefefe = 0x101010101010200/101010101010200, carry 1 -mpi_core_sub:"fe":"fffffffffffffffffefefefefefefefe":"101010101010200":"101010101010200":1 - -mbedtls_mpi_core_sub #151: 0xfe - 0xfffffffffffffffffffffffffffffffe = 0x100/100, carry 1 -mpi_core_sub:"fe":"fffffffffffffffffffffffffffffffe":"100":"100":1 - -mbedtls_mpi_core_sub #152: 0xfe - 0xffffffffffffffffffffffffffffffff = 0xff/ff, carry 1 -mpi_core_sub:"fe":"ffffffffffffffffffffffffffffffff":"ff":"ff":1 - -mbedtls_mpi_core_sub #153: 0xfe - 0x100000000000000000000000000000000 = 0xffffffff000000000000000000000000000000fe/ffffffffffffffff000000000000000000000000000000fe, carry 1 -mpi_core_sub:"fe":"100000000000000000000000000000000":"ffffffff000000000000000000000000000000fe":"ffffffffffffffff000000000000000000000000000000fe":1 - -mbedtls_mpi_core_sub #154: 0xfe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f543220e/ffffffffffffffedcba9876f543210fedcba9876f543220e, carry 1 -mpi_core_sub:"fe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f543220e":"ffffffffffffffedcba9876f543210fedcba9876f543220e":1 - -mbedtls_mpi_core_sub #155: 0xfe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010200/101010101010200, carry 1 -mpi_core_sub:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010200":"101010101010200":1 - -mbedtls_mpi_core_sub #156: 0xfe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100/100, carry 1 -mpi_core_sub:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100":"100":1 - -mbedtls_mpi_core_sub #157: 0xfe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xff/ff, carry 1 -mpi_core_sub:"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ff":1 - -mbedtls_mpi_core_sub #158: 0xfe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000000000000000000000000000000000fe/ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000fe, carry 1 -mpi_core_sub:"fe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000000000fe":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000fe":1 - -mbedtls_mpi_core_sub #159: 0xfe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e, carry 1 -mpi_core_sub:"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e":1 - -mbedtls_mpi_core_sub #160: 0xfe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3, carry 1 -mpi_core_sub:"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3":1 - -mbedtls_mpi_core_sub #161: 0xff - 0x0 = 0xff/ff, carry 0 -mpi_core_sub:"ff":"0":"ff":"ff":0 - -mbedtls_mpi_core_sub #162: 0xff - 0x1 = 0xfe/fe, carry 0 -mpi_core_sub:"ff":"1":"fe":"fe":0 - -mbedtls_mpi_core_sub #163: 0xff - 0x3 = 0xfc/fc, carry 0 -mpi_core_sub:"ff":"3":"fc":"fc":0 - -mbedtls_mpi_core_sub #164: 0xff - 0xf = 0xf0/f0, carry 0 -mpi_core_sub:"ff":"f":"f0":"f0":0 - -mbedtls_mpi_core_sub #165: 0xff - 0xfe = 0x1/1, carry 0 -mpi_core_sub:"ff":"fe":"1":"1":0 - -mbedtls_mpi_core_sub #166: 0xff - 0xff = 0x0/0, carry 0 -mpi_core_sub:"ff":"ff":"0":"0":0 - -mbedtls_mpi_core_sub #167: 0xff - 0x100 = 0xffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"ff":"100":"ffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #168: 0xff - 0xff00 = 0xffff01ff/ffffffffffff01ff, carry 1 -mpi_core_sub:"ff":"ff00":"ffff01ff":"ffffffffffff01ff":1 - -mbedtls_mpi_core_sub #169: 0xff - 0xfffe = 0xffff0101/ffffffffffff0101, carry 1 -mpi_core_sub:"ff":"fffe":"ffff0101":"ffffffffffff0101":1 - -mbedtls_mpi_core_sub #170: 0xff - 0xffff = 0xffff0100/ffffffffffff0100, carry 1 -mpi_core_sub:"ff":"ffff":"ffff0100":"ffffffffffff0100":1 - -mbedtls_mpi_core_sub #171: 0xff - 0x10000 = 0xffff00ff/ffffffffffff00ff, carry 1 -mpi_core_sub:"ff":"10000":"ffff00ff":"ffffffffffff00ff":1 - -mbedtls_mpi_core_sub #172: 0xff - 0xfffffffe = 0x101/ffffffff00000101, carry 1 -mpi_core_sub:"ff":"fffffffe":"101":"ffffffff00000101":1 - -mbedtls_mpi_core_sub #173: 0xff - 0xffffffff = 0x100/ffffffff00000100, carry 1 -mpi_core_sub:"ff":"ffffffff":"100":"ffffffff00000100":1 - -mbedtls_mpi_core_sub #174: 0xff - 0x100000000 = 0xffffffff000000ff/ffffffff000000ff, carry 1 -mpi_core_sub:"ff":"100000000":"ffffffff000000ff":"ffffffff000000ff":1 - -mbedtls_mpi_core_sub #175: 0xff - 0x1f7f7f7f7f7f7f = 0xffe0808080808180/ffe0808080808180, carry 1 -mpi_core_sub:"ff":"1f7f7f7f7f7f7f":"ffe0808080808180":"ffe0808080808180":1 - -mbedtls_mpi_core_sub #176: 0xff - 0x8000000000000000 = 0x80000000000000ff/80000000000000ff, carry 1 -mpi_core_sub:"ff":"8000000000000000":"80000000000000ff":"80000000000000ff":1 - -mbedtls_mpi_core_sub #177: 0xff - 0xfefefefefefefefe = 0x101010101010201/101010101010201, carry 1 -mpi_core_sub:"ff":"fefefefefefefefe":"101010101010201":"101010101010201":1 - -mbedtls_mpi_core_sub #178: 0xff - 0xfffffffffffffffe = 0x101/101, carry 1 -mpi_core_sub:"ff":"fffffffffffffffe":"101":"101":1 - -mbedtls_mpi_core_sub #179: 0xff - 0xffffffffffffffff = 0x100/100, carry 1 -mpi_core_sub:"ff":"ffffffffffffffff":"100":"100":1 - -mbedtls_mpi_core_sub #180: 0xff - 0x10000000000000000 = 0xffffffff00000000000000ff/ffffffffffffffff00000000000000ff, carry 1 -mpi_core_sub:"ff":"10000000000000000":"ffffffff00000000000000ff":"ffffffffffffffff00000000000000ff":1 - -mbedtls_mpi_core_sub #181: 0xff - 0x1234567890abcdef0 = 0xfffffffedcba9876f543220f/fffffffffffffffedcba9876f543220f, carry 1 -mpi_core_sub:"ff":"1234567890abcdef0":"fffffffedcba9876f543220f":"fffffffffffffffedcba9876f543220f":1 - -mbedtls_mpi_core_sub #182: 0xff - 0xfffffffffffffffffefefefefefefefe = 0x101010101010201/101010101010201, carry 1 -mpi_core_sub:"ff":"fffffffffffffffffefefefefefefefe":"101010101010201":"101010101010201":1 - -mbedtls_mpi_core_sub #183: 0xff - 0xfffffffffffffffffffffffffffffffe = 0x101/101, carry 1 -mpi_core_sub:"ff":"fffffffffffffffffffffffffffffffe":"101":"101":1 - -mbedtls_mpi_core_sub #184: 0xff - 0xffffffffffffffffffffffffffffffff = 0x100/100, carry 1 -mpi_core_sub:"ff":"ffffffffffffffffffffffffffffffff":"100":"100":1 - -mbedtls_mpi_core_sub #185: 0xff - 0x100000000000000000000000000000000 = 0xffffffff000000000000000000000000000000ff/ffffffffffffffff000000000000000000000000000000ff, carry 1 -mpi_core_sub:"ff":"100000000000000000000000000000000":"ffffffff000000000000000000000000000000ff":"ffffffffffffffff000000000000000000000000000000ff":1 - -mbedtls_mpi_core_sub #186: 0xff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f543220f/ffffffffffffffedcba9876f543210fedcba9876f543220f, carry 1 -mpi_core_sub:"ff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f543220f":"ffffffffffffffedcba9876f543210fedcba9876f543220f":1 - -mbedtls_mpi_core_sub #187: 0xff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010201/101010101010201, carry 1 -mpi_core_sub:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010201":"101010101010201":1 - -mbedtls_mpi_core_sub #188: 0xff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x101/101, carry 1 -mpi_core_sub:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"101":"101":1 - -mbedtls_mpi_core_sub #189: 0xff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100/100, carry 1 -mpi_core_sub:"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100":"100":1 - -mbedtls_mpi_core_sub #190: 0xff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000000000000000000000000000000000ff/ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000ff, carry 1 -mpi_core_sub:"ff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000000000ff":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000ff":1 - -mbedtls_mpi_core_sub #191: 0xff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f, carry 1 -mpi_core_sub:"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f":1 - -mbedtls_mpi_core_sub #192: 0xff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4, carry 1 -mpi_core_sub:"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4":1 - -mbedtls_mpi_core_sub #193: 0x100 - 0x0 = 0x100/100, carry 0 -mpi_core_sub:"100":"0":"100":"100":0 - -mbedtls_mpi_core_sub #194: 0x100 - 0x1 = 0xff/ff, carry 0 -mpi_core_sub:"100":"1":"ff":"ff":0 - -mbedtls_mpi_core_sub #195: 0x100 - 0x3 = 0xfd/fd, carry 0 -mpi_core_sub:"100":"3":"fd":"fd":0 - -mbedtls_mpi_core_sub #196: 0x100 - 0xf = 0xf1/f1, carry 0 -mpi_core_sub:"100":"f":"f1":"f1":0 - -mbedtls_mpi_core_sub #197: 0x100 - 0xfe = 0x2/2, carry 0 -mpi_core_sub:"100":"fe":"2":"2":0 - -mbedtls_mpi_core_sub #198: 0x100 - 0xff = 0x1/1, carry 0 -mpi_core_sub:"100":"ff":"1":"1":0 - -mbedtls_mpi_core_sub #199: 0x100 - 0x100 = 0x0/0, carry 0 -mpi_core_sub:"100":"100":"0":"0":0 - -mbedtls_mpi_core_sub #200: 0x100 - 0xff00 = 0xffff0200/ffffffffffff0200, carry 1 -mpi_core_sub:"100":"ff00":"ffff0200":"ffffffffffff0200":1 - -mbedtls_mpi_core_sub #201: 0x100 - 0xfffe = 0xffff0102/ffffffffffff0102, carry 1 -mpi_core_sub:"100":"fffe":"ffff0102":"ffffffffffff0102":1 - -mbedtls_mpi_core_sub #202: 0x100 - 0xffff = 0xffff0101/ffffffffffff0101, carry 1 -mpi_core_sub:"100":"ffff":"ffff0101":"ffffffffffff0101":1 - -mbedtls_mpi_core_sub #203: 0x100 - 0x10000 = 0xffff0100/ffffffffffff0100, carry 1 -mpi_core_sub:"100":"10000":"ffff0100":"ffffffffffff0100":1 - -mbedtls_mpi_core_sub #204: 0x100 - 0xfffffffe = 0x102/ffffffff00000102, carry 1 -mpi_core_sub:"100":"fffffffe":"102":"ffffffff00000102":1 - -mbedtls_mpi_core_sub #205: 0x100 - 0xffffffff = 0x101/ffffffff00000101, carry 1 -mpi_core_sub:"100":"ffffffff":"101":"ffffffff00000101":1 - -mbedtls_mpi_core_sub #206: 0x100 - 0x100000000 = 0xffffffff00000100/ffffffff00000100, carry 1 -mpi_core_sub:"100":"100000000":"ffffffff00000100":"ffffffff00000100":1 - -mbedtls_mpi_core_sub #207: 0x100 - 0x1f7f7f7f7f7f7f = 0xffe0808080808181/ffe0808080808181, carry 1 -mpi_core_sub:"100":"1f7f7f7f7f7f7f":"ffe0808080808181":"ffe0808080808181":1 - -mbedtls_mpi_core_sub #208: 0x100 - 0x8000000000000000 = 0x8000000000000100/8000000000000100, carry 1 -mpi_core_sub:"100":"8000000000000000":"8000000000000100":"8000000000000100":1 - -mbedtls_mpi_core_sub #209: 0x100 - 0xfefefefefefefefe = 0x101010101010202/101010101010202, carry 1 -mpi_core_sub:"100":"fefefefefefefefe":"101010101010202":"101010101010202":1 - -mbedtls_mpi_core_sub #210: 0x100 - 0xfffffffffffffffe = 0x102/102, carry 1 -mpi_core_sub:"100":"fffffffffffffffe":"102":"102":1 - -mbedtls_mpi_core_sub #211: 0x100 - 0xffffffffffffffff = 0x101/101, carry 1 -mpi_core_sub:"100":"ffffffffffffffff":"101":"101":1 - -mbedtls_mpi_core_sub #212: 0x100 - 0x10000000000000000 = 0xffffffff0000000000000100/ffffffffffffffff0000000000000100, carry 1 -mpi_core_sub:"100":"10000000000000000":"ffffffff0000000000000100":"ffffffffffffffff0000000000000100":1 - -mbedtls_mpi_core_sub #213: 0x100 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5432210/fffffffffffffffedcba9876f5432210, carry 1 -mpi_core_sub:"100":"1234567890abcdef0":"fffffffedcba9876f5432210":"fffffffffffffffedcba9876f5432210":1 - -mbedtls_mpi_core_sub #214: 0x100 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010202/101010101010202, carry 1 -mpi_core_sub:"100":"fffffffffffffffffefefefefefefefe":"101010101010202":"101010101010202":1 - -mbedtls_mpi_core_sub #215: 0x100 - 0xfffffffffffffffffffffffffffffffe = 0x102/102, carry 1 -mpi_core_sub:"100":"fffffffffffffffffffffffffffffffe":"102":"102":1 - -mbedtls_mpi_core_sub #216: 0x100 - 0xffffffffffffffffffffffffffffffff = 0x101/101, carry 1 -mpi_core_sub:"100":"ffffffffffffffffffffffffffffffff":"101":"101":1 - -mbedtls_mpi_core_sub #217: 0x100 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000000100/ffffffffffffffff00000000000000000000000000000100, carry 1 -mpi_core_sub:"100":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000100":"ffffffffffffffff00000000000000000000000000000100":1 - -mbedtls_mpi_core_sub #218: 0x100 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5432210/ffffffffffffffedcba9876f543210fedcba9876f5432210, carry 1 -mpi_core_sub:"100":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432210":"ffffffffffffffedcba9876f543210fedcba9876f5432210":1 - -mbedtls_mpi_core_sub #219: 0x100 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010202/101010101010202, carry 1 -mpi_core_sub:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010202":"101010101010202":1 - -mbedtls_mpi_core_sub #220: 0x100 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x102/102, carry 1 -mpi_core_sub:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"102":"102":1 - -mbedtls_mpi_core_sub #221: 0x100 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x101/101, carry 1 -mpi_core_sub:"100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"101":"101":1 - -mbedtls_mpi_core_sub #222: 0x100 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000000100/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000100, carry 1 -mpi_core_sub:"100":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000100":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000100":1 - -mbedtls_mpi_core_sub #223: 0x100 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210, carry 1 -mpi_core_sub:"100":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210":1 - -mbedtls_mpi_core_sub #224: 0x100 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5, carry 1 -mpi_core_sub:"100":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5":1 - -mbedtls_mpi_core_sub #225: 0xff00 - 0x0 = 0xff00/ff00, carry 0 -mpi_core_sub:"ff00":"0":"ff00":"ff00":0 - -mbedtls_mpi_core_sub #226: 0xff00 - 0x1 = 0xfeff/feff, carry 0 -mpi_core_sub:"ff00":"1":"feff":"feff":0 - -mbedtls_mpi_core_sub #227: 0xff00 - 0x3 = 0xfefd/fefd, carry 0 -mpi_core_sub:"ff00":"3":"fefd":"fefd":0 - -mbedtls_mpi_core_sub #228: 0xff00 - 0xf = 0xfef1/fef1, carry 0 -mpi_core_sub:"ff00":"f":"fef1":"fef1":0 - -mbedtls_mpi_core_sub #229: 0xff00 - 0xfe = 0xfe02/fe02, carry 0 -mpi_core_sub:"ff00":"fe":"fe02":"fe02":0 - -mbedtls_mpi_core_sub #230: 0xff00 - 0xff = 0xfe01/fe01, carry 0 -mpi_core_sub:"ff00":"ff":"fe01":"fe01":0 - -mbedtls_mpi_core_sub #231: 0xff00 - 0x100 = 0xfe00/fe00, carry 0 -mpi_core_sub:"ff00":"100":"fe00":"fe00":0 - -mbedtls_mpi_core_sub #232: 0xff00 - 0xff00 = 0x0/0, carry 0 -mpi_core_sub:"ff00":"ff00":"0":"0":0 - -mbedtls_mpi_core_sub #233: 0xff00 - 0xfffe = 0xffffff02/ffffffffffffff02, carry 1 -mpi_core_sub:"ff00":"fffe":"ffffff02":"ffffffffffffff02":1 - -mbedtls_mpi_core_sub #234: 0xff00 - 0xffff = 0xffffff01/ffffffffffffff01, carry 1 -mpi_core_sub:"ff00":"ffff":"ffffff01":"ffffffffffffff01":1 - -mbedtls_mpi_core_sub #235: 0xff00 - 0x10000 = 0xffffff00/ffffffffffffff00, carry 1 -mpi_core_sub:"ff00":"10000":"ffffff00":"ffffffffffffff00":1 - -mbedtls_mpi_core_sub #236: 0xff00 - 0xfffffffe = 0xff02/ffffffff0000ff02, carry 1 -mpi_core_sub:"ff00":"fffffffe":"ff02":"ffffffff0000ff02":1 - -mbedtls_mpi_core_sub #237: 0xff00 - 0xffffffff = 0xff01/ffffffff0000ff01, carry 1 -mpi_core_sub:"ff00":"ffffffff":"ff01":"ffffffff0000ff01":1 - -mbedtls_mpi_core_sub #238: 0xff00 - 0x100000000 = 0xffffffff0000ff00/ffffffff0000ff00, carry 1 -mpi_core_sub:"ff00":"100000000":"ffffffff0000ff00":"ffffffff0000ff00":1 - -mbedtls_mpi_core_sub #239: 0xff00 - 0x1f7f7f7f7f7f7f = 0xffe0808080817f81/ffe0808080817f81, carry 1 -mpi_core_sub:"ff00":"1f7f7f7f7f7f7f":"ffe0808080817f81":"ffe0808080817f81":1 - -mbedtls_mpi_core_sub #240: 0xff00 - 0x8000000000000000 = 0x800000000000ff00/800000000000ff00, carry 1 -mpi_core_sub:"ff00":"8000000000000000":"800000000000ff00":"800000000000ff00":1 - -mbedtls_mpi_core_sub #241: 0xff00 - 0xfefefefefefefefe = 0x101010101020002/101010101020002, carry 1 -mpi_core_sub:"ff00":"fefefefefefefefe":"101010101020002":"101010101020002":1 - -mbedtls_mpi_core_sub #242: 0xff00 - 0xfffffffffffffffe = 0xff02/ff02, carry 1 -mpi_core_sub:"ff00":"fffffffffffffffe":"ff02":"ff02":1 - -mbedtls_mpi_core_sub #243: 0xff00 - 0xffffffffffffffff = 0xff01/ff01, carry 1 -mpi_core_sub:"ff00":"ffffffffffffffff":"ff01":"ff01":1 - -mbedtls_mpi_core_sub #244: 0xff00 - 0x10000000000000000 = 0xffffffff000000000000ff00/ffffffffffffffff000000000000ff00, carry 1 -mpi_core_sub:"ff00":"10000000000000000":"ffffffff000000000000ff00":"ffffffffffffffff000000000000ff00":1 - -mbedtls_mpi_core_sub #245: 0xff00 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5442010/fffffffffffffffedcba9876f5442010, carry 1 -mpi_core_sub:"ff00":"1234567890abcdef0":"fffffffedcba9876f5442010":"fffffffffffffffedcba9876f5442010":1 - -mbedtls_mpi_core_sub #246: 0xff00 - 0xfffffffffffffffffefefefefefefefe = 0x101010101020002/101010101020002, carry 1 -mpi_core_sub:"ff00":"fffffffffffffffffefefefefefefefe":"101010101020002":"101010101020002":1 - -mbedtls_mpi_core_sub #247: 0xff00 - 0xfffffffffffffffffffffffffffffffe = 0xff02/ff02, carry 1 -mpi_core_sub:"ff00":"fffffffffffffffffffffffffffffffe":"ff02":"ff02":1 - -mbedtls_mpi_core_sub #248: 0xff00 - 0xffffffffffffffffffffffffffffffff = 0xff01/ff01, carry 1 -mpi_core_sub:"ff00":"ffffffffffffffffffffffffffffffff":"ff01":"ff01":1 - -mbedtls_mpi_core_sub #249: 0xff00 - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000000000000000ff00/ffffffffffffffff0000000000000000000000000000ff00, carry 1 -mpi_core_sub:"ff00":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000ff00":"ffffffffffffffff0000000000000000000000000000ff00":1 - -mbedtls_mpi_core_sub #250: 0xff00 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5442010/ffffffffffffffedcba9876f543210fedcba9876f5442010, carry 1 -mpi_core_sub:"ff00":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5442010":"ffffffffffffffedcba9876f543210fedcba9876f5442010":1 - -mbedtls_mpi_core_sub #251: 0xff00 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101020002/101010101020002, carry 1 -mpi_core_sub:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020002":"101010101020002":1 - -mbedtls_mpi_core_sub #252: 0xff00 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0xff02/ff02, carry 1 -mpi_core_sub:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ff02":"ff02":1 - -mbedtls_mpi_core_sub #253: 0xff00 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xff01/ff01, carry 1 -mpi_core_sub:"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff01":"ff01":1 - -mbedtls_mpi_core_sub #254: 0xff00 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000000000000000ff00/ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ff00, carry 1 -mpi_core_sub:"ff00":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000ff00":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ff00":1 - -mbedtls_mpi_core_sub #255: 0xff00 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010, carry 1 -mpi_core_sub:"ff00":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010":1 - -mbedtls_mpi_core_sub #256: 0xff00 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5, carry 1 -mpi_core_sub:"ff00":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5":1 - -mbedtls_mpi_core_sub #257: 0xfffe - 0x0 = 0xfffe/fffe, carry 0 -mpi_core_sub:"fffe":"0":"fffe":"fffe":0 - -mbedtls_mpi_core_sub #258: 0xfffe - 0x1 = 0xfffd/fffd, carry 0 -mpi_core_sub:"fffe":"1":"fffd":"fffd":0 - -mbedtls_mpi_core_sub #259: 0xfffe - 0x3 = 0xfffb/fffb, carry 0 -mpi_core_sub:"fffe":"3":"fffb":"fffb":0 - -mbedtls_mpi_core_sub #260: 0xfffe - 0xf = 0xffef/ffef, carry 0 -mpi_core_sub:"fffe":"f":"ffef":"ffef":0 - -mbedtls_mpi_core_sub #261: 0xfffe - 0xfe = 0xff00/ff00, carry 0 -mpi_core_sub:"fffe":"fe":"ff00":"ff00":0 - -mbedtls_mpi_core_sub #262: 0xfffe - 0xff = 0xfeff/feff, carry 0 -mpi_core_sub:"fffe":"ff":"feff":"feff":0 - -mbedtls_mpi_core_sub #263: 0xfffe - 0x100 = 0xfefe/fefe, carry 0 -mpi_core_sub:"fffe":"100":"fefe":"fefe":0 - -mbedtls_mpi_core_sub #264: 0xfffe - 0xff00 = 0xfe/fe, carry 0 -mpi_core_sub:"fffe":"ff00":"fe":"fe":0 - -mbedtls_mpi_core_sub #265: 0xfffe - 0xfffe = 0x0/0, carry 0 -mpi_core_sub:"fffe":"fffe":"0":"0":0 - -mbedtls_mpi_core_sub #266: 0xfffe - 0xffff = 0xffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"fffe":"ffff":"ffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #267: 0xfffe - 0x10000 = 0xfffffffe/fffffffffffffffe, carry 1 -mpi_core_sub:"fffe":"10000":"fffffffe":"fffffffffffffffe":1 - -mbedtls_mpi_core_sub #268: 0xfffe - 0xfffffffe = 0x10000/ffffffff00010000, carry 1 -mpi_core_sub:"fffe":"fffffffe":"10000":"ffffffff00010000":1 - -mbedtls_mpi_core_sub #269: 0xfffe - 0xffffffff = 0xffff/ffffffff0000ffff, carry 1 -mpi_core_sub:"fffe":"ffffffff":"ffff":"ffffffff0000ffff":1 - -mbedtls_mpi_core_sub #270: 0xfffe - 0x100000000 = 0xffffffff0000fffe/ffffffff0000fffe, carry 1 -mpi_core_sub:"fffe":"100000000":"ffffffff0000fffe":"ffffffff0000fffe":1 - -mbedtls_mpi_core_sub #271: 0xfffe - 0x1f7f7f7f7f7f7f = 0xffe080808081807f/ffe080808081807f, carry 1 -mpi_core_sub:"fffe":"1f7f7f7f7f7f7f":"ffe080808081807f":"ffe080808081807f":1 - -mbedtls_mpi_core_sub #272: 0xfffe - 0x8000000000000000 = 0x800000000000fffe/800000000000fffe, carry 1 -mpi_core_sub:"fffe":"8000000000000000":"800000000000fffe":"800000000000fffe":1 - -mbedtls_mpi_core_sub #273: 0xfffe - 0xfefefefefefefefe = 0x101010101020100/101010101020100, carry 1 -mpi_core_sub:"fffe":"fefefefefefefefe":"101010101020100":"101010101020100":1 - -mbedtls_mpi_core_sub #274: 0xfffe - 0xfffffffffffffffe = 0x10000/10000, carry 1 -mpi_core_sub:"fffe":"fffffffffffffffe":"10000":"10000":1 - -mbedtls_mpi_core_sub #275: 0xfffe - 0xffffffffffffffff = 0xffff/ffff, carry 1 -mpi_core_sub:"fffe":"ffffffffffffffff":"ffff":"ffff":1 - -mbedtls_mpi_core_sub #276: 0xfffe - 0x10000000000000000 = 0xffffffff000000000000fffe/ffffffffffffffff000000000000fffe, carry 1 -mpi_core_sub:"fffe":"10000000000000000":"ffffffff000000000000fffe":"ffffffffffffffff000000000000fffe":1 - -mbedtls_mpi_core_sub #277: 0xfffe - 0x1234567890abcdef0 = 0xfffffffedcba9876f544210e/fffffffffffffffedcba9876f544210e, carry 1 -mpi_core_sub:"fffe":"1234567890abcdef0":"fffffffedcba9876f544210e":"fffffffffffffffedcba9876f544210e":1 - -mbedtls_mpi_core_sub #278: 0xfffe - 0xfffffffffffffffffefefefefefefefe = 0x101010101020100/101010101020100, carry 1 -mpi_core_sub:"fffe":"fffffffffffffffffefefefefefefefe":"101010101020100":"101010101020100":1 - -mbedtls_mpi_core_sub #279: 0xfffe - 0xfffffffffffffffffffffffffffffffe = 0x10000/10000, carry 1 -mpi_core_sub:"fffe":"fffffffffffffffffffffffffffffffe":"10000":"10000":1 - -mbedtls_mpi_core_sub #280: 0xfffe - 0xffffffffffffffffffffffffffffffff = 0xffff/ffff, carry 1 -mpi_core_sub:"fffe":"ffffffffffffffffffffffffffffffff":"ffff":"ffff":1 - -mbedtls_mpi_core_sub #281: 0xfffe - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000000000000000fffe/ffffffffffffffff0000000000000000000000000000fffe, carry 1 -mpi_core_sub:"fffe":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000fffe":"ffffffffffffffff0000000000000000000000000000fffe":1 - -mbedtls_mpi_core_sub #282: 0xfffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f544210e/ffffffffffffffedcba9876f543210fedcba9876f544210e, carry 1 -mpi_core_sub:"fffe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f544210e":"ffffffffffffffedcba9876f543210fedcba9876f544210e":1 - -mbedtls_mpi_core_sub #283: 0xfffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101020100/101010101020100, carry 1 -mpi_core_sub:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020100":"101010101020100":1 - -mbedtls_mpi_core_sub #284: 0xfffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10000/10000, carry 1 -mpi_core_sub:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000":"10000":1 - -mbedtls_mpi_core_sub #285: 0xfffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffff/ffff, carry 1 -mpi_core_sub:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff":1 - -mbedtls_mpi_core_sub #286: 0xfffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000000000000000fffe/ffffffffffffffff000000000000000000000000000000000000000000000000000000000000fffe, carry 1 -mpi_core_sub:"fffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000fffe":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000fffe":1 - -mbedtls_mpi_core_sub #287: 0xfffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e, carry 1 -mpi_core_sub:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e":1 - -mbedtls_mpi_core_sub #288: 0xfffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3, carry 1 -mpi_core_sub:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3":1 - -mbedtls_mpi_core_sub #289: 0xffff - 0x0 = 0xffff/ffff, carry 0 -mpi_core_sub:"ffff":"0":"ffff":"ffff":0 - -mbedtls_mpi_core_sub #290: 0xffff - 0x1 = 0xfffe/fffe, carry 0 -mpi_core_sub:"ffff":"1":"fffe":"fffe":0 - -mbedtls_mpi_core_sub #291: 0xffff - 0x3 = 0xfffc/fffc, carry 0 -mpi_core_sub:"ffff":"3":"fffc":"fffc":0 - -mbedtls_mpi_core_sub #292: 0xffff - 0xf = 0xfff0/fff0, carry 0 -mpi_core_sub:"ffff":"f":"fff0":"fff0":0 - -mbedtls_mpi_core_sub #293: 0xffff - 0xfe = 0xff01/ff01, carry 0 -mpi_core_sub:"ffff":"fe":"ff01":"ff01":0 - -mbedtls_mpi_core_sub #294: 0xffff - 0xff = 0xff00/ff00, carry 0 -mpi_core_sub:"ffff":"ff":"ff00":"ff00":0 - -mbedtls_mpi_core_sub #295: 0xffff - 0x100 = 0xfeff/feff, carry 0 -mpi_core_sub:"ffff":"100":"feff":"feff":0 - -mbedtls_mpi_core_sub #296: 0xffff - 0xff00 = 0xff/ff, carry 0 -mpi_core_sub:"ffff":"ff00":"ff":"ff":0 - -mbedtls_mpi_core_sub #297: 0xffff - 0xfffe = 0x1/1, carry 0 -mpi_core_sub:"ffff":"fffe":"1":"1":0 - -mbedtls_mpi_core_sub #298: 0xffff - 0xffff = 0x0/0, carry 0 -mpi_core_sub:"ffff":"ffff":"0":"0":0 - -mbedtls_mpi_core_sub #299: 0xffff - 0x10000 = 0xffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"ffff":"10000":"ffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #300: 0xffff - 0xfffffffe = 0x10001/ffffffff00010001, carry 1 -mpi_core_sub:"ffff":"fffffffe":"10001":"ffffffff00010001":1 - -mbedtls_mpi_core_sub #301: 0xffff - 0xffffffff = 0x10000/ffffffff00010000, carry 1 -mpi_core_sub:"ffff":"ffffffff":"10000":"ffffffff00010000":1 - -mbedtls_mpi_core_sub #302: 0xffff - 0x100000000 = 0xffffffff0000ffff/ffffffff0000ffff, carry 1 -mpi_core_sub:"ffff":"100000000":"ffffffff0000ffff":"ffffffff0000ffff":1 - -mbedtls_mpi_core_sub #303: 0xffff - 0x1f7f7f7f7f7f7f = 0xffe0808080818080/ffe0808080818080, carry 1 -mpi_core_sub:"ffff":"1f7f7f7f7f7f7f":"ffe0808080818080":"ffe0808080818080":1 - -mbedtls_mpi_core_sub #304: 0xffff - 0x8000000000000000 = 0x800000000000ffff/800000000000ffff, carry 1 -mpi_core_sub:"ffff":"8000000000000000":"800000000000ffff":"800000000000ffff":1 - -mbedtls_mpi_core_sub #305: 0xffff - 0xfefefefefefefefe = 0x101010101020101/101010101020101, carry 1 -mpi_core_sub:"ffff":"fefefefefefefefe":"101010101020101":"101010101020101":1 - -mbedtls_mpi_core_sub #306: 0xffff - 0xfffffffffffffffe = 0x10001/10001, carry 1 -mpi_core_sub:"ffff":"fffffffffffffffe":"10001":"10001":1 - -mbedtls_mpi_core_sub #307: 0xffff - 0xffffffffffffffff = 0x10000/10000, carry 1 -mpi_core_sub:"ffff":"ffffffffffffffff":"10000":"10000":1 - -mbedtls_mpi_core_sub #308: 0xffff - 0x10000000000000000 = 0xffffffff000000000000ffff/ffffffffffffffff000000000000ffff, carry 1 -mpi_core_sub:"ffff":"10000000000000000":"ffffffff000000000000ffff":"ffffffffffffffff000000000000ffff":1 - -mbedtls_mpi_core_sub #309: 0xffff - 0x1234567890abcdef0 = 0xfffffffedcba9876f544210f/fffffffffffffffedcba9876f544210f, carry 1 -mpi_core_sub:"ffff":"1234567890abcdef0":"fffffffedcba9876f544210f":"fffffffffffffffedcba9876f544210f":1 - -mbedtls_mpi_core_sub #310: 0xffff - 0xfffffffffffffffffefefefefefefefe = 0x101010101020101/101010101020101, carry 1 -mpi_core_sub:"ffff":"fffffffffffffffffefefefefefefefe":"101010101020101":"101010101020101":1 - -mbedtls_mpi_core_sub #311: 0xffff - 0xfffffffffffffffffffffffffffffffe = 0x10001/10001, carry 1 -mpi_core_sub:"ffff":"fffffffffffffffffffffffffffffffe":"10001":"10001":1 - -mbedtls_mpi_core_sub #312: 0xffff - 0xffffffffffffffffffffffffffffffff = 0x10000/10000, carry 1 -mpi_core_sub:"ffff":"ffffffffffffffffffffffffffffffff":"10000":"10000":1 - -mbedtls_mpi_core_sub #313: 0xffff - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000000000000000ffff/ffffffffffffffff0000000000000000000000000000ffff, carry 1 -mpi_core_sub:"ffff":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000ffff":"ffffffffffffffff0000000000000000000000000000ffff":1 - -mbedtls_mpi_core_sub #314: 0xffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f544210f/ffffffffffffffedcba9876f543210fedcba9876f544210f, carry 1 -mpi_core_sub:"ffff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f544210f":"ffffffffffffffedcba9876f543210fedcba9876f544210f":1 - -mbedtls_mpi_core_sub #315: 0xffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101020101/101010101020101, carry 1 -mpi_core_sub:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020101":"101010101020101":1 - -mbedtls_mpi_core_sub #316: 0xffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10001/10001, carry 1 -mpi_core_sub:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10001":"10001":1 - -mbedtls_mpi_core_sub #317: 0xffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10000/10000, carry 1 -mpi_core_sub:"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"10000":1 - -mbedtls_mpi_core_sub #318: 0xffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000000000000000ffff/ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ffff, carry 1 -mpi_core_sub:"ffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000ffff":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ffff":1 - -mbedtls_mpi_core_sub #319: 0xffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f, carry 1 -mpi_core_sub:"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f":1 - -mbedtls_mpi_core_sub #320: 0xffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4, carry 1 -mpi_core_sub:"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4":1 - -mbedtls_mpi_core_sub #321: 0x10000 - 0x0 = 0x10000/10000, carry 0 -mpi_core_sub:"10000":"0":"10000":"10000":0 - -mbedtls_mpi_core_sub #322: 0x10000 - 0x1 = 0xffff/ffff, carry 0 -mpi_core_sub:"10000":"1":"ffff":"ffff":0 - -mbedtls_mpi_core_sub #323: 0x10000 - 0x3 = 0xfffd/fffd, carry 0 -mpi_core_sub:"10000":"3":"fffd":"fffd":0 - -mbedtls_mpi_core_sub #324: 0x10000 - 0xf = 0xfff1/fff1, carry 0 -mpi_core_sub:"10000":"f":"fff1":"fff1":0 - -mbedtls_mpi_core_sub #325: 0x10000 - 0xfe = 0xff02/ff02, carry 0 -mpi_core_sub:"10000":"fe":"ff02":"ff02":0 - -mbedtls_mpi_core_sub #326: 0x10000 - 0xff = 0xff01/ff01, carry 0 -mpi_core_sub:"10000":"ff":"ff01":"ff01":0 - -mbedtls_mpi_core_sub #327: 0x10000 - 0x100 = 0xff00/ff00, carry 0 -mpi_core_sub:"10000":"100":"ff00":"ff00":0 - -mbedtls_mpi_core_sub #328: 0x10000 - 0xff00 = 0x100/100, carry 0 -mpi_core_sub:"10000":"ff00":"100":"100":0 - -mbedtls_mpi_core_sub #329: 0x10000 - 0xfffe = 0x2/2, carry 0 -mpi_core_sub:"10000":"fffe":"2":"2":0 - -mbedtls_mpi_core_sub #330: 0x10000 - 0xffff = 0x1/1, carry 0 -mpi_core_sub:"10000":"ffff":"1":"1":0 - -mbedtls_mpi_core_sub #331: 0x10000 - 0x10000 = 0x0/0, carry 0 -mpi_core_sub:"10000":"10000":"0":"0":0 - -mbedtls_mpi_core_sub #332: 0x10000 - 0xfffffffe = 0x10002/ffffffff00010002, carry 1 -mpi_core_sub:"10000":"fffffffe":"10002":"ffffffff00010002":1 - -mbedtls_mpi_core_sub #333: 0x10000 - 0xffffffff = 0x10001/ffffffff00010001, carry 1 -mpi_core_sub:"10000":"ffffffff":"10001":"ffffffff00010001":1 - -mbedtls_mpi_core_sub #334: 0x10000 - 0x100000000 = 0xffffffff00010000/ffffffff00010000, carry 1 -mpi_core_sub:"10000":"100000000":"ffffffff00010000":"ffffffff00010000":1 - -mbedtls_mpi_core_sub #335: 0x10000 - 0x1f7f7f7f7f7f7f = 0xffe0808080818081/ffe0808080818081, carry 1 -mpi_core_sub:"10000":"1f7f7f7f7f7f7f":"ffe0808080818081":"ffe0808080818081":1 - -mbedtls_mpi_core_sub #336: 0x10000 - 0x8000000000000000 = 0x8000000000010000/8000000000010000, carry 1 -mpi_core_sub:"10000":"8000000000000000":"8000000000010000":"8000000000010000":1 - -mbedtls_mpi_core_sub #337: 0x10000 - 0xfefefefefefefefe = 0x101010101020102/101010101020102, carry 1 -mpi_core_sub:"10000":"fefefefefefefefe":"101010101020102":"101010101020102":1 - -mbedtls_mpi_core_sub #338: 0x10000 - 0xfffffffffffffffe = 0x10002/10002, carry 1 -mpi_core_sub:"10000":"fffffffffffffffe":"10002":"10002":1 - -mbedtls_mpi_core_sub #339: 0x10000 - 0xffffffffffffffff = 0x10001/10001, carry 1 -mpi_core_sub:"10000":"ffffffffffffffff":"10001":"10001":1 - -mbedtls_mpi_core_sub #340: 0x10000 - 0x10000000000000000 = 0xffffffff0000000000010000/ffffffffffffffff0000000000010000, carry 1 -mpi_core_sub:"10000":"10000000000000000":"ffffffff0000000000010000":"ffffffffffffffff0000000000010000":1 - -mbedtls_mpi_core_sub #341: 0x10000 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5442110/fffffffffffffffedcba9876f5442110, carry 1 -mpi_core_sub:"10000":"1234567890abcdef0":"fffffffedcba9876f5442110":"fffffffffffffffedcba9876f5442110":1 - -mbedtls_mpi_core_sub #342: 0x10000 - 0xfffffffffffffffffefefefefefefefe = 0x101010101020102/101010101020102, carry 1 -mpi_core_sub:"10000":"fffffffffffffffffefefefefefefefe":"101010101020102":"101010101020102":1 - -mbedtls_mpi_core_sub #343: 0x10000 - 0xfffffffffffffffffffffffffffffffe = 0x10002/10002, carry 1 -mpi_core_sub:"10000":"fffffffffffffffffffffffffffffffe":"10002":"10002":1 - -mbedtls_mpi_core_sub #344: 0x10000 - 0xffffffffffffffffffffffffffffffff = 0x10001/10001, carry 1 -mpi_core_sub:"10000":"ffffffffffffffffffffffffffffffff":"10001":"10001":1 - -mbedtls_mpi_core_sub #345: 0x10000 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000010000/ffffffffffffffff00000000000000000000000000010000, carry 1 -mpi_core_sub:"10000":"100000000000000000000000000000000":"ffffffff00000000000000000000000000010000":"ffffffffffffffff00000000000000000000000000010000":1 - -mbedtls_mpi_core_sub #346: 0x10000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5442110/ffffffffffffffedcba9876f543210fedcba9876f5442110, carry 1 -mpi_core_sub:"10000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5442110":"ffffffffffffffedcba9876f543210fedcba9876f5442110":1 - -mbedtls_mpi_core_sub #347: 0x10000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101020102/101010101020102, carry 1 -mpi_core_sub:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020102":"101010101020102":1 - -mbedtls_mpi_core_sub #348: 0x10000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10002/10002, carry 1 -mpi_core_sub:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10002":"10002":1 - -mbedtls_mpi_core_sub #349: 0x10000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10001/10001, carry 1 -mpi_core_sub:"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10001":"10001":1 - -mbedtls_mpi_core_sub #350: 0x10000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000010000/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000010000, carry 1 -mpi_core_sub:"10000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000010000":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000010000":1 - -mbedtls_mpi_core_sub #351: 0x10000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110, carry 1 -mpi_core_sub:"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110":1 - -mbedtls_mpi_core_sub #352: 0x10000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5, carry 1 -mpi_core_sub:"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5":1 - -mbedtls_mpi_core_sub #353: 0xfffffffe - 0x0 = 0xfffffffe/fffffffe, carry 0 -mpi_core_sub:"fffffffe":"0":"fffffffe":"fffffffe":0 - -mbedtls_mpi_core_sub #354: 0xfffffffe - 0x1 = 0xfffffffd/fffffffd, carry 0 -mpi_core_sub:"fffffffe":"1":"fffffffd":"fffffffd":0 - -mbedtls_mpi_core_sub #355: 0xfffffffe - 0x3 = 0xfffffffb/fffffffb, carry 0 -mpi_core_sub:"fffffffe":"3":"fffffffb":"fffffffb":0 - -mbedtls_mpi_core_sub #356: 0xfffffffe - 0xf = 0xffffffef/ffffffef, carry 0 -mpi_core_sub:"fffffffe":"f":"ffffffef":"ffffffef":0 - -mbedtls_mpi_core_sub #357: 0xfffffffe - 0xfe = 0xffffff00/ffffff00, carry 0 -mpi_core_sub:"fffffffe":"fe":"ffffff00":"ffffff00":0 - -mbedtls_mpi_core_sub #358: 0xfffffffe - 0xff = 0xfffffeff/fffffeff, carry 0 -mpi_core_sub:"fffffffe":"ff":"fffffeff":"fffffeff":0 - -mbedtls_mpi_core_sub #359: 0xfffffffe - 0x100 = 0xfffffefe/fffffefe, carry 0 -mpi_core_sub:"fffffffe":"100":"fffffefe":"fffffefe":0 - -mbedtls_mpi_core_sub #360: 0xfffffffe - 0xff00 = 0xffff00fe/ffff00fe, carry 0 -mpi_core_sub:"fffffffe":"ff00":"ffff00fe":"ffff00fe":0 - -mbedtls_mpi_core_sub #361: 0xfffffffe - 0xfffe = 0xffff0000/ffff0000, carry 0 -mpi_core_sub:"fffffffe":"fffe":"ffff0000":"ffff0000":0 - -mbedtls_mpi_core_sub #362: 0xfffffffe - 0xffff = 0xfffeffff/fffeffff, carry 0 -mpi_core_sub:"fffffffe":"ffff":"fffeffff":"fffeffff":0 - -mbedtls_mpi_core_sub #363: 0xfffffffe - 0x10000 = 0xfffefffe/fffefffe, carry 0 -mpi_core_sub:"fffffffe":"10000":"fffefffe":"fffefffe":0 - -mbedtls_mpi_core_sub #364: 0xfffffffe - 0xfffffffe = 0x0/0, carry 0 -mpi_core_sub:"fffffffe":"fffffffe":"0":"0":0 - -mbedtls_mpi_core_sub #365: 0xfffffffe - 0xffffffff = 0xffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"fffffffe":"ffffffff":"ffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #366: 0xfffffffe - 0x100000000 = 0xfffffffffffffffe/fffffffffffffffe, carry 1 -mpi_core_sub:"fffffffe":"100000000":"fffffffffffffffe":"fffffffffffffffe":1 - -mbedtls_mpi_core_sub #367: 0xfffffffe - 0x1f7f7f7f7f7f7f = 0xffe080818080807f/ffe080818080807f, carry 1 -mpi_core_sub:"fffffffe":"1f7f7f7f7f7f7f":"ffe080818080807f":"ffe080818080807f":1 - -mbedtls_mpi_core_sub #368: 0xfffffffe - 0x8000000000000000 = 0x80000000fffffffe/80000000fffffffe, carry 1 -mpi_core_sub:"fffffffe":"8000000000000000":"80000000fffffffe":"80000000fffffffe":1 - -mbedtls_mpi_core_sub #369: 0xfffffffe - 0xfefefefefefefefe = 0x101010201010100/101010201010100, carry 1 -mpi_core_sub:"fffffffe":"fefefefefefefefe":"101010201010100":"101010201010100":1 - -mbedtls_mpi_core_sub #370: 0xfffffffe - 0xfffffffffffffffe = 0x100000000/100000000, carry 1 -mpi_core_sub:"fffffffe":"fffffffffffffffe":"100000000":"100000000":1 - -mbedtls_mpi_core_sub #371: 0xfffffffe - 0xffffffffffffffff = 0xffffffff/ffffffff, carry 1 -mpi_core_sub:"fffffffe":"ffffffffffffffff":"ffffffff":"ffffffff":1 - -mbedtls_mpi_core_sub #372: 0xfffffffe - 0x10000000000000000 = 0xffffffff00000000fffffffe/ffffffffffffffff00000000fffffffe, carry 1 -mpi_core_sub:"fffffffe":"10000000000000000":"ffffffff00000000fffffffe":"ffffffffffffffff00000000fffffffe":1 - -mbedtls_mpi_core_sub #373: 0xfffffffe - 0x1234567890abcdef0 = 0xfffffffedcba9877f543210e/fffffffffffffffedcba9877f543210e, carry 1 -mpi_core_sub:"fffffffe":"1234567890abcdef0":"fffffffedcba9877f543210e":"fffffffffffffffedcba9877f543210e":1 - -mbedtls_mpi_core_sub #374: 0xfffffffe - 0xfffffffffffffffffefefefefefefefe = 0x101010201010100/101010201010100, carry 1 -mpi_core_sub:"fffffffe":"fffffffffffffffffefefefefefefefe":"101010201010100":"101010201010100":1 - -mbedtls_mpi_core_sub #375: 0xfffffffe - 0xfffffffffffffffffffffffffffffffe = 0x100000000/100000000, carry 1 -mpi_core_sub:"fffffffe":"fffffffffffffffffffffffffffffffe":"100000000":"100000000":1 - -mbedtls_mpi_core_sub #376: 0xfffffffe - 0xffffffffffffffffffffffffffffffff = 0xffffffff/ffffffff, carry 1 -mpi_core_sub:"fffffffe":"ffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff":1 - -mbedtls_mpi_core_sub #377: 0xfffffffe - 0x100000000000000000000000000000000 = 0xffffffff000000000000000000000000fffffffe/ffffffffffffffff000000000000000000000000fffffffe, carry 1 -mpi_core_sub:"fffffffe":"100000000000000000000000000000000":"ffffffff000000000000000000000000fffffffe":"ffffffffffffffff000000000000000000000000fffffffe":1 - -mbedtls_mpi_core_sub #378: 0xfffffffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9877f543210e/ffffffffffffffedcba9876f543210fedcba9877f543210e, carry 1 -mpi_core_sub:"fffffffe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9877f543210e":"ffffffffffffffedcba9876f543210fedcba9877f543210e":1 - -mbedtls_mpi_core_sub #379: 0xfffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010201010100/101010201010100, carry 1 -mpi_core_sub:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010201010100":"101010201010100":1 - -mbedtls_mpi_core_sub #380: 0xfffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000000/100000000, carry 1 -mpi_core_sub:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000":"100000000":1 - -mbedtls_mpi_core_sub #381: 0xfffffffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffffffff/ffffffff, carry 1 -mpi_core_sub:"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff":1 - -mbedtls_mpi_core_sub #382: 0xfffffffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000000000000000000000000000fffffffe/ffffffffffffffff00000000000000000000000000000000000000000000000000000000fffffffe, carry 1 -mpi_core_sub:"fffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000fffffffe":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000fffffffe":1 - -mbedtls_mpi_core_sub #383: 0xfffffffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e, carry 1 -mpi_core_sub:"fffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e":1 - -mbedtls_mpi_core_sub #384: 0xfffffffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3, carry 1 -mpi_core_sub:"fffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3":1 - -mbedtls_mpi_core_sub #385: 0xffffffff - 0x0 = 0xffffffff/ffffffff, carry 0 -mpi_core_sub:"ffffffff":"0":"ffffffff":"ffffffff":0 - -mbedtls_mpi_core_sub #386: 0xffffffff - 0x1 = 0xfffffffe/fffffffe, carry 0 -mpi_core_sub:"ffffffff":"1":"fffffffe":"fffffffe":0 - -mbedtls_mpi_core_sub #387: 0xffffffff - 0x3 = 0xfffffffc/fffffffc, carry 0 -mpi_core_sub:"ffffffff":"3":"fffffffc":"fffffffc":0 - -mbedtls_mpi_core_sub #388: 0xffffffff - 0xf = 0xfffffff0/fffffff0, carry 0 -mpi_core_sub:"ffffffff":"f":"fffffff0":"fffffff0":0 - -mbedtls_mpi_core_sub #389: 0xffffffff - 0xfe = 0xffffff01/ffffff01, carry 0 -mpi_core_sub:"ffffffff":"fe":"ffffff01":"ffffff01":0 - -mbedtls_mpi_core_sub #390: 0xffffffff - 0xff = 0xffffff00/ffffff00, carry 0 -mpi_core_sub:"ffffffff":"ff":"ffffff00":"ffffff00":0 - -mbedtls_mpi_core_sub #391: 0xffffffff - 0x100 = 0xfffffeff/fffffeff, carry 0 -mpi_core_sub:"ffffffff":"100":"fffffeff":"fffffeff":0 - -mbedtls_mpi_core_sub #392: 0xffffffff - 0xff00 = 0xffff00ff/ffff00ff, carry 0 -mpi_core_sub:"ffffffff":"ff00":"ffff00ff":"ffff00ff":0 - -mbedtls_mpi_core_sub #393: 0xffffffff - 0xfffe = 0xffff0001/ffff0001, carry 0 -mpi_core_sub:"ffffffff":"fffe":"ffff0001":"ffff0001":0 - -mbedtls_mpi_core_sub #394: 0xffffffff - 0xffff = 0xffff0000/ffff0000, carry 0 -mpi_core_sub:"ffffffff":"ffff":"ffff0000":"ffff0000":0 - -mbedtls_mpi_core_sub #395: 0xffffffff - 0x10000 = 0xfffeffff/fffeffff, carry 0 -mpi_core_sub:"ffffffff":"10000":"fffeffff":"fffeffff":0 - -mbedtls_mpi_core_sub #396: 0xffffffff - 0xfffffffe = 0x1/1, carry 0 -mpi_core_sub:"ffffffff":"fffffffe":"1":"1":0 - -mbedtls_mpi_core_sub #397: 0xffffffff - 0xffffffff = 0x0/0, carry 0 -mpi_core_sub:"ffffffff":"ffffffff":"0":"0":0 - -mbedtls_mpi_core_sub #398: 0xffffffff - 0x100000000 = 0xffffffffffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"ffffffff":"100000000":"ffffffffffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #399: 0xffffffff - 0x1f7f7f7f7f7f7f = 0xffe0808180808080/ffe0808180808080, carry 1 -mpi_core_sub:"ffffffff":"1f7f7f7f7f7f7f":"ffe0808180808080":"ffe0808180808080":1 - -mbedtls_mpi_core_sub #400: 0xffffffff - 0x8000000000000000 = 0x80000000ffffffff/80000000ffffffff, carry 1 -mpi_core_sub:"ffffffff":"8000000000000000":"80000000ffffffff":"80000000ffffffff":1 - -mbedtls_mpi_core_sub #401: 0xffffffff - 0xfefefefefefefefe = 0x101010201010101/101010201010101, carry 1 -mpi_core_sub:"ffffffff":"fefefefefefefefe":"101010201010101":"101010201010101":1 - -mbedtls_mpi_core_sub #402: 0xffffffff - 0xfffffffffffffffe = 0x100000001/100000001, carry 1 -mpi_core_sub:"ffffffff":"fffffffffffffffe":"100000001":"100000001":1 - -mbedtls_mpi_core_sub #403: 0xffffffff - 0xffffffffffffffff = 0x100000000/100000000, carry 1 -mpi_core_sub:"ffffffff":"ffffffffffffffff":"100000000":"100000000":1 - -mbedtls_mpi_core_sub #404: 0xffffffff - 0x10000000000000000 = 0xffffffff00000000ffffffff/ffffffffffffffff00000000ffffffff, carry 1 -mpi_core_sub:"ffffffff":"10000000000000000":"ffffffff00000000ffffffff":"ffffffffffffffff00000000ffffffff":1 - -mbedtls_mpi_core_sub #405: 0xffffffff - 0x1234567890abcdef0 = 0xfffffffedcba9877f543210f/fffffffffffffffedcba9877f543210f, carry 1 -mpi_core_sub:"ffffffff":"1234567890abcdef0":"fffffffedcba9877f543210f":"fffffffffffffffedcba9877f543210f":1 - -mbedtls_mpi_core_sub #406: 0xffffffff - 0xfffffffffffffffffefefefefefefefe = 0x101010201010101/101010201010101, carry 1 -mpi_core_sub:"ffffffff":"fffffffffffffffffefefefefefefefe":"101010201010101":"101010201010101":1 - -mbedtls_mpi_core_sub #407: 0xffffffff - 0xfffffffffffffffffffffffffffffffe = 0x100000001/100000001, carry 1 -mpi_core_sub:"ffffffff":"fffffffffffffffffffffffffffffffe":"100000001":"100000001":1 - -mbedtls_mpi_core_sub #408: 0xffffffff - 0xffffffffffffffffffffffffffffffff = 0x100000000/100000000, carry 1 -mpi_core_sub:"ffffffff":"ffffffffffffffffffffffffffffffff":"100000000":"100000000":1 - -mbedtls_mpi_core_sub #409: 0xffffffff - 0x100000000000000000000000000000000 = 0xffffffff000000000000000000000000ffffffff/ffffffffffffffff000000000000000000000000ffffffff, carry 1 -mpi_core_sub:"ffffffff":"100000000000000000000000000000000":"ffffffff000000000000000000000000ffffffff":"ffffffffffffffff000000000000000000000000ffffffff":1 - -mbedtls_mpi_core_sub #410: 0xffffffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9877f543210f/ffffffffffffffedcba9876f543210fedcba9877f543210f, carry 1 -mpi_core_sub:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9877f543210f":"ffffffffffffffedcba9876f543210fedcba9877f543210f":1 - -mbedtls_mpi_core_sub #411: 0xffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010201010101/101010201010101, carry 1 -mpi_core_sub:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010201010101":"101010201010101":1 - -mbedtls_mpi_core_sub #412: 0xffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000001/100000001, carry 1 -mpi_core_sub:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000001":"100000001":1 - -mbedtls_mpi_core_sub #413: 0xffffffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100000000/100000000, carry 1 -mpi_core_sub:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"100000000":1 - -mbedtls_mpi_core_sub #414: 0xffffffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000000000000000000000000000ffffffff/ffffffffffffffff00000000000000000000000000000000000000000000000000000000ffffffff, carry 1 -mpi_core_sub:"ffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000ffffffff":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000ffffffff":1 - -mbedtls_mpi_core_sub #415: 0xffffffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f, carry 1 -mpi_core_sub:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f":1 - -mbedtls_mpi_core_sub #416: 0xffffffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4, carry 1 -mpi_core_sub:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4":1 - -mbedtls_mpi_core_sub #417: 0x100000000 - 0x0 = 0x100000000/100000000, carry 0 -mpi_core_sub:"100000000":"0":"100000000":"100000000":0 - -mbedtls_mpi_core_sub #418: 0x100000000 - 0x1 = 0xffffffff/ffffffff, carry 0 -mpi_core_sub:"100000000":"1":"ffffffff":"ffffffff":0 - -mbedtls_mpi_core_sub #419: 0x100000000 - 0x3 = 0xfffffffd/fffffffd, carry 0 -mpi_core_sub:"100000000":"3":"fffffffd":"fffffffd":0 - -mbedtls_mpi_core_sub #420: 0x100000000 - 0xf = 0xfffffff1/fffffff1, carry 0 -mpi_core_sub:"100000000":"f":"fffffff1":"fffffff1":0 - -mbedtls_mpi_core_sub #421: 0x100000000 - 0xfe = 0xffffff02/ffffff02, carry 0 -mpi_core_sub:"100000000":"fe":"ffffff02":"ffffff02":0 - -mbedtls_mpi_core_sub #422: 0x100000000 - 0xff = 0xffffff01/ffffff01, carry 0 -mpi_core_sub:"100000000":"ff":"ffffff01":"ffffff01":0 - -mbedtls_mpi_core_sub #423: 0x100000000 - 0x100 = 0xffffff00/ffffff00, carry 0 -mpi_core_sub:"100000000":"100":"ffffff00":"ffffff00":0 - -mbedtls_mpi_core_sub #424: 0x100000000 - 0xff00 = 0xffff0100/ffff0100, carry 0 -mpi_core_sub:"100000000":"ff00":"ffff0100":"ffff0100":0 - -mbedtls_mpi_core_sub #425: 0x100000000 - 0xfffe = 0xffff0002/ffff0002, carry 0 -mpi_core_sub:"100000000":"fffe":"ffff0002":"ffff0002":0 - -mbedtls_mpi_core_sub #426: 0x100000000 - 0xffff = 0xffff0001/ffff0001, carry 0 -mpi_core_sub:"100000000":"ffff":"ffff0001":"ffff0001":0 - -mbedtls_mpi_core_sub #427: 0x100000000 - 0x10000 = 0xffff0000/ffff0000, carry 0 -mpi_core_sub:"100000000":"10000":"ffff0000":"ffff0000":0 - -mbedtls_mpi_core_sub #428: 0x100000000 - 0xfffffffe = 0x2/2, carry 0 -mpi_core_sub:"100000000":"fffffffe":"2":"2":0 - -mbedtls_mpi_core_sub #429: 0x100000000 - 0xffffffff = 0x1/1, carry 0 -mpi_core_sub:"100000000":"ffffffff":"1":"1":0 - -mbedtls_mpi_core_sub #430: 0x100000000 - 0x100000000 = 0x0/0, carry 0 -mpi_core_sub:"100000000":"100000000":"0":"0":0 - -mbedtls_mpi_core_sub #431: 0x100000000 - 0x1f7f7f7f7f7f7f = 0xffe0808180808081/ffe0808180808081, carry 1 -mpi_core_sub:"100000000":"1f7f7f7f7f7f7f":"ffe0808180808081":"ffe0808180808081":1 - -mbedtls_mpi_core_sub #432: 0x100000000 - 0x8000000000000000 = 0x8000000100000000/8000000100000000, carry 1 -mpi_core_sub:"100000000":"8000000000000000":"8000000100000000":"8000000100000000":1 - -mbedtls_mpi_core_sub #433: 0x100000000 - 0xfefefefefefefefe = 0x101010201010102/101010201010102, carry 1 -mpi_core_sub:"100000000":"fefefefefefefefe":"101010201010102":"101010201010102":1 - -mbedtls_mpi_core_sub #434: 0x100000000 - 0xfffffffffffffffe = 0x100000002/100000002, carry 1 -mpi_core_sub:"100000000":"fffffffffffffffe":"100000002":"100000002":1 - -mbedtls_mpi_core_sub #435: 0x100000000 - 0xffffffffffffffff = 0x100000001/100000001, carry 1 -mpi_core_sub:"100000000":"ffffffffffffffff":"100000001":"100000001":1 - -mbedtls_mpi_core_sub #436: 0x100000000 - 0x10000000000000000 = 0xffffffff0000000100000000/ffffffffffffffff0000000100000000, carry 1 -mpi_core_sub:"100000000":"10000000000000000":"ffffffff0000000100000000":"ffffffffffffffff0000000100000000":1 - -mbedtls_mpi_core_sub #437: 0x100000000 - 0x1234567890abcdef0 = 0xfffffffedcba9877f5432110/fffffffffffffffedcba9877f5432110, carry 1 -mpi_core_sub:"100000000":"1234567890abcdef0":"fffffffedcba9877f5432110":"fffffffffffffffedcba9877f5432110":1 - -mbedtls_mpi_core_sub #438: 0x100000000 - 0xfffffffffffffffffefefefefefefefe = 0x101010201010102/101010201010102, carry 1 -mpi_core_sub:"100000000":"fffffffffffffffffefefefefefefefe":"101010201010102":"101010201010102":1 - -mbedtls_mpi_core_sub #439: 0x100000000 - 0xfffffffffffffffffffffffffffffffe = 0x100000002/100000002, carry 1 -mpi_core_sub:"100000000":"fffffffffffffffffffffffffffffffe":"100000002":"100000002":1 - -mbedtls_mpi_core_sub #440: 0x100000000 - 0xffffffffffffffffffffffffffffffff = 0x100000001/100000001, carry 1 -mpi_core_sub:"100000000":"ffffffffffffffffffffffffffffffff":"100000001":"100000001":1 - -mbedtls_mpi_core_sub #441: 0x100000000 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000100000000/ffffffffffffffff00000000000000000000000100000000, carry 1 -mpi_core_sub:"100000000":"100000000000000000000000000000000":"ffffffff00000000000000000000000100000000":"ffffffffffffffff00000000000000000000000100000000":1 - -mbedtls_mpi_core_sub #442: 0x100000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9877f5432110/ffffffffffffffedcba9876f543210fedcba9877f5432110, carry 1 -mpi_core_sub:"100000000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9877f5432110":"ffffffffffffffedcba9876f543210fedcba9877f5432110":1 - -mbedtls_mpi_core_sub #443: 0x100000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010201010102/101010201010102, carry 1 -mpi_core_sub:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010201010102":"101010201010102":1 - -mbedtls_mpi_core_sub #444: 0x100000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000002/100000002, carry 1 -mpi_core_sub:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000002":"100000002":1 - -mbedtls_mpi_core_sub #445: 0x100000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100000001/100000001, carry 1 -mpi_core_sub:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000001":"100000001":1 - -mbedtls_mpi_core_sub #446: 0x100000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000100000000/ffffffffffffffff0000000000000000000000000000000000000000000000000000000100000000, carry 1 -mpi_core_sub:"100000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000100000000":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000100000000":1 - -mbedtls_mpi_core_sub #447: 0x100000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110, carry 1 -mpi_core_sub:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110":1 - -mbedtls_mpi_core_sub #448: 0x100000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5, carry 1 -mpi_core_sub:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5":1 - -mbedtls_mpi_core_sub #449: 0x1f7f7f7f7f7f7f - 0x0 = 0x1f7f7f7f7f7f7f/1f7f7f7f7f7f7f, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"0":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":0 - -mbedtls_mpi_core_sub #450: 0x1f7f7f7f7f7f7f - 0x1 = 0x1f7f7f7f7f7f7e/1f7f7f7f7f7f7e, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"1":"1f7f7f7f7f7f7e":"1f7f7f7f7f7f7e":0 - -mbedtls_mpi_core_sub #451: 0x1f7f7f7f7f7f7f - 0x3 = 0x1f7f7f7f7f7f7c/1f7f7f7f7f7f7c, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"3":"1f7f7f7f7f7f7c":"1f7f7f7f7f7f7c":0 - -mbedtls_mpi_core_sub #452: 0x1f7f7f7f7f7f7f - 0xf = 0x1f7f7f7f7f7f70/1f7f7f7f7f7f70, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"f":"1f7f7f7f7f7f70":"1f7f7f7f7f7f70":0 - -mbedtls_mpi_core_sub #453: 0x1f7f7f7f7f7f7f - 0xfe = 0x1f7f7f7f7f7e81/1f7f7f7f7f7e81, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"fe":"1f7f7f7f7f7e81":"1f7f7f7f7f7e81":0 - -mbedtls_mpi_core_sub #454: 0x1f7f7f7f7f7f7f - 0xff = 0x1f7f7f7f7f7e80/1f7f7f7f7f7e80, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"ff":"1f7f7f7f7f7e80":"1f7f7f7f7f7e80":0 - -mbedtls_mpi_core_sub #455: 0x1f7f7f7f7f7f7f - 0x100 = 0x1f7f7f7f7f7e7f/1f7f7f7f7f7e7f, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"100":"1f7f7f7f7f7e7f":"1f7f7f7f7f7e7f":0 - -mbedtls_mpi_core_sub #456: 0x1f7f7f7f7f7f7f - 0xff00 = 0x1f7f7f7f7e807f/1f7f7f7f7e807f, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"ff00":"1f7f7f7f7e807f":"1f7f7f7f7e807f":0 - -mbedtls_mpi_core_sub #457: 0x1f7f7f7f7f7f7f - 0xfffe = 0x1f7f7f7f7e7f81/1f7f7f7f7e7f81, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"fffe":"1f7f7f7f7e7f81":"1f7f7f7f7e7f81":0 - -mbedtls_mpi_core_sub #458: 0x1f7f7f7f7f7f7f - 0xffff = 0x1f7f7f7f7e7f80/1f7f7f7f7e7f80, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"ffff":"1f7f7f7f7e7f80":"1f7f7f7f7e7f80":0 - -mbedtls_mpi_core_sub #459: 0x1f7f7f7f7f7f7f - 0x10000 = 0x1f7f7f7f7e7f7f/1f7f7f7f7e7f7f, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"10000":"1f7f7f7f7e7f7f":"1f7f7f7f7e7f7f":0 - -mbedtls_mpi_core_sub #460: 0x1f7f7f7f7f7f7f - 0xfffffffe = 0x1f7f7e7f7f7f81/1f7f7e7f7f7f81, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffe":"1f7f7e7f7f7f81":"1f7f7e7f7f7f81":0 - -mbedtls_mpi_core_sub #461: 0x1f7f7f7f7f7f7f - 0xffffffff = 0x1f7f7e7f7f7f80/1f7f7e7f7f7f80, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffff":"1f7f7e7f7f7f80":"1f7f7e7f7f7f80":0 - -mbedtls_mpi_core_sub #462: 0x1f7f7f7f7f7f7f - 0x100000000 = 0x1f7f7e7f7f7f7f/1f7f7e7f7f7f7f, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"100000000":"1f7f7e7f7f7f7f":"1f7f7e7f7f7f7f":0 - -mbedtls_mpi_core_sub #463: 0x1f7f7f7f7f7f7f - 0x1f7f7f7f7f7f7f = 0x0/0, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":"0":"0":0 - -mbedtls_mpi_core_sub #464: 0x1f7f7f7f7f7f7f - 0x8000000000000000 = 0x801f7f7f7f7f7f7f/801f7f7f7f7f7f7f, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"8000000000000000":"801f7f7f7f7f7f7f":"801f7f7f7f7f7f7f":1 - -mbedtls_mpi_core_sub #465: 0x1f7f7f7f7f7f7f - 0xfefefefefefefefe = 0x120808080808081/120808080808081, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"fefefefefefefefe":"120808080808081":"120808080808081":1 - -mbedtls_mpi_core_sub #466: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffe = 0x1f7f7f7f7f7f81/1f7f7f7f7f7f81, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffe":"1f7f7f7f7f7f81":"1f7f7f7f7f7f81":1 - -mbedtls_mpi_core_sub #467: 0x1f7f7f7f7f7f7f - 0xffffffffffffffff = 0x1f7f7f7f7f7f80/1f7f7f7f7f7f80, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffffffffffff":"1f7f7f7f7f7f80":"1f7f7f7f7f7f80":1 - -mbedtls_mpi_core_sub #468: 0x1f7f7f7f7f7f7f - 0x10000000000000000 = 0xffffffff001f7f7f7f7f7f7f/ffffffffffffffff001f7f7f7f7f7f7f, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"10000000000000000":"ffffffff001f7f7f7f7f7f7f":"ffffffffffffffff001f7f7f7f7f7f7f":1 - -mbedtls_mpi_core_sub #469: 0x1f7f7f7f7f7f7f - 0x1234567890abcdef0 = 0xfffffffedcda17f674c2a08f/fffffffffffffffedcda17f674c2a08f, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"1234567890abcdef0":"fffffffedcda17f674c2a08f":"fffffffffffffffedcda17f674c2a08f":1 - -mbedtls_mpi_core_sub #470: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffffefefefefefefefe = 0x120808080808081/120808080808081, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffefefefefefefefe":"120808080808081":"120808080808081":1 - -mbedtls_mpi_core_sub #471: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffffffffffffffffffe = 0x1f7f7f7f7f7f81/1f7f7f7f7f7f81, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f81":"1f7f7f7f7f7f81":1 - -mbedtls_mpi_core_sub #472: 0x1f7f7f7f7f7f7f - 0xffffffffffffffffffffffffffffffff = 0x1f7f7f7f7f7f80/1f7f7f7f7f7f80, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f80":"1f7f7f7f7f7f80":1 - -mbedtls_mpi_core_sub #473: 0x1f7f7f7f7f7f7f - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000001f7f7f7f7f7f7f/ffffffffffffffff0000000000000000001f7f7f7f7f7f7f, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"100000000000000000000000000000000":"ffffffff0000000000000000001f7f7f7f7f7f7f":"ffffffffffffffff0000000000000000001f7f7f7f7f7f7f":1 - -mbedtls_mpi_core_sub #474: 0x1f7f7f7f7f7f7f - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcda17f674c2a08f/ffffffffffffffedcba9876f543210fedcda17f674c2a08f, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcda17f674c2a08f":"ffffffffffffffedcba9876f543210fedcda17f674c2a08f":1 - -mbedtls_mpi_core_sub #475: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x120808080808081/120808080808081, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"120808080808081":"120808080808081":1 - -mbedtls_mpi_core_sub #476: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1f7f7f7f7f7f81/1f7f7f7f7f7f81, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f81":"1f7f7f7f7f7f81":1 - -mbedtls_mpi_core_sub #477: 0x1f7f7f7f7f7f7f - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1f7f7f7f7f7f80/1f7f7f7f7f7f80, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f80":"1f7f7f7f7f7f80":1 - -mbedtls_mpi_core_sub #478: 0x1f7f7f7f7f7f7f - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f/ffffffffffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":"ffffffffffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":1 - -mbedtls_mpi_core_sub #479: 0x1f7f7f7f7f7f7f - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f":1 - -mbedtls_mpi_core_sub #480: 0x1f7f7f7f7f7f7f - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54":1 - -mbedtls_mpi_core_sub #481: 0x8000000000000000 - 0x0 = 0x8000000000000000/8000000000000000, carry 0 -mpi_core_sub:"8000000000000000":"0":"8000000000000000":"8000000000000000":0 - -mbedtls_mpi_core_sub #482: 0x8000000000000000 - 0x1 = 0x7fffffffffffffff/7fffffffffffffff, carry 0 -mpi_core_sub:"8000000000000000":"1":"7fffffffffffffff":"7fffffffffffffff":0 - -mbedtls_mpi_core_sub #483: 0x8000000000000000 - 0x3 = 0x7ffffffffffffffd/7ffffffffffffffd, carry 0 -mpi_core_sub:"8000000000000000":"3":"7ffffffffffffffd":"7ffffffffffffffd":0 - -mbedtls_mpi_core_sub #484: 0x8000000000000000 - 0xf = 0x7ffffffffffffff1/7ffffffffffffff1, carry 0 -mpi_core_sub:"8000000000000000":"f":"7ffffffffffffff1":"7ffffffffffffff1":0 - -mbedtls_mpi_core_sub #485: 0x8000000000000000 - 0xfe = 0x7fffffffffffff02/7fffffffffffff02, carry 0 -mpi_core_sub:"8000000000000000":"fe":"7fffffffffffff02":"7fffffffffffff02":0 - -mbedtls_mpi_core_sub #486: 0x8000000000000000 - 0xff = 0x7fffffffffffff01/7fffffffffffff01, carry 0 -mpi_core_sub:"8000000000000000":"ff":"7fffffffffffff01":"7fffffffffffff01":0 - -mbedtls_mpi_core_sub #487: 0x8000000000000000 - 0x100 = 0x7fffffffffffff00/7fffffffffffff00, carry 0 -mpi_core_sub:"8000000000000000":"100":"7fffffffffffff00":"7fffffffffffff00":0 - -mbedtls_mpi_core_sub #488: 0x8000000000000000 - 0xff00 = 0x7fffffffffff0100/7fffffffffff0100, carry 0 -mpi_core_sub:"8000000000000000":"ff00":"7fffffffffff0100":"7fffffffffff0100":0 - -mbedtls_mpi_core_sub #489: 0x8000000000000000 - 0xfffe = 0x7fffffffffff0002/7fffffffffff0002, carry 0 -mpi_core_sub:"8000000000000000":"fffe":"7fffffffffff0002":"7fffffffffff0002":0 - -mbedtls_mpi_core_sub #490: 0x8000000000000000 - 0xffff = 0x7fffffffffff0001/7fffffffffff0001, carry 0 -mpi_core_sub:"8000000000000000":"ffff":"7fffffffffff0001":"7fffffffffff0001":0 - -mbedtls_mpi_core_sub #491: 0x8000000000000000 - 0x10000 = 0x7fffffffffff0000/7fffffffffff0000, carry 0 -mpi_core_sub:"8000000000000000":"10000":"7fffffffffff0000":"7fffffffffff0000":0 - -mbedtls_mpi_core_sub #492: 0x8000000000000000 - 0xfffffffe = 0x7fffffff00000002/7fffffff00000002, carry 0 -mpi_core_sub:"8000000000000000":"fffffffe":"7fffffff00000002":"7fffffff00000002":0 - -mbedtls_mpi_core_sub #493: 0x8000000000000000 - 0xffffffff = 0x7fffffff00000001/7fffffff00000001, carry 0 -mpi_core_sub:"8000000000000000":"ffffffff":"7fffffff00000001":"7fffffff00000001":0 - -mbedtls_mpi_core_sub #494: 0x8000000000000000 - 0x100000000 = 0x7fffffff00000000/7fffffff00000000, carry 0 -mpi_core_sub:"8000000000000000":"100000000":"7fffffff00000000":"7fffffff00000000":0 - -mbedtls_mpi_core_sub #495: 0x8000000000000000 - 0x1f7f7f7f7f7f7f = 0x7fe0808080808081/7fe0808080808081, carry 0 -mpi_core_sub:"8000000000000000":"1f7f7f7f7f7f7f":"7fe0808080808081":"7fe0808080808081":0 - -mbedtls_mpi_core_sub #496: 0x8000000000000000 - 0x8000000000000000 = 0x0/0, carry 0 -mpi_core_sub:"8000000000000000":"8000000000000000":"0":"0":0 - -mbedtls_mpi_core_sub #497: 0x8000000000000000 - 0xfefefefefefefefe = 0x8101010101010102/8101010101010102, carry 1 -mpi_core_sub:"8000000000000000":"fefefefefefefefe":"8101010101010102":"8101010101010102":1 - -mbedtls_mpi_core_sub #498: 0x8000000000000000 - 0xfffffffffffffffe = 0x8000000000000002/8000000000000002, carry 1 -mpi_core_sub:"8000000000000000":"fffffffffffffffe":"8000000000000002":"8000000000000002":1 - -mbedtls_mpi_core_sub #499: 0x8000000000000000 - 0xffffffffffffffff = 0x8000000000000001/8000000000000001, carry 1 -mpi_core_sub:"8000000000000000":"ffffffffffffffff":"8000000000000001":"8000000000000001":1 - -mbedtls_mpi_core_sub #500: 0x8000000000000000 - 0x10000000000000000 = 0xffffffff8000000000000000/ffffffffffffffff8000000000000000, carry 1 -mpi_core_sub:"8000000000000000":"10000000000000000":"ffffffff8000000000000000":"ffffffffffffffff8000000000000000":1 - -mbedtls_mpi_core_sub #501: 0x8000000000000000 - 0x1234567890abcdef0 = 0xffffffff5cba9876f5432110/ffffffffffffffff5cba9876f5432110, carry 1 -mpi_core_sub:"8000000000000000":"1234567890abcdef0":"ffffffff5cba9876f5432110":"ffffffffffffffff5cba9876f5432110":1 - -mbedtls_mpi_core_sub #502: 0x8000000000000000 - 0xfffffffffffffffffefefefefefefefe = 0x8101010101010102/8101010101010102, carry 1 -mpi_core_sub:"8000000000000000":"fffffffffffffffffefefefefefefefe":"8101010101010102":"8101010101010102":1 - -mbedtls_mpi_core_sub #503: 0x8000000000000000 - 0xfffffffffffffffffffffffffffffffe = 0x8000000000000002/8000000000000002, carry 1 -mpi_core_sub:"8000000000000000":"fffffffffffffffffffffffffffffffe":"8000000000000002":"8000000000000002":1 - -mbedtls_mpi_core_sub #504: 0x8000000000000000 - 0xffffffffffffffffffffffffffffffff = 0x8000000000000001/8000000000000001, carry 1 -mpi_core_sub:"8000000000000000":"ffffffffffffffffffffffffffffffff":"8000000000000001":"8000000000000001":1 - -mbedtls_mpi_core_sub #505: 0x8000000000000000 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000008000000000000000/ffffffffffffffff00000000000000008000000000000000, carry 1 -mpi_core_sub:"8000000000000000":"100000000000000000000000000000000":"ffffffff00000000000000008000000000000000":"ffffffffffffffff00000000000000008000000000000000":1 - -mbedtls_mpi_core_sub #506: 0x8000000000000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ff5cba9876f5432110/ffffffffffffffedcba9876f543210ff5cba9876f5432110, carry 1 -mpi_core_sub:"8000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ff5cba9876f5432110":"ffffffffffffffedcba9876f543210ff5cba9876f5432110":1 - -mbedtls_mpi_core_sub #507: 0x8000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x8101010101010102/8101010101010102, carry 1 -mpi_core_sub:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"8101010101010102":"8101010101010102":1 - -mbedtls_mpi_core_sub #508: 0x8000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x8000000000000002/8000000000000002, carry 1 -mpi_core_sub:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"8000000000000002":"8000000000000002":1 - -mbedtls_mpi_core_sub #509: 0x8000000000000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x8000000000000001/8000000000000001, carry 1 -mpi_core_sub:"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000001":"8000000000000001":1 - -mbedtls_mpi_core_sub #510: 0x8000000000000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000008000000000000000/ffffffffffffffff0000000000000000000000000000000000000000000000008000000000000000, carry 1 -mpi_core_sub:"8000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000008000000000000000":"ffffffffffffffff0000000000000000000000000000000000000000000000008000000000000000":1 - -mbedtls_mpi_core_sub #511: 0x8000000000000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110, carry 1 -mpi_core_sub:"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110":1 - -mbedtls_mpi_core_sub #512: 0x8000000000000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5, carry 1 -mpi_core_sub:"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5":1 - -mbedtls_mpi_core_sub #513: 0xfefefefefefefefe - 0x0 = 0xfefefefefefefefe/fefefefefefefefe, carry 0 -mpi_core_sub:"fefefefefefefefe":"0":"fefefefefefefefe":"fefefefefefefefe":0 - -mbedtls_mpi_core_sub #514: 0xfefefefefefefefe - 0x1 = 0xfefefefefefefefd/fefefefefefefefd, carry 0 -mpi_core_sub:"fefefefefefefefe":"1":"fefefefefefefefd":"fefefefefefefefd":0 - -mbedtls_mpi_core_sub #515: 0xfefefefefefefefe - 0x3 = 0xfefefefefefefefb/fefefefefefefefb, carry 0 -mpi_core_sub:"fefefefefefefefe":"3":"fefefefefefefefb":"fefefefefefefefb":0 - -mbedtls_mpi_core_sub #516: 0xfefefefefefefefe - 0xf = 0xfefefefefefefeef/fefefefefefefeef, carry 0 -mpi_core_sub:"fefefefefefefefe":"f":"fefefefefefefeef":"fefefefefefefeef":0 - -mbedtls_mpi_core_sub #517: 0xfefefefefefefefe - 0xfe = 0xfefefefefefefe00/fefefefefefefe00, carry 0 -mpi_core_sub:"fefefefefefefefe":"fe":"fefefefefefefe00":"fefefefefefefe00":0 - -mbedtls_mpi_core_sub #518: 0xfefefefefefefefe - 0xff = 0xfefefefefefefdff/fefefefefefefdff, carry 0 -mpi_core_sub:"fefefefefefefefe":"ff":"fefefefefefefdff":"fefefefefefefdff":0 - -mbedtls_mpi_core_sub #519: 0xfefefefefefefefe - 0x100 = 0xfefefefefefefdfe/fefefefefefefdfe, carry 0 -mpi_core_sub:"fefefefefefefefe":"100":"fefefefefefefdfe":"fefefefefefefdfe":0 - -mbedtls_mpi_core_sub #520: 0xfefefefefefefefe - 0xff00 = 0xfefefefefefdfffe/fefefefefefdfffe, carry 0 -mpi_core_sub:"fefefefefefefefe":"ff00":"fefefefefefdfffe":"fefefefefefdfffe":0 - -mbedtls_mpi_core_sub #521: 0xfefefefefefefefe - 0xfffe = 0xfefefefefefdff00/fefefefefefdff00, carry 0 -mpi_core_sub:"fefefefefefefefe":"fffe":"fefefefefefdff00":"fefefefefefdff00":0 - -mbedtls_mpi_core_sub #522: 0xfefefefefefefefe - 0xffff = 0xfefefefefefdfeff/fefefefefefdfeff, carry 0 -mpi_core_sub:"fefefefefefefefe":"ffff":"fefefefefefdfeff":"fefefefefefdfeff":0 - -mbedtls_mpi_core_sub #523: 0xfefefefefefefefe - 0x10000 = 0xfefefefefefdfefe/fefefefefefdfefe, carry 0 -mpi_core_sub:"fefefefefefefefe":"10000":"fefefefefefdfefe":"fefefefefefdfefe":0 - -mbedtls_mpi_core_sub #524: 0xfefefefefefefefe - 0xfffffffe = 0xfefefefdfefeff00/fefefefdfefeff00, carry 0 -mpi_core_sub:"fefefefefefefefe":"fffffffe":"fefefefdfefeff00":"fefefefdfefeff00":0 - -mbedtls_mpi_core_sub #525: 0xfefefefefefefefe - 0xffffffff = 0xfefefefdfefefeff/fefefefdfefefeff, carry 0 -mpi_core_sub:"fefefefefefefefe":"ffffffff":"fefefefdfefefeff":"fefefefdfefefeff":0 - -mbedtls_mpi_core_sub #526: 0xfefefefefefefefe - 0x100000000 = 0xfefefefdfefefefe/fefefefdfefefefe, carry 0 -mpi_core_sub:"fefefefefefefefe":"100000000":"fefefefdfefefefe":"fefefefdfefefefe":0 - -mbedtls_mpi_core_sub #527: 0xfefefefefefefefe - 0x1f7f7f7f7f7f7f = 0xfedf7f7f7f7f7f7f/fedf7f7f7f7f7f7f, carry 0 -mpi_core_sub:"fefefefefefefefe":"1f7f7f7f7f7f7f":"fedf7f7f7f7f7f7f":"fedf7f7f7f7f7f7f":0 - -mbedtls_mpi_core_sub #528: 0xfefefefefefefefe - 0x8000000000000000 = 0x7efefefefefefefe/7efefefefefefefe, carry 0 -mpi_core_sub:"fefefefefefefefe":"8000000000000000":"7efefefefefefefe":"7efefefefefefefe":0 - -mbedtls_mpi_core_sub #529: 0xfefefefefefefefe - 0xfefefefefefefefe = 0x0/0, carry 0 -mpi_core_sub:"fefefefefefefefe":"fefefefefefefefe":"0":"0":0 - -mbedtls_mpi_core_sub #530: 0xfefefefefefefefe - 0xfffffffffffffffe = 0xfefefefefefeff00/fefefefefefeff00, carry 1 -mpi_core_sub:"fefefefefefefefe":"fffffffffffffffe":"fefefefefefeff00":"fefefefefefeff00":1 - -mbedtls_mpi_core_sub #531: 0xfefefefefefefefe - 0xffffffffffffffff = 0xfefefefefefefeff/fefefefefefefeff, carry 1 -mpi_core_sub:"fefefefefefefefe":"ffffffffffffffff":"fefefefefefefeff":"fefefefefefefeff":1 - -mbedtls_mpi_core_sub #532: 0xfefefefefefefefe - 0x10000000000000000 = 0xfffffffffefefefefefefefe/fffffffffffffffffefefefefefefefe, carry 1 -mpi_core_sub:"fefefefefefefefe":"10000000000000000":"fffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":1 - -mbedtls_mpi_core_sub #533: 0xfefefefefefefefe - 0x1234567890abcdef0 = 0xffffffffdbb99775f442200e/ffffffffffffffffdbb99775f442200e, carry 1 -mpi_core_sub:"fefefefefefefefe":"1234567890abcdef0":"ffffffffdbb99775f442200e":"ffffffffffffffffdbb99775f442200e":1 - -mbedtls_mpi_core_sub #534: 0xfefefefefefefefe - 0xfffffffffffffffffefefefefefefefe = 0x10000000000000000/10000000000000000, carry 1 -mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffefefefefefefefe":"10000000000000000":"10000000000000000":1 - -mbedtls_mpi_core_sub #535: 0xfefefefefefefefe - 0xfffffffffffffffffffffffffffffffe = 0xfefefefefefeff00/fefefefefefeff00, carry 1 -mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fefefefefefeff00":"fefefefefefeff00":1 - -mbedtls_mpi_core_sub #536: 0xfefefefefefefefe - 0xffffffffffffffffffffffffffffffff = 0xfefefefefefefeff/fefefefefefefeff, carry 1 -mpi_core_sub:"fefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fefefefefefefeff":"fefefefefefefeff":1 - -mbedtls_mpi_core_sub #537: 0xfefefefefefefefe - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000fefefefefefefefe/ffffffffffffffff0000000000000000fefefefefefefefe, carry 1 -mpi_core_sub:"fefefefefefefefe":"100000000000000000000000000000000":"ffffffff0000000000000000fefefefefefefefe":"ffffffffffffffff0000000000000000fefefefefefefefe":1 - -mbedtls_mpi_core_sub #538: 0xfefefefefefefefe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ffdbb99775f442200e/ffffffffffffffedcba9876f543210ffdbb99775f442200e, carry 1 -mpi_core_sub:"fefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdbb99775f442200e":"ffffffffffffffedcba9876f543210ffdbb99775f442200e":1 - -mbedtls_mpi_core_sub #539: 0xfefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x10000000000000000/10000000000000000, carry 1 -mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000":"10000000000000000":1 - -mbedtls_mpi_core_sub #540: 0xfefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0xfefefefefefeff00/fefefefefefeff00, carry 1 -mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefefefefefeff00":"fefefefefefeff00":1 - -mbedtls_mpi_core_sub #541: 0xfefefefefefefefe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xfefefefefefefeff/fefefefefefefeff, carry 1 -mpi_core_sub:"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fefefefefefefeff":"fefefefefefefeff":1 - -mbedtls_mpi_core_sub #542: 0xfefefefefefefefe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000fefefefefefefefe/ffffffffffffffff000000000000000000000000000000000000000000000000fefefefefefefefe, carry 1 -mpi_core_sub:"fefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000fefefefefefefefe":"ffffffffffffffff000000000000000000000000000000000000000000000000fefefefefefefefe":1 - -mbedtls_mpi_core_sub #543: 0xfefefefefefefefe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e, carry 1 -mpi_core_sub:"fefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e":1 - -mbedtls_mpi_core_sub #544: 0xfefefefefefefefe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3, carry 1 -mpi_core_sub:"fefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3":1 - -mbedtls_mpi_core_sub #545: 0xfffffffffffffffe - 0x0 = 0xfffffffffffffffe/fffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffe":"0":"fffffffffffffffe":"fffffffffffffffe":0 - -mbedtls_mpi_core_sub #546: 0xfffffffffffffffe - 0x1 = 0xfffffffffffffffd/fffffffffffffffd, carry 0 -mpi_core_sub:"fffffffffffffffe":"1":"fffffffffffffffd":"fffffffffffffffd":0 - -mbedtls_mpi_core_sub #547: 0xfffffffffffffffe - 0x3 = 0xfffffffffffffffb/fffffffffffffffb, carry 0 -mpi_core_sub:"fffffffffffffffe":"3":"fffffffffffffffb":"fffffffffffffffb":0 - -mbedtls_mpi_core_sub #548: 0xfffffffffffffffe - 0xf = 0xffffffffffffffef/ffffffffffffffef, carry 0 -mpi_core_sub:"fffffffffffffffe":"f":"ffffffffffffffef":"ffffffffffffffef":0 - -mbedtls_mpi_core_sub #549: 0xfffffffffffffffe - 0xfe = 0xffffffffffffff00/ffffffffffffff00, carry 0 -mpi_core_sub:"fffffffffffffffe":"fe":"ffffffffffffff00":"ffffffffffffff00":0 - -mbedtls_mpi_core_sub #550: 0xfffffffffffffffe - 0xff = 0xfffffffffffffeff/fffffffffffffeff, carry 0 -mpi_core_sub:"fffffffffffffffe":"ff":"fffffffffffffeff":"fffffffffffffeff":0 - -mbedtls_mpi_core_sub #551: 0xfffffffffffffffe - 0x100 = 0xfffffffffffffefe/fffffffffffffefe, carry 0 -mpi_core_sub:"fffffffffffffffe":"100":"fffffffffffffefe":"fffffffffffffefe":0 - -mbedtls_mpi_core_sub #552: 0xfffffffffffffffe - 0xff00 = 0xffffffffffff00fe/ffffffffffff00fe, carry 0 -mpi_core_sub:"fffffffffffffffe":"ff00":"ffffffffffff00fe":"ffffffffffff00fe":0 - -mbedtls_mpi_core_sub #553: 0xfffffffffffffffe - 0xfffe = 0xffffffffffff0000/ffffffffffff0000, carry 0 -mpi_core_sub:"fffffffffffffffe":"fffe":"ffffffffffff0000":"ffffffffffff0000":0 - -mbedtls_mpi_core_sub #554: 0xfffffffffffffffe - 0xffff = 0xfffffffffffeffff/fffffffffffeffff, carry 0 -mpi_core_sub:"fffffffffffffffe":"ffff":"fffffffffffeffff":"fffffffffffeffff":0 - -mbedtls_mpi_core_sub #555: 0xfffffffffffffffe - 0x10000 = 0xfffffffffffefffe/fffffffffffefffe, carry 0 -mpi_core_sub:"fffffffffffffffe":"10000":"fffffffffffefffe":"fffffffffffefffe":0 - -mbedtls_mpi_core_sub #556: 0xfffffffffffffffe - 0xfffffffe = 0xffffffff00000000/ffffffff00000000, carry 0 -mpi_core_sub:"fffffffffffffffe":"fffffffe":"ffffffff00000000":"ffffffff00000000":0 - -mbedtls_mpi_core_sub #557: 0xfffffffffffffffe - 0xffffffff = 0xfffffffeffffffff/fffffffeffffffff, carry 0 -mpi_core_sub:"fffffffffffffffe":"ffffffff":"fffffffeffffffff":"fffffffeffffffff":0 - -mbedtls_mpi_core_sub #558: 0xfffffffffffffffe - 0x100000000 = 0xfffffffefffffffe/fffffffefffffffe, carry 0 -mpi_core_sub:"fffffffffffffffe":"100000000":"fffffffefffffffe":"fffffffefffffffe":0 - -mbedtls_mpi_core_sub #559: 0xfffffffffffffffe - 0x1f7f7f7f7f7f7f = 0xffe080808080807f/ffe080808080807f, carry 0 -mpi_core_sub:"fffffffffffffffe":"1f7f7f7f7f7f7f":"ffe080808080807f":"ffe080808080807f":0 - -mbedtls_mpi_core_sub #560: 0xfffffffffffffffe - 0x8000000000000000 = 0x7ffffffffffffffe/7ffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffe":"8000000000000000":"7ffffffffffffffe":"7ffffffffffffffe":0 - -mbedtls_mpi_core_sub #561: 0xfffffffffffffffe - 0xfefefefefefefefe = 0x101010101010100/101010101010100, carry 0 -mpi_core_sub:"fffffffffffffffe":"fefefefefefefefe":"101010101010100":"101010101010100":0 - -mbedtls_mpi_core_sub #562: 0xfffffffffffffffe - 0xfffffffffffffffe = 0x0/0, carry 0 -mpi_core_sub:"fffffffffffffffe":"fffffffffffffffe":"0":"0":0 - -mbedtls_mpi_core_sub #563: 0xfffffffffffffffe - 0xffffffffffffffff = 0xffffffffffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"fffffffffffffffe":"ffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #564: 0xfffffffffffffffe - 0x10000000000000000 = 0xfffffffffffffffffffffffe/fffffffffffffffffffffffffffffffe, carry 1 -mpi_core_sub:"fffffffffffffffe":"10000000000000000":"fffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":1 - -mbedtls_mpi_core_sub #565: 0xfffffffffffffffe - 0x1234567890abcdef0 = 0xffffffffdcba9876f543210e/ffffffffffffffffdcba9876f543210e, carry 1 -mpi_core_sub:"fffffffffffffffe":"1234567890abcdef0":"ffffffffdcba9876f543210e":"ffffffffffffffffdcba9876f543210e":1 - -mbedtls_mpi_core_sub #566: 0xfffffffffffffffe - 0xfffffffffffffffffefefefefefefefe = 0x10101010101010100/10101010101010100, carry 1 -mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffefefefefefefefe":"10101010101010100":"10101010101010100":1 - -mbedtls_mpi_core_sub #567: 0xfffffffffffffffe - 0xfffffffffffffffffffffffffffffffe = 0x10000000000000000/10000000000000000, carry 1 -mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffffffffffffffffe":"10000000000000000":"10000000000000000":1 - -mbedtls_mpi_core_sub #568: 0xfffffffffffffffe - 0xffffffffffffffffffffffffffffffff = 0xffffffffffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"fffffffffffffffe":"ffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #569: 0xfffffffffffffffe - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000fffffffffffffffe/ffffffffffffffff0000000000000000fffffffffffffffe, carry 1 -mpi_core_sub:"fffffffffffffffe":"100000000000000000000000000000000":"ffffffff0000000000000000fffffffffffffffe":"ffffffffffffffff0000000000000000fffffffffffffffe":1 - -mbedtls_mpi_core_sub #570: 0xfffffffffffffffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ffdcba9876f543210e/ffffffffffffffedcba9876f543210ffdcba9876f543210e, carry 1 -mpi_core_sub:"fffffffffffffffe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdcba9876f543210e":"ffffffffffffffedcba9876f543210ffdcba9876f543210e":1 - -mbedtls_mpi_core_sub #571: 0xfffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x10101010101010100/10101010101010100, carry 1 -mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10101010101010100":"10101010101010100":1 - -mbedtls_mpi_core_sub #572: 0xfffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10000000000000000/10000000000000000, carry 1 -mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000":"10000000000000000":1 - -mbedtls_mpi_core_sub #573: 0xfffffffffffffffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffffffffffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #574: 0xfffffffffffffffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000fffffffffffffffe/ffffffffffffffff000000000000000000000000000000000000000000000000fffffffffffffffe, carry 1 -mpi_core_sub:"fffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000fffffffffffffffe":"ffffffffffffffff000000000000000000000000000000000000000000000000fffffffffffffffe":1 - -mbedtls_mpi_core_sub #575: 0xfffffffffffffffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e, carry 1 -mpi_core_sub:"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e":1 - -mbedtls_mpi_core_sub #576: 0xfffffffffffffffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3, carry 1 -mpi_core_sub:"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3":1 - -mbedtls_mpi_core_sub #577: 0xffffffffffffffff - 0x0 = 0xffffffffffffffff/ffffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffff":"0":"ffffffffffffffff":"ffffffffffffffff":0 - -mbedtls_mpi_core_sub #578: 0xffffffffffffffff - 0x1 = 0xfffffffffffffffe/fffffffffffffffe, carry 0 -mpi_core_sub:"ffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffe":0 - -mbedtls_mpi_core_sub #579: 0xffffffffffffffff - 0x3 = 0xfffffffffffffffc/fffffffffffffffc, carry 0 -mpi_core_sub:"ffffffffffffffff":"3":"fffffffffffffffc":"fffffffffffffffc":0 - -mbedtls_mpi_core_sub #580: 0xffffffffffffffff - 0xf = 0xfffffffffffffff0/fffffffffffffff0, carry 0 -mpi_core_sub:"ffffffffffffffff":"f":"fffffffffffffff0":"fffffffffffffff0":0 - -mbedtls_mpi_core_sub #581: 0xffffffffffffffff - 0xfe = 0xffffffffffffff01/ffffffffffffff01, carry 0 -mpi_core_sub:"ffffffffffffffff":"fe":"ffffffffffffff01":"ffffffffffffff01":0 - -mbedtls_mpi_core_sub #582: 0xffffffffffffffff - 0xff = 0xffffffffffffff00/ffffffffffffff00, carry 0 -mpi_core_sub:"ffffffffffffffff":"ff":"ffffffffffffff00":"ffffffffffffff00":0 - -mbedtls_mpi_core_sub #583: 0xffffffffffffffff - 0x100 = 0xfffffffffffffeff/fffffffffffffeff, carry 0 -mpi_core_sub:"ffffffffffffffff":"100":"fffffffffffffeff":"fffffffffffffeff":0 - -mbedtls_mpi_core_sub #584: 0xffffffffffffffff - 0xff00 = 0xffffffffffff00ff/ffffffffffff00ff, carry 0 -mpi_core_sub:"ffffffffffffffff":"ff00":"ffffffffffff00ff":"ffffffffffff00ff":0 - -mbedtls_mpi_core_sub #585: 0xffffffffffffffff - 0xfffe = 0xffffffffffff0001/ffffffffffff0001, carry 0 -mpi_core_sub:"ffffffffffffffff":"fffe":"ffffffffffff0001":"ffffffffffff0001":0 - -mbedtls_mpi_core_sub #586: 0xffffffffffffffff - 0xffff = 0xffffffffffff0000/ffffffffffff0000, carry 0 -mpi_core_sub:"ffffffffffffffff":"ffff":"ffffffffffff0000":"ffffffffffff0000":0 - -mbedtls_mpi_core_sub #587: 0xffffffffffffffff - 0x10000 = 0xfffffffffffeffff/fffffffffffeffff, carry 0 -mpi_core_sub:"ffffffffffffffff":"10000":"fffffffffffeffff":"fffffffffffeffff":0 - -mbedtls_mpi_core_sub #588: 0xffffffffffffffff - 0xfffffffe = 0xffffffff00000001/ffffffff00000001, carry 0 -mpi_core_sub:"ffffffffffffffff":"fffffffe":"ffffffff00000001":"ffffffff00000001":0 - -mbedtls_mpi_core_sub #589: 0xffffffffffffffff - 0xffffffff = 0xffffffff00000000/ffffffff00000000, carry 0 -mpi_core_sub:"ffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff00000000":0 - -mbedtls_mpi_core_sub #590: 0xffffffffffffffff - 0x100000000 = 0xfffffffeffffffff/fffffffeffffffff, carry 0 -mpi_core_sub:"ffffffffffffffff":"100000000":"fffffffeffffffff":"fffffffeffffffff":0 - -mbedtls_mpi_core_sub #591: 0xffffffffffffffff - 0x1f7f7f7f7f7f7f = 0xffe0808080808080/ffe0808080808080, carry 0 -mpi_core_sub:"ffffffffffffffff":"1f7f7f7f7f7f7f":"ffe0808080808080":"ffe0808080808080":0 - -mbedtls_mpi_core_sub #592: 0xffffffffffffffff - 0x8000000000000000 = 0x7fffffffffffffff/7fffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffff":"8000000000000000":"7fffffffffffffff":"7fffffffffffffff":0 - -mbedtls_mpi_core_sub #593: 0xffffffffffffffff - 0xfefefefefefefefe = 0x101010101010101/101010101010101, carry 0 -mpi_core_sub:"ffffffffffffffff":"fefefefefefefefe":"101010101010101":"101010101010101":0 - -mbedtls_mpi_core_sub #594: 0xffffffffffffffff - 0xfffffffffffffffe = 0x1/1, carry 0 -mpi_core_sub:"ffffffffffffffff":"fffffffffffffffe":"1":"1":0 - -mbedtls_mpi_core_sub #595: 0xffffffffffffffff - 0xffffffffffffffff = 0x0/0, carry 0 -mpi_core_sub:"ffffffffffffffff":"ffffffffffffffff":"0":"0":0 - -mbedtls_mpi_core_sub #596: 0xffffffffffffffff - 0x10000000000000000 = 0xffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 1 -mpi_core_sub:"ffffffffffffffff":"10000000000000000":"ffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1 - -mbedtls_mpi_core_sub #597: 0xffffffffffffffff - 0x1234567890abcdef0 = 0xffffffffdcba9876f543210f/ffffffffffffffffdcba9876f543210f, carry 1 -mpi_core_sub:"ffffffffffffffff":"1234567890abcdef0":"ffffffffdcba9876f543210f":"ffffffffffffffffdcba9876f543210f":1 - -mbedtls_mpi_core_sub #598: 0xffffffffffffffff - 0xfffffffffffffffffefefefefefefefe = 0x10101010101010101/10101010101010101, carry 1 -mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10101010101010101":"10101010101010101":1 - -mbedtls_mpi_core_sub #599: 0xffffffffffffffff - 0xfffffffffffffffffffffffffffffffe = 0x10000000000000001/10000000000000001, carry 1 -mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffffffffffffffffe":"10000000000000001":"10000000000000001":1 - -mbedtls_mpi_core_sub #600: 0xffffffffffffffff - 0xffffffffffffffffffffffffffffffff = 0x10000000000000000/10000000000000000, carry 1 -mpi_core_sub:"ffffffffffffffff":"ffffffffffffffffffffffffffffffff":"10000000000000000":"10000000000000000":1 - -mbedtls_mpi_core_sub #601: 0xffffffffffffffff - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000ffffffffffffffff/ffffffffffffffff0000000000000000ffffffffffffffff, carry 1 -mpi_core_sub:"ffffffffffffffff":"100000000000000000000000000000000":"ffffffff0000000000000000ffffffffffffffff":"ffffffffffffffff0000000000000000ffffffffffffffff":1 - -mbedtls_mpi_core_sub #602: 0xffffffffffffffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ffdcba9876f543210f/ffffffffffffffedcba9876f543210ffdcba9876f543210f, carry 1 -mpi_core_sub:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdcba9876f543210f":"ffffffffffffffedcba9876f543210ffdcba9876f543210f":1 - -mbedtls_mpi_core_sub #603: 0xffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x10101010101010101/10101010101010101, carry 1 -mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10101010101010101":"10101010101010101":1 - -mbedtls_mpi_core_sub #604: 0xffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10000000000000001/10000000000000001, carry 1 -mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000001":"10000000000000001":1 - -mbedtls_mpi_core_sub #605: 0xffffffffffffffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10000000000000000/10000000000000000, carry 1 -mpi_core_sub:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"10000000000000000":1 - -mbedtls_mpi_core_sub #606: 0xffffffffffffffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000ffffffffffffffff/ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff, carry 1 -mpi_core_sub:"ffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff":"ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff":1 - -mbedtls_mpi_core_sub #607: 0xffffffffffffffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f, carry 1 -mpi_core_sub:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f":1 - -mbedtls_mpi_core_sub #608: 0xffffffffffffffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4, carry 1 -mpi_core_sub:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4":1 - -mbedtls_mpi_core_sub #609: 0x10000000000000000 - 0x0 = 0x10000000000000000/10000000000000000, carry 0 -mpi_core_sub:"10000000000000000":"0":"10000000000000000":"10000000000000000":0 - -mbedtls_mpi_core_sub #610: 0x10000000000000000 - 0x1 = 0xffffffffffffffff/ffffffffffffffff, carry 0 -mpi_core_sub:"10000000000000000":"1":"ffffffffffffffff":"ffffffffffffffff":0 - -mbedtls_mpi_core_sub #611: 0x10000000000000000 - 0x3 = 0xfffffffffffffffd/fffffffffffffffd, carry 0 -mpi_core_sub:"10000000000000000":"3":"fffffffffffffffd":"fffffffffffffffd":0 - -mbedtls_mpi_core_sub #612: 0x10000000000000000 - 0xf = 0xfffffffffffffff1/fffffffffffffff1, carry 0 -mpi_core_sub:"10000000000000000":"f":"fffffffffffffff1":"fffffffffffffff1":0 - -mbedtls_mpi_core_sub #613: 0x10000000000000000 - 0xfe = 0xffffffffffffff02/ffffffffffffff02, carry 0 -mpi_core_sub:"10000000000000000":"fe":"ffffffffffffff02":"ffffffffffffff02":0 - -mbedtls_mpi_core_sub #614: 0x10000000000000000 - 0xff = 0xffffffffffffff01/ffffffffffffff01, carry 0 -mpi_core_sub:"10000000000000000":"ff":"ffffffffffffff01":"ffffffffffffff01":0 - -mbedtls_mpi_core_sub #615: 0x10000000000000000 - 0x100 = 0xffffffffffffff00/ffffffffffffff00, carry 0 -mpi_core_sub:"10000000000000000":"100":"ffffffffffffff00":"ffffffffffffff00":0 - -mbedtls_mpi_core_sub #616: 0x10000000000000000 - 0xff00 = 0xffffffffffff0100/ffffffffffff0100, carry 0 -mpi_core_sub:"10000000000000000":"ff00":"ffffffffffff0100":"ffffffffffff0100":0 - -mbedtls_mpi_core_sub #617: 0x10000000000000000 - 0xfffe = 0xffffffffffff0002/ffffffffffff0002, carry 0 -mpi_core_sub:"10000000000000000":"fffe":"ffffffffffff0002":"ffffffffffff0002":0 - -mbedtls_mpi_core_sub #618: 0x10000000000000000 - 0xffff = 0xffffffffffff0001/ffffffffffff0001, carry 0 -mpi_core_sub:"10000000000000000":"ffff":"ffffffffffff0001":"ffffffffffff0001":0 - -mbedtls_mpi_core_sub #619: 0x10000000000000000 - 0x10000 = 0xffffffffffff0000/ffffffffffff0000, carry 0 -mpi_core_sub:"10000000000000000":"10000":"ffffffffffff0000":"ffffffffffff0000":0 - -mbedtls_mpi_core_sub #620: 0x10000000000000000 - 0xfffffffe = 0xffffffff00000002/ffffffff00000002, carry 0 -mpi_core_sub:"10000000000000000":"fffffffe":"ffffffff00000002":"ffffffff00000002":0 - -mbedtls_mpi_core_sub #621: 0x10000000000000000 - 0xffffffff = 0xffffffff00000001/ffffffff00000001, carry 0 -mpi_core_sub:"10000000000000000":"ffffffff":"ffffffff00000001":"ffffffff00000001":0 - -mbedtls_mpi_core_sub #622: 0x10000000000000000 - 0x100000000 = 0xffffffff00000000/ffffffff00000000, carry 0 -mpi_core_sub:"10000000000000000":"100000000":"ffffffff00000000":"ffffffff00000000":0 - -mbedtls_mpi_core_sub #623: 0x10000000000000000 - 0x1f7f7f7f7f7f7f = 0xffe0808080808081/ffe0808080808081, carry 0 -mpi_core_sub:"10000000000000000":"1f7f7f7f7f7f7f":"ffe0808080808081":"ffe0808080808081":0 - -mbedtls_mpi_core_sub #624: 0x10000000000000000 - 0x8000000000000000 = 0x8000000000000000/8000000000000000, carry 0 -mpi_core_sub:"10000000000000000":"8000000000000000":"8000000000000000":"8000000000000000":0 - -mbedtls_mpi_core_sub #625: 0x10000000000000000 - 0xfefefefefefefefe = 0x101010101010102/101010101010102, carry 0 -mpi_core_sub:"10000000000000000":"fefefefefefefefe":"101010101010102":"101010101010102":0 - -mbedtls_mpi_core_sub #626: 0x10000000000000000 - 0xfffffffffffffffe = 0x2/2, carry 0 -mpi_core_sub:"10000000000000000":"fffffffffffffffe":"2":"2":0 - -mbedtls_mpi_core_sub #627: 0x10000000000000000 - 0xffffffffffffffff = 0x1/1, carry 0 -mpi_core_sub:"10000000000000000":"ffffffffffffffff":"1":"1":0 - -mbedtls_mpi_core_sub #628: 0x10000000000000000 - 0x10000000000000000 = 0x0/0, carry 0 -mpi_core_sub:"10000000000000000":"10000000000000000":"0":"0":0 - -mbedtls_mpi_core_sub #629: 0x10000000000000000 - 0x1234567890abcdef0 = 0xffffffffdcba9876f5432110/ffffffffffffffffdcba9876f5432110, carry 1 -mpi_core_sub:"10000000000000000":"1234567890abcdef0":"ffffffffdcba9876f5432110":"ffffffffffffffffdcba9876f5432110":1 - -mbedtls_mpi_core_sub #630: 0x10000000000000000 - 0xfffffffffffffffffefefefefefefefe = 0x10101010101010102/10101010101010102, carry 1 -mpi_core_sub:"10000000000000000":"fffffffffffffffffefefefefefefefe":"10101010101010102":"10101010101010102":1 - -mbedtls_mpi_core_sub #631: 0x10000000000000000 - 0xfffffffffffffffffffffffffffffffe = 0x10000000000000002/10000000000000002, carry 1 -mpi_core_sub:"10000000000000000":"fffffffffffffffffffffffffffffffe":"10000000000000002":"10000000000000002":1 - -mbedtls_mpi_core_sub #632: 0x10000000000000000 - 0xffffffffffffffffffffffffffffffff = 0x10000000000000001/10000000000000001, carry 1 -mpi_core_sub:"10000000000000000":"ffffffffffffffffffffffffffffffff":"10000000000000001":"10000000000000001":1 - -mbedtls_mpi_core_sub #633: 0x10000000000000000 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000010000000000000000/ffffffffffffffff00000000000000010000000000000000, carry 1 -mpi_core_sub:"10000000000000000":"100000000000000000000000000000000":"ffffffff00000000000000010000000000000000":"ffffffffffffffff00000000000000010000000000000000":1 - -mbedtls_mpi_core_sub #634: 0x10000000000000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ffdcba9876f5432110/ffffffffffffffedcba9876f543210ffdcba9876f5432110, carry 1 -mpi_core_sub:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdcba9876f5432110":"ffffffffffffffedcba9876f543210ffdcba9876f5432110":1 - -mbedtls_mpi_core_sub #635: 0x10000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x10101010101010102/10101010101010102, carry 1 -mpi_core_sub:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10101010101010102":"10101010101010102":1 - -mbedtls_mpi_core_sub #636: 0x10000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10000000000000002/10000000000000002, carry 1 -mpi_core_sub:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000002":"10000000000000002":1 - -mbedtls_mpi_core_sub #637: 0x10000000000000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10000000000000001/10000000000000001, carry 1 -mpi_core_sub:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000001":"10000000000000001":1 - -mbedtls_mpi_core_sub #638: 0x10000000000000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000010000000000000000/ffffffffffffffff0000000000000000000000000000000000000000000000010000000000000000, carry 1 -mpi_core_sub:"10000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000010000000000000000":"ffffffffffffffff0000000000000000000000000000000000000000000000010000000000000000":1 - -mbedtls_mpi_core_sub #639: 0x10000000000000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110, carry 1 -mpi_core_sub:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110":1 - -mbedtls_mpi_core_sub #640: 0x10000000000000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5, carry 1 -mpi_core_sub:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5":1 - -mbedtls_mpi_core_sub #641: 0x1234567890abcdef0 - 0x0 = 0x1234567890abcdef0/1234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef0":"0":"1234567890abcdef0":"1234567890abcdef0":0 - -mbedtls_mpi_core_sub #642: 0x1234567890abcdef0 - 0x1 = 0x1234567890abcdeef/1234567890abcdeef, carry 0 -mpi_core_sub:"1234567890abcdef0":"1":"1234567890abcdeef":"1234567890abcdeef":0 - -mbedtls_mpi_core_sub #643: 0x1234567890abcdef0 - 0x3 = 0x1234567890abcdeed/1234567890abcdeed, carry 0 -mpi_core_sub:"1234567890abcdef0":"3":"1234567890abcdeed":"1234567890abcdeed":0 - -mbedtls_mpi_core_sub #644: 0x1234567890abcdef0 - 0xf = 0x1234567890abcdee1/1234567890abcdee1, carry 0 -mpi_core_sub:"1234567890abcdef0":"f":"1234567890abcdee1":"1234567890abcdee1":0 - -mbedtls_mpi_core_sub #645: 0x1234567890abcdef0 - 0xfe = 0x1234567890abcddf2/1234567890abcddf2, carry 0 -mpi_core_sub:"1234567890abcdef0":"fe":"1234567890abcddf2":"1234567890abcddf2":0 - -mbedtls_mpi_core_sub #646: 0x1234567890abcdef0 - 0xff = 0x1234567890abcddf1/1234567890abcddf1, carry 0 -mpi_core_sub:"1234567890abcdef0":"ff":"1234567890abcddf1":"1234567890abcddf1":0 - -mbedtls_mpi_core_sub #647: 0x1234567890abcdef0 - 0x100 = 0x1234567890abcddf0/1234567890abcddf0, carry 0 -mpi_core_sub:"1234567890abcdef0":"100":"1234567890abcddf0":"1234567890abcddf0":0 - -mbedtls_mpi_core_sub #648: 0x1234567890abcdef0 - 0xff00 = 0x1234567890abbdff0/1234567890abbdff0, carry 0 -mpi_core_sub:"1234567890abcdef0":"ff00":"1234567890abbdff0":"1234567890abbdff0":0 - -mbedtls_mpi_core_sub #649: 0x1234567890abcdef0 - 0xfffe = 0x1234567890abbdef2/1234567890abbdef2, carry 0 -mpi_core_sub:"1234567890abcdef0":"fffe":"1234567890abbdef2":"1234567890abbdef2":0 - -mbedtls_mpi_core_sub #650: 0x1234567890abcdef0 - 0xffff = 0x1234567890abbdef1/1234567890abbdef1, carry 0 -mpi_core_sub:"1234567890abcdef0":"ffff":"1234567890abbdef1":"1234567890abbdef1":0 - -mbedtls_mpi_core_sub #651: 0x1234567890abcdef0 - 0x10000 = 0x1234567890abbdef0/1234567890abbdef0, carry 0 -mpi_core_sub:"1234567890abcdef0":"10000":"1234567890abbdef0":"1234567890abbdef0":0 - -mbedtls_mpi_core_sub #652: 0x1234567890abcdef0 - 0xfffffffe = 0x1234567880abcdef2/1234567880abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef0":"fffffffe":"1234567880abcdef2":"1234567880abcdef2":0 - -mbedtls_mpi_core_sub #653: 0x1234567890abcdef0 - 0xffffffff = 0x1234567880abcdef1/1234567880abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef0":"ffffffff":"1234567880abcdef1":"1234567880abcdef1":0 - -mbedtls_mpi_core_sub #654: 0x1234567890abcdef0 - 0x100000000 = 0x1234567880abcdef0/1234567880abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef0":"100000000":"1234567880abcdef0":"1234567880abcdef0":0 - -mbedtls_mpi_core_sub #655: 0x1234567890abcdef0 - 0x1f7f7f7f7f7f7f = 0x12325e8098b3d5f71/12325e8098b3d5f71, carry 0 -mpi_core_sub:"1234567890abcdef0":"1f7f7f7f7f7f7f":"12325e8098b3d5f71":"12325e8098b3d5f71":0 - -mbedtls_mpi_core_sub #656: 0x1234567890abcdef0 - 0x8000000000000000 = 0xa34567890abcdef0/a34567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef0":"8000000000000000":"a34567890abcdef0":"a34567890abcdef0":0 - -mbedtls_mpi_core_sub #657: 0x1234567890abcdef0 - 0xfefefefefefefefe = 0x2446688a0bbddff2/2446688a0bbddff2, carry 0 -mpi_core_sub:"1234567890abcdef0":"fefefefefefefefe":"2446688a0bbddff2":"2446688a0bbddff2":0 - -mbedtls_mpi_core_sub #658: 0x1234567890abcdef0 - 0xfffffffffffffffe = 0x234567890abcdef2/234567890abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef0":"fffffffffffffffe":"234567890abcdef2":"234567890abcdef2":0 - -mbedtls_mpi_core_sub #659: 0x1234567890abcdef0 - 0xffffffffffffffff = 0x234567890abcdef1/234567890abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef0":"ffffffffffffffff":"234567890abcdef1":"234567890abcdef1":0 - -mbedtls_mpi_core_sub #660: 0x1234567890abcdef0 - 0x10000000000000000 = 0x234567890abcdef0/234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef0":"10000000000000000":"234567890abcdef0":"234567890abcdef0":0 - -mbedtls_mpi_core_sub #661: 0x1234567890abcdef0 - 0x1234567890abcdef0 = 0x0/0, carry 0 -mpi_core_sub:"1234567890abcdef0":"1234567890abcdef0":"0":"0":0 - -mbedtls_mpi_core_sub #662: 0x1234567890abcdef0 - 0xfffffffffffffffffefefefefefefefe = 0x12446688a0bbddff2/12446688a0bbddff2, carry 1 -mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"12446688a0bbddff2":"12446688a0bbddff2":1 - -mbedtls_mpi_core_sub #663: 0x1234567890abcdef0 - 0xfffffffffffffffffffffffffffffffe = 0x1234567890abcdef2/1234567890abcdef2, carry 1 -mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1234567890abcdef2":"1234567890abcdef2":1 - -mbedtls_mpi_core_sub #664: 0x1234567890abcdef0 - 0xffffffffffffffffffffffffffffffff = 0x1234567890abcdef1/1234567890abcdef1, carry 1 -mpi_core_sub:"1234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1234567890abcdef1":"1234567890abcdef1":1 - -mbedtls_mpi_core_sub #665: 0x1234567890abcdef0 - 0x100000000000000000000000000000000 = 0xffffffff0000000000000001234567890abcdef0/ffffffffffffffff0000000000000001234567890abcdef0, carry 1 -mpi_core_sub:"1234567890abcdef0":"100000000000000000000000000000000":"ffffffff0000000000000001234567890abcdef0":"ffffffffffffffff0000000000000001234567890abcdef0":1 - -mbedtls_mpi_core_sub #666: 0x1234567890abcdef0 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543211000000000000000000/ffffffffffffffedcba9876f543211000000000000000000, carry 1 -mpi_core_sub:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543211000000000000000000":"ffffffffffffffedcba9876f543211000000000000000000":1 - -mbedtls_mpi_core_sub #667: 0x1234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x12446688a0bbddff2/12446688a0bbddff2, carry 1 -mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"12446688a0bbddff2":"12446688a0bbddff2":1 - -mbedtls_mpi_core_sub #668: 0x1234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1234567890abcdef2/1234567890abcdef2, carry 1 -mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef2":"1234567890abcdef2":1 - -mbedtls_mpi_core_sub #669: 0x1234567890abcdef0 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1234567890abcdef1/1234567890abcdef1, carry 1 -mpi_core_sub:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef1":"1234567890abcdef1":1 - -mbedtls_mpi_core_sub #670: 0x1234567890abcdef0 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000001234567890abcdef0/ffffffffffffffff000000000000000000000000000000000000000000000001234567890abcdef0, carry 1 -mpi_core_sub:"1234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000001234567890abcdef0":"ffffffffffffffff000000000000000000000000000000000000000000000001234567890abcdef0":1 - -mbedtls_mpi_core_sub #671: 0x1234567890abcdef0 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000, carry 1 -mpi_core_sub:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000":1 - -mbedtls_mpi_core_sub #672: 0x1234567890abcdef0 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5, carry 1 -mpi_core_sub:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5":1 - -mbedtls_mpi_core_sub #673: 0xfffffffffffffffffefefefefefefefe - 0x0 = 0xfffffffffffffffffefefefefefefefe/fffffffffffffffffefefefefefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":0 - -mbedtls_mpi_core_sub #674: 0xfffffffffffffffffefefefefefefefe - 0x1 = 0xfffffffffffffffffefefefefefefefd/fffffffffffffffffefefefefefefefd, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1":"fffffffffffffffffefefefefefefefd":"fffffffffffffffffefefefefefefefd":0 - -mbedtls_mpi_core_sub #675: 0xfffffffffffffffffefefefefefefefe - 0x3 = 0xfffffffffffffffffefefefefefefefb/fffffffffffffffffefefefefefefefb, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffefefefefefefefb":"fffffffffffffffffefefefefefefefb":0 - -mbedtls_mpi_core_sub #676: 0xfffffffffffffffffefefefefefefefe - 0xf = 0xfffffffffffffffffefefefefefefeef/fffffffffffffffffefefefefefefeef, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"f":"fffffffffffffffffefefefefefefeef":"fffffffffffffffffefefefefefefeef":0 - -mbedtls_mpi_core_sub #677: 0xfffffffffffffffffefefefefefefefe - 0xfe = 0xfffffffffffffffffefefefefefefe00/fffffffffffffffffefefefefefefe00, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fe":"fffffffffffffffffefefefefefefe00":"fffffffffffffffffefefefefefefe00":0 - -mbedtls_mpi_core_sub #678: 0xfffffffffffffffffefefefefefefefe - 0xff = 0xfffffffffffffffffefefefefefefdff/fffffffffffffffffefefefefefefdff, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffffefefefefefefdff":"fffffffffffffffffefefefefefefdff":0 - -mbedtls_mpi_core_sub #679: 0xfffffffffffffffffefefefefefefefe - 0x100 = 0xfffffffffffffffffefefefefefefdfe/fffffffffffffffffefefefefefefdfe, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"100":"fffffffffffffffffefefefefefefdfe":"fffffffffffffffffefefefefefefdfe":0 - -mbedtls_mpi_core_sub #680: 0xfffffffffffffffffefefefefefefefe - 0xff00 = 0xfffffffffffffffffefefefefefdfffe/fffffffffffffffffefefefefefdfffe, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ff00":"fffffffffffffffffefefefefefdfffe":"fffffffffffffffffefefefefefdfffe":0 - -mbedtls_mpi_core_sub #681: 0xfffffffffffffffffefefefefefefefe - 0xfffe = 0xfffffffffffffffffefefefefefdff00/fffffffffffffffffefefefefefdff00, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffe":"fffffffffffffffffefefefefefdff00":"fffffffffffffffffefefefefefdff00":0 - -mbedtls_mpi_core_sub #682: 0xfffffffffffffffffefefefefefefefe - 0xffff = 0xfffffffffffffffffefefefefefdfeff/fffffffffffffffffefefefefefdfeff, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffffffefefefefefdfeff":"fffffffffffffffffefefefefefdfeff":0 - -mbedtls_mpi_core_sub #683: 0xfffffffffffffffffefefefefefefefe - 0x10000 = 0xfffffffffffffffffefefefefefdfefe/fffffffffffffffffefefefefefdfefe, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffffffefefefefefdfefe":"fffffffffffffffffefefefefefdfefe":0 - -mbedtls_mpi_core_sub #684: 0xfffffffffffffffffefefefefefefefe - 0xfffffffe = 0xfffffffffffffffffefefefdfefeff00/fffffffffffffffffefefefdfefeff00, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffe":"fffffffffffffffffefefefdfefeff00":"fffffffffffffffffefefefdfefeff00":0 - -mbedtls_mpi_core_sub #685: 0xfffffffffffffffffefefefefefefefe - 0xffffffff = 0xfffffffffffffffffefefefdfefefeff/fffffffffffffffffefefefdfefefeff, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffffefefefdfefefeff":"fffffffffffffffffefefefdfefefeff":0 - -mbedtls_mpi_core_sub #686: 0xfffffffffffffffffefefefefefefefe - 0x100000000 = 0xfffffffffffffffffefefefdfefefefe/fffffffffffffffffefefefdfefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffffefefefdfefefefe":"fffffffffffffffffefefefdfefefefe":0 - -mbedtls_mpi_core_sub #687: 0xfffffffffffffffffefefefefefefefe - 0x1f7f7f7f7f7f7f = 0xfffffffffffffffffedf7f7f7f7f7f7f/fffffffffffffffffedf7f7f7f7f7f7f, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1f7f7f7f7f7f7f":"fffffffffffffffffedf7f7f7f7f7f7f":"fffffffffffffffffedf7f7f7f7f7f7f":0 - -mbedtls_mpi_core_sub #688: 0xfffffffffffffffffefefefefefefefe - 0x8000000000000000 = 0xffffffffffffffff7efefefefefefefe/ffffffffffffffff7efefefefefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"ffffffffffffffff7efefefefefefefe":0 - -mbedtls_mpi_core_sub #689: 0xfffffffffffffffffefefefefefefefe - 0xfefefefefefefefe = 0xffffffffffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fefefefefefefefe":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 - -mbedtls_mpi_core_sub #690: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffe = 0xfffffffffffffffefefefefefefeff00/fffffffffffffffefefefefefefeff00, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffefefefefefefeff00":0 - -mbedtls_mpi_core_sub #691: 0xfffffffffffffffffefefefefefefefe - 0xffffffffffffffff = 0xfffffffffffffffefefefefefefefeff/fffffffffffffffefefefefefefefeff, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fffffffffffffffefefefefefefefeff":"fffffffffffffffefefefefefefefeff":0 - -mbedtls_mpi_core_sub #692: 0xfffffffffffffffffefefefefefefefe - 0x10000000000000000 = 0xfffffffffffffffefefefefefefefefe/fffffffffffffffefefefefefefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fffffffffffffffefefefefefefefefe":"fffffffffffffffefefefefefefefefe":0 - -mbedtls_mpi_core_sub #693: 0xfffffffffffffffffefefefefefefefe - 0x1234567890abcdef0 = 0xfffffffffffffffedbb99775f442200e/fffffffffffffffedbb99775f442200e, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fffffffffffffffedbb99775f442200e":"fffffffffffffffedbb99775f442200e":0 - -mbedtls_mpi_core_sub #694: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffffefefefefefefefe = 0x0/0, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"0":"0":0 - -mbedtls_mpi_core_sub #695: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffe = 0xfffffffffffffffffefefefefefeff00/fffffffffffffffffefefefefefeff00, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefeff00":"fffffffffffffffffefefefefefeff00":1 - -mbedtls_mpi_core_sub #696: 0xfffffffffffffffffefefefefefefefe - 0xffffffffffffffffffffffffffffffff = 0xfffffffffffffffffefefefefefefeff/fffffffffffffffffefefefefefefeff, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefeff":"fffffffffffffffffefefefefefefeff":1 - -mbedtls_mpi_core_sub #697: 0xfffffffffffffffffefefefefefefefe - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffefefefefefefefe/fffffffffffffffffffffffffffffffffefefefefefefefe, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffefefefefefefefe":1 - -mbedtls_mpi_core_sub #698: 0xfffffffffffffffffefefefefefefefe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffeecba9876f543210fedbb99775f442200e/ffffffffffffffeecba9876f543210fedbb99775f442200e, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedbb99775f442200e":"ffffffffffffffeecba9876f543210fedbb99775f442200e":1 - -mbedtls_mpi_core_sub #699: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x100000000000000000000000000000000/100000000000000000000000000000000, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"100000000000000000000000000000000":1 - -mbedtls_mpi_core_sub #700: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0xfffffffffffffffffefefefefefeff00/fffffffffffffffffefefefefefeff00, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefeff00":"fffffffffffffffffefefefefefeff00":1 - -mbedtls_mpi_core_sub #701: 0xfffffffffffffffffefefefefefefefe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xfffffffffffffffffefefefefefefeff/fffffffffffffffffefefefefefefeff, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefeff":"fffffffffffffffffefefefefefefeff":1 - -mbedtls_mpi_core_sub #702: 0xfffffffffffffffffefefefefefefefe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe/ffffffffffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe":"ffffffffffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe":1 - -mbedtls_mpi_core_sub #703: 0xfffffffffffffffffefefefefefefefe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e/ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e":1 - -mbedtls_mpi_core_sub #704: 0xfffffffffffffffffefefefefefefefe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3":1 - -mbedtls_mpi_core_sub #705: 0xfffffffffffffffffffffffffffffffe - 0x0 = 0xfffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"0":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_sub #706: 0xfffffffffffffffffffffffffffffffe - 0x1 = 0xfffffffffffffffffffffffffffffffd/fffffffffffffffffffffffffffffffd, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1":"fffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffd":0 - -mbedtls_mpi_core_sub #707: 0xfffffffffffffffffffffffffffffffe - 0x3 = 0xfffffffffffffffffffffffffffffffb/fffffffffffffffffffffffffffffffb, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"3":"fffffffffffffffffffffffffffffffb":"fffffffffffffffffffffffffffffffb":0 - -mbedtls_mpi_core_sub #708: 0xfffffffffffffffffffffffffffffffe - 0xf = 0xffffffffffffffffffffffffffffffef/ffffffffffffffffffffffffffffffef, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"f":"ffffffffffffffffffffffffffffffef":"ffffffffffffffffffffffffffffffef":0 - -mbedtls_mpi_core_sub #709: 0xfffffffffffffffffffffffffffffffe - 0xfe = 0xffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffff00, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fe":"ffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffff00":0 - -mbedtls_mpi_core_sub #710: 0xfffffffffffffffffffffffffffffffe - 0xff = 0xfffffffffffffffffffffffffffffeff/fffffffffffffffffffffffffffffeff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ff":"fffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffeff":0 - -mbedtls_mpi_core_sub #711: 0xfffffffffffffffffffffffffffffffe - 0x100 = 0xfffffffffffffffffffffffffffffefe/fffffffffffffffffffffffffffffefe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"100":"fffffffffffffffffffffffffffffefe":"fffffffffffffffffffffffffffffefe":0 - -mbedtls_mpi_core_sub #712: 0xfffffffffffffffffffffffffffffffe - 0xff00 = 0xffffffffffffffffffffffffffff00fe/ffffffffffffffffffffffffffff00fe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ff00":"ffffffffffffffffffffffffffff00fe":"ffffffffffffffffffffffffffff00fe":0 - -mbedtls_mpi_core_sub #713: 0xfffffffffffffffffffffffffffffffe - 0xfffe = 0xffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffff0000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffe":"ffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffff0000":0 - -mbedtls_mpi_core_sub #714: 0xfffffffffffffffffffffffffffffffe - 0xffff = 0xfffffffffffffffffffffffffffeffff/fffffffffffffffffffffffffffeffff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffff":"fffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffeffff":0 - -mbedtls_mpi_core_sub #715: 0xfffffffffffffffffffffffffffffffe - 0x10000 = 0xfffffffffffffffffffffffffffefffe/fffffffffffffffffffffffffffefffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"10000":"fffffffffffffffffffffffffffefffe":"fffffffffffffffffffffffffffefffe":0 - -mbedtls_mpi_core_sub #716: 0xfffffffffffffffffffffffffffffffe - 0xfffffffe = 0xffffffffffffffffffffffff00000000/ffffffffffffffffffffffff00000000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffe":"ffffffffffffffffffffffff00000000":"ffffffffffffffffffffffff00000000":0 - -mbedtls_mpi_core_sub #717: 0xfffffffffffffffffffffffffffffffe - 0xffffffff = 0xfffffffffffffffffffffffeffffffff/fffffffffffffffffffffffeffffffff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffff":"fffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffeffffffff":0 - -mbedtls_mpi_core_sub #718: 0xfffffffffffffffffffffffffffffffe - 0x100000000 = 0xfffffffffffffffffffffffefffffffe/fffffffffffffffffffffffefffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"100000000":"fffffffffffffffffffffffefffffffe":"fffffffffffffffffffffffefffffffe":0 - -mbedtls_mpi_core_sub #719: 0xfffffffffffffffffffffffffffffffe - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffe080808080807f/ffffffffffffffffffe080808080807f, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7f":"ffffffffffffffffffe080808080807f":"ffffffffffffffffffe080808080807f":0 - -mbedtls_mpi_core_sub #720: 0xfffffffffffffffffffffffffffffffe - 0x8000000000000000 = 0xffffffffffffffff7ffffffffffffffe/ffffffffffffffff7ffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"8000000000000000":"ffffffffffffffff7ffffffffffffffe":"ffffffffffffffff7ffffffffffffffe":0 - -mbedtls_mpi_core_sub #721: 0xfffffffffffffffffffffffffffffffe - 0xfefefefefefefefe = 0xffffffffffffffff0101010101010100/ffffffffffffffff0101010101010100, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fefefefefefefefe":"ffffffffffffffff0101010101010100":"ffffffffffffffff0101010101010100":0 - -mbedtls_mpi_core_sub #722: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffe = 0xffffffffffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffe":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 - -mbedtls_mpi_core_sub #723: 0xfffffffffffffffffffffffffffffffe - 0xffffffffffffffff = 0xfffffffffffffffeffffffffffffffff/fffffffffffffffeffffffffffffffff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffffffffffff":"fffffffffffffffeffffffffffffffff":"fffffffffffffffeffffffffffffffff":0 - -mbedtls_mpi_core_sub #724: 0xfffffffffffffffffffffffffffffffe - 0x10000000000000000 = 0xfffffffffffffffefffffffffffffffe/fffffffffffffffefffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"10000000000000000":"fffffffffffffffefffffffffffffffe":"fffffffffffffffefffffffffffffffe":0 - -mbedtls_mpi_core_sub #725: 0xfffffffffffffffffffffffffffffffe - 0x1234567890abcdef0 = 0xfffffffffffffffedcba9876f543210e/fffffffffffffffedcba9876f543210e, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1234567890abcdef0":"fffffffffffffffedcba9876f543210e":"fffffffffffffffedcba9876f543210e":0 - -mbedtls_mpi_core_sub #726: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffffefefefefefefefe = 0x101010101010100/101010101010100, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefe":"101010101010100":"101010101010100":0 - -mbedtls_mpi_core_sub #727: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffe = 0x0/0, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":"0":"0":0 - -mbedtls_mpi_core_sub #728: 0xfffffffffffffffffffffffffffffffe - 0xffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1 - -mbedtls_mpi_core_sub #729: 0xfffffffffffffffffffffffffffffffe - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffe, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffe":1 - -mbedtls_mpi_core_sub #730: 0xfffffffffffffffffffffffffffffffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffeecba9876f543210fedcba9876f543210e/ffffffffffffffeecba9876f543210fedcba9876f543210e, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedcba9876f543210e":"ffffffffffffffeecba9876f543210fedcba9876f543210e":1 - -mbedtls_mpi_core_sub #731: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x100000000000000000101010101010100/100000000000000000101010101010100, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000101010101010100":"100000000000000000101010101010100":1 - -mbedtls_mpi_core_sub #732: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000000000000000000000000000000/100000000000000000000000000000000, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"100000000000000000000000000000000":1 - -mbedtls_mpi_core_sub #733: 0xfffffffffffffffffffffffffffffffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1 - -mbedtls_mpi_core_sub #734: 0xfffffffffffffffffffffffffffffffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe/ffffffffffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe":"ffffffffffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe":1 - -mbedtls_mpi_core_sub #735: 0xfffffffffffffffffffffffffffffffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e/ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e":1 - -mbedtls_mpi_core_sub #736: 0xfffffffffffffffffffffffffffffffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3":1 - -mbedtls_mpi_core_sub #737: 0xffffffffffffffffffffffffffffffff - 0x0 = 0xffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_sub #738: 0xffffffffffffffffffffffffffffffff - 0x1 = 0xfffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffe, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_sub #739: 0xffffffffffffffffffffffffffffffff - 0x3 = 0xfffffffffffffffffffffffffffffffc/fffffffffffffffffffffffffffffffc, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffc":"fffffffffffffffffffffffffffffffc":0 - -mbedtls_mpi_core_sub #740: 0xffffffffffffffffffffffffffffffff - 0xf = 0xfffffffffffffffffffffffffffffff0/fffffffffffffffffffffffffffffff0, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"f":"fffffffffffffffffffffffffffffff0":"fffffffffffffffffffffffffffffff0":0 - -mbedtls_mpi_core_sub #741: 0xffffffffffffffffffffffffffffffff - 0xfe = 0xffffffffffffffffffffffffffffff01/ffffffffffffffffffffffffffffff01, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffff01":0 - -mbedtls_mpi_core_sub #742: 0xffffffffffffffffffffffffffffffff - 0xff = 0xffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffff00, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffff00":0 - -mbedtls_mpi_core_sub #743: 0xffffffffffffffffffffffffffffffff - 0x100 = 0xfffffffffffffffffffffffffffffeff/fffffffffffffffffffffffffffffeff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"100":"fffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffeff":0 - -mbedtls_mpi_core_sub #744: 0xffffffffffffffffffffffffffffffff - 0xff00 = 0xffffffffffffffffffffffffffff00ff/ffffffffffffffffffffffffffff00ff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ff00":"ffffffffffffffffffffffffffff00ff":"ffffffffffffffffffffffffffff00ff":0 - -mbedtls_mpi_core_sub #745: 0xffffffffffffffffffffffffffffffff - 0xfffe = 0xffffffffffffffffffffffffffff0001/ffffffffffffffffffffffffffff0001, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffe":"ffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffff0001":0 - -mbedtls_mpi_core_sub #746: 0xffffffffffffffffffffffffffffffff - 0xffff = 0xffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffff0000, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffff0000":0 - -mbedtls_mpi_core_sub #747: 0xffffffffffffffffffffffffffffffff - 0x10000 = 0xfffffffffffffffffffffffffffeffff/fffffffffffffffffffffffffffeffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffeffff":0 - -mbedtls_mpi_core_sub #748: 0xffffffffffffffffffffffffffffffff - 0xfffffffe = 0xffffffffffffffffffffffff00000001/ffffffffffffffffffffffff00000001, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffe":"ffffffffffffffffffffffff00000001":"ffffffffffffffffffffffff00000001":0 - -mbedtls_mpi_core_sub #749: 0xffffffffffffffffffffffffffffffff - 0xffffffff = 0xffffffffffffffffffffffff00000000/ffffffffffffffffffffffff00000000, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffff00000000":"ffffffffffffffffffffffff00000000":0 - -mbedtls_mpi_core_sub #750: 0xffffffffffffffffffffffffffffffff - 0x100000000 = 0xfffffffffffffffffffffffeffffffff/fffffffffffffffffffffffeffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffeffffffff":0 - -mbedtls_mpi_core_sub #751: 0xffffffffffffffffffffffffffffffff - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffe0808080808080/ffffffffffffffffffe0808080808080, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7f":"ffffffffffffffffffe0808080808080":"ffffffffffffffffffe0808080808080":0 - -mbedtls_mpi_core_sub #752: 0xffffffffffffffffffffffffffffffff - 0x8000000000000000 = 0xffffffffffffffff7fffffffffffffff/ffffffffffffffff7fffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff7fffffffffffffff":"ffffffffffffffff7fffffffffffffff":0 - -mbedtls_mpi_core_sub #753: 0xffffffffffffffffffffffffffffffff - 0xfefefefefefefefe = 0xffffffffffffffff0101010101010101/ffffffffffffffff0101010101010101, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fefefefefefefefe":"ffffffffffffffff0101010101010101":"ffffffffffffffff0101010101010101":0 - -mbedtls_mpi_core_sub #754: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffe = 0xffffffffffffffff0000000000000001/ffffffffffffffff0000000000000001, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffff0000000000000001":"ffffffffffffffff0000000000000001":0 - -mbedtls_mpi_core_sub #755: 0xffffffffffffffffffffffffffffffff - 0xffffffffffffffff = 0xffffffffffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 - -mbedtls_mpi_core_sub #756: 0xffffffffffffffffffffffffffffffff - 0x10000000000000000 = 0xfffffffffffffffeffffffffffffffff/fffffffffffffffeffffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"10000000000000000":"fffffffffffffffeffffffffffffffff":"fffffffffffffffeffffffffffffffff":0 - -mbedtls_mpi_core_sub #757: 0xffffffffffffffffffffffffffffffff - 0x1234567890abcdef0 = 0xfffffffffffffffedcba9876f543210f/fffffffffffffffedcba9876f543210f, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fffffffffffffffedcba9876f543210f":"fffffffffffffffedcba9876f543210f":0 - -mbedtls_mpi_core_sub #758: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffffefefefefefefefe = 0x101010101010101/101010101010101, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"101010101010101":"101010101010101":0 - -mbedtls_mpi_core_sub #759: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffe = 0x1/1, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":"1":"1":0 - -mbedtls_mpi_core_sub #760: 0xffffffffffffffffffffffffffffffff - 0xffffffffffffffffffffffffffffffff = 0x0/0, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"0":"0":0 - -mbedtls_mpi_core_sub #761: 0xffffffffffffffffffffffffffffffff - 0x100000000000000000000000000000000 = 0xffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffff, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff":1 - -mbedtls_mpi_core_sub #762: 0xffffffffffffffffffffffffffffffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffeecba9876f543210fedcba9876f543210f/ffffffffffffffeecba9876f543210fedcba9876f543210f, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedcba9876f543210f":"ffffffffffffffeecba9876f543210fedcba9876f543210f":1 - -mbedtls_mpi_core_sub #763: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x100000000000000000101010101010101/100000000000000000101010101010101, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000101010101010101":"100000000000000000101010101010101":1 - -mbedtls_mpi_core_sub #764: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000000000000000000000000000001/100000000000000000000000000000001, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000001":"100000000000000000000000000000001":1 - -mbedtls_mpi_core_sub #765: 0xffffffffffffffffffffffffffffffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100000000000000000000000000000000/100000000000000000000000000000000, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"100000000000000000000000000000000":1 - -mbedtls_mpi_core_sub #766: 0xffffffffffffffffffffffffffffffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff/ffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff":"ffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff":1 - -mbedtls_mpi_core_sub #767: 0xffffffffffffffffffffffffffffffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f/ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f":1 - -mbedtls_mpi_core_sub #768: 0xffffffffffffffffffffffffffffffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4":1 - -mbedtls_mpi_core_sub #769: 0x100000000000000000000000000000000 - 0x0 = 0x100000000000000000000000000000000/100000000000000000000000000000000, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"100000000000000000000000000000000":0 - -mbedtls_mpi_core_sub #770: 0x100000000000000000000000000000000 - 0x1 = 0xffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"1":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_sub #771: 0x100000000000000000000000000000000 - 0x3 = 0xfffffffffffffffffffffffffffffffd/fffffffffffffffffffffffffffffffd, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"3":"fffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffd":0 - -mbedtls_mpi_core_sub #772: 0x100000000000000000000000000000000 - 0xf = 0xfffffffffffffffffffffffffffffff1/fffffffffffffffffffffffffffffff1, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"f":"fffffffffffffffffffffffffffffff1":"fffffffffffffffffffffffffffffff1":0 - -mbedtls_mpi_core_sub #773: 0x100000000000000000000000000000000 - 0xfe = 0xffffffffffffffffffffffffffffff02/ffffffffffffffffffffffffffffff02, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"fe":"ffffffffffffffffffffffffffffff02":"ffffffffffffffffffffffffffffff02":0 - -mbedtls_mpi_core_sub #774: 0x100000000000000000000000000000000 - 0xff = 0xffffffffffffffffffffffffffffff01/ffffffffffffffffffffffffffffff01, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"ff":"ffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffff01":0 - -mbedtls_mpi_core_sub #775: 0x100000000000000000000000000000000 - 0x100 = 0xffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffff00, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"100":"ffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffff00":0 - -mbedtls_mpi_core_sub #776: 0x100000000000000000000000000000000 - 0xff00 = 0xffffffffffffffffffffffffffff0100/ffffffffffffffffffffffffffff0100, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"ff00":"ffffffffffffffffffffffffffff0100":"ffffffffffffffffffffffffffff0100":0 - -mbedtls_mpi_core_sub #777: 0x100000000000000000000000000000000 - 0xfffe = 0xffffffffffffffffffffffffffff0002/ffffffffffffffffffffffffffff0002, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"fffe":"ffffffffffffffffffffffffffff0002":"ffffffffffffffffffffffffffff0002":0 - -mbedtls_mpi_core_sub #778: 0x100000000000000000000000000000000 - 0xffff = 0xffffffffffffffffffffffffffff0001/ffffffffffffffffffffffffffff0001, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"ffff":"ffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffff0001":0 - -mbedtls_mpi_core_sub #779: 0x100000000000000000000000000000000 - 0x10000 = 0xffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffff0000, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"10000":"ffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffff0000":0 - -mbedtls_mpi_core_sub #780: 0x100000000000000000000000000000000 - 0xfffffffe = 0xffffffffffffffffffffffff00000002/ffffffffffffffffffffffff00000002, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"fffffffe":"ffffffffffffffffffffffff00000002":"ffffffffffffffffffffffff00000002":0 - -mbedtls_mpi_core_sub #781: 0x100000000000000000000000000000000 - 0xffffffff = 0xffffffffffffffffffffffff00000001/ffffffffffffffffffffffff00000001, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffffffffffffffffffff00000001":0 - -mbedtls_mpi_core_sub #782: 0x100000000000000000000000000000000 - 0x100000000 = 0xffffffffffffffffffffffff00000000/ffffffffffffffffffffffff00000000, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"100000000":"ffffffffffffffffffffffff00000000":"ffffffffffffffffffffffff00000000":0 - -mbedtls_mpi_core_sub #783: 0x100000000000000000000000000000000 - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffe0808080808081/ffffffffffffffffffe0808080808081, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"1f7f7f7f7f7f7f":"ffffffffffffffffffe0808080808081":"ffffffffffffffffffe0808080808081":0 - -mbedtls_mpi_core_sub #784: 0x100000000000000000000000000000000 - 0x8000000000000000 = 0xffffffffffffffff8000000000000000/ffffffffffffffff8000000000000000, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"8000000000000000":"ffffffffffffffff8000000000000000":"ffffffffffffffff8000000000000000":0 - -mbedtls_mpi_core_sub #785: 0x100000000000000000000000000000000 - 0xfefefefefefefefe = 0xffffffffffffffff0101010101010102/ffffffffffffffff0101010101010102, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"fefefefefefefefe":"ffffffffffffffff0101010101010102":"ffffffffffffffff0101010101010102":0 - -mbedtls_mpi_core_sub #786: 0x100000000000000000000000000000000 - 0xfffffffffffffffe = 0xffffffffffffffff0000000000000002/ffffffffffffffff0000000000000002, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"ffffffffffffffff0000000000000002":0 - -mbedtls_mpi_core_sub #787: 0x100000000000000000000000000000000 - 0xffffffffffffffff = 0xffffffffffffffff0000000000000001/ffffffffffffffff0000000000000001, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"ffffffffffffffff":"ffffffffffffffff0000000000000001":"ffffffffffffffff0000000000000001":0 - -mbedtls_mpi_core_sub #788: 0x100000000000000000000000000000000 - 0x10000000000000000 = 0xffffffffffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"10000000000000000":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 - -mbedtls_mpi_core_sub #789: 0x100000000000000000000000000000000 - 0x1234567890abcdef0 = 0xfffffffffffffffedcba9876f5432110/fffffffffffffffedcba9876f5432110, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"1234567890abcdef0":"fffffffffffffffedcba9876f5432110":"fffffffffffffffedcba9876f5432110":0 - -mbedtls_mpi_core_sub #790: 0x100000000000000000000000000000000 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010102/101010101010102, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":0 - -mbedtls_mpi_core_sub #791: 0x100000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffe = 0x2/2, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffe":"2":"2":0 - -mbedtls_mpi_core_sub #792: 0x100000000000000000000000000000000 - 0xffffffffffffffffffffffffffffffff = 0x1/1, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffff":"1":"1":0 - -mbedtls_mpi_core_sub #793: 0x100000000000000000000000000000000 - 0x100000000000000000000000000000000 = 0x0/0, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"100000000000000000000000000000000":"0":"0":0 - -mbedtls_mpi_core_sub #794: 0x100000000000000000000000000000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffeecba9876f543210fedcba9876f5432110/ffffffffffffffeecba9876f543210fedcba9876f5432110, carry 1 -mpi_core_sub:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedcba9876f5432110":"ffffffffffffffeecba9876f543210fedcba9876f5432110":1 - -mbedtls_mpi_core_sub #795: 0x100000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x100000000000000000101010101010102/100000000000000000101010101010102, carry 1 -mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000101010101010102":"100000000000000000101010101010102":1 - -mbedtls_mpi_core_sub #796: 0x100000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000000000000000000000000000002/100000000000000000000000000000002, carry 1 -mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000002":"100000000000000000000000000000002":1 - -mbedtls_mpi_core_sub #797: 0x100000000000000000000000000000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100000000000000000000000000000001/100000000000000000000000000000001, carry 1 -mpi_core_sub:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000001":"100000000000000000000000000000001":1 - -mbedtls_mpi_core_sub #798: 0x100000000000000000000000000000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000100000000000000000000000000000000/ffffffffffffffff0000000000000000000000000000000100000000000000000000000000000000, carry 1 -mpi_core_sub:"100000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000100000000000000000000000000000000":"ffffffffffffffff0000000000000000000000000000000100000000000000000000000000000000":1 - -mbedtls_mpi_core_sub #799: 0x100000000000000000000000000000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110/ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110, carry 1 -mpi_core_sub:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110":1 - -mbedtls_mpi_core_sub #800: 0x100000000000000000000000000000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5, carry 1 -mpi_core_sub:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5":1 - -mbedtls_mpi_core_sub #801: 0x1234567890abcdef01234567890abcdef0 - 0x0 = 0x1234567890abcdef01234567890abcdef0/1234567890abcdef01234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_sub #802: 0x1234567890abcdef01234567890abcdef0 - 0x1 = 0x1234567890abcdef01234567890abcdeef/1234567890abcdef01234567890abcdeef, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1":"1234567890abcdef01234567890abcdeef":"1234567890abcdef01234567890abcdeef":0 - -mbedtls_mpi_core_sub #803: 0x1234567890abcdef01234567890abcdef0 - 0x3 = 0x1234567890abcdef01234567890abcdeed/1234567890abcdef01234567890abcdeed, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"3":"1234567890abcdef01234567890abcdeed":"1234567890abcdef01234567890abcdeed":0 - -mbedtls_mpi_core_sub #804: 0x1234567890abcdef01234567890abcdef0 - 0xf = 0x1234567890abcdef01234567890abcdee1/1234567890abcdef01234567890abcdee1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"f":"1234567890abcdef01234567890abcdee1":"1234567890abcdef01234567890abcdee1":0 - -mbedtls_mpi_core_sub #805: 0x1234567890abcdef01234567890abcdef0 - 0xfe = 0x1234567890abcdef01234567890abcddf2/1234567890abcdef01234567890abcddf2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fe":"1234567890abcdef01234567890abcddf2":"1234567890abcdef01234567890abcddf2":0 - -mbedtls_mpi_core_sub #806: 0x1234567890abcdef01234567890abcdef0 - 0xff = 0x1234567890abcdef01234567890abcddf1/1234567890abcdef01234567890abcddf1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcddf1":"1234567890abcdef01234567890abcddf1":0 - -mbedtls_mpi_core_sub #807: 0x1234567890abcdef01234567890abcdef0 - 0x100 = 0x1234567890abcdef01234567890abcddf0/1234567890abcdef01234567890abcddf0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"100":"1234567890abcdef01234567890abcddf0":"1234567890abcdef01234567890abcddf0":0 - -mbedtls_mpi_core_sub #808: 0x1234567890abcdef01234567890abcdef0 - 0xff00 = 0x1234567890abcdef01234567890abbdff0/1234567890abcdef01234567890abbdff0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ff00":"1234567890abcdef01234567890abbdff0":"1234567890abcdef01234567890abbdff0":0 - -mbedtls_mpi_core_sub #809: 0x1234567890abcdef01234567890abcdef0 - 0xfffe = 0x1234567890abcdef01234567890abbdef2/1234567890abcdef01234567890abbdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffe":"1234567890abcdef01234567890abbdef2":"1234567890abcdef01234567890abbdef2":0 - -mbedtls_mpi_core_sub #810: 0x1234567890abcdef01234567890abcdef0 - 0xffff = 0x1234567890abcdef01234567890abbdef1/1234567890abcdef01234567890abbdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abbdef1":"1234567890abcdef01234567890abbdef1":0 - -mbedtls_mpi_core_sub #811: 0x1234567890abcdef01234567890abcdef0 - 0x10000 = 0x1234567890abcdef01234567890abbdef0/1234567890abcdef01234567890abbdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abbdef0":"1234567890abcdef01234567890abbdef0":0 - -mbedtls_mpi_core_sub #812: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffe = 0x1234567890abcdef01234567880abcdef2/1234567890abcdef01234567880abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffe":"1234567890abcdef01234567880abcdef2":"1234567890abcdef01234567880abcdef2":0 - -mbedtls_mpi_core_sub #813: 0x1234567890abcdef01234567890abcdef0 - 0xffffffff = 0x1234567890abcdef01234567880abcdef1/1234567890abcdef01234567880abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffff":"1234567890abcdef01234567880abcdef1":"1234567890abcdef01234567880abcdef1":0 - -mbedtls_mpi_core_sub #814: 0x1234567890abcdef01234567890abcdef0 - 0x100000000 = 0x1234567890abcdef01234567880abcdef0/1234567890abcdef01234567880abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567880abcdef0":"1234567890abcdef01234567880abcdef0":0 - -mbedtls_mpi_core_sub #815: 0x1234567890abcdef01234567890abcdef0 - 0x1f7f7f7f7f7f7f = 0x1234567890abcdef012325e8098b3d5f71/1234567890abcdef012325e8098b3d5f71, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1f7f7f7f7f7f7f":"1234567890abcdef012325e8098b3d5f71":"1234567890abcdef012325e8098b3d5f71":0 - -mbedtls_mpi_core_sub #816: 0x1234567890abcdef01234567890abcdef0 - 0x8000000000000000 = 0x1234567890abcdef00a34567890abcdef0/1234567890abcdef00a34567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"1234567890abcdef00a34567890abcdef0":0 - -mbedtls_mpi_core_sub #817: 0x1234567890abcdef01234567890abcdef0 - 0xfefefefefefefefe = 0x1234567890abcdef002446688a0bbddff2/1234567890abcdef002446688a0bbddff2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fefefefefefefefe":"1234567890abcdef002446688a0bbddff2":"1234567890abcdef002446688a0bbddff2":0 - -mbedtls_mpi_core_sub #818: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffe = 0x1234567890abcdef00234567890abcdef2/1234567890abcdef00234567890abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"1234567890abcdef00234567890abcdef2":0 - -mbedtls_mpi_core_sub #819: 0x1234567890abcdef01234567890abcdef0 - 0xffffffffffffffff = 0x1234567890abcdef00234567890abcdef1/1234567890abcdef00234567890abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"1234567890abcdef00234567890abcdef1":"1234567890abcdef00234567890abcdef1":0 - -mbedtls_mpi_core_sub #820: 0x1234567890abcdef01234567890abcdef0 - 0x10000000000000000 = 0x1234567890abcdef00234567890abcdef0/1234567890abcdef00234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"10000000000000000":"1234567890abcdef00234567890abcdef0":"1234567890abcdef00234567890abcdef0":0 - -mbedtls_mpi_core_sub #821: 0x1234567890abcdef01234567890abcdef0 - 0x1234567890abcdef0 = 0x1234567890abcdef000000000000000000/1234567890abcdef000000000000000000, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"1234567890abcdef000000000000000000":"1234567890abcdef000000000000000000":0 - -mbedtls_mpi_core_sub #822: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffefefefefefefefe = 0x1134567890abcdef012446688a0bbddff2/1134567890abcdef012446688a0bbddff2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"1134567890abcdef012446688a0bbddff2":"1134567890abcdef012446688a0bbddff2":0 - -mbedtls_mpi_core_sub #823: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffe = 0x1134567890abcdef01234567890abcdef2/1134567890abcdef01234567890abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1134567890abcdef01234567890abcdef2":"1134567890abcdef01234567890abcdef2":0 - -mbedtls_mpi_core_sub #824: 0x1234567890abcdef01234567890abcdef0 - 0xffffffffffffffffffffffffffffffff = 0x1134567890abcdef01234567890abcdef1/1134567890abcdef01234567890abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1134567890abcdef01234567890abcdef1":"1134567890abcdef01234567890abcdef1":0 - -mbedtls_mpi_core_sub #825: 0x1234567890abcdef01234567890abcdef0 - 0x100000000000000000000000000000000 = 0x1134567890abcdef01234567890abcdef0/1134567890abcdef01234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"1134567890abcdef01234567890abcdef0":"1134567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_sub #826: 0x1234567890abcdef01234567890abcdef0 - 0x1234567890abcdef01234567890abcdef0 = 0x0/0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"0":0 - -mbedtls_mpi_core_sub #827: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x1234567890abcdef012446688a0bbddff2/1234567890abcdef012446688a0bbddff2, carry 1 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef012446688a0bbddff2":"1234567890abcdef012446688a0bbddff2":1 - -mbedtls_mpi_core_sub #828: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1234567890abcdef01234567890abcdef2/1234567890abcdef01234567890abcdef2, carry 1 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef2":"1234567890abcdef01234567890abcdef2":1 - -mbedtls_mpi_core_sub #829: 0x1234567890abcdef01234567890abcdef0 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1234567890abcdef01234567890abcdef1/1234567890abcdef01234567890abcdef1, carry 1 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef1":"1234567890abcdef01234567890abcdef1":1 - -mbedtls_mpi_core_sub #830: 0x1234567890abcdef01234567890abcdef0 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0/ffffffffffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0, carry 1 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0":"ffffffffffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0":1 - -mbedtls_mpi_core_sub #831: 0x1234567890abcdef01234567890abcdef0 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000/ffffffffffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000, carry 1 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000":"ffffffffffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000":1 - -mbedtls_mpi_core_sub #832: 0x1234567890abcdef01234567890abcdef0 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5, carry 1 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5":1 - -mbedtls_mpi_core_sub #833: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0 - -mbedtls_mpi_core_sub #834: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":0 - -mbedtls_mpi_core_sub #835: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x3 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb":0 - -mbedtls_mpi_core_sub #836: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xf = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef":0 - -mbedtls_mpi_core_sub #837: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfe = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00":0 - -mbedtls_mpi_core_sub #838: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff":0 - -mbedtls_mpi_core_sub #839: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x100 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe":0 - -mbedtls_mpi_core_sub #840: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xff00 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe":0 - -mbedtls_mpi_core_sub #841: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffe = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00":0 - -mbedtls_mpi_core_sub #842: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff":0 - -mbedtls_mpi_core_sub #843: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x10000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe":0 - -mbedtls_mpi_core_sub #844: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffe = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00/fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00":0 - -mbedtls_mpi_core_sub #845: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff/fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff":0 - -mbedtls_mpi_core_sub #846: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x100000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe":0 - -mbedtls_mpi_core_sub #847: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1f7f7f7f7f7f7f = 0xfffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f/fffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f":0 - -mbedtls_mpi_core_sub #848: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x8000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe/ffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe":0 - -mbedtls_mpi_core_sub #849: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfefefefefefefefe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 - -mbedtls_mpi_core_sub #850: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffe = 0xfffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00/fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00":0 - -mbedtls_mpi_core_sub #851: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffffffffffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff/fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff":0 - -mbedtls_mpi_core_sub #852: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x10000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe/fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe":0 - -mbedtls_mpi_core_sub #853: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1234567890abcdef0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e/fffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e":"fffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e":0 - -mbedtls_mpi_core_sub #854: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffffefefefefefefefe = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000/ffffffffffffffffffffffffffffffff00000000000000000000000000000000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 - -mbedtls_mpi_core_sub #855: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffe = 0xfffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00/fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00":0 - -mbedtls_mpi_core_sub #856: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffffffffffffffffffffffffffffffff = 0xfffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff/fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff":0 - -mbedtls_mpi_core_sub #857: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe/fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe":0 - -mbedtls_mpi_core_sub #858: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e/ffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e":"ffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e":0 - -mbedtls_mpi_core_sub #859: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x0/0, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"0":"0":0 - -mbedtls_mpi_core_sub #860: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00":1 - -mbedtls_mpi_core_sub #861: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":1 - -mbedtls_mpi_core_sub #862: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":1 - -mbedtls_mpi_core_sub #863: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e/ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e":1 - -mbedtls_mpi_core_sub #864: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3":1 - -mbedtls_mpi_core_sub #865: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_sub #866: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":0 - -mbedtls_mpi_core_sub #867: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x3 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb":0 - -mbedtls_mpi_core_sub #868: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xf = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef":0 - -mbedtls_mpi_core_sub #869: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":0 - -mbedtls_mpi_core_sub #870: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":0 - -mbedtls_mpi_core_sub #871: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x100 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe":0 - -mbedtls_mpi_core_sub #872: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xff00 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe":0 - -mbedtls_mpi_core_sub #873: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":0 - -mbedtls_mpi_core_sub #874: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":0 - -mbedtls_mpi_core_sub #875: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x10000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe":0 - -mbedtls_mpi_core_sub #876: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":0 - -mbedtls_mpi_core_sub #877: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":0 - -mbedtls_mpi_core_sub #878: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x100000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe":0 - -mbedtls_mpi_core_sub #879: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f/ffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f":0 - -mbedtls_mpi_core_sub #880: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x8000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe/ffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe":0 - -mbedtls_mpi_core_sub #881: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfefefefefefefefe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100/ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100":0 - -mbedtls_mpi_core_sub #882: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 - -mbedtls_mpi_core_sub #883: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffffffffffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff/fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":0 - -mbedtls_mpi_core_sub #884: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x10000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe":0 - -mbedtls_mpi_core_sub #885: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1234567890abcdef0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e/fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e":0 - -mbedtls_mpi_core_sub #886: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffffefefefefefefefe = 0xffffffffffffffffffffffffffffffff00000000000000000101010101010100/ffffffffffffffffffffffffffffffff00000000000000000101010101010100, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000101010101010100":"ffffffffffffffffffffffffffffffff00000000000000000101010101010100":0 - -mbedtls_mpi_core_sub #887: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffe = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000/ffffffffffffffffffffffffffffffff00000000000000000000000000000000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 - -mbedtls_mpi_core_sub #888: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffffffffffffffffffffffffffffffff = 0xfffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff/fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_sub #889: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_sub #890: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e/ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e":0 - -mbedtls_mpi_core_sub #891: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010100/101010101010100, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010100":"101010101010100":0 - -mbedtls_mpi_core_sub #892: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x0/0, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"0":"0":0 - -mbedtls_mpi_core_sub #893: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":1 - -mbedtls_mpi_core_sub #894: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":1 - -mbedtls_mpi_core_sub #895: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e/ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e":1 - -mbedtls_mpi_core_sub #896: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3":1 - -mbedtls_mpi_core_sub #897: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x0 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_sub #898: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_sub #899: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x3 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":0 - -mbedtls_mpi_core_sub #900: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xf = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0":0 - -mbedtls_mpi_core_sub #901: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":0 - -mbedtls_mpi_core_sub #902: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":0 - -mbedtls_mpi_core_sub #903: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x100 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":0 - -mbedtls_mpi_core_sub #904: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xff00 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff":0 - -mbedtls_mpi_core_sub #905: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":0 - -mbedtls_mpi_core_sub #906: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":0 - -mbedtls_mpi_core_sub #907: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x10000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":0 - -mbedtls_mpi_core_sub #908: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":0 - -mbedtls_mpi_core_sub #909: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":0 - -mbedtls_mpi_core_sub #910: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x100000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":0 - -mbedtls_mpi_core_sub #911: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080/ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080":0 - -mbedtls_mpi_core_sub #912: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x8000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":0 - -mbedtls_mpi_core_sub #913: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfefefefefefefefe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101/ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101":0 - -mbedtls_mpi_core_sub #914: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":0 - -mbedtls_mpi_core_sub #915: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffffffffffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 - -mbedtls_mpi_core_sub #916: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x10000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff/fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":0 - -mbedtls_mpi_core_sub #917: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1234567890abcdef0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f/fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f":0 - -mbedtls_mpi_core_sub #918: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffffefefefefefefefe = 0xffffffffffffffffffffffffffffffff00000000000000000101010101010101/ffffffffffffffffffffffffffffffff00000000000000000101010101010101, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000101010101010101":"ffffffffffffffffffffffffffffffff00000000000000000101010101010101":0 - -mbedtls_mpi_core_sub #919: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffe = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000001/ffffffffffffffffffffffffffffffff00000000000000000000000000000001, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":0 - -mbedtls_mpi_core_sub #920: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000/ffffffffffffffffffffffffffffffff00000000000000000000000000000000, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 - -mbedtls_mpi_core_sub #921: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff/fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_sub #922: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f/ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f":0 - -mbedtls_mpi_core_sub #923: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010101/101010101010101, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010101":"101010101010101":0 - -mbedtls_mpi_core_sub #924: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1/1, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1":"1":0 - -mbedtls_mpi_core_sub #925: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x0/0, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":0 - -mbedtls_mpi_core_sub #926: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":1 - -mbedtls_mpi_core_sub #927: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f/ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f":1 - -mbedtls_mpi_core_sub #928: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4":1 - -mbedtls_mpi_core_sub #929: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x0 = 0x10000000000000000000000000000000000000000000000000000000000000000/10000000000000000000000000000000000000000000000000000000000000000, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"0":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_core_sub #930: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_sub #931: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x3 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":0 - -mbedtls_mpi_core_sub #932: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xf = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1":0 - -mbedtls_mpi_core_sub #933: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":0 - -mbedtls_mpi_core_sub #934: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":0 - -mbedtls_mpi_core_sub #935: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x100 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":0 - -mbedtls_mpi_core_sub #936: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xff00 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100":0 - -mbedtls_mpi_core_sub #937: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":0 - -mbedtls_mpi_core_sub #938: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":0 - -mbedtls_mpi_core_sub #939: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x10000 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":0 - -mbedtls_mpi_core_sub #940: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":0 - -mbedtls_mpi_core_sub #941: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":0 - -mbedtls_mpi_core_sub #942: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x100000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":0 - -mbedtls_mpi_core_sub #943: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081/ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081":0 - -mbedtls_mpi_core_sub #944: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x8000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":0 - -mbedtls_mpi_core_sub #945: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfefefefefefefefe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102/ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102":0 - -mbedtls_mpi_core_sub #946: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":0 - -mbedtls_mpi_core_sub #947: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffffffffffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":0 - -mbedtls_mpi_core_sub #948: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x10000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 - -mbedtls_mpi_core_sub #949: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1234567890abcdef0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110/fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110":0 - -mbedtls_mpi_core_sub #950: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffffefefefefefefefe = 0xffffffffffffffffffffffffffffffff00000000000000000101010101010102/ffffffffffffffffffffffffffffffff00000000000000000101010101010102, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000101010101010102":"ffffffffffffffffffffffffffffffff00000000000000000101010101010102":0 - -mbedtls_mpi_core_sub #951: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffe = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000002/ffffffffffffffffffffffffffffffff00000000000000000000000000000002, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000002":"ffffffffffffffffffffffffffffffff00000000000000000000000000000002":0 - -mbedtls_mpi_core_sub #952: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000001/ffffffffffffffffffffffffffffffff00000000000000000000000000000001, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":0 - -mbedtls_mpi_core_sub #953: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x100000000000000000000000000000000 = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000/ffffffffffffffffffffffffffffffff00000000000000000000000000000000, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 - -mbedtls_mpi_core_sub #954: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110/ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110":0 - -mbedtls_mpi_core_sub #955: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010102/101010101010102, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":0 - -mbedtls_mpi_core_sub #956: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x2/2, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2":"2":0 - -mbedtls_mpi_core_sub #957: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1/1, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"1":0 - -mbedtls_mpi_core_sub #958: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0x0/0, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"0":"0":0 - -mbedtls_mpi_core_sub #959: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110/ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110, carry 1 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":1 - -mbedtls_mpi_core_sub #960: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5, carry 1 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":1 - -mbedtls_mpi_core_sub #961: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x0 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_sub #962: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":0 - -mbedtls_mpi_core_sub #963: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x3 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":0 - -mbedtls_mpi_core_sub #964: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xf = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1":0 - -mbedtls_mpi_core_sub #965: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfe = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":0 - -mbedtls_mpi_core_sub #966: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xff = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":0 - -mbedtls_mpi_core_sub #967: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x100 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0":0 - -mbedtls_mpi_core_sub #968: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xff00 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff00":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0":0 - -mbedtls_mpi_core_sub #969: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffe = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2":0 - -mbedtls_mpi_core_sub #970: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffff = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":0 - -mbedtls_mpi_core_sub #971: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x10000 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":0 - -mbedtls_mpi_core_sub #972: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffe = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2/1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2":0 - -mbedtls_mpi_core_sub #973: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffffffff = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1/1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":0 - -mbedtls_mpi_core_sub #974: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x100000000 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0/1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":0 - -mbedtls_mpi_core_sub #975: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1f7f7f7f7f7f7f = 0x1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71/1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71":"1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71":0 - -mbedtls_mpi_core_sub #976: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x8000000000000000 = 0x1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0/1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":0 - -mbedtls_mpi_core_sub #977: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfefefefefefefefe = 0x1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2/1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2":"1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2":0 - -mbedtls_mpi_core_sub #978: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffe = 0x1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2/1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":0 - -mbedtls_mpi_core_sub #979: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffffffffffffffff = 0x1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1/1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1":0 - -mbedtls_mpi_core_sub #980: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x10000000000000000 = 0x1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0/1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0":0 - -mbedtls_mpi_core_sub #981: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1234567890abcdef0 = 0x1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000/1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000":0 - -mbedtls_mpi_core_sub #982: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffefefefefefefefe = 0x1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2/1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2":"1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2":0 - -mbedtls_mpi_core_sub #983: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffe = 0x1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2/1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2":0 - -mbedtls_mpi_core_sub #984: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffffffffffffffffffffffffffffffff = 0x1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1/1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1":0 - -mbedtls_mpi_core_sub #985: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x100000000000000000000000000000000 = 0x1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0/1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_sub #986: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1234567890abcdef01234567890abcdef0 = 0x1234567890abcdef01234567890abcdef00000000000000000000000000000000000/1234567890abcdef01234567890abcdef00000000000000000000000000000000000, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef00000000000000000000000000000000000":"1234567890abcdef01234567890abcdef00000000000000000000000000000000000":0 - -mbedtls_mpi_core_sub #987: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2/1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2":"1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2":0 - -mbedtls_mpi_core_sub #988: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2/1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2":0 - -mbedtls_mpi_core_sub #989: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1/1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":0 - -mbedtls_mpi_core_sub #990: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0x1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0/1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_sub #991: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0x0/0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":0 - -mbedtls_mpi_core_sub #992: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5, carry 1 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5":1 - -mbedtls_mpi_core_sub #993: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x0 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 - -mbedtls_mpi_core_sub #994: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":0 - -mbedtls_mpi_core_sub #995: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x3 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":0 - -mbedtls_mpi_core_sub #996: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xf = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c":0 - -mbedtls_mpi_core_sub #997: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":0 - -mbedtls_mpi_core_sub #998: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":0 - -mbedtls_mpi_core_sub #999: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x100 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b":0 - -mbedtls_mpi_core_sub #1000: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xff00 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff00":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b":0 - -mbedtls_mpi_core_sub #1001: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d":0 - -mbedtls_mpi_core_sub #1002: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":0 - -mbedtls_mpi_core_sub #1003: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x10000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":0 - -mbedtls_mpi_core_sub #1004: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d":0 - -mbedtls_mpi_core_sub #1005: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffffffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":0 - -mbedtls_mpi_core_sub #1006: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x100000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":0 - -mbedtls_mpi_core_sub #1007: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1f7f7f7f7f7f7f = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac":0 - -mbedtls_mpi_core_sub #1008: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x8000000000000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":0 - -mbedtls_mpi_core_sub #1009: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfefefefefefefefe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d":0 - -mbedtls_mpi_core_sub #1010: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":0 - -mbedtls_mpi_core_sub #1011: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffffffffffffffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c":0 - -mbedtls_mpi_core_sub #1012: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x10000000000000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b":0 - -mbedtls_mpi_core_sub #1013: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1234567890abcdef0 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b":0 - -mbedtls_mpi_core_sub #1014: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffffefefefefefefefe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d":0 - -mbedtls_mpi_core_sub #1015: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffffffffffffffffffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d":0 - -mbedtls_mpi_core_sub #1016: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffffffffffffffffffffffffffffffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c":0 - -mbedtls_mpi_core_sub #1017: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x100000000000000000000000000000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b":0 - -mbedtls_mpi_core_sub #1018: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1234567890abcdef01234567890abcdef0 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b":0 - -mbedtls_mpi_core_sub #1019: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d":0 - -mbedtls_mpi_core_sub #1020: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d":0 - -mbedtls_mpi_core_sub #1021: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":0 - -mbedtls_mpi_core_sub #1022: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000000000000000000000000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 - -mbedtls_mpi_core_sub #1023: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b":0 - -mbedtls_mpi_core_sub #1024: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0x0/0, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":0 - -mbedtls_mpi_core_mla #1: 0x0 + 0x0 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) (for when sizeof(mbedtls_mpi_uint) == 4/8) -mpi_core_mla:"0":"0":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #2: 0x0 + 0x0 * 0x3 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"0":"3":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #3: 0x0 + 0x0 * 0xfe = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"0":"fe":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #4: 0x0 + 0x0 * 0xff = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"0":"ff":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #5: 0x0 + 0x0 * 0xffff = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"0":"ffff":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #6: 0x0 + 0x0 * 0x10000 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"0":"10000":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #7: 0x0 + 0x0 * 0xffffffff = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"0":"ffffffff":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #8: 0x0 + 0x0 * 0x100000000 = (0x0, carry 0x0)/(0x0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"0":"100000000":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #9: 0x0 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x0, carry 0x0)/(0x0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"0":"7f7f7f7f7f7f7f7f":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #10: 0x0 + 0x0 * 0x8000000000000000 = (0x0, carry 0x0)/(0x0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"0":"8000000000000000":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #11: 0x0 + 0x0 * 0xfffffffffffffffe = (0x0, carry 0x0)/(0x0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"0":"fffffffffffffffe":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #12: 0x0 + 0x1 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"1":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #13: 0x0 + 0x1 * 0x3 = (0x3, carry 0x0)/(0x3, carry 0x0) -mpi_core_mla:"0":"1":"3":"3":"0":"3":"0" - -mbedtls_mpi_core_mla #14: 0x0 + 0x1 * 0xfe = (0xfe, carry 0x0)/(0xfe, carry 0x0) -mpi_core_mla:"0":"1":"fe":"fe":"0":"fe":"0" - -mbedtls_mpi_core_mla #15: 0x0 + 0x1 * 0xff = (0xff, carry 0x0)/(0xff, carry 0x0) -mpi_core_mla:"0":"1":"ff":"ff":"0":"ff":"0" - -mbedtls_mpi_core_mla #16: 0x0 + 0x1 * 0xffff = (0xffff, carry 0x0)/(0xffff, carry 0x0) -mpi_core_mla:"0":"1":"ffff":"ffff":"0":"ffff":"0" - -mbedtls_mpi_core_mla #17: 0x0 + 0x1 * 0x10000 = (0x10000, carry 0x0)/(0x10000, carry 0x0) -mpi_core_mla:"0":"1":"10000":"10000":"0":"10000":"0" - -mbedtls_mpi_core_mla #18: 0x0 + 0x1 * 0xffffffff = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"0":"1":"ffffffff":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #19: 0x0 + 0x1 * 0x100000000 = (0x0, carry 0x1)/(0x100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1":"100000000":"0":"1":"100000000":"0" - -mbedtls_mpi_core_mla #20: 0x0 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f":"7f7f7f7f":"7f7f7f7f7f7f7f7f":"0" - -mbedtls_mpi_core_mla #21: 0x0 + 0x1 * 0x8000000000000000 = (0x0, carry 0x80000000)/(0x8000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1":"8000000000000000":"0":"80000000":"8000000000000000":"0" - -mbedtls_mpi_core_mla #22: 0x0 + 0x1 * 0xfffffffffffffffe = (0xfffffffe, carry 0xffffffff)/(0xfffffffffffffffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1":"fffffffffffffffe":"fffffffe":"ffffffff":"fffffffffffffffe":"0" - -mbedtls_mpi_core_mla #23: 0x0 + 0xfffe * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"fffe":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #24: 0x0 + 0xfffe * 0x3 = (0x2fffa, carry 0x0)/(0x2fffa, carry 0x0) -mpi_core_mla:"0":"fffe":"3":"2fffa":"0":"2fffa":"0" - -mbedtls_mpi_core_mla #25: 0x0 + 0xfffe * 0xfe = (0xfdfe04, carry 0x0)/(0xfdfe04, carry 0x0) -mpi_core_mla:"0":"fffe":"fe":"fdfe04":"0":"fdfe04":"0" - -mbedtls_mpi_core_mla #26: 0x0 + 0xfffe * 0xff = (0xfefe02, carry 0x0)/(0xfefe02, carry 0x0) -mpi_core_mla:"0":"fffe":"ff":"fefe02":"0":"fefe02":"0" - -mbedtls_mpi_core_mla #27: 0x0 + 0xfffe * 0xffff = (0xfffd0002, carry 0x0)/(0xfffd0002, carry 0x0) -mpi_core_mla:"0":"fffe":"ffff":"fffd0002":"0":"fffd0002":"0" - -mbedtls_mpi_core_mla #28: 0x0 + 0xfffe * 0x10000 = (0xfffe0000, carry 0x0)/(0xfffe0000, carry 0x0) -mpi_core_mla:"0":"fffe":"10000":"fffe0000":"0":"fffe0000":"0" - -mbedtls_mpi_core_mla #29: 0x0 + 0xfffe * 0xffffffff = (0xffff0002, carry 0xfffd)/(0xfffdffff0002, carry 0x0) -mpi_core_mla:"0":"fffe":"ffffffff":"ffff0002":"fffd":"fffdffff0002":"0" - -mbedtls_mpi_core_mla #30: 0x0 + 0xfffe * 0x100000000 = (0x0, carry 0xfffe)/(0xfffe00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffe":"100000000":"0":"fffe":"fffe00000000":"0" - -mbedtls_mpi_core_mla #31: 0x0 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80800102, carry 0x7f7e80808080)/(0x8080808080800102, carry 0x7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffe":"7f7f7f7f7f7f7f7f":"80800102":"7f7e80808080":"8080808080800102":"7f7e" - -mbedtls_mpi_core_mla #32: 0x0 + 0xfffe * 0x8000000000000000 = (0x0, carry 0x7fff00000000)/(0x0, carry 0x7fff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffe":"8000000000000000":"0":"7fff00000000":"0":"7fff" - -mbedtls_mpi_core_mla #33: 0x0 + 0xfffe * 0xfffffffffffffffe = (0xfffe0004, carry 0xfffdffffffff)/(0xfffffffffffe0004, carry 0xfffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffe":"fffffffffffffffe":"fffe0004":"fffdffffffff":"fffffffffffe0004":"fffd" - -mbedtls_mpi_core_mla #34: 0x0 + 0xffffffff * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"ffffffff":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #35: 0x0 + 0xffffffff * 0x3 = (0xfffffffd, carry 0x2)/(0x2fffffffd, carry 0x0) -mpi_core_mla:"0":"ffffffff":"3":"fffffffd":"2":"2fffffffd":"0" - -mbedtls_mpi_core_mla #36: 0x0 + 0xffffffff * 0xfe = (0xffffff02, carry 0xfd)/(0xfdffffff02, carry 0x0) -mpi_core_mla:"0":"ffffffff":"fe":"ffffff02":"fd":"fdffffff02":"0" - -mbedtls_mpi_core_mla #37: 0x0 + 0xffffffff * 0xff = (0xffffff01, carry 0xfe)/(0xfeffffff01, carry 0x0) -mpi_core_mla:"0":"ffffffff":"ff":"ffffff01":"fe":"feffffff01":"0" - -mbedtls_mpi_core_mla #38: 0x0 + 0xffffffff * 0xffff = (0xffff0001, carry 0xfffe)/(0xfffeffff0001, carry 0x0) -mpi_core_mla:"0":"ffffffff":"ffff":"ffff0001":"fffe":"fffeffff0001":"0" - -mbedtls_mpi_core_mla #39: 0x0 + 0xffffffff * 0x10000 = (0xffff0000, carry 0xffff)/(0xffffffff0000, carry 0x0) -mpi_core_mla:"0":"ffffffff":"10000":"ffff0000":"ffff":"ffffffff0000":"0" - -mbedtls_mpi_core_mla #40: 0x0 + 0xffffffff * 0xffffffff = (0x1, carry 0xfffffffe)/(0xfffffffe00000001, carry 0x0) -mpi_core_mla:"0":"ffffffff":"ffffffff":"1":"fffffffe":"fffffffe00000001":"0" - -mbedtls_mpi_core_mla #41: 0x0 + 0xffffffff * 0x100000000 = (0x0, carry 0xffffffff)/(0xffffffff00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffff":"100000000":"0":"ffffffff":"ffffffff00000000":"0" - -mbedtls_mpi_core_mla #42: 0x0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x80808081, carry 0x7f7f7f7effffffff)/(0xffffffff80808081, carry 0x7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffff":"7f7f7f7f7f7f7f7f":"80808081":"7f7f7f7effffffff":"ffffffff80808081":"7f7f7f7e" - -mbedtls_mpi_core_mla #43: 0x0 + 0xffffffff * 0x8000000000000000 = (0x0, carry 0x7fffffff80000000)/(0x8000000000000000, carry 0x7fffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffff":"8000000000000000":"0":"7fffffff80000000":"8000000000000000":"7fffffff" - -mbedtls_mpi_core_mla #44: 0x0 + 0xffffffff * 0xfffffffffffffffe = (0x2, carry 0xfffffffefffffffe)/(0xfffffffe00000002, carry 0xfffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffff":"fffffffffffffffe":"2":"fffffffefffffffe":"fffffffe00000002":"fffffffe" - -mbedtls_mpi_core_mla #45: 0x0 + 0x100000000 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"100000000":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #46: 0x0 + 0x100000000 * 0x3 = (0x300000000, carry 0x0)/(0x300000000, carry 0x0) -mpi_core_mla:"0":"100000000":"3":"300000000":"0":"300000000":"0" - -mbedtls_mpi_core_mla #47: 0x0 + 0x100000000 * 0xfe = (0xfe00000000, carry 0x0)/(0xfe00000000, carry 0x0) -mpi_core_mla:"0":"100000000":"fe":"fe00000000":"0":"fe00000000":"0" - -mbedtls_mpi_core_mla #48: 0x0 + 0x100000000 * 0xff = (0xff00000000, carry 0x0)/(0xff00000000, carry 0x0) -mpi_core_mla:"0":"100000000":"ff":"ff00000000":"0":"ff00000000":"0" - -mbedtls_mpi_core_mla #49: 0x0 + 0x100000000 * 0xffff = (0xffff00000000, carry 0x0)/(0xffff00000000, carry 0x0) -mpi_core_mla:"0":"100000000":"ffff":"ffff00000000":"0":"ffff00000000":"0" - -mbedtls_mpi_core_mla #50: 0x0 + 0x100000000 * 0x10000 = (0x1000000000000, carry 0x0)/(0x1000000000000, carry 0x0) -mpi_core_mla:"0":"100000000":"10000":"1000000000000":"0":"1000000000000":"0" - -mbedtls_mpi_core_mla #51: 0x0 + 0x100000000 * 0xffffffff = (0xffffffff00000000, carry 0x0)/(0xffffffff00000000, carry 0x0) -mpi_core_mla:"0":"100000000":"ffffffff":"ffffffff00000000":"0":"ffffffff00000000":"0" - -mbedtls_mpi_core_mla #52: 0x0 + 0x100000000 * 0x100000000 = (0x0, carry 0x1)/(0x0, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000":"100000000":"0":"1":"0":"1" - -mbedtls_mpi_core_mla #53: 0x0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000, carry 0x7f7f7f7f)/(0x7f7f7f7f00000000, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000":"7f7f7f7f":"7f7f7f7f00000000":"7f7f7f7f" - -mbedtls_mpi_core_mla #54: 0x0 + 0x100000000 * 0x8000000000000000 = (0x0, carry 0x80000000)/(0x0, carry 0x80000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000":"8000000000000000":"0":"80000000":"0":"80000000" - -mbedtls_mpi_core_mla #55: 0x0 + 0x100000000 * 0xfffffffffffffffe = (0xfffffffe00000000, carry 0xffffffff)/(0xfffffffe00000000, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000":"fffffffffffffffe":"fffffffe00000000":"ffffffff":"fffffffe00000000":"ffffffff" - -mbedtls_mpi_core_mla #56: 0x0 + 0x20000000000000 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"20000000000000":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #57: 0x0 + 0x20000000000000 * 0x3 = (0x60000000000000, carry 0x0)/(0x60000000000000, carry 0x0) -mpi_core_mla:"0":"20000000000000":"3":"60000000000000":"0":"60000000000000":"0" - -mbedtls_mpi_core_mla #58: 0x0 + 0x20000000000000 * 0xfe = (0x1fc0000000000000, carry 0x0)/(0x1fc0000000000000, carry 0x0) -mpi_core_mla:"0":"20000000000000":"fe":"1fc0000000000000":"0":"1fc0000000000000":"0" - -mbedtls_mpi_core_mla #59: 0x0 + 0x20000000000000 * 0xff = (0x1fe0000000000000, carry 0x0)/(0x1fe0000000000000, carry 0x0) -mpi_core_mla:"0":"20000000000000":"ff":"1fe0000000000000":"0":"1fe0000000000000":"0" - -mbedtls_mpi_core_mla #60: 0x0 + 0x20000000000000 * 0xffff = (0xffe0000000000000, carry 0x1f)/(0xffe0000000000000, carry 0x1f) -mpi_core_mla:"0":"20000000000000":"ffff":"ffe0000000000000":"1f":"ffe0000000000000":"1f" - -mbedtls_mpi_core_mla #61: 0x0 + 0x20000000000000 * 0x10000 = (0x0, carry 0x20)/(0x0, carry 0x20) -mpi_core_mla:"0":"20000000000000":"10000":"0":"20":"0":"20" - -mbedtls_mpi_core_mla #62: 0x0 + 0x20000000000000 * 0xffffffff = (0xffe0000000000000, carry 0x1fffff)/(0xffe0000000000000, carry 0x1fffff) -mpi_core_mla:"0":"20000000000000":"ffffffff":"ffe0000000000000":"1fffff":"ffe0000000000000":"1fffff" - -mbedtls_mpi_core_mla #63: 0x0 + 0x20000000000000 * 0x100000000 = (0x0, carry 0x200000)/(0x0, carry 0x200000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"20000000000000":"100000000":"0":"200000":"0":"200000" - -mbedtls_mpi_core_mla #64: 0x0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe0000000000000, carry 0xfefefefefefef)/(0xefe0000000000000, carry 0xfefefefefefef) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000000000000":"fefefefefefef":"efe0000000000000":"fefefefefefef" - -mbedtls_mpi_core_mla #65: 0x0 + 0x20000000000000 * 0x8000000000000000 = (0x0, carry 0x10000000000000)/(0x0, carry 0x10000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"20000000000000":"8000000000000000":"0":"10000000000000":"0":"10000000000000" - -mbedtls_mpi_core_mla #66: 0x0 + 0x20000000000000 * 0xfffffffffffffffe = (0xffc0000000000000, carry 0x1fffffffffffff)/(0xffc0000000000000, carry 0x1fffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"20000000000000":"fffffffffffffffe":"ffc0000000000000":"1fffffffffffff":"ffc0000000000000":"1fffffffffffff" - -mbedtls_mpi_core_mla #67: 0x0 + 0xffffffffffffffff * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"ffffffffffffffff":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #68: 0x0 + 0xffffffffffffffff * 0x3 = (0xfffffffffffffffd, carry 0x2)/(0xfffffffffffffffd, carry 0x2) -mpi_core_mla:"0":"ffffffffffffffff":"3":"fffffffffffffffd":"2":"fffffffffffffffd":"2" - -mbedtls_mpi_core_mla #69: 0x0 + 0xffffffffffffffff * 0xfe = (0xffffffffffffff02, carry 0xfd)/(0xffffffffffffff02, carry 0xfd) -mpi_core_mla:"0":"ffffffffffffffff":"fe":"ffffffffffffff02":"fd":"ffffffffffffff02":"fd" - -mbedtls_mpi_core_mla #70: 0x0 + 0xffffffffffffffff * 0xff = (0xffffffffffffff01, carry 0xfe)/(0xffffffffffffff01, carry 0xfe) -mpi_core_mla:"0":"ffffffffffffffff":"ff":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #71: 0x0 + 0xffffffffffffffff * 0xffff = (0xffffffffffff0001, carry 0xfffe)/(0xffffffffffff0001, carry 0xfffe) -mpi_core_mla:"0":"ffffffffffffffff":"ffff":"ffffffffffff0001":"fffe":"ffffffffffff0001":"fffe" - -mbedtls_mpi_core_mla #72: 0x0 + 0xffffffffffffffff * 0x10000 = (0xffffffffffff0000, carry 0xffff)/(0xffffffffffff0000, carry 0xffff) -mpi_core_mla:"0":"ffffffffffffffff":"10000":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" - -mbedtls_mpi_core_mla #73: 0x0 + 0xffffffffffffffff * 0xffffffff = (0xffffffff00000001, carry 0xfffffffe)/(0xffffffff00000001, carry 0xfffffffe) -mpi_core_mla:"0":"ffffffffffffffff":"ffffffff":"ffffffff00000001":"fffffffe":"ffffffff00000001":"fffffffe" - -mbedtls_mpi_core_mla #74: 0x0 + 0xffffffffffffffff * 0x100000000 = (0xffffffff00000000, carry 0xffffffff)/(0xffffffff00000000, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffff":"100000000":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #75: 0x0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808081, carry 0x7f7f7f7f7f7f7f7e)/(0x8080808080808081, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7e":"8080808080808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #76: 0x0 + 0xffffffffffffffff * 0x8000000000000000 = (0x8000000000000000, carry 0x7fffffffffffffff)/(0x8000000000000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffff":"8000000000000000":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #77: 0x0 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x2, carry 0xfffffffffffffffd)/(0x2, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffff":"fffffffffffffffe":"2":"fffffffffffffffd":"2":"fffffffffffffffd" - -mbedtls_mpi_core_mla #78: 0x0 + 0x10000000000000000 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"10000000000000000":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #79: 0x0 + 0x10000000000000000 * 0x3 = (0x30000000000000000, carry 0x0)/(0x30000000000000000, carry 0x0) -mpi_core_mla:"0":"10000000000000000":"3":"30000000000000000":"0":"30000000000000000":"0" - -mbedtls_mpi_core_mla #80: 0x0 + 0x10000000000000000 * 0xfe = (0xfe0000000000000000, carry 0x0)/(0xfe0000000000000000, carry 0x0) -mpi_core_mla:"0":"10000000000000000":"fe":"fe0000000000000000":"0":"fe0000000000000000":"0" - -mbedtls_mpi_core_mla #81: 0x0 + 0x10000000000000000 * 0xff = (0xff0000000000000000, carry 0x0)/(0xff0000000000000000, carry 0x0) -mpi_core_mla:"0":"10000000000000000":"ff":"ff0000000000000000":"0":"ff0000000000000000":"0" - -mbedtls_mpi_core_mla #82: 0x0 + 0x10000000000000000 * 0xffff = (0xffff0000000000000000, carry 0x0)/(0xffff0000000000000000, carry 0x0) -mpi_core_mla:"0":"10000000000000000":"ffff":"ffff0000000000000000":"0":"ffff0000000000000000":"0" - -mbedtls_mpi_core_mla #83: 0x0 + 0x10000000000000000 * 0x10000 = (0x100000000000000000000, carry 0x0)/(0x100000000000000000000, carry 0x0) -mpi_core_mla:"0":"10000000000000000":"10000":"100000000000000000000":"0":"100000000000000000000":"0" - -mbedtls_mpi_core_mla #84: 0x0 + 0x10000000000000000 * 0xffffffff = (0xffffffff0000000000000000, carry 0x0)/(0xffffffff0000000000000000, carry 0x0) -mpi_core_mla:"0":"10000000000000000":"ffffffff":"ffffffff0000000000000000":"0":"ffffffff0000000000000000":"0" - -mbedtls_mpi_core_mla #85: 0x0 + 0x10000000000000000 * 0x100000000 = (0x0, carry 0x1)/(0x1000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"10000000000000000":"100000000":"0":"1":"1000000000000000000000000":"0" - -mbedtls_mpi_core_mla #86: 0x0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000":"0" - -mbedtls_mpi_core_mla #87: 0x0 + 0x10000000000000000 * 0x8000000000000000 = (0x0, carry 0x80000000)/(0x80000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"10000000000000000":"8000000000000000":"0":"80000000":"80000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #88: 0x0 + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000000, carry 0xffffffff)/(0xfffffffffffffffe0000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"10000000000000000":"fffffffffffffffe":"fffffffe0000000000000000":"ffffffff":"fffffffffffffffe0000000000000000":"0" - -mbedtls_mpi_core_mla #89: 0x0 + 0x1234567890abcdef0 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef0":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #90: 0x0 + 0x1234567890abcdef0 * 0x3 = (0x369d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef0":"3":"369d0369b20369cd0":"0":"369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #91: 0x0 + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef0":"fe":"120fedcb9f8a7653220":"0":"120fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #92: 0x0 + 0x1234567890abcdef0 * 0xff = (0x12222222181b2221110, carry 0x0)/(0x12222222181b2221110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef0":"ff":"12222222181b2221110":"0":"12222222181b2221110":"0" - -mbedtls_mpi_core_mla #93: 0x0 + 0x1234567890abcdef0 * 0xffff = (0x123444443a333d4332110, carry 0x0)/(0x123444443a333d4332110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef0":"ffff":"123444443a333d4332110":"0":"123444443a333d4332110":"0" - -mbedtls_mpi_core_mla #94: 0x0 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdef00000, carry 0x0)/(0x1234567890abcdef00000, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef0":"10000":"1234567890abcdef00000":"0":"1234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #95: 0x0 + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777766f5432110, carry 0x1)/(0x123456787e7777766f5432110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef0":"ffffffff":"23456787e7777766f5432110":"1":"123456787e7777766f5432110":"0" - -mbedtls_mpi_core_mla #96: 0x0 + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef000000000, carry 0x1)/(0x1234567890abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef0":"100000000":"234567890abcdef000000000":"1":"1234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #97: 0x0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708abaf5ba910, carry 0x91107edb)/(0x91107edbd82bde76f67708abaf5ba910, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ba910":"91107edb":"91107edbd82bde76f67708abaf5ba910":"0" - -mbedtls_mpi_core_mla #98: 0x0 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f780000000000000000, carry 0x91a2b3c4)/(0x91a2b3c4855e6f780000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef0":"8000000000000000":"855e6f780000000000000000":"91a2b3c4":"91a2b3c4855e6f780000000000000000":"0" - -mbedtls_mpi_core_mla #99: 0x0 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530edea864220, carry 0x123456789)/(0x234567890abcdeedb97530edea864220, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea864220":"123456789":"234567890abcdeedb97530edea864220":"1" - -mbedtls_mpi_core_mla #100: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #101: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfcfcfcfcfa, carry 0x2)/(0xfffffffffffffffffcfcfcfcfcfcfcfa, carry 0x2) -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfcfcfa":"2":"fffffffffffffffffcfcfcfcfcfcfcfa":"2" - -mbedtls_mpi_core_mla #102: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010101010004, carry 0xfd)/(0xffffffffffffffff0101010101010004, carry 0xfd) -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101010004":"fd":"ffffffffffffffff0101010101010004":"fd" - -mbedtls_mpi_core_mla #103: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfffffffffffffffeffffffffffffff02, carry 0xfe)/(0xfffffffffffffffeffffffffffffff02, carry 0xfe) -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffeffffffffffffff02":"fe":"fffffffffffffffeffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #104: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffefeffffffffffff0102, carry 0xfffe)/(0xfffffffffffffefeffffffffffff0102, carry 0xfffe) -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefeffffffffffff0102":"fffe":"fffffffffffffefeffffffffffff0102":"fffe" - -mbedtls_mpi_core_mla #105: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefefefe0000, carry 0xffff)/(0xfffffffffffffefefefefefefefe0000, carry 0xffff) -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefe0000":"ffff":"fffffffffffffefefefefefefefe0000":"ffff" - -mbedtls_mpi_core_mla #106: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefefeffffffff01010102, carry 0xfffffffe)/(0xfffffffffefefefeffffffff01010102, carry 0xfffffffe) -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01010102":"fffffffe":"fffffffffefefefeffffffff01010102":"fffffffe" - -mbedtls_mpi_core_mla #107: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefe00000000, carry 0xffffffff)/(0xfffffffffefefefefefefefe00000000, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000000":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff" - -mbedtls_mpi_core_mla #108: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840383028202, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840383028202, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383028202":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #109: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0000000000000000, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f0000000000000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #110: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020202020204, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020202020204, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202020204":"fffffffffffffffd":"fefefefefefefefe0202020202020204":"fffffffffffffffd" - -mbedtls_mpi_core_mla #111: 0x0 + 0x100000000000000000000000000000000 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"100000000000000000000000000000000":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #112: 0x0 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000000000000000000000, carry 0x0)/(0x300000000000000000000000000000000, carry 0x0) -mpi_core_mla:"0":"100000000000000000000000000000000":"3":"300000000000000000000000000000000":"0":"300000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #113: 0x0 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000000000000000000000, carry 0x0)/(0xfe00000000000000000000000000000000, carry 0x0) -mpi_core_mla:"0":"100000000000000000000000000000000":"fe":"fe00000000000000000000000000000000":"0":"fe00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #114: 0x0 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000000000000000000000, carry 0x0)/(0xff00000000000000000000000000000000, carry 0x0) -mpi_core_mla:"0":"100000000000000000000000000000000":"ff":"ff00000000000000000000000000000000":"0":"ff00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #115: 0x0 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000000000000000000000, carry 0x0)/(0xffff00000000000000000000000000000000, carry 0x0) -mpi_core_mla:"0":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000000000000":"0":"ffff00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #116: 0x0 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000000000000000000000, carry 0x0)/(0x1000000000000000000000000000000000000, carry 0x0) -mpi_core_mla:"0":"100000000000000000000000000000000":"10000":"1000000000000000000000000000000000000":"0":"1000000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #117: 0x0 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000000000000000000000, carry 0x0)/(0xffffffff00000000000000000000000000000000, carry 0x0) -mpi_core_mla:"0":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000000000000":"0":"ffffffff00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #118: 0x0 + 0x100000000000000000000000000000000 * 0x100000000 = (0x0, carry 0x1)/(0x10000000000000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000000000000000000000000000":"100000000":"0":"1":"10000000000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #119: 0x0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000000000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #120: 0x0 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x0, carry 0x80000000)/(0x800000000000000000000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000000000000000000000000000":"8000000000000000":"0":"80000000":"800000000000000000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #121: 0x0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000000000000000000000, carry 0xffffffff)/(0xfffffffffffffffe00000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000000000000":"ffffffff":"fffffffffffffffe00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #122: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #123: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #124: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #125: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #126: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d4332110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d4332110":"0" - -mbedtls_mpi_core_mla #127: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef00000, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #128: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777766f5432110, carry 0x12)/(0x123456787e7777767077777887e7777766f5432110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f5432110":"12":"123456787e7777767077777887e7777766f5432110":"0" - -mbedtls_mpi_core_mla #129: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef000000000, carry 0x12)/(0x1234567890abcdef01234567890abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef000000000":"12":"1234567890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #130: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708abaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708abaf5ba910, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ba910":"9" - -mbedtls_mpi_core_mla #131: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f780000000000000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f780000000000000000, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"9" - -mbedtls_mpi_core_mla #132: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530edea864220, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530edea864220, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea864220":"1234567890":"34567890abcdeedcba987667b32100edb97530edea864220":"12" - -mbedtls_mpi_core_mla #133: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #134: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 0x2)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 0x2) -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"2":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"2" - -mbedtls_mpi_core_mla #135: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0xfd)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0xfd) -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fd":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fd" - -mbedtls_mpi_core_mla #136: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0xfe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0xfe) -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #137: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0xfffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0xfffe) -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"fffe" - -mbedtls_mpi_core_mla #138: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0xffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0xffff) -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff" - -mbedtls_mpi_core_mla #139: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0xfffffffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0xfffffffe) -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"fffffffe" - -mbedtls_mpi_core_mla #140: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #141: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #142: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #143: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"fffffffffffffffd" - -mbedtls_mpi_core_mla #144: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #145: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #146: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #147: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #148: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110":"0" - -mbedtls_mpi_core_mla #149: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #150: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110":"0" - -mbedtls_mpi_core_mla #151: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #152: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910":"911" - -mbedtls_mpi_core_mla #153: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"91a" - -mbedtls_mpi_core_mla #154: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220":"1234" - -mbedtls_mpi_core_mla #155: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #156: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381, carry 0x0) -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381":"0" - -mbedtls_mpi_core_mla #157: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa, carry 0x0) -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa":"0" - -mbedtls_mpi_core_mla #158: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0) -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0" - -mbedtls_mpi_core_mla #159: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5, carry 0x0) -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5":"0" - -mbedtls_mpi_core_mla #160: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000, carry 0x0) -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0" - -mbedtls_mpi_core_mla #161: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5, carry 0x4) -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5":"4" - -mbedtls_mpi_core_mla #162: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4" - -mbedtls_mpi_core_mla #163: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955":"26d473ca9" - -mbedtls_mpi_core_mla #164: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000":"26fb9683d" - -mbedtls_mpi_core_mla #165: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b" - -mbedtls_mpi_core_mla #166: 0x1 + 0x0 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"0":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #167: 0x1 + 0x0 * 0x3 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"0":"3":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #168: 0x1 + 0x0 * 0xfe = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"0":"fe":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #169: 0x1 + 0x0 * 0xff = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"0":"ff":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #170: 0x1 + 0x0 * 0xffff = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"0":"ffff":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #171: 0x1 + 0x0 * 0x10000 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"0":"10000":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #172: 0x1 + 0x0 * 0xffffffff = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"0":"ffffffff":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #173: 0x1 + 0x0 * 0x100000000 = (0x1, carry 0x0)/(0x1, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"0":"100000000":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #174: 0x1 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x1, carry 0x0)/(0x1, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"0":"7f7f7f7f7f7f7f7f":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #175: 0x1 + 0x0 * 0x8000000000000000 = (0x1, carry 0x0)/(0x1, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"0":"8000000000000000":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #176: 0x1 + 0x0 * 0xfffffffffffffffe = (0x1, carry 0x0)/(0x1, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"0":"fffffffffffffffe":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #177: 0x1 + 0x1 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"1":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #178: 0x1 + 0x1 * 0x3 = (0x4, carry 0x0)/(0x4, carry 0x0) -mpi_core_mla:"1":"1":"3":"4":"0":"4":"0" - -mbedtls_mpi_core_mla #179: 0x1 + 0x1 * 0xfe = (0xff, carry 0x0)/(0xff, carry 0x0) -mpi_core_mla:"1":"1":"fe":"ff":"0":"ff":"0" - -mbedtls_mpi_core_mla #180: 0x1 + 0x1 * 0xff = (0x100, carry 0x0)/(0x100, carry 0x0) -mpi_core_mla:"1":"1":"ff":"100":"0":"100":"0" - -mbedtls_mpi_core_mla #181: 0x1 + 0x1 * 0xffff = (0x10000, carry 0x0)/(0x10000, carry 0x0) -mpi_core_mla:"1":"1":"ffff":"10000":"0":"10000":"0" - -mbedtls_mpi_core_mla #182: 0x1 + 0x1 * 0x10000 = (0x10001, carry 0x0)/(0x10001, carry 0x0) -mpi_core_mla:"1":"1":"10000":"10001":"0":"10001":"0" - -mbedtls_mpi_core_mla #183: 0x1 + 0x1 * 0xffffffff = (0x0, carry 0x1)/(0x100000000, carry 0x0) -mpi_core_mla:"1":"1":"ffffffff":"0":"1":"100000000":"0" - -mbedtls_mpi_core_mla #184: 0x1 + 0x1 * 0x100000000 = (0x1, carry 0x1)/(0x100000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1":"100000000":"1":"1":"100000001":"0" - -mbedtls_mpi_core_mla #185: 0x1 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f80, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f80, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1":"7f7f7f7f7f7f7f7f":"7f7f7f80":"7f7f7f7f":"7f7f7f7f7f7f7f80":"0" - -mbedtls_mpi_core_mla #186: 0x1 + 0x1 * 0x8000000000000000 = (0x1, carry 0x80000000)/(0x8000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1":"8000000000000000":"1":"80000000":"8000000000000001":"0" - -mbedtls_mpi_core_mla #187: 0x1 + 0x1 * 0xfffffffffffffffe = (0xffffffff, carry 0xffffffff)/(0xffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1":"fffffffffffffffe":"ffffffff":"ffffffff":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #188: 0x1 + 0xfffe * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"fffe":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #189: 0x1 + 0xfffe * 0x3 = (0x2fffb, carry 0x0)/(0x2fffb, carry 0x0) -mpi_core_mla:"1":"fffe":"3":"2fffb":"0":"2fffb":"0" - -mbedtls_mpi_core_mla #190: 0x1 + 0xfffe * 0xfe = (0xfdfe05, carry 0x0)/(0xfdfe05, carry 0x0) -mpi_core_mla:"1":"fffe":"fe":"fdfe05":"0":"fdfe05":"0" - -mbedtls_mpi_core_mla #191: 0x1 + 0xfffe * 0xff = (0xfefe03, carry 0x0)/(0xfefe03, carry 0x0) -mpi_core_mla:"1":"fffe":"ff":"fefe03":"0":"fefe03":"0" - -mbedtls_mpi_core_mla #192: 0x1 + 0xfffe * 0xffff = (0xfffd0003, carry 0x0)/(0xfffd0003, carry 0x0) -mpi_core_mla:"1":"fffe":"ffff":"fffd0003":"0":"fffd0003":"0" - -mbedtls_mpi_core_mla #193: 0x1 + 0xfffe * 0x10000 = (0xfffe0001, carry 0x0)/(0xfffe0001, carry 0x0) -mpi_core_mla:"1":"fffe":"10000":"fffe0001":"0":"fffe0001":"0" - -mbedtls_mpi_core_mla #194: 0x1 + 0xfffe * 0xffffffff = (0xffff0003, carry 0xfffd)/(0xfffdffff0003, carry 0x0) -mpi_core_mla:"1":"fffe":"ffffffff":"ffff0003":"fffd":"fffdffff0003":"0" - -mbedtls_mpi_core_mla #195: 0x1 + 0xfffe * 0x100000000 = (0x1, carry 0xfffe)/(0xfffe00000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffe":"100000000":"1":"fffe":"fffe00000001":"0" - -mbedtls_mpi_core_mla #196: 0x1 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80800103, carry 0x7f7e80808080)/(0x8080808080800103, carry 0x7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffe":"7f7f7f7f7f7f7f7f":"80800103":"7f7e80808080":"8080808080800103":"7f7e" - -mbedtls_mpi_core_mla #197: 0x1 + 0xfffe * 0x8000000000000000 = (0x1, carry 0x7fff00000000)/(0x1, carry 0x7fff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffe":"8000000000000000":"1":"7fff00000000":"1":"7fff" - -mbedtls_mpi_core_mla #198: 0x1 + 0xfffe * 0xfffffffffffffffe = (0xfffe0005, carry 0xfffdffffffff)/(0xfffffffffffe0005, carry 0xfffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffe":"fffffffffffffffe":"fffe0005":"fffdffffffff":"fffffffffffe0005":"fffd" - -mbedtls_mpi_core_mla #199: 0x1 + 0xffffffff * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"ffffffff":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #200: 0x1 + 0xffffffff * 0x3 = (0xfffffffe, carry 0x2)/(0x2fffffffe, carry 0x0) -mpi_core_mla:"1":"ffffffff":"3":"fffffffe":"2":"2fffffffe":"0" - -mbedtls_mpi_core_mla #201: 0x1 + 0xffffffff * 0xfe = (0xffffff03, carry 0xfd)/(0xfdffffff03, carry 0x0) -mpi_core_mla:"1":"ffffffff":"fe":"ffffff03":"fd":"fdffffff03":"0" - -mbedtls_mpi_core_mla #202: 0x1 + 0xffffffff * 0xff = (0xffffff02, carry 0xfe)/(0xfeffffff02, carry 0x0) -mpi_core_mla:"1":"ffffffff":"ff":"ffffff02":"fe":"feffffff02":"0" - -mbedtls_mpi_core_mla #203: 0x1 + 0xffffffff * 0xffff = (0xffff0002, carry 0xfffe)/(0xfffeffff0002, carry 0x0) -mpi_core_mla:"1":"ffffffff":"ffff":"ffff0002":"fffe":"fffeffff0002":"0" - -mbedtls_mpi_core_mla #204: 0x1 + 0xffffffff * 0x10000 = (0xffff0001, carry 0xffff)/(0xffffffff0001, carry 0x0) -mpi_core_mla:"1":"ffffffff":"10000":"ffff0001":"ffff":"ffffffff0001":"0" - -mbedtls_mpi_core_mla #205: 0x1 + 0xffffffff * 0xffffffff = (0x2, carry 0xfffffffe)/(0xfffffffe00000002, carry 0x0) -mpi_core_mla:"1":"ffffffff":"ffffffff":"2":"fffffffe":"fffffffe00000002":"0" - -mbedtls_mpi_core_mla #206: 0x1 + 0xffffffff * 0x100000000 = (0x1, carry 0xffffffff)/(0xffffffff00000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffff":"100000000":"1":"ffffffff":"ffffffff00000001":"0" - -mbedtls_mpi_core_mla #207: 0x1 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x80808082, carry 0x7f7f7f7effffffff)/(0xffffffff80808082, carry 0x7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffff":"7f7f7f7f7f7f7f7f":"80808082":"7f7f7f7effffffff":"ffffffff80808082":"7f7f7f7e" - -mbedtls_mpi_core_mla #208: 0x1 + 0xffffffff * 0x8000000000000000 = (0x1, carry 0x7fffffff80000000)/(0x8000000000000001, carry 0x7fffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffff":"8000000000000000":"1":"7fffffff80000000":"8000000000000001":"7fffffff" - -mbedtls_mpi_core_mla #209: 0x1 + 0xffffffff * 0xfffffffffffffffe = (0x3, carry 0xfffffffefffffffe)/(0xfffffffe00000003, carry 0xfffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffff":"fffffffffffffffe":"3":"fffffffefffffffe":"fffffffe00000003":"fffffffe" - -mbedtls_mpi_core_mla #210: 0x1 + 0x100000000 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"100000000":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #211: 0x1 + 0x100000000 * 0x3 = (0x300000001, carry 0x0)/(0x300000001, carry 0x0) -mpi_core_mla:"1":"100000000":"3":"300000001":"0":"300000001":"0" - -mbedtls_mpi_core_mla #212: 0x1 + 0x100000000 * 0xfe = (0xfe00000001, carry 0x0)/(0xfe00000001, carry 0x0) -mpi_core_mla:"1":"100000000":"fe":"fe00000001":"0":"fe00000001":"0" - -mbedtls_mpi_core_mla #213: 0x1 + 0x100000000 * 0xff = (0xff00000001, carry 0x0)/(0xff00000001, carry 0x0) -mpi_core_mla:"1":"100000000":"ff":"ff00000001":"0":"ff00000001":"0" - -mbedtls_mpi_core_mla #214: 0x1 + 0x100000000 * 0xffff = (0xffff00000001, carry 0x0)/(0xffff00000001, carry 0x0) -mpi_core_mla:"1":"100000000":"ffff":"ffff00000001":"0":"ffff00000001":"0" - -mbedtls_mpi_core_mla #215: 0x1 + 0x100000000 * 0x10000 = (0x1000000000001, carry 0x0)/(0x1000000000001, carry 0x0) -mpi_core_mla:"1":"100000000":"10000":"1000000000001":"0":"1000000000001":"0" - -mbedtls_mpi_core_mla #216: 0x1 + 0x100000000 * 0xffffffff = (0xffffffff00000001, carry 0x0)/(0xffffffff00000001, carry 0x0) -mpi_core_mla:"1":"100000000":"ffffffff":"ffffffff00000001":"0":"ffffffff00000001":"0" - -mbedtls_mpi_core_mla #217: 0x1 + 0x100000000 * 0x100000000 = (0x1, carry 0x1)/(0x1, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000":"100000000":"1":"1":"1":"1" - -mbedtls_mpi_core_mla #218: 0x1 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000001, carry 0x7f7f7f7f)/(0x7f7f7f7f00000001, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000001":"7f7f7f7f":"7f7f7f7f00000001":"7f7f7f7f" - -mbedtls_mpi_core_mla #219: 0x1 + 0x100000000 * 0x8000000000000000 = (0x1, carry 0x80000000)/(0x1, carry 0x80000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000":"8000000000000000":"1":"80000000":"1":"80000000" - -mbedtls_mpi_core_mla #220: 0x1 + 0x100000000 * 0xfffffffffffffffe = (0xfffffffe00000001, carry 0xffffffff)/(0xfffffffe00000001, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000":"fffffffffffffffe":"fffffffe00000001":"ffffffff":"fffffffe00000001":"ffffffff" - -mbedtls_mpi_core_mla #221: 0x1 + 0x20000000000000 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"20000000000000":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #222: 0x1 + 0x20000000000000 * 0x3 = (0x60000000000001, carry 0x0)/(0x60000000000001, carry 0x0) -mpi_core_mla:"1":"20000000000000":"3":"60000000000001":"0":"60000000000001":"0" - -mbedtls_mpi_core_mla #223: 0x1 + 0x20000000000000 * 0xfe = (0x1fc0000000000001, carry 0x0)/(0x1fc0000000000001, carry 0x0) -mpi_core_mla:"1":"20000000000000":"fe":"1fc0000000000001":"0":"1fc0000000000001":"0" - -mbedtls_mpi_core_mla #224: 0x1 + 0x20000000000000 * 0xff = (0x1fe0000000000001, carry 0x0)/(0x1fe0000000000001, carry 0x0) -mpi_core_mla:"1":"20000000000000":"ff":"1fe0000000000001":"0":"1fe0000000000001":"0" - -mbedtls_mpi_core_mla #225: 0x1 + 0x20000000000000 * 0xffff = (0xffe0000000000001, carry 0x1f)/(0xffe0000000000001, carry 0x1f) -mpi_core_mla:"1":"20000000000000":"ffff":"ffe0000000000001":"1f":"ffe0000000000001":"1f" - -mbedtls_mpi_core_mla #226: 0x1 + 0x20000000000000 * 0x10000 = (0x1, carry 0x20)/(0x1, carry 0x20) -mpi_core_mla:"1":"20000000000000":"10000":"1":"20":"1":"20" - -mbedtls_mpi_core_mla #227: 0x1 + 0x20000000000000 * 0xffffffff = (0xffe0000000000001, carry 0x1fffff)/(0xffe0000000000001, carry 0x1fffff) -mpi_core_mla:"1":"20000000000000":"ffffffff":"ffe0000000000001":"1fffff":"ffe0000000000001":"1fffff" - -mbedtls_mpi_core_mla #228: 0x1 + 0x20000000000000 * 0x100000000 = (0x1, carry 0x200000)/(0x1, carry 0x200000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"20000000000000":"100000000":"1":"200000":"1":"200000" - -mbedtls_mpi_core_mla #229: 0x1 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe0000000000001, carry 0xfefefefefefef)/(0xefe0000000000001, carry 0xfefefefefefef) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000000000001":"fefefefefefef":"efe0000000000001":"fefefefefefef" - -mbedtls_mpi_core_mla #230: 0x1 + 0x20000000000000 * 0x8000000000000000 = (0x1, carry 0x10000000000000)/(0x1, carry 0x10000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"20000000000000":"8000000000000000":"1":"10000000000000":"1":"10000000000000" - -mbedtls_mpi_core_mla #231: 0x1 + 0x20000000000000 * 0xfffffffffffffffe = (0xffc0000000000001, carry 0x1fffffffffffff)/(0xffc0000000000001, carry 0x1fffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"20000000000000":"fffffffffffffffe":"ffc0000000000001":"1fffffffffffff":"ffc0000000000001":"1fffffffffffff" - -mbedtls_mpi_core_mla #232: 0x1 + 0xffffffffffffffff * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"ffffffffffffffff":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #233: 0x1 + 0xffffffffffffffff * 0x3 = (0xfffffffffffffffe, carry 0x2)/(0xfffffffffffffffe, carry 0x2) -mpi_core_mla:"1":"ffffffffffffffff":"3":"fffffffffffffffe":"2":"fffffffffffffffe":"2" - -mbedtls_mpi_core_mla #234: 0x1 + 0xffffffffffffffff * 0xfe = (0xffffffffffffff03, carry 0xfd)/(0xffffffffffffff03, carry 0xfd) -mpi_core_mla:"1":"ffffffffffffffff":"fe":"ffffffffffffff03":"fd":"ffffffffffffff03":"fd" - -mbedtls_mpi_core_mla #235: 0x1 + 0xffffffffffffffff * 0xff = (0xffffffffffffff02, carry 0xfe)/(0xffffffffffffff02, carry 0xfe) -mpi_core_mla:"1":"ffffffffffffffff":"ff":"ffffffffffffff02":"fe":"ffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #236: 0x1 + 0xffffffffffffffff * 0xffff = (0xffffffffffff0002, carry 0xfffe)/(0xffffffffffff0002, carry 0xfffe) -mpi_core_mla:"1":"ffffffffffffffff":"ffff":"ffffffffffff0002":"fffe":"ffffffffffff0002":"fffe" - -mbedtls_mpi_core_mla #237: 0x1 + 0xffffffffffffffff * 0x10000 = (0xffffffffffff0001, carry 0xffff)/(0xffffffffffff0001, carry 0xffff) -mpi_core_mla:"1":"ffffffffffffffff":"10000":"ffffffffffff0001":"ffff":"ffffffffffff0001":"ffff" - -mbedtls_mpi_core_mla #238: 0x1 + 0xffffffffffffffff * 0xffffffff = (0xffffffff00000002, carry 0xfffffffe)/(0xffffffff00000002, carry 0xfffffffe) -mpi_core_mla:"1":"ffffffffffffffff":"ffffffff":"ffffffff00000002":"fffffffe":"ffffffff00000002":"fffffffe" - -mbedtls_mpi_core_mla #239: 0x1 + 0xffffffffffffffff * 0x100000000 = (0xffffffff00000001, carry 0xffffffff)/(0xffffffff00000001, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffff":"100000000":"ffffffff00000001":"ffffffff":"ffffffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #240: 0x1 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808082, carry 0x7f7f7f7f7f7f7f7e)/(0x8080808080808082, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808082":"7f7f7f7f7f7f7f7e":"8080808080808082":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #241: 0x1 + 0xffffffffffffffff * 0x8000000000000000 = (0x8000000000000001, carry 0x7fffffffffffffff)/(0x8000000000000001, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffff":"8000000000000000":"8000000000000001":"7fffffffffffffff":"8000000000000001":"7fffffffffffffff" - -mbedtls_mpi_core_mla #242: 0x1 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x3, carry 0xfffffffffffffffd)/(0x3, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffff":"fffffffffffffffe":"3":"fffffffffffffffd":"3":"fffffffffffffffd" - -mbedtls_mpi_core_mla #243: 0x1 + 0x10000000000000000 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"10000000000000000":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #244: 0x1 + 0x10000000000000000 * 0x3 = (0x30000000000000001, carry 0x0)/(0x30000000000000001, carry 0x0) -mpi_core_mla:"1":"10000000000000000":"3":"30000000000000001":"0":"30000000000000001":"0" - -mbedtls_mpi_core_mla #245: 0x1 + 0x10000000000000000 * 0xfe = (0xfe0000000000000001, carry 0x0)/(0xfe0000000000000001, carry 0x0) -mpi_core_mla:"1":"10000000000000000":"fe":"fe0000000000000001":"0":"fe0000000000000001":"0" - -mbedtls_mpi_core_mla #246: 0x1 + 0x10000000000000000 * 0xff = (0xff0000000000000001, carry 0x0)/(0xff0000000000000001, carry 0x0) -mpi_core_mla:"1":"10000000000000000":"ff":"ff0000000000000001":"0":"ff0000000000000001":"0" - -mbedtls_mpi_core_mla #247: 0x1 + 0x10000000000000000 * 0xffff = (0xffff0000000000000001, carry 0x0)/(0xffff0000000000000001, carry 0x0) -mpi_core_mla:"1":"10000000000000000":"ffff":"ffff0000000000000001":"0":"ffff0000000000000001":"0" - -mbedtls_mpi_core_mla #248: 0x1 + 0x10000000000000000 * 0x10000 = (0x100000000000000000001, carry 0x0)/(0x100000000000000000001, carry 0x0) -mpi_core_mla:"1":"10000000000000000":"10000":"100000000000000000001":"0":"100000000000000000001":"0" - -mbedtls_mpi_core_mla #249: 0x1 + 0x10000000000000000 * 0xffffffff = (0xffffffff0000000000000001, carry 0x0)/(0xffffffff0000000000000001, carry 0x0) -mpi_core_mla:"1":"10000000000000000":"ffffffff":"ffffffff0000000000000001":"0":"ffffffff0000000000000001":"0" - -mbedtls_mpi_core_mla #250: 0x1 + 0x10000000000000000 * 0x100000000 = (0x1, carry 0x1)/(0x1000000000000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"10000000000000000":"100000000":"1":"1":"1000000000000000000000001":"0" - -mbedtls_mpi_core_mla #251: 0x1 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000001, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000001":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000001":"0" - -mbedtls_mpi_core_mla #252: 0x1 + 0x10000000000000000 * 0x8000000000000000 = (0x1, carry 0x80000000)/(0x80000000000000000000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"10000000000000000":"8000000000000000":"1":"80000000":"80000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #253: 0x1 + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000001, carry 0xffffffff)/(0xfffffffffffffffe0000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"10000000000000000":"fffffffffffffffe":"fffffffe0000000000000001":"ffffffff":"fffffffffffffffe0000000000000001":"0" - -mbedtls_mpi_core_mla #254: 0x1 + 0x1234567890abcdef0 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef0":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #255: 0x1 + 0x1234567890abcdef0 * 0x3 = (0x369d0369b20369cd1, carry 0x0)/(0x369d0369b20369cd1, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef0":"3":"369d0369b20369cd1":"0":"369d0369b20369cd1":"0" - -mbedtls_mpi_core_mla #256: 0x1 + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f8a7653221, carry 0x0)/(0x120fedcb9f8a7653221, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef0":"fe":"120fedcb9f8a7653221":"0":"120fedcb9f8a7653221":"0" - -mbedtls_mpi_core_mla #257: 0x1 + 0x1234567890abcdef0 * 0xff = (0x12222222181b2221111, carry 0x0)/(0x12222222181b2221111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef0":"ff":"12222222181b2221111":"0":"12222222181b2221111":"0" - -mbedtls_mpi_core_mla #258: 0x1 + 0x1234567890abcdef0 * 0xffff = (0x123444443a333d4332111, carry 0x0)/(0x123444443a333d4332111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef0":"ffff":"123444443a333d4332111":"0":"123444443a333d4332111":"0" - -mbedtls_mpi_core_mla #259: 0x1 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdef00001, carry 0x0)/(0x1234567890abcdef00001, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef0":"10000":"1234567890abcdef00001":"0":"1234567890abcdef00001":"0" - -mbedtls_mpi_core_mla #260: 0x1 + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777766f5432111, carry 0x1)/(0x123456787e7777766f5432111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef0":"ffffffff":"23456787e7777766f5432111":"1":"123456787e7777766f5432111":"0" - -mbedtls_mpi_core_mla #261: 0x1 + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef000000001, carry 0x1)/(0x1234567890abcdef000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef0":"100000000":"234567890abcdef000000001":"1":"1234567890abcdef000000001":"0" - -mbedtls_mpi_core_mla #262: 0x1 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708abaf5ba911, carry 0x91107edb)/(0x91107edbd82bde76f67708abaf5ba911, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ba911":"91107edb":"91107edbd82bde76f67708abaf5ba911":"0" - -mbedtls_mpi_core_mla #263: 0x1 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f780000000000000001, carry 0x91a2b3c4)/(0x91a2b3c4855e6f780000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef0":"8000000000000000":"855e6f780000000000000001":"91a2b3c4":"91a2b3c4855e6f780000000000000001":"0" - -mbedtls_mpi_core_mla #264: 0x1 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530edea864221, carry 0x123456789)/(0x234567890abcdeedb97530edea864221, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea864221":"123456789":"234567890abcdeedb97530edea864221":"1" - -mbedtls_mpi_core_mla #265: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #266: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfcfcfcfcfb, carry 0x2)/(0xfffffffffffffffffcfcfcfcfcfcfcfb, carry 0x2) -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfcfcfb":"2":"fffffffffffffffffcfcfcfcfcfcfcfb":"2" - -mbedtls_mpi_core_mla #267: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010101010005, carry 0xfd)/(0xffffffffffffffff0101010101010005, carry 0xfd) -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101010005":"fd":"ffffffffffffffff0101010101010005":"fd" - -mbedtls_mpi_core_mla #268: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfffffffffffffffeffffffffffffff03, carry 0xfe)/(0xfffffffffffffffeffffffffffffff03, carry 0xfe) -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffeffffffffffffff03":"fe":"fffffffffffffffeffffffffffffff03":"fe" - -mbedtls_mpi_core_mla #269: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffefeffffffffffff0103, carry 0xfffe)/(0xfffffffffffffefeffffffffffff0103, carry 0xfffe) -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefeffffffffffff0103":"fffe":"fffffffffffffefeffffffffffff0103":"fffe" - -mbedtls_mpi_core_mla #270: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefefefe0001, carry 0xffff)/(0xfffffffffffffefefefefefefefe0001, carry 0xffff) -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefe0001":"ffff":"fffffffffffffefefefefefefefe0001":"ffff" - -mbedtls_mpi_core_mla #271: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefefeffffffff01010103, carry 0xfffffffe)/(0xfffffffffefefefeffffffff01010103, carry 0xfffffffe) -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01010103":"fffffffe":"fffffffffefefefeffffffff01010103":"fffffffe" - -mbedtls_mpi_core_mla #272: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefe00000001, carry 0xffffffff)/(0xfffffffffefefefefefefefe00000001, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000001":"ffffffff":"fffffffffefefefefefefefe00000001":"ffffffff" - -mbedtls_mpi_core_mla #273: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840383028203, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840383028203, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383028203":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383028203":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #274: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0000000000000001, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f0000000000000001, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000001":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000000000001":"7fffffffffffffff" - -mbedtls_mpi_core_mla #275: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020202020205, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020202020205, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202020205":"fffffffffffffffd":"fefefefefefefefe0202020202020205":"fffffffffffffffd" - -mbedtls_mpi_core_mla #276: 0x1 + 0x100000000000000000000000000000000 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"100000000000000000000000000000000":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #277: 0x1 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000000000000000000001, carry 0x0)/(0x300000000000000000000000000000001, carry 0x0) -mpi_core_mla:"1":"100000000000000000000000000000000":"3":"300000000000000000000000000000001":"0":"300000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #278: 0x1 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000000000000000000001, carry 0x0)/(0xfe00000000000000000000000000000001, carry 0x0) -mpi_core_mla:"1":"100000000000000000000000000000000":"fe":"fe00000000000000000000000000000001":"0":"fe00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #279: 0x1 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000000000000000000001, carry 0x0)/(0xff00000000000000000000000000000001, carry 0x0) -mpi_core_mla:"1":"100000000000000000000000000000000":"ff":"ff00000000000000000000000000000001":"0":"ff00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #280: 0x1 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000000000000000000001, carry 0x0)/(0xffff00000000000000000000000000000001, carry 0x0) -mpi_core_mla:"1":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000000000001":"0":"ffff00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #281: 0x1 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000000000000000000001, carry 0x0)/(0x1000000000000000000000000000000000001, carry 0x0) -mpi_core_mla:"1":"100000000000000000000000000000000":"10000":"1000000000000000000000000000000000001":"0":"1000000000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #282: 0x1 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000000000000000000001, carry 0x0)/(0xffffffff00000000000000000000000000000001, carry 0x0) -mpi_core_mla:"1":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000000000001":"0":"ffffffff00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #283: 0x1 + 0x100000000000000000000000000000000 * 0x100000000 = (0x1, carry 0x1)/(0x10000000000000000000000000000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000000000000000000000000000":"100000000":"1":"1":"10000000000000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #284: 0x1 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000000000000000000001, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000000000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000000000001":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #285: 0x1 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x1, carry 0x80000000)/(0x800000000000000000000000000000000000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000000000000000000000000000":"8000000000000000":"1":"80000000":"800000000000000000000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #286: 0x1 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000000000000000000001, carry 0xffffffff)/(0xfffffffffffffffe00000000000000000000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000000000001":"ffffffff":"fffffffffffffffe00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #287: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #288: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd1, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd1, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd1":"0":"369d0369b20369cd0369d0369b20369cd1":"0" - -mbedtls_mpi_core_mla #289: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a7653221, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a7653221, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653221":"0":"120fedcb9f8a76532320fedcb9f8a7653221":"0" - -mbedtls_mpi_core_mla #290: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221111, carry 0x0)/(0x12222222181b2221122222222181b2221111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221111":"0":"12222222181b2221122222222181b2221111":"0" - -mbedtls_mpi_core_mla #291: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d4332111, carry 0x0)/(0x123444443a333d433334444443a333d4332111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4332111":"0":"123444443a333d433334444443a333d4332111":"0" - -mbedtls_mpi_core_mla #292: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef00001, carry 0x0)/(0x1234567890abcdef01234567890abcdef00001, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef00001":"0":"1234567890abcdef01234567890abcdef00001":"0" - -mbedtls_mpi_core_mla #293: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777766f5432111, carry 0x12)/(0x123456787e7777767077777887e7777766f5432111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f5432111":"12":"123456787e7777767077777887e7777766f5432111":"0" - -mbedtls_mpi_core_mla #294: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef000000001, carry 0x12)/(0x1234567890abcdef01234567890abcdef000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef000000001":"12":"1234567890abcdef01234567890abcdef000000001":"0" - -mbedtls_mpi_core_mla #295: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708abaf5ba911, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708abaf5ba911, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ba911":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ba911":"9" - -mbedtls_mpi_core_mla #296: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f780000000000000001, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f780000000000000001, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000000000001":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"9" - -mbedtls_mpi_core_mla #297: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530edea864221, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530edea864221, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea864221":"1234567890":"34567890abcdeedcba987667b32100edb97530edea864221":"12" - -mbedtls_mpi_core_mla #298: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #299: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0x2)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0x2) -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2" - -mbedtls_mpi_core_mla #300: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03, carry 0xfd)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03, carry 0xfd) -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03":"fd":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03":"fd" - -mbedtls_mpi_core_mla #301: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0xfe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0xfe) -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #302: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002, carry 0xfffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002, carry 0xfffe) -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"fffe" - -mbedtls_mpi_core_mla #303: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0xffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0xffff) -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffff" - -mbedtls_mpi_core_mla #304: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002, carry 0xfffffffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002, carry 0xfffffffe) -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"fffffffe" - -mbedtls_mpi_core_mla #305: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #306: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #307: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001":"7fffffffffffffff" - -mbedtls_mpi_core_mla #308: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003":"fffffffffffffffd" - -mbedtls_mpi_core_mla #309: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #310: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1":"0" - -mbedtls_mpi_core_mla #311: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221":"0" - -mbedtls_mpi_core_mla #312: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221111, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221111":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221111":"0" - -mbedtls_mpi_core_mla #313: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111":"0" - -mbedtls_mpi_core_mla #314: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001":"0" - -mbedtls_mpi_core_mla #315: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111":"0" - -mbedtls_mpi_core_mla #316: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001":"0" - -mbedtls_mpi_core_mla #317: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911":"911" - -mbedtls_mpi_core_mla #318: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"91a" - -mbedtls_mpi_core_mla #319: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221":"1234" - -mbedtls_mpi_core_mla #320: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #321: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382, carry 0x0) -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382":"0" - -mbedtls_mpi_core_mla #322: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab, carry 0x0) -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab":"0" - -mbedtls_mpi_core_mla #323: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6, carry 0x0) -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6":"0" - -mbedtls_mpi_core_mla #324: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6, carry 0x0) -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6":"0" - -mbedtls_mpi_core_mla #325: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001, carry 0x0) -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001":"0" - -mbedtls_mpi_core_mla #326: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6, carry 0x4) -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6":"4" - -mbedtls_mpi_core_mla #327: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001":"4" - -mbedtls_mpi_core_mla #328: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956":"26d473ca9" - -mbedtls_mpi_core_mla #329: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001":"26fb9683d" - -mbedtls_mpi_core_mla #330: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab":"4df72d07b" - -mbedtls_mpi_core_mla #331: 0xfffe + 0x0 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"0":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #332: 0xfffe + 0x0 * 0x3 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"0":"3":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #333: 0xfffe + 0x0 * 0xfe = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"0":"fe":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #334: 0xfffe + 0x0 * 0xff = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"0":"ff":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #335: 0xfffe + 0x0 * 0xffff = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"0":"ffff":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #336: 0xfffe + 0x0 * 0x10000 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"0":"10000":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #337: 0xfffe + 0x0 * 0xffffffff = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"0":"ffffffff":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #338: 0xfffe + 0x0 * 0x100000000 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"0":"100000000":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #339: 0xfffe + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"0":"7f7f7f7f7f7f7f7f":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #340: 0xfffe + 0x0 * 0x8000000000000000 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"0":"8000000000000000":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #341: 0xfffe + 0x0 * 0xfffffffffffffffe = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"0":"fffffffffffffffe":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #342: 0xfffe + 0x1 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"1":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #343: 0xfffe + 0x1 * 0x3 = (0x10001, carry 0x0)/(0x10001, carry 0x0) -mpi_core_mla:"fffe":"1":"3":"10001":"0":"10001":"0" - -mbedtls_mpi_core_mla #344: 0xfffe + 0x1 * 0xfe = (0x100fc, carry 0x0)/(0x100fc, carry 0x0) -mpi_core_mla:"fffe":"1":"fe":"100fc":"0":"100fc":"0" - -mbedtls_mpi_core_mla #345: 0xfffe + 0x1 * 0xff = (0x100fd, carry 0x0)/(0x100fd, carry 0x0) -mpi_core_mla:"fffe":"1":"ff":"100fd":"0":"100fd":"0" - -mbedtls_mpi_core_mla #346: 0xfffe + 0x1 * 0xffff = (0x1fffd, carry 0x0)/(0x1fffd, carry 0x0) -mpi_core_mla:"fffe":"1":"ffff":"1fffd":"0":"1fffd":"0" - -mbedtls_mpi_core_mla #347: 0xfffe + 0x1 * 0x10000 = (0x1fffe, carry 0x0)/(0x1fffe, carry 0x0) -mpi_core_mla:"fffe":"1":"10000":"1fffe":"0":"1fffe":"0" - -mbedtls_mpi_core_mla #348: 0xfffe + 0x1 * 0xffffffff = (0xfffd, carry 0x1)/(0x10000fffd, carry 0x0) -mpi_core_mla:"fffe":"1":"ffffffff":"fffd":"1":"10000fffd":"0" - -mbedtls_mpi_core_mla #349: 0xfffe + 0x1 * 0x100000000 = (0xfffe, carry 0x1)/(0x10000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1":"100000000":"fffe":"1":"10000fffe":"0" - -mbedtls_mpi_core_mla #350: 0xfffe + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f807f7d, carry 0x7f7f7f7f)/(0x7f7f7f7f7f807f7d, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1":"7f7f7f7f7f7f7f7f":"7f807f7d":"7f7f7f7f":"7f7f7f7f7f807f7d":"0" - -mbedtls_mpi_core_mla #351: 0xfffe + 0x1 * 0x8000000000000000 = (0xfffe, carry 0x80000000)/(0x800000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1":"8000000000000000":"fffe":"80000000":"800000000000fffe":"0" - -mbedtls_mpi_core_mla #352: 0xfffe + 0x1 * 0xfffffffffffffffe = (0xfffc, carry 0x100000000)/(0xfffc, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1":"fffffffffffffffe":"fffc":"100000000":"fffc":"1" - -mbedtls_mpi_core_mla #353: 0xfffe + 0xfffe * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"fffe":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #354: 0xfffe + 0xfffe * 0x3 = (0x3fff8, carry 0x0)/(0x3fff8, carry 0x0) -mpi_core_mla:"fffe":"fffe":"3":"3fff8":"0":"3fff8":"0" - -mbedtls_mpi_core_mla #355: 0xfffe + 0xfffe * 0xfe = (0xfefe02, carry 0x0)/(0xfefe02, carry 0x0) -mpi_core_mla:"fffe":"fffe":"fe":"fefe02":"0":"fefe02":"0" - -mbedtls_mpi_core_mla #356: 0xfffe + 0xfffe * 0xff = (0xfffe00, carry 0x0)/(0xfffe00, carry 0x0) -mpi_core_mla:"fffe":"fffe":"ff":"fffe00":"0":"fffe00":"0" - -mbedtls_mpi_core_mla #357: 0xfffe + 0xfffe * 0xffff = (0xfffe0000, carry 0x0)/(0xfffe0000, carry 0x0) -mpi_core_mla:"fffe":"fffe":"ffff":"fffe0000":"0":"fffe0000":"0" - -mbedtls_mpi_core_mla #358: 0xfffe + 0xfffe * 0x10000 = (0xfffefffe, carry 0x0)/(0xfffefffe, carry 0x0) -mpi_core_mla:"fffe":"fffe":"10000":"fffefffe":"0":"fffefffe":"0" - -mbedtls_mpi_core_mla #359: 0xfffe + 0xfffe * 0xffffffff = (0x0, carry 0xfffe)/(0xfffe00000000, carry 0x0) -mpi_core_mla:"fffe":"fffe":"ffffffff":"0":"fffe":"fffe00000000":"0" - -mbedtls_mpi_core_mla #360: 0xfffe + 0xfffe * 0x100000000 = (0xfffe, carry 0xfffe)/(0xfffe0000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffe":"100000000":"fffe":"fffe":"fffe0000fffe":"0" - -mbedtls_mpi_core_mla #361: 0xfffe + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80810100, carry 0x7f7e80808080)/(0x8080808080810100, carry 0x7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffe":"7f7f7f7f7f7f7f7f":"80810100":"7f7e80808080":"8080808080810100":"7f7e" - -mbedtls_mpi_core_mla #362: 0xfffe + 0xfffe * 0x8000000000000000 = (0xfffe, carry 0x7fff00000000)/(0xfffe, carry 0x7fff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffe":"8000000000000000":"fffe":"7fff00000000":"fffe":"7fff" - -mbedtls_mpi_core_mla #363: 0xfffe + 0xfffe * 0xfffffffffffffffe = (0xffff0002, carry 0xfffdffffffff)/(0xffffffffffff0002, carry 0xfffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffe":"fffffffffffffffe":"ffff0002":"fffdffffffff":"ffffffffffff0002":"fffd" - -mbedtls_mpi_core_mla #364: 0xfffe + 0xffffffff * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"ffffffff":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #365: 0xfffe + 0xffffffff * 0x3 = (0xfffb, carry 0x3)/(0x30000fffb, carry 0x0) -mpi_core_mla:"fffe":"ffffffff":"3":"fffb":"3":"30000fffb":"0" - -mbedtls_mpi_core_mla #366: 0xfffe + 0xffffffff * 0xfe = (0xff00, carry 0xfe)/(0xfe0000ff00, carry 0x0) -mpi_core_mla:"fffe":"ffffffff":"fe":"ff00":"fe":"fe0000ff00":"0" - -mbedtls_mpi_core_mla #367: 0xfffe + 0xffffffff * 0xff = (0xfeff, carry 0xff)/(0xff0000feff, carry 0x0) -mpi_core_mla:"fffe":"ffffffff":"ff":"feff":"ff":"ff0000feff":"0" - -mbedtls_mpi_core_mla #368: 0xfffe + 0xffffffff * 0xffff = (0xffffffff, carry 0xfffe)/(0xfffeffffffff, carry 0x0) -mpi_core_mla:"fffe":"ffffffff":"ffff":"ffffffff":"fffe":"fffeffffffff":"0" - -mbedtls_mpi_core_mla #369: 0xfffe + 0xffffffff * 0x10000 = (0xfffffffe, carry 0xffff)/(0xfffffffffffe, carry 0x0) -mpi_core_mla:"fffe":"ffffffff":"10000":"fffffffe":"ffff":"fffffffffffe":"0" - -mbedtls_mpi_core_mla #370: 0xfffe + 0xffffffff * 0xffffffff = (0xffff, carry 0xfffffffe)/(0xfffffffe0000ffff, carry 0x0) -mpi_core_mla:"fffe":"ffffffff":"ffffffff":"ffff":"fffffffe":"fffffffe0000ffff":"0" - -mbedtls_mpi_core_mla #371: 0xfffe + 0xffffffff * 0x100000000 = (0xfffe, carry 0xffffffff)/(0xffffffff0000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffff":"100000000":"fffe":"ffffffff":"ffffffff0000fffe":"0" - -mbedtls_mpi_core_mla #372: 0xfffe + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x8081807f, carry 0x7f7f7f7effffffff)/(0xffffffff8081807f, carry 0x7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffff":"7f7f7f7f7f7f7f7f":"8081807f":"7f7f7f7effffffff":"ffffffff8081807f":"7f7f7f7e" - -mbedtls_mpi_core_mla #373: 0xfffe + 0xffffffff * 0x8000000000000000 = (0xfffe, carry 0x7fffffff80000000)/(0x800000000000fffe, carry 0x7fffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffff":"8000000000000000":"fffe":"7fffffff80000000":"800000000000fffe":"7fffffff" - -mbedtls_mpi_core_mla #374: 0xfffe + 0xffffffff * 0xfffffffffffffffe = (0x10000, carry 0xfffffffefffffffe)/(0xfffffffe00010000, carry 0xfffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffff":"fffffffffffffffe":"10000":"fffffffefffffffe":"fffffffe00010000":"fffffffe" - -mbedtls_mpi_core_mla #375: 0xfffe + 0x100000000 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"100000000":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #376: 0xfffe + 0x100000000 * 0x3 = (0x30000fffe, carry 0x0)/(0x30000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000":"3":"30000fffe":"0":"30000fffe":"0" - -mbedtls_mpi_core_mla #377: 0xfffe + 0x100000000 * 0xfe = (0xfe0000fffe, carry 0x0)/(0xfe0000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000":"fe":"fe0000fffe":"0":"fe0000fffe":"0" - -mbedtls_mpi_core_mla #378: 0xfffe + 0x100000000 * 0xff = (0xff0000fffe, carry 0x0)/(0xff0000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000":"ff":"ff0000fffe":"0":"ff0000fffe":"0" - -mbedtls_mpi_core_mla #379: 0xfffe + 0x100000000 * 0xffff = (0xffff0000fffe, carry 0x0)/(0xffff0000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000":"ffff":"ffff0000fffe":"0":"ffff0000fffe":"0" - -mbedtls_mpi_core_mla #380: 0xfffe + 0x100000000 * 0x10000 = (0x100000000fffe, carry 0x0)/(0x100000000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000":"10000":"100000000fffe":"0":"100000000fffe":"0" - -mbedtls_mpi_core_mla #381: 0xfffe + 0x100000000 * 0xffffffff = (0xffffffff0000fffe, carry 0x0)/(0xffffffff0000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000":"ffffffff":"ffffffff0000fffe":"0":"ffffffff0000fffe":"0" - -mbedtls_mpi_core_mla #382: 0xfffe + 0x100000000 * 0x100000000 = (0xfffe, carry 0x1)/(0xfffe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000":"100000000":"fffe":"1":"fffe":"1" - -mbedtls_mpi_core_mla #383: 0xfffe + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000fffe, carry 0x7f7f7f7f)/(0x7f7f7f7f0000fffe, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000fffe":"7f7f7f7f":"7f7f7f7f0000fffe":"7f7f7f7f" - -mbedtls_mpi_core_mla #384: 0xfffe + 0x100000000 * 0x8000000000000000 = (0xfffe, carry 0x80000000)/(0xfffe, carry 0x80000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000":"8000000000000000":"fffe":"80000000":"fffe":"80000000" - -mbedtls_mpi_core_mla #385: 0xfffe + 0x100000000 * 0xfffffffffffffffe = (0xfffffffe0000fffe, carry 0xffffffff)/(0xfffffffe0000fffe, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000":"fffffffffffffffe":"fffffffe0000fffe":"ffffffff":"fffffffe0000fffe":"ffffffff" - -mbedtls_mpi_core_mla #386: 0xfffe + 0x20000000000000 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"20000000000000":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #387: 0xfffe + 0x20000000000000 * 0x3 = (0x6000000000fffe, carry 0x0)/(0x6000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"20000000000000":"3":"6000000000fffe":"0":"6000000000fffe":"0" - -mbedtls_mpi_core_mla #388: 0xfffe + 0x20000000000000 * 0xfe = (0x1fc000000000fffe, carry 0x0)/(0x1fc000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"20000000000000":"fe":"1fc000000000fffe":"0":"1fc000000000fffe":"0" - -mbedtls_mpi_core_mla #389: 0xfffe + 0x20000000000000 * 0xff = (0x1fe000000000fffe, carry 0x0)/(0x1fe000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"20000000000000":"ff":"1fe000000000fffe":"0":"1fe000000000fffe":"0" - -mbedtls_mpi_core_mla #390: 0xfffe + 0x20000000000000 * 0xffff = (0xffe000000000fffe, carry 0x1f)/(0xffe000000000fffe, carry 0x1f) -mpi_core_mla:"fffe":"20000000000000":"ffff":"ffe000000000fffe":"1f":"ffe000000000fffe":"1f" - -mbedtls_mpi_core_mla #391: 0xfffe + 0x20000000000000 * 0x10000 = (0xfffe, carry 0x20)/(0xfffe, carry 0x20) -mpi_core_mla:"fffe":"20000000000000":"10000":"fffe":"20":"fffe":"20" - -mbedtls_mpi_core_mla #392: 0xfffe + 0x20000000000000 * 0xffffffff = (0xffe000000000fffe, carry 0x1fffff)/(0xffe000000000fffe, carry 0x1fffff) -mpi_core_mla:"fffe":"20000000000000":"ffffffff":"ffe000000000fffe":"1fffff":"ffe000000000fffe":"1fffff" - -mbedtls_mpi_core_mla #393: 0xfffe + 0x20000000000000 * 0x100000000 = (0xfffe, carry 0x200000)/(0xfffe, carry 0x200000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"20000000000000":"100000000":"fffe":"200000":"fffe":"200000" - -mbedtls_mpi_core_mla #394: 0xfffe + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe000000000fffe, carry 0xfefefefefefef)/(0xefe000000000fffe, carry 0xfefefefefefef) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"20000000000000":"7f7f7f7f7f7f7f7f":"efe000000000fffe":"fefefefefefef":"efe000000000fffe":"fefefefefefef" - -mbedtls_mpi_core_mla #395: 0xfffe + 0x20000000000000 * 0x8000000000000000 = (0xfffe, carry 0x10000000000000)/(0xfffe, carry 0x10000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"20000000000000":"8000000000000000":"fffe":"10000000000000":"fffe":"10000000000000" - -mbedtls_mpi_core_mla #396: 0xfffe + 0x20000000000000 * 0xfffffffffffffffe = (0xffc000000000fffe, carry 0x1fffffffffffff)/(0xffc000000000fffe, carry 0x1fffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"20000000000000":"fffffffffffffffe":"ffc000000000fffe":"1fffffffffffff":"ffc000000000fffe":"1fffffffffffff" - -mbedtls_mpi_core_mla #397: 0xfffe + 0xffffffffffffffff * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"ffffffffffffffff":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #398: 0xfffe + 0xffffffffffffffff * 0x3 = (0xfffb, carry 0x3)/(0xfffb, carry 0x3) -mpi_core_mla:"fffe":"ffffffffffffffff":"3":"fffb":"3":"fffb":"3" - -mbedtls_mpi_core_mla #399: 0xfffe + 0xffffffffffffffff * 0xfe = (0xff00, carry 0xfe)/(0xff00, carry 0xfe) -mpi_core_mla:"fffe":"ffffffffffffffff":"fe":"ff00":"fe":"ff00":"fe" - -mbedtls_mpi_core_mla #400: 0xfffe + 0xffffffffffffffff * 0xff = (0xfeff, carry 0xff)/(0xfeff, carry 0xff) -mpi_core_mla:"fffe":"ffffffffffffffff":"ff":"feff":"ff":"feff":"ff" - -mbedtls_mpi_core_mla #401: 0xfffe + 0xffffffffffffffff * 0xffff = (0xffffffffffffffff, carry 0xfffe)/(0xffffffffffffffff, carry 0xfffe) -mpi_core_mla:"fffe":"ffffffffffffffff":"ffff":"ffffffffffffffff":"fffe":"ffffffffffffffff":"fffe" - -mbedtls_mpi_core_mla #402: 0xfffe + 0xffffffffffffffff * 0x10000 = (0xfffffffffffffffe, carry 0xffff)/(0xfffffffffffffffe, carry 0xffff) -mpi_core_mla:"fffe":"ffffffffffffffff":"10000":"fffffffffffffffe":"ffff":"fffffffffffffffe":"ffff" - -mbedtls_mpi_core_mla #403: 0xfffe + 0xffffffffffffffff * 0xffffffff = (0xffffffff0000ffff, carry 0xfffffffe)/(0xffffffff0000ffff, carry 0xfffffffe) -mpi_core_mla:"fffe":"ffffffffffffffff":"ffffffff":"ffffffff0000ffff":"fffffffe":"ffffffff0000ffff":"fffffffe" - -mbedtls_mpi_core_mla #404: 0xfffe + 0xffffffffffffffff * 0x100000000 = (0xffffffff0000fffe, carry 0xffffffff)/(0xffffffff0000fffe, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffff":"100000000":"ffffffff0000fffe":"ffffffff":"ffffffff0000fffe":"ffffffff" - -mbedtls_mpi_core_mla #405: 0xfffe + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x808080808081807f, carry 0x7f7f7f7f7f7f7f7e)/(0x808080808081807f, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"808080808081807f":"7f7f7f7f7f7f7f7e":"808080808081807f":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #406: 0xfffe + 0xffffffffffffffff * 0x8000000000000000 = (0x800000000000fffe, carry 0x7fffffffffffffff)/(0x800000000000fffe, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffff":"8000000000000000":"800000000000fffe":"7fffffffffffffff":"800000000000fffe":"7fffffffffffffff" - -mbedtls_mpi_core_mla #407: 0xfffe + 0xffffffffffffffff * 0xfffffffffffffffe = (0x10000, carry 0xfffffffffffffffd)/(0x10000, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffff":"fffffffffffffffe":"10000":"fffffffffffffffd":"10000":"fffffffffffffffd" - -mbedtls_mpi_core_mla #408: 0xfffe + 0x10000000000000000 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"10000000000000000":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #409: 0xfffe + 0x10000000000000000 * 0x3 = (0x3000000000000fffe, carry 0x0)/(0x3000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"10000000000000000":"3":"3000000000000fffe":"0":"3000000000000fffe":"0" - -mbedtls_mpi_core_mla #410: 0xfffe + 0x10000000000000000 * 0xfe = (0xfe000000000000fffe, carry 0x0)/(0xfe000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"10000000000000000":"fe":"fe000000000000fffe":"0":"fe000000000000fffe":"0" - -mbedtls_mpi_core_mla #411: 0xfffe + 0x10000000000000000 * 0xff = (0xff000000000000fffe, carry 0x0)/(0xff000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"10000000000000000":"ff":"ff000000000000fffe":"0":"ff000000000000fffe":"0" - -mbedtls_mpi_core_mla #412: 0xfffe + 0x10000000000000000 * 0xffff = (0xffff000000000000fffe, carry 0x0)/(0xffff000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"10000000000000000":"ffff":"ffff000000000000fffe":"0":"ffff000000000000fffe":"0" - -mbedtls_mpi_core_mla #413: 0xfffe + 0x10000000000000000 * 0x10000 = (0x10000000000000000fffe, carry 0x0)/(0x10000000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"10000000000000000":"10000":"10000000000000000fffe":"0":"10000000000000000fffe":"0" - -mbedtls_mpi_core_mla #414: 0xfffe + 0x10000000000000000 * 0xffffffff = (0xffffffff000000000000fffe, carry 0x0)/(0xffffffff000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"10000000000000000":"ffffffff":"ffffffff000000000000fffe":"0":"ffffffff000000000000fffe":"0" - -mbedtls_mpi_core_mla #415: 0xfffe + 0x10000000000000000 * 0x100000000 = (0xfffe, carry 0x1)/(0x100000000000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"10000000000000000":"100000000":"fffe":"1":"100000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #416: 0xfffe + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f000000000000fffe, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f000000000000fffe":"7f7f7f7f":"7f7f7f7f7f7f7f7f000000000000fffe":"0" - -mbedtls_mpi_core_mla #417: 0xfffe + 0x10000000000000000 * 0x8000000000000000 = (0xfffe, carry 0x80000000)/(0x8000000000000000000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"10000000000000000":"8000000000000000":"fffe":"80000000":"8000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #418: 0xfffe + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe000000000000fffe, carry 0xffffffff)/(0xfffffffffffffffe000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"10000000000000000":"fffffffffffffffe":"fffffffe000000000000fffe":"ffffffff":"fffffffffffffffe000000000000fffe":"0" - -mbedtls_mpi_core_mla #419: 0xfffe + 0x1234567890abcdef0 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef0":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #420: 0xfffe + 0x1234567890abcdef0 * 0x3 = (0x369d0369b20379cce, carry 0x0)/(0x369d0369b20379cce, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef0":"3":"369d0369b20379cce":"0":"369d0369b20379cce":"0" - -mbedtls_mpi_core_mla #421: 0xfffe + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f8a766321e, carry 0x0)/(0x120fedcb9f8a766321e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef0":"fe":"120fedcb9f8a766321e":"0":"120fedcb9f8a766321e":"0" - -mbedtls_mpi_core_mla #422: 0xfffe + 0x1234567890abcdef0 * 0xff = (0x12222222181b223110e, carry 0x0)/(0x12222222181b223110e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef0":"ff":"12222222181b223110e":"0":"12222222181b223110e":"0" - -mbedtls_mpi_core_mla #423: 0xfffe + 0x1234567890abcdef0 * 0xffff = (0x123444443a333d434210e, carry 0x0)/(0x123444443a333d434210e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef0":"ffff":"123444443a333d434210e":"0":"123444443a333d434210e":"0" - -mbedtls_mpi_core_mla #424: 0xfffe + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdef0fffe, carry 0x0)/(0x1234567890abcdef0fffe, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef0":"10000":"1234567890abcdef0fffe":"0":"1234567890abcdef0fffe":"0" - -mbedtls_mpi_core_mla #425: 0xfffe + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777766f544210e, carry 0x1)/(0x123456787e7777766f544210e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef0":"ffffffff":"23456787e7777766f544210e":"1":"123456787e7777766f544210e":"0" - -mbedtls_mpi_core_mla #426: 0xfffe + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef00000fffe, carry 0x1)/(0x1234567890abcdef00000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef0":"100000000":"234567890abcdef00000fffe":"1":"1234567890abcdef00000fffe":"0" - -mbedtls_mpi_core_mla #427: 0xfffe + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708abaf5ca90e, carry 0x91107edb)/(0x91107edbd82bde76f67708abaf5ca90e, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ca90e":"91107edb":"91107edbd82bde76f67708abaf5ca90e":"0" - -mbedtls_mpi_core_mla #428: 0xfffe + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f78000000000000fffe, carry 0x91a2b3c4)/(0x91a2b3c4855e6f78000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef0":"8000000000000000":"855e6f78000000000000fffe":"91a2b3c4":"91a2b3c4855e6f78000000000000fffe":"0" - -mbedtls_mpi_core_mla #429: 0xfffe + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530edea87421e, carry 0x123456789)/(0x234567890abcdeedb97530edea87421e, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea87421e":"123456789":"234567890abcdeedb97530edea87421e":"1" - -mbedtls_mpi_core_mla #430: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #431: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfcfcfdfcf8, carry 0x2)/(0xfffffffffffffffffcfcfcfcfcfdfcf8, carry 0x2) -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfdfcf8":"2":"fffffffffffffffffcfcfcfcfcfdfcf8":"2" - -mbedtls_mpi_core_mla #432: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010101020002, carry 0xfd)/(0xffffffffffffffff0101010101020002, carry 0xfd) -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101020002":"fd":"ffffffffffffffff0101010101020002":"fd" - -mbedtls_mpi_core_mla #433: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffff000000000000ff00, carry 0xfe)/(0xffffffffffffffff000000000000ff00, carry 0xfe) -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff000000000000ff00":"fe":"ffffffffffffffff000000000000ff00":"fe" - -mbedtls_mpi_core_mla #434: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeff0000000000000100, carry 0xfffe)/(0xfffffffffffffeff0000000000000100, carry 0xfffe) -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff0000000000000100":"fffe":"fffffffffffffeff0000000000000100":"fffe" - -mbedtls_mpi_core_mla #435: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefefefefffe, carry 0xffff)/(0xfffffffffffffefefefefefefefefffe, carry 0xffff) -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefefffe":"ffff":"fffffffffffffefefefefefefefefffe":"ffff" - -mbedtls_mpi_core_mla #436: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefefeffffffff01020100, carry 0xfffffffe)/(0xfffffffffefefefeffffffff01020100, carry 0xfffffffe) -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01020100":"fffffffe":"fffffffffefefefeffffffff01020100":"fffffffe" - -mbedtls_mpi_core_mla #437: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefe0000fffe, carry 0xffffffff)/(0xfffffffffefefefefefefefe0000fffe, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe0000fffe":"ffffffff":"fffffffffefefefefefefefe0000fffe":"ffffffff" - -mbedtls_mpi_core_mla #438: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840383038200, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840383038200, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383038200":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383038200":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #439: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f000000000000fffe, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f000000000000fffe, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f000000000000fffe":"7fffffffffffffff":"ff7f7f7f7f7f7f7f000000000000fffe":"7fffffffffffffff" - -mbedtls_mpi_core_mla #440: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020202030202, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020202030202, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202030202":"fffffffffffffffd":"fefefefefefefefe0202020202030202":"fffffffffffffffd" - -mbedtls_mpi_core_mla #441: 0xfffe + 0x100000000000000000000000000000000 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"100000000000000000000000000000000":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #442: 0xfffe + 0x100000000000000000000000000000000 * 0x3 = (0x30000000000000000000000000000fffe, carry 0x0)/(0x30000000000000000000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000000000000000000000000000":"3":"30000000000000000000000000000fffe":"0":"30000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #443: 0xfffe + 0x100000000000000000000000000000000 * 0xfe = (0xfe0000000000000000000000000000fffe, carry 0x0)/(0xfe0000000000000000000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000000000000000000000000000":"fe":"fe0000000000000000000000000000fffe":"0":"fe0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #444: 0xfffe + 0x100000000000000000000000000000000 * 0xff = (0xff0000000000000000000000000000fffe, carry 0x0)/(0xff0000000000000000000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000000000000000000000000000":"ff":"ff0000000000000000000000000000fffe":"0":"ff0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #445: 0xfffe + 0x100000000000000000000000000000000 * 0xffff = (0xffff0000000000000000000000000000fffe, carry 0x0)/(0xffff0000000000000000000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000000000000000000000000000":"ffff":"ffff0000000000000000000000000000fffe":"0":"ffff0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #446: 0xfffe + 0x100000000000000000000000000000000 * 0x10000 = (0x100000000000000000000000000000000fffe, carry 0x0)/(0x100000000000000000000000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000000000000000000000000000":"10000":"100000000000000000000000000000000fffe":"0":"100000000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #447: 0xfffe + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff0000000000000000000000000000fffe, carry 0x0)/(0xffffffff0000000000000000000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000000000000000000fffe":"0":"ffffffff0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #448: 0xfffe + 0x100000000000000000000000000000000 * 0x100000000 = (0xfffe, carry 0x1)/(0x1000000000000000000000000000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000000000000000000000000000":"100000000":"fffe":"1":"1000000000000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #449: 0xfffe + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000000000000000000fffe, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000000000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000000000000000fffe":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #450: 0xfffe + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0xfffe, carry 0x80000000)/(0x80000000000000000000000000000000000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000000000000000000000000000":"8000000000000000":"fffe":"80000000":"80000000000000000000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #451: 0xfffe + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000000000000000000fffe, carry 0xffffffff)/(0xfffffffffffffffe0000000000000000000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000000000000000000fffe":"ffffffff":"fffffffffffffffe0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #452: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #453: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20379cce, carry 0x0)/(0x369d0369b20369cd0369d0369b20379cce, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20379cce":"0":"369d0369b20369cd0369d0369b20379cce":"0" - -mbedtls_mpi_core_mla #454: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a766321e, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a766321e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a766321e":"0":"120fedcb9f8a76532320fedcb9f8a766321e":"0" - -mbedtls_mpi_core_mla #455: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b223110e, carry 0x0)/(0x12222222181b2221122222222181b223110e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b223110e":"0":"12222222181b2221122222222181b223110e":"0" - -mbedtls_mpi_core_mla #456: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d434210e, carry 0x0)/(0x123444443a333d433334444443a333d434210e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d434210e":"0":"123444443a333d433334444443a333d434210e":"0" - -mbedtls_mpi_core_mla #457: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef0fffe, carry 0x0)/(0x1234567890abcdef01234567890abcdef0fffe, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef0fffe":"0":"1234567890abcdef01234567890abcdef0fffe":"0" - -mbedtls_mpi_core_mla #458: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777766f544210e, carry 0x12)/(0x123456787e7777767077777887e7777766f544210e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f544210e":"12":"123456787e7777767077777887e7777766f544210e":"0" - -mbedtls_mpi_core_mla #459: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef00000fffe, carry 0x12)/(0x1234567890abcdef01234567890abcdef00000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef00000fffe":"12":"1234567890abcdef01234567890abcdef00000fffe":"0" - -mbedtls_mpi_core_mla #460: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708abaf5ca90e, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708abaf5ca90e, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ca90e":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ca90e":"9" - -mbedtls_mpi_core_mla #461: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f78000000000000fffe, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f78000000000000fffe":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"9" - -mbedtls_mpi_core_mla #462: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530edea87421e, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530edea87421e, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea87421e":"1234567890":"34567890abcdeedcba987667b32100edb97530edea87421e":"12" - -mbedtls_mpi_core_mla #463: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #464: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffb, carry 0x3)/(0xfffb, carry 0x3) -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffb":"3":"fffb":"3" - -mbedtls_mpi_core_mla #465: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xff00, carry 0xfe)/(0xff00, carry 0xfe) -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ff00":"fe":"ff00":"fe" - -mbedtls_mpi_core_mla #466: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xfeff, carry 0xff)/(0xfeff, carry 0xff) -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"feff":"ff":"feff":"ff" - -mbedtls_mpi_core_mla #467: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0xfffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0xfffe) -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe" - -mbedtls_mpi_core_mla #468: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0xffff)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0xffff) -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff" - -mbedtls_mpi_core_mla #469: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff, carry 0xfffffffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff, carry 0xfffffffe) -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff":"fffffffe" - -mbedtls_mpi_core_mla #470: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe":"ffffffff" - -mbedtls_mpi_core_mla #471: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #472: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe":"7fffffffffffffff" - -mbedtls_mpi_core_mla #473: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000":"fffffffffffffffd" - -mbedtls_mpi_core_mla #474: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #475: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce":"0" - -mbedtls_mpi_core_mla #476: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e":"0" - -mbedtls_mpi_core_mla #477: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222181b223110e, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222181b223110e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b223110e":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b223110e":"0" - -mbedtls_mpi_core_mla #478: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e":"0" - -mbedtls_mpi_core_mla #479: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe":"0" - -mbedtls_mpi_core_mla #480: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e":"0" - -mbedtls_mpi_core_mla #481: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe":"0" - -mbedtls_mpi_core_mla #482: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e":"911" - -mbedtls_mpi_core_mla #483: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"91a" - -mbedtls_mpi_core_mla #484: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e":"1234" - -mbedtls_mpi_core_mla #485: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #486: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f, carry 0x0) -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f":"0" - -mbedtls_mpi_core_mla #487: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8, carry 0x0) -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8":"0" - -mbedtls_mpi_core_mla #488: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3, carry 0x0) -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3":"0" - -mbedtls_mpi_core_mla #489: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3, carry 0x0) -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3":"0" - -mbedtls_mpi_core_mla #490: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe, carry 0x0) -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe":"0" - -mbedtls_mpi_core_mla #491: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3, carry 0x4) -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3":"4" - -mbedtls_mpi_core_mla #492: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe":"4" - -mbedtls_mpi_core_mla #493: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953":"26d473ca9" - -mbedtls_mpi_core_mla #494: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe":"26fb9683d" - -mbedtls_mpi_core_mla #495: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8":"4df72d07b" - -mbedtls_mpi_core_mla #496: 0xffffffff + 0x0 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"0":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #497: 0xffffffff + 0x0 * 0x3 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"0":"3":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #498: 0xffffffff + 0x0 * 0xfe = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"0":"fe":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #499: 0xffffffff + 0x0 * 0xff = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"0":"ff":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #500: 0xffffffff + 0x0 * 0xffff = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"0":"ffff":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #501: 0xffffffff + 0x0 * 0x10000 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"0":"10000":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #502: 0xffffffff + 0x0 * 0xffffffff = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"0":"ffffffff":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #503: 0xffffffff + 0x0 * 0x100000000 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"0":"100000000":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #504: 0xffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #505: 0xffffffff + 0x0 * 0x8000000000000000 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"0":"8000000000000000":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #506: 0xffffffff + 0x0 * 0xfffffffffffffffe = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"0":"fffffffffffffffe":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #507: 0xffffffff + 0x1 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"1":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #508: 0xffffffff + 0x1 * 0x3 = (0x2, carry 0x1)/(0x100000002, carry 0x0) -mpi_core_mla:"ffffffff":"1":"3":"2":"1":"100000002":"0" - -mbedtls_mpi_core_mla #509: 0xffffffff + 0x1 * 0xfe = (0xfd, carry 0x1)/(0x1000000fd, carry 0x0) -mpi_core_mla:"ffffffff":"1":"fe":"fd":"1":"1000000fd":"0" - -mbedtls_mpi_core_mla #510: 0xffffffff + 0x1 * 0xff = (0xfe, carry 0x1)/(0x1000000fe, carry 0x0) -mpi_core_mla:"ffffffff":"1":"ff":"fe":"1":"1000000fe":"0" - -mbedtls_mpi_core_mla #511: 0xffffffff + 0x1 * 0xffff = (0xfffe, carry 0x1)/(0x10000fffe, carry 0x0) -mpi_core_mla:"ffffffff":"1":"ffff":"fffe":"1":"10000fffe":"0" - -mbedtls_mpi_core_mla #512: 0xffffffff + 0x1 * 0x10000 = (0xffff, carry 0x1)/(0x10000ffff, carry 0x0) -mpi_core_mla:"ffffffff":"1":"10000":"ffff":"1":"10000ffff":"0" - -mbedtls_mpi_core_mla #513: 0xffffffff + 0x1 * 0xffffffff = (0xfffffffe, carry 0x1)/(0x1fffffffe, carry 0x0) -mpi_core_mla:"ffffffff":"1":"ffffffff":"fffffffe":"1":"1fffffffe":"0" - -mbedtls_mpi_core_mla #514: 0xffffffff + 0x1 * 0x100000000 = (0xffffffff, carry 0x1)/(0x1ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1":"100000000":"ffffffff":"1":"1ffffffff":"0" - -mbedtls_mpi_core_mla #515: 0xffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7e, carry 0x7f7f7f80)/(0x7f7f7f807f7f7f7e, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7e":"7f7f7f80":"7f7f7f807f7f7f7e":"0" - -mbedtls_mpi_core_mla #516: 0xffffffff + 0x1 * 0x8000000000000000 = (0xffffffff, carry 0x80000000)/(0x80000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1":"8000000000000000":"ffffffff":"80000000":"80000000ffffffff":"0" - -mbedtls_mpi_core_mla #517: 0xffffffff + 0x1 * 0xfffffffffffffffe = (0xfffffffd, carry 0x100000000)/(0xfffffffd, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1":"fffffffffffffffe":"fffffffd":"100000000":"fffffffd":"1" - -mbedtls_mpi_core_mla #518: 0xffffffff + 0xfffe * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"fffe":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #519: 0xffffffff + 0xfffe * 0x3 = (0x2fff9, carry 0x1)/(0x10002fff9, carry 0x0) -mpi_core_mla:"ffffffff":"fffe":"3":"2fff9":"1":"10002fff9":"0" - -mbedtls_mpi_core_mla #520: 0xffffffff + 0xfffe * 0xfe = (0xfdfe03, carry 0x1)/(0x100fdfe03, carry 0x0) -mpi_core_mla:"ffffffff":"fffe":"fe":"fdfe03":"1":"100fdfe03":"0" - -mbedtls_mpi_core_mla #521: 0xffffffff + 0xfffe * 0xff = (0xfefe01, carry 0x1)/(0x100fefe01, carry 0x0) -mpi_core_mla:"ffffffff":"fffe":"ff":"fefe01":"1":"100fefe01":"0" - -mbedtls_mpi_core_mla #522: 0xffffffff + 0xfffe * 0xffff = (0xfffd0001, carry 0x1)/(0x1fffd0001, carry 0x0) -mpi_core_mla:"ffffffff":"fffe":"ffff":"fffd0001":"1":"1fffd0001":"0" - -mbedtls_mpi_core_mla #523: 0xffffffff + 0xfffe * 0x10000 = (0xfffdffff, carry 0x1)/(0x1fffdffff, carry 0x0) -mpi_core_mla:"ffffffff":"fffe":"10000":"fffdffff":"1":"1fffdffff":"0" - -mbedtls_mpi_core_mla #524: 0xffffffff + 0xfffe * 0xffffffff = (0xffff0001, carry 0xfffe)/(0xfffeffff0001, carry 0x0) -mpi_core_mla:"ffffffff":"fffe":"ffffffff":"ffff0001":"fffe":"fffeffff0001":"0" - -mbedtls_mpi_core_mla #525: 0xffffffff + 0xfffe * 0x100000000 = (0xffffffff, carry 0xfffe)/(0xfffeffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffe":"100000000":"ffffffff":"fffe":"fffeffffffff":"0" - -mbedtls_mpi_core_mla #526: 0xffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80800101, carry 0x7f7e80808081)/(0x8080808180800101, carry 0x7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffe":"7f7f7f7f7f7f7f7f":"80800101":"7f7e80808081":"8080808180800101":"7f7e" - -mbedtls_mpi_core_mla #527: 0xffffffff + 0xfffe * 0x8000000000000000 = (0xffffffff, carry 0x7fff00000000)/(0xffffffff, carry 0x7fff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffe":"8000000000000000":"ffffffff":"7fff00000000":"ffffffff":"7fff" - -mbedtls_mpi_core_mla #528: 0xffffffff + 0xfffe * 0xfffffffffffffffe = (0xfffe0003, carry 0xfffe00000000)/(0xfffe0003, carry 0xfffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffe":"fffffffffffffffe":"fffe0003":"fffe00000000":"fffe0003":"fffe" - -mbedtls_mpi_core_mla #529: 0xffffffff + 0xffffffff * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #530: 0xffffffff + 0xffffffff * 0x3 = (0xfffffffc, carry 0x3)/(0x3fffffffc, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffff":"3":"fffffffc":"3":"3fffffffc":"0" - -mbedtls_mpi_core_mla #531: 0xffffffff + 0xffffffff * 0xfe = (0xffffff01, carry 0xfe)/(0xfeffffff01, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffff":"fe":"ffffff01":"fe":"feffffff01":"0" - -mbedtls_mpi_core_mla #532: 0xffffffff + 0xffffffff * 0xff = (0xffffff00, carry 0xff)/(0xffffffff00, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffff":"ff":"ffffff00":"ff":"ffffffff00":"0" - -mbedtls_mpi_core_mla #533: 0xffffffff + 0xffffffff * 0xffff = (0xffff0000, carry 0xffff)/(0xffffffff0000, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffff":"ffff":"ffff0000":"ffff":"ffffffff0000":"0" - -mbedtls_mpi_core_mla #534: 0xffffffff + 0xffffffff * 0x10000 = (0xfffeffff, carry 0x10000)/(0x10000fffeffff, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffff":"10000":"fffeffff":"10000":"10000fffeffff":"0" - -mbedtls_mpi_core_mla #535: 0xffffffff + 0xffffffff * 0xffffffff = (0x0, carry 0xffffffff)/(0xffffffff00000000, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffff":"ffffffff":"0":"ffffffff":"ffffffff00000000":"0" - -mbedtls_mpi_core_mla #536: 0xffffffff + 0xffffffff * 0x100000000 = (0xffffffff, carry 0xffffffff)/(0xffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffff":"100000000":"ffffffff":"ffffffff":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #537: 0xffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x80808080, carry 0x7f7f7f7f00000000)/(0x80808080, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"80808080":"7f7f7f7f00000000":"80808080":"7f7f7f7f" - -mbedtls_mpi_core_mla #538: 0xffffffff + 0xffffffff * 0x8000000000000000 = (0xffffffff, carry 0x7fffffff80000000)/(0x80000000ffffffff, carry 0x7fffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffff":"8000000000000000":"ffffffff":"7fffffff80000000":"80000000ffffffff":"7fffffff" - -mbedtls_mpi_core_mla #539: 0xffffffff + 0xffffffff * 0xfffffffffffffffe = (0x1, carry 0xfffffffeffffffff)/(0xffffffff00000001, carry 0xfffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffff":"fffffffffffffffe":"1":"fffffffeffffffff":"ffffffff00000001":"fffffffe" - -mbedtls_mpi_core_mla #540: 0xffffffff + 0x100000000 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #541: 0xffffffff + 0x100000000 * 0x3 = (0x3ffffffff, carry 0x0)/(0x3ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000":"3":"3ffffffff":"0":"3ffffffff":"0" - -mbedtls_mpi_core_mla #542: 0xffffffff + 0x100000000 * 0xfe = (0xfeffffffff, carry 0x0)/(0xfeffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000":"fe":"feffffffff":"0":"feffffffff":"0" - -mbedtls_mpi_core_mla #543: 0xffffffff + 0x100000000 * 0xff = (0xffffffffff, carry 0x0)/(0xffffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000":"ff":"ffffffffff":"0":"ffffffffff":"0" - -mbedtls_mpi_core_mla #544: 0xffffffff + 0x100000000 * 0xffff = (0xffffffffffff, carry 0x0)/(0xffffffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000":"ffff":"ffffffffffff":"0":"ffffffffffff":"0" - -mbedtls_mpi_core_mla #545: 0xffffffff + 0x100000000 * 0x10000 = (0x10000ffffffff, carry 0x0)/(0x10000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000":"10000":"10000ffffffff":"0":"10000ffffffff":"0" - -mbedtls_mpi_core_mla #546: 0xffffffff + 0x100000000 * 0xffffffff = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000":"ffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #547: 0xffffffff + 0x100000000 * 0x100000000 = (0xffffffff, carry 0x1)/(0xffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000":"100000000":"ffffffff":"1":"ffffffff":"1" - -mbedtls_mpi_core_mla #548: 0xffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7fffffffff, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffff":"7f7f7f7f":"7f7f7f7fffffffff":"7f7f7f7f" - -mbedtls_mpi_core_mla #549: 0xffffffff + 0x100000000 * 0x8000000000000000 = (0xffffffff, carry 0x80000000)/(0xffffffff, carry 0x80000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000":"8000000000000000":"ffffffff":"80000000":"ffffffff":"80000000" - -mbedtls_mpi_core_mla #550: 0xffffffff + 0x100000000 * 0xfffffffffffffffe = (0xfffffffeffffffff, carry 0xffffffff)/(0xfffffffeffffffff, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000":"fffffffffffffffe":"fffffffeffffffff":"ffffffff":"fffffffeffffffff":"ffffffff" - -mbedtls_mpi_core_mla #551: 0xffffffff + 0x20000000000000 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"20000000000000":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #552: 0xffffffff + 0x20000000000000 * 0x3 = (0x600000ffffffff, carry 0x0)/(0x600000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"20000000000000":"3":"600000ffffffff":"0":"600000ffffffff":"0" - -mbedtls_mpi_core_mla #553: 0xffffffff + 0x20000000000000 * 0xfe = (0x1fc00000ffffffff, carry 0x0)/(0x1fc00000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"20000000000000":"fe":"1fc00000ffffffff":"0":"1fc00000ffffffff":"0" - -mbedtls_mpi_core_mla #554: 0xffffffff + 0x20000000000000 * 0xff = (0x1fe00000ffffffff, carry 0x0)/(0x1fe00000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"20000000000000":"ff":"1fe00000ffffffff":"0":"1fe00000ffffffff":"0" - -mbedtls_mpi_core_mla #555: 0xffffffff + 0x20000000000000 * 0xffff = (0xffe00000ffffffff, carry 0x1f)/(0xffe00000ffffffff, carry 0x1f) -mpi_core_mla:"ffffffff":"20000000000000":"ffff":"ffe00000ffffffff":"1f":"ffe00000ffffffff":"1f" - -mbedtls_mpi_core_mla #556: 0xffffffff + 0x20000000000000 * 0x10000 = (0xffffffff, carry 0x20)/(0xffffffff, carry 0x20) -mpi_core_mla:"ffffffff":"20000000000000":"10000":"ffffffff":"20":"ffffffff":"20" - -mbedtls_mpi_core_mla #557: 0xffffffff + 0x20000000000000 * 0xffffffff = (0xffe00000ffffffff, carry 0x1fffff)/(0xffe00000ffffffff, carry 0x1fffff) -mpi_core_mla:"ffffffff":"20000000000000":"ffffffff":"ffe00000ffffffff":"1fffff":"ffe00000ffffffff":"1fffff" - -mbedtls_mpi_core_mla #558: 0xffffffff + 0x20000000000000 * 0x100000000 = (0xffffffff, carry 0x200000)/(0xffffffff, carry 0x200000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"20000000000000":"100000000":"ffffffff":"200000":"ffffffff":"200000" - -mbedtls_mpi_core_mla #559: 0xffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe00000ffffffff, carry 0xfefefefefefef)/(0xefe00000ffffffff, carry 0xfefefefefefef) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"efe00000ffffffff":"fefefefefefef":"efe00000ffffffff":"fefefefefefef" - -mbedtls_mpi_core_mla #560: 0xffffffff + 0x20000000000000 * 0x8000000000000000 = (0xffffffff, carry 0x10000000000000)/(0xffffffff, carry 0x10000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"20000000000000":"8000000000000000":"ffffffff":"10000000000000":"ffffffff":"10000000000000" - -mbedtls_mpi_core_mla #561: 0xffffffff + 0x20000000000000 * 0xfffffffffffffffe = (0xffc00000ffffffff, carry 0x1fffffffffffff)/(0xffc00000ffffffff, carry 0x1fffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"20000000000000":"fffffffffffffffe":"ffc00000ffffffff":"1fffffffffffff":"ffc00000ffffffff":"1fffffffffffff" - -mbedtls_mpi_core_mla #562: 0xffffffff + 0xffffffffffffffff * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffffffffffff":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #563: 0xffffffff + 0xffffffffffffffff * 0x3 = (0xfffffffc, carry 0x3)/(0xfffffffc, carry 0x3) -mpi_core_mla:"ffffffff":"ffffffffffffffff":"3":"fffffffc":"3":"fffffffc":"3" - -mbedtls_mpi_core_mla #564: 0xffffffff + 0xffffffffffffffff * 0xfe = (0xffffff01, carry 0xfe)/(0xffffff01, carry 0xfe) -mpi_core_mla:"ffffffff":"ffffffffffffffff":"fe":"ffffff01":"fe":"ffffff01":"fe" - -mbedtls_mpi_core_mla #565: 0xffffffff + 0xffffffffffffffff * 0xff = (0xffffff00, carry 0xff)/(0xffffff00, carry 0xff) -mpi_core_mla:"ffffffff":"ffffffffffffffff":"ff":"ffffff00":"ff":"ffffff00":"ff" - -mbedtls_mpi_core_mla #566: 0xffffffff + 0xffffffffffffffff * 0xffff = (0xffff0000, carry 0xffff)/(0xffff0000, carry 0xffff) -mpi_core_mla:"ffffffff":"ffffffffffffffff":"ffff":"ffff0000":"ffff":"ffff0000":"ffff" - -mbedtls_mpi_core_mla #567: 0xffffffff + 0xffffffffffffffff * 0x10000 = (0xfffeffff, carry 0x10000)/(0xfffeffff, carry 0x10000) -mpi_core_mla:"ffffffff":"ffffffffffffffff":"10000":"fffeffff":"10000":"fffeffff":"10000" - -mbedtls_mpi_core_mla #568: 0xffffffff + 0xffffffffffffffff * 0xffffffff = (0x0, carry 0xffffffff)/(0x0, carry 0xffffffff) -mpi_core_mla:"ffffffff":"ffffffffffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff" - -mbedtls_mpi_core_mla #569: 0xffffffff + 0xffffffffffffffff * 0x100000000 = (0xffffffffffffffff, carry 0xffffffff)/(0xffffffffffffffff, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffff":"100000000":"ffffffffffffffff":"ffffffff":"ffffffffffffffff":"ffffffff" - -mbedtls_mpi_core_mla #570: 0xffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808180808080, carry 0x7f7f7f7f7f7f7f7e)/(0x8080808180808080, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808180808080":"7f7f7f7f7f7f7f7e":"8080808180808080":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #571: 0xffffffff + 0xffffffffffffffff * 0x8000000000000000 = (0x80000000ffffffff, carry 0x7fffffffffffffff)/(0x80000000ffffffff, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffff":"8000000000000000":"80000000ffffffff":"7fffffffffffffff":"80000000ffffffff":"7fffffffffffffff" - -mbedtls_mpi_core_mla #572: 0xffffffff + 0xffffffffffffffff * 0xfffffffffffffffe = (0x100000001, carry 0xfffffffffffffffd)/(0x100000001, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffff":"fffffffffffffffe":"100000001":"fffffffffffffffd":"100000001":"fffffffffffffffd" - -mbedtls_mpi_core_mla #573: 0xffffffff + 0x10000000000000000 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"10000000000000000":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #574: 0xffffffff + 0x10000000000000000 * 0x3 = (0x300000000ffffffff, carry 0x0)/(0x300000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"10000000000000000":"3":"300000000ffffffff":"0":"300000000ffffffff":"0" - -mbedtls_mpi_core_mla #575: 0xffffffff + 0x10000000000000000 * 0xfe = (0xfe00000000ffffffff, carry 0x0)/(0xfe00000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"10000000000000000":"fe":"fe00000000ffffffff":"0":"fe00000000ffffffff":"0" - -mbedtls_mpi_core_mla #576: 0xffffffff + 0x10000000000000000 * 0xff = (0xff00000000ffffffff, carry 0x0)/(0xff00000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"10000000000000000":"ff":"ff00000000ffffffff":"0":"ff00000000ffffffff":"0" - -mbedtls_mpi_core_mla #577: 0xffffffff + 0x10000000000000000 * 0xffff = (0xffff00000000ffffffff, carry 0x0)/(0xffff00000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"10000000000000000":"ffff":"ffff00000000ffffffff":"0":"ffff00000000ffffffff":"0" - -mbedtls_mpi_core_mla #578: 0xffffffff + 0x10000000000000000 * 0x10000 = (0x1000000000000ffffffff, carry 0x0)/(0x1000000000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"10000000000000000":"10000":"1000000000000ffffffff":"0":"1000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #579: 0xffffffff + 0x10000000000000000 * 0xffffffff = (0xffffffff00000000ffffffff, carry 0x0)/(0xffffffff00000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"10000000000000000":"ffffffff":"ffffffff00000000ffffffff":"0":"ffffffff00000000ffffffff":"0" - -mbedtls_mpi_core_mla #580: 0xffffffff + 0x10000000000000000 * 0x100000000 = (0xffffffff, carry 0x1)/(0x10000000000000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"10000000000000000":"100000000":"ffffffff":"1":"10000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #581: 0xffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000ffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000ffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000ffffffff":"0" - -mbedtls_mpi_core_mla #582: 0xffffffff + 0x10000000000000000 * 0x8000000000000000 = (0xffffffff, carry 0x80000000)/(0x800000000000000000000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"10000000000000000":"8000000000000000":"ffffffff":"80000000":"800000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #583: 0xffffffff + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000ffffffff, carry 0xffffffff)/(0xfffffffffffffffe00000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"10000000000000000":"fffffffffffffffe":"fffffffe00000000ffffffff":"ffffffff":"fffffffffffffffe00000000ffffffff":"0" - -mbedtls_mpi_core_mla #584: 0xffffffff + 0x1234567890abcdef0 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #585: 0xffffffff + 0x1234567890abcdef0 * 0x3 = (0x369d0369c20369ccf, carry 0x0)/(0x369d0369c20369ccf, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef0":"3":"369d0369c20369ccf":"0":"369d0369c20369ccf":"0" - -mbedtls_mpi_core_mla #586: 0xffffffff + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f9a765321f, carry 0x0)/(0x120fedcb9f9a765321f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef0":"fe":"120fedcb9f9a765321f":"0":"120fedcb9f9a765321f":"0" - -mbedtls_mpi_core_mla #587: 0xffffffff + 0x1234567890abcdef0 * 0xff = (0x12222222182b222110f, carry 0x0)/(0x12222222182b222110f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef0":"ff":"12222222182b222110f":"0":"12222222182b222110f":"0" - -mbedtls_mpi_core_mla #588: 0xffffffff + 0x1234567890abcdef0 * 0xffff = (0x123444443a334d433210f, carry 0x0)/(0x123444443a334d433210f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef0":"ffff":"123444443a334d433210f":"0":"123444443a334d433210f":"0" - -mbedtls_mpi_core_mla #589: 0xffffffff + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abddeefffff, carry 0x0)/(0x1234567890abddeefffff, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef0":"10000":"1234567890abddeefffff":"0":"1234567890abddeefffff":"0" - -mbedtls_mpi_core_mla #590: 0xffffffff + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777767f543210f, carry 0x1)/(0x123456787e7777767f543210f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef0":"ffffffff":"23456787e7777767f543210f":"1":"123456787e7777767f543210f":"0" - -mbedtls_mpi_core_mla #591: 0xffffffff + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef0ffffffff, carry 0x1)/(0x1234567890abcdef0ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef0":"100000000":"234567890abcdef0ffffffff":"1":"1234567890abcdef0ffffffff":"0" - -mbedtls_mpi_core_mla #592: 0xffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708acaf5ba90f, carry 0x91107edb)/(0x91107edbd82bde76f67708acaf5ba90f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708acaf5ba90f":"91107edb":"91107edbd82bde76f67708acaf5ba90f":"0" - -mbedtls_mpi_core_mla #593: 0xffffffff + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f7800000000ffffffff, carry 0x91a2b3c4)/(0x91a2b3c4855e6f7800000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef0":"8000000000000000":"855e6f7800000000ffffffff":"91a2b3c4":"91a2b3c4855e6f7800000000ffffffff":"0" - -mbedtls_mpi_core_mla #594: 0xffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530eeea86421f, carry 0x123456789)/(0x234567890abcdeedb97530eeea86421f, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530eeea86421f":"123456789":"234567890abcdeedb97530eeea86421f":"1" - -mbedtls_mpi_core_mla #595: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #596: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfdfcfcfcf9, carry 0x2)/(0xfffffffffffffffffcfcfcfdfcfcfcf9, carry 0x2) -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfdfcfcfcf9":"2":"fffffffffffffffffcfcfcfdfcfcfcf9":"2" - -mbedtls_mpi_core_mla #597: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010201010003, carry 0xfd)/(0xffffffffffffffff0101010201010003, carry 0xfd) -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010201010003":"fd":"ffffffffffffffff0101010201010003":"fd" - -mbedtls_mpi_core_mla #598: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffff00000000ffffff01, carry 0xfe)/(0xffffffffffffffff00000000ffffff01, carry 0xfe) -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff00000000ffffff01":"fe":"ffffffffffffffff00000000ffffff01":"fe" - -mbedtls_mpi_core_mla #599: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeff00000000ffff0101, carry 0xfffe)/(0xfffffffffffffeff00000000ffff0101, carry 0xfffe) -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff00000000ffff0101":"fffe":"fffffffffffffeff00000000ffff0101":"fffe" - -mbedtls_mpi_core_mla #600: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefffefdffff, carry 0xffff)/(0xfffffffffffffefefefefefffefdffff, carry 0xffff) -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefffefdffff":"ffff":"fffffffffffffefefefefefffefdffff":"ffff" - -mbedtls_mpi_core_mla #601: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeff0000000001010101, carry 0xfffffffe)/(0xfffffffffefefeff0000000001010101, carry 0xfffffffe) -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff0000000001010101":"fffffffe":"fffffffffefefeff0000000001010101":"fffffffe" - -mbedtls_mpi_core_mla #602: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefeffffffff, carry 0xffffffff)/(0xfffffffffefefefefefefefeffffffff, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefeffffffff":"ffffffff":"fffffffffefefefefefefefeffffffff":"ffffffff" - -mbedtls_mpi_core_mla #603: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840483028201, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840483028201, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840483028201":"7f7f7f7f7f7f7f7e":"ff800081018202828504840483028201":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #604: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f00000000ffffffff, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f00000000ffffffff, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f00000000ffffffff":"7fffffffffffffff":"ff7f7f7f7f7f7f7f00000000ffffffff":"7fffffffffffffff" - -mbedtls_mpi_core_mla #605: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020302020203, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020302020203, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020302020203":"fffffffffffffffd":"fefefefefefefefe0202020302020203":"fffffffffffffffd" - -mbedtls_mpi_core_mla #606: 0xffffffff + 0x100000000000000000000000000000000 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #607: 0xffffffff + 0x100000000000000000000000000000000 * 0x3 = (0x3000000000000000000000000ffffffff, carry 0x0)/(0x3000000000000000000000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"3":"3000000000000000000000000ffffffff":"0":"3000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #608: 0xffffffff + 0x100000000000000000000000000000000 * 0xfe = (0xfe000000000000000000000000ffffffff, carry 0x0)/(0xfe000000000000000000000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"fe":"fe000000000000000000000000ffffffff":"0":"fe000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #609: 0xffffffff + 0x100000000000000000000000000000000 * 0xff = (0xff000000000000000000000000ffffffff, carry 0x0)/(0xff000000000000000000000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ff":"ff000000000000000000000000ffffffff":"0":"ff000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #610: 0xffffffff + 0x100000000000000000000000000000000 * 0xffff = (0xffff000000000000000000000000ffffffff, carry 0x0)/(0xffff000000000000000000000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ffff":"ffff000000000000000000000000ffffffff":"0":"ffff000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #611: 0xffffffff + 0x100000000000000000000000000000000 * 0x10000 = (0x10000000000000000000000000000ffffffff, carry 0x0)/(0x10000000000000000000000000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"10000":"10000000000000000000000000000ffffffff":"0":"10000000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #612: 0xffffffff + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff000000000000000000000000ffffffff, carry 0x0)/(0xffffffff000000000000000000000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ffffffff":"ffffffff000000000000000000000000ffffffff":"0":"ffffffff000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #613: 0xffffffff + 0x100000000000000000000000000000000 * 0x100000000 = (0xffffffff, carry 0x1)/(0x100000000000000000000000000000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"100000000":"ffffffff":"1":"100000000000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #614: 0xffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f000000000000000000000000ffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f000000000000000000000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f000000000000000000000000ffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #615: 0xffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0xffffffff, carry 0x80000000)/(0x8000000000000000000000000000000000000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"8000000000000000":"ffffffff":"80000000":"8000000000000000000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #616: 0xffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe000000000000000000000000ffffffff, carry 0xffffffff)/(0xfffffffffffffffe000000000000000000000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe000000000000000000000000ffffffff":"ffffffff":"fffffffffffffffe000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #617: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #618: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369c20369ccf, carry 0x0)/(0x369d0369b20369cd0369d0369c20369ccf, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369c20369ccf":"0":"369d0369b20369cd0369d0369c20369ccf":"0" - -mbedtls_mpi_core_mla #619: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f9a765321f, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f9a765321f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f9a765321f":"0":"120fedcb9f8a76532320fedcb9f9a765321f":"0" - -mbedtls_mpi_core_mla #620: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222182b222110f, carry 0x0)/(0x12222222181b2221122222222182b222110f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222182b222110f":"0":"12222222181b2221122222222182b222110f":"0" - -mbedtls_mpi_core_mla #621: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a334d433210f, carry 0x0)/(0x123444443a333d433334444443a334d433210f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a334d433210f":"0":"123444443a333d433334444443a334d433210f":"0" - -mbedtls_mpi_core_mla #622: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abddeefffff, carry 0x0)/(0x1234567890abcdef01234567890abddeefffff, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abddeefffff":"0":"1234567890abcdef01234567890abddeefffff":"0" - -mbedtls_mpi_core_mla #623: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777767f543210f, carry 0x12)/(0x123456787e7777767077777887e7777767f543210f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777767f543210f":"12":"123456787e7777767077777887e7777767f543210f":"0" - -mbedtls_mpi_core_mla #624: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef0ffffffff, carry 0x12)/(0x1234567890abcdef01234567890abcdef0ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef0ffffffff":"12":"1234567890abcdef01234567890abcdef0ffffffff":"0" - -mbedtls_mpi_core_mla #625: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708acaf5ba90f, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708acaf5ba90f, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708acaf5ba90f":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708acaf5ba90f":"9" - -mbedtls_mpi_core_mla #626: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f7800000000ffffffff, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f7800000000ffffffff":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"9" - -mbedtls_mpi_core_mla #627: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530eeea86421f, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530eeea86421f, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530eeea86421f":"1234567890":"34567890abcdeedcba987667b32100edb97530eeea86421f":"12" - -mbedtls_mpi_core_mla #628: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #629: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffc, carry 0x3)/(0xfffffffc, carry 0x3) -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffc":"3":"fffffffc":"3" - -mbedtls_mpi_core_mla #630: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffff01, carry 0xfe)/(0xffffff01, carry 0xfe) -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffff01":"fe":"ffffff01":"fe" - -mbedtls_mpi_core_mla #631: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffff00, carry 0xff)/(0xffffff00, carry 0xff) -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffff00":"ff":"ffffff00":"ff" - -mbedtls_mpi_core_mla #632: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffff0000, carry 0xffff)/(0xffff0000, carry 0xffff) -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff0000":"ffff":"ffff0000":"ffff" - -mbedtls_mpi_core_mla #633: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffeffff, carry 0x10000)/(0xfffeffff, carry 0x10000) -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffeffff":"10000":"fffeffff":"10000" - -mbedtls_mpi_core_mla #634: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x0, carry 0xffffffff)/(0x0, carry 0xffffffff) -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff" - -mbedtls_mpi_core_mla #635: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff" - -mbedtls_mpi_core_mla #636: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #637: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff":"7fffffffffffffff" - -mbedtls_mpi_core_mla #638: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001":"fffffffffffffffd" - -mbedtls_mpi_core_mla #639: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #640: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf":"0" - -mbedtls_mpi_core_mla #641: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f":"0" - -mbedtls_mpi_core_mla #642: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222182b222110f, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222182b222110f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222182b222110f":"0":"12222222181b2221122222222181b2221122222222181b2221122222222182b222110f":"0" - -mbedtls_mpi_core_mla #643: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f":"0" - -mbedtls_mpi_core_mla #644: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff":"0" - -mbedtls_mpi_core_mla #645: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f":"0" - -mbedtls_mpi_core_mla #646: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff":"0" - -mbedtls_mpi_core_mla #647: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f":"911" - -mbedtls_mpi_core_mla #648: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"91a" - -mbedtls_mpi_core_mla #649: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f":"1234" - -mbedtls_mpi_core_mla #650: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #651: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380, carry 0x0) -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380":"0" - -mbedtls_mpi_core_mla #652: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9, carry 0x0) -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9":"0" - -mbedtls_mpi_core_mla #653: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4, carry 0x0) -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4":"0" - -mbedtls_mpi_core_mla #654: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4, carry 0x0) -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4":"0" - -mbedtls_mpi_core_mla #655: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff, carry 0x0) -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff":"0" - -mbedtls_mpi_core_mla #656: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4, carry 0x4) -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4":"4" - -mbedtls_mpi_core_mla #657: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff":"4" - -mbedtls_mpi_core_mla #658: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954":"26d473ca9" - -mbedtls_mpi_core_mla #659: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff":"26fb9683d" - -mbedtls_mpi_core_mla #660: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9":"4df72d07b" - -mbedtls_mpi_core_mla #661: 0x100000000 + 0x0 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"0":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #662: 0x100000000 + 0x0 * 0x3 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"0":"3":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #663: 0x100000000 + 0x0 * 0xfe = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"0":"fe":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #664: 0x100000000 + 0x0 * 0xff = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"0":"ff":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #665: 0x100000000 + 0x0 * 0xffff = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"0":"ffff":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #666: 0x100000000 + 0x0 * 0x10000 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"0":"10000":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #667: 0x100000000 + 0x0 * 0xffffffff = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"0":"ffffffff":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #668: 0x100000000 + 0x0 * 0x100000000 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"0":"100000000":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #669: 0x100000000 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"0":"7f7f7f7f7f7f7f7f":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #670: 0x100000000 + 0x0 * 0x8000000000000000 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"0":"8000000000000000":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #671: 0x100000000 + 0x0 * 0xfffffffffffffffe = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"0":"fffffffffffffffe":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #672: 0x100000000 + 0x1 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"1":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #673: 0x100000000 + 0x1 * 0x3 = (0x100000003, carry 0x0)/(0x100000003, carry 0x0) -mpi_core_mla:"100000000":"1":"3":"100000003":"0":"100000003":"0" - -mbedtls_mpi_core_mla #674: 0x100000000 + 0x1 * 0xfe = (0x1000000fe, carry 0x0)/(0x1000000fe, carry 0x0) -mpi_core_mla:"100000000":"1":"fe":"1000000fe":"0":"1000000fe":"0" - -mbedtls_mpi_core_mla #675: 0x100000000 + 0x1 * 0xff = (0x1000000ff, carry 0x0)/(0x1000000ff, carry 0x0) -mpi_core_mla:"100000000":"1":"ff":"1000000ff":"0":"1000000ff":"0" - -mbedtls_mpi_core_mla #676: 0x100000000 + 0x1 * 0xffff = (0x10000ffff, carry 0x0)/(0x10000ffff, carry 0x0) -mpi_core_mla:"100000000":"1":"ffff":"10000ffff":"0":"10000ffff":"0" - -mbedtls_mpi_core_mla #677: 0x100000000 + 0x1 * 0x10000 = (0x100010000, carry 0x0)/(0x100010000, carry 0x0) -mpi_core_mla:"100000000":"1":"10000":"100010000":"0":"100010000":"0" - -mbedtls_mpi_core_mla #678: 0x100000000 + 0x1 * 0xffffffff = (0x1ffffffff, carry 0x0)/(0x1ffffffff, carry 0x0) -mpi_core_mla:"100000000":"1":"ffffffff":"1ffffffff":"0":"1ffffffff":"0" - -mbedtls_mpi_core_mla #679: 0x100000000 + 0x1 * 0x100000000 = (0x200000000, carry 0x0)/(0x200000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1":"100000000":"200000000":"0":"200000000":"0" - -mbedtls_mpi_core_mla #680: 0x100000000 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f807f7f7f7f, carry 0x0)/(0x7f7f7f807f7f7f7f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1":"7f7f7f7f7f7f7f7f":"7f7f7f807f7f7f7f":"0":"7f7f7f807f7f7f7f":"0" - -mbedtls_mpi_core_mla #681: 0x100000000 + 0x1 * 0x8000000000000000 = (0x8000000100000000, carry 0x0)/(0x8000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1":"8000000000000000":"8000000100000000":"0":"8000000100000000":"0" - -mbedtls_mpi_core_mla #682: 0x100000000 + 0x1 * 0xfffffffffffffffe = (0xfffffffe, carry 0x1)/(0xfffffffe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1":"fffffffffffffffe":"fffffffe":"1":"fffffffe":"1" - -mbedtls_mpi_core_mla #683: 0x100000000 + 0xfffe * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"fffe":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #684: 0x100000000 + 0xfffe * 0x3 = (0x10002fffa, carry 0x0)/(0x10002fffa, carry 0x0) -mpi_core_mla:"100000000":"fffe":"3":"10002fffa":"0":"10002fffa":"0" - -mbedtls_mpi_core_mla #685: 0x100000000 + 0xfffe * 0xfe = (0x100fdfe04, carry 0x0)/(0x100fdfe04, carry 0x0) -mpi_core_mla:"100000000":"fffe":"fe":"100fdfe04":"0":"100fdfe04":"0" - -mbedtls_mpi_core_mla #686: 0x100000000 + 0xfffe * 0xff = (0x100fefe02, carry 0x0)/(0x100fefe02, carry 0x0) -mpi_core_mla:"100000000":"fffe":"ff":"100fefe02":"0":"100fefe02":"0" - -mbedtls_mpi_core_mla #687: 0x100000000 + 0xfffe * 0xffff = (0x1fffd0002, carry 0x0)/(0x1fffd0002, carry 0x0) -mpi_core_mla:"100000000":"fffe":"ffff":"1fffd0002":"0":"1fffd0002":"0" - -mbedtls_mpi_core_mla #688: 0x100000000 + 0xfffe * 0x10000 = (0x1fffe0000, carry 0x0)/(0x1fffe0000, carry 0x0) -mpi_core_mla:"100000000":"fffe":"10000":"1fffe0000":"0":"1fffe0000":"0" - -mbedtls_mpi_core_mla #689: 0x100000000 + 0xfffe * 0xffffffff = (0xfffeffff0002, carry 0x0)/(0xfffeffff0002, carry 0x0) -mpi_core_mla:"100000000":"fffe":"ffffffff":"fffeffff0002":"0":"fffeffff0002":"0" - -mbedtls_mpi_core_mla #690: 0x100000000 + 0xfffe * 0x100000000 = (0xffff00000000, carry 0x0)/(0xffff00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffe":"100000000":"ffff00000000":"0":"ffff00000000":"0" - -mbedtls_mpi_core_mla #691: 0x100000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x8080808180800102, carry 0x7f7e)/(0x8080808180800102, carry 0x7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffe":"7f7f7f7f7f7f7f7f":"8080808180800102":"7f7e":"8080808180800102":"7f7e" - -mbedtls_mpi_core_mla #692: 0x100000000 + 0xfffe * 0x8000000000000000 = (0x100000000, carry 0x7fff)/(0x100000000, carry 0x7fff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffe":"8000000000000000":"100000000":"7fff":"100000000":"7fff" - -mbedtls_mpi_core_mla #693: 0x100000000 + 0xfffe * 0xfffffffffffffffe = (0xfffe0004, carry 0xfffe)/(0xfffe0004, carry 0xfffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffe":"fffffffffffffffe":"fffe0004":"fffe":"fffe0004":"fffe" - -mbedtls_mpi_core_mla #694: 0x100000000 + 0xffffffff * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"ffffffff":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #695: 0x100000000 + 0xffffffff * 0x3 = (0x3fffffffd, carry 0x0)/(0x3fffffffd, carry 0x0) -mpi_core_mla:"100000000":"ffffffff":"3":"3fffffffd":"0":"3fffffffd":"0" - -mbedtls_mpi_core_mla #696: 0x100000000 + 0xffffffff * 0xfe = (0xfeffffff02, carry 0x0)/(0xfeffffff02, carry 0x0) -mpi_core_mla:"100000000":"ffffffff":"fe":"feffffff02":"0":"feffffff02":"0" - -mbedtls_mpi_core_mla #697: 0x100000000 + 0xffffffff * 0xff = (0xffffffff01, carry 0x0)/(0xffffffff01, carry 0x0) -mpi_core_mla:"100000000":"ffffffff":"ff":"ffffffff01":"0":"ffffffff01":"0" - -mbedtls_mpi_core_mla #698: 0x100000000 + 0xffffffff * 0xffff = (0xffffffff0001, carry 0x0)/(0xffffffff0001, carry 0x0) -mpi_core_mla:"100000000":"ffffffff":"ffff":"ffffffff0001":"0":"ffffffff0001":"0" - -mbedtls_mpi_core_mla #699: 0x100000000 + 0xffffffff * 0x10000 = (0x10000ffff0000, carry 0x0)/(0x10000ffff0000, carry 0x0) -mpi_core_mla:"100000000":"ffffffff":"10000":"10000ffff0000":"0":"10000ffff0000":"0" - -mbedtls_mpi_core_mla #700: 0x100000000 + 0xffffffff * 0xffffffff = (0xffffffff00000001, carry 0x0)/(0xffffffff00000001, carry 0x0) -mpi_core_mla:"100000000":"ffffffff":"ffffffff":"ffffffff00000001":"0":"ffffffff00000001":"0" - -mbedtls_mpi_core_mla #701: 0x100000000 + 0xffffffff * 0x100000000 = (0x0, carry 0x1)/(0x0, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffff":"100000000":"0":"1":"0":"1" - -mbedtls_mpi_core_mla #702: 0x100000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x80808081, carry 0x7f7f7f7f)/(0x80808081, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffff":"7f7f7f7f7f7f7f7f":"80808081":"7f7f7f7f":"80808081":"7f7f7f7f" - -mbedtls_mpi_core_mla #703: 0x100000000 + 0xffffffff * 0x8000000000000000 = (0x8000000100000000, carry 0x7fffffff)/(0x8000000100000000, carry 0x7fffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffff":"8000000000000000":"8000000100000000":"7fffffff":"8000000100000000":"7fffffff" - -mbedtls_mpi_core_mla #704: 0x100000000 + 0xffffffff * 0xfffffffffffffffe = (0xffffffff00000002, carry 0xfffffffe)/(0xffffffff00000002, carry 0xfffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffff":"fffffffffffffffe":"ffffffff00000002":"fffffffe":"ffffffff00000002":"fffffffe" - -mbedtls_mpi_core_mla #705: 0x100000000 + 0x100000000 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #706: 0x100000000 + 0x100000000 * 0x3 = (0x400000000, carry 0x0)/(0x400000000, carry 0x0) -mpi_core_mla:"100000000":"100000000":"3":"400000000":"0":"400000000":"0" - -mbedtls_mpi_core_mla #707: 0x100000000 + 0x100000000 * 0xfe = (0xff00000000, carry 0x0)/(0xff00000000, carry 0x0) -mpi_core_mla:"100000000":"100000000":"fe":"ff00000000":"0":"ff00000000":"0" - -mbedtls_mpi_core_mla #708: 0x100000000 + 0x100000000 * 0xff = (0x10000000000, carry 0x0)/(0x10000000000, carry 0x0) -mpi_core_mla:"100000000":"100000000":"ff":"10000000000":"0":"10000000000":"0" - -mbedtls_mpi_core_mla #709: 0x100000000 + 0x100000000 * 0xffff = (0x1000000000000, carry 0x0)/(0x1000000000000, carry 0x0) -mpi_core_mla:"100000000":"100000000":"ffff":"1000000000000":"0":"1000000000000":"0" - -mbedtls_mpi_core_mla #710: 0x100000000 + 0x100000000 * 0x10000 = (0x1000100000000, carry 0x0)/(0x1000100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000":"10000":"1000100000000":"0":"1000100000000":"0" - -mbedtls_mpi_core_mla #711: 0x100000000 + 0x100000000 * 0xffffffff = (0x0, carry 0x1)/(0x0, carry 0x1) -mpi_core_mla:"100000000":"100000000":"ffffffff":"0":"1":"0":"1" - -mbedtls_mpi_core_mla #712: 0x100000000 + 0x100000000 * 0x100000000 = (0x100000000, carry 0x1)/(0x100000000, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000":"100000000":"100000000":"1":"100000000":"1" - -mbedtls_mpi_core_mla #713: 0x100000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f8000000000, carry 0x7f7f7f7f)/(0x7f7f7f8000000000, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f8000000000":"7f7f7f7f":"7f7f7f8000000000":"7f7f7f7f" - -mbedtls_mpi_core_mla #714: 0x100000000 + 0x100000000 * 0x8000000000000000 = (0x100000000, carry 0x80000000)/(0x100000000, carry 0x80000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000":"8000000000000000":"100000000":"80000000":"100000000":"80000000" - -mbedtls_mpi_core_mla #715: 0x100000000 + 0x100000000 * 0xfffffffffffffffe = (0xffffffff00000000, carry 0xffffffff)/(0xffffffff00000000, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000":"fffffffffffffffe":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #716: 0x100000000 + 0x20000000000000 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"20000000000000":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #717: 0x100000000 + 0x20000000000000 * 0x3 = (0x60000100000000, carry 0x0)/(0x60000100000000, carry 0x0) -mpi_core_mla:"100000000":"20000000000000":"3":"60000100000000":"0":"60000100000000":"0" - -mbedtls_mpi_core_mla #718: 0x100000000 + 0x20000000000000 * 0xfe = (0x1fc0000100000000, carry 0x0)/(0x1fc0000100000000, carry 0x0) -mpi_core_mla:"100000000":"20000000000000":"fe":"1fc0000100000000":"0":"1fc0000100000000":"0" - -mbedtls_mpi_core_mla #719: 0x100000000 + 0x20000000000000 * 0xff = (0x1fe0000100000000, carry 0x0)/(0x1fe0000100000000, carry 0x0) -mpi_core_mla:"100000000":"20000000000000":"ff":"1fe0000100000000":"0":"1fe0000100000000":"0" - -mbedtls_mpi_core_mla #720: 0x100000000 + 0x20000000000000 * 0xffff = (0xffe0000100000000, carry 0x1f)/(0xffe0000100000000, carry 0x1f) -mpi_core_mla:"100000000":"20000000000000":"ffff":"ffe0000100000000":"1f":"ffe0000100000000":"1f" - -mbedtls_mpi_core_mla #721: 0x100000000 + 0x20000000000000 * 0x10000 = (0x100000000, carry 0x20)/(0x100000000, carry 0x20) -mpi_core_mla:"100000000":"20000000000000":"10000":"100000000":"20":"100000000":"20" - -mbedtls_mpi_core_mla #722: 0x100000000 + 0x20000000000000 * 0xffffffff = (0xffe0000100000000, carry 0x1fffff)/(0xffe0000100000000, carry 0x1fffff) -mpi_core_mla:"100000000":"20000000000000":"ffffffff":"ffe0000100000000":"1fffff":"ffe0000100000000":"1fffff" - -mbedtls_mpi_core_mla #723: 0x100000000 + 0x20000000000000 * 0x100000000 = (0x100000000, carry 0x200000)/(0x100000000, carry 0x200000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"20000000000000":"100000000":"100000000":"200000":"100000000":"200000" - -mbedtls_mpi_core_mla #724: 0x100000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe0000100000000, carry 0xfefefefefefef)/(0xefe0000100000000, carry 0xfefefefefefef) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000100000000":"fefefefefefef":"efe0000100000000":"fefefefefefef" - -mbedtls_mpi_core_mla #725: 0x100000000 + 0x20000000000000 * 0x8000000000000000 = (0x100000000, carry 0x10000000000000)/(0x100000000, carry 0x10000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"20000000000000":"8000000000000000":"100000000":"10000000000000":"100000000":"10000000000000" - -mbedtls_mpi_core_mla #726: 0x100000000 + 0x20000000000000 * 0xfffffffffffffffe = (0xffc0000100000000, carry 0x1fffffffffffff)/(0xffc0000100000000, carry 0x1fffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"20000000000000":"fffffffffffffffe":"ffc0000100000000":"1fffffffffffff":"ffc0000100000000":"1fffffffffffff" - -mbedtls_mpi_core_mla #727: 0x100000000 + 0xffffffffffffffff * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"ffffffffffffffff":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #728: 0x100000000 + 0xffffffffffffffff * 0x3 = (0xfffffffd, carry 0x3)/(0xfffffffd, carry 0x3) -mpi_core_mla:"100000000":"ffffffffffffffff":"3":"fffffffd":"3":"fffffffd":"3" - -mbedtls_mpi_core_mla #729: 0x100000000 + 0xffffffffffffffff * 0xfe = (0xffffff02, carry 0xfe)/(0xffffff02, carry 0xfe) -mpi_core_mla:"100000000":"ffffffffffffffff":"fe":"ffffff02":"fe":"ffffff02":"fe" - -mbedtls_mpi_core_mla #730: 0x100000000 + 0xffffffffffffffff * 0xff = (0xffffff01, carry 0xff)/(0xffffff01, carry 0xff) -mpi_core_mla:"100000000":"ffffffffffffffff":"ff":"ffffff01":"ff":"ffffff01":"ff" - -mbedtls_mpi_core_mla #731: 0x100000000 + 0xffffffffffffffff * 0xffff = (0xffff0001, carry 0xffff)/(0xffff0001, carry 0xffff) -mpi_core_mla:"100000000":"ffffffffffffffff":"ffff":"ffff0001":"ffff":"ffff0001":"ffff" - -mbedtls_mpi_core_mla #732: 0x100000000 + 0xffffffffffffffff * 0x10000 = (0xffff0000, carry 0x10000)/(0xffff0000, carry 0x10000) -mpi_core_mla:"100000000":"ffffffffffffffff":"10000":"ffff0000":"10000":"ffff0000":"10000" - -mbedtls_mpi_core_mla #733: 0x100000000 + 0xffffffffffffffff * 0xffffffff = (0x1, carry 0xffffffff)/(0x1, carry 0xffffffff) -mpi_core_mla:"100000000":"ffffffffffffffff":"ffffffff":"1":"ffffffff":"1":"ffffffff" - -mbedtls_mpi_core_mla #734: 0x100000000 + 0xffffffffffffffff * 0x100000000 = (0x0, carry 0x100000000)/(0x0, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffff":"100000000":"0":"100000000":"0":"100000000" - -mbedtls_mpi_core_mla #735: 0x100000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808180808081, carry 0x7f7f7f7f7f7f7f7e)/(0x8080808180808081, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808180808081":"7f7f7f7f7f7f7f7e":"8080808180808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #736: 0x100000000 + 0xffffffffffffffff * 0x8000000000000000 = (0x8000000100000000, carry 0x7fffffffffffffff)/(0x8000000100000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffff":"8000000000000000":"8000000100000000":"7fffffffffffffff":"8000000100000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #737: 0x100000000 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x100000002, carry 0xfffffffffffffffd)/(0x100000002, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffff":"fffffffffffffffe":"100000002":"fffffffffffffffd":"100000002":"fffffffffffffffd" - -mbedtls_mpi_core_mla #738: 0x100000000 + 0x10000000000000000 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"10000000000000000":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #739: 0x100000000 + 0x10000000000000000 * 0x3 = (0x30000000100000000, carry 0x0)/(0x30000000100000000, carry 0x0) -mpi_core_mla:"100000000":"10000000000000000":"3":"30000000100000000":"0":"30000000100000000":"0" - -mbedtls_mpi_core_mla #740: 0x100000000 + 0x10000000000000000 * 0xfe = (0xfe0000000100000000, carry 0x0)/(0xfe0000000100000000, carry 0x0) -mpi_core_mla:"100000000":"10000000000000000":"fe":"fe0000000100000000":"0":"fe0000000100000000":"0" - -mbedtls_mpi_core_mla #741: 0x100000000 + 0x10000000000000000 * 0xff = (0xff0000000100000000, carry 0x0)/(0xff0000000100000000, carry 0x0) -mpi_core_mla:"100000000":"10000000000000000":"ff":"ff0000000100000000":"0":"ff0000000100000000":"0" - -mbedtls_mpi_core_mla #742: 0x100000000 + 0x10000000000000000 * 0xffff = (0xffff0000000100000000, carry 0x0)/(0xffff0000000100000000, carry 0x0) -mpi_core_mla:"100000000":"10000000000000000":"ffff":"ffff0000000100000000":"0":"ffff0000000100000000":"0" - -mbedtls_mpi_core_mla #743: 0x100000000 + 0x10000000000000000 * 0x10000 = (0x100000000000100000000, carry 0x0)/(0x100000000000100000000, carry 0x0) -mpi_core_mla:"100000000":"10000000000000000":"10000":"100000000000100000000":"0":"100000000000100000000":"0" - -mbedtls_mpi_core_mla #744: 0x100000000 + 0x10000000000000000 * 0xffffffff = (0xffffffff0000000100000000, carry 0x0)/(0xffffffff0000000100000000, carry 0x0) -mpi_core_mla:"100000000":"10000000000000000":"ffffffff":"ffffffff0000000100000000":"0":"ffffffff0000000100000000":"0" - -mbedtls_mpi_core_mla #745: 0x100000000 + 0x10000000000000000 * 0x100000000 = (0x100000000, carry 0x1)/(0x1000000000000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"10000000000000000":"100000000":"100000000":"1":"1000000000000000100000000":"0" - -mbedtls_mpi_core_mla #746: 0x100000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000100000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000100000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000100000000":"0" - -mbedtls_mpi_core_mla #747: 0x100000000 + 0x10000000000000000 * 0x8000000000000000 = (0x100000000, carry 0x80000000)/(0x80000000000000000000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"10000000000000000":"8000000000000000":"100000000":"80000000":"80000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #748: 0x100000000 + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000100000000, carry 0xffffffff)/(0xfffffffffffffffe0000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"10000000000000000":"fffffffffffffffe":"fffffffe0000000100000000":"ffffffff":"fffffffffffffffe0000000100000000":"0" - -mbedtls_mpi_core_mla #749: 0x100000000 + 0x1234567890abcdef0 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef0":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #750: 0x100000000 + 0x1234567890abcdef0 * 0x3 = (0x369d0369c20369cd0, carry 0x0)/(0x369d0369c20369cd0, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef0":"3":"369d0369c20369cd0":"0":"369d0369c20369cd0":"0" - -mbedtls_mpi_core_mla #751: 0x100000000 + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f9a7653220, carry 0x0)/(0x120fedcb9f9a7653220, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef0":"fe":"120fedcb9f9a7653220":"0":"120fedcb9f9a7653220":"0" - -mbedtls_mpi_core_mla #752: 0x100000000 + 0x1234567890abcdef0 * 0xff = (0x12222222182b2221110, carry 0x0)/(0x12222222182b2221110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef0":"ff":"12222222182b2221110":"0":"12222222182b2221110":"0" - -mbedtls_mpi_core_mla #753: 0x100000000 + 0x1234567890abcdef0 * 0xffff = (0x123444443a334d4332110, carry 0x0)/(0x123444443a334d4332110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef0":"ffff":"123444443a334d4332110":"0":"123444443a334d4332110":"0" - -mbedtls_mpi_core_mla #754: 0x100000000 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abddef00000, carry 0x0)/(0x1234567890abddef00000, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef0":"10000":"1234567890abddef00000":"0":"1234567890abddef00000":"0" - -mbedtls_mpi_core_mla #755: 0x100000000 + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777767f5432110, carry 0x1)/(0x123456787e7777767f5432110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef0":"ffffffff":"23456787e7777767f5432110":"1":"123456787e7777767f5432110":"0" - -mbedtls_mpi_core_mla #756: 0x100000000 + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef100000000, carry 0x1)/(0x1234567890abcdef100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef0":"100000000":"234567890abcdef100000000":"1":"1234567890abcdef100000000":"0" - -mbedtls_mpi_core_mla #757: 0x100000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708acaf5ba910, carry 0x91107edb)/(0x91107edbd82bde76f67708acaf5ba910, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708acaf5ba910":"91107edb":"91107edbd82bde76f67708acaf5ba910":"0" - -mbedtls_mpi_core_mla #758: 0x100000000 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f780000000100000000, carry 0x91a2b3c4)/(0x91a2b3c4855e6f780000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef0":"8000000000000000":"855e6f780000000100000000":"91a2b3c4":"91a2b3c4855e6f780000000100000000":"0" - -mbedtls_mpi_core_mla #759: 0x100000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530eeea864220, carry 0x123456789)/(0x234567890abcdeedb97530eeea864220, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530eeea864220":"123456789":"234567890abcdeedb97530eeea864220":"1" - -mbedtls_mpi_core_mla #760: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #761: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfdfcfcfcfa, carry 0x2)/(0xfffffffffffffffffcfcfcfdfcfcfcfa, carry 0x2) -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfdfcfcfcfa":"2":"fffffffffffffffffcfcfcfdfcfcfcfa":"2" - -mbedtls_mpi_core_mla #762: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010201010004, carry 0xfd)/(0xffffffffffffffff0101010201010004, carry 0xfd) -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010201010004":"fd":"ffffffffffffffff0101010201010004":"fd" - -mbedtls_mpi_core_mla #763: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffff00000000ffffff02, carry 0xfe)/(0xffffffffffffffff00000000ffffff02, carry 0xfe) -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff00000000ffffff02":"fe":"ffffffffffffffff00000000ffffff02":"fe" - -mbedtls_mpi_core_mla #764: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeff00000000ffff0102, carry 0xfffe)/(0xfffffffffffffeff00000000ffff0102, carry 0xfffe) -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff00000000ffff0102":"fffe":"fffffffffffffeff00000000ffff0102":"fffe" - -mbedtls_mpi_core_mla #765: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefffefe0000, carry 0xffff)/(0xfffffffffffffefefefefefffefe0000, carry 0xffff) -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefffefe0000":"ffff":"fffffffffffffefefefefefffefe0000":"ffff" - -mbedtls_mpi_core_mla #766: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeff0000000001010102, carry 0xfffffffe)/(0xfffffffffefefeff0000000001010102, carry 0xfffffffe) -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff0000000001010102":"fffffffe":"fffffffffefefeff0000000001010102":"fffffffe" - -mbedtls_mpi_core_mla #767: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefeff00000000, carry 0xffffffff)/(0xfffffffffefefefefefefeff00000000, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefeff00000000":"ffffffff":"fffffffffefefefefefefeff00000000":"ffffffff" - -mbedtls_mpi_core_mla #768: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840483028202, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840483028202, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840483028202":"7f7f7f7f7f7f7f7e":"ff800081018202828504840483028202":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #769: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0000000100000000, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f0000000100000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000100000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000100000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #770: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020302020204, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020302020204, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020302020204":"fffffffffffffffd":"fefefefefefefefe0202020302020204":"fffffffffffffffd" - -mbedtls_mpi_core_mla #771: 0x100000000 + 0x100000000000000000000000000000000 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000000000000000000000000000":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #772: 0x100000000 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000000000000100000000, carry 0x0)/(0x300000000000000000000000100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000000000000000000000000000":"3":"300000000000000000000000100000000":"0":"300000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #773: 0x100000000 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000000000000100000000, carry 0x0)/(0xfe00000000000000000000000100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000000000000000000000000000":"fe":"fe00000000000000000000000100000000":"0":"fe00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #774: 0x100000000 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000000000000100000000, carry 0x0)/(0xff00000000000000000000000100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000000000000000000000000000":"ff":"ff00000000000000000000000100000000":"0":"ff00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #775: 0x100000000 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000000000000100000000, carry 0x0)/(0xffff00000000000000000000000100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000100000000":"0":"ffff00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #776: 0x100000000 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000000000000100000000, carry 0x0)/(0x1000000000000000000000000000100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000000000000000000000000000":"10000":"1000000000000000000000000000100000000":"0":"1000000000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #777: 0x100000000 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000000000000100000000, carry 0x0)/(0xffffffff00000000000000000000000100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000100000000":"0":"ffffffff00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #778: 0x100000000 + 0x100000000000000000000000000000000 * 0x100000000 = (0x100000000, carry 0x1)/(0x10000000000000000000000000000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000000000000000000000000000":"100000000":"100000000":"1":"10000000000000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #779: 0x100000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000000000000100000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000000000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000100000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #780: 0x100000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x100000000, carry 0x80000000)/(0x800000000000000000000000000000000000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000000000000000000000000000":"8000000000000000":"100000000":"80000000":"800000000000000000000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #781: 0x100000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000000000000100000000, carry 0xffffffff)/(0xfffffffffffffffe00000000000000000000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000100000000":"ffffffff":"fffffffffffffffe00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #782: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #783: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369c20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369c20369cd0, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369c20369cd0":"0":"369d0369b20369cd0369d0369c20369cd0":"0" - -mbedtls_mpi_core_mla #784: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f9a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f9a7653220, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f9a7653220":"0":"120fedcb9f8a76532320fedcb9f9a7653220":"0" - -mbedtls_mpi_core_mla #785: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222182b2221110, carry 0x0)/(0x12222222181b2221122222222182b2221110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222182b2221110":"0":"12222222181b2221122222222182b2221110":"0" - -mbedtls_mpi_core_mla #786: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a334d4332110, carry 0x0)/(0x123444443a333d433334444443a334d4332110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a334d4332110":"0":"123444443a333d433334444443a334d4332110":"0" - -mbedtls_mpi_core_mla #787: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abddef00000, carry 0x0)/(0x1234567890abcdef01234567890abddef00000, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abddef00000":"0":"1234567890abcdef01234567890abddef00000":"0" - -mbedtls_mpi_core_mla #788: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777767f5432110, carry 0x12)/(0x123456787e7777767077777887e7777767f5432110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777767f5432110":"12":"123456787e7777767077777887e7777767f5432110":"0" - -mbedtls_mpi_core_mla #789: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef100000000, carry 0x12)/(0x1234567890abcdef01234567890abcdef100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef100000000":"12":"1234567890abcdef01234567890abcdef100000000":"0" - -mbedtls_mpi_core_mla #790: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708acaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708acaf5ba910, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708acaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708acaf5ba910":"9" - -mbedtls_mpi_core_mla #791: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f780000000100000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f780000000100000000, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000100000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"9" - -mbedtls_mpi_core_mla #792: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530eeea864220, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530eeea864220, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530eeea864220":"1234567890":"34567890abcdeedcba987667b32100edb97530eeea864220":"12" - -mbedtls_mpi_core_mla #793: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #794: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffd, carry 0x3)/(0xfffffffd, carry 0x3) -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffd":"3":"fffffffd":"3" - -mbedtls_mpi_core_mla #795: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffff02, carry 0xfe)/(0xffffff02, carry 0xfe) -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffff02":"fe":"ffffff02":"fe" - -mbedtls_mpi_core_mla #796: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffff01, carry 0xff)/(0xffffff01, carry 0xff) -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffff01":"ff":"ffffff01":"ff" - -mbedtls_mpi_core_mla #797: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffff0001, carry 0xffff)/(0xffff0001, carry 0xffff) -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff0001":"ffff":"ffff0001":"ffff" - -mbedtls_mpi_core_mla #798: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffff0000, carry 0x10000)/(0xffff0000, carry 0x10000) -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffff0000":"10000":"ffff0000":"10000" - -mbedtls_mpi_core_mla #799: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1, carry 0xffffffff)/(0x1, carry 0xffffffff) -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1":"ffffffff":"1":"ffffffff" - -mbedtls_mpi_core_mla #800: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x0, carry 0x100000000)/(0x0, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"0":"100000000":"0":"100000000" - -mbedtls_mpi_core_mla #801: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #802: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #803: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002":"fffffffffffffffd" - -mbedtls_mpi_core_mla #804: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #805: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0":"0" - -mbedtls_mpi_core_mla #806: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220":"0" - -mbedtls_mpi_core_mla #807: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222182b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222182b2221110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222182b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222182b2221110":"0" - -mbedtls_mpi_core_mla #808: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110":"0" - -mbedtls_mpi_core_mla #809: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000":"0" - -mbedtls_mpi_core_mla #810: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110":"0" - -mbedtls_mpi_core_mla #811: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000":"0" - -mbedtls_mpi_core_mla #812: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910":"911" - -mbedtls_mpi_core_mla #813: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"91a" - -mbedtls_mpi_core_mla #814: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220":"1234" - -mbedtls_mpi_core_mla #815: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #816: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381, carry 0x0) -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381":"0" - -mbedtls_mpi_core_mla #817: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa, carry 0x0) -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa":"0" - -mbedtls_mpi_core_mla #818: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5, carry 0x0) -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5":"0" - -mbedtls_mpi_core_mla #819: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5, carry 0x0) -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5":"0" - -mbedtls_mpi_core_mla #820: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000, carry 0x0) -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000":"0" - -mbedtls_mpi_core_mla #821: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5, carry 0x4) -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5":"4" - -mbedtls_mpi_core_mla #822: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000":"4" - -mbedtls_mpi_core_mla #823: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955":"26d473ca9" - -mbedtls_mpi_core_mla #824: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000":"26fb9683d" - -mbedtls_mpi_core_mla #825: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa":"4df72d07b" - -mbedtls_mpi_core_mla #826: 0x20000000000000 + 0x0 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"0":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #827: 0x20000000000000 + 0x0 * 0x3 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"0":"3":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #828: 0x20000000000000 + 0x0 * 0xfe = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"0":"fe":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #829: 0x20000000000000 + 0x0 * 0xff = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"0":"ff":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #830: 0x20000000000000 + 0x0 * 0xffff = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"0":"ffff":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #831: 0x20000000000000 + 0x0 * 0x10000 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"0":"10000":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #832: 0x20000000000000 + 0x0 * 0xffffffff = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"0":"ffffffff":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #833: 0x20000000000000 + 0x0 * 0x100000000 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"0":"100000000":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #834: 0x20000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"0":"7f7f7f7f7f7f7f7f":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #835: 0x20000000000000 + 0x0 * 0x8000000000000000 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"0":"8000000000000000":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #836: 0x20000000000000 + 0x0 * 0xfffffffffffffffe = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"0":"fffffffffffffffe":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #837: 0x20000000000000 + 0x1 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"1":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #838: 0x20000000000000 + 0x1 * 0x3 = (0x20000000000003, carry 0x0)/(0x20000000000003, carry 0x0) -mpi_core_mla:"20000000000000":"1":"3":"20000000000003":"0":"20000000000003":"0" - -mbedtls_mpi_core_mla #839: 0x20000000000000 + 0x1 * 0xfe = (0x200000000000fe, carry 0x0)/(0x200000000000fe, carry 0x0) -mpi_core_mla:"20000000000000":"1":"fe":"200000000000fe":"0":"200000000000fe":"0" - -mbedtls_mpi_core_mla #840: 0x20000000000000 + 0x1 * 0xff = (0x200000000000ff, carry 0x0)/(0x200000000000ff, carry 0x0) -mpi_core_mla:"20000000000000":"1":"ff":"200000000000ff":"0":"200000000000ff":"0" - -mbedtls_mpi_core_mla #841: 0x20000000000000 + 0x1 * 0xffff = (0x2000000000ffff, carry 0x0)/(0x2000000000ffff, carry 0x0) -mpi_core_mla:"20000000000000":"1":"ffff":"2000000000ffff":"0":"2000000000ffff":"0" - -mbedtls_mpi_core_mla #842: 0x20000000000000 + 0x1 * 0x10000 = (0x20000000010000, carry 0x0)/(0x20000000010000, carry 0x0) -mpi_core_mla:"20000000000000":"1":"10000":"20000000010000":"0":"20000000010000":"0" - -mbedtls_mpi_core_mla #843: 0x20000000000000 + 0x1 * 0xffffffff = (0x200000ffffffff, carry 0x0)/(0x200000ffffffff, carry 0x0) -mpi_core_mla:"20000000000000":"1":"ffffffff":"200000ffffffff":"0":"200000ffffffff":"0" - -mbedtls_mpi_core_mla #844: 0x20000000000000 + 0x1 * 0x100000000 = (0x20000100000000, carry 0x0)/(0x20000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1":"100000000":"20000100000000":"0":"20000100000000":"0" - -mbedtls_mpi_core_mla #845: 0x20000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f9f7f7f7f7f7f7f, carry 0x0)/(0x7f9f7f7f7f7f7f7f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1":"7f7f7f7f7f7f7f7f":"7f9f7f7f7f7f7f7f":"0":"7f9f7f7f7f7f7f7f":"0" - -mbedtls_mpi_core_mla #846: 0x20000000000000 + 0x1 * 0x8000000000000000 = (0x8020000000000000, carry 0x0)/(0x8020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1":"8000000000000000":"8020000000000000":"0":"8020000000000000":"0" - -mbedtls_mpi_core_mla #847: 0x20000000000000 + 0x1 * 0xfffffffffffffffe = (0x1ffffffffffffe, carry 0x1)/(0x1ffffffffffffe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1":"fffffffffffffffe":"1ffffffffffffe":"1":"1ffffffffffffe":"1" - -mbedtls_mpi_core_mla #848: 0x20000000000000 + 0xfffe * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"fffe":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #849: 0x20000000000000 + 0xfffe * 0x3 = (0x2000000002fffa, carry 0x0)/(0x2000000002fffa, carry 0x0) -mpi_core_mla:"20000000000000":"fffe":"3":"2000000002fffa":"0":"2000000002fffa":"0" - -mbedtls_mpi_core_mla #850: 0x20000000000000 + 0xfffe * 0xfe = (0x20000000fdfe04, carry 0x0)/(0x20000000fdfe04, carry 0x0) -mpi_core_mla:"20000000000000":"fffe":"fe":"20000000fdfe04":"0":"20000000fdfe04":"0" - -mbedtls_mpi_core_mla #851: 0x20000000000000 + 0xfffe * 0xff = (0x20000000fefe02, carry 0x0)/(0x20000000fefe02, carry 0x0) -mpi_core_mla:"20000000000000":"fffe":"ff":"20000000fefe02":"0":"20000000fefe02":"0" - -mbedtls_mpi_core_mla #852: 0x20000000000000 + 0xfffe * 0xffff = (0x200000fffd0002, carry 0x0)/(0x200000fffd0002, carry 0x0) -mpi_core_mla:"20000000000000":"fffe":"ffff":"200000fffd0002":"0":"200000fffd0002":"0" - -mbedtls_mpi_core_mla #853: 0x20000000000000 + 0xfffe * 0x10000 = (0x200000fffe0000, carry 0x0)/(0x200000fffe0000, carry 0x0) -mpi_core_mla:"20000000000000":"fffe":"10000":"200000fffe0000":"0":"200000fffe0000":"0" - -mbedtls_mpi_core_mla #854: 0x20000000000000 + 0xfffe * 0xffffffff = (0x20fffdffff0002, carry 0x0)/(0x20fffdffff0002, carry 0x0) -mpi_core_mla:"20000000000000":"fffe":"ffffffff":"20fffdffff0002":"0":"20fffdffff0002":"0" - -mbedtls_mpi_core_mla #855: 0x20000000000000 + 0xfffe * 0x100000000 = (0x20fffe00000000, carry 0x0)/(0x20fffe00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffe":"100000000":"20fffe00000000":"0":"20fffe00000000":"0" - -mbedtls_mpi_core_mla #856: 0x20000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80a0808080800102, carry 0x7f7e)/(0x80a0808080800102, carry 0x7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffe":"7f7f7f7f7f7f7f7f":"80a0808080800102":"7f7e":"80a0808080800102":"7f7e" - -mbedtls_mpi_core_mla #857: 0x20000000000000 + 0xfffe * 0x8000000000000000 = (0x20000000000000, carry 0x7fff)/(0x20000000000000, carry 0x7fff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffe":"8000000000000000":"20000000000000":"7fff":"20000000000000":"7fff" - -mbedtls_mpi_core_mla #858: 0x20000000000000 + 0xfffe * 0xfffffffffffffffe = (0x1ffffffffe0004, carry 0xfffe)/(0x1ffffffffe0004, carry 0xfffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffe":"fffffffffffffffe":"1ffffffffe0004":"fffe":"1ffffffffe0004":"fffe" - -mbedtls_mpi_core_mla #859: 0x20000000000000 + 0xffffffff * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"ffffffff":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #860: 0x20000000000000 + 0xffffffff * 0x3 = (0x200002fffffffd, carry 0x0)/(0x200002fffffffd, carry 0x0) -mpi_core_mla:"20000000000000":"ffffffff":"3":"200002fffffffd":"0":"200002fffffffd":"0" - -mbedtls_mpi_core_mla #861: 0x20000000000000 + 0xffffffff * 0xfe = (0x2000fdffffff02, carry 0x0)/(0x2000fdffffff02, carry 0x0) -mpi_core_mla:"20000000000000":"ffffffff":"fe":"2000fdffffff02":"0":"2000fdffffff02":"0" - -mbedtls_mpi_core_mla #862: 0x20000000000000 + 0xffffffff * 0xff = (0x2000feffffff01, carry 0x0)/(0x2000feffffff01, carry 0x0) -mpi_core_mla:"20000000000000":"ffffffff":"ff":"2000feffffff01":"0":"2000feffffff01":"0" - -mbedtls_mpi_core_mla #863: 0x20000000000000 + 0xffffffff * 0xffff = (0x20fffeffff0001, carry 0x0)/(0x20fffeffff0001, carry 0x0) -mpi_core_mla:"20000000000000":"ffffffff":"ffff":"20fffeffff0001":"0":"20fffeffff0001":"0" - -mbedtls_mpi_core_mla #864: 0x20000000000000 + 0xffffffff * 0x10000 = (0x20ffffffff0000, carry 0x0)/(0x20ffffffff0000, carry 0x0) -mpi_core_mla:"20000000000000":"ffffffff":"10000":"20ffffffff0000":"0":"20ffffffff0000":"0" - -mbedtls_mpi_core_mla #865: 0x20000000000000 + 0xffffffff * 0xffffffff = (0x1ffffe00000001, carry 0x1)/(0x1ffffe00000001, carry 0x1) -mpi_core_mla:"20000000000000":"ffffffff":"ffffffff":"1ffffe00000001":"1":"1ffffe00000001":"1" - -mbedtls_mpi_core_mla #866: 0x20000000000000 + 0xffffffff * 0x100000000 = (0x1fffff00000000, carry 0x1)/(0x1fffff00000000, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffff":"100000000":"1fffff00000000":"1":"1fffff00000000":"1" - -mbedtls_mpi_core_mla #867: 0x20000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x1fffff80808081, carry 0x7f7f7f7f)/(0x1fffff80808081, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"1fffff80808081":"7f7f7f7f":"1fffff80808081":"7f7f7f7f" - -mbedtls_mpi_core_mla #868: 0x20000000000000 + 0xffffffff * 0x8000000000000000 = (0x8020000000000000, carry 0x7fffffff)/(0x8020000000000000, carry 0x7fffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffff":"8000000000000000":"8020000000000000":"7fffffff":"8020000000000000":"7fffffff" - -mbedtls_mpi_core_mla #869: 0x20000000000000 + 0xffffffff * 0xfffffffffffffffe = (0x1ffffe00000002, carry 0xffffffff)/(0x1ffffe00000002, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffff":"fffffffffffffffe":"1ffffe00000002":"ffffffff":"1ffffe00000002":"ffffffff" - -mbedtls_mpi_core_mla #870: 0x20000000000000 + 0x100000000 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #871: 0x20000000000000 + 0x100000000 * 0x3 = (0x20000300000000, carry 0x0)/(0x20000300000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000":"3":"20000300000000":"0":"20000300000000":"0" - -mbedtls_mpi_core_mla #872: 0x20000000000000 + 0x100000000 * 0xfe = (0x2000fe00000000, carry 0x0)/(0x2000fe00000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000":"fe":"2000fe00000000":"0":"2000fe00000000":"0" - -mbedtls_mpi_core_mla #873: 0x20000000000000 + 0x100000000 * 0xff = (0x2000ff00000000, carry 0x0)/(0x2000ff00000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000":"ff":"2000ff00000000":"0":"2000ff00000000":"0" - -mbedtls_mpi_core_mla #874: 0x20000000000000 + 0x100000000 * 0xffff = (0x20ffff00000000, carry 0x0)/(0x20ffff00000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000":"ffff":"20ffff00000000":"0":"20ffff00000000":"0" - -mbedtls_mpi_core_mla #875: 0x20000000000000 + 0x100000000 * 0x10000 = (0x21000000000000, carry 0x0)/(0x21000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000":"10000":"21000000000000":"0":"21000000000000":"0" - -mbedtls_mpi_core_mla #876: 0x20000000000000 + 0x100000000 * 0xffffffff = (0x1fffff00000000, carry 0x1)/(0x1fffff00000000, carry 0x1) -mpi_core_mla:"20000000000000":"100000000":"ffffffff":"1fffff00000000":"1":"1fffff00000000":"1" - -mbedtls_mpi_core_mla #877: 0x20000000000000 + 0x100000000 * 0x100000000 = (0x20000000000000, carry 0x1)/(0x20000000000000, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000":"100000000":"20000000000000":"1":"20000000000000":"1" - -mbedtls_mpi_core_mla #878: 0x20000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f9f7f7f00000000, carry 0x7f7f7f7f)/(0x7f9f7f7f00000000, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000":"7f7f7f7f7f7f7f7f":"7f9f7f7f00000000":"7f7f7f7f":"7f9f7f7f00000000":"7f7f7f7f" - -mbedtls_mpi_core_mla #879: 0x20000000000000 + 0x100000000 * 0x8000000000000000 = (0x20000000000000, carry 0x80000000)/(0x20000000000000, carry 0x80000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000":"8000000000000000":"20000000000000":"80000000":"20000000000000":"80000000" - -mbedtls_mpi_core_mla #880: 0x20000000000000 + 0x100000000 * 0xfffffffffffffffe = (0x1ffffe00000000, carry 0x100000000)/(0x1ffffe00000000, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000":"fffffffffffffffe":"1ffffe00000000":"100000000":"1ffffe00000000":"100000000" - -mbedtls_mpi_core_mla #881: 0x20000000000000 + 0x20000000000000 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"20000000000000":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #882: 0x20000000000000 + 0x20000000000000 * 0x3 = (0x80000000000000, carry 0x0)/(0x80000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"20000000000000":"3":"80000000000000":"0":"80000000000000":"0" - -mbedtls_mpi_core_mla #883: 0x20000000000000 + 0x20000000000000 * 0xfe = (0x1fe0000000000000, carry 0x0)/(0x1fe0000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"20000000000000":"fe":"1fe0000000000000":"0":"1fe0000000000000":"0" - -mbedtls_mpi_core_mla #884: 0x20000000000000 + 0x20000000000000 * 0xff = (0x2000000000000000, carry 0x0)/(0x2000000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"20000000000000":"ff":"2000000000000000":"0":"2000000000000000":"0" - -mbedtls_mpi_core_mla #885: 0x20000000000000 + 0x20000000000000 * 0xffff = (0x0, carry 0x20)/(0x0, carry 0x20) -mpi_core_mla:"20000000000000":"20000000000000":"ffff":"0":"20":"0":"20" - -mbedtls_mpi_core_mla #886: 0x20000000000000 + 0x20000000000000 * 0x10000 = (0x20000000000000, carry 0x20)/(0x20000000000000, carry 0x20) -mpi_core_mla:"20000000000000":"20000000000000":"10000":"20000000000000":"20":"20000000000000":"20" - -mbedtls_mpi_core_mla #887: 0x20000000000000 + 0x20000000000000 * 0xffffffff = (0x0, carry 0x200000)/(0x0, carry 0x200000) -mpi_core_mla:"20000000000000":"20000000000000":"ffffffff":"0":"200000":"0":"200000" - -mbedtls_mpi_core_mla #888: 0x20000000000000 + 0x20000000000000 * 0x100000000 = (0x20000000000000, carry 0x200000)/(0x20000000000000, carry 0x200000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"20000000000000":"100000000":"20000000000000":"200000":"20000000000000":"200000" - -mbedtls_mpi_core_mla #889: 0x20000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xf000000000000000, carry 0xfefefefefefef)/(0xf000000000000000, carry 0xfefefefefefef) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"f000000000000000":"fefefefefefef":"f000000000000000":"fefefefefefef" - -mbedtls_mpi_core_mla #890: 0x20000000000000 + 0x20000000000000 * 0x8000000000000000 = (0x20000000000000, carry 0x10000000000000)/(0x20000000000000, carry 0x10000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"20000000000000":"8000000000000000":"20000000000000":"10000000000000":"20000000000000":"10000000000000" - -mbedtls_mpi_core_mla #891: 0x20000000000000 + 0x20000000000000 * 0xfffffffffffffffe = (0xffe0000000000000, carry 0x1fffffffffffff)/(0xffe0000000000000, carry 0x1fffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"20000000000000":"fffffffffffffffe":"ffe0000000000000":"1fffffffffffff":"ffe0000000000000":"1fffffffffffff" - -mbedtls_mpi_core_mla #892: 0x20000000000000 + 0xffffffffffffffff * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"ffffffffffffffff":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #893: 0x20000000000000 + 0xffffffffffffffff * 0x3 = (0x1ffffffffffffd, carry 0x3)/(0x1ffffffffffffd, carry 0x3) -mpi_core_mla:"20000000000000":"ffffffffffffffff":"3":"1ffffffffffffd":"3":"1ffffffffffffd":"3" - -mbedtls_mpi_core_mla #894: 0x20000000000000 + 0xffffffffffffffff * 0xfe = (0x1fffffffffff02, carry 0xfe)/(0x1fffffffffff02, carry 0xfe) -mpi_core_mla:"20000000000000":"ffffffffffffffff":"fe":"1fffffffffff02":"fe":"1fffffffffff02":"fe" - -mbedtls_mpi_core_mla #895: 0x20000000000000 + 0xffffffffffffffff * 0xff = (0x1fffffffffff01, carry 0xff)/(0x1fffffffffff01, carry 0xff) -mpi_core_mla:"20000000000000":"ffffffffffffffff":"ff":"1fffffffffff01":"ff":"1fffffffffff01":"ff" - -mbedtls_mpi_core_mla #896: 0x20000000000000 + 0xffffffffffffffff * 0xffff = (0x1fffffffff0001, carry 0xffff)/(0x1fffffffff0001, carry 0xffff) -mpi_core_mla:"20000000000000":"ffffffffffffffff":"ffff":"1fffffffff0001":"ffff":"1fffffffff0001":"ffff" - -mbedtls_mpi_core_mla #897: 0x20000000000000 + 0xffffffffffffffff * 0x10000 = (0x1fffffffff0000, carry 0x10000)/(0x1fffffffff0000, carry 0x10000) -mpi_core_mla:"20000000000000":"ffffffffffffffff":"10000":"1fffffffff0000":"10000":"1fffffffff0000":"10000" - -mbedtls_mpi_core_mla #898: 0x20000000000000 + 0xffffffffffffffff * 0xffffffff = (0x1fffff00000001, carry 0xffffffff)/(0x1fffff00000001, carry 0xffffffff) -mpi_core_mla:"20000000000000":"ffffffffffffffff":"ffffffff":"1fffff00000001":"ffffffff":"1fffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #899: 0x20000000000000 + 0xffffffffffffffff * 0x100000000 = (0x1fffff00000000, carry 0x100000000)/(0x1fffff00000000, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffff":"100000000":"1fffff00000000":"100000000":"1fffff00000000":"100000000" - -mbedtls_mpi_core_mla #900: 0x20000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x80a0808080808081, carry 0x7f7f7f7f7f7f7f7e)/(0x80a0808080808081, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"80a0808080808081":"7f7f7f7f7f7f7f7e":"80a0808080808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #901: 0x20000000000000 + 0xffffffffffffffff * 0x8000000000000000 = (0x8020000000000000, carry 0x7fffffffffffffff)/(0x8020000000000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffff":"8000000000000000":"8020000000000000":"7fffffffffffffff":"8020000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #902: 0x20000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x20000000000002, carry 0xfffffffffffffffd)/(0x20000000000002, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffff":"fffffffffffffffe":"20000000000002":"fffffffffffffffd":"20000000000002":"fffffffffffffffd" - -mbedtls_mpi_core_mla #903: 0x20000000000000 + 0x10000000000000000 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"10000000000000000":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #904: 0x20000000000000 + 0x10000000000000000 * 0x3 = (0x30020000000000000, carry 0x0)/(0x30020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"10000000000000000":"3":"30020000000000000":"0":"30020000000000000":"0" - -mbedtls_mpi_core_mla #905: 0x20000000000000 + 0x10000000000000000 * 0xfe = (0xfe0020000000000000, carry 0x0)/(0xfe0020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"10000000000000000":"fe":"fe0020000000000000":"0":"fe0020000000000000":"0" - -mbedtls_mpi_core_mla #906: 0x20000000000000 + 0x10000000000000000 * 0xff = (0xff0020000000000000, carry 0x0)/(0xff0020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"10000000000000000":"ff":"ff0020000000000000":"0":"ff0020000000000000":"0" - -mbedtls_mpi_core_mla #907: 0x20000000000000 + 0x10000000000000000 * 0xffff = (0xffff0020000000000000, carry 0x0)/(0xffff0020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"10000000000000000":"ffff":"ffff0020000000000000":"0":"ffff0020000000000000":"0" - -mbedtls_mpi_core_mla #908: 0x20000000000000 + 0x10000000000000000 * 0x10000 = (0x100000020000000000000, carry 0x0)/(0x100000020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"10000000000000000":"10000":"100000020000000000000":"0":"100000020000000000000":"0" - -mbedtls_mpi_core_mla #909: 0x20000000000000 + 0x10000000000000000 * 0xffffffff = (0xffffffff0020000000000000, carry 0x0)/(0xffffffff0020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"10000000000000000":"ffffffff":"ffffffff0020000000000000":"0":"ffffffff0020000000000000":"0" - -mbedtls_mpi_core_mla #910: 0x20000000000000 + 0x10000000000000000 * 0x100000000 = (0x20000000000000, carry 0x1)/(0x1000000000020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"10000000000000000":"100000000":"20000000000000":"1":"1000000000020000000000000":"0" - -mbedtls_mpi_core_mla #911: 0x20000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0020000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0020000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0020000000000000":"0" - -mbedtls_mpi_core_mla #912: 0x20000000000000 + 0x10000000000000000 * 0x8000000000000000 = (0x20000000000000, carry 0x80000000)/(0x80000000000000000020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"10000000000000000":"8000000000000000":"20000000000000":"80000000":"80000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #913: 0x20000000000000 + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe0020000000000000, carry 0xffffffff)/(0xfffffffffffffffe0020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"10000000000000000":"fffffffffffffffe":"fffffffe0020000000000000":"ffffffff":"fffffffffffffffe0020000000000000":"0" - -mbedtls_mpi_core_mla #914: 0x20000000000000 + 0x1234567890abcdef0 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #915: 0x20000000000000 + 0x1234567890abcdef0 * 0x3 = (0x369f0369b20369cd0, carry 0x0)/(0x369f0369b20369cd0, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef0":"3":"369f0369b20369cd0":"0":"369f0369b20369cd0":"0" - -mbedtls_mpi_core_mla #916: 0x20000000000000 + 0x1234567890abcdef0 * 0xfe = (0x120fefcb9f8a7653220, carry 0x0)/(0x120fefcb9f8a7653220, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef0":"fe":"120fefcb9f8a7653220":"0":"120fefcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #917: 0x20000000000000 + 0x1234567890abcdef0 * 0xff = (0x12222422181b2221110, carry 0x0)/(0x12222422181b2221110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef0":"ff":"12222422181b2221110":"0":"12222422181b2221110":"0" - -mbedtls_mpi_core_mla #918: 0x20000000000000 + 0x1234567890abcdef0 * 0xffff = (0x123444463a333d4332110, carry 0x0)/(0x123444463a333d4332110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef0":"ffff":"123444463a333d4332110":"0":"123444463a333d4332110":"0" - -mbedtls_mpi_core_mla #919: 0x20000000000000 + 0x1234567890abcdef0 * 0x10000 = (0x1234567a90abcdef00000, carry 0x0)/(0x1234567a90abcdef00000, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef0":"10000":"1234567a90abcdef00000":"0":"1234567a90abcdef00000":"0" - -mbedtls_mpi_core_mla #920: 0x20000000000000 + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7977766f5432110, carry 0x1)/(0x123456787e7977766f5432110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef0":"ffffffff":"23456787e7977766f5432110":"1":"123456787e7977766f5432110":"0" - -mbedtls_mpi_core_mla #921: 0x20000000000000 + 0x1234567890abcdef0 * 0x100000000 = (0x234567890adcdef000000000, carry 0x1)/(0x1234567890adcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef0":"100000000":"234567890adcdef000000000":"1":"1234567890adcdef000000000":"0" - -mbedtls_mpi_core_mla #922: 0x20000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f69708abaf5ba910, carry 0x91107edb)/(0x91107edbd82bde76f69708abaf5ba910, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f69708abaf5ba910":"91107edb":"91107edbd82bde76f69708abaf5ba910":"0" - -mbedtls_mpi_core_mla #923: 0x20000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f780020000000000000, carry 0x91a2b3c4)/(0x91a2b3c4855e6f780020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef0":"8000000000000000":"855e6f780020000000000000":"91a2b3c4":"91a2b3c4855e6f780020000000000000":"0" - -mbedtls_mpi_core_mla #924: 0x20000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb99530edea864220, carry 0x123456789)/(0x234567890abcdeedb99530edea864220, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb99530edea864220":"123456789":"234567890abcdeedb99530edea864220":"1" - -mbedtls_mpi_core_mla #925: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #926: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffd1cfcfcfcfcfcfa, carry 0x2)/(0xfffffffffffffffffd1cfcfcfcfcfcfa, carry 0x2) -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffd1cfcfcfcfcfcfa":"2":"fffffffffffffffffd1cfcfcfcfcfcfa":"2" - -mbedtls_mpi_core_mla #927: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0121010101010004, carry 0xfd)/(0xffffffffffffffff0121010101010004, carry 0xfd) -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0121010101010004":"fd":"ffffffffffffffff0121010101010004":"fd" - -mbedtls_mpi_core_mla #928: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffff001fffffffffff02, carry 0xfe)/(0xffffffffffffffff001fffffffffff02, carry 0xfe) -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff001fffffffffff02":"fe":"ffffffffffffffff001fffffffffff02":"fe" - -mbedtls_mpi_core_mla #929: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeff001fffffffff0102, carry 0xfffe)/(0xfffffffffffffeff001fffffffff0102, carry 0xfffe) -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff001fffffffff0102":"fffe":"fffffffffffffeff001fffffffff0102":"fffe" - -mbedtls_mpi_core_mla #930: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefeff1efefefefe0000, carry 0xffff)/(0xfffffffffffffefeff1efefefefe0000, carry 0xffff) -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefeff1efefefefe0000":"ffff":"fffffffffffffefeff1efefefefe0000":"ffff" - -mbedtls_mpi_core_mla #931: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeff001fffff01010102, carry 0xfffffffe)/(0xfffffffffefefeff001fffff01010102, carry 0xfffffffe) -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff001fffff01010102":"fffffffe":"fffffffffefefeff001fffff01010102":"fffffffe" - -mbedtls_mpi_core_mla #932: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefeff1efefe00000000, carry 0xffffffff)/(0xfffffffffefefefeff1efefe00000000, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefeff1efefe00000000":"ffffffff":"fffffffffefefefeff1efefe00000000":"ffffffff" - -mbedtls_mpi_core_mla #933: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828524840383028202, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828524840383028202, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828524840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202828524840383028202":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #934: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0020000000000000, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f0020000000000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0020000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0020000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #935: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0222020202020204, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0222020202020204, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0222020202020204":"fffffffffffffffd":"fefefefefefefefe0222020202020204":"fffffffffffffffd" - -mbedtls_mpi_core_mla #936: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #937: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000000020000000000000, carry 0x0)/(0x300000000000000000020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"3":"300000000000000000020000000000000":"0":"300000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #938: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000000020000000000000, carry 0x0)/(0xfe00000000000000000020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"fe":"fe00000000000000000020000000000000":"0":"fe00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #939: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000000020000000000000, carry 0x0)/(0xff00000000000000000020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ff":"ff00000000000000000020000000000000":"0":"ff00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #940: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000000020000000000000, carry 0x0)/(0xffff00000000000000000020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000000020000000000000":"0":"ffff00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #941: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000000020000000000000, carry 0x0)/(0x1000000000000000000000020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"10000":"1000000000000000000000020000000000000":"0":"1000000000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #942: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000000020000000000000, carry 0x0)/(0xffffffff00000000000000000020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000020000000000000":"0":"ffffffff00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #943: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x100000000 = (0x20000000000000, carry 0x1)/(0x10000000000000000000000000020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"100000000":"20000000000000":"1":"10000000000000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #944: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000000020000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000000020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000020000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #945: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x20000000000000, carry 0x80000000)/(0x800000000000000000000000000000000020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"8000000000000000":"20000000000000":"80000000":"800000000000000000000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #946: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000000020000000000000, carry 0xffffffff)/(0xfffffffffffffffe00000000000000000020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000020000000000000":"ffffffff":"fffffffffffffffe00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #947: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #948: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369f0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369f0369b20369cd0, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369f0369b20369cd0":"0":"369d0369b20369cd0369f0369b20369cd0":"0" - -mbedtls_mpi_core_mla #949: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fefcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fefcb9f8a7653220, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fefcb9f8a7653220":"0":"120fedcb9f8a76532320fefcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #950: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222422181b2221110, carry 0x0)/(0x12222222181b2221122222422181b2221110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222422181b2221110":"0":"12222222181b2221122222422181b2221110":"0" - -mbedtls_mpi_core_mla #951: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444463a333d4332110, carry 0x0)/(0x123444443a333d433334444463a333d4332110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444463a333d4332110":"0":"123444443a333d433334444463a333d4332110":"0" - -mbedtls_mpi_core_mla #952: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567a90abcdef00000, carry 0x0)/(0x1234567890abcdef01234567a90abcdef00000, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567a90abcdef00000":"0":"1234567890abcdef01234567a90abcdef00000":"0" - -mbedtls_mpi_core_mla #953: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7977766f5432110, carry 0x12)/(0x123456787e7777767077777887e7977766f5432110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7977766f5432110":"12":"123456787e7777767077777887e7977766f5432110":"0" - -mbedtls_mpi_core_mla #954: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890adcdef000000000, carry 0x12)/(0x1234567890abcdef01234567890adcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890adcdef000000000":"12":"1234567890abcdef01234567890adcdef000000000":"0" - -mbedtls_mpi_core_mla #955: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f69708abaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f69708abaf5ba910, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f69708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f69708abaf5ba910":"9" - -mbedtls_mpi_core_mla #956: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f780020000000000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f780020000000000000, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780020000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"9" - -mbedtls_mpi_core_mla #957: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb99530edea864220, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb99530edea864220, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb99530edea864220":"1234567890":"34567890abcdeedcba987667b32100edb99530edea864220":"12" - -mbedtls_mpi_core_mla #958: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #959: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x1ffffffffffffd, carry 0x3)/(0x1ffffffffffffd, carry 0x3) -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1ffffffffffffd":"3":"1ffffffffffffd":"3" - -mbedtls_mpi_core_mla #960: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x1fffffffffff02, carry 0xfe)/(0x1fffffffffff02, carry 0xfe) -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1fffffffffff02":"fe":"1fffffffffff02":"fe" - -mbedtls_mpi_core_mla #961: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x1fffffffffff01, carry 0xff)/(0x1fffffffffff01, carry 0xff) -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1fffffffffff01":"ff":"1fffffffffff01":"ff" - -mbedtls_mpi_core_mla #962: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x1fffffffff0001, carry 0xffff)/(0x1fffffffff0001, carry 0xffff) -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1fffffffff0001":"ffff":"1fffffffff0001":"ffff" - -mbedtls_mpi_core_mla #963: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x1fffffffff0000, carry 0x10000)/(0x1fffffffff0000, carry 0x10000) -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1fffffffff0000":"10000":"1fffffffff0000":"10000" - -mbedtls_mpi_core_mla #964: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1fffff00000001, carry 0xffffffff)/(0x1fffff00000001, carry 0xffffffff) -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1fffff00000001":"ffffffff":"1fffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #965: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x1fffff00000000, carry 0x100000000)/(0x1fffff00000000, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1fffff00000000":"100000000":"1fffff00000000":"100000000" - -mbedtls_mpi_core_mla #966: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #967: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #968: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002":"fffffffffffffffd" - -mbedtls_mpi_core_mla #969: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #970: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0":"0" - -mbedtls_mpi_core_mla #971: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #972: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222422181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222422181b2221110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222422181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222422181b2221110":"0" - -mbedtls_mpi_core_mla #973: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110":"0" - -mbedtls_mpi_core_mla #974: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000":"0" - -mbedtls_mpi_core_mla #975: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110":"0" - -mbedtls_mpi_core_mla #976: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000":"0" - -mbedtls_mpi_core_mla #977: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910":"911" - -mbedtls_mpi_core_mla #978: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"91a" - -mbedtls_mpi_core_mla #979: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220":"1234" - -mbedtls_mpi_core_mla #980: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #981: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381, carry 0x0) -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381":"0" - -mbedtls_mpi_core_mla #982: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa, carry 0x0) -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa":"0" - -mbedtls_mpi_core_mla #983: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5, carry 0x0) -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5":"0" - -mbedtls_mpi_core_mla #984: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5, carry 0x0) -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5":"0" - -mbedtls_mpi_core_mla #985: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000, carry 0x0) -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000":"0" - -mbedtls_mpi_core_mla #986: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5, carry 0x4) -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5":"4" - -mbedtls_mpi_core_mla #987: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000":"4" - -mbedtls_mpi_core_mla #988: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955":"26d473ca9" - -mbedtls_mpi_core_mla #989: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000":"26fb9683d" - -mbedtls_mpi_core_mla #990: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa":"4df72d07b" - -mbedtls_mpi_core_mla #991: 0xffffffffffffffff + 0x0 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #992: 0xffffffffffffffff + 0x0 * 0x3 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"0":"3":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #993: 0xffffffffffffffff + 0x0 * 0xfe = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"0":"fe":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #994: 0xffffffffffffffff + 0x0 * 0xff = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"0":"ff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #995: 0xffffffffffffffff + 0x0 * 0xffff = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"0":"ffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #996: 0xffffffffffffffff + 0x0 * 0x10000 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"0":"10000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #997: 0xffffffffffffffff + 0x0 * 0xffffffff = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"0":"ffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #998: 0xffffffffffffffff + 0x0 * 0x100000000 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"0":"100000000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #999: 0xffffffffffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1000: 0xffffffffffffffff + 0x0 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"0":"8000000000000000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1001: 0xffffffffffffffff + 0x0 * 0xfffffffffffffffe = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"0":"fffffffffffffffe":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1002: 0xffffffffffffffff + 0x1 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1003: 0xffffffffffffffff + 0x1 * 0x3 = (0x2, carry 0x1)/(0x2, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"1":"3":"2":"1":"2":"1" - -mbedtls_mpi_core_mla #1004: 0xffffffffffffffff + 0x1 * 0xfe = (0xfd, carry 0x1)/(0xfd, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"1":"fe":"fd":"1":"fd":"1" - -mbedtls_mpi_core_mla #1005: 0xffffffffffffffff + 0x1 * 0xff = (0xfe, carry 0x1)/(0xfe, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"1":"ff":"fe":"1":"fe":"1" - -mbedtls_mpi_core_mla #1006: 0xffffffffffffffff + 0x1 * 0xffff = (0xfffe, carry 0x1)/(0xfffe, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"1":"ffff":"fffe":"1":"fffe":"1" - -mbedtls_mpi_core_mla #1007: 0xffffffffffffffff + 0x1 * 0x10000 = (0xffff, carry 0x1)/(0xffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"1":"10000":"ffff":"1":"ffff":"1" - -mbedtls_mpi_core_mla #1008: 0xffffffffffffffff + 0x1 * 0xffffffff = (0xfffffffe, carry 0x1)/(0xfffffffe, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"1":"ffffffff":"fffffffe":"1":"fffffffe":"1" - -mbedtls_mpi_core_mla #1009: 0xffffffffffffffff + 0x1 * 0x100000000 = (0xffffffff, carry 0x1)/(0xffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1":"100000000":"ffffffff":"1":"ffffffff":"1" - -mbedtls_mpi_core_mla #1010: 0xffffffffffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7e, carry 0x1)/(0x7f7f7f7f7f7f7f7e, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e":"1":"7f7f7f7f7f7f7f7e":"1" - -mbedtls_mpi_core_mla #1011: 0xffffffffffffffff + 0x1 * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x1)/(0x7fffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1":"8000000000000000":"7fffffffffffffff":"1":"7fffffffffffffff":"1" - -mbedtls_mpi_core_mla #1012: 0xffffffffffffffff + 0x1 * 0xfffffffffffffffe = (0xfffffffffffffffd, carry 0x1)/(0xfffffffffffffffd, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffd":"1":"fffffffffffffffd":"1" - -mbedtls_mpi_core_mla #1013: 0xffffffffffffffff + 0xfffe * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"fffe":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1014: 0xffffffffffffffff + 0xfffe * 0x3 = (0x2fff9, carry 0x1)/(0x2fff9, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"fffe":"3":"2fff9":"1":"2fff9":"1" - -mbedtls_mpi_core_mla #1015: 0xffffffffffffffff + 0xfffe * 0xfe = (0xfdfe03, carry 0x1)/(0xfdfe03, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"fffe":"fe":"fdfe03":"1":"fdfe03":"1" - -mbedtls_mpi_core_mla #1016: 0xffffffffffffffff + 0xfffe * 0xff = (0xfefe01, carry 0x1)/(0xfefe01, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"fffe":"ff":"fefe01":"1":"fefe01":"1" - -mbedtls_mpi_core_mla #1017: 0xffffffffffffffff + 0xfffe * 0xffff = (0xfffd0001, carry 0x1)/(0xfffd0001, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"fffe":"ffff":"fffd0001":"1":"fffd0001":"1" - -mbedtls_mpi_core_mla #1018: 0xffffffffffffffff + 0xfffe * 0x10000 = (0xfffdffff, carry 0x1)/(0xfffdffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"fffe":"10000":"fffdffff":"1":"fffdffff":"1" - -mbedtls_mpi_core_mla #1019: 0xffffffffffffffff + 0xfffe * 0xffffffff = (0xfffdffff0001, carry 0x1)/(0xfffdffff0001, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"fffe":"ffffffff":"fffdffff0001":"1":"fffdffff0001":"1" - -mbedtls_mpi_core_mla #1020: 0xffffffffffffffff + 0xfffe * 0x100000000 = (0xfffdffffffff, carry 0x1)/(0xfffdffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffe":"100000000":"fffdffffffff":"1":"fffdffffffff":"1" - -mbedtls_mpi_core_mla #1021: 0xffffffffffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x8080808080800101, carry 0x7f7f)/(0x8080808080800101, carry 0x7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffe":"7f7f7f7f7f7f7f7f":"8080808080800101":"7f7f":"8080808080800101":"7f7f" - -mbedtls_mpi_core_mla #1022: 0xffffffffffffffff + 0xfffe * 0x8000000000000000 = (0xffffffffffffffff, carry 0x7fff)/(0xffffffffffffffff, carry 0x7fff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffe":"8000000000000000":"ffffffffffffffff":"7fff":"ffffffffffffffff":"7fff" - -mbedtls_mpi_core_mla #1023: 0xffffffffffffffff + 0xfffe * 0xfffffffffffffffe = (0xfffffffffffe0003, carry 0xfffe)/(0xfffffffffffe0003, carry 0xfffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffe":"fffffffffffffffe":"fffffffffffe0003":"fffe":"fffffffffffe0003":"fffe" - -mbedtls_mpi_core_mla #1024: 0xffffffffffffffff + 0xffffffff * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"ffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1025: 0xffffffffffffffff + 0xffffffff * 0x3 = (0x2fffffffc, carry 0x1)/(0x2fffffffc, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"ffffffff":"3":"2fffffffc":"1":"2fffffffc":"1" - -mbedtls_mpi_core_mla #1026: 0xffffffffffffffff + 0xffffffff * 0xfe = (0xfdffffff01, carry 0x1)/(0xfdffffff01, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"ffffffff":"fe":"fdffffff01":"1":"fdffffff01":"1" - -mbedtls_mpi_core_mla #1027: 0xffffffffffffffff + 0xffffffff * 0xff = (0xfeffffff00, carry 0x1)/(0xfeffffff00, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"ffffffff":"ff":"feffffff00":"1":"feffffff00":"1" - -mbedtls_mpi_core_mla #1028: 0xffffffffffffffff + 0xffffffff * 0xffff = (0xfffeffff0000, carry 0x1)/(0xfffeffff0000, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"ffffffff":"ffff":"fffeffff0000":"1":"fffeffff0000":"1" - -mbedtls_mpi_core_mla #1029: 0xffffffffffffffff + 0xffffffff * 0x10000 = (0xfffffffeffff, carry 0x1)/(0xfffffffeffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"ffffffff":"10000":"fffffffeffff":"1":"fffffffeffff":"1" - -mbedtls_mpi_core_mla #1030: 0xffffffffffffffff + 0xffffffff * 0xffffffff = (0xfffffffe00000000, carry 0x1)/(0xfffffffe00000000, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"ffffffff":"ffffffff":"fffffffe00000000":"1":"fffffffe00000000":"1" - -mbedtls_mpi_core_mla #1031: 0xffffffffffffffff + 0xffffffff * 0x100000000 = (0xfffffffeffffffff, carry 0x1)/(0xfffffffeffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffff":"100000000":"fffffffeffffffff":"1":"fffffffeffffffff":"1" - -mbedtls_mpi_core_mla #1032: 0xffffffffffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffff80808080, carry 0x7f7f7f7f)/(0xffffffff80808080, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"ffffffff80808080":"7f7f7f7f":"ffffffff80808080":"7f7f7f7f" - -mbedtls_mpi_core_mla #1033: 0xffffffffffffffff + 0xffffffff * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x80000000)/(0x7fffffffffffffff, carry 0x80000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffff":"8000000000000000":"7fffffffffffffff":"80000000":"7fffffffffffffff":"80000000" - -mbedtls_mpi_core_mla #1034: 0xffffffffffffffff + 0xffffffff * 0xfffffffffffffffe = (0xfffffffe00000001, carry 0xffffffff)/(0xfffffffe00000001, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffff":"fffffffffffffffe":"fffffffe00000001":"ffffffff":"fffffffe00000001":"ffffffff" - -mbedtls_mpi_core_mla #1035: 0xffffffffffffffff + 0x100000000 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"100000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1036: 0xffffffffffffffff + 0x100000000 * 0x3 = (0x2ffffffff, carry 0x1)/(0x2ffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"100000000":"3":"2ffffffff":"1":"2ffffffff":"1" - -mbedtls_mpi_core_mla #1037: 0xffffffffffffffff + 0x100000000 * 0xfe = (0xfdffffffff, carry 0x1)/(0xfdffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"100000000":"fe":"fdffffffff":"1":"fdffffffff":"1" - -mbedtls_mpi_core_mla #1038: 0xffffffffffffffff + 0x100000000 * 0xff = (0xfeffffffff, carry 0x1)/(0xfeffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"100000000":"ff":"feffffffff":"1":"feffffffff":"1" - -mbedtls_mpi_core_mla #1039: 0xffffffffffffffff + 0x100000000 * 0xffff = (0xfffeffffffff, carry 0x1)/(0xfffeffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"100000000":"ffff":"fffeffffffff":"1":"fffeffffffff":"1" - -mbedtls_mpi_core_mla #1040: 0xffffffffffffffff + 0x100000000 * 0x10000 = (0xffffffffffff, carry 0x1)/(0xffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"100000000":"10000":"ffffffffffff":"1":"ffffffffffff":"1" - -mbedtls_mpi_core_mla #1041: 0xffffffffffffffff + 0x100000000 * 0xffffffff = (0xfffffffeffffffff, carry 0x1)/(0xfffffffeffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"100000000":"ffffffff":"fffffffeffffffff":"1":"fffffffeffffffff":"1" - -mbedtls_mpi_core_mla #1042: 0xffffffffffffffff + 0x100000000 * 0x100000000 = (0xffffffffffffffff, carry 0x1)/(0xffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000":"100000000":"ffffffffffffffff":"1":"ffffffffffffffff":"1" - -mbedtls_mpi_core_mla #1043: 0xffffffffffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7effffffff, carry 0x7f7f7f80)/(0x7f7f7f7effffffff, carry 0x7f7f7f80) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7effffffff":"7f7f7f80":"7f7f7f7effffffff":"7f7f7f80" - -mbedtls_mpi_core_mla #1044: 0xffffffffffffffff + 0x100000000 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x80000000)/(0xffffffffffffffff, carry 0x80000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000":"8000000000000000":"ffffffffffffffff":"80000000":"ffffffffffffffff":"80000000" - -mbedtls_mpi_core_mla #1045: 0xffffffffffffffff + 0x100000000 * 0xfffffffffffffffe = (0xfffffffdffffffff, carry 0x100000000)/(0xfffffffdffffffff, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000":"fffffffffffffffe":"fffffffdffffffff":"100000000":"fffffffdffffffff":"100000000" - -mbedtls_mpi_core_mla #1046: 0xffffffffffffffff + 0x20000000000000 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"20000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1047: 0xffffffffffffffff + 0x20000000000000 * 0x3 = (0x5fffffffffffff, carry 0x1)/(0x5fffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"20000000000000":"3":"5fffffffffffff":"1":"5fffffffffffff":"1" - -mbedtls_mpi_core_mla #1048: 0xffffffffffffffff + 0x20000000000000 * 0xfe = (0x1fbfffffffffffff, carry 0x1)/(0x1fbfffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"20000000000000":"fe":"1fbfffffffffffff":"1":"1fbfffffffffffff":"1" - -mbedtls_mpi_core_mla #1049: 0xffffffffffffffff + 0x20000000000000 * 0xff = (0x1fdfffffffffffff, carry 0x1)/(0x1fdfffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"20000000000000":"ff":"1fdfffffffffffff":"1":"1fdfffffffffffff":"1" - -mbedtls_mpi_core_mla #1050: 0xffffffffffffffff + 0x20000000000000 * 0xffff = (0xffdfffffffffffff, carry 0x20)/(0xffdfffffffffffff, carry 0x20) -mpi_core_mla:"ffffffffffffffff":"20000000000000":"ffff":"ffdfffffffffffff":"20":"ffdfffffffffffff":"20" - -mbedtls_mpi_core_mla #1051: 0xffffffffffffffff + 0x20000000000000 * 0x10000 = (0xffffffffffffffff, carry 0x20)/(0xffffffffffffffff, carry 0x20) -mpi_core_mla:"ffffffffffffffff":"20000000000000":"10000":"ffffffffffffffff":"20":"ffffffffffffffff":"20" - -mbedtls_mpi_core_mla #1052: 0xffffffffffffffff + 0x20000000000000 * 0xffffffff = (0xffdfffffffffffff, carry 0x200000)/(0xffdfffffffffffff, carry 0x200000) -mpi_core_mla:"ffffffffffffffff":"20000000000000":"ffffffff":"ffdfffffffffffff":"200000":"ffdfffffffffffff":"200000" - -mbedtls_mpi_core_mla #1053: 0xffffffffffffffff + 0x20000000000000 * 0x100000000 = (0xffffffffffffffff, carry 0x200000)/(0xffffffffffffffff, carry 0x200000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"20000000000000":"100000000":"ffffffffffffffff":"200000":"ffffffffffffffff":"200000" - -mbedtls_mpi_core_mla #1054: 0xffffffffffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefdfffffffffffff, carry 0xfefefefefeff0)/(0xefdfffffffffffff, carry 0xfefefefefeff0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"efdfffffffffffff":"fefefefefeff0":"efdfffffffffffff":"fefefefefeff0" - -mbedtls_mpi_core_mla #1055: 0xffffffffffffffff + 0x20000000000000 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x10000000000000)/(0xffffffffffffffff, carry 0x10000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"20000000000000":"8000000000000000":"ffffffffffffffff":"10000000000000":"ffffffffffffffff":"10000000000000" - -mbedtls_mpi_core_mla #1056: 0xffffffffffffffff + 0x20000000000000 * 0xfffffffffffffffe = (0xffbfffffffffffff, carry 0x20000000000000)/(0xffbfffffffffffff, carry 0x20000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"20000000000000":"fffffffffffffffe":"ffbfffffffffffff":"20000000000000":"ffbfffffffffffff":"20000000000000" - -mbedtls_mpi_core_mla #1057: 0xffffffffffffffff + 0xffffffffffffffff * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1058: 0xffffffffffffffff + 0xffffffffffffffff * 0x3 = (0xfffffffffffffffc, carry 0x3)/(0xfffffffffffffffc, carry 0x3) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"3":"fffffffffffffffc":"3":"fffffffffffffffc":"3" - -mbedtls_mpi_core_mla #1059: 0xffffffffffffffff + 0xffffffffffffffff * 0xfe = (0xffffffffffffff01, carry 0xfe)/(0xffffffffffffff01, carry 0xfe) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"fe":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #1060: 0xffffffffffffffff + 0xffffffffffffffff * 0xff = (0xffffffffffffff00, carry 0xff)/(0xffffffffffffff00, carry 0xff) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ff":"ffffffffffffff00":"ff":"ffffffffffffff00":"ff" - -mbedtls_mpi_core_mla #1061: 0xffffffffffffffff + 0xffffffffffffffff * 0xffff = (0xffffffffffff0000, carry 0xffff)/(0xffffffffffff0000, carry 0xffff) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ffff":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" - -mbedtls_mpi_core_mla #1062: 0xffffffffffffffff + 0xffffffffffffffff * 0x10000 = (0xfffffffffffeffff, carry 0x10000)/(0xfffffffffffeffff, carry 0x10000) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"10000":"fffffffffffeffff":"10000":"fffffffffffeffff":"10000" - -mbedtls_mpi_core_mla #1063: 0xffffffffffffffff + 0xffffffffffffffff * 0xffffffff = (0xffffffff00000000, carry 0xffffffff)/(0xffffffff00000000, carry 0xffffffff) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #1064: 0xffffffffffffffff + 0xffffffffffffffff * 0x100000000 = (0xfffffffeffffffff, carry 0x100000000)/(0xfffffffeffffffff, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"100000000":"fffffffeffffffff":"100000000":"fffffffeffffffff":"100000000" - -mbedtls_mpi_core_mla #1065: 0xffffffffffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808080, carry 0x7f7f7f7f7f7f7f7f)/(0x8080808080808080, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1066: 0xffffffffffffffff + 0xffffffffffffffff * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x8000000000000000)/(0x7fffffffffffffff, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000" - -mbedtls_mpi_core_mla #1067: 0xffffffffffffffff + 0xffffffffffffffff * 0xfffffffffffffffe = (0x1, carry 0xfffffffffffffffe)/(0x1, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":"1":"fffffffffffffffe":"1":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1068: 0xffffffffffffffff + 0x10000000000000000 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1069: 0xffffffffffffffff + 0x10000000000000000 * 0x3 = (0x3ffffffffffffffff, carry 0x0)/(0x3ffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"3":"3ffffffffffffffff":"0":"3ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1070: 0xffffffffffffffff + 0x10000000000000000 * 0xfe = (0xfeffffffffffffffff, carry 0x0)/(0xfeffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"fe":"feffffffffffffffff":"0":"feffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1071: 0xffffffffffffffff + 0x10000000000000000 * 0xff = (0xffffffffffffffffff, carry 0x0)/(0xffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ff":"ffffffffffffffffff":"0":"ffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1072: 0xffffffffffffffff + 0x10000000000000000 * 0xffff = (0xffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ffff":"ffffffffffffffffffff":"0":"ffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1073: 0xffffffffffffffff + 0x10000000000000000 * 0x10000 = (0x10000ffffffffffffffff, carry 0x0)/(0x10000ffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"10000":"10000ffffffffffffffff":"0":"10000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1074: 0xffffffffffffffff + 0x10000000000000000 * 0xffffffff = (0xffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ffffffff":"ffffffffffffffffffffffff":"0":"ffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1075: 0xffffffffffffffff + 0x10000000000000000 * 0x100000000 = (0xffffffffffffffff, carry 0x1)/(0x100000000ffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"100000000":"ffffffffffffffff":"1":"100000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1076: 0xffffffffffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fffffffffffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7fffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffffffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7fffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1077: 0xffffffffffffffff + 0x10000000000000000 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x80000000)/(0x8000000000000000ffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"8000000000000000":"ffffffffffffffff":"80000000":"8000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1078: 0xffffffffffffffff + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffeffffffffffffffff, carry 0xffffffff)/(0xfffffffffffffffeffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"fffffffffffffffe":"fffffffeffffffffffffffff":"ffffffff":"fffffffffffffffeffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1079: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1080: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x3 = (0x469d0369b20369ccf, carry 0x0)/(0x469d0369b20369ccf, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"3":"469d0369b20369ccf":"0":"469d0369b20369ccf":"0" - -mbedtls_mpi_core_mla #1081: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xfe = (0x121fedcb9f8a765321f, carry 0x0)/(0x121fedcb9f8a765321f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"fe":"121fedcb9f8a765321f":"0":"121fedcb9f8a765321f":"0" - -mbedtls_mpi_core_mla #1082: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xff = (0x12322222181b222110f, carry 0x0)/(0x12322222181b222110f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ff":"12322222181b222110f":"0":"12322222181b222110f":"0" - -mbedtls_mpi_core_mla #1083: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xffff = (0x123454443a333d433210f, carry 0x0)/(0x123454443a333d433210f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ffff":"123454443a333d433210f":"0":"123454443a333d433210f":"0" - -mbedtls_mpi_core_mla #1084: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x10000 = (0x1234667890abcdeefffff, carry 0x0)/(0x1234667890abcdeefffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"10000":"1234667890abcdeefffff":"0":"1234667890abcdeefffff":"0" - -mbedtls_mpi_core_mla #1085: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xffffffff = (0x23456788e7777766f543210f, carry 0x1)/(0x123456788e7777766f543210f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ffffffff":"23456788e7777766f543210f":"1":"123456788e7777766f543210f":"0" - -mbedtls_mpi_core_mla #1086: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x100000000 = (0x2345678a0abcdeefffffffff, carry 0x1)/(0x12345678a0abcdeefffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"100000000":"2345678a0abcdeefffffffff":"1":"12345678a0abcdeefffffffff":"0" - -mbedtls_mpi_core_mla #1087: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde77f67708abaf5ba90f, carry 0x91107edb)/(0x91107edbd82bde77f67708abaf5ba90f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde77f67708abaf5ba90f":"91107edb":"91107edbd82bde77f67708abaf5ba90f":"0" - -mbedtls_mpi_core_mla #1088: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f78ffffffffffffffff, carry 0x91a2b3c4)/(0x91a2b3c4855e6f78ffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"8000000000000000":"855e6f78ffffffffffffffff":"91a2b3c4":"91a2b3c4855e6f78ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1089: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeeb97530edea86421f, carry 0x123456789)/(0x234567890abcdeeeb97530edea86421f, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"fffffffffffffffe":"abcdeeeb97530edea86421f":"123456789":"234567890abcdeeeb97530edea86421f":"1" - -mbedtls_mpi_core_mla #1090: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1091: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfcfcfcfcfcfcfcf9, carry 0x3)/(0xfcfcfcfcfcfcfcf9, carry 0x3) -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"3":"fcfcfcfcfcfcfcf9":"3":"fcfcfcfcfcfcfcf9":"3" - -mbedtls_mpi_core_mla #1092: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x101010101010003, carry 0xfe)/(0x101010101010003, carry 0xfe) -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fe":"101010101010003":"fe":"101010101010003":"fe" - -mbedtls_mpi_core_mla #1093: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffffffffffffffffff01, carry 0xfe)/(0xffffffffffffffffffffffffffffff01, carry 0xfe) -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #1094: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeffffffffffffff0101, carry 0xfffe)/(0xfffffffffffffeffffffffffffff0101, carry 0xfffe) -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeffffffffffffff0101":"fffe":"fffffffffffffeffffffffffffff0101":"fffe" - -mbedtls_mpi_core_mla #1095: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefffefefefefefdffff, carry 0xffff)/(0xfffffffffffffefffefefefefefdffff, carry 0xffff) -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefffefefefefefdffff":"ffff":"fffffffffffffefffefefefefefdffff":"ffff" - -mbedtls_mpi_core_mla #1096: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeffffffffff01010101, carry 0xfffffffe)/(0xfffffffffefefeffffffffff01010101, carry 0xfffffffe) -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeffffffffff01010101":"fffffffe":"fffffffffefefeffffffffff01010101":"fffffffe" - -mbedtls_mpi_core_mla #1097: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefffefefefdffffffff, carry 0xffffffff)/(0xfffffffffefefefffefefefdffffffff, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefffefefefdffffffff":"ffffffff":"fffffffffefefefffefefefdffffffff":"ffffffff" - -mbedtls_mpi_core_mla #1098: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202838504840383028201, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202838504840383028201, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202838504840383028201":"7f7f7f7f7f7f7f7e":"ff800081018202838504840383028201":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #1099: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7fffffffffffffffff, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7fffffffffffffffff, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7fffffffffffffffff":"7fffffffffffffff":"ff7f7f7f7f7f7f7fffffffffffffffff":"7fffffffffffffff" - -mbedtls_mpi_core_mla #1100: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefeff0202020202020203, carry 0xfffffffffffffffd)/(0xfefefefefefefeff0202020202020203, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff0202020202020203":"fffffffffffffffd":"fefefefefefefeff0202020202020203":"fffffffffffffffd" - -mbedtls_mpi_core_mla #1101: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1102: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x3 = (0x30000000000000000ffffffffffffffff, carry 0x0)/(0x30000000000000000ffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"3":"30000000000000000ffffffffffffffff":"0":"30000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1103: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xfe = (0xfe0000000000000000ffffffffffffffff, carry 0x0)/(0xfe0000000000000000ffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"fe":"fe0000000000000000ffffffffffffffff":"0":"fe0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1104: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xff = (0xff0000000000000000ffffffffffffffff, carry 0x0)/(0xff0000000000000000ffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ff":"ff0000000000000000ffffffffffffffff":"0":"ff0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1105: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xffff = (0xffff0000000000000000ffffffffffffffff, carry 0x0)/(0xffff0000000000000000ffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ffff":"ffff0000000000000000ffffffffffffffff":"0":"ffff0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1106: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x10000 = (0x100000000000000000000ffffffffffffffff, carry 0x0)/(0x100000000000000000000ffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"10000":"100000000000000000000ffffffffffffffff":"0":"100000000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1107: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff0000000000000000ffffffffffffffff, carry 0x0)/(0xffffffff0000000000000000ffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000000ffffffffffffffff":"0":"ffffffff0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1108: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x100000000 = (0xffffffffffffffff, carry 0x1)/(0x1000000000000000000000000ffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"100000000":"ffffffffffffffff":"1":"1000000000000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1109: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000000ffffffffffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000000ffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000ffffffffffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1110: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x80000000)/(0x80000000000000000000000000000000ffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"8000000000000000":"ffffffffffffffff":"80000000":"80000000000000000000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1111: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000000ffffffffffffffff, carry 0xffffffff)/(0xfffffffffffffffe0000000000000000ffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000000ffffffffffffffff":"ffffffff":"fffffffffffffffe0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1112: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1113: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0469d0369b20369ccf, carry 0x0)/(0x369d0369b20369cd0469d0369b20369ccf, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0469d0369b20369ccf":"0":"369d0369b20369cd0469d0369b20369ccf":"0" - -mbedtls_mpi_core_mla #1114: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532321fedcb9f8a765321f, carry 0x0)/(0x120fedcb9f8a76532321fedcb9f8a765321f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532321fedcb9f8a765321f":"0":"120fedcb9f8a76532321fedcb9f8a765321f":"0" - -mbedtls_mpi_core_mla #1115: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122322222181b222110f, carry 0x0)/(0x12222222181b2221122322222181b222110f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122322222181b222110f":"0":"12222222181b2221122322222181b222110f":"0" - -mbedtls_mpi_core_mla #1116: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334454443a333d433210f, carry 0x0)/(0x123444443a333d433334454443a333d433210f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334454443a333d433210f":"0":"123444443a333d433334454443a333d433210f":"0" - -mbedtls_mpi_core_mla #1117: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234667890abcdeefffff, carry 0x0)/(0x1234567890abcdef01234667890abcdeefffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234667890abcdeefffff":"0":"1234567890abcdef01234667890abcdeefffff":"0" - -mbedtls_mpi_core_mla #1118: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777888e7777766f543210f, carry 0x12)/(0x123456787e7777767077777888e7777766f543210f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777888e7777766f543210f":"12":"123456787e7777767077777888e7777766f543210f":"0" - -mbedtls_mpi_core_mla #1119: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef012345678a0abcdeefffffffff, carry 0x12)/(0x1234567890abcdef012345678a0abcdeefffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a0abcdeefffffffff":"12":"1234567890abcdef012345678a0abcdeefffffffff":"0" - -mbedtls_mpi_core_mla #1120: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f77f67708abaf5ba90f, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f77f67708abaf5ba90f, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f77f67708abaf5ba90f":"91107edbd":"1107edbd82bde76ff8810996cde66f77f67708abaf5ba90f":"9" - -mbedtls_mpi_core_mla #1121: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f78ffffffffffffffff, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f78ffffffffffffffff":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"9" - -mbedtls_mpi_core_mla #1122: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100eeb97530edea86421f, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100eeb97530edea86421f, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eeb97530edea86421f":"1234567890":"34567890abcdeedcba987667b32100eeb97530edea86421f":"12" - -mbedtls_mpi_core_mla #1123: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1124: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffc, carry 0x3)/(0xfffffffffffffffc, carry 0x3) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffc":"3":"fffffffffffffffc":"3" - -mbedtls_mpi_core_mla #1125: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffff01, carry 0xfe)/(0xffffffffffffff01, carry 0xfe) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #1126: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffff00, carry 0xff)/(0xffffffffffffff00, carry 0xff) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffff00":"ff":"ffffffffffffff00":"ff" - -mbedtls_mpi_core_mla #1127: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffff0000, carry 0xffff)/(0xffffffffffff0000, carry 0xffff) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" - -mbedtls_mpi_core_mla #1128: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffffffffffeffff, carry 0x10000)/(0xfffffffffffeffff, carry 0x10000) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffeffff":"10000":"fffffffffffeffff":"10000" - -mbedtls_mpi_core_mla #1129: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffff00000000, carry 0xffffffff)/(0xffffffff00000000, carry 0xffffffff) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #1130: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xfffffffeffffffff, carry 0x100000000)/(0xfffffffeffffffff, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffeffffffff":"100000000":"fffffffeffffffff":"100000000" - -mbedtls_mpi_core_mla #1131: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808080, carry 0x7f7f7f7f7f7f7f7f)/(0x8080808080808080, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1132: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x8000000000000000)/(0x7fffffffffffffff, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000" - -mbedtls_mpi_core_mla #1133: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x1, carry 0xfffffffffffffffe)/(0x1, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1":"fffffffffffffffe":"1":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1134: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1135: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf":"0" - -mbedtls_mpi_core_mla #1136: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f":"0" - -mbedtls_mpi_core_mla #1137: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122322222181b222110f, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122322222181b222110f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122322222181b222110f":"0":"12222222181b2221122222222181b2221122222222181b2221122322222181b222110f":"0" - -mbedtls_mpi_core_mla #1138: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f":"0":"123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f":"0" - -mbedtls_mpi_core_mla #1139: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff":"0" - -mbedtls_mpi_core_mla #1140: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f":"1234":"123456787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f":"0" - -mbedtls_mpi_core_mla #1141: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff":"0" - -mbedtls_mpi_core_mla #1142: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f":"911" - -mbedtls_mpi_core_mla #1143: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"91a" - -mbedtls_mpi_core_mla #1144: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f":"1234" - -mbedtls_mpi_core_mla #1145: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1146: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380":"0" - -mbedtls_mpi_core_mla #1147: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9":"0" - -mbedtls_mpi_core_mla #1148: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4":"0" - -mbedtls_mpi_core_mla #1149: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4":"0" - -mbedtls_mpi_core_mla #1150: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff":"0" - -mbedtls_mpi_core_mla #1151: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4, carry 0x4) -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4":"4" - -mbedtls_mpi_core_mla #1152: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff":"4" - -mbedtls_mpi_core_mla #1153: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954":"26d473ca9" - -mbedtls_mpi_core_mla #1154: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff":"26fb9683d" - -mbedtls_mpi_core_mla #1155: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9":"4df72d07b" - -mbedtls_mpi_core_mla #1156: 0x10000000000000000 + 0x0 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"0":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1157: 0x10000000000000000 + 0x0 * 0x3 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"0":"3":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1158: 0x10000000000000000 + 0x0 * 0xfe = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"0":"fe":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1159: 0x10000000000000000 + 0x0 * 0xff = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"0":"ff":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1160: 0x10000000000000000 + 0x0 * 0xffff = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"0":"ffff":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1161: 0x10000000000000000 + 0x0 * 0x10000 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"0":"10000":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1162: 0x10000000000000000 + 0x0 * 0xffffffff = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"0":"ffffffff":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1163: 0x10000000000000000 + 0x0 * 0x100000000 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"0":"100000000":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1164: 0x10000000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"0":"7f7f7f7f7f7f7f7f":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1165: 0x10000000000000000 + 0x0 * 0x8000000000000000 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"0":"8000000000000000":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1166: 0x10000000000000000 + 0x0 * 0xfffffffffffffffe = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"0":"fffffffffffffffe":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1167: 0x10000000000000000 + 0x1 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"1":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1168: 0x10000000000000000 + 0x1 * 0x3 = (0x10000000000000003, carry 0x0)/(0x10000000000000003, carry 0x0) -mpi_core_mla:"10000000000000000":"1":"3":"10000000000000003":"0":"10000000000000003":"0" - -mbedtls_mpi_core_mla #1169: 0x10000000000000000 + 0x1 * 0xfe = (0x100000000000000fe, carry 0x0)/(0x100000000000000fe, carry 0x0) -mpi_core_mla:"10000000000000000":"1":"fe":"100000000000000fe":"0":"100000000000000fe":"0" - -mbedtls_mpi_core_mla #1170: 0x10000000000000000 + 0x1 * 0xff = (0x100000000000000ff, carry 0x0)/(0x100000000000000ff, carry 0x0) -mpi_core_mla:"10000000000000000":"1":"ff":"100000000000000ff":"0":"100000000000000ff":"0" - -mbedtls_mpi_core_mla #1171: 0x10000000000000000 + 0x1 * 0xffff = (0x1000000000000ffff, carry 0x0)/(0x1000000000000ffff, carry 0x0) -mpi_core_mla:"10000000000000000":"1":"ffff":"1000000000000ffff":"0":"1000000000000ffff":"0" - -mbedtls_mpi_core_mla #1172: 0x10000000000000000 + 0x1 * 0x10000 = (0x10000000000010000, carry 0x0)/(0x10000000000010000, carry 0x0) -mpi_core_mla:"10000000000000000":"1":"10000":"10000000000010000":"0":"10000000000010000":"0" - -mbedtls_mpi_core_mla #1173: 0x10000000000000000 + 0x1 * 0xffffffff = (0x100000000ffffffff, carry 0x0)/(0x100000000ffffffff, carry 0x0) -mpi_core_mla:"10000000000000000":"1":"ffffffff":"100000000ffffffff":"0":"100000000ffffffff":"0" - -mbedtls_mpi_core_mla #1174: 0x10000000000000000 + 0x1 * 0x100000000 = (0x10000000100000000, carry 0x0)/(0x10000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1":"100000000":"10000000100000000":"0":"10000000100000000":"0" - -mbedtls_mpi_core_mla #1175: 0x10000000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x17f7f7f7f7f7f7f7f, carry 0x0)/(0x17f7f7f7f7f7f7f7f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7f":"0":"17f7f7f7f7f7f7f7f":"0" - -mbedtls_mpi_core_mla #1176: 0x10000000000000000 + 0x1 * 0x8000000000000000 = (0x18000000000000000, carry 0x0)/(0x18000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1":"8000000000000000":"18000000000000000":"0":"18000000000000000":"0" - -mbedtls_mpi_core_mla #1177: 0x10000000000000000 + 0x1 * 0xfffffffffffffffe = (0x1fffffffffffffffe, carry 0x0)/(0x1fffffffffffffffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1":"fffffffffffffffe":"1fffffffffffffffe":"0":"1fffffffffffffffe":"0" - -mbedtls_mpi_core_mla #1178: 0x10000000000000000 + 0xfffe * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"fffe":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1179: 0x10000000000000000 + 0xfffe * 0x3 = (0x1000000000002fffa, carry 0x0)/(0x1000000000002fffa, carry 0x0) -mpi_core_mla:"10000000000000000":"fffe":"3":"1000000000002fffa":"0":"1000000000002fffa":"0" - -mbedtls_mpi_core_mla #1180: 0x10000000000000000 + 0xfffe * 0xfe = (0x10000000000fdfe04, carry 0x0)/(0x10000000000fdfe04, carry 0x0) -mpi_core_mla:"10000000000000000":"fffe":"fe":"10000000000fdfe04":"0":"10000000000fdfe04":"0" - -mbedtls_mpi_core_mla #1181: 0x10000000000000000 + 0xfffe * 0xff = (0x10000000000fefe02, carry 0x0)/(0x10000000000fefe02, carry 0x0) -mpi_core_mla:"10000000000000000":"fffe":"ff":"10000000000fefe02":"0":"10000000000fefe02":"0" - -mbedtls_mpi_core_mla #1182: 0x10000000000000000 + 0xfffe * 0xffff = (0x100000000fffd0002, carry 0x0)/(0x100000000fffd0002, carry 0x0) -mpi_core_mla:"10000000000000000":"fffe":"ffff":"100000000fffd0002":"0":"100000000fffd0002":"0" - -mbedtls_mpi_core_mla #1183: 0x10000000000000000 + 0xfffe * 0x10000 = (0x100000000fffe0000, carry 0x0)/(0x100000000fffe0000, carry 0x0) -mpi_core_mla:"10000000000000000":"fffe":"10000":"100000000fffe0000":"0":"100000000fffe0000":"0" - -mbedtls_mpi_core_mla #1184: 0x10000000000000000 + 0xfffe * 0xffffffff = (0x10000fffdffff0002, carry 0x0)/(0x10000fffdffff0002, carry 0x0) -mpi_core_mla:"10000000000000000":"fffe":"ffffffff":"10000fffdffff0002":"0":"10000fffdffff0002":"0" - -mbedtls_mpi_core_mla #1185: 0x10000000000000000 + 0xfffe * 0x100000000 = (0x10000fffe00000000, carry 0x0)/(0x10000fffe00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffe":"100000000":"10000fffe00000000":"0":"10000fffe00000000":"0" - -mbedtls_mpi_core_mla #1186: 0x10000000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x7f7f8080808080800102, carry 0x0)/(0x7f7f8080808080800102, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffe":"7f7f7f7f7f7f7f7f":"7f7f8080808080800102":"0":"7f7f8080808080800102":"0" - -mbedtls_mpi_core_mla #1187: 0x10000000000000000 + 0xfffe * 0x8000000000000000 = (0x80000000000000000000, carry 0x0)/(0x80000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffe":"8000000000000000":"80000000000000000000":"0":"80000000000000000000":"0" - -mbedtls_mpi_core_mla #1188: 0x10000000000000000 + 0xfffe * 0xfffffffffffffffe = (0xfffefffffffffffe0004, carry 0x0)/(0xfffefffffffffffe0004, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffe":"fffffffffffffffe":"fffefffffffffffe0004":"0":"fffefffffffffffe0004":"0" - -mbedtls_mpi_core_mla #1189: 0x10000000000000000 + 0xffffffff * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1190: 0x10000000000000000 + 0xffffffff * 0x3 = (0x100000002fffffffd, carry 0x0)/(0x100000002fffffffd, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffff":"3":"100000002fffffffd":"0":"100000002fffffffd":"0" - -mbedtls_mpi_core_mla #1191: 0x10000000000000000 + 0xffffffff * 0xfe = (0x1000000fdffffff02, carry 0x0)/(0x1000000fdffffff02, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffff":"fe":"1000000fdffffff02":"0":"1000000fdffffff02":"0" - -mbedtls_mpi_core_mla #1192: 0x10000000000000000 + 0xffffffff * 0xff = (0x1000000feffffff01, carry 0x0)/(0x1000000feffffff01, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffff":"ff":"1000000feffffff01":"0":"1000000feffffff01":"0" - -mbedtls_mpi_core_mla #1193: 0x10000000000000000 + 0xffffffff * 0xffff = (0x10000fffeffff0001, carry 0x0)/(0x10000fffeffff0001, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffff":"ffff":"10000fffeffff0001":"0":"10000fffeffff0001":"0" - -mbedtls_mpi_core_mla #1194: 0x10000000000000000 + 0xffffffff * 0x10000 = (0x10000ffffffff0000, carry 0x0)/(0x10000ffffffff0000, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffff":"10000":"10000ffffffff0000":"0":"10000ffffffff0000":"0" - -mbedtls_mpi_core_mla #1195: 0x10000000000000000 + 0xffffffff * 0xffffffff = (0x1fffffffe00000001, carry 0x0)/(0x1fffffffe00000001, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffff":"ffffffff":"1fffffffe00000001":"0":"1fffffffe00000001":"0" - -mbedtls_mpi_core_mla #1196: 0x10000000000000000 + 0xffffffff * 0x100000000 = (0x1ffffffff00000000, carry 0x0)/(0x1ffffffff00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffff":"100000000":"1ffffffff00000000":"0":"1ffffffff00000000":"0" - -mbedtls_mpi_core_mla #1197: 0x10000000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fffffffff80808081, carry 0x0)/(0x7f7f7f7fffffffff80808081, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffff80808081":"0":"7f7f7f7fffffffff80808081":"0" - -mbedtls_mpi_core_mla #1198: 0x10000000000000000 + 0xffffffff * 0x8000000000000000 = (0x800000008000000000000000, carry 0x0)/(0x800000008000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffff":"8000000000000000":"800000008000000000000000":"0":"800000008000000000000000":"0" - -mbedtls_mpi_core_mla #1199: 0x10000000000000000 + 0xffffffff * 0xfffffffffffffffe = (0xfffffffffffffffe00000002, carry 0x0)/(0xfffffffffffffffe00000002, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffff":"fffffffffffffffe":"fffffffffffffffe00000002":"0":"fffffffffffffffe00000002":"0" - -mbedtls_mpi_core_mla #1200: 0x10000000000000000 + 0x100000000 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1201: 0x10000000000000000 + 0x100000000 * 0x3 = (0x10000000300000000, carry 0x0)/(0x10000000300000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000":"3":"10000000300000000":"0":"10000000300000000":"0" - -mbedtls_mpi_core_mla #1202: 0x10000000000000000 + 0x100000000 * 0xfe = (0x1000000fe00000000, carry 0x0)/(0x1000000fe00000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000":"fe":"1000000fe00000000":"0":"1000000fe00000000":"0" - -mbedtls_mpi_core_mla #1203: 0x10000000000000000 + 0x100000000 * 0xff = (0x1000000ff00000000, carry 0x0)/(0x1000000ff00000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000":"ff":"1000000ff00000000":"0":"1000000ff00000000":"0" - -mbedtls_mpi_core_mla #1204: 0x10000000000000000 + 0x100000000 * 0xffff = (0x10000ffff00000000, carry 0x0)/(0x10000ffff00000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000":"ffff":"10000ffff00000000":"0":"10000ffff00000000":"0" - -mbedtls_mpi_core_mla #1205: 0x10000000000000000 + 0x100000000 * 0x10000 = (0x10001000000000000, carry 0x0)/(0x10001000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000":"10000":"10001000000000000":"0":"10001000000000000":"0" - -mbedtls_mpi_core_mla #1206: 0x10000000000000000 + 0x100000000 * 0xffffffff = (0x1ffffffff00000000, carry 0x0)/(0x1ffffffff00000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000":"ffffffff":"1ffffffff00000000":"0":"1ffffffff00000000":"0" - -mbedtls_mpi_core_mla #1207: 0x10000000000000000 + 0x100000000 * 0x100000000 = (0x20000000000000000, carry 0x0)/(0x20000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000":"100000000":"20000000000000000":"0":"20000000000000000":"0" - -mbedtls_mpi_core_mla #1208: 0x10000000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f807f7f7f7f00000000, carry 0x0)/(0x7f7f7f807f7f7f7f00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f807f7f7f7f00000000":"0":"7f7f7f807f7f7f7f00000000":"0" - -mbedtls_mpi_core_mla #1209: 0x10000000000000000 + 0x100000000 * 0x8000000000000000 = (0x800000010000000000000000, carry 0x0)/(0x800000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000":"8000000000000000":"800000010000000000000000":"0":"800000010000000000000000":"0" - -mbedtls_mpi_core_mla #1210: 0x10000000000000000 + 0x100000000 * 0xfffffffffffffffe = (0xfffffffe00000000, carry 0x1)/(0x100000000fffffffe00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000":"fffffffffffffffe":"fffffffe00000000":"1":"100000000fffffffe00000000":"0" - -mbedtls_mpi_core_mla #1211: 0x10000000000000000 + 0x20000000000000 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"20000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1212: 0x10000000000000000 + 0x20000000000000 * 0x3 = (0x10060000000000000, carry 0x0)/(0x10060000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"20000000000000":"3":"10060000000000000":"0":"10060000000000000":"0" - -mbedtls_mpi_core_mla #1213: 0x10000000000000000 + 0x20000000000000 * 0xfe = (0x11fc0000000000000, carry 0x0)/(0x11fc0000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"20000000000000":"fe":"11fc0000000000000":"0":"11fc0000000000000":"0" - -mbedtls_mpi_core_mla #1214: 0x10000000000000000 + 0x20000000000000 * 0xff = (0x11fe0000000000000, carry 0x0)/(0x11fe0000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"20000000000000":"ff":"11fe0000000000000":"0":"11fe0000000000000":"0" - -mbedtls_mpi_core_mla #1215: 0x10000000000000000 + 0x20000000000000 * 0xffff = (0x20ffe0000000000000, carry 0x0)/(0x20ffe0000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"20000000000000":"ffff":"20ffe0000000000000":"0":"20ffe0000000000000":"0" - -mbedtls_mpi_core_mla #1216: 0x10000000000000000 + 0x20000000000000 * 0x10000 = (0x210000000000000000, carry 0x0)/(0x210000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"20000000000000":"10000":"210000000000000000":"0":"210000000000000000":"0" - -mbedtls_mpi_core_mla #1217: 0x10000000000000000 + 0x20000000000000 * 0xffffffff = (0x200000ffe0000000000000, carry 0x0)/(0x200000ffe0000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"20000000000000":"ffffffff":"200000ffe0000000000000":"0":"200000ffe0000000000000":"0" - -mbedtls_mpi_core_mla #1218: 0x10000000000000000 + 0x20000000000000 * 0x100000000 = (0x2000010000000000000000, carry 0x0)/(0x2000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"20000000000000":"100000000":"2000010000000000000000":"0":"2000010000000000000000":"0" - -mbedtls_mpi_core_mla #1219: 0x10000000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefefeff0efe0000000000000, carry 0xfefef)/(0xfefefefefeff0efe0000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"efefeff0efe0000000000000":"fefef":"fefefefefeff0efe0000000000000":"0" - -mbedtls_mpi_core_mla #1220: 0x10000000000000000 + 0x20000000000000 * 0x8000000000000000 = (0x10000000000000000, carry 0x100000)/(0x100000000000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"20000000000000":"8000000000000000":"10000000000000000":"100000":"100000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1221: 0x10000000000000000 + 0x20000000000000 * 0xfffffffffffffffe = (0xffc0000000000000, carry 0x200000)/(0x20000000000000ffc0000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"20000000000000":"fffffffffffffffe":"ffc0000000000000":"200000":"20000000000000ffc0000000000000":"0" - -mbedtls_mpi_core_mla #1222: 0x10000000000000000 + 0xffffffffffffffff * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1223: 0x10000000000000000 + 0xffffffffffffffff * 0x3 = (0x3fffffffffffffffd, carry 0x0)/(0x3fffffffffffffffd, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"3":"3fffffffffffffffd":"0":"3fffffffffffffffd":"0" - -mbedtls_mpi_core_mla #1224: 0x10000000000000000 + 0xffffffffffffffff * 0xfe = (0xfeffffffffffffff02, carry 0x0)/(0xfeffffffffffffff02, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"fe":"feffffffffffffff02":"0":"feffffffffffffff02":"0" - -mbedtls_mpi_core_mla #1225: 0x10000000000000000 + 0xffffffffffffffff * 0xff = (0xffffffffffffffff01, carry 0x0)/(0xffffffffffffffff01, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ff":"ffffffffffffffff01":"0":"ffffffffffffffff01":"0" - -mbedtls_mpi_core_mla #1226: 0x10000000000000000 + 0xffffffffffffffff * 0xffff = (0xffffffffffffffff0001, carry 0x0)/(0xffffffffffffffff0001, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ffff":"ffffffffffffffff0001":"0":"ffffffffffffffff0001":"0" - -mbedtls_mpi_core_mla #1227: 0x10000000000000000 + 0xffffffffffffffff * 0x10000 = (0x10000ffffffffffff0000, carry 0x0)/(0x10000ffffffffffff0000, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"10000":"10000ffffffffffff0000":"0":"10000ffffffffffff0000":"0" - -mbedtls_mpi_core_mla #1228: 0x10000000000000000 + 0xffffffffffffffff * 0xffffffff = (0xffffffffffffffff00000001, carry 0x0)/(0xffffffffffffffff00000001, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ffffffff":"ffffffffffffffff00000001":"0":"ffffffffffffffff00000001":"0" - -mbedtls_mpi_core_mla #1229: 0x10000000000000000 + 0xffffffffffffffff * 0x100000000 = (0xffffffff00000000, carry 0x1)/(0x100000000ffffffff00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"100000000":"ffffffff00000000":"1":"100000000ffffffff00000000":"0" - -mbedtls_mpi_core_mla #1230: 0x10000000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f8080808080808081, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f8080808080808081, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f8080808080808081":"7f7f7f7f":"7f7f7f7f7f7f7f7f8080808080808081":"0" - -mbedtls_mpi_core_mla #1231: 0x10000000000000000 + 0xffffffffffffffff * 0x8000000000000000 = (0x8000000000000000, carry 0x80000000)/(0x80000000000000008000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"8000000000000000":"8000000000000000":"80000000":"80000000000000008000000000000000":"0" - -mbedtls_mpi_core_mla #1232: 0x10000000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe = (0xfffffffe0000000000000002, carry 0xffffffff)/(0xfffffffffffffffe0000000000000002, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"fffffffffffffffe":"fffffffe0000000000000002":"ffffffff":"fffffffffffffffe0000000000000002":"0" - -mbedtls_mpi_core_mla #1233: 0x10000000000000000 + 0x10000000000000000 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"10000000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1234: 0x10000000000000000 + 0x10000000000000000 * 0x3 = (0x40000000000000000, carry 0x0)/(0x40000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"10000000000000000":"3":"40000000000000000":"0":"40000000000000000":"0" - -mbedtls_mpi_core_mla #1235: 0x10000000000000000 + 0x10000000000000000 * 0xfe = (0xff0000000000000000, carry 0x0)/(0xff0000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"10000000000000000":"fe":"ff0000000000000000":"0":"ff0000000000000000":"0" - -mbedtls_mpi_core_mla #1236: 0x10000000000000000 + 0x10000000000000000 * 0xff = (0x1000000000000000000, carry 0x0)/(0x1000000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"10000000000000000":"ff":"1000000000000000000":"0":"1000000000000000000":"0" - -mbedtls_mpi_core_mla #1237: 0x10000000000000000 + 0x10000000000000000 * 0xffff = (0x100000000000000000000, carry 0x0)/(0x100000000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"10000000000000000":"ffff":"100000000000000000000":"0":"100000000000000000000":"0" - -mbedtls_mpi_core_mla #1238: 0x10000000000000000 + 0x10000000000000000 * 0x10000 = (0x100010000000000000000, carry 0x0)/(0x100010000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"10000000000000000":"10000":"100010000000000000000":"0":"100010000000000000000":"0" - -mbedtls_mpi_core_mla #1239: 0x10000000000000000 + 0x10000000000000000 * 0xffffffff = (0x0, carry 0x1)/(0x1000000000000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"10000000000000000":"ffffffff":"0":"1":"1000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1240: 0x10000000000000000 + 0x10000000000000000 * 0x100000000 = (0x10000000000000000, carry 0x1)/(0x1000000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"10000000000000000":"100000000":"10000000000000000":"1":"1000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1241: 0x10000000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f800000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f800000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f800000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f800000000000000000":"0" - -mbedtls_mpi_core_mla #1242: 0x10000000000000000 + 0x10000000000000000 * 0x8000000000000000 = (0x10000000000000000, carry 0x80000000)/(0x80000000000000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"10000000000000000":"8000000000000000":"10000000000000000":"80000000":"80000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1243: 0x10000000000000000 + 0x10000000000000000 * 0xfffffffffffffffe = (0xffffffff0000000000000000, carry 0xffffffff)/(0xffffffffffffffff0000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"10000000000000000":"fffffffffffffffe":"ffffffff0000000000000000":"ffffffff":"ffffffffffffffff0000000000000000":"0" - -mbedtls_mpi_core_mla #1244: 0x10000000000000000 + 0x1234567890abcdef0 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1245: 0x10000000000000000 + 0x1234567890abcdef0 * 0x3 = (0x469d0369b20369cd0, carry 0x0)/(0x469d0369b20369cd0, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"3":"469d0369b20369cd0":"0":"469d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1246: 0x10000000000000000 + 0x1234567890abcdef0 * 0xfe = (0x121fedcb9f8a7653220, carry 0x0)/(0x121fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"fe":"121fedcb9f8a7653220":"0":"121fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1247: 0x10000000000000000 + 0x1234567890abcdef0 * 0xff = (0x12322222181b2221110, carry 0x0)/(0x12322222181b2221110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ff":"12322222181b2221110":"0":"12322222181b2221110":"0" - -mbedtls_mpi_core_mla #1248: 0x10000000000000000 + 0x1234567890abcdef0 * 0xffff = (0x123454443a333d4332110, carry 0x0)/(0x123454443a333d4332110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ffff":"123454443a333d4332110":"0":"123454443a333d4332110":"0" - -mbedtls_mpi_core_mla #1249: 0x10000000000000000 + 0x1234567890abcdef0 * 0x10000 = (0x1234667890abcdef00000, carry 0x0)/(0x1234667890abcdef00000, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"10000":"1234667890abcdef00000":"0":"1234667890abcdef00000":"0" - -mbedtls_mpi_core_mla #1250: 0x10000000000000000 + 0x1234567890abcdef0 * 0xffffffff = (0x23456788e7777766f5432110, carry 0x1)/(0x123456788e7777766f5432110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ffffffff":"23456788e7777766f5432110":"1":"123456788e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1251: 0x10000000000000000 + 0x1234567890abcdef0 * 0x100000000 = (0x2345678a0abcdef000000000, carry 0x1)/(0x12345678a0abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"100000000":"2345678a0abcdef000000000":"1":"12345678a0abcdef000000000":"0" - -mbedtls_mpi_core_mla #1252: 0x10000000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde77f67708abaf5ba910, carry 0x91107edb)/(0x91107edbd82bde77f67708abaf5ba910, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde77f67708abaf5ba910":"91107edb":"91107edbd82bde77f67708abaf5ba910":"0" - -mbedtls_mpi_core_mla #1253: 0x10000000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f790000000000000000, carry 0x91a2b3c4)/(0x91a2b3c4855e6f790000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"8000000000000000":"855e6f790000000000000000":"91a2b3c4":"91a2b3c4855e6f790000000000000000":"0" - -mbedtls_mpi_core_mla #1254: 0x10000000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeeb97530edea864220, carry 0x123456789)/(0x234567890abcdeeeb97530edea864220, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeeeb97530edea864220":"123456789":"234567890abcdeeeb97530edea864220":"1" - -mbedtls_mpi_core_mla #1255: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1256: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfcfcfcfcfcfcfcfa, carry 0x3)/(0xfcfcfcfcfcfcfcfa, carry 0x3) -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"3":"fcfcfcfcfcfcfcfa":"3":"fcfcfcfcfcfcfcfa":"3" - -mbedtls_mpi_core_mla #1257: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x101010101010004, carry 0xfe)/(0x101010101010004, carry 0xfe) -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fe":"101010101010004":"fe":"101010101010004":"fe" - -mbedtls_mpi_core_mla #1258: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffffffffffffffffff02, carry 0xfe)/(0xffffffffffffffffffffffffffffff02, carry 0xfe) -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #1259: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeffffffffffffff0102, carry 0xfffe)/(0xfffffffffffffeffffffffffffff0102, carry 0xfffe) -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeffffffffffffff0102":"fffe":"fffffffffffffeffffffffffffff0102":"fffe" - -mbedtls_mpi_core_mla #1260: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefffefefefefefe0000, carry 0xffff)/(0xfffffffffffffefffefefefefefe0000, carry 0xffff) -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefffefefefefefe0000":"ffff":"fffffffffffffefffefefefefefe0000":"ffff" - -mbedtls_mpi_core_mla #1261: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeffffffffff01010102, carry 0xfffffffe)/(0xfffffffffefefeffffffffff01010102, carry 0xfffffffe) -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeffffffffff01010102":"fffffffe":"fffffffffefefeffffffffff01010102":"fffffffe" - -mbedtls_mpi_core_mla #1262: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefffefefefe00000000, carry 0xffffffff)/(0xfffffffffefefefffefefefe00000000, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefffefefefe00000000":"ffffffff":"fffffffffefefefffefefefe00000000":"ffffffff" - -mbedtls_mpi_core_mla #1263: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202838504840383028202, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202838504840383028202, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202838504840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202838504840383028202":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #1264: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f800000000000000000, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f800000000000000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f800000000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f800000000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #1265: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefeff0202020202020204, carry 0xfffffffffffffffd)/(0xfefefefefefefeff0202020202020204, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff0202020202020204":"fffffffffffffffd":"fefefefefefefeff0202020202020204":"fffffffffffffffd" - -mbedtls_mpi_core_mla #1266: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1267: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000010000000000000000, carry 0x0)/(0x300000000000000010000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"3":"300000000000000010000000000000000":"0":"300000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1268: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000010000000000000000, carry 0x0)/(0xfe00000000000000010000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"fe":"fe00000000000000010000000000000000":"0":"fe00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1269: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000010000000000000000, carry 0x0)/(0xff00000000000000010000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ff":"ff00000000000000010000000000000000":"0":"ff00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1270: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000010000000000000000, carry 0x0)/(0xffff00000000000000010000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000010000000000000000":"0":"ffff00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1271: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000010000000000000000, carry 0x0)/(0x1000000000000000000010000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"10000":"1000000000000000000010000000000000000":"0":"1000000000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1272: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000010000000000000000, carry 0x0)/(0xffffffff00000000000000010000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000010000000000000000":"0":"ffffffff00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1273: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x100000000 = (0x10000000000000000, carry 0x1)/(0x10000000000000000000000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"100000000":"10000000000000000":"1":"10000000000000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1274: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000010000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000010000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1275: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x10000000000000000, carry 0x80000000)/(0x800000000000000000000000000000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"8000000000000000":"10000000000000000":"80000000":"800000000000000000000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1276: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000010000000000000000, carry 0xffffffff)/(0xfffffffffffffffe00000000000000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000010000000000000000":"ffffffff":"fffffffffffffffe00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1277: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1278: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0469d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0469d0369b20369cd0, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0469d0369b20369cd0":"0":"369d0369b20369cd0469d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1279: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532321fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532321fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532321fedcb9f8a7653220":"0":"120fedcb9f8a76532321fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1280: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122322222181b2221110, carry 0x0)/(0x12222222181b2221122322222181b2221110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122322222181b2221110":"0":"12222222181b2221122322222181b2221110":"0" - -mbedtls_mpi_core_mla #1281: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334454443a333d4332110, carry 0x0)/(0x123444443a333d433334454443a333d4332110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334454443a333d4332110":"0":"123444443a333d433334454443a333d4332110":"0" - -mbedtls_mpi_core_mla #1282: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234667890abcdef00000, carry 0x0)/(0x1234567890abcdef01234667890abcdef00000, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234667890abcdef00000":"0":"1234567890abcdef01234667890abcdef00000":"0" - -mbedtls_mpi_core_mla #1283: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777888e7777766f5432110, carry 0x12)/(0x123456787e7777767077777888e7777766f5432110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777888e7777766f5432110":"12":"123456787e7777767077777888e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1284: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef012345678a0abcdef000000000, carry 0x12)/(0x1234567890abcdef012345678a0abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a0abcdef000000000":"12":"1234567890abcdef012345678a0abcdef000000000":"0" - -mbedtls_mpi_core_mla #1285: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f77f67708abaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f77f67708abaf5ba910, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f77f67708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f77f67708abaf5ba910":"9" - -mbedtls_mpi_core_mla #1286: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f790000000000000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f790000000000000000, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f790000000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"9" - -mbedtls_mpi_core_mla #1287: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100eeb97530edea864220, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100eeb97530edea864220, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eeb97530edea864220":"1234567890":"34567890abcdeedcba987667b32100eeb97530edea864220":"12" - -mbedtls_mpi_core_mla #1288: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1289: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffd, carry 0x3)/(0xfffffffffffffffd, carry 0x3) -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffd":"3":"fffffffffffffffd":"3" - -mbedtls_mpi_core_mla #1290: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffff02, carry 0xfe)/(0xffffffffffffff02, carry 0xfe) -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffff02":"fe":"ffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #1291: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffff01, carry 0xff)/(0xffffffffffffff01, carry 0xff) -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffff01":"ff":"ffffffffffffff01":"ff" - -mbedtls_mpi_core_mla #1292: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffff0001, carry 0xffff)/(0xffffffffffff0001, carry 0xffff) -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffff0001":"ffff":"ffffffffffff0001":"ffff" - -mbedtls_mpi_core_mla #1293: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffffffffffff0000, carry 0x10000)/(0xffffffffffff0000, carry 0x10000) -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffff0000":"10000":"ffffffffffff0000":"10000" - -mbedtls_mpi_core_mla #1294: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffff00000001, carry 0xffffffff)/(0xffffffff00000001, carry 0xffffffff) -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff00000001":"ffffffff":"ffffffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #1295: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffff00000000, carry 0x100000000)/(0xffffffff00000000, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffff00000000":"100000000":"ffffffff00000000":"100000000" - -mbedtls_mpi_core_mla #1296: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808081, carry 0x7f7f7f7f7f7f7f7f)/(0x8080808080808081, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1297: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x8000000000000000, carry 0x8000000000000000)/(0x8000000000000000, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"8000000000000000":"8000000000000000":"8000000000000000":"8000000000000000" - -mbedtls_mpi_core_mla #1298: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x2, carry 0xfffffffffffffffe)/(0x2, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"2":"fffffffffffffffe":"2":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1299: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1300: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1301: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1302: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122322222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122322222181b2221110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122322222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122322222181b2221110":"0" - -mbedtls_mpi_core_mla #1303: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110":"0" - -mbedtls_mpi_core_mla #1304: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000":"0" - -mbedtls_mpi_core_mla #1305: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1306: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000":"0" - -mbedtls_mpi_core_mla #1307: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910":"911" - -mbedtls_mpi_core_mla #1308: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"91a" - -mbedtls_mpi_core_mla #1309: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220":"1234" - -mbedtls_mpi_core_mla #1310: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1311: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381, carry 0x0) -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381":"0" - -mbedtls_mpi_core_mla #1312: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa, carry 0x0) -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa":"0" - -mbedtls_mpi_core_mla #1313: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5, carry 0x0) -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5":"0" - -mbedtls_mpi_core_mla #1314: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5, carry 0x0) -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5":"0" - -mbedtls_mpi_core_mla #1315: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000, carry 0x0) -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000":"0" - -mbedtls_mpi_core_mla #1316: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5, carry 0x4) -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5":"4" - -mbedtls_mpi_core_mla #1317: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000":"4" - -mbedtls_mpi_core_mla #1318: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955":"26d473ca9" - -mbedtls_mpi_core_mla #1319: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000":"26fb9683d" - -mbedtls_mpi_core_mla #1320: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa":"4df72d07b" - -mbedtls_mpi_core_mla #1321: 0x1234567890abcdef0 + 0x0 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1322: 0x1234567890abcdef0 + 0x0 * 0x3 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"0":"3":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1323: 0x1234567890abcdef0 + 0x0 * 0xfe = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"0":"fe":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1324: 0x1234567890abcdef0 + 0x0 * 0xff = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"0":"ff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1325: 0x1234567890abcdef0 + 0x0 * 0xffff = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"0":"ffff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1326: 0x1234567890abcdef0 + 0x0 * 0x10000 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"0":"10000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1327: 0x1234567890abcdef0 + 0x0 * 0xffffffff = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"0":"ffffffff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1328: 0x1234567890abcdef0 + 0x0 * 0x100000000 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"0":"100000000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1329: 0x1234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1330: 0x1234567890abcdef0 + 0x0 * 0x8000000000000000 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"0":"8000000000000000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1331: 0x1234567890abcdef0 + 0x0 * 0xfffffffffffffffe = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1332: 0x1234567890abcdef0 + 0x1 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1333: 0x1234567890abcdef0 + 0x1 * 0x3 = (0x1234567890abcdef3, carry 0x0)/(0x1234567890abcdef3, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1":"3":"1234567890abcdef3":"0":"1234567890abcdef3":"0" - -mbedtls_mpi_core_mla #1334: 0x1234567890abcdef0 + 0x1 * 0xfe = (0x1234567890abcdfee, carry 0x0)/(0x1234567890abcdfee, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1":"fe":"1234567890abcdfee":"0":"1234567890abcdfee":"0" - -mbedtls_mpi_core_mla #1335: 0x1234567890abcdef0 + 0x1 * 0xff = (0x1234567890abcdfef, carry 0x0)/(0x1234567890abcdfef, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1":"ff":"1234567890abcdfef":"0":"1234567890abcdfef":"0" - -mbedtls_mpi_core_mla #1336: 0x1234567890abcdef0 + 0x1 * 0xffff = (0x1234567890abddeef, carry 0x0)/(0x1234567890abddeef, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1":"ffff":"1234567890abddeef":"0":"1234567890abddeef":"0" - -mbedtls_mpi_core_mla #1337: 0x1234567890abcdef0 + 0x1 * 0x10000 = (0x1234567890abddef0, carry 0x0)/(0x1234567890abddef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1":"10000":"1234567890abddef0":"0":"1234567890abddef0":"0" - -mbedtls_mpi_core_mla #1338: 0x1234567890abcdef0 + 0x1 * 0xffffffff = (0x12345678a0abcdeef, carry 0x0)/(0x12345678a0abcdeef, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1":"ffffffff":"12345678a0abcdeef":"0":"12345678a0abcdeef":"0" - -mbedtls_mpi_core_mla #1339: 0x1234567890abcdef0 + 0x1 * 0x100000000 = (0x12345678a0abcdef0, carry 0x0)/(0x12345678a0abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1":"100000000":"12345678a0abcdef0":"0":"12345678a0abcdef0":"0" - -mbedtls_mpi_core_mla #1340: 0x1234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x1a2c4e7088a3c5e6f, carry 0x0)/(0x1a2c4e7088a3c5e6f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1a2c4e7088a3c5e6f":"0":"1a2c4e7088a3c5e6f":"0" - -mbedtls_mpi_core_mla #1341: 0x1234567890abcdef0 + 0x1 * 0x8000000000000000 = (0x1a34567890abcdef0, carry 0x0)/(0x1a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1":"8000000000000000":"1a34567890abcdef0":"0":"1a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1342: 0x1234567890abcdef0 + 0x1 * 0xfffffffffffffffe = (0x2234567890abcdeee, carry 0x0)/(0x2234567890abcdeee, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1":"fffffffffffffffe":"2234567890abcdeee":"0":"2234567890abcdeee":"0" - -mbedtls_mpi_core_mla #1343: 0x1234567890abcdef0 + 0xfffe * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"fffe":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1344: 0x1234567890abcdef0 + 0xfffe * 0x3 = (0x1234567890abfdeea, carry 0x0)/(0x1234567890abfdeea, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"fffe":"3":"1234567890abfdeea":"0":"1234567890abfdeea":"0" - -mbedtls_mpi_core_mla #1345: 0x1234567890abcdef0 + 0xfffe * 0xfe = (0x1234567890bbadcf4, carry 0x0)/(0x1234567890bbadcf4, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"fffe":"fe":"1234567890bbadcf4":"0":"1234567890bbadcf4":"0" - -mbedtls_mpi_core_mla #1346: 0x1234567890abcdef0 + 0xfffe * 0xff = (0x1234567890bbbdcf2, carry 0x0)/(0x1234567890bbbdcf2, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"fffe":"ff":"1234567890bbbdcf2":"0":"1234567890bbbdcf2":"0" - -mbedtls_mpi_core_mla #1347: 0x1234567890abcdef0 + 0xfffe * 0xffff = (0x12345678a0ab9def2, carry 0x0)/(0x12345678a0ab9def2, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"fffe":"ffff":"12345678a0ab9def2":"0":"12345678a0ab9def2":"0" - -mbedtls_mpi_core_mla #1348: 0x1234567890abcdef0 + 0xfffe * 0x10000 = (0x12345678a0abadef0, carry 0x0)/(0x12345678a0abadef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"fffe":"10000":"12345678a0abadef0":"0":"12345678a0abadef0":"0" - -mbedtls_mpi_core_mla #1349: 0x1234567890abcdef0 + 0xfffe * 0xffffffff = (0x1234667870abbdef2, carry 0x0)/(0x1234667870abbdef2, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"fffe":"ffffffff":"1234667870abbdef2":"0":"1234667870abbdef2":"0" - -mbedtls_mpi_core_mla #1350: 0x1234567890abcdef0 + 0xfffe * 0x100000000 = (0x1234667870abcdef0, carry 0x0)/(0x1234667870abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffe":"100000000":"1234667870abcdef0":"0":"1234667870abcdef0":"0" - -mbedtls_mpi_core_mla #1351: 0x1234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x7f7fa3c5e8098b3cdff2, carry 0x0)/(0x7f7fa3c5e8098b3cdff2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"7f7fa3c5e8098b3cdff2":"0":"7f7fa3c5e8098b3cdff2":"0" - -mbedtls_mpi_core_mla #1352: 0x1234567890abcdef0 + 0xfffe * 0x8000000000000000 = (0x8000234567890abcdef0, carry 0x0)/(0x8000234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffe":"8000000000000000":"8000234567890abcdef0":"0":"8000234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1353: 0x1234567890abcdef0 + 0xfffe * 0xfffffffffffffffe = (0xffff234567890abadef4, carry 0x0)/(0xffff234567890abadef4, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffe":"fffffffffffffffe":"ffff234567890abadef4":"0":"ffff234567890abadef4":"0" - -mbedtls_mpi_core_mla #1354: 0x1234567890abcdef0 + 0xffffffff * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1355: 0x1234567890abcdef0 + 0xffffffff * 0x3 = (0x12345678c0abcdeed, carry 0x0)/(0x12345678c0abcdeed, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffff":"3":"12345678c0abcdeed":"0":"12345678c0abcdeed":"0" - -mbedtls_mpi_core_mla #1356: 0x1234567890abcdef0 + 0xffffffff * 0xfe = (0x1234568870abcddf2, carry 0x0)/(0x1234568870abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffff":"fe":"1234568870abcddf2":"0":"1234568870abcddf2":"0" - -mbedtls_mpi_core_mla #1357: 0x1234567890abcdef0 + 0xffffffff * 0xff = (0x1234568880abcddf1, carry 0x0)/(0x1234568880abcddf1, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffff":"ff":"1234568880abcddf1":"0":"1234568880abcddf1":"0" - -mbedtls_mpi_core_mla #1358: 0x1234567890abcdef0 + 0xffffffff * 0xffff = (0x1234667880abbdef1, carry 0x0)/(0x1234667880abbdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffff":"ffff":"1234667880abbdef1":"0":"1234667880abbdef1":"0" - -mbedtls_mpi_core_mla #1359: 0x1234567890abcdef0 + 0xffffffff * 0x10000 = (0x1234667890abbdef0, carry 0x0)/(0x1234667890abbdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffff":"10000":"1234667890abbdef0":"0":"1234667890abbdef0":"0" - -mbedtls_mpi_core_mla #1360: 0x1234567890abcdef0 + 0xffffffff * 0xffffffff = (0x2234567870abcdef1, carry 0x0)/(0x2234567870abcdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffff":"ffffffff":"2234567870abcdef1":"0":"2234567870abcdef1":"0" - -mbedtls_mpi_core_mla #1361: 0x1234567890abcdef0 + 0xffffffff * 0x100000000 = (0x2234567880abcdef0, carry 0x0)/(0x2234567880abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffff":"100000000":"2234567880abcdef0":"0":"2234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1362: 0x1234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f80234567888b3d5f71, carry 0x0)/(0x7f7f7f80234567888b3d5f71, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f80234567888b3d5f71":"0":"7f7f7f80234567888b3d5f71":"0" - -mbedtls_mpi_core_mla #1363: 0x1234567890abcdef0 + 0xffffffff * 0x8000000000000000 = (0x80000000a34567890abcdef0, carry 0x0)/(0x80000000a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffff":"8000000000000000":"80000000a34567890abcdef0":"0":"80000000a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1364: 0x1234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe = (0x234567870abcdef2, carry 0x1)/(0x100000000234567870abcdef2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffff":"fffffffffffffffe":"234567870abcdef2":"1":"100000000234567870abcdef2":"0" - -mbedtls_mpi_core_mla #1365: 0x1234567890abcdef0 + 0x100000000 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1366: 0x1234567890abcdef0 + 0x100000000 * 0x3 = (0x12345678c0abcdef0, carry 0x0)/(0x12345678c0abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000":"3":"12345678c0abcdef0":"0":"12345678c0abcdef0":"0" - -mbedtls_mpi_core_mla #1367: 0x1234567890abcdef0 + 0x100000000 * 0xfe = (0x1234568870abcdef0, carry 0x0)/(0x1234568870abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000":"fe":"1234568870abcdef0":"0":"1234568870abcdef0":"0" - -mbedtls_mpi_core_mla #1368: 0x1234567890abcdef0 + 0x100000000 * 0xff = (0x1234568880abcdef0, carry 0x0)/(0x1234568880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000":"ff":"1234568880abcdef0":"0":"1234568880abcdef0":"0" - -mbedtls_mpi_core_mla #1369: 0x1234567890abcdef0 + 0x100000000 * 0xffff = (0x1234667880abcdef0, carry 0x0)/(0x1234667880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000":"ffff":"1234667880abcdef0":"0":"1234667880abcdef0":"0" - -mbedtls_mpi_core_mla #1370: 0x1234567890abcdef0 + 0x100000000 * 0x10000 = (0x1234667890abcdef0, carry 0x0)/(0x1234667890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000":"10000":"1234667890abcdef0":"0":"1234667890abcdef0":"0" - -mbedtls_mpi_core_mla #1371: 0x1234567890abcdef0 + 0x100000000 * 0xffffffff = (0x2234567880abcdef0, carry 0x0)/(0x2234567880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000":"ffffffff":"2234567880abcdef0":"0":"2234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1372: 0x1234567890abcdef0 + 0x100000000 * 0x100000000 = (0x2234567890abcdef0, carry 0x0)/(0x2234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000":"100000000":"2234567890abcdef0":"0":"2234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1373: 0x1234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f80a2c4e7080abcdef0, carry 0x0)/(0x7f7f7f80a2c4e7080abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f80a2c4e7080abcdef0":"0":"7f7f7f80a2c4e7080abcdef0":"0" - -mbedtls_mpi_core_mla #1374: 0x1234567890abcdef0 + 0x100000000 * 0x8000000000000000 = (0x80000001234567890abcdef0, carry 0x0)/(0x80000001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000":"8000000000000000":"80000001234567890abcdef0":"0":"80000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1375: 0x1234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe = (0x1234567870abcdef0, carry 0x1)/(0x100000001234567870abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000":"fffffffffffffffe":"1234567870abcdef0":"1":"100000001234567870abcdef0":"0" - -mbedtls_mpi_core_mla #1376: 0x1234567890abcdef0 + 0x20000000000000 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"20000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1377: 0x1234567890abcdef0 + 0x20000000000000 * 0x3 = (0x123a567890abcdef0, carry 0x0)/(0x123a567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"20000000000000":"3":"123a567890abcdef0":"0":"123a567890abcdef0":"0" - -mbedtls_mpi_core_mla #1378: 0x1234567890abcdef0 + 0x20000000000000 * 0xfe = (0x1430567890abcdef0, carry 0x0)/(0x1430567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"20000000000000":"fe":"1430567890abcdef0":"0":"1430567890abcdef0":"0" - -mbedtls_mpi_core_mla #1379: 0x1234567890abcdef0 + 0x20000000000000 * 0xff = (0x1432567890abcdef0, carry 0x0)/(0x1432567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"20000000000000":"ff":"1432567890abcdef0":"0":"1432567890abcdef0":"0" - -mbedtls_mpi_core_mla #1380: 0x1234567890abcdef0 + 0x20000000000000 * 0xffff = (0x21232567890abcdef0, carry 0x0)/(0x21232567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"20000000000000":"ffff":"21232567890abcdef0":"0":"21232567890abcdef0":"0" - -mbedtls_mpi_core_mla #1381: 0x1234567890abcdef0 + 0x20000000000000 * 0x10000 = (0x21234567890abcdef0, carry 0x0)/(0x21234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"20000000000000":"10000":"21234567890abcdef0":"0":"21234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1382: 0x1234567890abcdef0 + 0x20000000000000 * 0xffffffff = (0x200001232567890abcdef0, carry 0x0)/(0x200001232567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"20000000000000":"ffffffff":"200001232567890abcdef0":"0":"200001232567890abcdef0":"0" - -mbedtls_mpi_core_mla #1383: 0x1234567890abcdef0 + 0x20000000000000 * 0x100000000 = (0x200001234567890abcdef0, carry 0x0)/(0x200001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"20000000000000":"100000000":"200001234567890abcdef0":"0":"200001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1384: 0x1234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefefeff1132567890abcdef0, carry 0xfefef)/(0xfefefefefeff1132567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"efefeff1132567890abcdef0":"fefef":"fefefefefeff1132567890abcdef0":"0" - -mbedtls_mpi_core_mla #1385: 0x1234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 = (0x1234567890abcdef0, carry 0x100000)/(0x10000000000001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"20000000000000":"8000000000000000":"1234567890abcdef0":"100000":"10000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1386: 0x1234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe = (0x1230567890abcdef0, carry 0x200000)/(0x20000000000001230567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"20000000000000":"fffffffffffffffe":"1230567890abcdef0":"200000":"20000000000001230567890abcdef0":"0" - -mbedtls_mpi_core_mla #1387: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1388: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x3 = (0x4234567890abcdeed, carry 0x0)/(0x4234567890abcdeed, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"3":"4234567890abcdeed":"0":"4234567890abcdeed":"0" - -mbedtls_mpi_core_mla #1389: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xfe = (0xff234567890abcddf2, carry 0x0)/(0xff234567890abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"fe":"ff234567890abcddf2":"0":"ff234567890abcddf2":"0" - -mbedtls_mpi_core_mla #1390: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xff = (0x100234567890abcddf1, carry 0x0)/(0x100234567890abcddf1, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ff":"100234567890abcddf1":"0":"100234567890abcddf1":"0" - -mbedtls_mpi_core_mla #1391: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xffff = (0x10000234567890abbdef1, carry 0x0)/(0x10000234567890abbdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ffff":"10000234567890abbdef1":"0":"10000234567890abbdef1":"0" - -mbedtls_mpi_core_mla #1392: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x10000 = (0x10001234567890abbdef0, carry 0x0)/(0x10001234567890abbdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"10000":"10001234567890abbdef0":"0":"10001234567890abbdef0":"0" - -mbedtls_mpi_core_mla #1393: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xffffffff = (0x234567880abcdef1, carry 0x1)/(0x100000000234567880abcdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ffffffff":"234567880abcdef1":"1":"100000000234567880abcdef1":"0" - -mbedtls_mpi_core_mla #1394: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x100000000 = (0x1234567880abcdef0, carry 0x1)/(0x100000001234567880abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"100000000":"1234567880abcdef0":"1":"100000001234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1395: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fa3c5e8098b3d5f71, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7fa3c5e8098b3d5f71, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7fa3c5e8098b3d5f71":"7f7f7f7f":"7f7f7f7f7f7f7f7fa3c5e8098b3d5f71":"0" - -mbedtls_mpi_core_mla #1396: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 = (0xa34567890abcdef0, carry 0x80000000)/(0x8000000000000000a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"8000000000000000":"a34567890abcdef0":"80000000":"8000000000000000a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1397: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe = (0xfffffffe234567890abcdef2, carry 0xffffffff)/(0xfffffffffffffffe234567890abcdef2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"fffffffe234567890abcdef2":"ffffffff":"fffffffffffffffe234567890abcdef2":"0" - -mbedtls_mpi_core_mla #1398: 0x1234567890abcdef0 + 0x10000000000000000 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1399: 0x1234567890abcdef0 + 0x10000000000000000 * 0x3 = (0x4234567890abcdef0, carry 0x0)/(0x4234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"3":"4234567890abcdef0":"0":"4234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1400: 0x1234567890abcdef0 + 0x10000000000000000 * 0xfe = (0xff234567890abcdef0, carry 0x0)/(0xff234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"fe":"ff234567890abcdef0":"0":"ff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1401: 0x1234567890abcdef0 + 0x10000000000000000 * 0xff = (0x100234567890abcdef0, carry 0x0)/(0x100234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ff":"100234567890abcdef0":"0":"100234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1402: 0x1234567890abcdef0 + 0x10000000000000000 * 0xffff = (0x10000234567890abcdef0, carry 0x0)/(0x10000234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ffff":"10000234567890abcdef0":"0":"10000234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1403: 0x1234567890abcdef0 + 0x10000000000000000 * 0x10000 = (0x10001234567890abcdef0, carry 0x0)/(0x10001234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"10000":"10001234567890abcdef0":"0":"10001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1404: 0x1234567890abcdef0 + 0x10000000000000000 * 0xffffffff = (0x234567890abcdef0, carry 0x1)/(0x100000000234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ffffffff":"234567890abcdef0":"1":"100000000234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1405: 0x1234567890abcdef0 + 0x10000000000000000 * 0x100000000 = (0x1234567890abcdef0, carry 0x1)/(0x100000001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"100000000":"1234567890abcdef0":"1":"100000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1406: 0x1234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f80234567890abcdef0, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f80234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f80234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f80234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1407: 0x1234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 = (0x1234567890abcdef0, carry 0x80000000)/(0x8000000000000001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"8000000000000000":"1234567890abcdef0":"80000000":"8000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1408: 0x1234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe = (0xffffffff234567890abcdef0, carry 0xffffffff)/(0xffffffffffffffff234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"fffffffffffffffe":"ffffffff234567890abcdef0":"ffffffff":"ffffffffffffffff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1409: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1410: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x3 = (0x48d159e242af37bc0, carry 0x0)/(0x48d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"3":"48d159e242af37bc0":"0":"48d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1411: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xfe = (0x12222222181b2221110, carry 0x0)/(0x12222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"fe":"12222222181b2221110":"0":"12222222181b2221110":"0" - -mbedtls_mpi_core_mla #1412: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xff = (0x1234567890abcdef000, carry 0x0)/(0x1234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdef000":"0":"1234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1413: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xffff = (0x1234567890abcdef00000, carry 0x0)/(0x1234567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcdef00000":"0":"1234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1414: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 = (0x123468ace7245e9acdef0, carry 0x0)/(0x123468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"10000":"123468ace7245e9acdef0":"0":"123468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1415: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff = (0x234567890abcdef000000000, carry 0x1)/(0x1234567890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ffffffff":"234567890abcdef000000000":"1":"1234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1416: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 = (0x2345678a2e0246790abcdef0, carry 0x1)/(0x12345678a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"100000000":"2345678a2e0246790abcdef0":"1":"12345678a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1417: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde7819bc7034ba188800, carry 0x91107edb)/(0x91107edbd82bde7819bc7034ba188800, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde7819bc7034ba188800":"91107edb":"91107edbd82bde7819bc7034ba188800":"0" - -mbedtls_mpi_core_mla #1418: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f79234567890abcdef0, carry 0x91a2b3c4)/(0x91a2b3c4855e6f79234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"8000000000000000":"855e6f79234567890abcdef0":"91a2b3c4":"91a2b3c4855e6f79234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1419: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeedcba9876f5432110, carry 0x123456789)/(0x234567890abcdeeedcba9876f5432110, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"abcdeeedcba9876f5432110":"123456789":"234567890abcdeeedcba9876f5432110":"1" - -mbedtls_mpi_core_mla #1420: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1421: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x12042648607b9dbea, carry 0x3)/(0x12042648607b9dbea, carry 0x3) -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"12042648607b9dbea":"3":"12042648607b9dbea":"3" - -mbedtls_mpi_core_mla #1422: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x2446688a0bbddef4, carry 0xfe)/(0x2446688a0bbddef4, carry 0xfe) -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"2446688a0bbddef4":"fe":"2446688a0bbddef4":"fe" - -mbedtls_mpi_core_mla #1423: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0x234567890abcddf2, carry 0xff)/(0x234567890abcddf2, carry 0xff) -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"234567890abcddf2":"ff":"234567890abcddf2":"ff" - -mbedtls_mpi_core_mla #1424: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xffffffffffffff00234567890abbdff2, carry 0xfffe)/(0xffffffffffffff00234567890abbdff2, carry 0xfffe) -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"ffffffffffffff00234567890abbdff2":"fffe":"ffffffffffffff00234567890abbdff2":"fffe" - -mbedtls_mpi_core_mla #1425: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xffffffffffffff002244668809badef0, carry 0xffff)/(0xffffffffffffff002244668809badef0, carry 0xffff) -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"ffffffffffffff002244668809badef0":"ffff":"ffffffffffffff002244668809badef0":"ffff" - -mbedtls_mpi_core_mla #1426: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefeff00234567880bbddff2, carry 0xfffffffe)/(0xfffffffffefeff00234567880bbddff2, carry 0xfffffffe) -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefeff00234567880bbddff2":"fffffffe":"fffffffffefeff00234567880bbddff2":"fffffffe" - -mbedtls_mpi_core_mla #1427: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefeff00224466870abcdef0, carry 0xffffffff)/(0xfffffffffefeff00224466870abcdef0, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefeff00224466870abcdef0":"ffffffff":"fffffffffefeff00224466870abcdef0":"ffffffff" - -mbedtls_mpi_core_mla #1428: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff80008101820283a849eb8c8dbf60f2, carry 0x7f7f7f7f7f7f7f7e)/(0xff80008101820283a849eb8c8dbf60f2, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff80008101820283a849eb8c8dbf60f2":"7f7f7f7f7f7f7f7e":"ff80008101820283a849eb8c8dbf60f2":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #1429: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f80234567890abcdef0, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f80234567890abcdef0, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f80234567890abcdef0":"7fffffffffffffff":"ff7f7f7f7f7f7f80234567890abcdef0":"7fffffffffffffff" - -mbedtls_mpi_core_mla #1430: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefeff2547698b0cbee0f4, carry 0xfffffffffffffffd)/(0xfefefefefefefeff2547698b0cbee0f4, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff2547698b0cbee0f4":"fffffffffffffffd":"fefefefefefefeff2547698b0cbee0f4":"fffffffffffffffd" - -mbedtls_mpi_core_mla #1431: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1432: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 = (0x30000000000000001234567890abcdef0, carry 0x0)/(0x30000000000000001234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"3":"30000000000000001234567890abcdef0":"0":"30000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1433: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe = (0xfe0000000000000001234567890abcdef0, carry 0x0)/(0xfe0000000000000001234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"fe":"fe0000000000000001234567890abcdef0":"0":"fe0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1434: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff = (0xff0000000000000001234567890abcdef0, carry 0x0)/(0xff0000000000000001234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ff":"ff0000000000000001234567890abcdef0":"0":"ff0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1435: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff = (0xffff0000000000000001234567890abcdef0, carry 0x0)/(0xffff0000000000000001234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ffff":"ffff0000000000000001234567890abcdef0":"0":"ffff0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1436: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 = (0x100000000000000000001234567890abcdef0, carry 0x0)/(0x100000000000000000001234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"10000":"100000000000000000001234567890abcdef0":"0":"100000000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1437: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff0000000000000001234567890abcdef0, carry 0x0)/(0xffffffff0000000000000001234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000001234567890abcdef0":"0":"ffffffff0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1438: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 = (0x1234567890abcdef0, carry 0x1)/(0x1000000000000000000000001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef0":"1":"1000000000000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1439: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000001234567890abcdef0, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000001234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1440: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x1234567890abcdef0, carry 0x80000000)/(0x80000000000000000000000000000001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef0":"80000000":"80000000000000000000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1441: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000001234567890abcdef0, carry 0xffffffff)/(0xfffffffffffffffe0000000000000001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000001234567890abcdef0":"ffffffff":"fffffffffffffffe0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1442: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1443: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd048d159e242af37bc0, carry 0x0)/(0x369d0369b20369cd048d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd048d159e242af37bc0":"0":"369d0369b20369cd048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1444: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a7653232222222181b2221110, carry 0x0)/(0x120fedcb9f8a7653232222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a7653232222222181b2221110":"0":"120fedcb9f8a7653232222222181b2221110":"0" - -mbedtls_mpi_core_mla #1445: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b222112234567890abcdef000, carry 0x0)/(0x12222222181b222112234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b222112234567890abcdef000":"0":"12222222181b222112234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1446: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d4333344567890abcdef00000, carry 0x0)/(0x123444443a333d4333344567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d4333344567890abcdef00000":"0":"123444443a333d4333344567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1447: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef0123468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef0123468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef0123468ace7245e9acdef0":"0":"1234567890abcdef0123468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1448: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e77777670777778890abcdef000000000, carry 0x12)/(0x123456787e77777670777778890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e77777670777778890abcdef000000000":"12":"123456787e77777670777778890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1449: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef012345678a2e0246790abcdef0, carry 0x12)/(0x1234567890abcdef012345678a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a2e0246790abcdef0":"12":"1234567890abcdef012345678a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1450: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f7819bc7034ba188800, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f7819bc7034ba188800, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f7819bc7034ba188800":"91107edbd":"1107edbd82bde76ff8810996cde66f7819bc7034ba188800":"9" - -mbedtls_mpi_core_mla #1451: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f79234567890abcdef0, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f79234567890abcdef0":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"9" - -mbedtls_mpi_core_mla #1452: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100eedcba9876f5432110, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100eedcba9876f5432110, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eedcba9876f5432110":"1234567890":"34567890abcdeedcba987667b32100eedcba9876f5432110":"12" - -mbedtls_mpi_core_mla #1453: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1454: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x1234567890abcdeed, carry 0x3)/(0x1234567890abcdeed, carry 0x3) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1234567890abcdeed":"3":"1234567890abcdeed":"3" - -mbedtls_mpi_core_mla #1455: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x1234567890abcddf2, carry 0xfe)/(0x1234567890abcddf2, carry 0xfe) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1234567890abcddf2":"fe":"1234567890abcddf2":"fe" - -mbedtls_mpi_core_mla #1456: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x1234567890abcddf1, carry 0xff)/(0x1234567890abcddf1, carry 0xff) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1234567890abcddf1":"ff":"1234567890abcddf1":"ff" - -mbedtls_mpi_core_mla #1457: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x1234567890abbdef1, carry 0xffff)/(0x1234567890abbdef1, carry 0xffff) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1234567890abbdef1":"ffff":"1234567890abbdef1":"ffff" - -mbedtls_mpi_core_mla #1458: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x1234567890abbdef0, carry 0x10000)/(0x1234567890abbdef0, carry 0x10000) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1234567890abbdef0":"10000":"1234567890abbdef0":"10000" - -mbedtls_mpi_core_mla #1459: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1234567880abcdef1, carry 0xffffffff)/(0x1234567880abcdef1, carry 0xffffffff) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1234567880abcdef1":"ffffffff":"1234567880abcdef1":"ffffffff" - -mbedtls_mpi_core_mla #1460: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x1234567880abcdef0, carry 0x100000000)/(0x1234567880abcdef0, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567880abcdef0":"100000000":"1234567880abcdef0":"100000000" - -mbedtls_mpi_core_mla #1461: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xa3c5e8098b3d5f71, carry 0x7f7f7f7f7f7f7f7f)/(0xa3c5e8098b3d5f71, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f":"a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1462: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xa34567890abcdef0, carry 0x8000000000000000)/(0xa34567890abcdef0, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"a34567890abcdef0":"8000000000000000":"a34567890abcdef0":"8000000000000000" - -mbedtls_mpi_core_mla #1463: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x234567890abcdef2, carry 0xfffffffffffffffe)/(0x234567890abcdef2, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"234567890abcdef2":"fffffffffffffffe":"234567890abcdef2":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1464: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1465: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1466: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110":"0" - -mbedtls_mpi_core_mla #1467: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b222112234567890abcdef000, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b222112234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b222112234567890abcdef000":"0":"12222222181b2221122222222181b2221122222222181b222112234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1468: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000":"0":"123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1469: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1470: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e77777670777778890abcdef000000000, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e77777670777778890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e77777670777778890abcdef000000000":"1234":"123456787e7777767077777887e7777767077777887e77777670777778890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1471: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1472: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800":"911" - -mbedtls_mpi_core_mla #1473: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"91a" - -mbedtls_mpi_core_mla #1474: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110":"1234" - -mbedtls_mpi_core_mla #1475: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1476: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271":"0" - -mbedtls_mpi_core_mla #1477: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a":"0" - -mbedtls_mpi_core_mla #1478: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5":"0" - -mbedtls_mpi_core_mla #1479: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5":"0" - -mbedtls_mpi_core_mla #1480: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0":"0" - -mbedtls_mpi_core_mla #1481: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5, carry 0x4) -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5":"4" - -mbedtls_mpi_core_mla #1482: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0":"4" - -mbedtls_mpi_core_mla #1483: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845":"26d473ca9" - -mbedtls_mpi_core_mla #1484: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0":"26fb9683d" - -mbedtls_mpi_core_mla #1485: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a":"4df72d07b" - -mbedtls_mpi_core_mla #1486: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1487: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x3 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"3":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1488: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xfe = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"fe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1489: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xff = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1490: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xffff = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ffff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1491: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x10000 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"10000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1492: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xffffffff = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ffffffff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1493: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x100000000 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"100000000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1494: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"7f7f7f7f7f7f7f7f":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1495: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x8000000000000000 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"8000000000000000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1496: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xfffffffffffffffe = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1497: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1498: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x3 = (0xfffffffffffffffffefefefefefeff01, carry 0x0)/(0xfffffffffffffffffefefefefefeff01, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"3":"fffffffffffffffffefefefefefeff01":"0":"fffffffffffffffffefefefefefeff01":"0" - -mbedtls_mpi_core_mla #1499: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xfe = (0xfffffffffffffffffefefefefefefffc, carry 0x0)/(0xfffffffffffffffffefefefefefefffc, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"fe":"fffffffffffffffffefefefefefefffc":"0":"fffffffffffffffffefefefefefefffc":"0" - -mbedtls_mpi_core_mla #1500: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xff = (0xfffffffffffffffffefefefefefefffd, carry 0x0)/(0xfffffffffffffffffefefefefefefffd, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ff":"fffffffffffffffffefefefefefefffd":"0":"fffffffffffffffffefefefefefefffd":"0" - -mbedtls_mpi_core_mla #1501: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xffff = (0xfffffffffffffffffefefefefefffefd, carry 0x0)/(0xfffffffffffffffffefefefefefffefd, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ffff":"fffffffffffffffffefefefefefffefd":"0":"fffffffffffffffffefefefefefffefd":"0" - -mbedtls_mpi_core_mla #1502: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x10000 = (0xfffffffffffffffffefefefefefffefe, carry 0x0)/(0xfffffffffffffffffefefefefefffefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"10000":"fffffffffffffffffefefefefefffefe":"0":"fffffffffffffffffefefefefefffefe":"0" - -mbedtls_mpi_core_mla #1503: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xffffffff = (0xfffffffffffffffffefefefffefefefd, carry 0x0)/(0xfffffffffffffffffefefefffefefefd, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ffffffff":"fffffffffffffffffefefefffefefefd":"0":"fffffffffffffffffefefefffefefefd":"0" - -mbedtls_mpi_core_mla #1504: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x100000000 = (0xfffffffffffffffffefefefffefefefe, carry 0x0)/(0xfffffffffffffffffefefefffefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"100000000":"fffffffffffffffffefefefffefefefe":"0":"fffffffffffffffffefefefffefefefe":"0" - -mbedtls_mpi_core_mla #1505: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7e7e7e7e7e7e7e7d, carry 0x1)/(0x7e7e7e7e7e7e7e7d, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"7f7f7f7f7f7f7f7f":"7e7e7e7e7e7e7e7d":"1":"7e7e7e7e7e7e7e7d":"1" - -mbedtls_mpi_core_mla #1506: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x8000000000000000 = (0x7efefefefefefefe, carry 0x1)/(0x7efefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"8000000000000000":"7efefefefefefefe":"1":"7efefefefefefefe":"1" - -mbedtls_mpi_core_mla #1507: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xfffffffffffffffe = (0xfefefefefefefefc, carry 0x1)/(0xfefefefefefefefc, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"fffffffffffffffe":"fefefefefefefefc":"1":"fefefefefefefefc":"1" - -mbedtls_mpi_core_mla #1508: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1509: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x3 = (0xfffffffffffffffffefefefeff01fef8, carry 0x0)/(0xfffffffffffffffffefefefeff01fef8, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"3":"fffffffffffffffffefefefeff01fef8":"0":"fffffffffffffffffefefefeff01fef8":"0" - -mbedtls_mpi_core_mla #1510: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xfe = (0xfffffffffffffffffefefefefffcfd02, carry 0x0)/(0xfffffffffffffffffefefefefffcfd02, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"fe":"fffffffffffffffffefefefefffcfd02":"0":"fffffffffffffffffefefefefffcfd02":"0" - -mbedtls_mpi_core_mla #1511: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xff = (0xfffffffffffffffffefefefefffdfd00, carry 0x0)/(0xfffffffffffffffffefefefefffdfd00, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ff":"fffffffffffffffffefefefefffdfd00":"0":"fffffffffffffffffefefefefffdfd00":"0" - -mbedtls_mpi_core_mla #1512: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xffff = (0xfffffffffffffffffefefefffefbff00, carry 0x0)/(0xfffffffffffffffffefefefffefbff00, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ffff":"fffffffffffffffffefefefffefbff00":"0":"fffffffffffffffffefefefffefbff00":"0" - -mbedtls_mpi_core_mla #1513: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x10000 = (0xfffffffffffffffffefefefffefcfefe, carry 0x0)/(0xfffffffffffffffffefefefffefcfefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"10000":"fffffffffffffffffefefefffefcfefe":"0":"fffffffffffffffffefefefffefcfefe":"0" - -mbedtls_mpi_core_mla #1514: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xffffffff = (0xfffffffffffffffffefffefcfefdff00, carry 0x0)/(0xfffffffffffffffffefffefcfefdff00, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ffffffff":"fffffffffffffffffefffefcfefdff00":"0":"fffffffffffffffffefffefcfefdff00":"0" - -mbedtls_mpi_core_mla #1515: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x100000000 = (0xfffffffffffffffffefffefcfefefefe, carry 0x0)/(0xfffffffffffffffffefffefcfefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"100000000":"fffffffffffffffffefffefcfefefefe":"0":"fffffffffffffffffefffefcfefefefe":"0" - -mbedtls_mpi_core_mla #1516: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x7f7e7f7f7f7f7f7f0000, carry 0x1)/(0x7f7e7f7f7f7f7f7f0000, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"7f7f7f7f7f7f7f7f":"7f7e7f7f7f7f7f7f0000":"1":"7f7e7f7f7f7f7f7f0000":"1" - -mbedtls_mpi_core_mla #1517: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x8000000000000000 = (0x7ffefefefefefefefefe, carry 0x1)/(0x7ffefefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"8000000000000000":"7ffefefefefefefefefe":"1":"7ffefefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1518: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xfffffffffffffffe = (0xfffdfefefefefefcff02, carry 0x1)/(0xfffdfefefefefefcff02, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"fffffffffffffffe":"fffdfefefefefefcff02":"1":"fffdfefefefefefcff02":"1" - -mbedtls_mpi_core_mla #1519: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1520: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x3 = (0xfffffffffffffffffefeff01fefefefb, carry 0x0)/(0xfffffffffffffffffefeff01fefefefb, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"3":"fffffffffffffffffefeff01fefefefb":"0":"fffffffffffffffffefeff01fefefefb":"0" - -mbedtls_mpi_core_mla #1521: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xfe = (0xfffffffffffffffffefefffcfefefe00, carry 0x0)/(0xfffffffffffffffffefefffcfefefe00, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"fe":"fffffffffffffffffefefffcfefefe00":"0":"fffffffffffffffffefefffcfefefe00":"0" - -mbedtls_mpi_core_mla #1522: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xff = (0xfffffffffffffffffefefffdfefefdff, carry 0x0)/(0xfffffffffffffffffefefffdfefefdff, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ff":"fffffffffffffffffefefffdfefefdff":"0":"fffffffffffffffffefefffdfefefdff":"0" - -mbedtls_mpi_core_mla #1523: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xffff = (0xfffffffffffffffffefffefdfefdfeff, carry 0x0)/(0xfffffffffffffffffefffefdfefdfeff, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ffff":"fffffffffffffffffefffefdfefdfeff":"0":"fffffffffffffffffefffefdfefdfeff":"0" - -mbedtls_mpi_core_mla #1524: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x10000 = (0xfffffffffffffffffefffefefefdfefe, carry 0x0)/(0xfffffffffffffffffefffefefefdfefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"10000":"fffffffffffffffffefffefefefdfefe":"0":"fffffffffffffffffefffefefefdfefe":"0" - -mbedtls_mpi_core_mla #1525: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xffffffff = (0xfefefefcfefefeff, carry 0x1)/(0xfefefefcfefefeff, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ffffffff":"fefefefcfefefeff":"1":"fefefefcfefefeff":"1" - -mbedtls_mpi_core_mla #1526: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x100000000 = (0xfefefefdfefefefe, carry 0x1)/(0xfefefefdfefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"100000000":"fefefefdfefefefe":"1":"fefefefdfefefefe":"1" - -mbedtls_mpi_core_mla #1527: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7efefefefe7f7f7f7f, carry 0x1)/(0x7f7f7f7efefefefe7f7f7f7f, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7efefefefe7f7f7f7f":"1":"7f7f7f7efefefefe7f7f7f7f":"1" - -mbedtls_mpi_core_mla #1528: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x8000000000000000 = (0x7fffffff7efefefefefefefe, carry 0x1)/(0x7fffffff7efefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"8000000000000000":"7fffffff7efefefefefefefe":"1":"7fffffff7efefefefefefefe":"1" - -mbedtls_mpi_core_mla #1529: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xfffffffffffffffe = (0xfffffffefefefefcfefeff00, carry 0x1)/(0xfffffffefefefefcfefeff00, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffe":"fffffffefefefefcfefeff00":"1":"fffffffefefefefcfefeff00":"1" - -mbedtls_mpi_core_mla #1530: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1531: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x3 = (0xfffffffffffffffffefeff01fefefefe, carry 0x0)/(0xfffffffffffffffffefeff01fefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"3":"fffffffffffffffffefeff01fefefefe":"0":"fffffffffffffffffefeff01fefefefe":"0" - -mbedtls_mpi_core_mla #1532: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xfe = (0xfffffffffffffffffefefffcfefefefe, carry 0x0)/(0xfffffffffffffffffefefffcfefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"fe":"fffffffffffffffffefefffcfefefefe":"0":"fffffffffffffffffefefffcfefefefe":"0" - -mbedtls_mpi_core_mla #1533: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xff = (0xfffffffffffffffffefefffdfefefefe, carry 0x0)/(0xfffffffffffffffffefefffdfefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ff":"fffffffffffffffffefefffdfefefefe":"0":"fffffffffffffffffefefffdfefefefe":"0" - -mbedtls_mpi_core_mla #1534: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xffff = (0xfffffffffffffffffefffefdfefefefe, carry 0x0)/(0xfffffffffffffffffefffefdfefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ffff":"fffffffffffffffffefffefdfefefefe":"0":"fffffffffffffffffefffefdfefefefe":"0" - -mbedtls_mpi_core_mla #1535: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x10000 = (0xfffffffffffffffffefffefefefefefe, carry 0x0)/(0xfffffffffffffffffefffefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"10000":"fffffffffffffffffefffefefefefefe":"0":"fffffffffffffffffefffefefefefefe":"0" - -mbedtls_mpi_core_mla #1536: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xffffffff = (0xfefefefdfefefefe, carry 0x1)/(0xfefefefdfefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ffffffff":"fefefefdfefefefe":"1":"fefefefdfefefefe":"1" - -mbedtls_mpi_core_mla #1537: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x100000000 = (0xfefefefefefefefe, carry 0x1)/(0xfefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"100000000":"fefefefefefefefe":"1":"fefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1538: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7e7e7e7dfefefefe, carry 0x1)/(0x7f7f7f7f7e7e7e7dfefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7e7e7e7dfefefefe":"1":"7f7f7f7f7e7e7e7dfefefefe":"1" - -mbedtls_mpi_core_mla #1539: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x8000000000000000 = (0x7ffffffffefefefefefefefe, carry 0x1)/(0x7ffffffffefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"8000000000000000":"7ffffffffefefefefefefefe":"1":"7ffffffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1540: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xfffffffffffffffe = (0xfffffffffefefefcfefefefe, carry 0x1)/(0xfffffffffefefefcfefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffe":"fffffffffefefefcfefefefe":"1":"fffffffffefefefcfefefefe":"1" - -mbedtls_mpi_core_mla #1541: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1542: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x3 = (0xffffffffffffffffff5efefefefefefe, carry 0x0)/(0xffffffffffffffffff5efefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"3":"ffffffffffffffffff5efefefefefefe":"0":"ffffffffffffffffff5efefefefefefe":"0" - -mbedtls_mpi_core_mla #1543: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xfe = (0x1ebefefefefefefe, carry 0x1)/(0x1ebefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"fe":"1ebefefefefefefe":"1":"1ebefefefefefefe":"1" - -mbedtls_mpi_core_mla #1544: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xff = (0x1edefefefefefefe, carry 0x1)/(0x1edefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ff":"1edefefefefefefe":"1":"1edefefefefefefe":"1" - -mbedtls_mpi_core_mla #1545: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xffff = (0x1ffedefefefefefefe, carry 0x1)/(0x1ffedefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ffff":"1ffedefefefefefefe":"1":"1ffedefefefefefefe":"1" - -mbedtls_mpi_core_mla #1546: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x10000 = (0x1ffefefefefefefefe, carry 0x1)/(0x1ffefefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"10000":"1ffefefefefefefefe":"1":"1ffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1547: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xffffffff = (0x1ffffffedefefefefefefe, carry 0x1)/(0x1ffffffedefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ffffffff":"1ffffffedefefefefefefe":"1":"1ffffffedefefefefefefe":"1" - -mbedtls_mpi_core_mla #1548: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x100000000 = (0x1ffffffefefefefefefefe, carry 0x1)/(0x1ffffffefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"100000000":"1ffffffefefefefefefefe":"1":"1ffffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1549: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xfefefefefefefeedefefefefefefe, carry 0x1)/(0xfefefefefefefeedefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"7f7f7f7f7f7f7f7f":"fefefefefefefeedefefefefefefe":"1":"fefefefefefefeedefefefefefefe":"1" - -mbedtls_mpi_core_mla #1550: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x8000000000000000 = (0xffffffffffffffefefefefefefefe, carry 0x1)/(0xffffffffffffffefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"8000000000000000":"ffffffffffffffefefefefefefefe":"1":"ffffffffffffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1551: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xfffffffffffffffe = (0x1ffffffffffffffebefefefefefefe, carry 0x1)/(0x1ffffffffffffffebefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"fffffffffffffffe":"1ffffffffffffffebefefefefefefe":"1":"1ffffffffffffffebefefefefefefe":"1" - -mbedtls_mpi_core_mla #1552: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1553: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x3 = (0x2fefefefefefefefb, carry 0x1)/(0x2fefefefefefefefb, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"3":"2fefefefefefefefb":"1":"2fefefefefefefefb":"1" - -mbedtls_mpi_core_mla #1554: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xfe = (0xfdfefefefefefefe00, carry 0x1)/(0xfdfefefefefefefe00, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fe":"fdfefefefefefefe00":"1":"fdfefefefefefefe00":"1" - -mbedtls_mpi_core_mla #1555: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xff = (0xfefefefefefefefdff, carry 0x1)/(0xfefefefefefefefdff, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ff":"fefefefefefefefdff":"1":"fefefefefefefefdff":"1" - -mbedtls_mpi_core_mla #1556: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xffff = (0xfffefefefefefefdfeff, carry 0x1)/(0xfffefefefefefefdfeff, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ffff":"fffefefefefefefdfeff":"1":"fffefefefefefefdfeff":"1" - -mbedtls_mpi_core_mla #1557: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x10000 = (0xfffffefefefefefdfefe, carry 0x1)/(0xfffffefefefefefdfefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"10000":"fffffefefefefefdfefe":"1":"fffffefefefefefdfefe":"1" - -mbedtls_mpi_core_mla #1558: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xffffffff = (0xfffffffefefefefdfefefeff, carry 0x1)/(0xfffffffefefefefdfefefeff, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ffffffff":"fffffffefefefefdfefefeff":"1":"fffffffefefefefdfefefeff":"1" - -mbedtls_mpi_core_mla #1559: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x100000000 = (0xfffffffffefefefdfefefefe, carry 0x1)/(0xfffffffffefefefdfefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"100000000":"fffffffffefefefdfefefefe":"1":"fffffffffefefefdfefefefe":"1" - -mbedtls_mpi_core_mla #1560: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f, carry 0x1)/(0x7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f":"1":"7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f":"1" - -mbedtls_mpi_core_mla #1561: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x8000000000000000 = (0x7fffffffffffffff7efefefefefefefe, carry 0x1)/(0x7fffffffffffffff7efefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff7efefefefefefefe":"1":"7fffffffffffffff7efefefefefefefe":"1" - -mbedtls_mpi_core_mla #1562: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xfffffffffffffffe = (0xfffffffffffffffcfefefefefefeff00, carry 0x1)/(0xfffffffffffffffcfefefefefefeff00, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fffffffffffffffe":"fffffffffffffffcfefefefefefeff00":"1":"fffffffffffffffcfefefefefefeff00":"1" - -mbedtls_mpi_core_mla #1563: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1564: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x3 = (0x2fefefefefefefefe, carry 0x1)/(0x2fefefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"3":"2fefefefefefefefe":"1":"2fefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1565: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xfe = (0xfdfefefefefefefefe, carry 0x1)/(0xfdfefefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fe":"fdfefefefefefefefe":"1":"fdfefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1566: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xff = (0xfefefefefefefefefe, carry 0x1)/(0xfefefefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ff":"fefefefefefefefefe":"1":"fefefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1567: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xffff = (0xfffefefefefefefefefe, carry 0x1)/(0xfffefefefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ffff":"fffefefefefefefefefe":"1":"fffefefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1568: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x10000 = (0xfffffefefefefefefefe, carry 0x1)/(0xfffffefefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"10000":"fffffefefefefefefefe":"1":"fffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1569: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xffffffff = (0xfffffffefefefefefefefefe, carry 0x1)/(0xfffffffefefefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ffffffff":"fffffffefefefefefefefefe":"1":"fffffffefefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1570: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x100000000 = (0xfffffffffefefefefefefefe, carry 0x1)/(0xfffffffffefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"100000000":"fffffffffefefefefefefefe":"1":"fffffffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1571: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7efefefefefefefefe, carry 0x1)/(0x7f7f7f7f7f7f7f7efefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7efefefefefefefefe":"1":"7f7f7f7f7f7f7f7efefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1572: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x8000000000000000 = (0x7ffffffffffffffffefefefefefefefe, carry 0x1)/(0x7ffffffffffffffffefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"8000000000000000":"7ffffffffffffffffefefefefefefefe":"1":"7ffffffffffffffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1573: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffffffffffdfefefefefefefefe, carry 0x1)/(0xfffffffffffffffdfefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fffffffffffffffe":"fffffffffffffffdfefefefefefefefe":"1":"fffffffffffffffdfefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1574: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1575: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x3 = (0x368cf359a1f359bce, carry 0x1)/(0x368cf359a1f359bce, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"3":"368cf359a1f359bce":"1":"368cf359a1f359bce":"1" - -mbedtls_mpi_core_mla #1576: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xfe = (0x120fddbb8f7a664311e, carry 0x1)/(0x120fddbb8f7a664311e, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fe":"120fddbb8f7a664311e":"1":"120fddbb8f7a664311e":"1" - -mbedtls_mpi_core_mla #1577: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xff = (0x12221212080b121100e, carry 0x1)/(0x12221212080b121100e, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ff":"12221212080b121100e":"1":"12221212080b121100e":"1" - -mbedtls_mpi_core_mla #1578: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xffff = (0x123444342a232d332200e, carry 0x1)/(0x123444342a232d332200e, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ffff":"123444342a232d332200e":"1":"123444342a232d332200e":"1" - -mbedtls_mpi_core_mla #1579: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x10000 = (0x12345668809bbddeefefe, carry 0x1)/(0x12345668809bbddeefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"10000":"12345668809bbddeefefe":"1":"12345668809bbddeefefe":"1" - -mbedtls_mpi_core_mla #1580: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xffffffff = (0x123456787e6767665f442200e, carry 0x1)/(0x123456787e6767665f442200e, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ffffffff":"123456787e6767665f442200e":"1":"123456787e6767665f442200e":"1" - -mbedtls_mpi_core_mla #1581: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x100000000 = (0x12345678909bbddeefefefefe, carry 0x1)/(0x12345678909bbddeefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"100000000":"12345678909bbddeefefefefe":"1":"12345678909bbddeefefefefe":"1" - -mbedtls_mpi_core_mla #1582: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x91107edbd82bde76f57607aaae5aa80e, carry 0x1)/(0x91107edbd82bde76f57607aaae5aa80e, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76f57607aaae5aa80e":"1":"91107edbd82bde76f57607aaae5aa80e":"1" - -mbedtls_mpi_core_mla #1583: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x8000000000000000 = (0x91a2b3c4855e6f77fefefefefefefefe, carry 0x1)/(0x91a2b3c4855e6f77fefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"8000000000000000":"91a2b3c4855e6f77fefefefefefefefe":"1":"91a2b3c4855e6f77fefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1584: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x234567890abcdeedb8742fece985411e, carry 0x2)/(0x234567890abcdeedb8742fece985411e, carry 0x2) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fffffffffffffffe":"234567890abcdeedb8742fece985411e":"2":"234567890abcdeedb8742fece985411e":"2" - -mbedtls_mpi_core_mla #1585: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1586: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffbfbfbfbfbfbfbf8, carry 0x3)/(0xfffffffffffffffffbfbfbfbfbfbfbf8, carry 0x3) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffbfbfbfbfbfbfbf8":"3":"fffffffffffffffffbfbfbfbfbfbfbf8":"3" - -mbedtls_mpi_core_mla #1587: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xfffffffffffffffeffffffffffffff02, carry 0xfe)/(0xfffffffffffffffeffffffffffffff02, carry 0xfe) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fe":"fffffffffffffffeffffffffffffff02":"fe":"fffffffffffffffeffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #1588: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfffffffffffffffefefefefefefefe00, carry 0xff)/(0xfffffffffffffffefefefefefefefe00, carry 0xff) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffefefefefefefefe00":"ff":"fffffffffffffffefefefefefefefe00":"ff" - -mbedtls_mpi_core_mla #1589: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffefefefefefefefe0000, carry 0xffff)/(0xfffffffffffffefefefefefefefe0000, carry 0xffff) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefefefefefefefe0000":"ffff":"fffffffffffffefefefefefefefe0000":"ffff" - -mbedtls_mpi_core_mla #1590: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefdfdfdfdfdfcfefe, carry 0x10000)/(0xfffffffffffffefefdfdfdfdfdfcfefe, carry 0x10000) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefdfdfdfdfdfcfefe":"10000":"fffffffffffffefefdfdfdfdfdfcfefe":"10000" - -mbedtls_mpi_core_mla #1591: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefefefefefefe00000000, carry 0xffffffff)/(0xfffffffffefefefefefefefe00000000, carry 0xffffffff) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff" - -mbedtls_mpi_core_mla #1592: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefdfdfdfcfefefefe, carry 0x100000000)/(0xfffffffffefefefefdfdfdfcfefefefe, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefdfdfdfcfefefefe":"100000000":"fffffffffefefefefdfdfdfcfefefefe":"100000000" - -mbedtls_mpi_core_mla #1593: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828403830282018100, carry 0x7f7f7f7f7f7f7f7f)/(0xff800081018202828403830282018100, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828403830282018100":"7f7f7f7f7f7f7f7f":"ff800081018202828403830282018100":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1594: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7efefefefefefefefe, carry 0x8000000000000000)/(0xff7f7f7f7f7f7f7efefefefefefefefe, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7efefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7efefefefefefefefe":"8000000000000000" - -mbedtls_mpi_core_mla #1595: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0101010101010102, carry 0xfffffffffffffffe)/(0xfefefefefefefefe0101010101010102, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0101010101010102":"fffffffffffffffe":"fefefefefefefefe0101010101010102":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1596: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1597: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x3 = (0x3fffffffffffffffffefefefefefefefe, carry 0x0)/(0x3fffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"3":"3fffffffffffffffffefefefefefefefe":"0":"3fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1598: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xfe = (0xfefffffffffffffffffefefefefefefefe, carry 0x0)/(0xfefffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fe":"fefffffffffffffffffefefefefefefefe":"0":"fefffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1599: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xff = (0xfffffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ff":"fffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1600: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xffff = (0xfffffffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ffff":"fffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1601: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x10000 = (0x10000fffffffffffffffffefefefefefefefe, carry 0x0)/(0x10000fffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"10000":"10000fffffffffffffffffefefefefefefefe":"0":"10000fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1602: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xffffffff = (0xfffffffffffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ffffffff":"fffffffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1603: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x100000000 = (0xfffffffffffffffffefefefefefefefe, carry 0x1)/(0x100000000fffffffffffffffffefefefefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"100000000":"fffffffffffffffffefefefefefefefe":"1":"100000000fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1604: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7ffffffffffffffffffefefefefefefefe, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7ffffffffffffffffffefefefefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7ffffffffffffffffffefefefefefefefe":"7f7f7f7f":"7f7f7f7f7f7f7f7ffffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1605: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0xfffffffffffffffffefefefefefefefe, carry 0x80000000)/(0x8000000000000000fffffffffffffffffefefefefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"8000000000000000":"fffffffffffffffffefefefefefefefe":"80000000":"8000000000000000fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1606: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffefffffffffffffffffefefefefefefefe, carry 0xffffffff)/(0xfffffffffffffffefffffffffffffffffefefefefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffefffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffefffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1607: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1608: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x379d0369b20369cd0368cf359a1f359bce, carry 0x0)/(0x379d0369b20369cd0368cf359a1f359bce, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"3":"379d0369b20369cd0368cf359a1f359bce":"0":"379d0369b20369cd0368cf359a1f359bce":"0" - -mbedtls_mpi_core_mla #1609: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x1210edcb9f8a76532320fddbb8f7a664311e, carry 0x0)/(0x1210edcb9f8a76532320fddbb8f7a664311e, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"fe":"1210edcb9f8a76532320fddbb8f7a664311e":"0":"1210edcb9f8a76532320fddbb8f7a664311e":"0" - -mbedtls_mpi_core_mla #1610: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12232222181b2221122221212080b121100e, carry 0x0)/(0x12232222181b2221122221212080b121100e, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ff":"12232222181b2221122221212080b121100e":"0":"12232222181b2221122221212080b121100e":"0" - -mbedtls_mpi_core_mla #1611: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123445443a333d433334444342a232d332200e, carry 0x0)/(0x123445443a333d433334444342a232d332200e, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffff":"123445443a333d433334444342a232d332200e":"0":"123445443a333d433334444342a232d332200e":"0" - -mbedtls_mpi_core_mla #1612: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234577890abcdef012345668809bbddeefefe, carry 0x0)/(0x1234577890abcdef012345668809bbddeefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"10000":"1234577890abcdef012345668809bbddeefefe":"0":"1234577890abcdef012345668809bbddeefefe":"0" - -mbedtls_mpi_core_mla #1613: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787f7777767077777887e6767665f442200e, carry 0x12)/(0x123456787f7777767077777887e6767665f442200e, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787f7777767077777887e6767665f442200e":"12":"123456787f7777767077777887e6767665f442200e":"0" - -mbedtls_mpi_core_mla #1614: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567891abcdef012345678909bbddeefefefefe, carry 0x12)/(0x1234567891abcdef012345678909bbddeefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"100000000":"34567891abcdef012345678909bbddeefefefefe":"12":"1234567891abcdef012345678909bbddeefefefefe":"0" - -mbedtls_mpi_core_mla #1615: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde770f8810996cde66f76f57607aaae5aa80e, carry 0x91107edbd)/(0x1107edbd82bde770f8810996cde66f76f57607aaae5aa80e, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde770f8810996cde66f76f57607aaae5aa80e":"91107edbd":"1107edbd82bde770f8810996cde66f76f57607aaae5aa80e":"9" - -mbedtls_mpi_core_mla #1616: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78191a2b3c4855e6f77fefefefefefefefe, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78191a2b3c4855e6f77fefefefefefefefe":"91a2b3c48":"1a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"9" - -mbedtls_mpi_core_mla #1617: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeddba987667b32100edb8742fece985411e, carry 0x1234567890)/(0x34567890abcdeeddba987667b32100edb8742fece985411e, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeddba987667b32100edb8742fece985411e":"1234567890":"34567890abcdeeddba987667b32100edb8742fece985411e":"12" - -mbedtls_mpi_core_mla #1618: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1619: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffefefefefefefefb, carry 0x3)/(0xfffffffffffffffffefefefefefefefb, carry 0x3) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffefefefefefefefb":"3":"fffffffffffffffffefefefefefefefb":"3" - -mbedtls_mpi_core_mla #1620: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xfffffffffffffffffefefefefefefe00, carry 0xfe)/(0xfffffffffffffffffefefefefefefe00, carry 0xfe) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"fffffffffffffffffefefefefefefe00":"fe":"fffffffffffffffffefefefefefefe00":"fe" - -mbedtls_mpi_core_mla #1621: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xfffffffffffffffffefefefefefefdff, carry 0xff)/(0xfffffffffffffffffefefefefefefdff, carry 0xff) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"fffffffffffffffffefefefefefefdff":"ff":"fffffffffffffffffefefefefefefdff":"ff" - -mbedtls_mpi_core_mla #1622: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xfffffffffffffffffefefefefefdfeff, carry 0xffff)/(0xfffffffffffffffffefefefefefdfeff, carry 0xffff) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"fffffffffffffffffefefefefefdfeff":"ffff":"fffffffffffffffffefefefefefdfeff":"ffff" - -mbedtls_mpi_core_mla #1623: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffffffffffffffffefefefefefdfefe, carry 0x10000)/(0xfffffffffffffffffefefefefefdfefe, carry 0x10000) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffefefefefefdfefe":"10000":"fffffffffffffffffefefefefefdfefe":"10000" - -mbedtls_mpi_core_mla #1624: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xfffffffffffffffffefefefdfefefeff, carry 0xffffffff)/(0xfffffffffffffffffefefefdfefefeff, carry 0xffffffff) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fffffffffffffffffefefefdfefefeff":"ffffffff":"fffffffffffffffffefefefdfefefeff":"ffffffff" - -mbedtls_mpi_core_mla #1625: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xfffffffffffffffffefefefdfefefefe, carry 0x100000000)/(0xfffffffffffffffffefefefdfefefefe, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffefefefdfefefefe":"100000000":"fffffffffffffffffefefefdfefefefe":"100000000" - -mbedtls_mpi_core_mla #1626: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffff7f7f7f7f7f7f7f7f, carry 0x7f7f7f7f7f7f7f7f)/(0xffffffffffffffff7f7f7f7f7f7f7f7f, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffff7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7f":"ffffffffffffffff7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1627: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffff7efefefefefefefe, carry 0x8000000000000000)/(0xffffffffffffffff7efefefefefefefe, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"8000000000000000" - -mbedtls_mpi_core_mla #1628: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xfffffffffffffffefefefefefefeff00, carry 0xfffffffffffffffe)/(0xfffffffffffffffefefefefefefeff00, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1629: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1630: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce":"0":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce":"0" - -mbedtls_mpi_core_mla #1631: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e":"0":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e":"0" - -mbedtls_mpi_core_mla #1632: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122232222181b2221122221212080b121100e, carry 0x0)/(0x12222222181b2221122222222181b2221122232222181b2221122221212080b121100e, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122232222181b2221122221212080b121100e":"0":"12222222181b2221122222222181b2221122232222181b2221122221212080b121100e":"0" - -mbedtls_mpi_core_mla #1633: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e, carry 0x0)/(0x123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e":"0":"123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e":"0" - -mbedtls_mpi_core_mla #1634: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe":"0":"1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe":"0" - -mbedtls_mpi_core_mla #1635: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e":"1234":"123456787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e":"0" - -mbedtls_mpi_core_mla #1636: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe":"1234":"1234567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe":"0" - -mbedtls_mpi_core_mla #1637: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e":"911" - -mbedtls_mpi_core_mla #1638: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"91a" - -mbedtls_mpi_core_mla #1639: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e":"1234" - -mbedtls_mpi_core_mla #1640: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1641: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f":"0" - -mbedtls_mpi_core_mla #1642: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8":"0" - -mbedtls_mpi_core_mla #1643: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3":"0" - -mbedtls_mpi_core_mla #1644: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3":"0" - -mbedtls_mpi_core_mla #1645: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe":"0" - -mbedtls_mpi_core_mla #1646: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3, carry 0x4) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3":"4" - -mbedtls_mpi_core_mla #1647: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe":"4" - -mbedtls_mpi_core_mla #1648: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853":"26d473ca9" - -mbedtls_mpi_core_mla #1649: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe":"26fb9683d" - -mbedtls_mpi_core_mla #1650: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8":"4df72d07b" - -mbedtls_mpi_core_mla #1651: 0x100000000000000000000000000000000 + 0x0 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1652: 0x100000000000000000000000000000000 + 0x0 * 0x3 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"0":"3":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1653: 0x100000000000000000000000000000000 + 0x0 * 0xfe = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"0":"fe":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1654: 0x100000000000000000000000000000000 + 0x0 * 0xff = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"0":"ff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1655: 0x100000000000000000000000000000000 + 0x0 * 0xffff = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"0":"ffff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1656: 0x100000000000000000000000000000000 + 0x0 * 0x10000 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"0":"10000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1657: 0x100000000000000000000000000000000 + 0x0 * 0xffffffff = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"0":"ffffffff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1658: 0x100000000000000000000000000000000 + 0x0 * 0x100000000 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"0":"100000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1659: 0x100000000000000000000000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"0":"7f7f7f7f7f7f7f7f":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1660: 0x100000000000000000000000000000000 + 0x0 * 0x8000000000000000 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"0":"8000000000000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1661: 0x100000000000000000000000000000000 + 0x0 * 0xfffffffffffffffe = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"0":"fffffffffffffffe":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1662: 0x100000000000000000000000000000000 + 0x1 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1663: 0x100000000000000000000000000000000 + 0x1 * 0x3 = (0x100000000000000000000000000000003, carry 0x0)/(0x100000000000000000000000000000003, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1":"3":"100000000000000000000000000000003":"0":"100000000000000000000000000000003":"0" - -mbedtls_mpi_core_mla #1664: 0x100000000000000000000000000000000 + 0x1 * 0xfe = (0x1000000000000000000000000000000fe, carry 0x0)/(0x1000000000000000000000000000000fe, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1":"fe":"1000000000000000000000000000000fe":"0":"1000000000000000000000000000000fe":"0" - -mbedtls_mpi_core_mla #1665: 0x100000000000000000000000000000000 + 0x1 * 0xff = (0x1000000000000000000000000000000ff, carry 0x0)/(0x1000000000000000000000000000000ff, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1":"ff":"1000000000000000000000000000000ff":"0":"1000000000000000000000000000000ff":"0" - -mbedtls_mpi_core_mla #1666: 0x100000000000000000000000000000000 + 0x1 * 0xffff = (0x10000000000000000000000000000ffff, carry 0x0)/(0x10000000000000000000000000000ffff, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1":"ffff":"10000000000000000000000000000ffff":"0":"10000000000000000000000000000ffff":"0" - -mbedtls_mpi_core_mla #1667: 0x100000000000000000000000000000000 + 0x1 * 0x10000 = (0x100000000000000000000000000010000, carry 0x0)/(0x100000000000000000000000000010000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1":"10000":"100000000000000000000000000010000":"0":"100000000000000000000000000010000":"0" - -mbedtls_mpi_core_mla #1668: 0x100000000000000000000000000000000 + 0x1 * 0xffffffff = (0x1000000000000000000000000ffffffff, carry 0x0)/(0x1000000000000000000000000ffffffff, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1":"ffffffff":"1000000000000000000000000ffffffff":"0":"1000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #1669: 0x100000000000000000000000000000000 + 0x1 * 0x100000000 = (0x100000000000000000000000100000000, carry 0x0)/(0x100000000000000000000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1":"100000000":"100000000000000000000000100000000":"0":"100000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #1670: 0x100000000000000000000000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x100000000000000007f7f7f7f7f7f7f7f, carry 0x0)/(0x100000000000000007f7f7f7f7f7f7f7f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1":"7f7f7f7f7f7f7f7f":"100000000000000007f7f7f7f7f7f7f7f":"0":"100000000000000007f7f7f7f7f7f7f7f":"0" - -mbedtls_mpi_core_mla #1671: 0x100000000000000000000000000000000 + 0x1 * 0x8000000000000000 = (0x100000000000000008000000000000000, carry 0x0)/(0x100000000000000008000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1":"8000000000000000":"100000000000000008000000000000000":"0":"100000000000000008000000000000000":"0" - -mbedtls_mpi_core_mla #1672: 0x100000000000000000000000000000000 + 0x1 * 0xfffffffffffffffe = (0x10000000000000000fffffffffffffffe, carry 0x0)/(0x10000000000000000fffffffffffffffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1":"fffffffffffffffe":"10000000000000000fffffffffffffffe":"0":"10000000000000000fffffffffffffffe":"0" - -mbedtls_mpi_core_mla #1673: 0x100000000000000000000000000000000 + 0xfffe * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffe":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1674: 0x100000000000000000000000000000000 + 0xfffe * 0x3 = (0x10000000000000000000000000002fffa, carry 0x0)/(0x10000000000000000000000000002fffa, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffe":"3":"10000000000000000000000000002fffa":"0":"10000000000000000000000000002fffa":"0" - -mbedtls_mpi_core_mla #1675: 0x100000000000000000000000000000000 + 0xfffe * 0xfe = (0x100000000000000000000000000fdfe04, carry 0x0)/(0x100000000000000000000000000fdfe04, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffe":"fe":"100000000000000000000000000fdfe04":"0":"100000000000000000000000000fdfe04":"0" - -mbedtls_mpi_core_mla #1676: 0x100000000000000000000000000000000 + 0xfffe * 0xff = (0x100000000000000000000000000fefe02, carry 0x0)/(0x100000000000000000000000000fefe02, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffe":"ff":"100000000000000000000000000fefe02":"0":"100000000000000000000000000fefe02":"0" - -mbedtls_mpi_core_mla #1677: 0x100000000000000000000000000000000 + 0xfffe * 0xffff = (0x1000000000000000000000000fffd0002, carry 0x0)/(0x1000000000000000000000000fffd0002, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffe":"ffff":"1000000000000000000000000fffd0002":"0":"1000000000000000000000000fffd0002":"0" - -mbedtls_mpi_core_mla #1678: 0x100000000000000000000000000000000 + 0xfffe * 0x10000 = (0x1000000000000000000000000fffe0000, carry 0x0)/(0x1000000000000000000000000fffe0000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffe":"10000":"1000000000000000000000000fffe0000":"0":"1000000000000000000000000fffe0000":"0" - -mbedtls_mpi_core_mla #1679: 0x100000000000000000000000000000000 + 0xfffe * 0xffffffff = (0x100000000000000000000fffdffff0002, carry 0x0)/(0x100000000000000000000fffdffff0002, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffe":"ffffffff":"100000000000000000000fffdffff0002":"0":"100000000000000000000fffdffff0002":"0" - -mbedtls_mpi_core_mla #1680: 0x100000000000000000000000000000000 + 0xfffe * 0x100000000 = (0x100000000000000000000fffe00000000, carry 0x0)/(0x100000000000000000000fffe00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffe":"100000000":"100000000000000000000fffe00000000":"0":"100000000000000000000fffe00000000":"0" - -mbedtls_mpi_core_mla #1681: 0x100000000000000000000000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x10000000000007f7e8080808080800102, carry 0x0)/(0x10000000000007f7e8080808080800102, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffe":"7f7f7f7f7f7f7f7f":"10000000000007f7e8080808080800102":"0":"10000000000007f7e8080808080800102":"0" - -mbedtls_mpi_core_mla #1682: 0x100000000000000000000000000000000 + 0xfffe * 0x8000000000000000 = (0x10000000000007fff0000000000000000, carry 0x0)/(0x10000000000007fff0000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffe":"8000000000000000":"10000000000007fff0000000000000000":"0":"10000000000007fff0000000000000000":"0" - -mbedtls_mpi_core_mla #1683: 0x100000000000000000000000000000000 + 0xfffe * 0xfffffffffffffffe = (0x1000000000000fffdfffffffffffe0004, carry 0x0)/(0x1000000000000fffdfffffffffffe0004, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffe":"fffffffffffffffe":"1000000000000fffdfffffffffffe0004":"0":"1000000000000fffdfffffffffffe0004":"0" - -mbedtls_mpi_core_mla #1684: 0x100000000000000000000000000000000 + 0xffffffff * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1685: 0x100000000000000000000000000000000 + 0xffffffff * 0x3 = (0x1000000000000000000000002fffffffd, carry 0x0)/(0x1000000000000000000000002fffffffd, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"3":"1000000000000000000000002fffffffd":"0":"1000000000000000000000002fffffffd":"0" - -mbedtls_mpi_core_mla #1686: 0x100000000000000000000000000000000 + 0xffffffff * 0xfe = (0x10000000000000000000000fdffffff02, carry 0x0)/(0x10000000000000000000000fdffffff02, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"fe":"10000000000000000000000fdffffff02":"0":"10000000000000000000000fdffffff02":"0" - -mbedtls_mpi_core_mla #1687: 0x100000000000000000000000000000000 + 0xffffffff * 0xff = (0x10000000000000000000000feffffff01, carry 0x0)/(0x10000000000000000000000feffffff01, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ff":"10000000000000000000000feffffff01":"0":"10000000000000000000000feffffff01":"0" - -mbedtls_mpi_core_mla #1688: 0x100000000000000000000000000000000 + 0xffffffff * 0xffff = (0x100000000000000000000fffeffff0001, carry 0x0)/(0x100000000000000000000fffeffff0001, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ffff":"100000000000000000000fffeffff0001":"0":"100000000000000000000fffeffff0001":"0" - -mbedtls_mpi_core_mla #1689: 0x100000000000000000000000000000000 + 0xffffffff * 0x10000 = (0x100000000000000000000ffffffff0000, carry 0x0)/(0x100000000000000000000ffffffff0000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"10000":"100000000000000000000ffffffff0000":"0":"100000000000000000000ffffffff0000":"0" - -mbedtls_mpi_core_mla #1690: 0x100000000000000000000000000000000 + 0xffffffff * 0xffffffff = (0x10000000000000000fffffffe00000001, carry 0x0)/(0x10000000000000000fffffffe00000001, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ffffffff":"10000000000000000fffffffe00000001":"0":"10000000000000000fffffffe00000001":"0" - -mbedtls_mpi_core_mla #1691: 0x100000000000000000000000000000000 + 0xffffffff * 0x100000000 = (0x10000000000000000ffffffff00000000, carry 0x0)/(0x10000000000000000ffffffff00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"100000000":"10000000000000000ffffffff00000000":"0":"10000000000000000ffffffff00000000":"0" - -mbedtls_mpi_core_mla #1692: 0x100000000000000000000000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x1000000007f7f7f7effffffff80808081, carry 0x0)/(0x1000000007f7f7f7effffffff80808081, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"1000000007f7f7f7effffffff80808081":"0":"1000000007f7f7f7effffffff80808081":"0" - -mbedtls_mpi_core_mla #1693: 0x100000000000000000000000000000000 + 0xffffffff * 0x8000000000000000 = (0x1000000007fffffff8000000000000000, carry 0x0)/(0x1000000007fffffff8000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"8000000000000000":"1000000007fffffff8000000000000000":"0":"1000000007fffffff8000000000000000":"0" - -mbedtls_mpi_core_mla #1694: 0x100000000000000000000000000000000 + 0xffffffff * 0xfffffffffffffffe = (0x100000000fffffffefffffffe00000002, carry 0x0)/(0x100000000fffffffefffffffe00000002, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"fffffffffffffffe":"100000000fffffffefffffffe00000002":"0":"100000000fffffffefffffffe00000002":"0" - -mbedtls_mpi_core_mla #1695: 0x100000000000000000000000000000000 + 0x100000000 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1696: 0x100000000000000000000000000000000 + 0x100000000 * 0x3 = (0x100000000000000000000000300000000, carry 0x0)/(0x100000000000000000000000300000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000":"3":"100000000000000000000000300000000":"0":"100000000000000000000000300000000":"0" - -mbedtls_mpi_core_mla #1697: 0x100000000000000000000000000000000 + 0x100000000 * 0xfe = (0x10000000000000000000000fe00000000, carry 0x0)/(0x10000000000000000000000fe00000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000":"fe":"10000000000000000000000fe00000000":"0":"10000000000000000000000fe00000000":"0" - -mbedtls_mpi_core_mla #1698: 0x100000000000000000000000000000000 + 0x100000000 * 0xff = (0x10000000000000000000000ff00000000, carry 0x0)/(0x10000000000000000000000ff00000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000":"ff":"10000000000000000000000ff00000000":"0":"10000000000000000000000ff00000000":"0" - -mbedtls_mpi_core_mla #1699: 0x100000000000000000000000000000000 + 0x100000000 * 0xffff = (0x100000000000000000000ffff00000000, carry 0x0)/(0x100000000000000000000ffff00000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000":"ffff":"100000000000000000000ffff00000000":"0":"100000000000000000000ffff00000000":"0" - -mbedtls_mpi_core_mla #1700: 0x100000000000000000000000000000000 + 0x100000000 * 0x10000 = (0x100000000000000000001000000000000, carry 0x0)/(0x100000000000000000001000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000":"10000":"100000000000000000001000000000000":"0":"100000000000000000001000000000000":"0" - -mbedtls_mpi_core_mla #1701: 0x100000000000000000000000000000000 + 0x100000000 * 0xffffffff = (0x10000000000000000ffffffff00000000, carry 0x0)/(0x10000000000000000ffffffff00000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000":"ffffffff":"10000000000000000ffffffff00000000":"0":"10000000000000000ffffffff00000000":"0" - -mbedtls_mpi_core_mla #1702: 0x100000000000000000000000000000000 + 0x100000000 * 0x100000000 = (0x100000000000000010000000000000000, carry 0x0)/(0x100000000000000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000":"100000000":"100000000000000010000000000000000":"0":"100000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1703: 0x100000000000000000000000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x1000000007f7f7f7f7f7f7f7f00000000, carry 0x0)/(0x1000000007f7f7f7f7f7f7f7f00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000":"7f7f7f7f7f7f7f7f":"1000000007f7f7f7f7f7f7f7f00000000":"0":"1000000007f7f7f7f7f7f7f7f00000000":"0" - -mbedtls_mpi_core_mla #1704: 0x100000000000000000000000000000000 + 0x100000000 * 0x8000000000000000 = (0x100000000800000000000000000000000, carry 0x0)/(0x100000000800000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000":"8000000000000000":"100000000800000000000000000000000":"0":"100000000800000000000000000000000":"0" - -mbedtls_mpi_core_mla #1705: 0x100000000000000000000000000000000 + 0x100000000 * 0xfffffffffffffffe = (0x100000000fffffffffffffffe00000000, carry 0x0)/(0x100000000fffffffffffffffe00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000":"fffffffffffffffe":"100000000fffffffffffffffe00000000":"0":"100000000fffffffffffffffe00000000":"0" - -mbedtls_mpi_core_mla #1706: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1707: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x3 = (0x100000000000000000060000000000000, carry 0x0)/(0x100000000000000000060000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"3":"100000000000000000060000000000000":"0":"100000000000000000060000000000000":"0" - -mbedtls_mpi_core_mla #1708: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xfe = (0x100000000000000001fc0000000000000, carry 0x0)/(0x100000000000000001fc0000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"fe":"100000000000000001fc0000000000000":"0":"100000000000000001fc0000000000000":"0" - -mbedtls_mpi_core_mla #1709: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xff = (0x100000000000000001fe0000000000000, carry 0x0)/(0x100000000000000001fe0000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ff":"100000000000000001fe0000000000000":"0":"100000000000000001fe0000000000000":"0" - -mbedtls_mpi_core_mla #1710: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xffff = (0x1000000000000001fffe0000000000000, carry 0x0)/(0x1000000000000001fffe0000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ffff":"1000000000000001fffe0000000000000":"0":"1000000000000001fffe0000000000000":"0" - -mbedtls_mpi_core_mla #1711: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x10000 = (0x100000000000000200000000000000000, carry 0x0)/(0x100000000000000200000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"10000":"100000000000000200000000000000000":"0":"100000000000000200000000000000000":"0" - -mbedtls_mpi_core_mla #1712: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xffffffff = (0x100000000001fffffffe0000000000000, carry 0x0)/(0x100000000001fffffffe0000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ffffffff":"100000000001fffffffe0000000000000":"0":"100000000001fffffffe0000000000000":"0" - -mbedtls_mpi_core_mla #1713: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x100000000 = (0x100000000002000000000000000000000, carry 0x0)/(0x100000000002000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"100000000":"100000000002000000000000000000000":"0":"100000000002000000000000000000000":"0" - -mbedtls_mpi_core_mla #1714: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0x1000fefefefefefefefe0000000000000, carry 0x0)/(0x1000fefefefefefefefe0000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"1000fefefefefefefefe0000000000000":"0":"1000fefefefefefefefe0000000000000":"0" - -mbedtls_mpi_core_mla #1715: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x8000000000000000 = (0x100100000000000000000000000000000, carry 0x0)/(0x100100000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"8000000000000000":"100100000000000000000000000000000":"0":"100100000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1716: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xfffffffffffffffe = (0x1001fffffffffffffffc0000000000000, carry 0x0)/(0x1001fffffffffffffffc0000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"fffffffffffffffe":"1001fffffffffffffffc0000000000000":"0":"1001fffffffffffffffc0000000000000":"0" - -mbedtls_mpi_core_mla #1717: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1718: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x3 = (0x10000000000000002fffffffffffffffd, carry 0x0)/(0x10000000000000002fffffffffffffffd, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"3":"10000000000000002fffffffffffffffd":"0":"10000000000000002fffffffffffffffd":"0" - -mbedtls_mpi_core_mla #1719: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xfe = (0x100000000000000fdffffffffffffff02, carry 0x0)/(0x100000000000000fdffffffffffffff02, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"fe":"100000000000000fdffffffffffffff02":"0":"100000000000000fdffffffffffffff02":"0" - -mbedtls_mpi_core_mla #1720: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xff = (0x100000000000000feffffffffffffff01, carry 0x0)/(0x100000000000000feffffffffffffff01, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ff":"100000000000000feffffffffffffff01":"0":"100000000000000feffffffffffffff01":"0" - -mbedtls_mpi_core_mla #1721: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xffff = (0x1000000000000fffeffffffffffff0001, carry 0x0)/(0x1000000000000fffeffffffffffff0001, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ffff":"1000000000000fffeffffffffffff0001":"0":"1000000000000fffeffffffffffff0001":"0" - -mbedtls_mpi_core_mla #1722: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x10000 = (0x1000000000000ffffffffffffffff0000, carry 0x0)/(0x1000000000000ffffffffffffffff0000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"10000":"1000000000000ffffffffffffffff0000":"0":"1000000000000ffffffffffffffff0000":"0" - -mbedtls_mpi_core_mla #1723: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xffffffff = (0x100000000fffffffeffffffff00000001, carry 0x0)/(0x100000000fffffffeffffffff00000001, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ffffffff":"100000000fffffffeffffffff00000001":"0":"100000000fffffffeffffffff00000001":"0" - -mbedtls_mpi_core_mla #1724: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x100000000 = (0x100000000ffffffffffffffff00000000, carry 0x0)/(0x100000000ffffffffffffffff00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"100000000":"100000000ffffffffffffffff00000000":"0":"100000000ffffffffffffffff00000000":"0" - -mbedtls_mpi_core_mla #1725: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x17f7f7f7f7f7f7f7e8080808080808081, carry 0x0)/(0x17f7f7f7f7f7f7f7e8080808080808081, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7e8080808080808081":"0":"17f7f7f7f7f7f7f7e8080808080808081":"0" - -mbedtls_mpi_core_mla #1726: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x8000000000000000 = (0x17fffffffffffffff8000000000000000, carry 0x0)/(0x17fffffffffffffff8000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"8000000000000000":"17fffffffffffffff8000000000000000":"0":"17fffffffffffffff8000000000000000":"0" - -mbedtls_mpi_core_mla #1727: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x1fffffffffffffffd0000000000000002, carry 0x0)/(0x1fffffffffffffffd0000000000000002, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"fffffffffffffffe":"1fffffffffffffffd0000000000000002":"0":"1fffffffffffffffd0000000000000002":"0" - -mbedtls_mpi_core_mla #1728: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1729: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x3 = (0x100000000000000030000000000000000, carry 0x0)/(0x100000000000000030000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"3":"100000000000000030000000000000000":"0":"100000000000000030000000000000000":"0" - -mbedtls_mpi_core_mla #1730: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xfe = (0x100000000000000fe0000000000000000, carry 0x0)/(0x100000000000000fe0000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"fe":"100000000000000fe0000000000000000":"0":"100000000000000fe0000000000000000":"0" - -mbedtls_mpi_core_mla #1731: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xff = (0x100000000000000ff0000000000000000, carry 0x0)/(0x100000000000000ff0000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ff":"100000000000000ff0000000000000000":"0":"100000000000000ff0000000000000000":"0" - -mbedtls_mpi_core_mla #1732: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xffff = (0x1000000000000ffff0000000000000000, carry 0x0)/(0x1000000000000ffff0000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ffff":"1000000000000ffff0000000000000000":"0":"1000000000000ffff0000000000000000":"0" - -mbedtls_mpi_core_mla #1733: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x10000 = (0x100000000000100000000000000000000, carry 0x0)/(0x100000000000100000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"10000":"100000000000100000000000000000000":"0":"100000000000100000000000000000000":"0" - -mbedtls_mpi_core_mla #1734: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xffffffff = (0x100000000ffffffff0000000000000000, carry 0x0)/(0x100000000ffffffff0000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ffffffff":"100000000ffffffff0000000000000000":"0":"100000000ffffffff0000000000000000":"0" - -mbedtls_mpi_core_mla #1735: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x100000000 = (0x100000001000000000000000000000000, carry 0x0)/(0x100000001000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"100000000":"100000001000000000000000000000000":"0":"100000001000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1736: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x17f7f7f7f7f7f7f7f0000000000000000, carry 0x0)/(0x17f7f7f7f7f7f7f7f0000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7f0000000000000000":"0":"17f7f7f7f7f7f7f7f0000000000000000":"0" - -mbedtls_mpi_core_mla #1737: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x8000000000000000 = (0x180000000000000000000000000000000, carry 0x0)/(0x180000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"8000000000000000":"180000000000000000000000000000000":"0":"180000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1738: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xfffffffffffffffe = (0x1fffffffffffffffe0000000000000000, carry 0x0)/(0x1fffffffffffffffe0000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"fffffffffffffffe":"1fffffffffffffffe0000000000000000":"0":"1fffffffffffffffe0000000000000000":"0" - -mbedtls_mpi_core_mla #1739: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1740: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x3 = (0x1000000000000000369d0369b20369cd0, carry 0x0)/(0x1000000000000000369d0369b20369cd0, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"3":"1000000000000000369d0369b20369cd0":"0":"1000000000000000369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1741: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xfe = (0x10000000000000120fedcb9f8a7653220, carry 0x0)/(0x10000000000000120fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"fe":"10000000000000120fedcb9f8a7653220":"0":"10000000000000120fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1742: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xff = (0x1000000000000012222222181b2221110, carry 0x0)/(0x1000000000000012222222181b2221110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ff":"1000000000000012222222181b2221110":"0":"1000000000000012222222181b2221110":"0" - -mbedtls_mpi_core_mla #1743: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xffff = (0x100000000000123444443a333d4332110, carry 0x0)/(0x100000000000123444443a333d4332110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ffff":"100000000000123444443a333d4332110":"0":"100000000000123444443a333d4332110":"0" - -mbedtls_mpi_core_mla #1744: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x10000 = (0x1000000000001234567890abcdef00000, carry 0x0)/(0x1000000000001234567890abcdef00000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"10000":"1000000000001234567890abcdef00000":"0":"1000000000001234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1745: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xffffffff = (0x10000000123456787e7777766f5432110, carry 0x0)/(0x10000000123456787e7777766f5432110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ffffffff":"10000000123456787e7777766f5432110":"0":"10000000123456787e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1746: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x100000000 = (0x100000001234567890abcdef000000000, carry 0x0)/(0x100000001234567890abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"100000000":"100000001234567890abcdef000000000":"0":"100000001234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1747: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x191107edbd82bde76f67708abaf5ba910, carry 0x0)/(0x191107edbd82bde76f67708abaf5ba910, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"191107edbd82bde76f67708abaf5ba910":"0":"191107edbd82bde76f67708abaf5ba910":"0" - -mbedtls_mpi_core_mla #1748: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x191a2b3c4855e6f780000000000000000, carry 0x0)/(0x191a2b3c4855e6f780000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"8000000000000000":"191a2b3c4855e6f780000000000000000":"0":"191a2b3c4855e6f780000000000000000":"0" - -mbedtls_mpi_core_mla #1749: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x2234567890abcdeedb97530edea864220, carry 0x0)/(0x2234567890abcdeedb97530edea864220, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"fffffffffffffffe":"2234567890abcdeedb97530edea864220":"0":"2234567890abcdeedb97530edea864220":"0" - -mbedtls_mpi_core_mla #1750: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1751: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x3fffffffffffffffffcfcfcfcfcfcfcfa, carry 0x0)/(0x3fffffffffffffffffcfcfcfcfcfcfcfa, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"3":"3fffffffffffffffffcfcfcfcfcfcfcfa":"0":"3fffffffffffffffffcfcfcfcfcfcfcfa":"0" - -mbedtls_mpi_core_mla #1752: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xfeffffffffffffffff0101010101010004, carry 0x0)/(0xfeffffffffffffffff0101010101010004, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"fe":"feffffffffffffffff0101010101010004":"0":"feffffffffffffffff0101010101010004":"0" - -mbedtls_mpi_core_mla #1753: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfffffffffffffffffeffffffffffffff02, carry 0x0)/(0xfffffffffffffffffeffffffffffffff02, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffffeffffffffffffff02":"0":"fffffffffffffffffeffffffffffffff02":"0" - -mbedtls_mpi_core_mla #1754: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffffffefeffffffffffff0102, carry 0x0)/(0xfffffffffffffffffefeffffffffffff0102, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffffffefeffffffffffff0102":"0":"fffffffffffffffffefeffffffffffff0102":"0" - -mbedtls_mpi_core_mla #1755: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0x10000fffffffffffffefefefefefefefe0000, carry 0x0)/(0x10000fffffffffffffefefefefefefefe0000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"10000":"10000fffffffffffffefefefefefefefe0000":"0":"10000fffffffffffffefefefefefefefe0000":"0" - -mbedtls_mpi_core_mla #1756: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffffffffffefefefeffffffff01010102, carry 0x0)/(0xfffffffffffffffffefefefeffffffff01010102, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffffefefefeffffffff01010102":"0":"fffffffffffffffffefefefeffffffff01010102":"0" - -mbedtls_mpi_core_mla #1757: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefe00000000, carry 0x1)/(0x100000000fffffffffefefefefefefefe00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000000":"1":"100000000fffffffffefefefefefefefe00000000":"0" - -mbedtls_mpi_core_mla #1758: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fff800081018202828504840383028202, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7fff800081018202828504840383028202, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f7fff800081018202828504840383028202":"7f7f7f7f":"7f7f7f7f7f7f7f7fff800081018202828504840383028202":"0" - -mbedtls_mpi_core_mla #1759: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0000000000000000, carry 0x80000000)/(0x8000000000000000ff7f7f7f7f7f7f7f0000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000000":"80000000":"8000000000000000ff7f7f7f7f7f7f7f0000000000000000":"0" - -mbedtls_mpi_core_mla #1760: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfffffffefefefefefefefefe0202020202020204, carry 0xffffffff)/(0xfffffffffffffffefefefefefefefefe0202020202020204, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffefefefefefefefefe0202020202020204":"ffffffff":"fffffffffffffffefefefefefefefefe0202020202020204":"0" - -mbedtls_mpi_core_mla #1761: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1762: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x3 = (0x400000000000000000000000000000000, carry 0x0)/(0x400000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"3":"400000000000000000000000000000000":"0":"400000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1763: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xfe = (0xff00000000000000000000000000000000, carry 0x0)/(0xff00000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"fe":"ff00000000000000000000000000000000":"0":"ff00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1764: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xff = (0x10000000000000000000000000000000000, carry 0x0)/(0x10000000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ff":"10000000000000000000000000000000000":"0":"10000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1765: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xffff = (0x1000000000000000000000000000000000000, carry 0x0)/(0x1000000000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ffff":"1000000000000000000000000000000000000":"0":"1000000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1766: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000100000000000000000000000000000000, carry 0x0)/(0x1000100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"10000":"1000100000000000000000000000000000000":"0":"1000100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1767: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xffffffff = (0x0, carry 0x1)/(0x10000000000000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ffffffff":"0":"1":"10000000000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1768: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x100000000 = (0x100000000000000000000000000000000, carry 0x1)/(0x10000000100000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"100000000":"100000000000000000000000000000000":"1":"10000000100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1769: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f8000000000000000000000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f8000000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f8000000000000000000000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f8000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1770: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x100000000000000000000000000000000, carry 0x80000000)/(0x800000000000000100000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"8000000000000000":"100000000000000000000000000000000":"80000000":"800000000000000100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1771: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xffffffff00000000000000000000000000000000, carry 0xffffffff)/(0xffffffffffffffff00000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"ffffffff00000000000000000000000000000000":"ffffffff":"ffffffffffffffff00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1772: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1773: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x379d0369b20369cd0369d0369b20369cd0, carry 0x0)/(0x379d0369b20369cd0369d0369b20369cd0, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"3":"379d0369b20369cd0369d0369b20369cd0":"0":"379d0369b20369cd0369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1774: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x1210edcb9f8a76532320fedcb9f8a7653220, carry 0x0)/(0x1210edcb9f8a76532320fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"fe":"1210edcb9f8a76532320fedcb9f8a7653220":"0":"1210edcb9f8a76532320fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1775: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12232222181b2221122222222181b2221110, carry 0x0)/(0x12232222181b2221122222222181b2221110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12232222181b2221122222222181b2221110":"0":"12232222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #1776: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123445443a333d433334444443a333d4332110, carry 0x0)/(0x123445443a333d433334444443a333d4332110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123445443a333d433334444443a333d4332110":"0":"123445443a333d433334444443a333d4332110":"0" - -mbedtls_mpi_core_mla #1777: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234577890abcdef01234567890abcdef00000, carry 0x0)/(0x1234577890abcdef01234567890abcdef00000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234577890abcdef01234567890abcdef00000":"0":"1234577890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1778: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787f7777767077777887e7777766f5432110, carry 0x12)/(0x123456787f7777767077777887e7777766f5432110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787f7777767077777887e7777766f5432110":"12":"123456787f7777767077777887e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1779: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567891abcdef01234567890abcdef000000000, carry 0x12)/(0x1234567891abcdef01234567890abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567891abcdef01234567890abcdef000000000":"12":"1234567891abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1780: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde770f8810996cde66f76f67708abaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde770f8810996cde66f76f67708abaf5ba910, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde770f8810996cde66f76f67708abaf5ba910":"91107edbd":"1107edbd82bde770f8810996cde66f76f67708abaf5ba910":"9" - -mbedtls_mpi_core_mla #1781: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78191a2b3c4855e6f780000000000000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78191a2b3c4855e6f780000000000000000, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78191a2b3c4855e6f780000000000000000":"91a2b3c48":"1a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"9" - -mbedtls_mpi_core_mla #1782: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeddba987667b32100edb97530edea864220, carry 0x1234567890)/(0x34567890abcdeeddba987667b32100edb97530edea864220, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeddba987667b32100edb97530edea864220":"1234567890":"34567890abcdeeddba987667b32100edb97530edea864220":"12" - -mbedtls_mpi_core_mla #1783: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1784: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffffffffffffffffd, carry 0x3)/(0xfffffffffffffffffffffffffffffffd, carry 0x3) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffd":"3":"fffffffffffffffffffffffffffffffd":"3" - -mbedtls_mpi_core_mla #1785: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffffffffffffffffffff02, carry 0xfe)/(0xffffffffffffffffffffffffffffff02, carry 0xfe) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #1786: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffffffffffffffffffff01, carry 0xff)/(0xffffffffffffffffffffffffffffff01, carry 0xff) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffff01":"ff":"ffffffffffffffffffffffffffffff01":"ff" - -mbedtls_mpi_core_mla #1787: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffff0001, carry 0xffff)/(0xffffffffffffffffffffffffffff0001, carry 0xffff) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffff0001":"ffff":"ffffffffffffffffffffffffffff0001":"ffff" - -mbedtls_mpi_core_mla #1788: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffffffffffffffffffffffffffff0000, carry 0x10000)/(0xffffffffffffffffffffffffffff0000, carry 0x10000) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffff0000":"10000":"ffffffffffffffffffffffffffff0000":"10000" - -mbedtls_mpi_core_mla #1789: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffff00000001, carry 0xffffffff)/(0xffffffffffffffffffffffff00000001, carry 0xffffffff) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #1790: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffff00000000, carry 0x100000000)/(0xffffffffffffffffffffffff00000000, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffff00000000":"100000000":"ffffffffffffffffffffffff00000000":"100000000" - -mbedtls_mpi_core_mla #1791: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffff8080808080808081, carry 0x7f7f7f7f7f7f7f7f)/(0xffffffffffffffff8080808080808081, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7f":"ffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1792: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffff8000000000000000, carry 0x8000000000000000)/(0xffffffffffffffff8000000000000000, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff8000000000000000":"8000000000000000":"ffffffffffffffff8000000000000000":"8000000000000000" - -mbedtls_mpi_core_mla #1793: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffff0000000000000002, carry 0xfffffffffffffffe)/(0xffffffffffffffff0000000000000002, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1794: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1795: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1796: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1797: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122232222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122232222181b2221122222222181b2221110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122232222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122232222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #1798: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110":"0" - -mbedtls_mpi_core_mla #1799: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1800: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1801: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1802: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910":"911" - -mbedtls_mpi_core_mla #1803: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"91a" - -mbedtls_mpi_core_mla #1804: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220":"1234" - -mbedtls_mpi_core_mla #1805: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1806: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381":"0" - -mbedtls_mpi_core_mla #1807: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa":"0" - -mbedtls_mpi_core_mla #1808: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5":"0" - -mbedtls_mpi_core_mla #1809: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5":"0" - -mbedtls_mpi_core_mla #1810: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000":"0" - -mbedtls_mpi_core_mla #1811: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5, carry 0x4) -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5":"4" - -mbedtls_mpi_core_mla #1812: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000":"4" - -mbedtls_mpi_core_mla #1813: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955":"26d473ca9" - -mbedtls_mpi_core_mla #1814: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000":"26fb9683d" - -mbedtls_mpi_core_mla #1815: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b" - -mbedtls_mpi_core_mla #1816: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1817: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x3 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"3":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1818: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xfe = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"fe":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1819: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xff = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1820: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xffff = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ffff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1821: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x10000 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"10000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1822: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xffffffff = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ffffffff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1823: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x100000000 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"100000000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1824: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1825: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"8000000000000000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1826: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1827: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1828: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x3 = (0x1234567890abcdef01234567890abcdef3, carry 0x0)/(0x1234567890abcdef01234567890abcdef3, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"3":"1234567890abcdef01234567890abcdef3":"0":"1234567890abcdef01234567890abcdef3":"0" - -mbedtls_mpi_core_mla #1829: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xfe = (0x1234567890abcdef01234567890abcdfee, carry 0x0)/(0x1234567890abcdef01234567890abcdfee, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"fe":"1234567890abcdef01234567890abcdfee":"0":"1234567890abcdef01234567890abcdfee":"0" - -mbedtls_mpi_core_mla #1830: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xff = (0x1234567890abcdef01234567890abcdfef, carry 0x0)/(0x1234567890abcdef01234567890abcdfef, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ff":"1234567890abcdef01234567890abcdfef":"0":"1234567890abcdef01234567890abcdfef":"0" - -mbedtls_mpi_core_mla #1831: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xffff = (0x1234567890abcdef01234567890abddeef, carry 0x0)/(0x1234567890abcdef01234567890abddeef, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ffff":"1234567890abcdef01234567890abddeef":"0":"1234567890abcdef01234567890abddeef":"0" - -mbedtls_mpi_core_mla #1832: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x10000 = (0x1234567890abcdef01234567890abddef0, carry 0x0)/(0x1234567890abcdef01234567890abddef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"10000":"1234567890abcdef01234567890abddef0":"0":"1234567890abcdef01234567890abddef0":"0" - -mbedtls_mpi_core_mla #1833: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xffffffff = (0x1234567890abcdef012345678a0abcdeef, carry 0x0)/(0x1234567890abcdef012345678a0abcdeef, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ffffffff":"1234567890abcdef012345678a0abcdeef":"0":"1234567890abcdef012345678a0abcdeef":"0" - -mbedtls_mpi_core_mla #1834: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x100000000 = (0x1234567890abcdef012345678a0abcdef0, carry 0x0)/(0x1234567890abcdef012345678a0abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"100000000":"1234567890abcdef012345678a0abcdef0":"0":"1234567890abcdef012345678a0abcdef0":"0" - -mbedtls_mpi_core_mla #1835: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01a2c4e7088a3c5e6f, carry 0x0)/(0x1234567890abcdef01a2c4e7088a3c5e6f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1234567890abcdef01a2c4e7088a3c5e6f":"0":"1234567890abcdef01a2c4e7088a3c5e6f":"0" - -mbedtls_mpi_core_mla #1836: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x8000000000000000 = (0x1234567890abcdef01a34567890abcdef0, carry 0x0)/(0x1234567890abcdef01a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"8000000000000000":"1234567890abcdef01a34567890abcdef0":"0":"1234567890abcdef01a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1837: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xfffffffffffffffe = (0x1234567890abcdef02234567890abcdeee, carry 0x0)/(0x1234567890abcdef02234567890abcdeee, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"fffffffffffffffe":"1234567890abcdef02234567890abcdeee":"0":"1234567890abcdef02234567890abcdeee":"0" - -mbedtls_mpi_core_mla #1838: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1839: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x3 = (0x1234567890abcdef01234567890abfdeea, carry 0x0)/(0x1234567890abcdef01234567890abfdeea, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"3":"1234567890abcdef01234567890abfdeea":"0":"1234567890abcdef01234567890abfdeea":"0" - -mbedtls_mpi_core_mla #1840: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xfe = (0x1234567890abcdef01234567890bbadcf4, carry 0x0)/(0x1234567890abcdef01234567890bbadcf4, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"fe":"1234567890abcdef01234567890bbadcf4":"0":"1234567890abcdef01234567890bbadcf4":"0" - -mbedtls_mpi_core_mla #1841: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xff = (0x1234567890abcdef01234567890bbbdcf2, carry 0x0)/(0x1234567890abcdef01234567890bbbdcf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ff":"1234567890abcdef01234567890bbbdcf2":"0":"1234567890abcdef01234567890bbbdcf2":"0" - -mbedtls_mpi_core_mla #1842: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xffff = (0x1234567890abcdef012345678a0ab9def2, carry 0x0)/(0x1234567890abcdef012345678a0ab9def2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ffff":"1234567890abcdef012345678a0ab9def2":"0":"1234567890abcdef012345678a0ab9def2":"0" - -mbedtls_mpi_core_mla #1843: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x10000 = (0x1234567890abcdef012345678a0abadef0, carry 0x0)/(0x1234567890abcdef012345678a0abadef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"10000":"1234567890abcdef012345678a0abadef0":"0":"1234567890abcdef012345678a0abadef0":"0" - -mbedtls_mpi_core_mla #1844: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xffffffff = (0x1234567890abcdef01234667870abbdef2, carry 0x0)/(0x1234567890abcdef01234667870abbdef2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ffffffff":"1234567890abcdef01234667870abbdef2":"0":"1234567890abcdef01234667870abbdef2":"0" - -mbedtls_mpi_core_mla #1845: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x100000000 = (0x1234567890abcdef01234667870abcdef0, carry 0x0)/(0x1234567890abcdef01234667870abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"100000000":"1234567890abcdef01234667870abcdef0":"0":"1234567890abcdef01234667870abcdef0":"0" - -mbedtls_mpi_core_mla #1846: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x1234567890abce6e7fa3c5e8098b3cdff2, carry 0x0)/(0x1234567890abce6e7fa3c5e8098b3cdff2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"1234567890abce6e7fa3c5e8098b3cdff2":"0":"1234567890abce6e7fa3c5e8098b3cdff2":"0" - -mbedtls_mpi_core_mla #1847: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x8000000000000000 = (0x1234567890abce6f00234567890abcdef0, carry 0x0)/(0x1234567890abce6f00234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"8000000000000000":"1234567890abce6f00234567890abcdef0":"0":"1234567890abce6f00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1848: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xfffffffffffffffe = (0x1234567890abceeeff234567890abadef4, carry 0x0)/(0x1234567890abceeeff234567890abadef4, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"fffffffffffffffe":"1234567890abceeeff234567890abadef4":"0":"1234567890abceeeff234567890abadef4":"0" - -mbedtls_mpi_core_mla #1849: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1850: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x3 = (0x1234567890abcdef012345678c0abcdeed, carry 0x0)/(0x1234567890abcdef012345678c0abcdeed, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"3":"1234567890abcdef012345678c0abcdeed":"0":"1234567890abcdef012345678c0abcdeed":"0" - -mbedtls_mpi_core_mla #1851: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfe = (0x1234567890abcdef01234568870abcddf2, carry 0x0)/(0x1234567890abcdef01234568870abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"fe":"1234567890abcdef01234568870abcddf2":"0":"1234567890abcdef01234568870abcddf2":"0" - -mbedtls_mpi_core_mla #1852: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xff = (0x1234567890abcdef01234568880abcddf1, carry 0x0)/(0x1234567890abcdef01234568880abcddf1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ff":"1234567890abcdef01234568880abcddf1":"0":"1234567890abcdef01234568880abcddf1":"0" - -mbedtls_mpi_core_mla #1853: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffff = (0x1234567890abcdef01234667880abbdef1, carry 0x0)/(0x1234567890abcdef01234667880abbdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ffff":"1234567890abcdef01234667880abbdef1":"0":"1234567890abcdef01234667880abbdef1":"0" - -mbedtls_mpi_core_mla #1854: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x10000 = (0x1234567890abcdef01234667890abbdef0, carry 0x0)/(0x1234567890abcdef01234667890abbdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"10000":"1234567890abcdef01234667890abbdef0":"0":"1234567890abcdef01234667890abbdef0":"0" - -mbedtls_mpi_core_mla #1855: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffffffff = (0x1234567890abcdef02234567870abcdef1, carry 0x0)/(0x1234567890abcdef02234567870abcdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ffffffff":"1234567890abcdef02234567870abcdef1":"0":"1234567890abcdef02234567870abcdef1":"0" - -mbedtls_mpi_core_mla #1856: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x100000000 = (0x1234567890abcdef02234567880abcdef0, carry 0x0)/(0x1234567890abcdef02234567880abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"100000000":"1234567890abcdef02234567880abcdef0":"0":"1234567890abcdef02234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1857: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x12345678912b4d6e80234567888b3d5f71, carry 0x0)/(0x12345678912b4d6e80234567888b3d5f71, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"12345678912b4d6e80234567888b3d5f71":"0":"12345678912b4d6e80234567888b3d5f71":"0" - -mbedtls_mpi_core_mla #1858: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x8000000000000000 = (0x12345678912bcdef00a34567890abcdef0, carry 0x0)/(0x12345678912bcdef00a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"8000000000000000":"12345678912bcdef00a34567890abcdef0":"0":"12345678912bcdef00a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1859: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe = (0x1234567891abcdef00234567870abcdef2, carry 0x0)/(0x1234567891abcdef00234567870abcdef2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"fffffffffffffffe":"1234567891abcdef00234567870abcdef2":"0":"1234567891abcdef00234567870abcdef2":"0" - -mbedtls_mpi_core_mla #1860: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1861: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x3 = (0x1234567890abcdef012345678c0abcdef0, carry 0x0)/(0x1234567890abcdef012345678c0abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"3":"1234567890abcdef012345678c0abcdef0":"0":"1234567890abcdef012345678c0abcdef0":"0" - -mbedtls_mpi_core_mla #1862: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfe = (0x1234567890abcdef01234568870abcdef0, carry 0x0)/(0x1234567890abcdef01234568870abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"fe":"1234567890abcdef01234568870abcdef0":"0":"1234567890abcdef01234568870abcdef0":"0" - -mbedtls_mpi_core_mla #1863: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xff = (0x1234567890abcdef01234568880abcdef0, carry 0x0)/(0x1234567890abcdef01234568880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ff":"1234567890abcdef01234568880abcdef0":"0":"1234567890abcdef01234568880abcdef0":"0" - -mbedtls_mpi_core_mla #1864: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffff = (0x1234567890abcdef01234667880abcdef0, carry 0x0)/(0x1234567890abcdef01234667880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ffff":"1234567890abcdef01234667880abcdef0":"0":"1234567890abcdef01234667880abcdef0":"0" - -mbedtls_mpi_core_mla #1865: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x10000 = (0x1234567890abcdef01234667890abcdef0, carry 0x0)/(0x1234567890abcdef01234667890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"10000":"1234567890abcdef01234667890abcdef0":"0":"1234567890abcdef01234667890abcdef0":"0" - -mbedtls_mpi_core_mla #1866: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffffffff = (0x1234567890abcdef02234567880abcdef0, carry 0x0)/(0x1234567890abcdef02234567880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ffffffff":"1234567890abcdef02234567880abcdef0":"0":"1234567890abcdef02234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1867: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x100000000 = (0x1234567890abcdef02234567890abcdef0, carry 0x0)/(0x1234567890abcdef02234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"100000000":"1234567890abcdef02234567890abcdef0":"0":"1234567890abcdef02234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1868: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x12345678912b4d6e80a2c4e7080abcdef0, carry 0x0)/(0x12345678912b4d6e80a2c4e7080abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"12345678912b4d6e80a2c4e7080abcdef0":"0":"12345678912b4d6e80a2c4e7080abcdef0":"0" - -mbedtls_mpi_core_mla #1869: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x8000000000000000 = (0x12345678912bcdef01234567890abcdef0, carry 0x0)/(0x12345678912bcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"8000000000000000":"12345678912bcdef01234567890abcdef0":"0":"12345678912bcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1870: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe = (0x1234567891abcdef01234567870abcdef0, carry 0x0)/(0x1234567891abcdef01234567870abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"fffffffffffffffe":"1234567891abcdef01234567870abcdef0":"0":"1234567891abcdef01234567870abcdef0":"0" - -mbedtls_mpi_core_mla #1871: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1872: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x3 = (0x1234567890abcdef0123a567890abcdef0, carry 0x0)/(0x1234567890abcdef0123a567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"3":"1234567890abcdef0123a567890abcdef0":"0":"1234567890abcdef0123a567890abcdef0":"0" - -mbedtls_mpi_core_mla #1873: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfe = (0x1234567890abcdef01430567890abcdef0, carry 0x0)/(0x1234567890abcdef01430567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"fe":"1234567890abcdef01430567890abcdef0":"0":"1234567890abcdef01430567890abcdef0":"0" - -mbedtls_mpi_core_mla #1874: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xff = (0x1234567890abcdef01432567890abcdef0, carry 0x0)/(0x1234567890abcdef01432567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ff":"1234567890abcdef01432567890abcdef0":"0":"1234567890abcdef01432567890abcdef0":"0" - -mbedtls_mpi_core_mla #1875: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffff = (0x1234567890abcdef21232567890abcdef0, carry 0x0)/(0x1234567890abcdef21232567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ffff":"1234567890abcdef21232567890abcdef0":"0":"1234567890abcdef21232567890abcdef0":"0" - -mbedtls_mpi_core_mla #1876: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x10000 = (0x1234567890abcdef21234567890abcdef0, carry 0x0)/(0x1234567890abcdef21234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"10000":"1234567890abcdef21234567890abcdef0":"0":"1234567890abcdef21234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1877: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffffffff = (0x1234567890abedef01232567890abcdef0, carry 0x0)/(0x1234567890abedef01232567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ffffffff":"1234567890abedef01232567890abcdef0":"0":"1234567890abedef01232567890abcdef0":"0" - -mbedtls_mpi_core_mla #1878: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x100000000 = (0x1234567890abedef01234567890abcdef0, carry 0x0)/(0x1234567890abedef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"100000000":"1234567890abedef01234567890abcdef0":"0":"1234567890abedef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1879: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0x12346668809bbddef1132567890abcdef0, carry 0x0)/(0x12346668809bbddef1132567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"12346668809bbddef1132567890abcdef0":"0":"12346668809bbddef1132567890abcdef0":"0" - -mbedtls_mpi_core_mla #1880: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 = (0x1234667890abcdef01234567890abcdef0, carry 0x0)/(0x1234667890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"8000000000000000":"1234667890abcdef01234567890abcdef0":"0":"1234667890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1881: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe = (0x1234767890abcdef01230567890abcdef0, carry 0x0)/(0x1234767890abcdef01230567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"fffffffffffffffe":"1234767890abcdef01230567890abcdef0":"0":"1234767890abcdef01230567890abcdef0":"0" - -mbedtls_mpi_core_mla #1882: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1883: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x3 = (0x1234567890abcdef04234567890abcdeed, carry 0x0)/(0x1234567890abcdef04234567890abcdeed, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"3":"1234567890abcdef04234567890abcdeed":"0":"1234567890abcdef04234567890abcdeed":"0" - -mbedtls_mpi_core_mla #1884: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfe = (0x1234567890abcdefff234567890abcddf2, carry 0x0)/(0x1234567890abcdefff234567890abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fe":"1234567890abcdefff234567890abcddf2":"0":"1234567890abcdefff234567890abcddf2":"0" - -mbedtls_mpi_core_mla #1885: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xff = (0x1234567890abcdf000234567890abcddf1, carry 0x0)/(0x1234567890abcdf000234567890abcddf1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ff":"1234567890abcdf000234567890abcddf1":"0":"1234567890abcdf000234567890abcddf1":"0" - -mbedtls_mpi_core_mla #1886: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffff = (0x1234567890abceef00234567890abbdef1, carry 0x0)/(0x1234567890abceef00234567890abbdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffff":"1234567890abceef00234567890abbdef1":"0":"1234567890abceef00234567890abbdef1":"0" - -mbedtls_mpi_core_mla #1887: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x10000 = (0x1234567890abceef01234567890abbdef0, carry 0x0)/(0x1234567890abceef01234567890abbdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"10000":"1234567890abceef01234567890abbdef0":"0":"1234567890abceef01234567890abbdef0":"0" - -mbedtls_mpi_core_mla #1888: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffffffff = (0x1234567891abcdef00234567880abcdef1, carry 0x0)/(0x1234567891abcdef00234567880abcdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffffffff":"1234567891abcdef00234567880abcdef1":"0":"1234567891abcdef00234567880abcdef1":"0" - -mbedtls_mpi_core_mla #1889: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x100000000 = (0x1234567891abcdef01234567880abcdef0, carry 0x0)/(0x1234567891abcdef01234567880abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"100000000":"1234567891abcdef01234567880abcdef0":"0":"1234567891abcdef01234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1890: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x12b3d5f8102b4d6e7fa3c5e8098b3d5f71, carry 0x0)/(0x12b3d5f8102b4d6e7fa3c5e8098b3d5f71, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"12b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0":"12b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0" - -mbedtls_mpi_core_mla #1891: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 = (0x12b4567890abcdef00a34567890abcdef0, carry 0x0)/(0x12b4567890abcdef00a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"8000000000000000":"12b4567890abcdef00a34567890abcdef0":"0":"12b4567890abcdef00a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1892: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x1334567890abcdeefe234567890abcdef2, carry 0x0)/(0x1334567890abcdeefe234567890abcdef2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"1334567890abcdeefe234567890abcdef2":"0":"1334567890abcdeefe234567890abcdef2":"0" - -mbedtls_mpi_core_mla #1893: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1894: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x3 = (0x1234567890abcdef04234567890abcdef0, carry 0x0)/(0x1234567890abcdef04234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"3":"1234567890abcdef04234567890abcdef0":"0":"1234567890abcdef04234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1895: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfe = (0x1234567890abcdefff234567890abcdef0, carry 0x0)/(0x1234567890abcdefff234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"fe":"1234567890abcdefff234567890abcdef0":"0":"1234567890abcdefff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1896: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xff = (0x1234567890abcdf000234567890abcdef0, carry 0x0)/(0x1234567890abcdf000234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ff":"1234567890abcdf000234567890abcdef0":"0":"1234567890abcdf000234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1897: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffff = (0x1234567890abceef00234567890abcdef0, carry 0x0)/(0x1234567890abceef00234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ffff":"1234567890abceef00234567890abcdef0":"0":"1234567890abceef00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1898: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x10000 = (0x1234567890abceef01234567890abcdef0, carry 0x0)/(0x1234567890abceef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"10000":"1234567890abceef01234567890abcdef0":"0":"1234567890abceef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1899: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffffffff = (0x1234567891abcdef00234567890abcdef0, carry 0x0)/(0x1234567891abcdef00234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ffffffff":"1234567891abcdef00234567890abcdef0":"0":"1234567891abcdef00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1900: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x100000000 = (0x1234567891abcdef01234567890abcdef0, carry 0x0)/(0x1234567891abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"100000000":"1234567891abcdef01234567890abcdef0":"0":"1234567891abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1901: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x12b3d5f8102b4d6e80234567890abcdef0, carry 0x0)/(0x12b3d5f8102b4d6e80234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"12b3d5f8102b4d6e80234567890abcdef0":"0":"12b3d5f8102b4d6e80234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1902: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 = (0x12b4567890abcdef01234567890abcdef0, carry 0x0)/(0x12b4567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"8000000000000000":"12b4567890abcdef01234567890abcdef0":"0":"12b4567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1903: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe = (0x1334567890abcdeeff234567890abcdef0, carry 0x0)/(0x1334567890abcdeeff234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"fffffffffffffffe":"1334567890abcdeeff234567890abcdef0":"0":"1334567890abcdeeff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1904: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1905: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x3 = (0x1234567890abcdef048d159e242af37bc0, carry 0x0)/(0x1234567890abcdef048d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"3":"1234567890abcdef048d159e242af37bc0":"0":"1234567890abcdef048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1906: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfe = (0x1234567890abcdf02222222181b2221110, carry 0x0)/(0x1234567890abcdf02222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fe":"1234567890abcdf02222222181b2221110":"0":"1234567890abcdf02222222181b2221110":"0" - -mbedtls_mpi_core_mla #1907: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xff = (0x1234567890abcdf0234567890abcdef000, carry 0x0)/(0x1234567890abcdf0234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdf0234567890abcdef000":"0":"1234567890abcdf0234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1908: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffff = (0x1234567890abcf124567890abcdef00000, carry 0x0)/(0x1234567890abcf124567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcf124567890abcdef00000":"0":"1234567890abcf124567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1909: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcf12468ace7245e9acdef0, carry 0x0)/(0x1234567890abcf12468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"10000":"1234567890abcf12468ace7245e9acdef0":"0":"1234567890abcf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1910: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff = (0x1234567891cf1356890abcdef000000000, carry 0x0)/(0x1234567891cf1356890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffffffff":"1234567891cf1356890abcdef000000000":"0":"1234567891cf1356890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1911: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 = (0x1234567891cf13568a2e0246790abcdef0, carry 0x0)/(0x1234567891cf13568a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"100000000":"1234567891cf13568a2e0246790abcdef0":"0":"1234567891cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1912: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x12c566f76c83f9cd7819bc7034ba188800, carry 0x0)/(0x12c566f76c83f9cd7819bc7034ba188800, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"12c566f76c83f9cd7819bc7034ba188800":"0":"12c566f76c83f9cd7819bc7034ba188800":"0" - -mbedtls_mpi_core_mla #1913: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x12c5f92c55312c5e79234567890abcdef0, carry 0x0)/(0x12c5f92c55312c5e79234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"8000000000000000":"12c5f92c55312c5e79234567890abcdef0":"0":"12c5f92c55312c5e79234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1914: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x13579be019b68acdeedcba9876f5432110, carry 0x0)/(0x13579be019b68acdeedcba9876f5432110, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"13579be019b68acdeedcba9876f5432110":"0":"13579be019b68acdeedcba9876f5432110":"0" - -mbedtls_mpi_core_mla #1915: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1916: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x1534567890abcdef012042648607b9dbea, carry 0x0)/(0x1534567890abcdef012042648607b9dbea, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"1534567890abcdef012042648607b9dbea":"0":"1534567890abcdef012042648607b9dbea":"0" - -mbedtls_mpi_core_mla #1917: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x11034567890abcdef002446688a0bbddef4, carry 0x0)/(0x11034567890abcdef002446688a0bbddef4, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"11034567890abcdef002446688a0bbddef4":"0":"11034567890abcdef002446688a0bbddef4":"0" - -mbedtls_mpi_core_mla #1918: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0x11134567890abcdef00234567890abcddf2, carry 0x0)/(0x11134567890abcdef00234567890abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"11134567890abcdef00234567890abcddf2":"0":"11134567890abcdef00234567890abcddf2":"0" - -mbedtls_mpi_core_mla #1919: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0x1001134567890abcdee00234567890abbdff2, carry 0x0)/(0x1001134567890abcdee00234567890abbdff2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"1001134567890abcdee00234567890abbdff2":"0":"1001134567890abcdee00234567890abbdff2":"0" - -mbedtls_mpi_core_mla #1920: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0x1001234567890abcdee002244668809badef0, carry 0x0)/(0x1001234567890abcdee002244668809badef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"1001234567890abcdee002244668809badef0":"0":"1001234567890abcdee002244668809badef0":"0" - -mbedtls_mpi_core_mla #1921: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0x1134567890aaccee00234567880bbddff2, carry 0x1)/(0x10000001134567890aaccee00234567880bbddff2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"1134567890aaccee00234567880bbddff2":"1":"10000001134567890aaccee00234567880bbddff2":"0" - -mbedtls_mpi_core_mla #1922: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0x1234567890aaccee00224466870abcdef0, carry 0x1)/(0x10000001234567890aaccee00224466870abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"1234567890aaccee00224466870abcdef0":"1":"10000001234567890aaccee00224466870abcdef0":"0" - -mbedtls_mpi_core_mla #1923: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2":"7f7f7f7f":"7f7f7f7f7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2":"0" - -mbedtls_mpi_core_mla #1924: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0x1233d5f8102b4d6e80234567890abcdef0, carry 0x80000000)/(0x800000000000001233d5f8102b4d6e80234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"1233d5f8102b4d6e80234567890abcdef0":"80000000":"800000000000001233d5f8102b4d6e80234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1925: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0x103355778faaccedff2547698b0cbee0f4, carry 0x100000000)/(0x103355778faaccedff2547698b0cbee0f4, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"103355778faaccedff2547698b0cbee0f4":"100000000":"103355778faaccedff2547698b0cbee0f4":"1" - -mbedtls_mpi_core_mla #1926: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1927: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 = (0x1534567890abcdef01234567890abcdef0, carry 0x0)/(0x1534567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"3":"1534567890abcdef01234567890abcdef0":"0":"1534567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1928: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe = (0x11034567890abcdef01234567890abcdef0, carry 0x0)/(0x11034567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fe":"11034567890abcdef01234567890abcdef0":"0":"11034567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1929: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff = (0x11134567890abcdef01234567890abcdef0, carry 0x0)/(0x11134567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ff":"11134567890abcdef01234567890abcdef0":"0":"11134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1930: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff = (0x1001134567890abcdef01234567890abcdef0, carry 0x0)/(0x1001134567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffff":"1001134567890abcdef01234567890abcdef0":"0":"1001134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1931: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 = (0x1001234567890abcdef01234567890abcdef0, carry 0x0)/(0x1001234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"10000":"1001234567890abcdef01234567890abcdef0":"0":"1001234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1932: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff = (0x1134567890abcdef01234567890abcdef0, carry 0x1)/(0x10000001134567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"1134567890abcdef01234567890abcdef0":"1":"10000001134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1933: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 = (0x1234567890abcdef01234567890abcdef0, carry 0x1)/(0x10000001234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef01234567890abcdef0":"1":"10000001234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1934: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f9134567890abcdef01234567890abcdef0, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f9134567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f9134567890abcdef01234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f9134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1935: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef0, carry 0x80000000)/(0x800000000000001234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef0":"80000000":"800000000000001234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1936: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0x1034567890abcdef01234567890abcdef0, carry 0x100000000)/(0x1034567890abcdef01234567890abcdef0, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"1034567890abcdef01234567890abcdef0":"100000000":"1034567890abcdef01234567890abcdef0":"1" - -mbedtls_mpi_core_mla #1937: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1938: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x48d159e242af37bc048d159e242af37bc0, carry 0x0)/(0x48d159e242af37bc048d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"48d159e242af37bc048d159e242af37bc0":"0":"48d159e242af37bc048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1939: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x12222222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"12222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #1940: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x1234567890abcdef01234567890abcdef000, carry 0x0)/(0x1234567890abcdef01234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1941: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x1234567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1942: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x123468ace7245e9acf12468ace7245e9acdef0, carry 0x0)/(0x123468ace7245e9acf12468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"123468ace7245e9acf12468ace7245e9acdef0":"0":"123468ace7245e9acf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1943: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x34567890abcdef01234567890abcdef000000000, carry 0x12)/(0x1234567890abcdef01234567890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"34567890abcdef01234567890abcdef000000000":"12":"1234567890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1944: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x345678a2e0246791cf13568a2e0246790abcdef0, carry 0x12)/(0x12345678a2e0246791cf13568a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"345678a2e0246791cf13568a2e0246790abcdef0":"12":"12345678a2e0246791cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1945: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde7822cd7822779b45e7819bc7034ba188800, carry 0x91107edbd)/(0x1107edbd82bde7822cd7822779b45e7819bc7034ba188800, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde7822cd7822779b45e7819bc7034ba188800":"91107edbd":"1107edbd82bde7822cd7822779b45e7819bc7034ba188800":"9" - -mbedtls_mpi_core_mla #1946: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f792c5f92c55312c5e79234567890abcdef0, carry 0x91a2b3c48)/(0x1a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f792c5f92c55312c5e79234567890abcdef0":"91a2b3c48":"1a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"9" - -mbedtls_mpi_core_mla #1947: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234567890)/(0x34567890abcdeeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeeeeeeeeef85eeeefeedcba9876f5432110":"1234567890":"34567890abcdeeeeeeeeeef85eeeefeedcba9876f5432110":"12" - -mbedtls_mpi_core_mla #1948: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1949: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x1234567890abcdef01234567890abcdeed, carry 0x3)/(0x1234567890abcdef01234567890abcdeed, carry 0x3) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1234567890abcdef01234567890abcdeed":"3":"1234567890abcdef01234567890abcdeed":"3" - -mbedtls_mpi_core_mla #1950: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x1234567890abcdef01234567890abcddf2, carry 0xfe)/(0x1234567890abcdef01234567890abcddf2, carry 0xfe) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1234567890abcdef01234567890abcddf2":"fe":"1234567890abcdef01234567890abcddf2":"fe" - -mbedtls_mpi_core_mla #1951: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x1234567890abcdef01234567890abcddf1, carry 0xff)/(0x1234567890abcdef01234567890abcddf1, carry 0xff) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1234567890abcdef01234567890abcddf1":"ff":"1234567890abcdef01234567890abcddf1":"ff" - -mbedtls_mpi_core_mla #1952: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x1234567890abcdef01234567890abbdef1, carry 0xffff)/(0x1234567890abcdef01234567890abbdef1, carry 0xffff) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1234567890abcdef01234567890abbdef1":"ffff":"1234567890abcdef01234567890abbdef1":"ffff" - -mbedtls_mpi_core_mla #1953: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x1234567890abcdef01234567890abbdef0, carry 0x10000)/(0x1234567890abcdef01234567890abbdef0, carry 0x10000) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1234567890abcdef01234567890abbdef0":"10000":"1234567890abcdef01234567890abbdef0":"10000" - -mbedtls_mpi_core_mla #1954: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1234567890abcdef01234567880abcdef1, carry 0xffffffff)/(0x1234567890abcdef01234567880abcdef1, carry 0xffffffff) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1234567890abcdef01234567880abcdef1":"ffffffff":"1234567890abcdef01234567880abcdef1":"ffffffff" - -mbedtls_mpi_core_mla #1955: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x1234567890abcdef01234567880abcdef0, carry 0x100000000)/(0x1234567890abcdef01234567880abcdef0, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567890abcdef01234567880abcdef0":"100000000":"1234567890abcdef01234567880abcdef0":"100000000" - -mbedtls_mpi_core_mla #1956: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef00a3c5e8098b3d5f71, carry 0x7f7f7f7f7f7f7f7f)/(0x1234567890abcdef00a3c5e8098b3d5f71, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f":"1234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1957: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x1234567890abcdef00a34567890abcdef0, carry 0x8000000000000000)/(0x1234567890abcdef00a34567890abcdef0, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"8000000000000000" - -mbedtls_mpi_core_mla #1958: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x1234567890abcdef00234567890abcdef2, carry 0xfffffffffffffffe)/(0x1234567890abcdef00234567890abcdef2, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1959: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1960: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0":"0":"369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1961: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110":"0":"120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #1962: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000, carry 0x0)/(0x12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000":"0":"12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1963: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000, carry 0x0)/(0x123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000":"0":"123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1964: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1965: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000, carry 0x1234)/(0x123456787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000":"1234":"123456787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1966: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0, carry 0x1234)/(0x1234567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0":"1234":"1234567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1967: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800":"911" - -mbedtls_mpi_core_mla #1968: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"91a" - -mbedtls_mpi_core_mla #1969: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110":"1234" - -mbedtls_mpi_core_mla #1970: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1971: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271":"0" - -mbedtls_mpi_core_mla #1972: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a":"0" - -mbedtls_mpi_core_mla #1973: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5":"0" - -mbedtls_mpi_core_mla #1974: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5":"0" - -mbedtls_mpi_core_mla #1975: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0":"0" - -mbedtls_mpi_core_mla #1976: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5, carry 0x4) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5":"4" - -mbedtls_mpi_core_mla #1977: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0":"4" - -mbedtls_mpi_core_mla #1978: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845":"26d473ca9" - -mbedtls_mpi_core_mla #1979: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0":"26fb9683d" - -mbedtls_mpi_core_mla #1980: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a":"4df72d07b" - -mbedtls_mpi_core_mla #1981: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1982: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x3 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"3":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1983: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xfe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1984: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1985: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1986: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x10000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1987: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1988: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1989: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1990: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1991: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1992: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1993: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x3 = (0x2, carry 0x1)/(0x2, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"3":"2":"1":"2":"1" - -mbedtls_mpi_core_mla #1994: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xfe = (0xfd, carry 0x1)/(0xfd, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fe":"fd":"1":"fd":"1" - -mbedtls_mpi_core_mla #1995: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xff = (0xfe, carry 0x1)/(0xfe, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ff":"fe":"1":"fe":"1" - -mbedtls_mpi_core_mla #1996: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xffff = (0xfffe, carry 0x1)/(0xfffe, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ffff":"fffe":"1":"fffe":"1" - -mbedtls_mpi_core_mla #1997: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x10000 = (0xffff, carry 0x1)/(0xffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"10000":"ffff":"1":"ffff":"1" - -mbedtls_mpi_core_mla #1998: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xffffffff = (0xfffffffe, carry 0x1)/(0xfffffffe, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ffffffff":"fffffffe":"1":"fffffffe":"1" - -mbedtls_mpi_core_mla #1999: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x100000000 = (0xffffffff, carry 0x1)/(0xffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"100000000":"ffffffff":"1":"ffffffff":"1" - -mbedtls_mpi_core_mla #2000: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7e, carry 0x1)/(0x7f7f7f7f7f7f7f7e, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e":"1":"7f7f7f7f7f7f7f7e":"1" - -mbedtls_mpi_core_mla #2001: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x1)/(0x7fffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"8000000000000000":"7fffffffffffffff":"1":"7fffffffffffffff":"1" - -mbedtls_mpi_core_mla #2002: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xfffffffffffffffe = (0xfffffffffffffffd, carry 0x1)/(0xfffffffffffffffd, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffd":"1":"fffffffffffffffd":"1" - -mbedtls_mpi_core_mla #2003: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2004: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x3 = (0x2fff9, carry 0x1)/(0x2fff9, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"3":"2fff9":"1":"2fff9":"1" - -mbedtls_mpi_core_mla #2005: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xfe = (0xfdfe03, carry 0x1)/(0xfdfe03, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"fe":"fdfe03":"1":"fdfe03":"1" - -mbedtls_mpi_core_mla #2006: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xff = (0xfefe01, carry 0x1)/(0xfefe01, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ff":"fefe01":"1":"fefe01":"1" - -mbedtls_mpi_core_mla #2007: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xffff = (0xfffd0001, carry 0x1)/(0xfffd0001, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffff":"fffd0001":"1":"fffd0001":"1" - -mbedtls_mpi_core_mla #2008: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x10000 = (0xfffdffff, carry 0x1)/(0xfffdffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"10000":"fffdffff":"1":"fffdffff":"1" - -mbedtls_mpi_core_mla #2009: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xffffffff = (0xfffdffff0001, carry 0x1)/(0xfffdffff0001, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffff":"fffdffff0001":"1":"fffdffff0001":"1" - -mbedtls_mpi_core_mla #2010: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x100000000 = (0xfffdffffffff, carry 0x1)/(0xfffdffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"100000000":"fffdffffffff":"1":"fffdffffffff":"1" - -mbedtls_mpi_core_mla #2011: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x7f7e8080808080800101, carry 0x1)/(0x7f7e8080808080800101, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"7f7f7f7f7f7f7f7f":"7f7e8080808080800101":"1":"7f7e8080808080800101":"1" - -mbedtls_mpi_core_mla #2012: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x8000000000000000 = (0x7ffeffffffffffffffff, carry 0x1)/(0x7ffeffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"8000000000000000":"7ffeffffffffffffffff":"1":"7ffeffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2013: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xfffffffffffffffe = (0xfffdfffffffffffe0003, carry 0x1)/(0xfffdfffffffffffe0003, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"fffffffffffffffe":"fffdfffffffffffe0003":"1":"fffdfffffffffffe0003":"1" - -mbedtls_mpi_core_mla #2014: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2015: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x3 = (0x2fffffffc, carry 0x1)/(0x2fffffffc, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"3":"2fffffffc":"1":"2fffffffc":"1" - -mbedtls_mpi_core_mla #2016: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xfe = (0xfdffffff01, carry 0x1)/(0xfdffffff01, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fe":"fdffffff01":"1":"fdffffff01":"1" - -mbedtls_mpi_core_mla #2017: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xff = (0xfeffffff00, carry 0x1)/(0xfeffffff00, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ff":"feffffff00":"1":"feffffff00":"1" - -mbedtls_mpi_core_mla #2018: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xffff = (0xfffeffff0000, carry 0x1)/(0xfffeffff0000, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffff":"fffeffff0000":"1":"fffeffff0000":"1" - -mbedtls_mpi_core_mla #2019: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x10000 = (0xfffffffeffff, carry 0x1)/(0xfffffffeffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"10000":"fffffffeffff":"1":"fffffffeffff":"1" - -mbedtls_mpi_core_mla #2020: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xffffffff = (0xfffffffe00000000, carry 0x1)/(0xfffffffe00000000, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff":"fffffffe00000000":"1":"fffffffe00000000":"1" - -mbedtls_mpi_core_mla #2021: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x100000000 = (0xfffffffeffffffff, carry 0x1)/(0xfffffffeffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"100000000":"fffffffeffffffff":"1":"fffffffeffffffff":"1" - -mbedtls_mpi_core_mla #2022: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7effffffff80808080, carry 0x1)/(0x7f7f7f7effffffff80808080, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7effffffff80808080":"1":"7f7f7f7effffffff80808080":"1" - -mbedtls_mpi_core_mla #2023: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x8000000000000000 = (0x7fffffff7fffffffffffffff, carry 0x1)/(0x7fffffff7fffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"8000000000000000":"7fffffff7fffffffffffffff":"1":"7fffffff7fffffffffffffff":"1" - -mbedtls_mpi_core_mla #2024: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xfffffffffffffffe = (0xfffffffefffffffe00000001, carry 0x1)/(0xfffffffefffffffe00000001, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fffffffffffffffe":"fffffffefffffffe00000001":"1":"fffffffefffffffe00000001":"1" - -mbedtls_mpi_core_mla #2025: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2026: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x3 = (0x2ffffffff, carry 0x1)/(0x2ffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"3":"2ffffffff":"1":"2ffffffff":"1" - -mbedtls_mpi_core_mla #2027: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xfe = (0xfdffffffff, carry 0x1)/(0xfdffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fe":"fdffffffff":"1":"fdffffffff":"1" - -mbedtls_mpi_core_mla #2028: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xff = (0xfeffffffff, carry 0x1)/(0xfeffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ff":"feffffffff":"1":"feffffffff":"1" - -mbedtls_mpi_core_mla #2029: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xffff = (0xfffeffffffff, carry 0x1)/(0xfffeffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffff":"fffeffffffff":"1":"fffeffffffff":"1" - -mbedtls_mpi_core_mla #2030: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x10000 = (0xffffffffffff, carry 0x1)/(0xffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"10000":"ffffffffffff":"1":"ffffffffffff":"1" - -mbedtls_mpi_core_mla #2031: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xffffffff = (0xfffffffeffffffff, carry 0x1)/(0xfffffffeffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffff":"fffffffeffffffff":"1":"fffffffeffffffff":"1" - -mbedtls_mpi_core_mla #2032: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x100000000 = (0xffffffffffffffff, carry 0x1)/(0xffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"100000000":"ffffffffffffffff":"1":"ffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2033: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7effffffff, carry 0x1)/(0x7f7f7f7f7f7f7f7effffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffff":"1":"7f7f7f7f7f7f7f7effffffff":"1" - -mbedtls_mpi_core_mla #2034: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x8000000000000000 = (0x7fffffffffffffffffffffff, carry 0x1)/(0x7fffffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"8000000000000000":"7fffffffffffffffffffffff":"1":"7fffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2035: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xfffffffffffffffe = (0xfffffffffffffffdffffffff, carry 0x1)/(0xfffffffffffffffdffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffe":"fffffffffffffffdffffffff":"1":"fffffffffffffffdffffffff":"1" - -mbedtls_mpi_core_mla #2036: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2037: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x3 = (0x5fffffffffffff, carry 0x1)/(0x5fffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"3":"5fffffffffffff":"1":"5fffffffffffff":"1" - -mbedtls_mpi_core_mla #2038: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xfe = (0x1fbfffffffffffff, carry 0x1)/(0x1fbfffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"fe":"1fbfffffffffffff":"1":"1fbfffffffffffff":"1" - -mbedtls_mpi_core_mla #2039: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xff = (0x1fdfffffffffffff, carry 0x1)/(0x1fdfffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ff":"1fdfffffffffffff":"1":"1fdfffffffffffff":"1" - -mbedtls_mpi_core_mla #2040: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xffff = (0x1fffdfffffffffffff, carry 0x1)/(0x1fffdfffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ffff":"1fffdfffffffffffff":"1":"1fffdfffffffffffff":"1" - -mbedtls_mpi_core_mla #2041: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x10000 = (0x1fffffffffffffffff, carry 0x1)/(0x1fffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"10000":"1fffffffffffffffff":"1":"1fffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2042: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xffffffff = (0x1fffffffdfffffffffffff, carry 0x1)/(0x1fffffffdfffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ffffffff":"1fffffffdfffffffffffff":"1":"1fffffffdfffffffffffff":"1" - -mbedtls_mpi_core_mla #2043: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x100000000 = (0x1fffffffffffffffffffff, carry 0x1)/(0x1fffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"100000000":"1fffffffffffffffffffff":"1":"1fffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2044: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xfefefefefefefefdfffffffffffff, carry 0x1)/(0xfefefefefefefefdfffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"fefefefefefefefdfffffffffffff":"1":"fefefefefefefefdfffffffffffff":"1" - -mbedtls_mpi_core_mla #2045: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x8000000000000000 = (0xfffffffffffffffffffffffffffff, carry 0x1)/(0xfffffffffffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"8000000000000000":"fffffffffffffffffffffffffffff":"1":"fffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2046: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xfffffffffffffffe = (0x1fffffffffffffffbfffffffffffff, carry 0x1)/(0x1fffffffffffffffbfffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"fffffffffffffffe":"1fffffffffffffffbfffffffffffff":"1":"1fffffffffffffffbfffffffffffff":"1" - -mbedtls_mpi_core_mla #2047: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2048: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x3 = (0x2fffffffffffffffc, carry 0x1)/(0x2fffffffffffffffc, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"3":"2fffffffffffffffc":"1":"2fffffffffffffffc":"1" - -mbedtls_mpi_core_mla #2049: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xfe = (0xfdffffffffffffff01, carry 0x1)/(0xfdffffffffffffff01, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"fe":"fdffffffffffffff01":"1":"fdffffffffffffff01":"1" - -mbedtls_mpi_core_mla #2050: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xff = (0xfeffffffffffffff00, carry 0x1)/(0xfeffffffffffffff00, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ff":"feffffffffffffff00":"1":"feffffffffffffff00":"1" - -mbedtls_mpi_core_mla #2051: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xffff = (0xfffeffffffffffff0000, carry 0x1)/(0xfffeffffffffffff0000, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffff":"fffeffffffffffff0000":"1":"fffeffffffffffff0000":"1" - -mbedtls_mpi_core_mla #2052: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x10000 = (0xfffffffffffffffeffff, carry 0x1)/(0xfffffffffffffffeffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"10000":"fffffffffffffffeffff":"1":"fffffffffffffffeffff":"1" - -mbedtls_mpi_core_mla #2053: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xffffffff = (0xfffffffeffffffff00000000, carry 0x1)/(0xfffffffeffffffff00000000, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffff":"fffffffeffffffff00000000":"1":"fffffffeffffffff00000000":"1" - -mbedtls_mpi_core_mla #2054: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x100000000 = (0xfffffffffffffffeffffffff, carry 0x1)/(0xfffffffffffffffeffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"100000000":"fffffffffffffffeffffffff":"1":"fffffffffffffffeffffffff":"1" - -mbedtls_mpi_core_mla #2055: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7e8080808080808080, carry 0x1)/(0x7f7f7f7f7f7f7f7e8080808080808080, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e8080808080808080":"1":"7f7f7f7f7f7f7f7e8080808080808080":"1" - -mbedtls_mpi_core_mla #2056: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x8000000000000000 = (0x7fffffffffffffff7fffffffffffffff, carry 0x1)/(0x7fffffffffffffff7fffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff7fffffffffffffff":"1":"7fffffffffffffff7fffffffffffffff":"1" - -mbedtls_mpi_core_mla #2057: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xfffffffffffffffe = (0xfffffffffffffffd0000000000000001, carry 0x1)/(0xfffffffffffffffd0000000000000001, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":"fffffffffffffffd0000000000000001":"1":"fffffffffffffffd0000000000000001":"1" - -mbedtls_mpi_core_mla #2058: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2059: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x3 = (0x2ffffffffffffffff, carry 0x1)/(0x2ffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"3":"2ffffffffffffffff":"1":"2ffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2060: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xfe = (0xfdffffffffffffffff, carry 0x1)/(0xfdffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fe":"fdffffffffffffffff":"1":"fdffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2061: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xff = (0xfeffffffffffffffff, carry 0x1)/(0xfeffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ff":"feffffffffffffffff":"1":"feffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2062: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xffff = (0xfffeffffffffffffffff, carry 0x1)/(0xfffeffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ffff":"fffeffffffffffffffff":"1":"fffeffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2063: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x10000 = (0xffffffffffffffffffff, carry 0x1)/(0xffffffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"10000":"ffffffffffffffffffff":"1":"ffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2064: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xffffffff = (0xfffffffeffffffffffffffff, carry 0x1)/(0xfffffffeffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ffffffff":"fffffffeffffffffffffffff":"1":"fffffffeffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2065: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x100000000 = (0xffffffffffffffffffffffff, carry 0x1)/(0xffffffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"100000000":"ffffffffffffffffffffffff":"1":"ffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2066: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7effffffffffffffff, carry 0x1)/(0x7f7f7f7f7f7f7f7effffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffffffffffff":"1":"7f7f7f7f7f7f7f7effffffffffffffff":"1" - -mbedtls_mpi_core_mla #2067: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x8000000000000000 = (0x7fffffffffffffffffffffffffffffff, carry 0x1)/(0x7fffffffffffffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"8000000000000000":"7fffffffffffffffffffffffffffffff":"1":"7fffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2068: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffffffffffdffffffffffffffff, carry 0x1)/(0xfffffffffffffffdffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fffffffffffffffe":"fffffffffffffffdffffffffffffffff":"1":"fffffffffffffffdffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2069: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2070: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x3 = (0x369d0369b20369ccf, carry 0x1)/(0x369d0369b20369ccf, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"3":"369d0369b20369ccf":"1":"369d0369b20369ccf":"1" - -mbedtls_mpi_core_mla #2071: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f8a765321f, carry 0x1)/(0x120fedcb9f8a765321f, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fe":"120fedcb9f8a765321f":"1":"120fedcb9f8a765321f":"1" - -mbedtls_mpi_core_mla #2072: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xff = (0x12222222181b222110f, carry 0x1)/(0x12222222181b222110f, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ff":"12222222181b222110f":"1":"12222222181b222110f":"1" - -mbedtls_mpi_core_mla #2073: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xffff = (0x123444443a333d433210f, carry 0x1)/(0x123444443a333d433210f, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ffff":"123444443a333d433210f":"1":"123444443a333d433210f":"1" - -mbedtls_mpi_core_mla #2074: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdeefffff, carry 0x1)/(0x1234567890abcdeefffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"10000":"1234567890abcdeefffff":"1":"1234567890abcdeefffff":"1" - -mbedtls_mpi_core_mla #2075: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xffffffff = (0x123456787e7777766f543210f, carry 0x1)/(0x123456787e7777766f543210f, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ffffffff":"123456787e7777766f543210f":"1":"123456787e7777766f543210f":"1" - -mbedtls_mpi_core_mla #2076: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x100000000 = (0x1234567890abcdeefffffffff, carry 0x1)/(0x1234567890abcdeefffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"100000000":"1234567890abcdeefffffffff":"1":"1234567890abcdeefffffffff":"1" - -mbedtls_mpi_core_mla #2077: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x91107edbd82bde76f67708abaf5ba90f, carry 0x1)/(0x91107edbd82bde76f67708abaf5ba90f, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76f67708abaf5ba90f":"1":"91107edbd82bde76f67708abaf5ba90f":"1" - -mbedtls_mpi_core_mla #2078: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x8000000000000000 = (0x91a2b3c4855e6f77ffffffffffffffff, carry 0x1)/(0x91a2b3c4855e6f77ffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"8000000000000000":"91a2b3c4855e6f77ffffffffffffffff":"1":"91a2b3c4855e6f77ffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2079: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x1234567890abcdeedb97530edea86421f, carry 0x1)/(0x1234567890abcdeedb97530edea86421f, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fffffffffffffffe":"1234567890abcdeedb97530edea86421f":"1":"1234567890abcdeedb97530edea86421f":"1" - -mbedtls_mpi_core_mla #2080: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2081: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x2fffffffffffffffffcfcfcfcfcfcfcf9, carry 0x1)/(0x2fffffffffffffffffcfcfcfcfcfcfcf9, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"3":"2fffffffffffffffffcfcfcfcfcfcfcf9":"1":"2fffffffffffffffffcfcfcfcfcfcfcf9":"1" - -mbedtls_mpi_core_mla #2082: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xfdffffffffffffffff0101010101010003, carry 0x1)/(0xfdffffffffffffffff0101010101010003, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fe":"fdffffffffffffffff0101010101010003":"1":"fdffffffffffffffff0101010101010003":"1" - -mbedtls_mpi_core_mla #2083: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfefffffffffffffffeffffffffffffff01, carry 0x1)/(0xfefffffffffffffffeffffffffffffff01, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ff":"fefffffffffffffffeffffffffffffff01":"1":"fefffffffffffffffeffffffffffffff01":"1" - -mbedtls_mpi_core_mla #2084: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffefffffffffffffefeffffffffffff0101, carry 0x1)/(0xfffefffffffffffffefeffffffffffff0101, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffefffffffffffffefeffffffffffff0101":"1":"fffefffffffffffffefeffffffffffff0101":"1" - -mbedtls_mpi_core_mla #2085: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffffffefefefefefefefdffff, carry 0x1)/(0xfffffffffffffffffefefefefefefefdffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffffffefefefefefefefdffff":"1":"fffffffffffffffffefefefefefefefdffff":"1" - -mbedtls_mpi_core_mla #2086: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffefffffffffefefefeffffffff01010101, carry 0x1)/(0xfffffffefffffffffefefefeffffffff01010101, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffefffffffffefefefeffffffff01010101":"1":"fffffffefffffffffefefefeffffffff01010101":"1" - -mbedtls_mpi_core_mla #2087: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffffffffffefefefefefefefdffffffff, carry 0x1)/(0xfffffffffffffffffefefefefefefefdffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffffefefefefefefefdffffffff":"1":"fffffffffffffffffefefefefefefefdffffffff":"1" - -mbedtls_mpi_core_mla #2088: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7eff800081018202828504840383028201, carry 0x1)/(0x7f7f7f7f7f7f7f7eff800081018202828504840383028201, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7eff800081018202828504840383028201":"1":"7f7f7f7f7f7f7f7eff800081018202828504840383028201":"1" - -mbedtls_mpi_core_mla #2089: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0x7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff, carry 0x1)/(0x7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff":"1":"7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff":"1" - -mbedtls_mpi_core_mla #2090: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfffffffffffffffdfefefefefefefefe0202020202020203, carry 0x1)/(0xfffffffffffffffdfefefefefefefefe0202020202020203, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffffffffffdfefefefefefefefe0202020202020203":"1":"fffffffffffffffdfefefefefefefefe0202020202020203":"1" - -mbedtls_mpi_core_mla #2091: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2092: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x3 = (0x2ffffffffffffffffffffffffffffffff, carry 0x1)/(0x2ffffffffffffffffffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"3":"2ffffffffffffffffffffffffffffffff":"1":"2ffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2093: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xfe = (0xfdffffffffffffffffffffffffffffffff, carry 0x1)/(0xfdffffffffffffffffffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fe":"fdffffffffffffffffffffffffffffffff":"1":"fdffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2094: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xff = (0xfeffffffffffffffffffffffffffffffff, carry 0x1)/(0xfeffffffffffffffffffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ff":"feffffffffffffffffffffffffffffffff":"1":"feffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2095: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xffff = (0xfffeffffffffffffffffffffffffffffffff, carry 0x1)/(0xfffeffffffffffffffffffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffff":"fffeffffffffffffffffffffffffffffffff":"1":"fffeffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2096: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x10000 = (0xffffffffffffffffffffffffffffffffffff, carry 0x1)/(0xffffffffffffffffffffffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"10000":"ffffffffffffffffffffffffffffffffffff":"1":"ffffffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2097: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xffffffff = (0xfffffffeffffffffffffffffffffffffffffffff, carry 0x1)/(0xfffffffeffffffffffffffffffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffffffff":"fffffffeffffffffffffffffffffffffffffffff":"1":"fffffffeffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2098: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffff, carry 0x1)/(0xffffffffffffffffffffffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"100000000":"ffffffffffffffffffffffffffffffffffffffff":"1":"ffffffffffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2099: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff, carry 0x1)/(0x7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff":"1":"7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2100: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x7fffffffffffffffffffffffffffffffffffffffffffffff, carry 0x1)/(0x7fffffffffffffffffffffffffffffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"8000000000000000":"7fffffffffffffffffffffffffffffffffffffffffffffff":"1":"7fffffffffffffffffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2101: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffffffffffdffffffffffffffffffffffffffffffff, carry 0x1)/(0xfffffffffffffffdffffffffffffffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffffffffffdffffffffffffffffffffffffffffffff":"1":"fffffffffffffffdffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2102: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2103: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369ccf, carry 0x1)/(0x369d0369b20369cd0369d0369b20369ccf, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369ccf":"1":"369d0369b20369cd0369d0369b20369ccf":"1" - -mbedtls_mpi_core_mla #2104: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a765321f, carry 0x1)/(0x120fedcb9f8a76532320fedcb9f8a765321f, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765321f":"1":"120fedcb9f8a76532320fedcb9f8a765321f":"1" - -mbedtls_mpi_core_mla #2105: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b222110f, carry 0x1)/(0x12222222181b2221122222222181b222110f, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b222110f":"1":"12222222181b2221122222222181b222110f":"1" - -mbedtls_mpi_core_mla #2106: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433210f, carry 0x1)/(0x123444443a333d433334444443a333d433210f, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433210f":"1":"123444443a333d433334444443a333d433210f":"1" - -mbedtls_mpi_core_mla #2107: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdeefffff, carry 0x1)/(0x1234567890abcdef01234567890abcdeefffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdeefffff":"1":"1234567890abcdef01234567890abcdeefffff":"1" - -mbedtls_mpi_core_mla #2108: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x123456787e7777767077777887e7777766f543210f, carry 0x1)/(0x123456787e7777767077777887e7777766f543210f, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"123456787e7777767077777887e7777766f543210f":"1":"123456787e7777767077777887e7777766f543210f":"1" - -mbedtls_mpi_core_mla #2109: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x1234567890abcdef01234567890abcdeefffffffff, carry 0x1)/(0x1234567890abcdef01234567890abcdeefffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdeefffffffff":"1":"1234567890abcdef01234567890abcdeefffffffff":"1" - -mbedtls_mpi_core_mla #2110: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f, carry 0x1)/(0x91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f":"1":"91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f":"1" - -mbedtls_mpi_core_mla #2111: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff, carry 0x1)/(0x91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"1":"91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2112: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0x1234567890abcdeedcba987667b32100edb97530edea86421f, carry 0x1)/(0x1234567890abcdeedcba987667b32100edb97530edea86421f, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdeedcba987667b32100edb97530edea86421f":"1":"1234567890abcdeedcba987667b32100edb97530edea86421f":"1" - -mbedtls_mpi_core_mla #2113: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2114: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 0x3)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 0x3) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"3" - -mbedtls_mpi_core_mla #2115: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0xfe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0xfe) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #2116: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0xff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0xff) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ff" - -mbedtls_mpi_core_mla #2117: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0xffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0xffff) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff" - -mbedtls_mpi_core_mla #2118: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff, carry 0x10000)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff, carry 0x10000) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"10000" - -mbedtls_mpi_core_mla #2119: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0xffffffff) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #2120: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff, carry 0x100000000)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"100000000" - -mbedtls_mpi_core_mla #2121: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080, carry 0x7f7f7f7f7f7f7f7f)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #2122: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff, carry 0x8000000000000000)/(0xffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"8000000000000000" - -mbedtls_mpi_core_mla #2123: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001, carry 0xfffffffffffffffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"fffffffffffffffe" - -mbedtls_mpi_core_mla #2124: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2125: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf, carry 0x0)/(0x369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf":"0":"369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf":"0" - -mbedtls_mpi_core_mla #2126: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f, carry 0x0)/(0x120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f":"0":"120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f":"0" - -mbedtls_mpi_core_mla #2127: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222322181b2221122222222181b2221122222222181b2221122222222181b222110f, carry 0x0)/(0x12222322181b2221122222222181b2221122222222181b2221122222222181b222110f, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222322181b2221122222222181b2221122222222181b2221122222222181b222110f":"0":"12222322181b2221122222222181b2221122222222181b2221122222222181b222110f":"0" - -mbedtls_mpi_core_mla #2128: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f, carry 0x0)/(0x123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f":"0":"123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f":"0" - -mbedtls_mpi_core_mla #2129: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff, carry 0x0)/(0x1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff":"0":"1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff":"0" - -mbedtls_mpi_core_mla #2130: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f, carry 0x1234)/(0x123456787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f":"1234":"123456787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f":"0" - -mbedtls_mpi_core_mla #2131: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff, carry 0x1234)/(0x1234567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff":"1234":"1234567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff":"0" - -mbedtls_mpi_core_mla #2132: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f, carry 0x91107edbd82)/(0x7edbd82bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f":"91107edbd82":"7edbd82bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f":"911" - -mbedtls_mpi_core_mla #2133: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff, carry 0x91a2b3c4855)/(0x2b3c4855e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"91a2b3c4855":"2b3c4855e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"91a" - -mbedtls_mpi_core_mla #2134: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f, carry 0x1234567890ab)/(0x567890abcdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f":"1234567890ab":"567890abcdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f":"1234" - -mbedtls_mpi_core_mla #2135: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2136: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380":"0" - -mbedtls_mpi_core_mla #2137: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9":"0" - -mbedtls_mpi_core_mla #2138: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4":"0" - -mbedtls_mpi_core_mla #2139: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4":"0" - -mbedtls_mpi_core_mla #2140: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff":"0" - -mbedtls_mpi_core_mla #2141: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4, carry 0x4) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4":"4" - -mbedtls_mpi_core_mla #2142: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff":"4" - -mbedtls_mpi_core_mla #2143: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954":"26d473ca9" - -mbedtls_mpi_core_mla #2144: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff":"26fb9683d" - -mbedtls_mpi_core_mla #2145: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9":"4df72d07b" - -mbedtls_mpi_core_mla #2146: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2147: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2148: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2149: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2150: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2151: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2152: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2153: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2154: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2155: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2156: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2157: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2158: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":"0" - -mbedtls_mpi_core_mla #2159: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":"0" - -mbedtls_mpi_core_mla #2160: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":"0" - -mbedtls_mpi_core_mla #2161: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":"0" - -mbedtls_mpi_core_mla #2162: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":"0" - -mbedtls_mpi_core_mla #2163: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":"0" - -mbedtls_mpi_core_mla #2164: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":"0" - -mbedtls_mpi_core_mla #2165: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f":"0" - -mbedtls_mpi_core_mla #2166: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #2167: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":"0" - -mbedtls_mpi_core_mla #2168: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2169: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea":"0" - -mbedtls_mpi_core_mla #2170: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4":"0" - -mbedtls_mpi_core_mla #2171: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2":"0" - -mbedtls_mpi_core_mla #2172: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2":"0" - -mbedtls_mpi_core_mla #2173: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0":"0" - -mbedtls_mpi_core_mla #2174: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2":"0" - -mbedtls_mpi_core_mla #2175: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0":"0" - -mbedtls_mpi_core_mla #2176: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2":"0":"1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2":"0" - -mbedtls_mpi_core_mla #2177: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2178: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4":"0":"1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4":"0" - -mbedtls_mpi_core_mla #2179: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2180: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"3":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed":"0" - -mbedtls_mpi_core_mla #2181: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2":"0" - -mbedtls_mpi_core_mla #2182: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1":"0" - -mbedtls_mpi_core_mla #2183: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1":"0" - -mbedtls_mpi_core_mla #2184: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0":"0" - -mbedtls_mpi_core_mla #2185: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1":"0" - -mbedtls_mpi_core_mla #2186: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0" - -mbedtls_mpi_core_mla #2187: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71, carry 0x0)/(0x1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71":"0":"1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71":"0" - -mbedtls_mpi_core_mla #2188: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #2189: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2":"0" - -mbedtls_mpi_core_mla #2190: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2191: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0":"0" - -mbedtls_mpi_core_mla #2192: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0":"0" - -mbedtls_mpi_core_mla #2193: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0":"0" - -mbedtls_mpi_core_mla #2194: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0":"0" - -mbedtls_mpi_core_mla #2195: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0":"0" - -mbedtls_mpi_core_mla #2196: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0" - -mbedtls_mpi_core_mla #2197: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2198: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0":"0" - -mbedtls_mpi_core_mla #2199: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"8000000000000000":"1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2200: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0":"0" - -mbedtls_mpi_core_mla #2201: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2202: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0":"0" - -mbedtls_mpi_core_mla #2203: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0":"0" - -mbedtls_mpi_core_mla #2204: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0":"0" - -mbedtls_mpi_core_mla #2205: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0":"0" - -mbedtls_mpi_core_mla #2206: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2207: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0":"0" - -mbedtls_mpi_core_mla #2208: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"100000000":"1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2209: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0":"0":"1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0":"0" - -mbedtls_mpi_core_mla #2210: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2211: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0":"0" - -mbedtls_mpi_core_mla #2212: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2213: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"3":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed":"0":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed":"0" - -mbedtls_mpi_core_mla #2214: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fe":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2":"0" - -mbedtls_mpi_core_mla #2215: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1":"0":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1":"0" - -mbedtls_mpi_core_mla #2216: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffff":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1":"0":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1":"0" - -mbedtls_mpi_core_mla #2217: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"10000":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0":"0" - -mbedtls_mpi_core_mla #2218: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffffffff":"1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1":"0" - -mbedtls_mpi_core_mla #2219: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0":"0" - -mbedtls_mpi_core_mla #2220: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71, carry 0x0)/(0x1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0" - -mbedtls_mpi_core_mla #2221: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #2222: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2":"0":"1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2":"0" - -mbedtls_mpi_core_mla #2223: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2224: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2225: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2226: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2227: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2228: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"10000":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2229: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2230: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"100000000":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2231: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2232: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2233: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2234: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2235: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #2236: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110":"0":"1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110":"0" - -mbedtls_mpi_core_mla #2237: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000":"0":"1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000":"0" - -mbedtls_mpi_core_mla #2238: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000":"0" - -mbedtls_mpi_core_mla #2239: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #2240: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffffffff":"1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000":"0":"1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000":"0" - -mbedtls_mpi_core_mla #2241: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #2242: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800, carry 0x0)/(0x1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800":"0":"1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800":"0" - -mbedtls_mpi_core_mla #2243: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"8000000000000000":"1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2244: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110, carry 0x0)/(0x1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110":"0":"1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110":"0" - -mbedtls_mpi_core_mla #2245: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2246: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea, carry 0x0)/(0x1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea":"0":"1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea":"0" - -mbedtls_mpi_core_mla #2247: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4, carry 0x0)/(0x1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4":"0":"1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4":"0" - -mbedtls_mpi_core_mla #2248: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0x1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2, carry 0x0)/(0x1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2":"0":"1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2":"0" - -mbedtls_mpi_core_mla #2249: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0x1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2, carry 0x0)/(0x1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2":"0":"1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2":"0" - -mbedtls_mpi_core_mla #2250: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0x1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0, carry 0x0)/(0x1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0":"0":"1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0":"0" - -mbedtls_mpi_core_mla #2251: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0x1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2, carry 0x0)/(0x1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2":"0":"1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2":"0" - -mbedtls_mpi_core_mla #2252: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0x1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0, carry 0x0)/(0x1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0":"0":"1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0":"0" - -mbedtls_mpi_core_mla #2253: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2, carry 0x0)/(0x1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2":"0":"1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2":"0" - -mbedtls_mpi_core_mla #2254: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0x1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0, carry 0x0)/(0x1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0":"0":"1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2255: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0x1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4, carry 0x0)/(0x1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4":"0":"1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4":"0" - -mbedtls_mpi_core_mla #2256: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2257: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 = (0x1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"3":"1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2258: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe = (0x1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fe":"1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2259: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff = (0x1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ff":"1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2260: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff = (0x1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffff":"1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2261: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 = (0x1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"10000":"1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2262: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff = (0x1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2263: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 = (0x1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2264: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0":"0":"1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2265: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2266: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0x1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0":"0":"1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2267: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2268: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0, carry 0x0)/(0x1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0":"0":"1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #2269: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110, carry 0x0)/(0x1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110":"0":"1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #2270: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000, carry 0x0)/(0x1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000":"0" - -mbedtls_mpi_core_mla #2271: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #2272: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #2273: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000, carry 0x0)/(0x1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000":"0":"1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #2274: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0, carry 0x0)/(0x1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0":"0":"1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #2275: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800, carry 0x0)/(0x1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800":"0":"1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800":"0" - -mbedtls_mpi_core_mla #2276: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0, carry 0x0)/(0x1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"0":"1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2277: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0x1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x0)/(0x1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110":"0":"1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110":"0" - -mbedtls_mpi_core_mla #2278: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2279: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed, carry 0x0)/(0x1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"0":"1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"0" - -mbedtls_mpi_core_mla #2280: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2, carry 0x0)/(0x1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"0":"1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"0" - -mbedtls_mpi_core_mla #2281: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1, carry 0x0)/(0x1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"0":"1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"0" - -mbedtls_mpi_core_mla #2282: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1, carry 0x0)/(0x11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"0":"11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"0" - -mbedtls_mpi_core_mla #2283: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0, carry 0x0)/(0x11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"0":"11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"0" - -mbedtls_mpi_core_mla #2284: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1, carry 0x1)/(0x100001233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"1":"100001233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"0" - -mbedtls_mpi_core_mla #2285: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0, carry 0x1)/(0x100001234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"1":"100001234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"0" - -mbedtls_mpi_core_mla #2286: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f":"7f7f7f7f7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71":"0" - -mbedtls_mpi_core_mla #2287: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0, carry 0x80000000)/(0x8000000000001234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"80000000":"8000000000001234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #2288: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2, carry 0x100000000)/(0x1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"100000000":"1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"1" - -mbedtls_mpi_core_mla #2289: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2290: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0, carry 0x0)/(0x48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0":"0":"48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #2291: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #2292: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000":"0" - -mbedtls_mpi_core_mla #2293: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #2294: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0, carry 0x0)/(0x123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0":"0":"123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #2295: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #2296: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x5678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0, carry 0x1234)/(0x12345678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"5678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0":"1234":"12345678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #2297: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800, carry 0x91107edbd82)/(0x7edbd82bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800":"91107edbd82":"7edbd82bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800":"911" - -mbedtls_mpi_core_mla #2298: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0, carry 0x91a2b3c4855)/(0x2b3c4855e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"91a" - -mbedtls_mpi_core_mla #2299: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234567890ab)/(0x567890abcdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110":"1234567890ab":"567890abcdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110":"1234" - -mbedtls_mpi_core_mla #2300: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2301: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271":"0" - -mbedtls_mpi_core_mla #2302: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a":"0" - -mbedtls_mpi_core_mla #2303: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5":"0" - -mbedtls_mpi_core_mla #2304: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5":"0" - -mbedtls_mpi_core_mla #2305: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0":"0" - -mbedtls_mpi_core_mla #2306: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5, carry 0x4) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5":"4" - -mbedtls_mpi_core_mla #2307: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0":"4" - -mbedtls_mpi_core_mla #2308: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845":"26d473ca9" - -mbedtls_mpi_core_mla #2309: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0":"26fb9683d" - -mbedtls_mpi_core_mla #2310: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a":"4df72d07b" - -mbedtls_mpi_core_mla #2311: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2312: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2313: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2314: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2315: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2316: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2317: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2318: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2319: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2320: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2321: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2322: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2323: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":"0" - -mbedtls_mpi_core_mla #2324: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":"0" - -mbedtls_mpi_core_mla #2325: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":"0" - -mbedtls_mpi_core_mla #2326: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":"0" - -mbedtls_mpi_core_mla #2327: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":"0" - -mbedtls_mpi_core_mla #2328: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":"0" - -mbedtls_mpi_core_mla #2329: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":"0" - -mbedtls_mpi_core_mla #2330: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa":"0" - -mbedtls_mpi_core_mla #2331: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2332: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":"0" - -mbedtls_mpi_core_mla #2333: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2334: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125":"0" - -mbedtls_mpi_core_mla #2335: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f":"0" - -mbedtls_mpi_core_mla #2336: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d":"0" - -mbedtls_mpi_core_mla #2337: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d":"0" - -mbedtls_mpi_core_mla #2338: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b":"0" - -mbedtls_mpi_core_mla #2339: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d":"0" - -mbedtls_mpi_core_mla #2340: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b":"0" - -mbedtls_mpi_core_mla #2341: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d":"0" - -mbedtls_mpi_core_mla #2342: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2343: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f":"0" - -mbedtls_mpi_core_mla #2344: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2345: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128":"0" - -mbedtls_mpi_core_mla #2346: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d":"0" - -mbedtls_mpi_core_mla #2347: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c":"0" - -mbedtls_mpi_core_mla #2348: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c":"0" - -mbedtls_mpi_core_mla #2349: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b":"0" - -mbedtls_mpi_core_mla #2350: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c":"0" - -mbedtls_mpi_core_mla #2351: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0" - -mbedtls_mpi_core_mla #2352: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac":"0" - -mbedtls_mpi_core_mla #2353: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2354: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d":"0" - -mbedtls_mpi_core_mla #2355: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2356: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b":"0" - -mbedtls_mpi_core_mla #2357: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b":"0" - -mbedtls_mpi_core_mla #2358: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b":"0" - -mbedtls_mpi_core_mla #2359: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b":"0" - -mbedtls_mpi_core_mla #2360: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b":"0" - -mbedtls_mpi_core_mla #2361: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0" - -mbedtls_mpi_core_mla #2362: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2363: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b":"0" - -mbedtls_mpi_core_mla #2364: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2365: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b":"0" - -mbedtls_mpi_core_mla #2366: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2367: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b":"0" - -mbedtls_mpi_core_mla #2368: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2369: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2370: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2371: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2372: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2373: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2374: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2375: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2376: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2377: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2378: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128":"0" - -mbedtls_mpi_core_mla #2379: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d":"0" - -mbedtls_mpi_core_mla #2380: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c":"0" - -mbedtls_mpi_core_mla #2381: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c":"0" - -mbedtls_mpi_core_mla #2382: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b":"0" - -mbedtls_mpi_core_mla #2383: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c":"0" - -mbedtls_mpi_core_mla #2384: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b":"0" - -mbedtls_mpi_core_mla #2385: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac":"0" - -mbedtls_mpi_core_mla #2386: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2387: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d":"0" - -mbedtls_mpi_core_mla #2388: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2389: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2390: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2391: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2392: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2393: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2394: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2395: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2396: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2397: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2398: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2399: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2400: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb":"0" - -mbedtls_mpi_core_mla #2401: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b":"0" - -mbedtls_mpi_core_mla #2402: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b":"0" - -mbedtls_mpi_core_mla #2403: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b":"0" - -mbedtls_mpi_core_mla #2404: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b":"0" - -mbedtls_mpi_core_mla #2405: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b":"0" - -mbedtls_mpi_core_mla #2406: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b":"0" - -mbedtls_mpi_core_mla #2407: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b":"0" - -mbedtls_mpi_core_mla #2408: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2409: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b":"0" - -mbedtls_mpi_core_mla #2410: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2411: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25":"0" - -mbedtls_mpi_core_mla #2412: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f":"0" - -mbedtls_mpi_core_mla #2413: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d":"0" - -mbedtls_mpi_core_mla #2414: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d":"0" - -mbedtls_mpi_core_mla #2415: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b":"0" - -mbedtls_mpi_core_mla #2416: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d":"0" - -mbedtls_mpi_core_mla #2417: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b":"0" - -mbedtls_mpi_core_mla #2418: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d":"0" - -mbedtls_mpi_core_mla #2419: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2420: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f":"0" - -mbedtls_mpi_core_mla #2421: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2422: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2423: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2424: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2425: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2426: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2427: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2428: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2429: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2430: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2431: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2432: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2433: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb":"0" - -mbedtls_mpi_core_mla #2434: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b":"0" - -mbedtls_mpi_core_mla #2435: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b":"0" - -mbedtls_mpi_core_mla #2436: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b":"0" - -mbedtls_mpi_core_mla #2437: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0" - -mbedtls_mpi_core_mla #2438: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b":"0" - -mbedtls_mpi_core_mla #2439: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0" - -mbedtls_mpi_core_mla #2440: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b":"0" - -mbedtls_mpi_core_mla #2441: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2442: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b":"0" - -mbedtls_mpi_core_mla #2443: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2444: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"0" - -mbedtls_mpi_core_mla #2445: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"0" - -mbedtls_mpi_core_mla #2446: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"0" - -mbedtls_mpi_core_mla #2447: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"0" - -mbedtls_mpi_core_mla #2448: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"0" - -mbedtls_mpi_core_mla #2449: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"0" - -mbedtls_mpi_core_mla #2450: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"0" - -mbedtls_mpi_core_mla #2451: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac":"0" - -mbedtls_mpi_core_mla #2452: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2453: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"0" - -mbedtls_mpi_core_mla #2454: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2455: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb":"0" - -mbedtls_mpi_core_mla #2456: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b":"0" - -mbedtls_mpi_core_mla #2457: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b":"0" - -mbedtls_mpi_core_mla #2458: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b":"0" - -mbedtls_mpi_core_mla #2459: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0" - -mbedtls_mpi_core_mla #2460: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b":"0" - -mbedtls_mpi_core_mla #2461: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0" - -mbedtls_mpi_core_mla #2462: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b":"0" - -mbedtls_mpi_core_mla #2463: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2464: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b":"0" - -mbedtls_mpi_core_mla #2465: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2466: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0x137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac, carry 0x0)/(0x137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac":"0":"137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac":"0" - -mbedtls_mpi_core_mla #2467: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0" - -mbedtls_mpi_core_mla #2468: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00":"0" - -mbedtls_mpi_core_mla #2469: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0" - -mbedtls_mpi_core_mla #2470: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b, carry 0x0)/(0x4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b":"0":"4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b":"0" - -mbedtls_mpi_core_mla #2471: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000, carry 0x4) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4" - -mbedtls_mpi_core_mla #2472: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b, carry 0x4)/(0xdf72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b":"4":"df72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b":"4" - -mbedtls_mpi_core_mla #2473: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80, carry 0x26d473ca9)/(0xd441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80":"26d473ca9":"d441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80":"26d473ca9" - -mbedtls_mpi_core_mla #2474: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b, carry 0x26fb9683d)/(0xa5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b":"26fb9683d":"a5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b":"26fb9683d" - -mbedtls_mpi_core_mla #2475: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5, carry 0x4df72d07b)/(0x4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5":"4df72d07b":"4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5":"4df72d07b" - -mbedtls_mpi_montg_init #1 -mpi_montg_init:"000000000000001d":"cb08d3dcb08d3dcb" - -mbedtls_mpi_montg_init #2 -mpi_montg_init:"0000000000000009":"71c71c71c71c71c7" - -mbedtls_mpi_montg_init #3 -mpi_montg_init:"000000000001869f":"34d76bc8e5e3eaa1" - -mbedtls_mpi_montg_init #4 -mpi_montg_init:"00000000000080000000000000000001":"ffffffffffffffff" - -mbedtls_mpi_montg_init #5 -mpi_montg_init:"0000000000a1ffffffffffffffffffff":"0000000000000001" - -mbedtls_mpi_montg_init #6 -mpi_montg_init:"00000000000257ffffffffffffffffff":"0000000000000001" - -mbedtls_mpi_montg_init #7 -mpi_montg_init:"b91ba63180c726fbd57786f27f1ede97a3b40c59a7fcfb5898f076e9af57028d":"32edc7e1ac2e6fbb" - -mbedtls_mpi_montg_init #8 -mpi_montg_init:"b3a119602ee213cde28581ecd892e0f592a338655dce4ca88054b3d124d0e561":"e41cfb909805815f" - -mbedtls_mpi_montg_init #9 -mpi_montg_init:"0284139ea19c139ebe09a8111926aaa39a2c2be12ed487a809d3cb5bc55854725b4cdcb5734c58f90b2f60d99cc1950cdbc8d651793e93c9c6f0ead752500a32c56c62082912b66132b2a6aa42ada923e1ad22ceb7ba0123":"c02e2164b293c975" - -mbedtls_mpi_montg_init #10 -mpi_montg_init:"00000000000000011a9351d2d32ccd568e75bf8b4ebbb2a36be691b55832edac662ff79803df8af525fba453068be16ac3920bcc1b468f8f7fe786e0fa4ecbabcad31e5e3b05def802eb8600deaf11ef452487db878df20a80606e4bb6a163b83895d034cc8b53dbcd005be42ffdd2ce99bed06089a0b79d":"ffec8978c055794b" - -mbedtls_mpi_montg_init #11 -mpi_montg_init:"eeaf0ab9adb38dd69c33f80afa8fc5e86072618775ff3c0b9ea2314c9c256576d674df7496ea81d3383b4813d692c6e0e0d5d8e250b98be48e495c1d6089dad15dc7d7b46154d6b6ce8ef4ad69b15d4982559b297bcf1885c529f566660e57ec68edbc3c05726cc02fd4cbf4976eaa9afd5138fe8376435b9fc61d2fc0eb06e3":"7b07a0b0379b9135" - -mbedtls_mpi_montg_init #12 -mpi_montg_init:"00000007a364ab3de755f924642bd5273524234f78395da1ed9098f39af4fe248288b0cb7f1c27214588969479d7dc9f0d327b5544dd4c095aa1fa271df421fe9ee460855cc8423d223e2c85dc793f6babdca7fc804ea1f408f867db053bfd98c45085ea5d805c78d2863bacdfcaf4c6147ebb74a9056045074785714c0b84ed":"8f54b233c070871b" - -mbedtls_mpi_montg_init #13 -mpi_montg_init:"e2df85c83ee8463b3af26805791cc0b1ba1af89564e887a63d5ba18ea72fb593b664cf8ace78241ea3109b7644510e02324a5c1e9a85daada3c383759d7678ce8d8886b51a3237dc84b543de4f843c77fc77ba08ef90e7e96ba622478f6b96daa3e9b8511f36279fb0120ef93bad2090e7878346fe4ae29ad61be48b6835e8407d0849422e05c7a4d1e02322f2675056d73d4c5a1ab376bfaccfd61ff7d64b715c9525a7ed8dcda1144f8722c30d12ba3d95221d897edc825a1598a645e2c457":"b777a905d9239899" - -mbedtls_mpi_montg_init #14 -mpi_montg_init:"baea2d65939296fc2536f18f2a4042a741f33088ecd5000e76c67a466e7a1e696f8ee9a15497168b3a2b597799dc9475909ebbc64b96f233430c6aa3e4a86e9352b0230081502da09ef41dc0a164a1c6a31bd1338e359a28c78ef50c89f06a46b46a27d7245bba7468334625687201d62ef084de4c5190dfe70c14a318204492de6edd138e14e9337fda739dcadd0212302db7770de28d8c5c79b6a6b5f927e656e157cd7e41204ec39731fe3608ecd4b885a194647fe7f02b74639cc76cdf03":"827ef0810f71fc55" - -mbedtls_mpi_montg_init #15 -mpi_montg_init:"bf741f75e28a44e271cf43e68dbadd23c72d2f2e1fc78a6d6aaaadf2ccbf26c9a232aff5b3f3f29323b114f3018144ed9438943e07820e222137d3bb229b61671e61f75f6021a26436df9e669929fa392df021f105d2fce0717468a522018721ccde541b9a7b558128419f457ef33a5753f00c20c2d709727eef6278c55b278b10abe1d13e538514128b5dcb7bfd015e0fdcb081555071813974135d5ab5000630a94f5b0f4021a504ab4f3df2403e6140b9939f8bbe714635f5cff10744be03":"aab901da57bba355" - -mbedtls_mpi_core_montmul #1 (replay) -mpi_core_montmul:2:1:1:1:"19":"1":"1D":"18":"18" - -mbedtls_mpi_core_montmul #2 (replay) -mpi_core_montmul:2:1:1:1:"7":"1":"9":"1":"1" - -mbedtls_mpi_core_montmul #3 (replay) -mpi_core_montmul:2:1:1:1:"4":"1":"9":"7":"7" - -mbedtls_mpi_core_montmul #4 (replay) -mpi_core_montmul:12:1:6:1:"3C246D0E059A93A266288A7718419EC741661B474C58C032C5EDAF92709402B07CC8C7CE0B781C641A1EA8DB2F4343":"1":"66A198186C18C10B2F5ED9B522752A9830B69916E535C8F047518A889A43A594B6BED27A168D31D4A52F88925AA8F5":"36E139AEA55215609D2816998ED020BBBD96C37890F65171D948E9BC7CBAA4D9325D24D6A3C12710F10A09FA08AB87":"36E139AEA55215609D2816998ED020BBBD96C37890F65171D948E9BC7CBAA4D9325D24D6A3C12710F10A09FA08AB87" - -mbedtls_mpi_core_montmul #5 (replay) -mpi_core_montmul:8:1:4:1:"1E442976B0E63D64FCCE74B999E470CA9888165CB75BFA1F340E918CE03C6211":"1":"B3A119602EE213CDE28581ECD892E0F592A338655DCE4CA88054B3D124D0E561":"38EB7749F4A5DA80F23BC08FD0801C55B103B17A2EEF84E60E65383B59F8CA5B":"38EB7749F4A5DA80F23BC08FD0801C55B103B17A2EEF84E60E65383B59F8CA5B" - -mbedtls_mpi_core_montmul #6 (replay) -mpi_core_montmul:22:1:11:1:"7CF5AC97304E0B63C65413F57249F59994B0FED1D2A8D3D83ED5FA38560FFB82392870D6D08F87D711917FD7537E13B7E125BE407E74157776839B0AC9DB23CBDFC696104353E4D2780B2B4968F8D8542306BCA7A2366E":"1":"284139EA19C139EBE09A8111926AAA39A2C2BE12ED487A809D3CB5BC55854725B4CDCB5734C58F90B2F60D99CC1950CDBC8D651793E93C9C6F0EAD752500A32C56C62082912B66132B2A6AA42ADA923E1AD22CEB7BA0123":"1E4426A3D6C425F0630B14113BEAD742C92B02886267AB41F70C4CB2426AEE1FAACEC6982E0E5BE964ECA2527A031ED49C371DB2A4FB16482F3590C866BF9F81C3D52C7CB9E0BA6FF843ED3B17C44D7F6B14471839D8D31":"1E4426A3D6C425F0630B14113BEAD742C92B02886267AB41F70C4CB2426AEE1FAACEC6982E0E5BE964ECA2527A031ED49C371DB2A4FB16482F3590C866BF9F81C3D52C7CB9E0BA6FF843ED3B17C44D7F6B14471839D8D31" - -mbedtls_mpi_core_montmul #7 (gen) -mpi_core_montmul:1:1:1:1:"2":"2":"3":"1":"1" - -mbedtls_mpi_core_montmul #8 (gen) -mpi_core_montmul:1:1:1:1:"1":"2":"3":"2":"2" - -mbedtls_mpi_core_montmul #9 (gen) -mpi_core_montmul:1:1:1:1:"2":"1":"3":"2":"2" - -mbedtls_mpi_core_montmul #10 (gen) -mpi_core_montmul:1:1:1:1:"6":"5":"7":"4":"1" - -mbedtls_mpi_core_montmul #11 (gen) -mpi_core_montmul:1:1:1:1:"3":"4":"7":"3":"6" - -mbedtls_mpi_core_montmul #12 (gen) -mpi_core_montmul:1:1:1:1:"1":"6":"7":"5":"3" - -mbedtls_mpi_core_montmul #13 (gen) -mpi_core_montmul:1:1:1:1:"5":"6":"7":"4":"1" - -mbedtls_mpi_core_montmul #14 (gen) -mpi_core_montmul:1:1:1:1:"3":"4":"B":"3":"9" - -mbedtls_mpi_core_montmul #15 (gen) -mpi_core_montmul:1:1:1:1:"7":"4":"B":"7":"a" - -mbedtls_mpi_core_montmul #16 (gen) -mpi_core_montmul:1:1:1:1:"9":"7":"B":"2":"6" - -mbedtls_mpi_core_montmul #17 (gen) -mpi_core_montmul:1:1:1:1:"2":"a":"B":"5":"4" - -mbedtls_mpi_core_montmul #18 (gen) (0x29 is prime) -mpi_core_montmul:1:1:1:1:"25":"16":"29":"16":"f" - -mbedtls_mpi_core_montmul #19 (gen) -mpi_core_montmul:1:1:1:1:"8":"28":"29":"2":"14" - -mbedtls_mpi_core_montmul #20 (gen) -mpi_core_montmul:1:1:1:1:"18":"21":"29":"7":"1d" - -mbedtls_mpi_core_montmul #21 (gen) -mpi_core_montmul:1:1:1:1:"15":"f":"29":"22":"c" - -mbedtls_mpi_core_montmul #22 (gen) -mpi_core_montmul:1:1:1:1:"e2":"ea":"FF":"63":"63" - -mbedtls_mpi_core_montmul #23 (gen) -mpi_core_montmul:1:1:1:1:"43":"72":"FF":"f3":"f3" - -mbedtls_mpi_core_montmul #24 (gen) -mpi_core_montmul:1:1:1:1:"d8":"70":"FF":"de":"de" - -mbedtls_mpi_core_montmul #25 (gen) -mpi_core_montmul:1:1:1:1:"3c":"7c":"FF":"2d":"2d" - -mbedtls_mpi_core_montmul #26 (gen) (0x101 is prime) -mpi_core_montmul:1:1:1:1:"99":"b9":"101":"23":"23" - -mbedtls_mpi_core_montmul #27 (gen) -mpi_core_montmul:1:1:1:1:"65":"b2":"101":"f5":"f5" - -mbedtls_mpi_core_montmul #28 (gen) -mpi_core_montmul:1:1:1:1:"81":"32":"101":"19":"19" - -mbedtls_mpi_core_montmul #29 (gen) -mpi_core_montmul:1:1:1:1:"51":"dd":"101":"a8":"a8" - -mbedtls_mpi_core_montmul #30 (gen) (0x38B is prime) -mpi_core_montmul:1:1:1:1:"d5":"143":"38B":"313":"14f" - -mbedtls_mpi_core_montmul #31 (gen) -mpi_core_montmul:1:1:1:1:"3d":"387":"38B":"212":"19a" - -mbedtls_mpi_core_montmul #32 (gen) -mpi_core_montmul:1:1:1:1:"160":"2e5":"38B":"a5":"14d" - -mbedtls_mpi_core_montmul #33 (gen) -mpi_core_montmul:1:1:1:1:"10f":"137":"38B":"10f":"19f" - -mbedtls_mpi_core_montmul #34 (gen) (0x8003 is prime) -mpi_core_montmul:1:1:1:1:"7dac":"25a":"8003":"5fff":"29c8" - -mbedtls_mpi_core_montmul #35 (gen) -mpi_core_montmul:1:1:1:1:"6f1c":"3286":"8003":"245e":"79e9" - -mbedtls_mpi_core_montmul #36 (gen) -mpi_core_montmul:1:1:1:1:"59ed":"2f3f":"8003":"7008":"5874" - -mbedtls_mpi_core_montmul #37 (gen) -mpi_core_montmul:1:1:1:1:"6893":"736d":"8003":"3178":"f99" - -mbedtls_mpi_core_montmul #38 (gen) (0x10001 is prime) -mpi_core_montmul:1:1:1:1:"d199":"2832":"10001":"b6fa":"b6fa" - -mbedtls_mpi_core_montmul #39 (gen) -mpi_core_montmul:1:1:1:1:"c3b2":"3e5b":"10001":"7c9c":"7c9c" - -mbedtls_mpi_core_montmul #40 (gen) -mpi_core_montmul:1:1:1:1:"abe4":"214e":"10001":"ad1c":"ad1c" - -mbedtls_mpi_core_montmul #41 (gen) -mpi_core_montmul:1:1:1:1:"4360":"a05d":"10001":"4fac":"4fac" - -mbedtls_mpi_core_montmul #42 (gen) -mpi_core_montmul:1:1:1:1:"3f5a1":"165b2":"7F7F7":"63052":"71254" - -mbedtls_mpi_core_montmul #43 (gen) -mpi_core_montmul:1:1:1:1:"3bd29":"37863":"7F7F7":"34ff8":"40755" - -mbedtls_mpi_core_montmul #44 (gen) -mpi_core_montmul:1:1:1:1:"60c47":"64819":"7F7F7":"34967":"3a83e" - -mbedtls_mpi_core_montmul #45 (gen) -mpi_core_montmul:1:1:1:1:"16584":"12c49":"7F7F7":"283b9":"14991" - -mbedtls_mpi_core_montmul #46 (gen) (0x800009 is prime) -mpi_core_montmul:1:1:1:1:"1ff03f":"610347":"800009":"1cef09":"4e3e6a" - -mbedtls_mpi_core_montmul #47 (gen) -mpi_core_montmul:1:1:1:1:"340fd5":"19812e":"800009":"5c1fc2":"64ecb0" - -mbedtls_mpi_core_montmul #48 (gen) -mpi_core_montmul:1:1:1:1:"3fe2e8":"4d0dc7":"800009":"2c4c9f":"5112e5" - -mbedtls_mpi_core_montmul #49 (gen) -mpi_core_montmul:1:1:1:1:"40356":"e6392":"800009":"1dc356":"5661ed" - -mbedtls_mpi_core_montmul #50 (gen) (0x100002B is prime) -mpi_core_montmul:1:1:1:1:"dd8a1d":"266c0e":"100002B":"e6cfeb":"66b342" - -mbedtls_mpi_core_montmul #51 (gen) -mpi_core_montmul:1:1:1:1:"3fa1cb":"847fd6":"100002B":"5679d":"ea359c" - -mbedtls_mpi_core_montmul #52 (gen) -mpi_core_montmul:1:1:1:1:"5f439d":"5c3196":"100002B":"72985e":"89865b" - -mbedtls_mpi_core_montmul #53 (gen) -mpi_core_montmul:1:1:1:1:"18d645":"f72dc6":"100002B":"11807c":"442f44" - -mbedtls_mpi_core_montmul #54 (gen) (0x37EEE9D is prime) -mpi_core_montmul:1:1:1:1:"20051ad":"37def6e":"37EEE9D":"126b1f8":"639bef" - -mbedtls_mpi_core_montmul #55 (gen) -mpi_core_montmul:1:1:1:1:"2ec140b":"3580dbf":"37EEE9D":"182364a":"265b419" - -mbedtls_mpi_core_montmul #56 (gen) -mpi_core_montmul:1:1:1:1:"1d91b46":"190d4fc":"37EEE9D":"f501a4":"2c06311" - -mbedtls_mpi_core_montmul #57 (gen) -mpi_core_montmul:1:1:1:1:"34e488d":"1224d24":"37EEE9D":"3097def":"1c134c4" - -mbedtls_mpi_core_montmul #58 (gen) (0x8000000B is prime) -mpi_core_montmul:1:1:1:1:"2a4fe2cb":"263466a9":"8000000B":"2f7b2c6b":"551d4f77" - -mbedtls_mpi_core_montmul #59 (gen) -mpi_core_montmul:1:1:1:1:"5643fe94":"29a1aefa":"8000000B":"7f473a3d":"86615" - -mbedtls_mpi_core_montmul #60 (gen) -mpi_core_montmul:1:1:1:1:"29633513":"7b007ac4":"8000000B":"589a07cd":"d6d5cbe" - -mbedtls_mpi_core_montmul #61 (gen) -mpi_core_montmul:1:1:1:1:"2439cef5":"5c9d5a47":"8000000B":"77b1ca47":"691ad3ef" - -mbedtls_mpi_core_montmul #62 (gen) (0x8CD626B9 is prime) -mpi_core_montmul:1:1:1:1:"4de3cfaa":"50dea178":"8CD626B9":"5d6c70fe":"1017c1af" - -mbedtls_mpi_core_montmul #63 (gen) -mpi_core_montmul:1:1:1:1:"b8b8563":"10dbbbac":"8CD626B9":"1ebb1ae4":"3abf8696" - -mbedtls_mpi_core_montmul #64 (gen) -mpi_core_montmul:1:1:1:1:"4e8a6151":"5574ec19":"8CD626B9":"88c056da":"5ff76076" - -mbedtls_mpi_core_montmul #65 (gen) -mpi_core_montmul:1:1:1:1:"69224878":"309cfc23":"8CD626B9":"14f5037d":"2ab92db7" - -mbedtls_mpi_core_montmul #66 (gen) (start of 2-MPI 4-byte bignums) (0x10000000F is prime) -mpi_core_montmul:2:1:1:1:"fb6f7fb6":"afb05423":"10000000F":"1b61c4f8":"1b61c4f8" - -mbedtls_mpi_core_montmul #67 (gen) -mpi_core_montmul:2:1:1:1:"8391a243":"26034dcd":"10000000F":"c5d18a1f":"c5d18a1f" - -mbedtls_mpi_core_montmul #68 (gen) -mpi_core_montmul:2:1:1:1:"d26b98c":"14b2d6aa":"10000000F":"4e7fad06":"4e7fad06" - -mbedtls_mpi_core_montmul #69 (gen) -mpi_core_montmul:2:1:1:1:"6b9f1371":"a21daf1d":"10000000F":"c6b6f98b":"c6b6f98b" - -mbedtls_mpi_core_montmul #70 (gen) 0x174876E7E9 is prime (dec) 99999999977 -mpi_core_montmul:2:2:1:1:"9f49435ad":"c8264ade8":"174876E7E9":"6f386b4ce":"6f386b4ce" - -mbedtls_mpi_core_montmul #71 (gen) -mpi_core_montmul:2:2:1:1:"c402da434":"1fb427acf":"174876E7E9":"271c9b457":"271c9b457" - -mbedtls_mpi_core_montmul #72 (gen) -mpi_core_montmul:2:2:1:1:"f6ebc2bb1":"1096d39f2a":"174876E7E9":"78a3ebdad":"78a3ebdad" - -mbedtls_mpi_core_montmul #73 (gen) -mpi_core_montmul:2:2:1:1:"153b7f7b6b":"878fda8ff":"174876E7E9":"81843925c":"81843925c" - -mbedtls_mpi_core_montmul #74 (gen) (0x8000000017 is prime) -mpi_core_montmul:2:2:1:1:"2c1adbb8d6":"4384d2d3c6":"8000000017":"7ee47165db":"7ee47165db" - -mbedtls_mpi_core_montmul #75 (gen) -mpi_core_montmul:2:2:1:1:"2e4f9cf5fb":"794f3443d9":"8000000017":"79446995ec":"79446995ec" - -mbedtls_mpi_core_montmul #76 (gen) -mpi_core_montmul:2:2:1:1:"149e495582":"3802b8f7b7":"8000000017":"1e4ef00e22":"1e4ef00e22" - -mbedtls_mpi_core_montmul #77 (gen) -mpi_core_montmul:2:2:1:1:"7b9d49df82":"69c68a442a":"8000000017":"74dee0f58a":"74dee0f58a" - -mbedtls_mpi_core_montmul #78 (gen) (0x864CB9076D is prime) -mpi_core_montmul:2:2:1:1:"683a134600":"6dd80ea9f6":"864CB9076D":"5c3f421e55":"5c3f421e55" - -mbedtls_mpi_core_montmul #79 (gen) -mpi_core_montmul:2:2:1:1:"13a870ff0d":"59b099694a":"864CB9076D":"615b45edcf":"615b45edcf" - -mbedtls_mpi_core_montmul #80 (gen) -mpi_core_montmul:2:2:1:1:"37d06b0e63":"4d2147e46f":"864CB9076D":"6e47e78c45":"6e47e78c45" - -mbedtls_mpi_core_montmul #81 (gen) -mpi_core_montmul:2:2:1:1:"661714f8f4":"22e55df507":"864CB9076D":"63f7b7766d":"63f7b7766d" - -mbedtls_mpi_core_montmul #82 (gen) -mpi_core_montmul:2:2:1:1:"2f0a96363":"52693307b4":"F7F7F7F7F7":"99e7b7a2f6":"99e7b7a2f6" - -mbedtls_mpi_core_montmul #83 (gen) -mpi_core_montmul:2:2:1:1:"3c85078e64":"f2275ecb6d":"F7F7F7F7F7":"5b30b7ecd8":"5b30b7ecd8" - -mbedtls_mpi_core_montmul #84 (gen) -mpi_core_montmul:2:2:1:1:"352dae68d1":"707775b4c6":"F7F7F7F7F7":"922215581":"922215581" - -mbedtls_mpi_core_montmul #85 (gen) -mpi_core_montmul:2:2:1:1:"37ae0f3e0b":"912113040f":"F7F7F7F7F7":"9724ae9827":"9724ae9827" - -mbedtls_mpi_core_montmul #86 (gen) (0x1000000000F is prime) -mpi_core_montmul:2:2:1:1:"6dada15e31":"f58ed9eff7":"1000000000F":"a11a0b6bd4":"a11a0b6bd4" - -mbedtls_mpi_core_montmul #87 (gen) -mpi_core_montmul:2:2:1:1:"69627a7c89":"cfb5ebd13d":"1000000000F":"bdd403e1e8":"bdd403e1e8" - -mbedtls_mpi_core_montmul #88 (gen) -mpi_core_montmul:2:2:1:1:"a5e1ad239b":"afc030c731":"1000000000F":"d9159b287c":"d9159b287c" - -mbedtls_mpi_core_montmul #89 (gen) -mpi_core_montmul:2:2:1:1:"f1cc45f4c5":"c64ad607c8":"1000000000F":"fdaa868e":"fdaa868e" - -mbedtls_mpi_core_montmul #90 (gen) (0x800000000005 is prime) -mpi_core_montmul:2:2:1:1:"2ebad87d2e31":"4c72d90bca78":"800000000005":"102277c75b46":"102277c75b46" - -mbedtls_mpi_core_montmul #91 (gen) -mpi_core_montmul:2:2:1:1:"a30b3cc50d":"29ac4fe59490":"800000000005":"7a0bb5e477ca":"7a0bb5e477ca" - -mbedtls_mpi_core_montmul #92 (gen) -mpi_core_montmul:2:2:1:1:"33674e9647b4":"5ec7ee7e72d3":"800000000005":"431f6a298b9f":"431f6a298b9f" - -mbedtls_mpi_core_montmul #93 (gen) -mpi_core_montmul:2:2:1:1:"3d956f474f61":"74070040257d":"800000000005":"1bf1cc423f85":"1bf1cc423f85" - -mbedtls_mpi_core_montmul #94 (gen) (0x800795D9BA47 is prime) -mpi_core_montmul:2:2:1:1:"48348e3717d6":"43fcb4399571":"800795D9BA47":"be7aa205fdd":"be7aa205fdd" - -mbedtls_mpi_core_montmul #95 (gen) -mpi_core_montmul:2:2:1:1:"5234c03cc99b":"2f3cccb87803":"800795D9BA47":"38c915c43e15":"38c915c43e15" - -mbedtls_mpi_core_montmul #96 (gen) -mpi_core_montmul:2:2:1:1:"3ed13db194ab":"44b8f4ba7030":"800795D9BA47":"37052e8c2720":"37052e8c2720" - -mbedtls_mpi_core_montmul #97 (gen) -mpi_core_montmul:2:2:1:1:"1c11e843bfdb":"95bd1b47b08":"800795D9BA47":"57783cead5bc":"57783cead5bc" - -mbedtls_mpi_core_montmul #98 (gen) (0x1000000000015 is prime) -mpi_core_montmul:2:2:1:1:"a81d11cb81fd":"1e5753a3f33d":"1000000000015":"1524843bbe60":"1524843bbe60" - -mbedtls_mpi_core_montmul #99 (gen) -mpi_core_montmul:2:2:1:1:"688c4db99232":"36fc0cf7ed":"1000000000015":"d987f015f9c8":"d987f015f9c8" - -mbedtls_mpi_core_montmul #100 (gen) -mpi_core_montmul:2:2:1:1:"f0720cc07e07":"fc76140ed903":"1000000000015":"c0a15846d9ab":"c0a15846d9ab" - -mbedtls_mpi_core_montmul #101 (gen) -mpi_core_montmul:2:2:1:1:"2ec61f8d17d1":"d270c85e36d2":"1000000000015":"b25b655a6234":"b25b655a6234" - -mbedtls_mpi_core_montmul #102 (gen) (0x100000000000051 is prime) -mpi_core_montmul:2:2:1:1:"6a24cd3ab63820":"ed4aad55e5e348":"100000000000051":"f4fb80f56821d9":"f4fb80f56821d9" - -mbedtls_mpi_core_montmul #103 (gen) -mpi_core_montmul:2:2:1:1:"e680c160d3b248":"31e0d8840ed510":"100000000000051":"aa5e1c3bb30ab8":"aa5e1c3bb30ab8" - -mbedtls_mpi_core_montmul #104 (gen) -mpi_core_montmul:2:2:1:1:"a80637e9aebc38":"bb81decc4e1738":"100000000000051":"14a17c662fb3fd":"14a17c662fb3fd" - -mbedtls_mpi_core_montmul #105 (gen) -mpi_core_montmul:2:2:1:1:"9afa5a59e9d630":"be9e65a6d42938":"100000000000051":"1fa880b76c7bbf":"1fa880b76c7bbf" - -mbedtls_mpi_core_montmul #106 (gen) -mpi_core_montmul:2:2:1:1:"ab5e104eeb71c000":"2cffbd639e9fea00":"ABCDEF0123456789":"a7bd05d2ad72bbac":"a7bd05d2ad72bbac" - -mbedtls_mpi_core_montmul #107 (gen) -mpi_core_montmul:2:2:1:1:"197b867547f68a00":"44b796cf94654800":"ABCDEF0123456789":"94683e1ac1068cfc":"94683e1ac1068cfc" - -mbedtls_mpi_core_montmul #108 (gen) -mpi_core_montmul:2:2:1:1:"329f9483a04f2c00":"9892f76961d0f000":"ABCDEF0123456789":"12ca7ba6189f5080":"12ca7ba6189f5080" - -mbedtls_mpi_core_montmul #109 (gen) -mpi_core_montmul:2:2:1:1:"4a2e12dfb4545000":"1aa3e89a69794500":"ABCDEF0123456789":"591fced0c97f7916":"591fced0c97f7916" - -mbedtls_mpi_core_montmul #110 (gen) (start of 2-MPI 8-byte bignums) 0x25A55A46E5DA99C71C7 is the 3rd repunit prime (dec) 11111111111111111111111 -mpi_core_montmul:3:3:2:2:"8b9acdf013d140f000":"12e4ceaefabdf2b2f00":"25A55A46E5DA99C71C7":"145e13d825f558e1528":"5965c1bea1c065c1f9" - -mbedtls_mpi_core_montmul #111 (gen) -mpi_core_montmul:3:3:2:2:"1b8d960ea277e3f5500":"14418aa980e37dd000":"25A55A46E5DA99C71C7":"3296eca7d29742119d":"e62a0288b09791369c" - -mbedtls_mpi_core_montmul #112 (gen) -mpi_core_montmul:3:3:2:2:"7314524977e8075980":"8172fa45618ccd0d80":"25A55A46E5DA99C71C7":"16ce65e208c75d6959b":"20f256de8b8761f07a1" - -mbedtls_mpi_core_montmul #113 (gen) -mpi_core_montmul:3:3:2:2:"ca14f031769be63580":"147a2f3cf2964ca9400":"25A55A46E5DA99C71C7":"1b33a89ac4a750a245d":"209a484f1216347030" - -mbedtls_mpi_core_montmul #114 (gen) 0x314DC643FB763F2B8C0E2DE00879 is (dec)99999999977^3 -mpi_core_montmul:4:4:2:2:"18532ba119d5cd0cf39735c0000":"25f9838e31634844924733000000":"314DC643FB763F2B8C0E2DE00879":"e7b248b17e952a3b5bf96467c9e":"e7b248b17e952a3b5bf96467c9e" - -mbedtls_mpi_core_montmul #115 (gen) -mpi_core_montmul:4:4:2:2:"a56e2d2517519e3970e70c40000":"ec27428d4bb380458588fa80000":"314DC643FB763F2B8C0E2DE00879":"26c158897a56747970ce53723ab0":"26c158897a56747970ce53723ab0" - -mbedtls_mpi_core_montmul #116 (gen) -mpi_core_montmul:4:4:2:2:"1cb5e8257710e8653fff33a00000":"15fdd42fe440fd3a1d121380000":"314DC643FB763F2B8C0E2DE00879":"2bbf68c08200acd799df33fb6cf3":"2bbf68c08200acd799df33fb6cf3" - -mbedtls_mpi_core_montmul #117 (gen) -mpi_core_montmul:4:4:2:2:"e50d07a65fc6f93e538ce040000":"1f4b059ca609f3ce597f61240000":"314DC643FB763F2B8C0E2DE00879":"27ce5f2c1819fe02f4335558de21":"27ce5f2c1819fe02f4335558de21" - -mbedtls_mpi_core_montmul #118 (gen) 0x47BF19662275FA2F6845C74942ED1D852E521 is (dec) 99999999977^4 -mpi_core_montmul:5:5:3:3:"1ea3ade786a095d978d387f30df9f20000000":"127c448575f04af5a367a7be06c7da0000000":"47BF19662275FA2F6845C74942ED1D852E521":"42c40f627a678ddf5ba6f27baedae85022b83":"24ee52f9383c9213f6641ca1a1293f6c90c28" - -mbedtls_mpi_core_montmul #119 (gen) -mpi_core_montmul:5:5:3:3:"16e15b0ca82764e72e38357b1f10a20000000":"43e2355d8514bbe22b0838fdc3983a0000000":"47BF19662275FA2F6845C74942ED1D852E521":"2cfd2125bb4d48f9d38a1d1dc9e546463eb62":"c96be8fa4c2a1981847403e0c45da464ea83" - -mbedtls_mpi_core_montmul #120 (gen) -mpi_core_montmul:5:5:3:3:"be39332529d93f25c3d116c004c620000000":"5cccec42370a0a2c89c6772da801a0000000":"47BF19662275FA2F6845C74942ED1D852E521":"29081a3513837bdb55dfdab9de4d31dfe4bc4":"1b543f0226cdc674fc60c0822d275954530cf" - -mbedtls_mpi_core_montmul #121 (gen) -mpi_core_montmul:5:5:3:3:"ecaa468d90de0eeda474d39b3e1fc0000000":"1e714554018de6dc0fe576bfd3b5660000000":"47BF19662275FA2F6845C74942ED1D852E521":"18eb78f9fe89aaf4f32968af4d64627be81fe":"439b0325171f87ba20ddf220d61bc0f1e5865" - -mbedtls_mpi_core_montmul #122 (gen) 0x97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931 is (dec) 99999999977^6 -mpi_core_montmul:7:7:4:4:"32298816711c5dce46f9ba06e775c4bedfc770e6700000000000000":"8ee751fd5fb24f0b4a653cb3a0c8b7d9e724574d168000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"d20edd4f6c266489796ac74b96dde9bdffcb5131de686f9cac736c":"496a11382c5396c40b8e146b31fd98b8bc53648f93d04ff21b31725" - -mbedtls_mpi_core_montmul #123 (gen) -mpi_core_montmul:7:7:4:4:"29213b9df3cfd15f4b428645b67b677c29d1378d810000000000000":"6cbb732c65e10a28872394dfdd1936d5171c3c3aac0000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"29b3e797ff5104e01323f855aaccdbe9740facd77c04abda1c52bd5":"602b40d7c1feff4cfa2d4061046e4178c38e51172a5ca4326ebbb80" - -mbedtls_mpi_core_montmul #124 (gen) -mpi_core_montmul:7:7:4:4:"6f18db06ad4abc52c0c50643dd13098abccd4a232f0000000000000":"7e6bf41f2a86098ad51f98dfc10490ba3e8081bc830000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"74c0a781f976ae0781fa4c408f3aca6290ed7c926ea4972d8cbd00e":"1134ccaea14ab4de865b0abce56638d4ca1e948d963389003cdcf5a" - -mbedtls_mpi_core_montmul #125 (gen) -mpi_core_montmul:7:7:4:4:"62d3286cd706ad9d73caff63f1722775d7e8c731208000000000000":"530f7ba02ae2b04c2fe3e3d27ec095925631a6c2528000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"40e7f208928702cdfd45a1e085668af52f634d7ca0db34dfb161fc5":"8510d78927c62b26f1965ce5f2d6b5978566b608bfdd02dfb450d43" - -mbedtls_mpi_core_montmul #126 (gen) 0xDD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499 is (dec) 99999999977^7 -mpi_core_montmul:8:8:4:4:"a6c6503e3c031fdbf6009a89ed60582b7233c5a85de28b16000000000000000":"75c8ed18270b583f16d442a467d32bf95c5e491e9b8523798000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"73cdf58f541b4a4b200d163b82d60488207147401ce5e9e87e4c8743734fc115":"73cdf58f541b4a4b200d163b82d60488207147401ce5e9e87e4c8743734fc115" - -mbedtls_mpi_core_montmul #127 (gen) -mpi_core_montmul:8:8:4:4:"bf84d1f85cf6b51e04d2c8f4ffd03532d852053cf99b387d4000000000000000":"397ba5a743c349f4f28bc583ecd5f06e0a25f9c6d98f09134000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"7aee85838cad05594c16c0f8dc37dcedbfc5cabd535243d1f6e9a72597421b16":"7aee85838cad05594c16c0f8dc37dcedbfc5cabd535243d1f6e9a72597421b16" - -mbedtls_mpi_core_montmul #128 (gen) -mpi_core_montmul:8:8:4:4:"6db11c3a4152ed1a2aa6fa34b0903ec82ea1b88908dcb482000000000000000":"ac8ac576a74ad6ca48f201bf89f77350ce86e821358d85920000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"543bb63086c17abcfb027fac0e173b0661225ce534fc035f4c571168704f3562":"543bb63086c17abcfb027fac0e173b0661225ce534fc035f4c571168704f3562" - -mbedtls_mpi_core_montmul #129 (gen) -mpi_core_montmul:8:8:4:4:"3001d96d7fe8b733f33687646fc3017e3ac417eb32e0ec708000000000000000":"925ddbdac4174e8321a48a32f79640e8cf7ec6f46ea235a80000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"9af46358ac6898dd3a4668f58748be748a93c45dae8309756a85c25f3370ea1e":"9af46358ac6898dd3a4668f58748be748a93c45dae8309756a85c25f3370ea1e" - -mbedtls_mpi_core_montmul #130 (gen) 0x141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41 is 99999999977^8 -mpi_core_montmul:10:10:5:5:"1029048755f2e60dd98c8de6d9989226b6bb4f0db8e46bd1939de560000000000000000000":"51bb7270b2e25cec0301a03e8275213bb6c2f6e6ec93d4d46d36ca0000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"bc135600e66e2f35482f257a39153e5a2313bb34fdf678a7768ef68baf4eb4af7950db678":"bc135600e66e2f35482f257a39153e5a2313bb34fdf678a7768ef68baf4eb4af7950db678" - -mbedtls_mpi_core_montmul #131 (gen) -mpi_core_montmul:10:10:5:5:"1c5337ff982b3ad6611257dbff5bbd7a9920ba2d4f5838a0cc681ce000000000000000000":"520c5d049ca4702031ba728591b665c4d4ccd3b2b86864d4c160fd2000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"a4041530bd752163a32ad6e21605d43621783491c739cc5b8426ed5c013c8f1874f4c33cf":"a4041530bd752163a32ad6e21605d43621783491c739cc5b8426ed5c013c8f1874f4c33cf" - -mbedtls_mpi_core_montmul #132 (gen) -mpi_core_montmul:10:9:5:5:"57074dfa00e42f6555bae624b7f0209f218adf57f73ed34ab0ff90c000000000000000000":"41eb14b6c07bfd3d1fe4f4a610c17cc44fcfcda695db040e011065000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"50035f4ad135181424da54e119e7b6c2d8563e4237d5c636457489fdcad2c98974f4d6986":"50035f4ad135181424da54e119e7b6c2d8563e4237d5c636457489fdcad2c98974f4d6986" - -mbedtls_mpi_core_montmul #133 (gen) -mpi_core_montmul:10:10:5:5:"d8ed7feed2fe855e6997ad6397f776158573d425031bf085a615784000000000000000000":"6f121dcd18c578ab5e229881006007bb6d319b179f11015fe958b9c000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"ec6c4ef84cdba8b8fb0e23834f954b74f695da3a7036afd2b8bda4cf1969a22a2703f4810":"ec6c4ef84cdba8b8fb0e23834f954b74f695da3a7036afd2b8bda4cf1969a22a2703f4810" - -mbedtls_mpi_core_montmul #134 (gen) 0x2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451 is (dec) 99999999977^10 -mpi_core_montmul:12:12:6:6:"2a462b156180ea5fe550d3758c764e06fae54e626b5f503265a09df76edbdfbfa1e6000000000000000000000000":"1136f41d1879fd4fb9e49e0943a46b6704d77c068ee237c3121f9071cfd3e6a00315800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"204e2ee5416bf5cdc9d983d92ec60d5df79e331272efa041f3cdb2a172361806ba048bd578108d717dd29c38dc1e":"204e2ee5416bf5cdc9d983d92ec60d5df79e331272efa041f3cdb2a172361806ba048bd578108d717dd29c38dc1e" - -mbedtls_mpi_core_montmul #135 (gen) -mpi_core_montmul:12:12:6:6:"c1ac3800dfb3c6954dea391d206200cf3c47f795bf4a5603b4cb88ae7e574de4740800000000000000000000000":"c0d16eda0549ede42fa0deb4635f7b7ce061fadea02ee4d85cba4c4f7096034193c800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"e61059c9d6aff1b0c8d1fae7c880b9491a7e8e7715283f9d27b17423c282ada6016362d610f7a2509c859b4e2c3":"e61059c9d6aff1b0c8d1fae7c880b9491a7e8e7715283f9d27b17423c282ada6016362d610f7a2509c859b4e2c3" - -mbedtls_mpi_core_montmul #136 (gen) -mpi_core_montmul:12:12:6:6:"19e45bb7633094d272588ad2e43bcb3ee341991c6731b6fa9d47c4018d7ce7bba5ee800000000000000000000000":"1e4f83166ae59f6b9cc8fd3e7677ed8bfc01bb99c98bd3eb084246b64c1e18c3365b800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"14dfcf79e82a33b504f887088c66d85abb43e4eb93ae643e6413a655c48fa6643fc9032c5e7dbfbb6291d707abc8":"14dfcf79e82a33b504f887088c66d85abb43e4eb93ae643e6413a655c48fa6643fc9032c5e7dbfbb6291d707abc8" - -mbedtls_mpi_core_montmul #137 (gen) -mpi_core_montmul:12:12:6:6:"1aa93395fad5f9b7f20b8f9028a054c0bb7c11bb8520e6a95e5a34f06cb70bcdd01a800000000000000000000000":"54b45afa5d4310192f8d224634242dd7dcfb342318df3d9bd37b4c614788ba13b8b000000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"1c56a73d8698564b51a42613a20c07f7fda723cbada776bebdb075b349a19b588345e9930dcf12178400d7fb32e6":"1c56a73d8698564b51a42613a20c07f7fda723cbada776bebdb075b349a19b588345e9930dcf12178400d7fb32e6" - -mbedtls_mpi_core_montmul #138 (gen) 0x8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051 is prime, (dec) 10^143 + 3^4 -mpi_core_montmul:15:15:8:8:"544f2628a28cfb5ce0a1b7180ee66b49716f1d9476c466c57f0c4b2308991784306d48f78686115ee19e25400000000000000000000000000000000":"677eb31ef8d66c120fa872a60cd47f6e10cbfdf94f90501bd7883cba03d185be0a0148d1625745e9c4c827300000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"1c17879ba8ffaf6e01f145b954e6f2d1da9b5e91b0cd41324228e0da4e2d8c8b7de9be8533452f0420d1c21e2b91ce6a47be8a154b70ab8e3afa0e2":"45d5439e49004056f25a7af76fa1fa0b2f41c6ac4da7d960f3c8619eabafe0f9637e4d0551442a732d4bc3832e01c21e2b91ce6a47be8a154b70ae4" - -mbedtls_mpi_core_montmul #139 (gen) -mpi_core_montmul:15:15:8:8:"76bb3470985174915e9993522aec989666908f9e8cf5cb9f037bf4aee33d8865cb6464174795d07e30015b80000000000000000000000000000000":"6aaaf60d5784dcef612d133613b179a317532ecca0eed40b8ad0c01e6d4a6d8c79a52af190abd51739009a900000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"10676de6ef5976bb3d0e91e01ad3de619c1c4d60644c38d061da315f0d11f81a961a8fe63625bb4ccd9f963765a89f46e88c73fc02d8f16af74bef5":"2f7c4c22707c864397f9905b3f7f6a558cd793e56bda9a594600a895b62581d391c9f98b91e9ef02b94c9befa097963765a89f46e88c73fc02d8f34" - -mbedtls_mpi_core_montmul #140 (gen) -mpi_core_montmul:15:15:8:8:"6cfdd6e60912e441d2d1fc88f421b533f0103a5322ccd3f4db84861643ad63fd63d1d8cfbc1d498162786ba00000000000000000000000000000000":"1177246ec5e93814816465e7f8f248b350d954439d35b2b5d75d917218e7fd5fb4c2f6d0667f9467fdcf33400000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"485cca6586b0540eceb3ef8644bd400f3c32a9e38dfe4f4513945895808d648cfa45a3a2e9691b6111ddef29103fa8981dd8a3bbc52c9b768034ac5":"43603ad0efccbc0db5981c2cc75573d32dc0c0d94a8a2f6a67bb003e769f421626e68bdf1ff7d809a8b9ebddc055ef29103fa8981dd8a3bbc52c9e1" - -mbedtls_mpi_core_montmul #141 (gen) -mpi_core_montmul:15:15:8:8:"7a09a0b0f8bbf8057116fb0277a9bdf3a91b5eaa8830d448081510d8973888be5a9f0ad04facb69aa3715f00000000000000000000000000000000":"764dec6c05a1c0d87b649efa5fd94c91ea28bffb4725d4ab4b33f1a3e8e3b314d799020e244a835a145ec9800000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"36a534b574adac80dfea3dabdf0a8c95f47511ff202eab325e5a6edfb7e3ab28ddc15b2f6023240939ba5b7339f7ada7225376a817263464cfba89d":"7a9f42a7ed20ab041b748b5594d63e5aa5c890cd88826a4120bec4c43a90bfb8c7f78ad9cd91756a5f0f5a9154725b7339f7ada7225376a81726392" MPI Selftest depends_on:MBEDTLS_SELF_TEST diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index b699f9c046..6d046f1965 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1,7 +1,6 @@ /* BEGIN_HEADER */ #include "mbedtls/bignum.h" #include "mbedtls/entropy.h" -#include "bignum_core.h" #include "bignum_mod.h" #include "bignum_mod_raw.h" #include "constant_time_internal.h" @@ -201,149 +200,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ -void mpi_core_io_null() -{ - mbedtls_mpi_uint X = 0; - int ret; - - ret = mbedtls_mpi_core_read_be( &X, 1, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - ret = mbedtls_mpi_core_write_be( &X, 1, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - - ret = mbedtls_mpi_core_read_be( NULL, 0, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - ret = mbedtls_mpi_core_write_be( NULL, 0, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - - ret = mbedtls_mpi_core_read_le( &X, 1, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - ret = mbedtls_mpi_core_write_le( &X, 1, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - - ret = mbedtls_mpi_core_read_le( NULL, 0, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - ret = mbedtls_mpi_core_write_le( NULL, 0, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - -exit: - ; -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_core_io_be( data_t *input, int nb_int, int nx_32_int, int iret, - int oret ) -{ - if( iret != 0 ) - TEST_ASSERT( oret == 0 ); - - TEST_LE_S( 0, nb_int ); - size_t nb = nb_int; - - unsigned char buf[1024]; - TEST_LE_U( nb, sizeof( buf ) ); - - /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need - * to halve the number of limbs to have the same size. */ - size_t nx; - TEST_LE_S( 0, nx_32_int ); - if( sizeof( mbedtls_mpi_uint ) == 8 ) - nx = nx_32_int / 2 + nx_32_int % 2; - else - nx = nx_32_int; - - mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; - TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); - - int ret = mbedtls_mpi_core_read_be( X, nx, input->x, input->len ); - TEST_EQUAL( ret, iret ); - - if( iret == 0 ) - { - ret = mbedtls_mpi_core_write_be( X, nx, buf, nb ); - TEST_EQUAL( ret, oret ); - } - - if( ( iret == 0 ) && ( oret == 0 ) ) - { - if( nb > input->len ) - { - size_t leading_zeroes = nb - input->len; - TEST_ASSERT( memcmp( buf + nb - input->len, input->x, input->len ) == 0 ); - for( size_t i = 0; i < leading_zeroes; i++ ) - TEST_EQUAL( buf[i], 0 ); - } - else - { - size_t leading_zeroes = input->len - nb; - TEST_ASSERT( memcmp( input->x + input->len - nb, buf, nb ) == 0 ); - for( size_t i = 0; i < leading_zeroes; i++ ) - TEST_EQUAL( input->x[i], 0 ); - } - } - -exit: - ; -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_core_io_le( data_t *input, int nb_int, int nx_32_int, int iret, - int oret ) -{ - if( iret != 0 ) - TEST_ASSERT( oret == 0 ); - - TEST_LE_S( 0, nb_int ); - size_t nb = nb_int; - - unsigned char buf[1024]; - TEST_LE_U( nb, sizeof( buf ) ); - - /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need - * to halve the number of limbs to have the same size. */ - size_t nx; - TEST_LE_S( 0, nx_32_int ); - if( sizeof( mbedtls_mpi_uint ) == 8 ) - nx = nx_32_int / 2 + nx_32_int % 2; - else - nx = nx_32_int; - - mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; - TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); - - int ret = mbedtls_mpi_core_read_le( X, nx, input->x, input->len ); - TEST_EQUAL( ret, iret ); - - if( iret == 0 ) - { - ret = mbedtls_mpi_core_write_le( X, nx, buf, nb ); - TEST_EQUAL( ret, oret ); - } - - if( ( iret == 0 ) && ( oret == 0 ) ) - { - if( nb > input->len ) - { - TEST_ASSERT( memcmp( buf, input->x, input->len ) == 0 ); - for( size_t i = input->len; i < nb; i++ ) - TEST_EQUAL( buf[i], 0 ); - } - else - { - TEST_ASSERT( memcmp( input->x, buf, nb ) == 0 ); - for( size_t i = nb; i < input->len; i++ ) - TEST_EQUAL( input->x[i], 0 ); - } - } - -exit: - ; -} -/* END_CASE */ - /* BEGIN_CASE */ void mpi_mod_setup( int ext_rep, int int_rep, int iret ) { @@ -741,33 +597,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ -void mpi_core_lt_ct( char *input_X, char *input_Y, int exp_ret ) -{ - mbedtls_mpi_uint *X = NULL; - size_t X_limbs; - mbedtls_mpi_uint *Y = NULL; - size_t Y_limbs; - int ret; - - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &X_limbs, input_X ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &Y, &Y_limbs, input_Y ) ); - - /* We need two same-length limb arrays */ - TEST_EQUAL( X_limbs, Y_limbs ); - - TEST_CF_SECRET( X, X_limbs * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, X_limbs * sizeof( mbedtls_mpi_uint ) ); - - ret = mbedtls_mpi_core_lt_ct( X, Y, X_limbs ); - TEST_EQUAL( ret, exp_ret ); - -exit: - mbedtls_free( X ); - mbedtls_free( Y ); -} -/* END_CASE */ - /* BEGIN_CASE */ void mpi_core_cond_assign( data_t * input_X, data_t * input_Y, @@ -2035,457 +1864,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ -void mpi_core_add_if( char * input_A, char * input_B, - char * input_S4, int carry4, - char * input_S8, int carry8 ) -{ - mbedtls_mpi S4, S8, A, B; - mbedtls_mpi_uint *a = NULL; /* first value to add */ - mbedtls_mpi_uint *b = NULL; /* second value to add */ - mbedtls_mpi_uint *sum = NULL; - mbedtls_mpi_uint *d = NULL; /* destination - the in/out first operand */ - - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &B ); - mbedtls_mpi_init( &S4 ); - mbedtls_mpi_init( &S8 ); - - TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &S4, input_S4 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &S8, input_S8 ) ); - - /* We only need to work with one of (S4, carry4) or (S8, carry8) depending - * on sizeof(mbedtls_mpi_uint) - */ - mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &S4 : &S8; - mbedtls_mpi_uint carry = ( sizeof(mbedtls_mpi_uint) == 4 ) ? carry4 : carry8; - - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, A.s ); - TEST_EQUAL( 1, B.s ); - TEST_EQUAL( 1, X->s ); - - /* Test cases are such that A <= B, so #limbs should be <= */ - TEST_LE_U( A.n, B.n ); - TEST_LE_U( X->n, B.n ); - - /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ - - /* mbedtls_mpi_core_add_if() uses input arrays of mbedtls_mpi_uints which - * must be the same size. The MPIs we've read in will only have arrays - * large enough for the number they represent. Therefore we create new - * raw arrays of mbedtls_mpi_uints and populate them from the MPIs we've - * just read in. - * - * We generated test data such that B was always >= A, so that's how many - * limbs each of these need. - */ - size_t limbs = B.n; - size_t bytes = limbs * sizeof(mbedtls_mpi_uint); - - /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ - ASSERT_ALLOC( a, bytes ); - ASSERT_ALLOC( b, bytes ); - ASSERT_ALLOC( sum, bytes ); - ASSERT_ALLOC( d, bytes ); - - /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as - * processed by mbedtls_mpi_core_add_if()) are little endian, we can just - * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()) - */ - memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); - memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); - memcpy( sum, X->p, X->n * sizeof(mbedtls_mpi_uint) ); - - /* The test cases have a <= b to avoid repetition, so we test a + b then, - * if a != b, b + a. If a == b, we can test when a and b are aliased */ - - /* a + b */ - - /* cond = 0 => d unchanged, no carry */ - memcpy( d, a, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, b, limbs, 0 ) ); - ASSERT_COMPARE( d, bytes, a, bytes ); - - /* cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, b, limbs, 1 ) ); - ASSERT_COMPARE( d, bytes, sum, bytes ); - - if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) - { - /* a == b, so test where a and b are aliased */ - - /* cond = 0 => d unchanged, no carry */ - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( b, b, limbs, 0 ) ); - ASSERT_COMPARE( b, bytes, B.p, bytes ); - - /* cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( b, b, limbs, 1 ) ); - ASSERT_COMPARE( b, bytes, sum, bytes ); - } - else - { - /* a != b, so test b + a */ - - /* cond = 0 => d unchanged, no carry */ - memcpy( d, b, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, a, limbs, 0 ) ); - ASSERT_COMPARE( d, bytes, b, bytes ); - - /* cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, a, limbs, 1 ) ); - ASSERT_COMPARE( d, bytes, sum, bytes ); - } - -exit: - mbedtls_free( a ); - mbedtls_free( b ); - mbedtls_free( sum ); - mbedtls_free( d ); - - mbedtls_mpi_free( &S4 ); - mbedtls_mpi_free( &S8 ); - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &B ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_core_sub( char * input_A, char * input_B, - char * input_X4, char * input_X8, - int carry ) -{ - mbedtls_mpi A, B, X4, X8; - mbedtls_mpi_uint *a = NULL; - mbedtls_mpi_uint *b = NULL; - mbedtls_mpi_uint *x = NULL; /* expected */ - mbedtls_mpi_uint *r = NULL; /* result */ - - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &B ); - mbedtls_mpi_init( &X4 ); - mbedtls_mpi_init( &X8 ); - - TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); - - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, A.s ); - TEST_EQUAL( 1, B.s ); - TEST_EQUAL( 1, X4.s ); - TEST_EQUAL( 1, X8.s ); - - /* Get the number of limbs we will need */ - size_t limbs = MAX( A.n, B.n ); - size_t bytes = limbs * sizeof(mbedtls_mpi_uint); - - /* We only need to work with X4 or X8, depending on sizeof(mbedtls_mpi_uint) */ - mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; - - /* The result shouldn't have more limbs than the longest input */ - TEST_LE_U( X->n, limbs ); - - /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ - - /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ - ASSERT_ALLOC( a, bytes ); - ASSERT_ALLOC( b, bytes ); - ASSERT_ALLOC( x, bytes ); - ASSERT_ALLOC( r, bytes ); - - /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as - * processed by mbedtls_mpi_core_sub()) are little endian, we can just - * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()) - */ - memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); - memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); - memcpy( x, X->p, X->n * sizeof(mbedtls_mpi_uint) ); - - /* 1a) r = a - b => we should get the correct carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, a, b, limbs ) ); - - /* 1b) r = a - b => we should get the correct result */ - ASSERT_COMPARE( r, bytes, x, bytes ); - - /* 2 and 3 test "r may be aliased to a or b" */ - /* 2a) r = a; r -= b => we should get the correct carry (use r to avoid clobbering a) */ - memcpy( r, a, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, r, b, limbs ) ); - - /* 2b) r -= b => we should get the correct result */ - ASSERT_COMPARE( r, bytes, x, bytes ); - - /* 3a) r = b; r = a - r => we should get the correct carry (use r to avoid clobbering b) */ - memcpy( r, b, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, a, r, limbs ) ); - - /* 3b) r = a - b => we should get the correct result */ - ASSERT_COMPARE( r, bytes, x, bytes ); - - /* 4 tests "r may be aliased to [...] both" */ - if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) - { - memcpy( r, b, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, r, r, limbs ) ); - ASSERT_COMPARE( r, bytes, x, bytes ); - } - -exit: - mbedtls_free( a ); - mbedtls_free( b ); - mbedtls_free( x ); - mbedtls_free( r ); - - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &B ); - mbedtls_mpi_free( &X4 ); - mbedtls_mpi_free( &X8 ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_core_mla( char * input_A, char * input_B, char * input_S, - char * input_X4, char * input_cy4, - char * input_X8, char * input_cy8 ) -{ - /* We are testing A += B * s; A, B are MPIs, s is a scalar. - * - * However, we encode s as an MPI in the .data file as the test framework - * currently only supports `int`-typed scalars, and that doesn't cover the - * full range of `mbedtls_mpi_uint`. - * - * We also have the different results for sizeof(mbedtls_mpi_uint) == 4 or 8. - */ - mbedtls_mpi A, B, S, X4, X8, cy4, cy8; - mbedtls_mpi_uint *a = NULL; - mbedtls_mpi_uint *x = NULL; - - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &B ); - mbedtls_mpi_init( &S ); - mbedtls_mpi_init( &X4 ); - mbedtls_mpi_init( &X8 ); - mbedtls_mpi_init( &cy4 ); - mbedtls_mpi_init( &cy8 ); - - TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &S, input_S ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &cy4, input_cy4 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &cy8, input_cy8 ) ); - - /* The MPI encoding of scalar s must be only 1 limb */ - TEST_EQUAL( 1, S.n ); - - /* We only need to work with X4 or X8, and cy4 or cy8, depending on sizeof(mbedtls_mpi_uint) */ - mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; - mbedtls_mpi *cy = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &cy4 : &cy8; - - /* The carry should only have one limb */ - TEST_EQUAL( 1, cy->n ); - - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, A.s ); - TEST_EQUAL( 1, B.s ); - TEST_EQUAL( 1, S.s ); - TEST_EQUAL( 1, X->s ); - TEST_EQUAL( 1, cy->s ); - - /* Get the (max) number of limbs we will need */ - size_t limbs = MAX( A.n, B.n ); - size_t bytes = limbs * sizeof(mbedtls_mpi_uint); - - /* The result shouldn't have more limbs than the longest input */ - TEST_LE_U( X->n, limbs ); - - /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ - - /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ - ASSERT_ALLOC( a, bytes ); - ASSERT_ALLOC( x, bytes ); - - /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as - * processed by mbedtls_mpi_core_mla()) are little endian, we can just - * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()). - */ - memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); - memcpy( x, X->p, X->n * sizeof(mbedtls_mpi_uint) ); - - /* 1a) A += B * s => we should get the correct carry */ - TEST_EQUAL( mbedtls_mpi_core_mla( a, limbs, B.p, B.n, *S.p ), *cy->p ); - - /* 1b) A += B * s => we should get the correct result */ - ASSERT_COMPARE( a, bytes, x, bytes ); - - if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) - { - /* Check when A and B are aliased */ - memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); - TEST_EQUAL( mbedtls_mpi_core_mla( a, limbs, a, limbs, *S.p ), *cy->p ); - ASSERT_COMPARE( a, bytes, x, bytes ); - } - -exit: - mbedtls_free( a ); - mbedtls_free( x ); - - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &B ); - mbedtls_mpi_free( &S ); - mbedtls_mpi_free( &X4 ); - mbedtls_mpi_free( &X8 ); - mbedtls_mpi_free( &cy4 ); - mbedtls_mpi_free( &cy8 ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_montg_init( char * input_N, char * input_mm ) -{ - mbedtls_mpi N, mm; - - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &mm ); - - TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &mm, input_mm ) ); - - /* The MPI encoding of mm should be 1 limb (sizeof(mbedtls_mpi_uint) == 8) or - * 2 limbs (sizeof(mbedtls_mpi_uint) == 4). - * - * The data file contains the expected result for sizeof(mbedtls_mpi_uint) == 8; - * for sizeof(mbedtls_mpi_uint) == 4 it's just the LSW of this. - */ - TEST_ASSERT( mm.n == 1 || mm.n == 2 ); - - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, N.s ); - TEST_EQUAL( 1, mm.s ); - - /* mbedtls_mpi_core_montmul_init() only returns a result, no error possible */ - mbedtls_mpi_uint result = mbedtls_mpi_core_montmul_init( N.p ); - - /* Check we got the correct result */ - TEST_EQUAL( result, mm.p[0] ); - -exit: - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &mm ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_core_montmul( int limbs_AN4, int limbs_B4, - int limbs_AN8, int limbs_B8, - char * input_A, - char * input_B, - char * input_N, - char * input_X4, - char * input_X8 ) -{ - mbedtls_mpi A, B, N, X4, X8, T, R; - - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &B ); - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &X4 ); /* expected result, sizeof(mbedtls_mpi_uint) == 4 */ - mbedtls_mpi_init( &X8 ); /* expected result, sizeof(mbedtls_mpi_uint) == 8 */ - mbedtls_mpi_init( &T ); - mbedtls_mpi_init( &R ); /* for the result */ - - TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); - - mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; - - int limbs_AN = ( sizeof(mbedtls_mpi_uint) == 4 ) ? limbs_AN4 : limbs_AN8; - int limbs_B = ( sizeof(mbedtls_mpi_uint) == 4 ) ? limbs_B4 : limbs_B8; - - TEST_LE_U( A.n, (size_t)limbs_AN ); - TEST_LE_U( X->n, (size_t)limbs_AN ); - TEST_LE_U( B.n, (size_t)limbs_B ); - TEST_LE_U( limbs_B, limbs_AN ); - - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, A.s ); - TEST_EQUAL( 1, B.s ); - TEST_EQUAL( 1, N.s ); - TEST_EQUAL( 1, X->s ); - - TEST_EQUAL( 0, mbedtls_mpi_grow( &A, limbs_AN ) ); - TEST_EQUAL( 0, mbedtls_mpi_grow( &N, limbs_AN ) ); - TEST_EQUAL( 0, mbedtls_mpi_grow( X, limbs_AN ) ); - TEST_EQUAL( 0, mbedtls_mpi_grow( &B, limbs_B ) ); - - TEST_EQUAL( 0, mbedtls_mpi_grow( &T, limbs_AN * 2 + 1 ) ); - - /* Calculate the Montgomery constant (this is unit tested separately) */ - mbedtls_mpi_uint mm = mbedtls_mpi_core_montmul_init( N.p ); - - TEST_EQUAL( 0, mbedtls_mpi_grow( &R, limbs_AN ) ); /* ensure it's got the right number of limbs */ - - mbedtls_mpi_core_montmul( R.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); - size_t bytes = N.n * sizeof(mbedtls_mpi_uint); - ASSERT_COMPARE( R.p, bytes, X->p, bytes ); - - /* The output (R, above) may be aliased to A - use R to save the value of A */ - - memcpy( R.p, A.p, bytes ); - - mbedtls_mpi_core_montmul( A.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); - ASSERT_COMPARE( A.p, bytes, X->p, bytes ); - - memcpy( A.p, R.p, bytes ); /* restore A */ - - /* The output may be aliased to N - use R to save the value of N */ - - memcpy( R.p, N.p, bytes ); - - mbedtls_mpi_core_montmul( N.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); - ASSERT_COMPARE( N.p, bytes, X->p, bytes ); - - memcpy( N.p, R.p, bytes ); - - if (limbs_AN == limbs_B) - { - /* Test when A aliased to B (requires A == B on input values) */ - if ( memcmp( A.p, B.p, bytes ) == 0 ) - { - /* Test with A aliased to B and output, since this is permitted - - * don't bother with yet another test with only A and B aliased */ - - mbedtls_mpi_core_montmul( B.p, B.p, B.p, B.n, N.p, N.n, mm, T.p ); - ASSERT_COMPARE( B.p, bytes, X->p, bytes ); - - memcpy( B.p, A.p, bytes ); /* restore B from equal value A */ - } - - /* The output may be aliased to B - last test, so we don't save B */ - - mbedtls_mpi_core_montmul( B.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); - ASSERT_COMPARE( B.p, bytes, X->p, bytes ); - } - -exit: - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &B ); - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &X4 ); - mbedtls_mpi_free( &X8 ); - mbedtls_mpi_free( &T ); - mbedtls_mpi_free( &R ); -} -/* END_CASE */ - /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ void mpi_selftest( ) { From c9b6a0aef9446116287ff3d12cf979920db34734 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Fri, 30 Sep 2022 12:56:54 +0100 Subject: [PATCH 0777/1028] Move bignum_mod_raw tests into separate files Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_mod_raw.data | 141 +++++++++++++++++ .../suites/test_suite_bignum_mod_raw.function | 108 +++++++++++++ tests/suites/test_suite_mpi.data | 144 ------------------ tests/suites/test_suite_mpi.function | 97 ------------ 4 files changed, 249 insertions(+), 241 deletions(-) create mode 100644 tests/suites/test_suite_bignum_mod_raw.data create mode 100644 tests/suites/test_suite_bignum_mod_raw.function diff --git a/tests/suites/test_suite_bignum_mod_raw.data b/tests/suites/test_suite_bignum_mod_raw.data new file mode 100644 index 0000000000..6b5bb645ee --- /dev/null +++ b/tests/suites/test_suite_bignum_mod_raw.data @@ -0,0 +1,141 @@ +Test mbedtls_mpi_mod_raw_io #1 BE (Buffer and limbs just fit, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #1 LE (Buffer and limbs just fit, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #2 BE (Buffer and limbs just fit, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #2 LE (Buffer and limbs just fit, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #3 BE (Buffer just fits, extra limbs, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #3 LE (Buffer just fits, extra limbs, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #4 BE (Buffer just fits, extra limbs, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #4 LE (Buffer just fits, extra limbs, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #5 BE (Extra limbs, buffer aligned to extra limbs, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #5 LE (Extra limbs, buffer aligned to extra limbs, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #6 BE (Extra limbs, buffer aligned to extra limbs, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #6 LE (Extra limbs, buffer aligned to extra limbs, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #7 BE (Buffer and limbs just fit, input limb-aligned with leading zeroes) +mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #7 LE (Buffer and limbs just fit, input limb-aligned with leading zeroes) +mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #8 BE (Buffer and limbs just fit, input unaligned with leading zeroes) +mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #8 LE (Buffer and limbs just fit, input unaligned with leading zeroes) +mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #9 BE (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) +mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #9 LE (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) +mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #10 BE (Buffer just fits, extra limbs, input unaligned with leading zeroes) +mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #10 LE (Buffer just fits, extra limbs, input unaligned with leading zeroes) +mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #11 BE (Zero) +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #11 LE (Zero) +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #12 BE (Zero, empty output) +mpi_mod_raw_io:"00":0:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #12 LE (Zero, empty output) +mpi_mod_raw_io:"00":0:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #13 BE (Zero, empty input) +mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #13 LE (Zero, empty input) +mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #14 BE (One) +mpi_mod_raw_io:"01":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #14 LE (One) +mpi_mod_raw_io:"01":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #14 BE (One limb) +mpi_mod_raw_io:"ff00000000000000":8:2:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #14 LE (One limb) +mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #15 BE (One limb) +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_io:"000000ff":4:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #15 LE (One limb) +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_io:"000000ff":4:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #16 BE (One limb) +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #16 LE (One limb) +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #17 BE (not enough limbs, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 + +Test mbedtls_mpi_mod_raw_io #17 LE (not enough limbs, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 + +Test mbedtls_mpi_mod_raw_io #18 BE (not enough limbs, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 + +Test mbedtls_mpi_mod_raw_io #18 LE (not enough limbs, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 + +Test mbedtls_mpi_mod_raw_io #19 BE (buffer too small, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +Test mbedtls_mpi_mod_raw_io #19 LE (buffer too small, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +Test mbedtls_mpi_mod_raw_io #20 BE (buffer too small, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +Test mbedtls_mpi_mod_raw_io #20 LE (buffer too small, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +Test mbedtls_mpi_mod_raw_io #21 BE (modulus is equal to input) +mpi_mod_raw_io:"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF":1024:256:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 + +Test mbedtls_mpi_mod_raw_io #21 LE (modulus is equal to input) +mpi_mod_raw_io:"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF":1024:256:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 + +Test mbedtls_mpi_mod_raw_io #22 (reading with invalid endianness) +mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 + +Test mbedtls_mpi_mod_raw_io #22 (writing with invalid endianness) +mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function new file mode 100644 index 0000000000..76574752b0 --- /dev/null +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -0,0 +1,108 @@ +/* BEGIN_HEADER */ +#include "mbedtls/bignum.h" +#include "mbedtls/entropy.h" +#include "bignum_mod_raw.h" +#include "constant_time_internal.h" +#include "test/constant_flow.h" + +/* END_HEADER */ + +/* BEGIN_DEPENDENCIES + * depends_on:MBEDTLS_BIGNUM_C + * END_DEPENDENCIES + */ + +/* BEGIN_CASE */ +void mpi_mod_raw_io( data_t *input, int nb_int, int nx_32_int, + int iendian, int iret, int oret ) +{ + if( iret != 0 ) + TEST_ASSERT( oret == 0 ); + + TEST_LE_S( 0, nb_int ); + size_t nb = nb_int; + + unsigned char buf[1024]; + TEST_LE_U( nb, sizeof( buf ) ); + + /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need + * to halve the number of limbs to have the same size. */ + size_t nx; + TEST_LE_S( 0, nx_32_int ); + if( sizeof( mbedtls_mpi_uint ) == 8 ) + nx = nx_32_int / 2 + nx_32_int % 2; + else + nx = nx_32_int; + + mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; + TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); + + int endian; + if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID ) + endian = MBEDTLS_MPI_MOD_EXT_REP_LE; + else + endian = iendian; + + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init( &m ); + mbedtls_mpi_uint init[sizeof( X ) / sizeof( X[0] )]; + memset( init, 0xFF, sizeof( init ) ); + int ret = mbedtls_mpi_mod_modulus_setup( &m, init, nx, endian, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ); + TEST_EQUAL( ret, 0 ); + + if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID && iret != 0 ) + m.ext_rep = MBEDTLS_MPI_MOD_EXT_REP_INVALID; + + ret = mbedtls_mpi_mod_raw_read( X, &m, input->x, input->len ); + TEST_EQUAL( ret, iret ); + + if( iret == 0 ) + { + if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID && oret != 0 ) + m.ext_rep = MBEDTLS_MPI_MOD_EXT_REP_INVALID; + + ret = mbedtls_mpi_mod_raw_write( X, &m, buf, nb ); + TEST_EQUAL( ret, oret ); + } + + if( ( iret == 0 ) && ( oret == 0 ) ) + { + if( nb > input->len ) + { + if( endian == MBEDTLS_MPI_MOD_EXT_REP_BE ) + { + size_t leading_zeroes = nb - input->len; + TEST_ASSERT( memcmp( buf + nb - input->len, input->x, input->len ) == 0 ); + for( size_t i = 0; i < leading_zeroes; i++ ) + TEST_EQUAL( buf[i], 0 ); + } + else + { + TEST_ASSERT( memcmp( buf, input->x, input->len ) == 0 ); + for( size_t i = input->len; i < nb; i++ ) + TEST_EQUAL( buf[i], 0 ); + } + } + else + { + if( endian == MBEDTLS_MPI_MOD_EXT_REP_BE ) + { + size_t leading_zeroes = input->len - nb; + TEST_ASSERT( memcmp( input->x + input->len - nb, buf, nb ) == 0 ); + for( size_t i = 0; i < leading_zeroes; i++ ) + TEST_EQUAL( input->x[i], 0 ); + } + else + { + TEST_ASSERT( memcmp( input->x, buf, nb ) == 0 ); + for( size_t i = nb; i < input->len; i++ ) + TEST_EQUAL( input->x[i], 0 ); + } + } + } + +exit: + mbedtls_mpi_mod_modulus_free( &m ); +} +/* END_CASE */ diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 4acb41f945..f530213ad3 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -82,149 +82,6 @@ mpi_read_write_string:16:"":2:"0":4:0:0 Test mpi_write_string #10 (Negative hex with odd number of digits) mpi_read_write_string:16:"-1":16:"":3:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_mod_raw_io #1 BE (Buffer and limbs just fit, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #1 LE (Buffer and limbs just fit, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #2 BE (Buffer and limbs just fit, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #2 LE (Buffer and limbs just fit, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #3 BE (Buffer just fits, extra limbs, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #3 LE (Buffer just fits, extra limbs, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #4 BE (Buffer just fits, extra limbs, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #4 LE (Buffer just fits, extra limbs, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #5 BE (Extra limbs, buffer aligned to extra limbs, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #5 LE (Extra limbs, buffer aligned to extra limbs, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #6 BE (Extra limbs, buffer aligned to extra limbs, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #6 LE (Extra limbs, buffer aligned to extra limbs, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #7 BE (Buffer and limbs just fit, input limb-aligned with leading zeroes) -mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #7 LE (Buffer and limbs just fit, input limb-aligned with leading zeroes) -mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #8 BE (Buffer and limbs just fit, input unaligned with leading zeroes) -mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #8 LE (Buffer and limbs just fit, input unaligned with leading zeroes) -mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #9 BE (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) -mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #9 LE (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) -mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #10 BE (Buffer just fits, extra limbs, input unaligned with leading zeroes) -mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #10 LE (Buffer just fits, extra limbs, input unaligned with leading zeroes) -mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #11 BE (Zero) -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #11 LE (Zero) -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #12 BE (Zero, empty output) -mpi_mod_raw_io:"00":0:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #12 LE (Zero, empty output) -mpi_mod_raw_io:"00":0:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #13 BE (Zero, empty input) -mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #13 LE (Zero, empty input) -mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #14 BE (One) -mpi_mod_raw_io:"01":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #14 LE (One) -mpi_mod_raw_io:"01":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #14 BE (One limb) -mpi_mod_raw_io:"ff00000000000000":8:2:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #14 LE (One limb) -mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #15 BE (One limb) -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_io:"000000ff":4:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #15 LE (One limb) -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_io:"000000ff":4:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #16 BE (One limb) -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #16 LE (One limb) -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #17 BE (not enough limbs, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 - -Test mbedtls_mpi_mod_raw_io #17 LE (not enough limbs, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 - -Test mbedtls_mpi_mod_raw_io #18 BE (not enough limbs, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 - -Test mbedtls_mpi_mod_raw_io #18 LE (not enough limbs, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 - -Test mbedtls_mpi_mod_raw_io #19 BE (buffer too small, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_mod_raw_io #19 LE (buffer too small, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_mod_raw_io #20 BE (buffer too small, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_mod_raw_io #20 LE (buffer too small, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_mod_raw_io #21 BE (modulus is equal to input) -mpi_mod_raw_io:"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF":1024:256:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 - -Test mbedtls_mpi_mod_raw_io #21 LE (modulus is equal to input) -mpi_mod_raw_io:"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF":1024:256:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 - -Test mbedtls_mpi_mod_raw_io #22 (reading with invalid endianness) -mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 - -Test mbedtls_mpi_mod_raw_io #22 (writing with invalid endianness) -mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - Test mbedtls_mpi_mod_setup #1 (Both representations invalid) mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA @@ -2177,7 +2034,6 @@ mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA - MPI Selftest depends_on:MBEDTLS_SELF_TEST mpi_selftest: diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 6d046f1965..ca30d18ab7 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -2,7 +2,6 @@ #include "mbedtls/bignum.h" #include "mbedtls/entropy.h" #include "bignum_mod.h" -#include "bignum_mod_raw.h" #include "constant_time_internal.h" #include "test/constant_flow.h" @@ -228,102 +227,6 @@ exit: } /* END_CASE */ - -/* BEGIN_CASE */ -void mpi_mod_raw_io( data_t *input, int nb_int, int nx_32_int, - int iendian, int iret, int oret ) -{ - if( iret != 0 ) - TEST_ASSERT( oret == 0 ); - - TEST_LE_S( 0, nb_int ); - size_t nb = nb_int; - - unsigned char buf[1024]; - TEST_LE_U( nb, sizeof( buf ) ); - - /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need - * to halve the number of limbs to have the same size. */ - size_t nx; - TEST_LE_S( 0, nx_32_int ); - if( sizeof( mbedtls_mpi_uint ) == 8 ) - nx = nx_32_int / 2 + nx_32_int % 2; - else - nx = nx_32_int; - - mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; - TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); - - int endian; - if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID ) - endian = MBEDTLS_MPI_MOD_EXT_REP_LE; - else - endian = iendian; - - mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_modulus_init( &m ); - mbedtls_mpi_uint init[sizeof( X ) / sizeof( X[0] )]; - memset( init, 0xFF, sizeof( init ) ); - int ret = mbedtls_mpi_mod_modulus_setup( &m, init, nx, endian, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ); - TEST_EQUAL( ret, 0 ); - - if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID && iret != 0 ) - m.ext_rep = MBEDTLS_MPI_MOD_EXT_REP_INVALID; - - ret = mbedtls_mpi_mod_raw_read( X, &m, input->x, input->len ); - TEST_EQUAL( ret, iret ); - - if( iret == 0 ) - { - if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID && oret != 0 ) - m.ext_rep = MBEDTLS_MPI_MOD_EXT_REP_INVALID; - - ret = mbedtls_mpi_mod_raw_write( X, &m, buf, nb ); - TEST_EQUAL( ret, oret ); - } - - if( ( iret == 0 ) && ( oret == 0 ) ) - { - if( nb > input->len ) - { - if( endian == MBEDTLS_MPI_MOD_EXT_REP_BE ) - { - size_t leading_zeroes = nb - input->len; - TEST_ASSERT( memcmp( buf + nb - input->len, input->x, input->len ) == 0 ); - for( size_t i = 0; i < leading_zeroes; i++ ) - TEST_EQUAL( buf[i], 0 ); - } - else - { - TEST_ASSERT( memcmp( buf, input->x, input->len ) == 0 ); - for( size_t i = input->len; i < nb; i++ ) - TEST_EQUAL( buf[i], 0 ); - } - } - else - { - if( endian == MBEDTLS_MPI_MOD_EXT_REP_BE ) - { - size_t leading_zeroes = input->len - nb; - TEST_ASSERT( memcmp( input->x + input->len - nb, buf, nb ) == 0 ); - for( size_t i = 0; i < leading_zeroes; i++ ) - TEST_EQUAL( input->x[i], 0 ); - } - else - { - TEST_ASSERT( memcmp( input->x, buf, nb ) == 0 ); - for( size_t i = nb; i < input->len; i++ ) - TEST_EQUAL( input->x[i], 0 ); - } - } - } - -exit: - mbedtls_mpi_mod_modulus_free( &m ); -} -/* END_CASE */ - /* BEGIN_CASE */ void mpi_read_binary_le( data_t * buf, char * input_A ) { From 0c6ea12145c127a18bf3fb059a53e9cf176e408a Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Fri, 30 Sep 2022 13:02:16 +0100 Subject: [PATCH 0778/1028] Move bignum_mod tests into separate files Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_mod.data | 86 +++++++++++++++++ tests/suites/test_suite_bignum_mod.function | 100 ++++++++++++++++++++ tests/suites/test_suite_mpi.data | 87 ----------------- tests/suites/test_suite_mpi.function | 75 --------------- 4 files changed, 186 insertions(+), 162 deletions(-) create mode 100644 tests/suites/test_suite_bignum_mod.data create mode 100644 tests/suites/test_suite_bignum_mod.function diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data new file mode 100644 index 0000000000..c76dad8f8e --- /dev/null +++ b/tests/suites/test_suite_bignum_mod.data @@ -0,0 +1,86 @@ +Test mbedtls_mpi_mod_setup #1 (Both representations invalid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +Test mbedtls_mpi_mod_setup #2 (Internal representation invalid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +Test mbedtls_mpi_mod_setup #3 (Internal representation invalid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +Test mbedtls_mpi_mod_setup #4 (External representation invalid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_MONTGOMERY:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +Test mbedtls_mpi_mod_setup #5 (External representation invalid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_OPT_RED:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +Test mbedtls_mpi_mod_setup #6 (Both representations valid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 + +Test mbedtls_mpi_mod_setup #7 (Both representations valid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +Test mbedtls_mpi_mod_setup #8 (Both representations valid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 + +Test mbedtls_mpi_mod_setup #9 (Both representations valid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +Base test mbedtls_mpi_mod_mpi #1 +mpi_mod_mpi:"3e8":"d":"c":0 + +Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (null)) +mpi_mod_mpi:"3e8":"":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO + +Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (1 limb)) +mpi_mod_mpi:"3e8":"0":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO + +Base test mbedtls_mpi_mod_mpi #3 +mpi_mod_mpi:"-3e8":"d":"1":0 + +Base test mbedtls_mpi_mod_mpi #4 (Negative modulo) +mpi_mod_mpi:"3e8":"-d":"-1":MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Base test mbedtls_mpi_mod_mpi #5 (Negative modulo) +mpi_mod_mpi:"-3e8":"-d":"-c":MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Test mbedtls_mpi_mod_mpi: 0 (null) % 1 +mpi_mod_mpi:"":"1":"":0 + +Test mbedtls_mpi_mod_mpi: 0 (null) % -1 +mpi_mod_mpi:"":"-1":"":MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Base test mbedtls_mpi_mod_int #1 +mpi_mod_int:"3e8":13:12:0 + +Base test mbedtls_mpi_mod_int #2 (Divide by zero) +mpi_mod_int:"3e8":0:0:MBEDTLS_ERR_MPI_DIVISION_BY_ZERO + +Base test mbedtls_mpi_mod_int #3 +mpi_mod_int:"-3e8":13:1:0 + +Base test mbedtls_mpi_mod_int #4 (Negative modulo) +mpi_mod_int:"3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Base test mbedtls_mpi_mod_int #5 (Negative modulo) +mpi_mod_int:"-3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Base test mbedtls_mpi_mod_int #6 (By 1) +mpi_mod_int:"3e8":1:0:0 + +Base test mbedtls_mpi_mod_int #7 (By 2) +mpi_mod_int:"3e9":2:1:0 + +Base test mbedtls_mpi_mod_int #8 (By 2) +mpi_mod_int:"3e8":2:0:0 + +Test mbedtls_mpi_mod_int: 0 (null) % 1 +mpi_mod_int:"":1:0:0 + +Test mbedtls_mpi_mod_int: 0 (null) % 2 +mpi_mod_int:"":2:0:0 + +Test mbedtls_mpi_mod_int: 0 (null) % -1 +mpi_mod_int:"":-1:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Test mbedtls_mpi_mod_int: 0 (null) % -2 +mpi_mod_int:"":-2:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function new file mode 100644 index 0000000000..1543623067 --- /dev/null +++ b/tests/suites/test_suite_bignum_mod.function @@ -0,0 +1,100 @@ +/* BEGIN_HEADER */ +#include "mbedtls/bignum.h" +#include "mbedtls/entropy.h" +#include "bignum_mod.h" +#include "constant_time_internal.h" +#include "test/constant_flow.h" + +/* Check the validity of the sign bit in an MPI object. Reject representations + * that are not supported by the rest of the library and indicate a bug when + * constructing the value. */ +static int sign_is_valid( const mbedtls_mpi *X ) +{ + if( X->s != 1 && X->s != -1 ) + return( 0 ); // invalid sign bit, e.g. 0 + if( mbedtls_mpi_bitlen( X ) == 0 && X->s != 1 ) + return( 0 ); // negative zero + return( 1 ); +} + +/* END_HEADER */ + +/* BEGIN_DEPENDENCIES + * depends_on:MBEDTLS_BIGNUM_C + * END_DEPENDENCIES + */ + +/* BEGIN_CASE */ +void mpi_mod_setup( int ext_rep, int int_rep, int iret ) +{ + #define MLIMBS 8 + mbedtls_mpi_uint mp[MLIMBS]; + mbedtls_mpi_mod_modulus m; + int ret; + + memset( mp, 0xFF, sizeof(mp) ); + + mbedtls_mpi_mod_modulus_init( &m ); + ret = mbedtls_mpi_mod_modulus_setup( &m, mp, MLIMBS, ext_rep, int_rep ); + TEST_EQUAL( ret, iret ); + + /* Address sanitiser should catch if we try to free mp */ + mbedtls_mpi_mod_modulus_free( &m ); + + /* Make sure that the modulus doesn't have reference to mp anymore */ + TEST_ASSERT( m.p != mp ); + +exit: + /* It should be safe to call an mbedtls free several times */ + mbedtls_mpi_mod_modulus_free( &m ); + + #undef MLIMBS +} +/* END_CASE */ + + +/* BEGIN_CASE */ +void mpi_mod_mpi( char * input_X, char * input_Y, + char * input_A, int div_result ) +{ + mbedtls_mpi X, Y, A; + int res; + mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &A ); + + TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); + TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); + TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); + res = mbedtls_mpi_mod_mpi( &X, &X, &Y ); + TEST_ASSERT( res == div_result ); + if( res == 0 ) + { + TEST_ASSERT( sign_is_valid( &X ) ); + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); + } + +exit: + mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &A ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_int( char * input_X, int input_Y, + int input_A, int div_result ) +{ + mbedtls_mpi X; + int res; + mbedtls_mpi_uint r; + mbedtls_mpi_init( &X ); + + TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); + res = mbedtls_mpi_mod_int( &r, &X, input_Y ); + TEST_ASSERT( res == div_result ); + if( res == 0 ) + { + TEST_ASSERT( r == (mbedtls_mpi_uint) input_A ); + } + +exit: + mbedtls_mpi_free( &X ); +} +/* END_CASE */ diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index f530213ad3..fca63372a2 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -82,33 +82,6 @@ mpi_read_write_string:16:"":2:"0":4:0:0 Test mpi_write_string #10 (Negative hex with odd number of digits) mpi_read_write_string:16:"-1":16:"":3:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL -Test mbedtls_mpi_mod_setup #1 (Both representations invalid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -Test mbedtls_mpi_mod_setup #2 (Internal representation invalid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -Test mbedtls_mpi_mod_setup #3 (Internal representation invalid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -Test mbedtls_mpi_mod_setup #4 (External representation invalid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_MONTGOMERY:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -Test mbedtls_mpi_mod_setup #5 (External representation invalid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_OPT_RED:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -Test mbedtls_mpi_mod_setup #6 (Both representations valid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 - -Test mbedtls_mpi_mod_setup #7 (Both representations valid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 - -Test mbedtls_mpi_mod_setup #8 (Both representations valid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 - -Test mbedtls_mpi_mod_setup #9 (Both representations valid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 - Base test mbedtls_mpi_read_binary #1 mpi_read_binary:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"0941379D00FED1491FE15DF284DFDE4A142F68AA8D412023195CEE66883E6290FFE703F4EA5963BF212713CEE46B107C09182B5EDCD955ADAC418BF4918E2889AF48E1099D513830CEC85C26AC1E158B52620E33BA8692F893EFBB2F958B4424" @@ -1312,66 +1285,6 @@ mpi_div_int:"00":0:"":"":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Test mbedtls_mpi_div_int: 0 (null) / 1 mpi_div_int:"":1:"":"":0 -Base test mbedtls_mpi_mod_mpi #1 -mpi_mod_mpi:"3e8":"d":"c":0 - -Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (null)) -mpi_mod_mpi:"3e8":"":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO - -Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (1 limb)) -mpi_mod_mpi:"3e8":"0":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO - -Base test mbedtls_mpi_mod_mpi #3 -mpi_mod_mpi:"-3e8":"d":"1":0 - -Base test mbedtls_mpi_mod_mpi #4 (Negative modulo) -mpi_mod_mpi:"3e8":"-d":"-1":MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Base test mbedtls_mpi_mod_mpi #5 (Negative modulo) -mpi_mod_mpi:"-3e8":"-d":"-c":MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Test mbedtls_mpi_mod_mpi: 0 (null) % 1 -mpi_mod_mpi:"":"1":"":0 - -Test mbedtls_mpi_mod_mpi: 0 (null) % -1 -mpi_mod_mpi:"":"-1":"":MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Base test mbedtls_mpi_mod_int #1 -mpi_mod_int:"3e8":13:12:0 - -Base test mbedtls_mpi_mod_int #2 (Divide by zero) -mpi_mod_int:"3e8":0:0:MBEDTLS_ERR_MPI_DIVISION_BY_ZERO - -Base test mbedtls_mpi_mod_int #3 -mpi_mod_int:"-3e8":13:1:0 - -Base test mbedtls_mpi_mod_int #4 (Negative modulo) -mpi_mod_int:"3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Base test mbedtls_mpi_mod_int #5 (Negative modulo) -mpi_mod_int:"-3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Base test mbedtls_mpi_mod_int #6 (By 1) -mpi_mod_int:"3e8":1:0:0 - -Base test mbedtls_mpi_mod_int #7 (By 2) -mpi_mod_int:"3e9":2:1:0 - -Base test mbedtls_mpi_mod_int #8 (By 2) -mpi_mod_int:"3e8":2:0:0 - -Test mbedtls_mpi_mod_int: 0 (null) % 1 -mpi_mod_int:"":1:0:0 - -Test mbedtls_mpi_mod_int: 0 (null) % 2 -mpi_mod_int:"":2:0:0 - -Test mbedtls_mpi_mod_int: 0 (null) % -1 -mpi_mod_int:"":-1:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Test mbedtls_mpi_mod_int: 0 (null) % -2 -mpi_mod_int:"":-2:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE - Base test mbedtls_mpi_exp_mod #1 mpi_exp_mod:"17":"d":"1d":"18":0 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index ca30d18ab7..c26766b2cc 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1,7 +1,6 @@ /* BEGIN_HEADER */ #include "mbedtls/bignum.h" #include "mbedtls/entropy.h" -#include "bignum_mod.h" #include "constant_time_internal.h" #include "test/constant_flow.h" @@ -199,34 +198,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ -void mpi_mod_setup( int ext_rep, int int_rep, int iret ) -{ - #define MLIMBS 8 - mbedtls_mpi_uint mp[MLIMBS]; - mbedtls_mpi_mod_modulus m; - int ret; - - memset( mp, 0xFF, sizeof(mp) ); - - mbedtls_mpi_mod_modulus_init( &m ); - ret = mbedtls_mpi_mod_modulus_setup( &m, mp, MLIMBS, ext_rep, int_rep ); - TEST_EQUAL( ret, iret ); - - /* Address sanitiser should catch if we try to free mp */ - mbedtls_mpi_mod_modulus_free( &m ); - - /* Make sure that the modulus doesn't have reference to mp anymore */ - TEST_ASSERT( m.p != mp ); - -exit: - /* It should be safe to call an mbedtls free several times */ - mbedtls_mpi_mod_modulus_free( &m ); - - #undef MLIMBS -} -/* END_CASE */ - /* BEGIN_CASE */ void mpi_read_binary_le( data_t * buf, char * input_A ) { @@ -1287,52 +1258,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ -void mpi_mod_mpi( char * input_X, char * input_Y, - char * input_A, int div_result ) -{ - mbedtls_mpi X, Y, A; - int res; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &A ); - - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - res = mbedtls_mpi_mod_mpi( &X, &X, &Y ); - TEST_ASSERT( res == div_result ); - if( res == 0 ) - { - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); - } - -exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &A ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_mod_int( char * input_X, int input_Y, - int input_A, int div_result ) -{ - mbedtls_mpi X; - int res; - mbedtls_mpi_uint r; - mbedtls_mpi_init( &X ); - - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - res = mbedtls_mpi_mod_int( &r, &X, input_Y ); - TEST_ASSERT( res == div_result ); - if( res == 0 ) - { - TEST_ASSERT( r == (mbedtls_mpi_uint) input_A ); - } - -exit: - mbedtls_mpi_free( &X ); -} -/* END_CASE */ - /* BEGIN_CASE */ void mpi_exp_mod( char * input_A, char * input_E, char * input_N, char * input_X, From 99e8178fa7de07bfaccf5bab60a6849c0897282c Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Fri, 30 Sep 2022 16:28:43 +0100 Subject: [PATCH 0779/1028] Add module for bignum_core test generation Separate file is added for classes used to generate cases for tests in bignum_core.function. Common elements of the BignumOperation class are added to classes in a new common file, for use across files. Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_common.py | 111 ++++++++++++++++++++ scripts/mbedtls_dev/bignum_core.py | 72 +++++++++++++ scripts/mbedtls_dev/test_data_generation.py | 1 + tests/CMakeLists.txt | 2 + tests/Makefile | 2 + tests/scripts/generate_bignum_tests.py | 86 +++------------ 6 files changed, 203 insertions(+), 71 deletions(-) create mode 100644 scripts/mbedtls_dev/bignum_common.py create mode 100644 scripts/mbedtls_dev/bignum_core.py diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py new file mode 100644 index 0000000000..b20fe815db --- /dev/null +++ b/scripts/mbedtls_dev/bignum_common.py @@ -0,0 +1,111 @@ +"""Common features for bignum in test generation framework.""" +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import itertools +import typing + +from abc import abstractmethod +from typing import Iterator, List, Tuple, TypeVar + +T = TypeVar('T') #pylint: disable=invalid-name + +def hex_to_int(val: str) -> int: + return int(val, 16) if val else 0 + +def quote_str(val) -> str: + return "\"{}\"".format(val) + +def bound_mpi8(val: int) -> int: + """First number exceeding 8-byte limbs needed for given input value.""" + return bound_mpi8_limbs(limbs_mpi8(val)) + +def bound_mpi4(val: int) -> int: + """First number exceeding 4-byte limbs needed for given input value.""" + return bound_mpi4_limbs(limbs_mpi4(val)) + +def bound_mpi8_limbs(limbs: int) -> int: + """First number exceeding maximum of given 8-byte limbs.""" + bits = 64 * limbs + return 1 << bits + +def bound_mpi4_limbs(limbs: int) -> int: + """First number exceeding maximum of given 4-byte limbs.""" + bits = 32 * limbs + return 1 << bits + +def limbs_mpi8(val: int) -> int: + """Return the number of 8-byte limbs required to store value.""" + return (val.bit_length() + 63) // 64 + +def limbs_mpi4(val: int) -> int: + """Return the number of 4-byte limbs required to store value.""" + return (val.bit_length() + 31) // 32 + +def combination_pairs(values: List[T]) -> List[Tuple[T, T]]: + """Return all pair combinations from input values. + + The return value is cast, as older versions of mypy are unable to derive + the specific type returned by itertools.combinations_with_replacement. + """ + return typing.cast( + List[Tuple[T, T]], + list(itertools.combinations_with_replacement(values, 2)) + ) + + +class OperationCommon: + """Common features for bignum binary operations. + + This adds functionality common in binary operation tests. + + Attributes: + symbol: Symbol to use for the operation in case description. + input_values: List of values to use as test case inputs. These are + combined to produce pairs of values. + input_cases: List of tuples containing pairs of test case inputs. This + can be used to implement specific pairs of inputs. + """ + symbol = "" + input_values = [] # type: List[str] + input_cases = [] # type: List[Tuple[str, str]] + + def __init__(self, val_a: str, val_b: str) -> None: + self.arg_a = val_a + self.arg_b = val_b + self.int_a = hex_to_int(val_a) + self.int_b = hex_to_int(val_b) + + def arguments(self) -> List[str]: + return [quote_str(self.arg_a), quote_str(self.arg_b), self.result()] + + @abstractmethod + def result(self) -> str: + """Get the result of the operation. + + This could be calculated during initialization and stored as `_result` + and then returned, or calculated when the method is called. + """ + raise NotImplementedError + + @classmethod + def get_value_pairs(cls) -> Iterator[Tuple[str, str]]: + """Generator to yield pairs of inputs. + + Combinations are first generated from all input values, and then + specific cases provided. + """ + yield from combination_pairs(cls.input_values) + yield from cls.input_cases diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py new file mode 100644 index 0000000000..b30f8581ae --- /dev/null +++ b/scripts/mbedtls_dev/bignum_core.py @@ -0,0 +1,72 @@ +"""Framework classes for generation of bignum core test cases.""" +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from abc import ABCMeta +from typing import Iterator + +from . import test_case +from . import test_data_generation +from . import bignum_common + + +class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): + #pylint: disable=abstract-method + """Target for bignum core test case generation.""" + target_basename = 'test_suite_bignum_core.generated' + + +class BignumCoreOperation(bignum_common.OperationCommon, BignumCoreTarget, metaclass=ABCMeta): + #pylint: disable=abstract-method + """Common features for bignum core operations.""" + input_values = [ + "0", "1", "3", "f", "fe", "ff", "100", "ff00", "fffe", "ffff", "10000", + "fffffffe", "ffffffff", "100000000", "1f7f7f7f7f7f7f", + "8000000000000000", "fefefefefefefefe", "fffffffffffffffe", + "ffffffffffffffff", "10000000000000000", "1234567890abcdef0", + "fffffffffffffffffefefefefefefefe", "fffffffffffffffffffffffffffffffe", + "ffffffffffffffffffffffffffffffff", "100000000000000000000000000000000", + "1234567890abcdef01234567890abcdef0", + "fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe", + "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "10000000000000000000000000000000000000000000000000000000000000000", + "1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0", + ( + "4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029" + "643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947" + "c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0" + "cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b" + ) + ] + + def description(self) -> str: + """Generate a description for the test case. + + If not set, case_description uses the form A `symbol` B, where symbol + is used to represent the operation. Descriptions of each value are + generated to provide some context to the test case. + """ + if not self.case_description: + self.case_description = "{} {} {}".format( + self.arg_a, self.symbol, self.arg_b + ) + return super().description() + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + for a_value, b_value in cls.get_value_pairs(): + yield cls(a_value, b_value).create_test_case() + diff --git a/scripts/mbedtls_dev/test_data_generation.py b/scripts/mbedtls_dev/test_data_generation.py index cdb1c03b89..eec0f9d978 100644 --- a/scripts/mbedtls_dev/test_data_generation.py +++ b/scripts/mbedtls_dev/test_data_generation.py @@ -148,6 +148,7 @@ class TestGenerator: self.targets.update({ subclass.target_basename: subclass.generate_tests for subclass in BaseTarget.__subclasses__() + if subclass.target_basename }) def filename_for(self, basename: str) -> str: diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index d89542a44d..c23cb6b3d9 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -68,6 +68,8 @@ if(GEN_FILES) --directory ${CMAKE_CURRENT_BINARY_DIR}/suites DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_bignum_tests.py + ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/bignum_common.py + ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/bignum_core.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_case.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_data_generation.py ) diff --git a/tests/Makefile b/tests/Makefile index 57f8855441..7c08f54e14 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -92,6 +92,8 @@ generated_files: $(GENERATED_FILES) .SECONDARY: generated_bignum_test_data generated_psa_test_data $(GENERATED_BIGNUM_DATA_FILES): generated_bignum_test_data generated_bignum_test_data: scripts/generate_bignum_tests.py +generated_bignum_test_data: ../scripts/mbedtls_dev/bignum_common.py +generated_bignum_test_data: ../scripts/mbedtls_dev/bignum_core.py generated_bignum_test_data: ../scripts/mbedtls_dev/test_case.py generated_bignum_test_data: ../scripts/mbedtls_dev/test_data_generation.py generated_bignum_test_data: diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 7f332dca07..1eec27b106 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -54,34 +54,19 @@ of BaseTarget in test_data_generation.py. # See the License for the specific language governing permissions and # limitations under the License. -import itertools import sys -import typing -from abc import ABCMeta, abstractmethod -from typing import Iterator, List, Tuple, TypeVar +from abc import ABCMeta +from typing import Iterator import scripts_path # pylint: disable=unused-import from mbedtls_dev import test_case from mbedtls_dev import test_data_generation - -T = TypeVar('T') #pylint: disable=invalid-name - -def hex_to_int(val: str) -> int: - return int(val, 16) if val else 0 - -def quote_str(val) -> str: - return "\"{}\"".format(val) - -def combination_pairs(values: List[T]) -> List[Tuple[T, T]]: - """Return all pair combinations from input values.""" - # The return value is cast, as older versions of mypy are unable to derive - # the specific type returned by itertools.combinations_with_replacement. - return typing.cast( - List[Tuple[T, T]], - list(itertools.combinations_with_replacement(values, 2)) - ) - +from mbedtls_dev import bignum_common +# Import modules containing additional test classes +# Test function classes in these modules will be registered by +# the framework +from mbedtls_dev import bignum_core # pylint: disable=unused-import class BignumTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method @@ -89,36 +74,14 @@ class BignumTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): target_basename = 'test_suite_mpi.generated' -class BignumOperation(BignumTarget, metaclass=ABCMeta): - """Common features for bignum binary operations. - - This adds functionality common in binary operation tests. This includes - generation of case descriptions, using descriptions of values and symbols - to represent the operation or result. - - Attributes: - symbol: Symbol used for the operation in case description. - input_values: List of values to use as test case inputs. These are - combined to produce pairs of values. - input_cases: List of tuples containing pairs of test case inputs. This - can be used to implement specific pairs of inputs. - """ - symbol = "" +class BignumOperation(bignum_common.OperationCommon, BignumTarget, metaclass=ABCMeta): + #pylint: disable=abstract-method + """Common features for bignum operations in legacy tests.""" input_values = [ "", "0", "7b", "-7b", "0000000000000000123", "-0000000000000000123", "1230000000000000000", "-1230000000000000000" - ] # type: List[str] - input_cases = [] # type: List[Tuple[str, str]] - - def __init__(self, val_a: str, val_b: str) -> None: - self.arg_a = val_a - self.arg_b = val_b - self.int_a = hex_to_int(val_a) - self.int_b = hex_to_int(val_b) - - def arguments(self) -> List[str]: - return [quote_str(self.arg_a), quote_str(self.arg_b), self.result()] + ] def description(self) -> str: """Generate a description for the test case. @@ -135,15 +98,6 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): ) return super().description() - @abstractmethod - def result(self) -> str: - """Get the result of the operation. - - This could be calculated during initialization and stored as `_result` - and then returned, or calculated when the method is called. - """ - raise NotImplementedError - @staticmethod def value_description(val) -> str: """Generate a description of the argument val. @@ -167,21 +121,10 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): tmp = "large " + tmp return tmp - @classmethod - def get_value_pairs(cls) -> Iterator[Tuple[str, str]]: - """Generator to yield pairs of inputs. - - Combinations are first generated from all input values, and then - specific cases provided. - """ - yield from combination_pairs(cls.input_values) - yield from cls.input_cases - @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: for a_value, b_value in cls.get_value_pairs(): - cur_op = cls(a_value, b_value) - yield cur_op.create_test_case() + yield cls(a_value, b_value).create_test_case() class BignumCmp(BignumOperation): @@ -221,7 +164,7 @@ class BignumAdd(BignumOperation): symbol = "+" test_function = "mpi_add_mpi" test_name = "MPI add" - input_cases = combination_pairs( + input_cases = bignum_common.combination_pairs( [ "1c67967269c6", "9cde3", "-1c67967269c6", "-9cde3", @@ -229,7 +172,8 @@ class BignumAdd(BignumOperation): ) def result(self) -> str: - return quote_str("{:x}".format(self.int_a + self.int_b)) + return bignum_common.quote_str("{:x}").format(self.int_a + self.int_b) + if __name__ == '__main__': # Use the section of the docstring relevant to the CLI as description From ce769d1fc9fe99e6207fa4a797755ccfabf83f12 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Fri, 30 Sep 2022 16:32:19 +0100 Subject: [PATCH 0780/1028] Add test generation for mpi_core_add_if Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_core.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index b30f8581ae..711ec69ff8 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -70,3 +70,22 @@ class BignumCoreOperation(bignum_common.OperationCommon, BignumCoreTarget, metac for a_value, b_value in cls.get_value_pairs(): yield cls(a_value, b_value).create_test_case() + + +class BignumCoreAddIf(BignumCoreOperation): + """Test cases for bignum core add if.""" + count = 0 + symbol = "+" + test_function = "mpi_core_add_if" + test_name = "mbedtls_mpi_core_add_if" + + def result(self) -> str: + tmp = self.int_a + self.int_b + bound_val = max(self.int_a, self.int_b) + bound_4 = bignum_common.bound_mpi4(bound_val) + bound_8 = bignum_common.bound_mpi8(bound_val) + carry_4, remainder_4 = divmod(tmp, bound_4) + carry_8, remainder_8 = divmod(tmp, bound_8) + return "\"{:x}\":{}:\"{:x}\":{}".format( + remainder_4, carry_4, remainder_8, carry_8 + ) From 6351c7f5f3e1c04bbcb16d164c343847a36baaa5 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Fri, 30 Sep 2022 16:33:11 +0100 Subject: [PATCH 0781/1028] Add test generation for mpi_core_sub Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_core.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 711ec69ff8..a8d6ec216f 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -89,3 +89,24 @@ class BignumCoreAddIf(BignumCoreOperation): return "\"{:x}\":{}:\"{:x}\":{}".format( remainder_4, carry_4, remainder_8, carry_8 ) + + +class BignumCoreSub(BignumCoreOperation): + """Test cases for bignum core sub.""" + count = 0 + symbol = "-" + test_function = "mpi_core_sub" + test_name = "mbedtls_mpi_core_sub" + + def result(self) -> str: + if self.int_a >= self.int_b: + result_4 = result_8 = self.int_a - self.int_b + carry = 0 + else: + bound_val = max(self.int_a, self.int_b) + bound_4 = bignum_common.bound_mpi4(bound_val) + result_4 = bound_4 + self.int_a - self.int_b + bound_8 = bignum_common.bound_mpi8(bound_val) + result_8 = bound_8 + self.int_a - self.int_b + carry = 1 + return "\"{:x}\":\"{:x}\":{}".format(result_4, result_8, carry) From bbf0a32d6770df25d6548b2d9daf4bd2b20b4f11 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 4 Oct 2022 10:07:13 +0100 Subject: [PATCH 0782/1028] Add flag for unique combinations in operations Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_common.py | 13 ++++++++++++- scripts/mbedtls_dev/bignum_core.py | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index b20fe815db..7857dd65c5 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -77,10 +77,14 @@ class OperationCommon: combined to produce pairs of values. input_cases: List of tuples containing pairs of test case inputs. This can be used to implement specific pairs of inputs. + unique_combinations_only: Boolean to select if test case combinations + must be unique. If True, only A,B or B,A would be included as a test + case. If False, both A,B and B,A would be included. """ symbol = "" input_values = [] # type: List[str] input_cases = [] # type: List[Tuple[str, str]] + unique_combinations_only = True def __init__(self, val_a: str, val_b: str) -> None: self.arg_a = val_a @@ -107,5 +111,12 @@ class OperationCommon: Combinations are first generated from all input values, and then specific cases provided. """ - yield from combination_pairs(cls.input_values) + if cls.unique_combinations_only: + yield from combination_pairs(cls.input_values) + else: + yield from ( + (a, b) + for a in cls.input_values + for b in cls.input_values + ) yield from cls.input_cases diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index a8d6ec216f..f2e3db74b1 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -97,6 +97,7 @@ class BignumCoreSub(BignumCoreOperation): symbol = "-" test_function = "mpi_core_sub" test_name = "mbedtls_mpi_core_sub" + unique_combinations_only = False def result(self) -> str: if self.int_a >= self.int_b: From 0a9c48b68ea86e41b0a58b78cae006905590e10f Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 4 Oct 2022 10:08:26 +0100 Subject: [PATCH 0783/1028] Add test generation for mpi_core_mla Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_core.py | 74 +++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 2 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index f2e3db74b1..47b09fd40c 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -15,13 +15,12 @@ # limitations under the License. from abc import ABCMeta -from typing import Iterator +from typing import Iterator, List from . import test_case from . import test_data_generation from . import bignum_common - class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method """Target for bignum core test case generation.""" @@ -111,3 +110,74 @@ class BignumCoreSub(BignumCoreOperation): result_8 = bound_8 + self.int_a - self.int_b carry = 1 return "\"{:x}\":\"{:x}\":{}".format(result_4, result_8, carry) + + +class BignumCoreMLA(BignumCoreOperation): + """Test cases for fixed-size multiply accumulate.""" + count = 0 + test_function = "mpi_core_mla" + test_name = "mbedtls_mpi_core_mla" + unique_combinations_only = False + + input_values = [ + "0", "1", "fffe", "ffffffff", "100000000", "20000000000000", + "ffffffffffffffff", "10000000000000000", "1234567890abcdef0", + "fffffffffffffffffefefefefefefefe", + "100000000000000000000000000000000", + "1234567890abcdef01234567890abcdef0", + "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0", + ( + "4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f" + "34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf17" + "9298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38" + "edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec02507" + "6b12b" + ) + ] # type: List[str] + input_scalars = [ + "0", "3", "fe", "ff", "ffff", "10000", "ffffffff", "100000000", + "7f7f7f7f7f7f7f7f", "8000000000000000", "fffffffffffffffe" + ] # type: List[str] + + def __init__(self, val_a: str, val_b: str, val_s: str) -> None: + super().__init__(val_a, val_b) + self.arg_scalar = val_s + self.int_scalar = bignum_common.hex_to_int(val_s) + if bignum_common.limbs_mpi4(self.int_scalar) > 1: + self.dependencies = ["MBEDTLS_HAVE_INT64"] + + def arguments(self) -> List[str]: + return [ + bignum_common.quote_str(self.arg_a), + bignum_common.quote_str(self.arg_b), + bignum_common.quote_str(self.arg_scalar), + self.result() + ] + + def description(self) -> str: + """Override and add the additional scalar.""" + if not self.case_description: + self.case_description = "0x{} + 0x{} * 0x{}".format( + self.arg_a, self.arg_b, self.arg_scalar + ) + return super().description() + + def result(self) -> str: + result = self.int_a + (self.int_b * self.int_scalar) + bound_val = max(self.int_a, self.int_b) + bound_4 = bignum_common.bound_mpi4(bound_val) + bound_8 = bignum_common.bound_mpi8(bound_val) + carry_4, remainder_4 = divmod(result, bound_4) + carry_8, remainder_8 = divmod(result, bound_8) + return "\"{:x}\":\"{:x}\":\"{:x}\":\"{:x}\"".format( + remainder_4, carry_4, remainder_8, carry_8 + ) + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + """Override for additional scalar input.""" + for a_value, b_value in cls.get_value_pairs(): + for s_value in cls.input_scalars: + cur_op = cls(a_value, b_value, s_value) + yield cur_op.create_test_case() From a850312e9d88fbcd5233acac6bcda87694cfec47 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 4 Oct 2022 10:10:40 +0100 Subject: [PATCH 0784/1028] Add test generation for mpi_core_montmul Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_common.py | 15 + scripts/mbedtls_dev/bignum_core.py | 430 ++++++++++++++++++++++++++- 2 files changed, 444 insertions(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 7857dd65c5..c340cd53a3 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -22,6 +22,21 @@ from typing import Iterator, List, Tuple, TypeVar T = TypeVar('T') #pylint: disable=invalid-name +def invmod(a: int, n: int) -> int: + """Return inverse of a to modulo n. + + Equivalent to pow(a, -1, n) in Python 3.8+. Implementation is equivalent + to long_invmod() in CPython. + """ + b, c = 1, 0 + while n: + q, r = divmod(a, n) + a, b, c, n = n, c, b - q*c, r + # at this point a is the gcd of the original inputs + if a == 1: + return b + raise ValueError("Not invertible") + def hex_to_int(val: str) -> int: return int(val, 16) if val else 0 diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 47b09fd40c..f04db2648b 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -15,7 +15,7 @@ # limitations under the License. from abc import ABCMeta -from typing import Iterator, List +from typing import Iterator, List, Tuple from . import test_case from . import test_data_generation @@ -181,3 +181,431 @@ class BignumCoreMLA(BignumCoreOperation): for s_value in cls.input_scalars: cur_op = cls(a_value, b_value, s_value) yield cur_op.create_test_case() + + +class BignumCoreMontmul(BignumCoreTarget): + """Test cases for Montgomery multiplication.""" + count = 0 + test_function = "mpi_core_montmul" + test_name = "mbedtls_mpi_core_montmul" + + start_2_mpi4 = False + start_2_mpi8 = False + + replay_test_cases = [ + (2, 1, 1, 1, "19", "1", "1D"), (2, 1, 1, 1, "7", "1", "9"), + (2, 1, 1, 1, "4", "1", "9"), + ( + 12, 1, 6, 1, ( + "3C246D0E059A93A266288A7718419EC741661B474C58C032C5EDAF92709402" + "B07CC8C7CE0B781C641A1EA8DB2F4343" + ), "1", ( + "66A198186C18C10B2F5ED9B522752A9830B69916E535C8F047518A889A43A5" + "94B6BED27A168D31D4A52F88925AA8F5" + ) + ), ( + 8, 1, 4, 1, + "1E442976B0E63D64FCCE74B999E470CA9888165CB75BFA1F340E918CE03C6211", + "1", "B3A119602EE213CDE28581ECD892E0F592A338655DCE4CA88054B3D124D0E561" + ), ( + 22, 1, 11, 1, ( + "7CF5AC97304E0B63C65413F57249F59994B0FED1D2A8D3D83ED5FA38560FFB" + "82392870D6D08F87D711917FD7537E13B7E125BE407E74157776839B0AC9DB" + "23CBDFC696104353E4D2780B2B4968F8D8542306BCA7A2366E" + ), "1", ( + "284139EA19C139EBE09A8111926AAA39A2C2BE12ED487A809D3CB5BC558547" + "25B4CDCB5734C58F90B2F60D99CC1950CDBC8D651793E93C9C6F0EAD752500" + "A32C56C62082912B66132B2A6AA42ADA923E1AD22CEB7BA0123" + ) + ) + ] # type: List[Tuple[int, int, int, int, str, str, str]] + + random_test_cases = [ + ("2", "2", "3", ""), ("1", "2", "3", ""), ("2", "1", "3", ""), + ("6", "5", "7", ""), ("3", "4", "7", ""), ("1", "6", "7", ""), ("5", "6", "7", ""), + ("3", "4", "B", ""), ("7", "4", "B", ""), ("9", "7", "B", ""), ("2", "a", "B", ""), + ("25", "16", "29", "(0x29 is prime)"), ("8", "28", "29", ""), + ("18", "21", "29", ""), ("15", "f", "29", ""), + ("e2", "ea", "FF", ""), ("43", "72", "FF", ""), + ("d8", "70", "FF", ""), ("3c", "7c", "FF", ""), + ("99", "b9", "101", "(0x101 is prime)"), ("65", "b2", "101", ""), + ("81", "32", "101", ""), ("51", "dd", "101", ""), + ("d5", "143", "38B", "(0x38B is prime)"), ("3d", "387", "38B", ""), + ("160", "2e5", "38B", ""), ("10f", "137", "38B", ""), + ("7dac", "25a", "8003", "(0x8003 is prime)"), ("6f1c", "3286", "8003", ""), + ("59ed", "2f3f", "8003", ""), ("6893", "736d", "8003", ""), + ("d199", "2832", "10001", "(0x10001 is prime)"), ("c3b2", "3e5b", "10001", ""), + ("abe4", "214e", "10001", ""), ("4360", "a05d", "10001", ""), + ("3f5a1", "165b2", "7F7F7", ""), ("3bd29", "37863", "7F7F7", ""), + ("60c47", "64819", "7F7F7", ""), ("16584", "12c49", "7F7F7", ""), + ("1ff03f", "610347", "800009", "(0x800009 is prime)"), ("340fd5", "19812e", "800009", ""), + ("3fe2e8", "4d0dc7", "800009", ""), ("40356", "e6392", "800009", ""), + ("dd8a1d", "266c0e", "100002B", "(0x100002B is prime)"), + ("3fa1cb", "847fd6", "100002B", ""), ("5f439d", "5c3196", "100002B", ""), + ("18d645", "f72dc6", "100002B", ""), + ("20051ad", "37def6e", "37EEE9D", "(0x37EEE9D is prime)"), + ("2ec140b", "3580dbf", "37EEE9D", ""), ("1d91b46", "190d4fc", "37EEE9D", ""), + ("34e488d", "1224d24", "37EEE9D", ""), + ("2a4fe2cb", "263466a9", "8000000B", "(0x8000000B is prime)"), + ("5643fe94", "29a1aefa", "8000000B", ""), ("29633513", "7b007ac4", "8000000B", ""), + ("2439cef5", "5c9d5a47", "8000000B", ""), + ("4de3cfaa", "50dea178", "8CD626B9", "(0x8CD626B9 is prime)"), + ("b8b8563", "10dbbbac", "8CD626B9", ""), ("4e8a6151", "5574ec19", "8CD626B9", ""), + ("69224878", "309cfc23", "8CD626B9", ""), + ("fb6f7fb6", "afb05423", "10000000F", "(0x10000000F is prime)"), + ("8391a243", "26034dcd", "10000000F", ""), ("d26b98c", "14b2d6aa", "10000000F", ""), + ("6b9f1371", "a21daf1d", "10000000F", ""), + ( + "9f49435ad", "c8264ade8", "174876E7E9", + "0x174876E7E9 is prime (dec) 99999999977" + ), + ("c402da434", "1fb427acf", "174876E7E9", ""), + ("f6ebc2bb1", "1096d39f2a", "174876E7E9", ""), + ("153b7f7b6b", "878fda8ff", "174876E7E9", ""), + ("2c1adbb8d6", "4384d2d3c6", "8000000017", "(0x8000000017 is prime)"), + ("2e4f9cf5fb", "794f3443d9", "8000000017", ""), + ("149e495582", "3802b8f7b7", "8000000017", ""), + ("7b9d49df82", "69c68a442a", "8000000017", ""), + ("683a134600", "6dd80ea9f6", "864CB9076D", "(0x864CB9076D is prime)"), + ("13a870ff0d", "59b099694a", "864CB9076D", ""), + ("37d06b0e63", "4d2147e46f", "864CB9076D", ""), + ("661714f8f4", "22e55df507", "864CB9076D", ""), + ("2f0a96363", "52693307b4", "F7F7F7F7F7", ""), + ("3c85078e64", "f2275ecb6d", "F7F7F7F7F7", ""), + ("352dae68d1", "707775b4c6", "F7F7F7F7F7", ""), + ("37ae0f3e0b", "912113040f", "F7F7F7F7F7", ""), + ("6dada15e31", "f58ed9eff7", "1000000000F", "(0x1000000000F is prime)"), + ("69627a7c89", "cfb5ebd13d", "1000000000F", ""), + ("a5e1ad239b", "afc030c731", "1000000000F", ""), + ("f1cc45f4c5", "c64ad607c8", "1000000000F", ""), + ("2ebad87d2e31", "4c72d90bca78", "800000000005", "(0x800000000005 is prime)"), + ("a30b3cc50d", "29ac4fe59490", "800000000005", ""), + ("33674e9647b4", "5ec7ee7e72d3", "800000000005", ""), + ("3d956f474f61", "74070040257d", "800000000005", ""), + ("48348e3717d6", "43fcb4399571", "800795D9BA47", "(0x800795D9BA47 is prime)"), + ("5234c03cc99b", "2f3cccb87803", "800795D9BA47", ""), + ("3ed13db194ab", "44b8f4ba7030", "800795D9BA47", ""), + ("1c11e843bfdb", "95bd1b47b08", "800795D9BA47", ""), + ("a81d11cb81fd", "1e5753a3f33d", "1000000000015", "(0x1000000000015 is prime)"), + ("688c4db99232", "36fc0cf7ed", "1000000000015", ""), + ("f0720cc07e07", "fc76140ed903", "1000000000015", ""), + ("2ec61f8d17d1", "d270c85e36d2", "1000000000015", ""), + ( + "6a24cd3ab63820", "ed4aad55e5e348", "100000000000051", + "(0x100000000000051 is prime)" + ), + ("e680c160d3b248", "31e0d8840ed510", "100000000000051", ""), + ("a80637e9aebc38", "bb81decc4e1738", "100000000000051", ""), + ("9afa5a59e9d630", "be9e65a6d42938", "100000000000051", ""), + ("ab5e104eeb71c000", "2cffbd639e9fea00", "ABCDEF0123456789", ""), + ("197b867547f68a00", "44b796cf94654800", "ABCDEF0123456789", ""), + ("329f9483a04f2c00", "9892f76961d0f000", "ABCDEF0123456789", ""), + ("4a2e12dfb4545000", "1aa3e89a69794500", "ABCDEF0123456789", ""), + ( + "8b9acdf013d140f000", "12e4ceaefabdf2b2f00", "25A55A46E5DA99C71C7", + "0x25A55A46E5DA99C71C7 is the 3rd repunit prime(dec) 11111111111111111111111" + ), + ("1b8d960ea277e3f5500", "14418aa980e37dd000", "25A55A46E5DA99C71C7", ""), + ("7314524977e8075980", "8172fa45618ccd0d80", "25A55A46E5DA99C71C7", ""), + ("ca14f031769be63580", "147a2f3cf2964ca9400", "25A55A46E5DA99C71C7", ""), + ( + "18532ba119d5cd0cf39735c0000", "25f9838e31634844924733000000", + "314DC643FB763F2B8C0E2DE00879", + "0x314DC643FB763F2B8C0E2DE00879 is (dec)99999999977^3" + ), + ( + "a56e2d2517519e3970e70c40000", "ec27428d4bb380458588fa80000", + "314DC643FB763F2B8C0E2DE00879", "" + ), + ( + "1cb5e8257710e8653fff33a00000", "15fdd42fe440fd3a1d121380000", + "314DC643FB763F2B8C0E2DE00879", "" + ), + ( + "e50d07a65fc6f93e538ce040000", "1f4b059ca609f3ce597f61240000", + "314DC643FB763F2B8C0E2DE00879", "" + ), + ( + "1ea3ade786a095d978d387f30df9f20000000", + "127c448575f04af5a367a7be06c7da0000000", + "47BF19662275FA2F6845C74942ED1D852E521", + "0x47BF19662275FA2F6845C74942ED1D852E521 is (dec) 99999999977^4" + ), + ( + "16e15b0ca82764e72e38357b1f10a20000000", + "43e2355d8514bbe22b0838fdc3983a0000000", + "47BF19662275FA2F6845C74942ED1D852E521", "" + ), + ( + "be39332529d93f25c3d116c004c620000000", + "5cccec42370a0a2c89c6772da801a0000000", + "47BF19662275FA2F6845C74942ED1D852E521", "" + ), + ( + "ecaa468d90de0eeda474d39b3e1fc0000000", + "1e714554018de6dc0fe576bfd3b5660000000", + "47BF19662275FA2F6845C74942ED1D852E521", "" + ), + ( + "32298816711c5dce46f9ba06e775c4bedfc770e6700000000000000", + "8ee751fd5fb24f0b4a653cb3a0c8b7d9e724574d168000000000000", + "97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931", + ( + "0x97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931" + " is (dec) 99999999977^6" + ) + ), + ( + "29213b9df3cfd15f4b428645b67b677c29d1378d810000000000000", + "6cbb732c65e10a28872394dfdd1936d5171c3c3aac0000000000000", + "97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931", "" + ), + ( + "6f18db06ad4abc52c0c50643dd13098abccd4a232f0000000000000", + "7e6bf41f2a86098ad51f98dfc10490ba3e8081bc830000000000000", + "97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931", "" + ), + ( + "62d3286cd706ad9d73caff63f1722775d7e8c731208000000000000", + "530f7ba02ae2b04c2fe3e3d27ec095925631a6c2528000000000000", + "97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931", "" + ), + ( + "a6c6503e3c031fdbf6009a89ed60582b7233c5a85de28b16000000000000000", + "75c8ed18270b583f16d442a467d32bf95c5e491e9b8523798000000000000000", + "DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499", + ( + "0xDD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499" + "is (dec) 99999999977^7" + ) + ), + ( + "bf84d1f85cf6b51e04d2c8f4ffd03532d852053cf99b387d4000000000000000", + "397ba5a743c349f4f28bc583ecd5f06e0a25f9c6d98f09134000000000000000", + "DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499", "" + ), + ( + "6db11c3a4152ed1a2aa6fa34b0903ec82ea1b88908dcb482000000000000000", + "ac8ac576a74ad6ca48f201bf89f77350ce86e821358d85920000000000000000", + "DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499", "" + ), + ( + "3001d96d7fe8b733f33687646fc3017e3ac417eb32e0ec708000000000000000", + "925ddbdac4174e8321a48a32f79640e8cf7ec6f46ea235a80000000000000000", + "DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499", "" + ), + ( + "1029048755f2e60dd98c8de6d9989226b6bb4f0db8e46bd1939de560000000000000000000", + "51bb7270b2e25cec0301a03e8275213bb6c2f6e6ec93d4d46d36ca0000000000000000000", + "141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41", + ( + "0x141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146" + "380E41 is 99999999977^8" + ) + ), + ( + "1c5337ff982b3ad6611257dbff5bbd7a9920ba2d4f5838a0cc681ce000000000000000000", + "520c5d049ca4702031ba728591b665c4d4ccd3b2b86864d4c160fd2000000000000000000", + "141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41", + "" + ), + ( + "57074dfa00e42f6555bae624b7f0209f218adf57f73ed34ab0ff90c000000000000000000", + "41eb14b6c07bfd3d1fe4f4a610c17cc44fcfcda695db040e011065000000000000000000", + "141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41", + "" + ), + ( + "d8ed7feed2fe855e6997ad6397f776158573d425031bf085a615784000000000000000000", + "6f121dcd18c578ab5e229881006007bb6d319b179f11015fe958b9c000000000000000000", + "141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41", + "" + ), + ( + ( + "2a462b156180ea5fe550d3758c764e06fae54e626b5f503265a09df76edbdfbf" + "a1e6000000000000000000000000" + ), ( + "1136f41d1879fd4fb9e49e0943a46b6704d77c068ee237c3121f9071cfd3e6a0" + "0315800000000000000000000000" + ), ( + "2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC90" + "2713E40F51E3B3C214EDFABC451" + ), ( + "0x2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC" + "902713E40F51E3B3C214EDFABC451 is (dec) 99999999977^10" + ) + ), + ( + ( + "c1ac3800dfb3c6954dea391d206200cf3c47f795bf4a5603b4cb88ae7e574de47" + "40800000000000000000000000" + ), ( + "c0d16eda0549ede42fa0deb4635f7b7ce061fadea02ee4d85cba4c4f709603419" + "3c800000000000000000000000" + ), ( + "2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC90" + "2713E40F51E3B3C214EDFABC451" + ), "" + ), + ( + ( + "19e45bb7633094d272588ad2e43bcb3ee341991c6731b6fa9d47c4018d7ce7bba" + "5ee800000000000000000000000" + ), ( + "1e4f83166ae59f6b9cc8fd3e7677ed8bfc01bb99c98bd3eb084246b64c1e18c33" + "65b800000000000000000000000" + ), ( + "2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC90" + "2713E40F51E3B3C214EDFABC451" + ), "" + ), + ( + ( + "1aa93395fad5f9b7f20b8f9028a054c0bb7c11bb8520e6a95e5a34f06cb70bcdd" + "01a800000000000000000000000" + ), ( + "54b45afa5d4310192f8d224634242dd7dcfb342318df3d9bd37b4c614788ba13b" + "8b000000000000000000000000" + ), ( + "2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC90" + "2713E40F51E3B3C214EDFABC451" + ), "" + ), + ( + ( + "544f2628a28cfb5ce0a1b7180ee66b49716f1d9476c466c57f0c4b23089917843" + "06d48f78686115ee19e25400000000000000000000000000000000" + ), ( + "677eb31ef8d66c120fa872a60cd47f6e10cbfdf94f90501bd7883cba03d185be0" + "a0148d1625745e9c4c827300000000000000000000000000000000" + ), ( + "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA1" + "1DABD6E6144BEF37C6800000000000000000000000000000000051" + ), ( + "0x8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBF" + "A11DABD6E6144BEF37C6800000000000000000000000000000000051 is prime," + " (dec) 10^143 + 3^4" + ) + ), + ( + ( + "76bb3470985174915e9993522aec989666908f9e8cf5cb9f037bf4aee33d8865c" + "b6464174795d07e30015b80000000000000000000000000000000" + ), ( + "6aaaf60d5784dcef612d133613b179a317532ecca0eed40b8ad0c01e6d4a6d8c7" + "9a52af190abd51739009a900000000000000000000000000000000" + ), ( + "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA1" + "1DABD6E6144BEF37C6800000000000000000000000000000000051" + ), "" + ), + ( + ( + "6cfdd6e60912e441d2d1fc88f421b533f0103a5322ccd3f4db84861643ad63fd6" + "3d1d8cfbc1d498162786ba00000000000000000000000000000000" + ), ( + "1177246ec5e93814816465e7f8f248b350d954439d35b2b5d75d917218e7fd5fb" + "4c2f6d0667f9467fdcf33400000000000000000000000000000000" + ), ( + "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA1" + "1DABD6E6144BEF37C6800000000000000000000000000000000051" + ), "" + ), + ( + ( + "7a09a0b0f8bbf8057116fb0277a9bdf3a91b5eaa8830d448081510d8973888be5" + "a9f0ad04facb69aa3715f00000000000000000000000000000000" + ), ( + "764dec6c05a1c0d87b649efa5fd94c91ea28bffb4725d4ab4b33f1a3e8e3b314d" + "799020e244a835a145ec9800000000000000000000000000000000" + ), ( + "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA1" + "1DABD6E6144BEF37C6800000000000000000000000000000000051" + ), "" + ) + ] # type: List[Tuple[str, str, str, str]] + + def __init__( + self, val_a: str, val_b: str, val_n: str, case_description: str = "" + ): + self.case_description = case_description + self.arg_a = val_a + self.int_a = bignum_common.hex_to_int(val_a) + self.arg_b = val_b + self.int_b = bignum_common.hex_to_int(val_b) + self.arg_n = val_n + self.int_n = bignum_common.hex_to_int(val_n) + + limbs_a4 = bignum_common.limbs_mpi4(self.int_a) + limbs_a8 = bignum_common.limbs_mpi8(self.int_a) + self.limbs_b4 = bignum_common.limbs_mpi4(self.int_b) + self.limbs_b8 = bignum_common.limbs_mpi8(self.int_b) + self.limbs_an4 = bignum_common.limbs_mpi4(self.int_n) + self.limbs_an8 = bignum_common.limbs_mpi8(self.int_n) + + if limbs_a4 > self.limbs_an4 or limbs_a8 > self.limbs_an8: + raise Exception("Limbs of input A ({}) exceeds N ({})".format( + self.arg_a, self.arg_n + )) + + def arguments(self) -> List[str]: + return [ + str(self.limbs_an4), str(self.limbs_b4), + str(self.limbs_an8), str(self.limbs_b8), + bignum_common.quote_str(self.arg_a), + bignum_common.quote_str(self.arg_b), + bignum_common.quote_str(self.arg_n), + self.result() + ] + + def description(self) -> str: + if self.case_description != "replay": + if not self.start_2_mpi4 and self.limbs_an4 > 1: + tmp = "(start of 2-MPI 4-byte bignums) " + self.__class__.start_2_mpi4 = True + elif not self.start_2_mpi8 and self.limbs_an8 > 1: + tmp = "(start of 2-MPI 8-byte bignums) " + self.__class__.start_2_mpi8 = True + else: + tmp = "(gen) " + self.case_description = tmp + self.case_description + return super().description() + + def result(self) -> str: + """Get the result of the operation.""" + r4 = bignum_common.bound_mpi4_limbs(self.limbs_an4) + i4 = bignum_common.invmod(r4, self.int_n) + x4 = self.int_a * self.int_b * i4 + x4 = x4 % self.int_n + + r8 = bignum_common.bound_mpi8_limbs(self.limbs_an8) + i8 = bignum_common.invmod(r8, self.int_n) + x8 = self.int_a * self.int_b * i8 + x8 = x8 % self.int_n + return "\"{:x}\":\"{:x}\"".format(x4, x8) + + def set_limbs( + self, limbs_an4: int, limbs_b4: int, limbs_an8: int, limbs_b8: int + ) -> None: + """Set number of limbs for each input. + + Replaces default values set during initialization. + """ + self.limbs_an4 = limbs_an4 + self.limbs_b4 = limbs_b4 + self.limbs_an8 = limbs_an8 + self.limbs_b8 = limbs_b8 + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + """Generate replay and randomly generated test cases.""" + # Test cases which replay captured invocations during unit test runs. + for limbs_an4, limbs_b4, limbs_an8, limbs_b8, a, b, n in cls.replay_test_cases: + cur_op = cls(a, b, n, case_description="replay") + cur_op.set_limbs(limbs_an4, limbs_b4, limbs_an8, limbs_b8) + yield cur_op.create_test_case() + # Test cases generated randomly + for a, b, n, description in cls.random_test_cases: + cur_op = cls(a, b, n, case_description=description) + yield cur_op.create_test_case() From 7a2731463b44c2c53751a96a40c591cd63219edc Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 4 Oct 2022 14:57:39 +0100 Subject: [PATCH 0785/1028] Add function to generate random montmul cases Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_core.py | 98 +++++++++++++++++++++++++++++- 1 file changed, 96 insertions(+), 2 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index f04db2648b..bbd0ac4af0 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -14,8 +14,10 @@ # See the License for the specific language governing permissions and # limitations under the License. +import random + from abc import ABCMeta -from typing import Iterator, List, Tuple +from typing import Dict, Iterator, List, Tuple from . import test_case from . import test_data_generation @@ -605,7 +607,99 @@ class BignumCoreMontmul(BignumCoreTarget): cur_op = cls(a, b, n, case_description="replay") cur_op.set_limbs(limbs_an4, limbs_b4, limbs_an8, limbs_b8) yield cur_op.create_test_case() - # Test cases generated randomly + # Random test cases can be generated using mpi_modmul_case_generate() + # Uses a mixture of primes and odd numbers as N, with four randomly + # generated cases for each N. for a, b, n, description in cls.random_test_cases: cur_op = cls(a, b, n, case_description=description) yield cur_op.create_test_case() + + +def mpi_modmul_case_generate() -> None: + """Generate valid inputs for montmul tests using moduli. + + For each modulus, generates random values for A and B and simple descriptions + for the test case. + """ + moduli = [ + ("3", ""), ("7", ""), ("B", ""), ("29", ""), ("FF", ""), + ("101", ""), ("38B", ""), ("8003", ""), ("10001", ""), + ("7F7F7", ""), ("800009", ""), ("100002B", ""), ("37EEE9D", ""), + ("8000000B", ""), ("8CD626B9", ""), ("10000000F", ""), + ("174876E7E9", "is prime (dec) 99999999977"), + ("8000000017", ""), ("864CB9076D", ""), ("F7F7F7F7F7", ""), + ("1000000000F", ""), ("800000000005", ""), ("800795D9BA47", ""), + ("1000000000015", ""), ("100000000000051", ""), ("ABCDEF0123456789", ""), + ( + "25A55A46E5DA99C71C7", + "is the 3rd repunit prime (dec) 11111111111111111111111" + ), + ("314DC643FB763F2B8C0E2DE00879", "is (dec)99999999977^3"), + ("47BF19662275FA2F6845C74942ED1D852E521", "is (dec) 99999999977^4"), + ( + "97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931", + "is (dec) 99999999977^6" + ), + ( + "DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499", + "is (dec) 99999999977^7" + ), + ( + "141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41", + "is (dec) 99999999977^8" + ), + ( + ( + "2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E283" + "3EC902713E40F51E3B3C214EDFABC451" + ), + "is (dec) 99999999977^10" + ), + ( + "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11" + "DABD6E6144BEF37C6800000000000000000000000000000000051", + "is prime, (dec) 10^143 + 3^4" + ) + ] # type: List[Tuple[str, str]] + primes = [ + "3", "7", "B", "29", "101", "38B", "8003", "10001", "800009", + "100002B", "37EEE9D", "8000000B", "8CD626B9", + # From here they require > 1 4-byte MPI + "10000000F", "174876E7E9", "8000000017", "864CB9076D", "1000000000F", + "800000000005", "800795D9BA47", "1000000000015", "100000000000051", + # From here they require > 1 8-byte MPI + "25A55A46E5DA99C71C7", # this is 11111111111111111111111 decimal + # 10^143 + 3^4: (which is prime) + # 100000000000000000000000000000000000000000000000000000000000000000000000000000 + # 000000000000000000000000000000000000000000000000000000000000000081 + ( + "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11" + "DABD6E6144BEF37C6800000000000000000000000000000000051" + ) + ] # type: List[str] + generated_inputs = [] + for mod, description in moduli: + n = bignum_common.hex_to_int(mod) + mod_read = "{:x}".format(n) + if mod_read != mod.lower(): + raise ValueError("Read modulus not equal to input.") + case_count = 3 if n < 5 else 4 + cases = {} # type: Dict[int, int] + i = 0 + while i < case_count: + a = random.randint(1, n) + b = random.randint(1, n) + if cases.get(a) == b: + continue + cases[a] = b + if description: + out_description = "0x{} {}".format(mod_read, description) + elif i == 0 and len(mod) > 1 and mod in primes: + out_description = "(0x{} is prime)" + else: + out_description = "" + generated_inputs.append( + ("{:x}".format(a), "{:x}".format(b), mod, out_description) + ) + i += 1 + print(generated_inputs) From 1b20e7e645b186d1affc75daa2d6e4f6f1b4ac30 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 12 Oct 2022 14:53:17 +0100 Subject: [PATCH 0786/1028] Redefine result() method to return List Many bignum tests have multiple calculated result values, so return these as a list, rather than formatting as a string. Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_common.py | 6 ++-- scripts/mbedtls_dev/bignum_core.py | 47 ++++++++++++++++---------- tests/scripts/generate_bignum_tests.py | 10 +++--- 3 files changed, 38 insertions(+), 25 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index c340cd53a3..88fa4dfd0e 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -108,10 +108,12 @@ class OperationCommon: self.int_b = hex_to_int(val_b) def arguments(self) -> List[str]: - return [quote_str(self.arg_a), quote_str(self.arg_b), self.result()] + return [ + quote_str(self.arg_a), quote_str(self.arg_b) + ] + self.result() @abstractmethod - def result(self) -> str: + def result(self) -> List[str]: """Get the result of the operation. This could be calculated during initialization and stored as `_result` diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index bbd0ac4af0..b4dff89385 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -80,16 +80,19 @@ class BignumCoreAddIf(BignumCoreOperation): test_function = "mpi_core_add_if" test_name = "mbedtls_mpi_core_add_if" - def result(self) -> str: + def result(self) -> List[str]: tmp = self.int_a + self.int_b bound_val = max(self.int_a, self.int_b) bound_4 = bignum_common.bound_mpi4(bound_val) bound_8 = bignum_common.bound_mpi8(bound_val) carry_4, remainder_4 = divmod(tmp, bound_4) carry_8, remainder_8 = divmod(tmp, bound_8) - return "\"{:x}\":{}:\"{:x}\":{}".format( - remainder_4, carry_4, remainder_8, carry_8 - ) + return [ + "\"{:x}\"".format(remainder_4), + str(carry_4), + "\"{:x}\"".format(remainder_8), + str(carry_8) + ] class BignumCoreSub(BignumCoreOperation): @@ -100,7 +103,7 @@ class BignumCoreSub(BignumCoreOperation): test_name = "mbedtls_mpi_core_sub" unique_combinations_only = False - def result(self) -> str: + def result(self) -> List[str]: if self.int_a >= self.int_b: result_4 = result_8 = self.int_a - self.int_b carry = 0 @@ -111,7 +114,11 @@ class BignumCoreSub(BignumCoreOperation): bound_8 = bignum_common.bound_mpi8(bound_val) result_8 = bound_8 + self.int_a - self.int_b carry = 1 - return "\"{:x}\":\"{:x}\":{}".format(result_4, result_8, carry) + return [ + "\"{:x}\"".format(result_4), + "\"{:x}\"".format(result_8), + str(carry) + ] class BignumCoreMLA(BignumCoreOperation): @@ -153,9 +160,8 @@ class BignumCoreMLA(BignumCoreOperation): return [ bignum_common.quote_str(self.arg_a), bignum_common.quote_str(self.arg_b), - bignum_common.quote_str(self.arg_scalar), - self.result() - ] + bignum_common.quote_str(self.arg_scalar) + ] + self.result() def description(self) -> str: """Override and add the additional scalar.""" @@ -165,16 +171,19 @@ class BignumCoreMLA(BignumCoreOperation): ) return super().description() - def result(self) -> str: + def result(self) -> List[str]: result = self.int_a + (self.int_b * self.int_scalar) bound_val = max(self.int_a, self.int_b) bound_4 = bignum_common.bound_mpi4(bound_val) bound_8 = bignum_common.bound_mpi8(bound_val) carry_4, remainder_4 = divmod(result, bound_4) carry_8, remainder_8 = divmod(result, bound_8) - return "\"{:x}\":\"{:x}\":\"{:x}\":\"{:x}\"".format( - remainder_4, carry_4, remainder_8, carry_8 - ) + return [ + "\"{:x}\"".format(remainder_4), + "\"{:x}\"".format(carry_4), + "\"{:x}\"".format(remainder_8), + "\"{:x}\"".format(carry_8) + ] @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: @@ -557,9 +566,8 @@ class BignumCoreMontmul(BignumCoreTarget): str(self.limbs_an8), str(self.limbs_b8), bignum_common.quote_str(self.arg_a), bignum_common.quote_str(self.arg_b), - bignum_common.quote_str(self.arg_n), - self.result() - ] + bignum_common.quote_str(self.arg_n) + ] + self.result() def description(self) -> str: if self.case_description != "replay": @@ -574,7 +582,7 @@ class BignumCoreMontmul(BignumCoreTarget): self.case_description = tmp + self.case_description return super().description() - def result(self) -> str: + def result(self) -> List[str]: """Get the result of the operation.""" r4 = bignum_common.bound_mpi4_limbs(self.limbs_an4) i4 = bignum_common.invmod(r4, self.int_n) @@ -585,7 +593,10 @@ class BignumCoreMontmul(BignumCoreTarget): i8 = bignum_common.invmod(r8, self.int_n) x8 = self.int_a * self.int_b * i8 x8 = x8 % self.int_n - return "\"{:x}\":\"{:x}\"".format(x4, x8) + return [ + "\"{:x}\"".format(x4), + "\"{:x}\"".format(x8) + ] def set_limbs( self, limbs_an4: int, limbs_b4: int, limbs_an8: int, limbs_b8: int diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 1eec27b106..493582968e 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -57,7 +57,7 @@ of BaseTarget in test_data_generation.py. import sys from abc import ABCMeta -from typing import Iterator +from typing import Iterator, List import scripts_path # pylint: disable=unused-import from mbedtls_dev import test_case @@ -144,8 +144,8 @@ class BignumCmp(BignumOperation): self._result = int(self.int_a > self.int_b) - int(self.int_a < self.int_b) self.symbol = ["<", "==", ">"][self._result + 1] - def result(self) -> str: - return str(self._result) + def result(self) -> List[str]: + return [str(self._result)] class BignumCmpAbs(BignumCmp): @@ -171,8 +171,8 @@ class BignumAdd(BignumOperation): ] ) - def result(self) -> str: - return bignum_common.quote_str("{:x}").format(self.int_a + self.int_b) + def result(self) -> List[str]: + return [bignum_common.quote_str("{:x}").format(self.int_a + self.int_b)] if __name__ == '__main__': From ffe44789367fc7824f532452f0edb0231d692059 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 12 Oct 2022 17:15:26 +0100 Subject: [PATCH 0787/1028] Move mpi_core_bitlen tests to bignum_core files Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_core.data | 27 ++++++++++++++++++++ tests/suites/test_suite_bignum_core.function | 14 ++++++++++ tests/suites/test_suite_mpi.data | 27 -------------------- tests/suites/test_suite_mpi.function | 14 ---------- 4 files changed, 41 insertions(+), 41 deletions(-) diff --git a/tests/suites/test_suite_bignum_core.data b/tests/suites/test_suite_bignum_core.data index d61acd00ee..0300151540 100644 --- a/tests/suites/test_suite_bignum_core.data +++ b/tests/suites/test_suite_bignum_core.data @@ -131,6 +131,33 @@ mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290 Test mbedtls_mpi_core_io_le #21 (Buffer and limbs fit, input unaligned, odd number of limbs) mpi_core_io_le:"de4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b442400":82:21:0:0 +Test mbedtls_mpi_core_bitlen 764-bit +mpi_core_bitlen:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":764 + +Test mbedtls_mpi_core_bitlen 0x18 +mpi_core_bitlen:"18":5 + +Test mbedtls_mpi_core_bitlen 0x18 with leading 0 limb(s) +mpi_core_bitlen:"00000000000000018":5 + +Test mbedtls_mpi_core_bitlen 0x18 << 64 +mpi_core_bitlen:"180000000000000000":69 + +Test mbedtls_mpi_core_bitlen 0x01 +mpi_core_bitlen:"1":1 + +Test mbedtls_mpi_core_bitlen 0x0f +mpi_core_bitlen:"f":4 + +Test mbedtls_mpi_core_bitlen 0x10 +mpi_core_bitlen:"10":5 + +Test mbedtls_mpi_core_bitlen 0x0a +mpi_core_bitlen:"a":4 + +Test mbedtls_mpi_core_bitlen: 0 (1 limb) +mpi_core_bitlen:"0":0 + mbedtls_mpi_core_lt_ct: x=y (1 limb) mpi_core_lt_ct:"2B5":"2B5":0 diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index a24bade199..2bd8aac28f 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -155,6 +155,20 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_core_bitlen( char *input_X, int nr_bits ) +{ + mbedtls_mpi_uint *X = NULL; + size_t limbs; + + TEST_EQUAL( mbedtls_test_read_mpi_core( &X, &limbs, input_X ), 0 ); + TEST_EQUAL( mbedtls_mpi_core_bitlen( X, limbs ), nr_bits ); + +exit: + mbedtls_free( X ); +} +/* END_CASE */ + /* BEGIN_CASE */ void mpi_core_lt_ct( char *input_X, char *input_Y, int exp_ret ) { diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index fca63372a2..93279a658e 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -139,33 +139,6 @@ mpi_lsb:"24":2 Base test mbedtls_mpi_lsb #4 mpi_lsb:"2000":13 -Test mbedtls_mpi_core_bitlen 764-bit -mpi_core_bitlen:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":764 - -Test mbedtls_mpi_core_bitlen 0x18 -mpi_core_bitlen:"18":5 - -Test mbedtls_mpi_core_bitlen 0x18 with leading 0 limb(s) -mpi_core_bitlen:"00000000000000018":5 - -Test mbedtls_mpi_core_bitlen 0x18 << 64 -mpi_core_bitlen:"180000000000000000":69 - -Test mbedtls_mpi_core_bitlen 0x01 -mpi_core_bitlen:"1":1 - -Test mbedtls_mpi_core_bitlen 0x0f -mpi_core_bitlen:"f":4 - -Test mbedtls_mpi_core_bitlen 0x10 -mpi_core_bitlen:"10":5 - -Test mbedtls_mpi_core_bitlen 0x0a -mpi_core_bitlen:"a":4 - -Test mbedtls_mpi_core_bitlen: 0 (1 limb) -mpi_core_bitlen:"0":0 - Test mbedtls_mpi_bitlen 764-bit mpi_bitlen:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":764 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index c26766b2cc..4e82a4b471 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -394,20 +394,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ -void mpi_core_bitlen( char *input_X, int nr_bits ) -{ - mbedtls_mpi_uint *X = NULL; - size_t limbs; - - TEST_EQUAL( mbedtls_test_read_mpi_core( &X, &limbs, input_X ), 0 ); - TEST_EQUAL( mbedtls_mpi_core_bitlen( X, limbs ), nr_bits ); - -exit: - mbedtls_free( X ); -} -/* END_CASE */ - /* BEGIN_CASE */ void mpi_bitlen( char * input_X, int nr_bits ) { From 2295eecb1223ae53a5c4972b5cae42ab59e6b7dc Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 18 Oct 2022 15:42:51 +0100 Subject: [PATCH 0788/1028] Add missing space in string Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_core.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index b4dff89385..a300225abb 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -387,7 +387,7 @@ class BignumCoreMontmul(BignumCoreTarget): "DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499", ( "0xDD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499" - "is (dec) 99999999977^7" + " is (dec) 99999999977^7" ) ), ( From 6baf12b18d0aa2905ccf8dfeedc033e4d08f26e4 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 19 Oct 2022 12:46:35 +0100 Subject: [PATCH 0789/1028] Move legacy mod functions back to test_suite_mpi Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_mod.data | 60 --------------------- tests/suites/test_suite_bignum_mod.function | 60 --------------------- tests/suites/test_suite_mpi.data | 60 +++++++++++++++++++++ tests/suites/test_suite_mpi.function | 46 ++++++++++++++++ 4 files changed, 106 insertions(+), 120 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index c76dad8f8e..cb781403d6 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -24,63 +24,3 @@ mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 Test mbedtls_mpi_mod_setup #9 (Both representations valid) mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 - -Base test mbedtls_mpi_mod_mpi #1 -mpi_mod_mpi:"3e8":"d":"c":0 - -Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (null)) -mpi_mod_mpi:"3e8":"":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO - -Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (1 limb)) -mpi_mod_mpi:"3e8":"0":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO - -Base test mbedtls_mpi_mod_mpi #3 -mpi_mod_mpi:"-3e8":"d":"1":0 - -Base test mbedtls_mpi_mod_mpi #4 (Negative modulo) -mpi_mod_mpi:"3e8":"-d":"-1":MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Base test mbedtls_mpi_mod_mpi #5 (Negative modulo) -mpi_mod_mpi:"-3e8":"-d":"-c":MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Test mbedtls_mpi_mod_mpi: 0 (null) % 1 -mpi_mod_mpi:"":"1":"":0 - -Test mbedtls_mpi_mod_mpi: 0 (null) % -1 -mpi_mod_mpi:"":"-1":"":MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Base test mbedtls_mpi_mod_int #1 -mpi_mod_int:"3e8":13:12:0 - -Base test mbedtls_mpi_mod_int #2 (Divide by zero) -mpi_mod_int:"3e8":0:0:MBEDTLS_ERR_MPI_DIVISION_BY_ZERO - -Base test mbedtls_mpi_mod_int #3 -mpi_mod_int:"-3e8":13:1:0 - -Base test mbedtls_mpi_mod_int #4 (Negative modulo) -mpi_mod_int:"3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Base test mbedtls_mpi_mod_int #5 (Negative modulo) -mpi_mod_int:"-3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Base test mbedtls_mpi_mod_int #6 (By 1) -mpi_mod_int:"3e8":1:0:0 - -Base test mbedtls_mpi_mod_int #7 (By 2) -mpi_mod_int:"3e9":2:1:0 - -Base test mbedtls_mpi_mod_int #8 (By 2) -mpi_mod_int:"3e8":2:0:0 - -Test mbedtls_mpi_mod_int: 0 (null) % 1 -mpi_mod_int:"":1:0:0 - -Test mbedtls_mpi_mod_int: 0 (null) % 2 -mpi_mod_int:"":2:0:0 - -Test mbedtls_mpi_mod_int: 0 (null) % -1 -mpi_mod_int:"":-1:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Test mbedtls_mpi_mod_int: 0 (null) % -2 -mpi_mod_int:"":-2:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 1543623067..9f73209656 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -4,19 +4,6 @@ #include "bignum_mod.h" #include "constant_time_internal.h" #include "test/constant_flow.h" - -/* Check the validity of the sign bit in an MPI object. Reject representations - * that are not supported by the rest of the library and indicate a bug when - * constructing the value. */ -static int sign_is_valid( const mbedtls_mpi *X ) -{ - if( X->s != 1 && X->s != -1 ) - return( 0 ); // invalid sign bit, e.g. 0 - if( mbedtls_mpi_bitlen( X ) == 0 && X->s != 1 ) - return( 0 ); // negative zero - return( 1 ); -} - /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -51,50 +38,3 @@ exit: #undef MLIMBS } /* END_CASE */ - - -/* BEGIN_CASE */ -void mpi_mod_mpi( char * input_X, char * input_Y, - char * input_A, int div_result ) -{ - mbedtls_mpi X, Y, A; - int res; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &A ); - - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - res = mbedtls_mpi_mod_mpi( &X, &X, &Y ); - TEST_ASSERT( res == div_result ); - if( res == 0 ) - { - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); - } - -exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &A ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_mod_int( char * input_X, int input_Y, - int input_A, int div_result ) -{ - mbedtls_mpi X; - int res; - mbedtls_mpi_uint r; - mbedtls_mpi_init( &X ); - - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - res = mbedtls_mpi_mod_int( &r, &X, input_Y ); - TEST_ASSERT( res == div_result ); - if( res == 0 ) - { - TEST_ASSERT( r == (mbedtls_mpi_uint) input_A ); - } - -exit: - mbedtls_mpi_free( &X ); -} -/* END_CASE */ diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 93279a658e..794031901a 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -1258,6 +1258,66 @@ mpi_div_int:"00":0:"":"":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Test mbedtls_mpi_div_int: 0 (null) / 1 mpi_div_int:"":1:"":"":0 +Base test mbedtls_mpi_mod_mpi #1 +mpi_mod_mpi:"3e8":"d":"c":0 + +Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (null)) +mpi_mod_mpi:"3e8":"":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO + +Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (1 limb)) +mpi_mod_mpi:"3e8":"0":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO + +Base test mbedtls_mpi_mod_mpi #3 +mpi_mod_mpi:"-3e8":"d":"1":0 + +Base test mbedtls_mpi_mod_mpi #4 (Negative modulo) +mpi_mod_mpi:"3e8":"-d":"-1":MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Base test mbedtls_mpi_mod_mpi #5 (Negative modulo) +mpi_mod_mpi:"-3e8":"-d":"-c":MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Test mbedtls_mpi_mod_mpi: 0 (null) % 1 +mpi_mod_mpi:"":"1":"":0 + +Test mbedtls_mpi_mod_mpi: 0 (null) % -1 +mpi_mod_mpi:"":"-1":"":MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Base test mbedtls_mpi_mod_int #1 +mpi_mod_int:"3e8":13:12:0 + +Base test mbedtls_mpi_mod_int #2 (Divide by zero) +mpi_mod_int:"3e8":0:0:MBEDTLS_ERR_MPI_DIVISION_BY_ZERO + +Base test mbedtls_mpi_mod_int #3 +mpi_mod_int:"-3e8":13:1:0 + +Base test mbedtls_mpi_mod_int #4 (Negative modulo) +mpi_mod_int:"3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Base test mbedtls_mpi_mod_int #5 (Negative modulo) +mpi_mod_int:"-3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Base test mbedtls_mpi_mod_int #6 (By 1) +mpi_mod_int:"3e8":1:0:0 + +Base test mbedtls_mpi_mod_int #7 (By 2) +mpi_mod_int:"3e9":2:1:0 + +Base test mbedtls_mpi_mod_int #8 (By 2) +mpi_mod_int:"3e8":2:0:0 + +Test mbedtls_mpi_mod_int: 0 (null) % 1 +mpi_mod_int:"":1:0:0 + +Test mbedtls_mpi_mod_int: 0 (null) % 2 +mpi_mod_int:"":2:0:0 + +Test mbedtls_mpi_mod_int: 0 (null) % -1 +mpi_mod_int:"":-1:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Test mbedtls_mpi_mod_int: 0 (null) % -2 +mpi_mod_int:"":-2:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE + Base test mbedtls_mpi_exp_mod #1 mpi_exp_mod:"17":"d":"1d":"18":0 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 4e82a4b471..db274100ad 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1244,6 +1244,52 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_mod_mpi( char * input_X, char * input_Y, + char * input_A, int div_result ) +{ + mbedtls_mpi X, Y, A; + int res; + mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &A ); + + TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); + TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); + TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); + res = mbedtls_mpi_mod_mpi( &X, &X, &Y ); + TEST_ASSERT( res == div_result ); + if( res == 0 ) + { + TEST_ASSERT( sign_is_valid( &X ) ); + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); + } + +exit: + mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &A ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_int( char * input_X, int input_Y, + int input_A, int div_result ) +{ + mbedtls_mpi X; + int res; + mbedtls_mpi_uint r; + mbedtls_mpi_init( &X ); + + TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); + res = mbedtls_mpi_mod_int( &r, &X, input_Y ); + TEST_ASSERT( res == div_result ); + if( res == 0 ) + { + TEST_ASSERT( r == (mbedtls_mpi_uint) input_A ); + } + +exit: + mbedtls_mpi_free( &X ); +} +/* END_CASE */ + /* BEGIN_CASE */ void mpi_exp_mod( char * input_A, char * input_E, char * input_N, char * input_X, From 63653b9b0a40ca10b946d89a6ad2cf3d84e9b62a Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 19 Oct 2022 13:37:12 +0100 Subject: [PATCH 0790/1028] Remove unnecessary check Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_core.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index a300225abb..1bd2482669 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -692,8 +692,6 @@ def mpi_modmul_case_generate() -> None: for mod, description in moduli: n = bignum_common.hex_to_int(mod) mod_read = "{:x}".format(n) - if mod_read != mod.lower(): - raise ValueError("Read modulus not equal to input.") case_count = 3 if n < 5 else 4 cases = {} # type: Dict[int, int] i = 0 From f86c82e8f3d504b775dc89f7e0143e4d0d918fae Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 19 Oct 2022 13:50:10 +0100 Subject: [PATCH 0791/1028] Pass bits_in_limb parameter to duplicated methods Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_common.py | 31 ++++++++-------------------- scripts/mbedtls_dev/bignum_core.py | 30 +++++++++++++-------------- 2 files changed, 24 insertions(+), 37 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 88fa4dfd0e..c81770ed7d 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -43,31 +43,18 @@ def hex_to_int(val: str) -> int: def quote_str(val) -> str: return "\"{}\"".format(val) -def bound_mpi8(val: int) -> int: - """First number exceeding 8-byte limbs needed for given input value.""" - return bound_mpi8_limbs(limbs_mpi8(val)) +def bound_mpi(val: int, bits_in_limb: int) -> int: + """First number exceeding number of limbs needed for given input value.""" + return bound_mpi_limbs(limbs_mpi(val, bits_in_limb), bits_in_limb) -def bound_mpi4(val: int) -> int: - """First number exceeding 4-byte limbs needed for given input value.""" - return bound_mpi4_limbs(limbs_mpi4(val)) - -def bound_mpi8_limbs(limbs: int) -> int: - """First number exceeding maximum of given 8-byte limbs.""" - bits = 64 * limbs +def bound_mpi_limbs(limbs: int, bits_in_limb: int) -> int: + """First number exceeding maximum of given number of limbs.""" + bits = bits_in_limb * limbs return 1 << bits -def bound_mpi4_limbs(limbs: int) -> int: - """First number exceeding maximum of given 4-byte limbs.""" - bits = 32 * limbs - return 1 << bits - -def limbs_mpi8(val: int) -> int: - """Return the number of 8-byte limbs required to store value.""" - return (val.bit_length() + 63) // 64 - -def limbs_mpi4(val: int) -> int: - """Return the number of 4-byte limbs required to store value.""" - return (val.bit_length() + 31) // 32 +def limbs_mpi(val: int, bits_in_limb: int) -> int: + """Return the number of limbs required to store value.""" + return (val.bit_length() + bits_in_limb - 1) // bits_in_limb def combination_pairs(values: List[T]) -> List[Tuple[T, T]]: """Return all pair combinations from input values. diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 1bd2482669..3652ac20ab 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -83,8 +83,8 @@ class BignumCoreAddIf(BignumCoreOperation): def result(self) -> List[str]: tmp = self.int_a + self.int_b bound_val = max(self.int_a, self.int_b) - bound_4 = bignum_common.bound_mpi4(bound_val) - bound_8 = bignum_common.bound_mpi8(bound_val) + bound_4 = bignum_common.bound_mpi(bound_val, 32) + bound_8 = bignum_common.bound_mpi(bound_val, 64) carry_4, remainder_4 = divmod(tmp, bound_4) carry_8, remainder_8 = divmod(tmp, bound_8) return [ @@ -109,9 +109,9 @@ class BignumCoreSub(BignumCoreOperation): carry = 0 else: bound_val = max(self.int_a, self.int_b) - bound_4 = bignum_common.bound_mpi4(bound_val) + bound_4 = bignum_common.bound_mpi(bound_val, 32) result_4 = bound_4 + self.int_a - self.int_b - bound_8 = bignum_common.bound_mpi8(bound_val) + bound_8 = bignum_common.bound_mpi(bound_val, 64) result_8 = bound_8 + self.int_a - self.int_b carry = 1 return [ @@ -153,7 +153,7 @@ class BignumCoreMLA(BignumCoreOperation): super().__init__(val_a, val_b) self.arg_scalar = val_s self.int_scalar = bignum_common.hex_to_int(val_s) - if bignum_common.limbs_mpi4(self.int_scalar) > 1: + if bignum_common.limbs_mpi(self.int_scalar, 32) > 1: self.dependencies = ["MBEDTLS_HAVE_INT64"] def arguments(self) -> List[str]: @@ -174,8 +174,8 @@ class BignumCoreMLA(BignumCoreOperation): def result(self) -> List[str]: result = self.int_a + (self.int_b * self.int_scalar) bound_val = max(self.int_a, self.int_b) - bound_4 = bignum_common.bound_mpi4(bound_val) - bound_8 = bignum_common.bound_mpi8(bound_val) + bound_4 = bignum_common.bound_mpi(bound_val, 32) + bound_8 = bignum_common.bound_mpi(bound_val, 64) carry_4, remainder_4 = divmod(result, bound_4) carry_8, remainder_8 = divmod(result, bound_8) return [ @@ -548,12 +548,12 @@ class BignumCoreMontmul(BignumCoreTarget): self.arg_n = val_n self.int_n = bignum_common.hex_to_int(val_n) - limbs_a4 = bignum_common.limbs_mpi4(self.int_a) - limbs_a8 = bignum_common.limbs_mpi8(self.int_a) - self.limbs_b4 = bignum_common.limbs_mpi4(self.int_b) - self.limbs_b8 = bignum_common.limbs_mpi8(self.int_b) - self.limbs_an4 = bignum_common.limbs_mpi4(self.int_n) - self.limbs_an8 = bignum_common.limbs_mpi8(self.int_n) + limbs_a4 = bignum_common.limbs_mpi(self.int_a, 32) + limbs_a8 = bignum_common.limbs_mpi(self.int_a, 64) + self.limbs_b4 = bignum_common.limbs_mpi(self.int_b, 32) + self.limbs_b8 = bignum_common.limbs_mpi(self.int_b, 64) + self.limbs_an4 = bignum_common.limbs_mpi(self.int_n, 32) + self.limbs_an8 = bignum_common.limbs_mpi(self.int_n, 64) if limbs_a4 > self.limbs_an4 or limbs_a8 > self.limbs_an8: raise Exception("Limbs of input A ({}) exceeds N ({})".format( @@ -584,12 +584,12 @@ class BignumCoreMontmul(BignumCoreTarget): def result(self) -> List[str]: """Get the result of the operation.""" - r4 = bignum_common.bound_mpi4_limbs(self.limbs_an4) + r4 = bignum_common.bound_mpi_limbs(self.limbs_an4, 32) i4 = bignum_common.invmod(r4, self.int_n) x4 = self.int_a * self.int_b * i4 x4 = x4 % self.int_n - r8 = bignum_common.bound_mpi8_limbs(self.limbs_an8) + r8 = bignum_common.bound_mpi_limbs(self.limbs_an8, 64) i8 = bignum_common.invmod(r8, self.int_n) x8 = self.int_a * self.int_b * i8 x8 = x8 % self.int_n From bd3ddafee204db634c9c03bc567ba4b5bf2c8c85 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 19 Oct 2022 15:15:29 +0100 Subject: [PATCH 0792/1028] Move tests added in #6289 Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_core.data | 39 +++ tests/suites/test_suite_bignum_core.function | 142 ++++++++ tests/suites/test_suite_bignum_mod_raw.data | 39 +++ .../suites/test_suite_bignum_mod_raw.function | 168 ++++++++++ tests/suites/test_suite_mpi.data | 78 ----- tests/suites/test_suite_mpi.function | 310 ------------------ 6 files changed, 388 insertions(+), 388 deletions(-) diff --git a/tests/suites/test_suite_bignum_core.data b/tests/suites/test_suite_bignum_core.data index 0300151540..cb6fe424b0 100644 --- a/tests/suites/test_suite_bignum_core.data +++ b/tests/suites/test_suite_bignum_core.data @@ -245,6 +245,45 @@ mpi_core_lt_ct:"11FFFFFFFFFFFFFFFF":"FF1111111111111111":1 mbedtls_mpi_core_lt_ct: x>y (alternating limbs) mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 +mbedtls_mpi_core_cond_assign: 1 limb +mpi_core_cond_assign:"FFFFFFFF":"11111111":4 + +mbedtls_mpi_core_cond_assign: more limbs #1 +mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 + +mbedtls_mpi_core_cond_assign: more limbs #2 +mpi_core_cond_assign:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 + +mbedtls_mpi_core_cond_assign: more limbs #3 +mpi_core_cond_assign:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 + +mbedtls_mpi_core_cond_assign: copy 256 bytes of limbs +mpi_core_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"6E3173EEAC8D68A5AB53D259F32D9E9C298FD2C4FAD3BEE9151DC103EA2382F5480C7D11F451C060A1E3D887E05A620EF6395763CB7A40FC473DD0771456A018E18635EA971C36DCAD09D60E8BD0E2E0CCD1AECB8BE0ABA881DBE60163F6C45947EC0B05FDAAA3DF944627DD4FACBAD3FF2AB4B99D91E548C06A4AF320A9CA0D2FD0CB19B90B9D6A8BF59CB631DD925B6DEA621FE962099D3D0BED6B13C0C546DC6B563A7FC63B1B77D277897DD7B9DF28C4C9213A183B83D982964C6AD8192CE7354B11ED727EDEF85074C46E4E2E6C1728FB7980385CDB36512F927847C6A14A118624ABC12B09DBEE60D651B5431AAD982228C61655EABB80C263871AE1CF":256 + +mbedtls_mpi_core_cond_assign: copy half of the limbs +mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 + +mbedtls_mpi_core_cond_swap: same value +mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":4 + +mbedtls_mpi_core_cond_swap: 1 limb +mpi_core_cond_swap:"FFFFFFFF":"11111111":4 + +mbedtls_mpi_core_cond_swap: more limbs #1 +mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 + +mbedtls_mpi_core_cond_swap: more limbs #2 +mpi_core_cond_swap:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 + +mbedtls_mpi_core_cond_swap: more limbs #3 +mpi_core_cond_swap:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 + +mbedtls_mpi_core_cond_swap: copy 256 bytes of limbs +mpi_core_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"9FBBA284460D8EAB5E0D66B634BD18FBA58C0C25417DD637526A7622C6425B46E09AEFBB8C2340AC823DFE990A62C85DB23BCDBEA734134606CEEB4BCF7444569D5EC4E32341ED09D7A5D0BB8B11D7B726BAECCF37D4FC1BEBD892CADD7BE9E093343C1A68D7A188DFE145C1EDBD8048B24E20A076F981D75ABE44318ADC40ED316C444774B6A90D3EE49557315AA6FAB162A498C0B2E2C15BD94186A665E12DDC39211583FA5F21218A3B46999FEBA4DFF454FB6ED35B8F3AE5F8EA840838BD76006DA112F85EDAA2CC07518FFC9724D5695BAF74F16C8D1A3A06029D2F5C1023D9E8A84D1267BD9AF82D1F5F77092D34BE4E8C4D1EA8C58F90B094DCFD6920":256 + +mbedtls_mpi_core_cond_swap: copy half of the limbs +mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 + mbedtls_mpi_montg_init #1 mpi_montg_init:"000000000000001d":"cb08d3dcb08d3dcb" diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 2bd8aac28f..de8b7f194a 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -196,6 +196,148 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_core_cond_assign( data_t * input_X, + data_t * input_Y, + int input_bytes ) +{ + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; + size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); + size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t limbs = limbs_X; + size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); + size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); + + TEST_EQUAL( limbs_X, limbs_Y ); + TEST_ASSERT( copy_limbs <= limbs ); + + ASSERT_ALLOC( X, limbs ); + ASSERT_ALLOC( Y, limbs ); + + TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, input_X->x, input_X->len ) + == 0 ); + + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs, input_Y->x, input_Y->len ) + == 0 ); + + /* condition is false */ + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); + + mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 0 ); + + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); + + /* condition is true */ + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); + + mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 1 ); + + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + + /* Check if the given length is copied even it is smaller + than the length of the given MPIs. */ + if( copy_limbs < limbs ) + { + ASSERT_COMPARE( X, copy_bytes, Y, copy_bytes ); + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); + } + else + ASSERT_COMPARE( X, bytes, Y, bytes ); + +exit: + mbedtls_free( X ); + mbedtls_free( Y ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_cond_swap( data_t * input_X, + data_t * input_Y, + int input_bytes ) +{ + mbedtls_mpi_uint *tmp_X = NULL; + mbedtls_mpi_uint *tmp_Y = NULL; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; + size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); + size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t limbs = limbs_X; + size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); + size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); + + TEST_EQUAL( limbs_X, limbs_Y ); + TEST_ASSERT( copy_limbs <= limbs ); + + ASSERT_ALLOC( tmp_X, limbs ); + ASSERT_ALLOC( tmp_Y, limbs ); + + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, + input_X->x, input_X->len ) + == 0 ); + ASSERT_ALLOC( X, limbs ); + memcpy( X, tmp_X, bytes ); + + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, + input_Y->x, input_Y->len ) + == 0 ); + ASSERT_ALLOC( Y, limbs ); + memcpy( Y, tmp_Y, bytes ); + + /* condition is false */ + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); + + mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 0 ); + + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + + ASSERT_COMPARE( X, bytes, tmp_X, bytes ); + ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); + + /* condition is true */ + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); + + mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 1 ); + + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + + /* Check if the given length is copied even it is smaller + than the length of the given MPIs. */ + if( copy_limbs < limbs ) + { + ASSERT_COMPARE( X, copy_bytes, tmp_Y, copy_bytes ); + ASSERT_COMPARE( Y, copy_bytes, tmp_X, copy_bytes ); + TEST_ASSERT( memcmp( X, tmp_X, bytes ) != 0 ); + TEST_ASSERT( memcmp( X, tmp_Y, bytes ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_X, bytes ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_Y, bytes ) != 0 ); + } + else + { + ASSERT_COMPARE( X, bytes, tmp_Y, bytes ); + ASSERT_COMPARE( Y, bytes, tmp_X, bytes ); + } + +exit: + mbedtls_free( tmp_X ); + mbedtls_free( tmp_Y ); + mbedtls_free( X ); + mbedtls_free( Y ); +} +/* END_CASE */ + /* BEGIN_CASE */ void mpi_core_add_if( char * input_A, char * input_B, char * input_S4, int carry4, diff --git a/tests/suites/test_suite_bignum_mod_raw.data b/tests/suites/test_suite_bignum_mod_raw.data index 6b5bb645ee..788165d1a6 100644 --- a/tests/suites/test_suite_bignum_mod_raw.data +++ b/tests/suites/test_suite_bignum_mod_raw.data @@ -139,3 +139,42 @@ mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_ Test mbedtls_mpi_mod_raw_io #22 (writing with invalid endianness) mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mbedtls_mpi_mod_raw_cond_assign: 1 limb +mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":4 + +mbedtls_mpi_mod_raw_cond_assign: more limbs #1 +mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 + +mbedtls_mpi_mod_raw_cond_assign: more limbs #2 +mpi_mod_raw_cond_assign:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 + +mbedtls_mpi_mod_raw_cond_assign: more limbs #3 +mpi_mod_raw_cond_assign:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 + +mbedtls_mpi_mod_raw_cond_assign: copy 256 bytes of limbs +mpi_mod_raw_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"38AAE958A11CCE9F4B4D0EDF64D31DF6FEA451D56B3BAB3DB796739B96C5C9C619DAE2AD5394D41FC3746A4F35BA186F02D908E900A2BA5AC95D494378A6A6FC619801DA3F3B4C5BAAA49B16DD3B2EF9AFB4B82449F90628E1438405D321ACA8476EA3E7124D46D5F25CD57143F2C6A022F7D6EBF7C726AEF56D97E3944EACD627A814D2F546F5A659DD316AE57584BC46F0D976D537E78AB09D2599BB0F073366C541CEF4B6D76FE72D000A01167FCE506B805B295C12BFCAA3B768D8E6AA50D939BDB519A94000B7B18B2D36AE888EDC33DC933E9612D112BB7A95D0748F175E69F00B9D8470C64E27B4FF39551B09FF046F864E9FC22A3E1F73570DF31214":256 + +mbedtls_mpi_mod_raw_cond_assign: copy half of the limbs +mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 + +mbedtls_mpi_mod_raw_cond_swap: same value +mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4 + +mbedtls_mpi_mod_raw_cond_swap: 1 limb +mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":4 + +mbedtls_mpi_mod_raw_cond_swap: more limbs #1 +mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 + +mbedtls_mpi_mod_raw_cond_swap: more limbs #2 +mpi_mod_raw_cond_swap:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 + +mbedtls_mpi_mod_raw_cond_swap: more limbs #3 +mpi_mod_raw_cond_swap:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 + +mbedtls_mpi_mod_raw_cond_swap: copy 256 bytes of limbs +mpi_mod_raw_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"A6154F6146E5AE06C705EF228DB022B4C0C908D9FF11E83CB0836A37DD11D72B5AE0D053B6D0B376B015E3B09DCC04644F12CBCBD0407300DEDA1D817E99A030BA128A57494F6C6BC650A840B70B3A1CDF8A75A387184C93DEF02DD538C60E8764AD2E4600952E09D24DC5524AB34070D25D204174D23B2BFDACBC67F8973C47FAF01CE9810130934AB6A94C5E6D223EDEAE904FD18368231AC3113C2CD73E879124CE21FC379C695C41D6861F5FB957570C3E6EF61F4FBA5D9945FB42931FC8E68370177DB313BEB7AF79B1F0F872368946FF35BD059E60677342EB3A0431714044AD508CD244B7CE200C5DC75B3BC7846A4CF0436C9288F2153124C9283171":256 + +mbedtls_mpi_mod_raw_cond_swap: copy half of the limbs +mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 76574752b0..099c944329 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -106,3 +106,171 @@ exit: mbedtls_mpi_mod_modulus_free( &m ); } /* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_raw_cond_assign( data_t * input_X, + data_t * input_Y, + int input_bytes ) +{ + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; + mbedtls_mpi_uint *buff_m = NULL; + mbedtls_mpi_mod_modulus m; + size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); + size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t limbs = limbs_X; + size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); + size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); + + TEST_EQUAL( limbs_X, limbs_Y ); + TEST_ASSERT( copy_limbs <= limbs ); + + ASSERT_ALLOC( X, limbs ); + ASSERT_ALLOC( Y, limbs ); + + ASSERT_ALLOC( buff_m, limbs ); + mbedtls_mpi_mod_modulus_init( &m ); + TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( + &m, buff_m, copy_limbs, + MBEDTLS_MPI_MOD_EXT_REP_BE, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + == 0 ); + + TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, + input_X->x, input_X->len ) + == 0 ); + + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs, + input_Y->x, input_Y->len ) + == 0 ); + + /* condition is false */ + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); + + mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); + + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); + + /* condition is true */ + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); + + mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); + + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + + /* Check if the given length is copied even it is smaller + than the length of the given MPIs. */ + if( copy_limbs len ); + size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t limbs = limbs_X; + size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); + size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); + + TEST_EQUAL( limbs_X, limbs_Y ); + TEST_ASSERT( copy_limbs <= limbs ); + + ASSERT_ALLOC( tmp_X, limbs ); + ASSERT_ALLOC( tmp_Y, limbs ); + + ASSERT_ALLOC( buff_m, copy_limbs ); + mbedtls_mpi_mod_modulus_init( &m ); + TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( + &m, buff_m, copy_limbs, + MBEDTLS_MPI_MOD_EXT_REP_BE, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + == 0 ); + + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, input_X->x, input_X->len ) + == 0 ); + ASSERT_ALLOC( X, limbs ); + memcpy( X, tmp_X, bytes ); + + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) + == 0 ); + ASSERT_ALLOC( Y, bytes ); + memcpy( Y, tmp_Y, bytes ); + + /* condition is false */ + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); + + mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 0 ); + + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + + ASSERT_COMPARE( X, bytes, tmp_X, bytes ); + ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); + + /* condition is true */ + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); + + mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 1 ); + + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + + /* Check if the given length is copied even it is smaller + than the length of the given MPIs. */ + if( copy_limbs < limbs ) + { + ASSERT_COMPARE( X, copy_bytes, tmp_Y, copy_bytes ); + ASSERT_COMPARE( Y, copy_bytes, tmp_X, copy_bytes ); + TEST_ASSERT( memcmp( X, tmp_X, bytes ) != 0 ); + TEST_ASSERT( memcmp( X, tmp_Y, bytes ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_X, bytes ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_Y, bytes ) != 0 ); + } + else + { + ASSERT_COMPARE( X, bytes, tmp_Y, bytes ); + ASSERT_COMPARE( Y, bytes, tmp_X, bytes ); + } + +exit: + mbedtls_free( tmp_X ); + mbedtls_free( tmp_Y ); + mbedtls_free( X ); + mbedtls_free( Y ); + + mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_free( buff_m ); +} +/* END_CASE */ diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 794031901a..78afcb64c5 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -301,84 +301,6 @@ mpi_cmp_mpi:"-1230000000000000000":"":-1 Test mbedtls_mpi_cmp_mpi: large negative < 0 (1 limb) mpi_cmp_mpi:"-1230000000000000000":"0":-1 -mbedtls_mpi_core_cond_assign: 1 limb -mpi_core_cond_assign:"FFFFFFFF":"11111111":4 - -mbedtls_mpi_core_cond_assign: more limbs #1 -mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 - -mbedtls_mpi_core_cond_assign: more limbs #2 -mpi_core_cond_assign:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 - -mbedtls_mpi_core_cond_assign: more limbs #3 -mpi_core_cond_assign:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 - -mbedtls_mpi_core_cond_assign: copy 256 bytes of limbs -mpi_core_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"6E3173EEAC8D68A5AB53D259F32D9E9C298FD2C4FAD3BEE9151DC103EA2382F5480C7D11F451C060A1E3D887E05A620EF6395763CB7A40FC473DD0771456A018E18635EA971C36DCAD09D60E8BD0E2E0CCD1AECB8BE0ABA881DBE60163F6C45947EC0B05FDAAA3DF944627DD4FACBAD3FF2AB4B99D91E548C06A4AF320A9CA0D2FD0CB19B90B9D6A8BF59CB631DD925B6DEA621FE962099D3D0BED6B13C0C546DC6B563A7FC63B1B77D277897DD7B9DF28C4C9213A183B83D982964C6AD8192CE7354B11ED727EDEF85074C46E4E2E6C1728FB7980385CDB36512F927847C6A14A118624ABC12B09DBEE60D651B5431AAD982228C61655EABB80C263871AE1CF":256 - -mbedtls_mpi_core_cond_assign: copy half of the limbs -mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 - -mbedtls_mpi_core_cond_swap: same value -mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":4 - -mbedtls_mpi_core_cond_swap: 1 limb -mpi_core_cond_swap:"FFFFFFFF":"11111111":4 - -mbedtls_mpi_core_cond_swap: more limbs #1 -mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 - -mbedtls_mpi_core_cond_swap: more limbs #2 -mpi_core_cond_swap:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 - -mbedtls_mpi_core_cond_swap: more limbs #3 -mpi_core_cond_swap:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 - -mbedtls_mpi_core_cond_swap: copy 256 bytes of limbs -mpi_core_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"9FBBA284460D8EAB5E0D66B634BD18FBA58C0C25417DD637526A7622C6425B46E09AEFBB8C2340AC823DFE990A62C85DB23BCDBEA734134606CEEB4BCF7444569D5EC4E32341ED09D7A5D0BB8B11D7B726BAECCF37D4FC1BEBD892CADD7BE9E093343C1A68D7A188DFE145C1EDBD8048B24E20A076F981D75ABE44318ADC40ED316C444774B6A90D3EE49557315AA6FAB162A498C0B2E2C15BD94186A665E12DDC39211583FA5F21218A3B46999FEBA4DFF454FB6ED35B8F3AE5F8EA840838BD76006DA112F85EDAA2CC07518FFC9724D5695BAF74F16C8D1A3A06029D2F5C1023D9E8A84D1267BD9AF82D1F5F77092D34BE4E8C4D1EA8C58F90B094DCFD6920":256 - -mbedtls_mpi_core_cond_swap: copy half of the limbs -mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 - -mbedtls_mpi_mod_raw_cond_assign: 1 limb -mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":4 - -mbedtls_mpi_mod_raw_cond_assign: more limbs #1 -mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 - -mbedtls_mpi_mod_raw_cond_assign: more limbs #2 -mpi_mod_raw_cond_assign:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 - -mbedtls_mpi_mod_raw_cond_assign: more limbs #3 -mpi_mod_raw_cond_assign:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 - -mbedtls_mpi_mod_raw_cond_assign: copy 256 bytes of limbs -mpi_mod_raw_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"38AAE958A11CCE9F4B4D0EDF64D31DF6FEA451D56B3BAB3DB796739B96C5C9C619DAE2AD5394D41FC3746A4F35BA186F02D908E900A2BA5AC95D494378A6A6FC619801DA3F3B4C5BAAA49B16DD3B2EF9AFB4B82449F90628E1438405D321ACA8476EA3E7124D46D5F25CD57143F2C6A022F7D6EBF7C726AEF56D97E3944EACD627A814D2F546F5A659DD316AE57584BC46F0D976D537E78AB09D2599BB0F073366C541CEF4B6D76FE72D000A01167FCE506B805B295C12BFCAA3B768D8E6AA50D939BDB519A94000B7B18B2D36AE888EDC33DC933E9612D112BB7A95D0748F175E69F00B9D8470C64E27B4FF39551B09FF046F864E9FC22A3E1F73570DF31214":256 - -mbedtls_mpi_mod_raw_cond_assign: copy half of the limbs -mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 - -mbedtls_mpi_mod_raw_cond_swap: same value -mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4 - -mbedtls_mpi_mod_raw_cond_swap: 1 limb -mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":4 - -mbedtls_mpi_mod_raw_cond_swap: more limbs #1 -mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 - -mbedtls_mpi_mod_raw_cond_swap: more limbs #2 -mpi_mod_raw_cond_swap:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 - -mbedtls_mpi_mod_raw_cond_swap: more limbs #3 -mpi_mod_raw_cond_swap:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 - -mbedtls_mpi_mod_raw_cond_swap: copy 256 bytes of limbs -mpi_mod_raw_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"A6154F6146E5AE06C705EF228DB022B4C0C908D9FF11E83CB0836A37DD11D72B5AE0D053B6D0B376B015E3B09DCC04644F12CBCBD0407300DEDA1D817E99A030BA128A57494F6C6BC650A840B70B3A1CDF8A75A387184C93DEF02DD538C60E8764AD2E4600952E09D24DC5524AB34070D25D204174D23B2BFDACBC67F8973C47FAF01CE9810130934AB6A94C5E6D223EDEAE904FD18368231AC3113C2CD73E879124CE21FC379C695C41D6861F5FB957570C3E6EF61F4FBA5D9945FB42931FC8E68370177DB313BEB7AF79B1F0F872368946FF35BD059E60677342EB3A0431714044AD508CD244B7CE200C5DC75B3BC7846A4CF0436C9288F2153124C9283171":256 - -mbedtls_mpi_mod_raw_cond_swap: copy half of the limbs -mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 - Base test mbedtls_mpi_lt_mpi_ct #1 mpi_lt_mpi_ct:1:"2B5":1:"2B5":0:0 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index db274100ad..4cec0a7c71 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -457,316 +457,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ -void mpi_core_cond_assign( data_t * input_X, - data_t * input_Y, - int input_bytes ) -{ - mbedtls_mpi_uint *X = NULL; - mbedtls_mpi_uint *Y = NULL; - size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); - size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); - size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); - - TEST_EQUAL( limbs_X, limbs_Y ); - TEST_ASSERT( copy_limbs <= limbs ); - - ASSERT_ALLOC( X, limbs ); - ASSERT_ALLOC( Y, limbs ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, input_X->x, input_X->len ) - == 0 ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs, input_Y->x, input_Y->len ) - == 0 ); - - /* condition is false */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); - - mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 0 ); - - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - - TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); - - /* condition is true */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); - - mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 1 ); - - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - - /* Check if the given length is copied even it is smaller - than the length of the given MPIs. */ - if( copy_limbs < limbs ) - { - ASSERT_COMPARE( X, copy_bytes, Y, copy_bytes ); - TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); - } - else - ASSERT_COMPARE( X, bytes, Y, bytes ); - -exit: - mbedtls_free( X ); - mbedtls_free( Y ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_core_cond_swap( data_t * input_X, - data_t * input_Y, - int input_bytes ) -{ - mbedtls_mpi_uint *tmp_X = NULL; - mbedtls_mpi_uint *tmp_Y = NULL; - mbedtls_mpi_uint *X = NULL; - mbedtls_mpi_uint *Y = NULL; - size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); - size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); - size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); - - TEST_EQUAL( limbs_X, limbs_Y ); - TEST_ASSERT( copy_limbs <= limbs ); - - ASSERT_ALLOC( tmp_X, limbs ); - ASSERT_ALLOC( tmp_Y, limbs ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, - input_X->x, input_X->len ) - == 0 ); - ASSERT_ALLOC( X, limbs ); - memcpy( X, tmp_X, bytes ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, - input_Y->x, input_Y->len ) - == 0 ); - ASSERT_ALLOC( Y, limbs ); - memcpy( Y, tmp_Y, bytes ); - - /* condition is false */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); - - mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 0 ); - - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - - ASSERT_COMPARE( X, bytes, tmp_X, bytes ); - ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); - - /* condition is true */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); - - mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 1 ); - - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - - /* Check if the given length is copied even it is smaller - than the length of the given MPIs. */ - if( copy_limbs < limbs ) - { - ASSERT_COMPARE( X, copy_bytes, tmp_Y, copy_bytes ); - ASSERT_COMPARE( Y, copy_bytes, tmp_X, copy_bytes ); - TEST_ASSERT( memcmp( X, tmp_X, bytes ) != 0 ); - TEST_ASSERT( memcmp( X, tmp_Y, bytes ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_X, bytes ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_Y, bytes ) != 0 ); - } - else - { - ASSERT_COMPARE( X, bytes, tmp_Y, bytes ); - ASSERT_COMPARE( Y, bytes, tmp_X, bytes ); - } - -exit: - mbedtls_free( tmp_X ); - mbedtls_free( tmp_Y ); - mbedtls_free( X ); - mbedtls_free( Y ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_mod_raw_cond_assign( data_t * input_X, - data_t * input_Y, - int input_bytes ) -{ - mbedtls_mpi_uint *X = NULL; - mbedtls_mpi_uint *Y = NULL; - mbedtls_mpi_uint *buff_m = NULL; - mbedtls_mpi_mod_modulus m; - size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); - size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); - size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); - - TEST_EQUAL( limbs_X, limbs_Y ); - TEST_ASSERT( copy_limbs <= limbs ); - - ASSERT_ALLOC( X, limbs ); - ASSERT_ALLOC( Y, limbs ); - - ASSERT_ALLOC( buff_m, limbs ); - mbedtls_mpi_mod_modulus_init( &m ); - TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, copy_limbs, - MBEDTLS_MPI_MOD_EXT_REP_BE, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) - == 0 ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, - input_X->x, input_X->len ) - == 0 ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs, - input_Y->x, input_Y->len ) - == 0 ); - - /* condition is false */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); - - mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); - - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - - TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); - - /* condition is true */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); - - mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); - - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - - /* Check if the given length is copied even it is smaller - than the length of the given MPIs. */ - if( copy_limbs len ); - size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); - size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); - - TEST_EQUAL( limbs_X, limbs_Y ); - TEST_ASSERT( copy_limbs <= limbs ); - - ASSERT_ALLOC( tmp_X, limbs ); - ASSERT_ALLOC( tmp_Y, limbs ); - - ASSERT_ALLOC( buff_m, copy_limbs ); - mbedtls_mpi_mod_modulus_init( &m ); - TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, copy_limbs, - MBEDTLS_MPI_MOD_EXT_REP_BE, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) - == 0 ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, input_X->x, input_X->len ) - == 0 ); - ASSERT_ALLOC( X, limbs ); - memcpy( X, tmp_X, bytes ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) - == 0 ); - ASSERT_ALLOC( Y, bytes ); - memcpy( Y, tmp_Y, bytes ); - - /* condition is false */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); - - mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 0 ); - - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - - ASSERT_COMPARE( X, bytes, tmp_X, bytes ); - ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); - - /* condition is true */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); - - mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 1 ); - - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - - /* Check if the given length is copied even it is smaller - than the length of the given MPIs. */ - if( copy_limbs < limbs ) - { - ASSERT_COMPARE( X, copy_bytes, tmp_Y, copy_bytes ); - ASSERT_COMPARE( Y, copy_bytes, tmp_X, copy_bytes ); - TEST_ASSERT( memcmp( X, tmp_X, bytes ) != 0 ); - TEST_ASSERT( memcmp( X, tmp_Y, bytes ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_X, bytes ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_Y, bytes ) != 0 ); - } - else - { - ASSERT_COMPARE( X, bytes, tmp_Y, bytes ); - ASSERT_COMPARE( Y, bytes, tmp_X, bytes ); - } - -exit: - mbedtls_free( tmp_X ); - mbedtls_free( tmp_Y ); - mbedtls_free( X ); - mbedtls_free( Y ); - - mbedtls_mpi_mod_modulus_free( &m ); - mbedtls_free( buff_m ); -} -/* END_CASE */ - /* BEGIN_CASE */ void mpi_lt_mpi_ct( int size_X, char * input_X, int size_Y, char * input_Y, From f1c24f0fbc0c1de8649f6931dd8467fe0cb5722a Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 19 Oct 2022 16:43:22 +0100 Subject: [PATCH 0793/1028] Add missing include Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_mod_raw.function | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 099c944329..18ac97f783 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -1,6 +1,7 @@ /* BEGIN_HEADER */ #include "mbedtls/bignum.h" #include "mbedtls/entropy.h" +#include "bignum_core.h" #include "bignum_mod_raw.h" #include "constant_time_internal.h" #include "test/constant_flow.h" From 01dd5480255f3555a090dd7bff856d9d767a62d9 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Wed, 19 Oct 2022 17:13:57 +0100 Subject: [PATCH 0794/1028] Minor fixes to x509_get_name() test function Signed-off-by: David Horstmann --- tests/suites/test_suite_x509parse.function | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index 6947f3c196..eb5f1aa78b 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -824,7 +824,7 @@ void mbedtls_x509_get_name( char * rdn_sequence, int exp_ret ) unsigned char *name; unsigned char *p; size_t name_len; - mbedtls_x509_name head; + mbedtls_x509_name head = { 0 }; mbedtls_x509_name *allocated, *prev; int ret; @@ -832,12 +832,9 @@ void mbedtls_x509_get_name( char * rdn_sequence, int exp_ret ) p = name; ret = mbedtls_x509_get_name( &p, ( name + name_len ), &head ); - if( ret == 0 ) { allocated = head.next; - head.next = NULL; - prev = NULL; while( allocated != NULL ) { @@ -848,7 +845,7 @@ void mbedtls_x509_get_name( char * rdn_sequence, int exp_ret ) } } - TEST_ASSERT( ret == exp_ret ); + TEST_EQUAL( ret, exp_ret ); mbedtls_free( name ); } From 2bb9c8a884c55bd2c63c84b3e7a33967a07598f6 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 20 Oct 2022 10:18:37 +0100 Subject: [PATCH 0795/1028] Change brace initialization to memset Signed-off-by: David Horstmann --- tests/suites/test_suite_x509parse.function | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index eb5f1aa78b..a3606f29b5 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -824,10 +824,12 @@ void mbedtls_x509_get_name( char * rdn_sequence, int exp_ret ) unsigned char *name; unsigned char *p; size_t name_len; - mbedtls_x509_name head = { 0 }; + mbedtls_x509_name head; mbedtls_x509_name *allocated, *prev; int ret; + memset( &head, 0, sizeof( head ) ); + name = mbedtls_test_unhexify_alloc( rdn_sequence, &name_len ); p = name; From dd2e4683d0bdfada6a40e49154b3c02f67f62bfa Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 17 Oct 2022 10:16:56 +0100 Subject: [PATCH 0796/1028] Bignum Core: add limb size specific test generation In Bignum Core the result also involves a carry and both the result and the carry depend on the size of the limbs. Before this change both 32 and 64 bit specific result have been passed to the test functions. Moving this decision out of the tests makes the test functions easier to write and read and the test cases easier to read and debug. The change doesn't make writing the generator script any harder and might even make reading it easier. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 3652ac20ab..23db980e80 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -72,6 +72,24 @@ class BignumCoreOperation(bignum_common.OperationCommon, BignumCoreTarget, metac yield cls(a_value, b_value).create_test_case() +class BignumCoreOperationArchSplit(BignumCoreOperation): + #pylint: disable=abstract-method + """Common features for bignum core operations where the result depends on + the limb size.""" + + def __init__(self, val_a: str, val_b: str, bits_in_limb: int) -> None: + super().__init__(val_a, val_b) + self.bits_in_limb = bits_in_limb + if self.bits_in_limb == 32: + self.dependencies = ["MBEDTLS_HAVE_INT32"] + elif self.bits_in_limb == 64: + self.dependencies = ["MBEDTLS_HAVE_INT64"] + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + for a_value, b_value in cls.get_value_pairs(): + yield cls(a_value, b_value, 32).create_test_case() + yield cls(a_value, b_value, 64).create_test_case() class BignumCoreAddIf(BignumCoreOperation): """Test cases for bignum core add if.""" From e153a715f0c6093dd0a8ee0c0d649a80970aa1b1 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 17 Oct 2022 10:25:29 +0100 Subject: [PATCH 0797/1028] mpi_core_add_if: simplify tests Use the new, limb size aware base class to generate tests for mpi_core_add_if(). Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 18 ++++++-------- tests/suites/test_suite_bignum_core.function | 26 ++++++-------------- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 23db980e80..0b6ee97172 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -91,7 +91,7 @@ class BignumCoreOperationArchSplit(BignumCoreOperation): yield cls(a_value, b_value, 32).create_test_case() yield cls(a_value, b_value, 64).create_test_case() -class BignumCoreAddIf(BignumCoreOperation): +class BignumCoreAddIf(BignumCoreOperationArchSplit): """Test cases for bignum core add if.""" count = 0 symbol = "+" @@ -99,17 +99,15 @@ class BignumCoreAddIf(BignumCoreOperation): test_name = "mbedtls_mpi_core_add_if" def result(self) -> List[str]: - tmp = self.int_a + self.int_b + result = self.int_a + self.int_b bound_val = max(self.int_a, self.int_b) - bound_4 = bignum_common.bound_mpi(bound_val, 32) - bound_8 = bignum_common.bound_mpi(bound_val, 64) - carry_4, remainder_4 = divmod(tmp, bound_4) - carry_8, remainder_8 = divmod(tmp, bound_8) + + bound = bignum_common.bound_mpi(bound_val, self.bits_in_limb) + carry, result = divmod(result, bound) + return [ - "\"{:x}\"".format(remainder_4), - str(carry_4), - "\"{:x}\"".format(remainder_8), - str(carry_8) + "\"{:x}\"".format(result), + str(carry) ] diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index de8b7f194a..5bc955ca7a 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -340,10 +340,9 @@ exit: /* BEGIN_CASE */ void mpi_core_add_if( char * input_A, char * input_B, - char * input_S4, int carry4, - char * input_S8, int carry8 ) + char * input_S, int carry ) { - mbedtls_mpi S4, S8, A, B; + mbedtls_mpi S, A, B; mbedtls_mpi_uint *a = NULL; /* first value to add */ mbedtls_mpi_uint *b = NULL; /* second value to add */ mbedtls_mpi_uint *sum = NULL; @@ -351,28 +350,20 @@ void mpi_core_add_if( char * input_A, char * input_B, mbedtls_mpi_init( &A ); mbedtls_mpi_init( &B ); - mbedtls_mpi_init( &S4 ); - mbedtls_mpi_init( &S8 ); + mbedtls_mpi_init( &S ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &S4, input_S4 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &S8, input_S8 ) ); - - /* We only need to work with one of (S4, carry4) or (S8, carry8) depending - * on sizeof(mbedtls_mpi_uint) - */ - mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &S4 : &S8; - mbedtls_mpi_uint carry = ( sizeof(mbedtls_mpi_uint) == 4 ) ? carry4 : carry8; + TEST_EQUAL( 0, mbedtls_test_read_mpi( &S, input_S ) ); /* All of the inputs are +ve (or zero) */ TEST_EQUAL( 1, A.s ); TEST_EQUAL( 1, B.s ); - TEST_EQUAL( 1, X->s ); + TEST_EQUAL( 1, S.s ); /* Test cases are such that A <= B, so #limbs should be <= */ TEST_LE_U( A.n, B.n ); - TEST_LE_U( X->n, B.n ); + TEST_LE_U( S.n, B.n ); /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ @@ -400,7 +391,7 @@ void mpi_core_add_if( char * input_A, char * input_B, */ memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); - memcpy( sum, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + memcpy( sum, S.p, S.n * sizeof(mbedtls_mpi_uint) ); /* The test cases have a <= b to avoid repetition, so we test a + b then, * if a != b, b + a. If a == b, we can test when a and b are aliased */ @@ -448,8 +439,7 @@ exit: mbedtls_free( sum ); mbedtls_free( d ); - mbedtls_mpi_free( &S4 ); - mbedtls_mpi_free( &S8 ); + mbedtls_mpi_free( &S ); mbedtls_mpi_free( &A ); mbedtls_mpi_free( &B ); } From 66414209519a912dc63d346916b52187982b9e73 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Sep 2022 15:36:16 +0200 Subject: [PATCH 0798/1028] Bignum core: Break shift_r function out of the classic shift_r This commit contains the function prototype for mbedtls_mpi_core_shift_r, and the implementation minimally modified from mbedtls_mpi_shift_r. Signed-off-by: Gilles Peskine --- library/bignum.c | 35 ++++++++++++++++++++++------------- library/bignum_core.h | 15 +++++++++++++++ 2 files changed, 37 insertions(+), 13 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 1c7f9197f0..0787272fee 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -770,27 +770,38 @@ cleanup: * Right-shift: X >>= count */ int mbedtls_mpi_shift_r( mbedtls_mpi *X, size_t count ) +{ + MPI_VALIDATE_RET( X != NULL ); + if( X->n != 0 ) + mbedtls_mpi_core_shift_r( X->p, X->n, count ); + return( 0 ); +} + +void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, + size_t count ) { size_t i, v0, v1; mbedtls_mpi_uint r0 = 0, r1; - MPI_VALIDATE_RET( X != NULL ); v0 = count / biL; v1 = count & (biL - 1); - if( v0 > X->n || ( v0 == X->n && v1 > 0 ) ) - return mbedtls_mpi_lset( X, 0 ); + if( v0 > limbs || ( v0 == limbs && v1 > 0 ) ) + { + memset( X, 0, limbs * ciL ); + return; + } /* * shift by count / limb_size */ if( v0 > 0 ) { - for( i = 0; i < X->n - v0; i++ ) - X->p[i] = X->p[i + v0]; + for( i = 0; i < limbs - v0; i++ ) + X[i] = X[i + v0]; - for( ; i < X->n; i++ ) - X->p[i] = 0; + for( ; i < limbs; i++ ) + X[i] = 0; } /* @@ -798,16 +809,14 @@ int mbedtls_mpi_shift_r( mbedtls_mpi *X, size_t count ) */ if( v1 > 0 ) { - for( i = X->n; i > 0; i-- ) + for( i = limbs; i > 0; i-- ) { - r1 = X->p[i - 1] << (biL - v1); - X->p[i - 1] >>= v1; - X->p[i - 1] |= r0; + r1 = X[i - 1] << (biL - v1); + X[i - 1] >>= v1; + X[i - 1] |= r0; r0 = r1; } } - - return( 0 ); } /* diff --git a/library/bignum_core.h b/library/bignum_core.h index 196736d05e..4ba14331c3 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -262,6 +262,21 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, unsigned char *output, size_t output_length ); +/** \brief Shift a machine integer right by a number of bits. + * + * Shifting by more bits than there are bit positions + * in \p X is valid and results in setting \p X to 0. + * + * This function's execution time depends on the value + * of \p count (and of course \p limbs). + * + * \param[in,out] X The number to shift. + * \param limbs The number of limbs of \p X. This must be at least 1. + * \param count The number of bits to shift by. + */ +void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, + size_t count ); + /** * \brief Conditional addition of two fixed-size large unsigned integers, * returning the carry. From c279b2fa4a72e53c4bce6426c95043b8e7b1c2a2 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Sep 2022 15:38:38 +0200 Subject: [PATCH 0799/1028] Move mbedtls_mpi_core_shift_r to the proper source file Signed-off-by: Gilles Peskine --- library/bignum.c | 42 --------------------------------------- library/bignum_core.c | 46 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 42 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 0787272fee..58cd2f7329 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -777,48 +777,6 @@ int mbedtls_mpi_shift_r( mbedtls_mpi *X, size_t count ) return( 0 ); } -void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, - size_t count ) -{ - size_t i, v0, v1; - mbedtls_mpi_uint r0 = 0, r1; - - v0 = count / biL; - v1 = count & (biL - 1); - - if( v0 > limbs || ( v0 == limbs && v1 > 0 ) ) - { - memset( X, 0, limbs * ciL ); - return; - } - - /* - * shift by count / limb_size - */ - if( v0 > 0 ) - { - for( i = 0; i < limbs - v0; i++ ) - X[i] = X[i + v0]; - - for( ; i < limbs; i++ ) - X[i] = 0; - } - - /* - * shift by count % limb_size - */ - if( v1 > 0 ) - { - for( i = limbs; i > 0; i-- ) - { - r1 = X[i - 1] << (biL - v1); - X[i - 1] >>= v1; - X[i - 1] |= r0; - r0 = r1; - } - } -} - /* * Compare unsigned values */ diff --git a/library/bignum_core.c b/library/bignum_core.c index 89fd4043e2..00837298b0 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -316,6 +316,52 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *X, return( 0 ); } + + +void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, + size_t count ) +{ + size_t i, v0, v1; + mbedtls_mpi_uint r0 = 0, r1; + + v0 = count / biL; + v1 = count & (biL - 1); + + if( v0 > limbs || ( v0 == limbs && v1 > 0 ) ) + { + memset( X, 0, limbs * ciL ); + return; + } + + /* + * shift by count / limb_size + */ + if( v0 > 0 ) + { + for( i = 0; i < limbs - v0; i++ ) + X[i] = X[i + v0]; + + for( ; i < limbs; i++ ) + X[i] = 0; + } + + /* + * shift by count % limb_size + */ + if( v1 > 0 ) + { + for( i = limbs; i > 0; i-- ) + { + r1 = X[i - 1] << (biL - v1); + X[i - 1] >>= v1; + X[i - 1] |= r0; + r0 = r1; + } + } +} + + + mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, size_t limbs, From 5ff03d49c0be5d1dea0e13cb803016fa210faf17 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 17 Oct 2022 11:21:22 +0100 Subject: [PATCH 0800/1028] Bignum Core test: move bound to constructor We will need it to pad parameters in the base class, but it is useful because every child class would need to calculate it anyway. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 0b6ee97172..8327df1b85 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -79,11 +79,13 @@ class BignumCoreOperationArchSplit(BignumCoreOperation): def __init__(self, val_a: str, val_b: str, bits_in_limb: int) -> None: super().__init__(val_a, val_b) + bound_val = max(self.int_a, self.int_b) self.bits_in_limb = bits_in_limb + self.bound = bignum_common.bound_mpi(bound_val, self.bits_in_limb) if self.bits_in_limb == 32: self.dependencies = ["MBEDTLS_HAVE_INT32"] elif self.bits_in_limb == 64: - self.dependencies = ["MBEDTLS_HAVE_INT64"] + self.dependencies = ["MBDTLS_HAVE_INT64"] @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: @@ -100,10 +102,8 @@ class BignumCoreAddIf(BignumCoreOperationArchSplit): def result(self) -> List[str]: result = self.int_a + self.int_b - bound_val = max(self.int_a, self.int_b) - bound = bignum_common.bound_mpi(bound_val, self.bits_in_limb) - carry, result = divmod(result, bound) + carry, result = divmod(result, self.bound) return [ "\"{:x}\"".format(result), From ba516f752436dbe23c62ced96f526f04d62faa97 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 17 Oct 2022 13:47:13 +0100 Subject: [PATCH 0801/1028] mpi_core_add_if test: Remove dependency on old API Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 19 ++- tests/suites/test_suite_bignum_core.function | 123 +++++++------------ 2 files changed, 59 insertions(+), 83 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 8327df1b85..ab582d3a72 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -61,8 +61,8 @@ class BignumCoreOperation(bignum_common.OperationCommon, BignumCoreTarget, metac generated to provide some context to the test case. """ if not self.case_description: - self.case_description = "{} {} {}".format( - self.arg_a, self.symbol, self.arg_b + self.case_description = "{:x} {} {:x}".format( + self.int_a, self.symbol, self.int_b ) return super().description() @@ -82,10 +82,20 @@ class BignumCoreOperationArchSplit(BignumCoreOperation): bound_val = max(self.int_a, self.int_b) self.bits_in_limb = bits_in_limb self.bound = bignum_common.bound_mpi(bound_val, self.bits_in_limb) + limbs = bignum_common.limbs_mpi(bound_val, self.bits_in_limb) + byte_len = limbs*self.bits_in_limb//8 + self.hex_digits = 2*byte_len if self.bits_in_limb == 32: self.dependencies = ["MBEDTLS_HAVE_INT32"] elif self.bits_in_limb == 64: - self.dependencies = ["MBDTLS_HAVE_INT64"] + self.dependencies = ["MBEDTLS_HAVE_INT64"] + else: + raise ValueError("Invalid number of bits in limb!") + self.arg_a = self.arg_a.zfill(self.hex_digits) + self.arg_b = self.arg_b.zfill(self.hex_digits) + + def pad_to_limbs(self, val) -> str: + return "{:x}".format(val).zfill(self.hex_digits) @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: @@ -106,11 +116,10 @@ class BignumCoreAddIf(BignumCoreOperationArchSplit): carry, result = divmod(result, self.bound) return [ - "\"{:x}\"".format(result), + bignum_common.quote_str(self.pad_to_limbs(result)), str(carry) ] - class BignumCoreSub(BignumCoreOperation): """Test cases for bignum core sub.""" count = 0 diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 5bc955ca7a..ab4f5b564f 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -342,106 +342,73 @@ exit: void mpi_core_add_if( char * input_A, char * input_B, char * input_S, int carry ) { - mbedtls_mpi S, A, B; - mbedtls_mpi_uint *a = NULL; /* first value to add */ - mbedtls_mpi_uint *b = NULL; /* second value to add */ - mbedtls_mpi_uint *sum = NULL; - mbedtls_mpi_uint *d = NULL; /* destination - the in/out first operand */ + mbedtls_mpi_uint *A = NULL; /* first value to add */ + size_t A_limbs; + mbedtls_mpi_uint *B = NULL; /* second value to add */ + size_t B_limbs; + mbedtls_mpi_uint *S = NULL; /* expected result */ + size_t S_limbs; + mbedtls_mpi_uint *X = NULL; /* destination - the in/out first operand */ + size_t X_limbs; - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &B ); - mbedtls_mpi_init( &S ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &B, &B_limbs, input_B ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &S, &S_limbs, input_S ) ); + X_limbs = S_limbs; + ASSERT_ALLOC( X, X_limbs ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &S, input_S ) ); + /* add_if expects all operands to be the same length */ + TEST_EQUAL( A_limbs, B_limbs ); + TEST_EQUAL( A_limbs, S_limbs ); + size_t limbs = A_limbs; + size_t bytes = limbs * sizeof( *A ); - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, A.s ); - TEST_EQUAL( 1, B.s ); - TEST_EQUAL( 1, S.s ); + /* The test cases have A <= B to avoid repetition, so we test A + B then, + * if A != B, B + A. If A == B, we can test when A and B are aliased */ - /* Test cases are such that A <= B, so #limbs should be <= */ - TEST_LE_U( A.n, B.n ); - TEST_LE_U( S.n, B.n ); + /* A + B */ - /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ - - /* mbedtls_mpi_core_add_if() uses input arrays of mbedtls_mpi_uints which - * must be the same size. The MPIs we've read in will only have arrays - * large enough for the number they represent. Therefore we create new - * raw arrays of mbedtls_mpi_uints and populate them from the MPIs we've - * just read in. - * - * We generated test data such that B was always >= A, so that's how many - * limbs each of these need. - */ - size_t limbs = B.n; - size_t bytes = limbs * sizeof(mbedtls_mpi_uint); - - /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ - ASSERT_ALLOC( a, bytes ); - ASSERT_ALLOC( b, bytes ); - ASSERT_ALLOC( sum, bytes ); - ASSERT_ALLOC( d, bytes ); - - /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as - * processed by mbedtls_mpi_core_add_if()) are little endian, we can just - * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()) - */ - memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); - memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); - memcpy( sum, S.p, S.n * sizeof(mbedtls_mpi_uint) ); - - /* The test cases have a <= b to avoid repetition, so we test a + b then, - * if a != b, b + a. If a == b, we can test when a and b are aliased */ - - /* a + b */ - - /* cond = 0 => d unchanged, no carry */ - memcpy( d, a, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, b, limbs, 0 ) ); - ASSERT_COMPARE( d, bytes, a, bytes ); + /* cond = 0 => X unchanged, no carry */ + memcpy( X, A, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, B, limbs, 0 ) ); + ASSERT_COMPARE( X, bytes, A, bytes ); /* cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, b, limbs, 1 ) ); - ASSERT_COMPARE( d, bytes, sum, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, B, limbs, 1 ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); - if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) + if ( memcmp( A, B, bytes ) == 0 ) { - /* a == b, so test where a and b are aliased */ + /* A == B, so test where A and B are aliased */ - /* cond = 0 => d unchanged, no carry */ - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( b, b, limbs, 0 ) ); - ASSERT_COMPARE( b, bytes, B.p, bytes ); + /* cond = 0 => X unchanged, no carry */ + memcpy( X, B, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, B, limbs, 0 ) ); + ASSERT_COMPARE( X, bytes, B, bytes ); /* cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( b, b, limbs, 1 ) ); - ASSERT_COMPARE( b, bytes, sum, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, X, limbs, 1 ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); } else { - /* a != b, so test b + a */ + /* A != B, so test B + A */ /* cond = 0 => d unchanged, no carry */ - memcpy( d, b, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, a, limbs, 0 ) ); - ASSERT_COMPARE( d, bytes, b, bytes ); + memcpy( X, B, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, A, limbs, 0 ) ); + ASSERT_COMPARE( X, bytes, B, bytes ); /* cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, a, limbs, 1 ) ); - ASSERT_COMPARE( d, bytes, sum, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, A, limbs, 1 ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); } exit: - mbedtls_free( a ); - mbedtls_free( b ); - mbedtls_free( sum ); - mbedtls_free( d ); - - mbedtls_mpi_free( &S ); - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &B ); + mbedtls_free( A ); + mbedtls_free( B ); + mbedtls_free( S ); + mbedtls_free( X ); } /* END_CASE */ From b0ee5772878d11b92fa103254e96d38509c93ed0 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Sep 2022 23:13:33 +0200 Subject: [PATCH 0802/1028] Bignum core: test shift_r Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/bignum_core.py | 41 ++++++++++++++++++++ tests/suites/test_suite_bignum_core.function | 20 ++++++++++ 2 files changed, 61 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 3652ac20ab..e6310f32b9 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -29,6 +29,47 @@ class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): target_basename = 'test_suite_bignum_core.generated' +class BignumCoreShiftR(BignumCoreTarget, metaclass=ABCMeta): + """Test cases for mbedtls_bignum_core_shift_r().""" + count = 0 + test_function = "mpi_core_shift_r" + test_name = "Core shift right" + + DATA = [ + ('00', '0', [0, 1, 8]), + ('01', '1', [0, 1, 2, 8, 64]), + ('dee5ca1a7ef10a75', '64-bit', + list(range(11)) + [31, 32, 33, 63, 64, 65, 71, 72]), + ('002e7ab0070ad57001', '[leading 0 limb]', + [0, 1, 8, 63, 64]), + ('a1055eb0bb1efa1150ff', '80-bit', + [0, 1, 8, 63, 64, 65, 72, 79, 80, 81, 88, 128, 129, 136]), + ('020100000000000000001011121314151617', '138-bit', + [0, 1, 8, 9, 16, 72, 73, 136, 137, 138, 144]), + ] + + def __init__(self, input_hex: str, descr: str, count: int) -> None: + self.input_hex = input_hex + self.number_description = descr + self.shift_count = count + self.result = bignum_common.hex_to_int(input_hex) >> count + + def arguments(self) -> List[str]: + return ['"{}"'.format(self.input_hex), + str(self.shift_count), + '"{:0{}x}"'.format(self.result, len(self.input_hex))] + + def description(self) -> str: + return 'Core shift {} >> {}'.format(self.number_description, + self.shift_count) + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + for input_hex, descr, counts in cls.DATA: + for count in counts: + yield cls(input_hex, descr, count).create_test_case() + + class BignumCoreOperation(bignum_common.OperationCommon, BignumCoreTarget, metaclass=ABCMeta): #pylint: disable=abstract-method """Common features for bignum core operations.""" diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index de8b7f194a..94b0ce298b 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -338,6 +338,26 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_core_shift_r( char *input, int count, char *result ) +{ + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; + size_t limbs, n; + + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &limbs, input ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &Y, &n, result ) ); + TEST_EQUAL( limbs, n ); + + mbedtls_mpi_core_shift_r( X, limbs, count ); + ASSERT_COMPARE( X, limbs * ciL, Y, limbs * ciL ); + +exit: + mbedtls_free( X ); + mbedtls_free( Y ); +} +/* END_CASE */ + /* BEGIN_CASE */ void mpi_core_add_if( char * input_A, char * input_B, char * input_S4, int carry4, From 2c95a56e13501e1f02ec570b70fc19d3a3572796 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 20 Oct 2022 12:38:44 +0200 Subject: [PATCH 0803/1028] Remove KNOWN_MBEDTLS_SUPPORTED_HASH_ALG as it is now not used anywhere Signed-off-by: Przemek Stekiel --- tests/include/test/psa_exercise_key.h | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/tests/include/test/psa_exercise_key.h b/tests/include/test/psa_exercise_key.h index 18333a9372..aa0aeb5afd 100644 --- a/tests/include/test/psa_exercise_key.h +++ b/tests/include/test/psa_exercise_key.h @@ -52,30 +52,6 @@ #undef KNOWN_SUPPORTED_HASH_ALG #endif -/** \def KNOWN_MBEDTLS_SUPPORTED_HASH_ALG - * - * A hash algorithm that is known to be supported by Mbed TLS APIs. - * - * This is used in some smoke tests where the hash algorithm is used as - * part of another algorithm like a signature algorithm and the hashing is - * completed through an Mbed TLS hash API, not the PSA one. - */ -#if defined(MBEDTLS_MD5_C) -#define KNOWN_MBEDTLS_SUPPORTED_HASH_ALG PSA_ALG_MD5 -/* MBEDTLS_RIPEMD160_C omitted. This is necessary for the sake of - * exercise_signature_key() because Mbed TLS doesn't support RIPEMD160 - * in RSA PKCS#1v1.5 signatures. A RIPEMD160-only configuration would be - * implausible anyway. */ -#elif defined(MBEDTLS_SHA1_C) -#define KNOWN_MBEDTLS_SUPPORTED_HASH_ALG PSA_ALG_SHA_1 -#elif defined(MBEDTLS_SHA256_C) -#define KNOWN_MBEDTLS_SUPPORTED_HASH_ALG PSA_ALG_SHA_256 -#elif defined(MBEDTLS_SHA512_C) -#define KNOWN_MBEDTLS_SUPPORTED_HASH_ALG PSA_ALG_SHA_512 -#else -#undef KNOWN_MBEDLTS_SUPPORTED_HASH_ALG -#endif - /** \def KNOWN_SUPPORTED_BLOCK_CIPHER * * A block cipher that is known to be supported. From 560805d665ac8de7f016e5fa1af96a5646deaf23 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 20 Oct 2022 12:04:40 +0100 Subject: [PATCH 0804/1028] Fix mbedtls_mpi_core_add_if test aliasing Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_core.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index ab4f5b564f..9803587bcb 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -383,7 +383,7 @@ void mpi_core_add_if( char * input_A, char * input_B, /* cond = 0 => X unchanged, no carry */ memcpy( X, B, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, B, limbs, 0 ) ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, X, limbs, 0 ) ); ASSERT_COMPARE( X, bytes, B, bytes ); /* cond = 1 => correct result and carry */ From 78e3c9b5747b49e6821172927f6479a23d28278b Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 20 Oct 2022 12:09:30 +0100 Subject: [PATCH 0805/1028] Fix style in bignum_core.py Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index ab582d3a72..2e641953dc 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -82,9 +82,9 @@ class BignumCoreOperationArchSplit(BignumCoreOperation): bound_val = max(self.int_a, self.int_b) self.bits_in_limb = bits_in_limb self.bound = bignum_common.bound_mpi(bound_val, self.bits_in_limb) - limbs = bignum_common.limbs_mpi(bound_val, self.bits_in_limb) - byte_len = limbs*self.bits_in_limb//8 - self.hex_digits = 2*byte_len + limbs = bignum_common.limbs_mpi(bound_val, self.bits_in_limb) + byte_len = limbs * self.bits_in_limb // 8 + self.hex_digits = 2 * byte_len if self.bits_in_limb == 32: self.dependencies = ["MBEDTLS_HAVE_INT32"] elif self.bits_in_limb == 64: From be17655b5714a032af19ada0ab1d44446ae74f41 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 20 Oct 2022 16:57:10 +0100 Subject: [PATCH 0806/1028] mbedtls_mpi_mod_modulus_init() must be called before any 'goto exit' in tests Fixes Coverity issues 381527 and 381526. Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_bignum_mod_raw.function | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 18ac97f783..88b8917809 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -17,6 +17,9 @@ void mpi_mod_raw_io( data_t *input, int nb_int, int nx_32_int, int iendian, int iret, int oret ) { + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init( &m ); + if( iret != 0 ) TEST_ASSERT( oret == 0 ); @@ -44,8 +47,6 @@ void mpi_mod_raw_io( data_t *input, int nb_int, int nx_32_int, else endian = iendian; - mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_modulus_init( &m ); mbedtls_mpi_uint init[sizeof( X ) / sizeof( X[0] )]; memset( init, 0xFF, sizeof( init ) ); int ret = mbedtls_mpi_mod_modulus_setup( &m, init, nx, endian, @@ -124,6 +125,8 @@ void mpi_mod_raw_cond_assign( data_t * input_X, size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); + mbedtls_mpi_mod_modulus_init( &m ); + TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -131,7 +134,6 @@ void mpi_mod_raw_cond_assign( data_t * input_X, ASSERT_ALLOC( Y, limbs ); ASSERT_ALLOC( buff_m, limbs ); - mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, @@ -203,6 +205,8 @@ void mpi_mod_raw_cond_swap( data_t * input_X, size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); + mbedtls_mpi_mod_modulus_init( &m ); + TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -210,7 +214,6 @@ void mpi_mod_raw_cond_swap( data_t * input_X, ASSERT_ALLOC( tmp_Y, limbs ); ASSERT_ALLOC( buff_m, copy_limbs ); - mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, From 076b2d062f4e33776be5d05795386c341d71c4e1 Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Fri, 21 Oct 2022 11:09:45 +0800 Subject: [PATCH 0807/1028] Improve the method of printing string build version Following changes are introduced with this commit: - Call mbedtls_version_get_string before printing string build version instead of printing macro directly - Output build version in the beginning of ssl_client2 program Signed-off-by: Yanray Wang --- programs/ssl/ssl_client2.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 59a96d2126..ae4bb57021 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -26,7 +26,6 @@ #endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_VERSION_C) -#include "mbedtls/build_info.h" #include "mbedtls/version.h" #endif /* MBEDTLS_VERSION_C */ @@ -1003,9 +1002,11 @@ int main( int argc, char *argv[] ) { if( strcmp( q, "1" ) == 0 ) { + char version_str[10]; + memset( version_str, 0, 10 ); + mbedtls_version_get_string( version_str ); mbedtls_printf( "build version: %s (build %u)\n", - MBEDTLS_VERSION_STRING, - mbedtls_version_get_number() ); + version_str, mbedtls_version_get_number() ); goto exit; } } @@ -1722,6 +1723,14 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_SSL_ALPN */ +#if defined(MBEDTLS_VERSION_C) + char version_str[10]; + memset( version_str, 0, 10 ); + mbedtls_version_get_string( version_str ); + mbedtls_printf( "build version: %s (build %u)\n", + version_str, mbedtls_version_get_number() ); +#endif /* MBEDTLS_VERSION_C */ + /* * 0. Initialize the RNG and the session data */ @@ -2480,11 +2489,6 @@ int main( int argc, char *argv[] ) } } -#if defined(MBEDTLS_VERSION_C) - mbedtls_printf( "build version: %s (build %u)\n", - MBEDTLS_VERSION_STRING, mbedtls_version_get_number() ); -#endif /* MBEDTLS_VERSION_C */ - #if defined(MBEDTLS_X509_CRT_PARSE_C) /* * 5. Verify the server certificate From 02e2fa0f64b6ded7a81d50fa4524b9be6c9a4315 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 21 Oct 2022 11:01:22 +0200 Subject: [PATCH 0808/1028] Make ChangeLog more visible in PR template MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- .github/pull_request_template.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index c5804436a4..9bc3b0a4f4 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -17,6 +17,10 @@ Changes do not have to be backported if: Yes | NO Which branch? +## Requires ChangeLog entry + +YES | NO - if no, why not? + ## Migrations If there is any API change, what's the incentive and logic for it. From 831fee68c3f514e49b01b1752ccaff11cf0fca7b Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 5 Oct 2022 16:22:59 +0200 Subject: [PATCH 0809/1028] tls13: keys: Avoid input buffer copy In mbedtls_ssl_tls13_evolve_secret() avoid to copy the input buffer into a local buffer as the copy is avoidable. This also fixes a potential overflow as the size of the local buffer was not checked when copying into it. With the current calls to mbedtls_ssl_tls13_evolve_secret() no buffer overflow was expected to happen though. Signed-off-by: Ronald Cron --- library/ssl_tls13_keys.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 730e50c67a..737a063a77 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -38,9 +38,6 @@ #define MBEDTLS_SSL_TLS1_3_LABEL( name, string ) \ .name = string, -#define TLS1_3_EVOLVE_INPUT_SIZE ( PSA_HASH_MAX_SIZE > PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE ) ? \ - PSA_HASH_MAX_SIZE : PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE - struct mbedtls_ssl_tls13_labels_struct const mbedtls_ssl_tls13_labels = { /* This seems to work in C, despite the string literal being one @@ -334,9 +331,12 @@ int mbedtls_ssl_tls13_evolve_secret( int ret = MBEDTLS_ERR_SSL_INTERNAL_ERROR; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t abort_status = PSA_ERROR_CORRUPTION_DETECTED; - size_t hlen, ilen; + size_t hlen; unsigned char tmp_secret[ PSA_MAC_MAX_SIZE ] = { 0 }; - unsigned char tmp_input [ TLS1_3_EVOLVE_INPUT_SIZE ] = { 0 }; + const unsigned char all_zeroes_input[ MBEDTLS_TLS1_3_MD_MAX_SIZE ] = { 0 }; + const unsigned char *l_input = NULL; + size_t l_input_len; + psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; @@ -364,12 +364,13 @@ int mbedtls_ssl_tls13_evolve_secret( if( input != NULL && input_len != 0 ) { - memcpy( tmp_input, input, input_len ); - ilen = input_len; + l_input = input; + l_input_len = input_len; } else { - ilen = hlen; + l_input = all_zeroes_input; + l_input_len = hlen; } status = psa_key_derivation_setup( &operation, @@ -388,8 +389,7 @@ int mbedtls_ssl_tls13_evolve_secret( status = psa_key_derivation_input_bytes( &operation, PSA_KEY_DERIVATION_INPUT_SECRET, - tmp_input, - ilen ); + l_input, l_input_len ); if( status != PSA_SUCCESS ) goto cleanup; @@ -406,7 +406,6 @@ int mbedtls_ssl_tls13_evolve_secret( status = ( status == PSA_SUCCESS ? abort_status : status ); ret = ( ret == 0 ? psa_ssl_status_to_mbedtls ( status ) : ret ); mbedtls_platform_zeroize( tmp_secret, sizeof(tmp_secret) ); - mbedtls_platform_zeroize( tmp_input, sizeof(tmp_input) ); return( ret ); } From 4c7edb2b9bf2ee7792545f1ae557f1a214c2d614 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 5 Oct 2022 15:37:11 +0200 Subject: [PATCH 0810/1028] tls13: keys: Fix indentation Signed-off-by: Ronald Cron --- library/ssl_tls13_keys.c | 43 ++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 737a063a77..7feac2d6fa 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1250,9 +1250,6 @@ exit: int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED) && defined(MBEDTLS_ECDH_C) - psa_status_t status = PSA_ERROR_GENERIC_ERROR; -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED && MBEDTLS_ECDH_C */ mbedtls_ssl_handshake_params *handshake = ssl->handshake; psa_algorithm_t const hash_alg = mbedtls_hash_info_psa_from_md( handshake->ciphersuite_info->mac ); @@ -1269,27 +1266,29 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) { #if defined(MBEDTLS_ECDH_C) /* Compute ECDH shared secret. */ - status = psa_raw_key_agreement( - PSA_ALG_ECDH, handshake->ecdh_psa_privkey, - handshake->ecdh_psa_peerkey, handshake->ecdh_psa_peerkey_len, - handshake->premaster, sizeof( handshake->premaster ), - &handshake->pmslen ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_raw_key_agreement", ret ); - return( ret ); - } + psa_status_t status = PSA_ERROR_GENERIC_ERROR; - status = psa_destroy_key( handshake->ecdh_psa_privkey ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_destroy_key", ret ); - return( ret ); - } + status = psa_raw_key_agreement( + PSA_ALG_ECDH, handshake->ecdh_psa_privkey, + handshake->ecdh_psa_peerkey, handshake->ecdh_psa_peerkey_len, + handshake->premaster, sizeof( handshake->premaster ), + &handshake->pmslen ); + if( status != PSA_SUCCESS ) + { + ret = psa_ssl_status_to_mbedtls( status ); + MBEDTLS_SSL_DEBUG_RET( 1, "psa_raw_key_agreement", ret ); + return( ret ); + } - handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; + status = psa_destroy_key( handshake->ecdh_psa_privkey ); + if( status != PSA_SUCCESS ) + { + ret = psa_ssl_status_to_mbedtls( status ); + MBEDTLS_SSL_DEBUG_RET( 1, "psa_destroy_key", ret ); + return( ret ); + } + + handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; #endif /* MBEDTLS_ECDH_C */ } else if( mbedtls_ssl_tls13_named_group_is_dhe( handshake->offered_group_id ) ) From 3b056202d3ae23a2a9658bf46a243f46741c33ec Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 5 Oct 2022 17:20:21 +0200 Subject: [PATCH 0811/1028] tls13: keys: Do not use `handshake->premaster` `handshake->premaster` was used to store the (EC)DHE shared secret but in TLS 1.3 there is no need to store it in a context. Futhermore, `handshake->premaster` and more specifically its sizing is TLS 1.2 specific thus better to not use it in TLS 1.3. Allocate a buffer to store the shared secret instead. Allocation instead of a stack buffer as the maintenance of the size of such buffer is harder (new elliptic curve for ECDHE, support for FFDHE ... ). Signed-off-by: Ronald Cron --- library/ssl_misc.h | 5 +++-- library/ssl_tls13_keys.c | 37 +++++++++++++++++++++++++++---------- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 828937c3f6..8a1834fd22 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -600,8 +600,6 @@ struct mbedtls_ssl_handshake_params size_t ecrs_n; /*!< place for saving a length */ #endif - size_t pmslen; /*!< premaster length */ - mbedtls_ssl_ciphersuite_t const *ciphersuite_info; void (*update_checksum)(mbedtls_ssl_context *, const unsigned char *, size_t); @@ -853,8 +851,11 @@ struct mbedtls_ssl_handshake_params unsigned char randbytes[MBEDTLS_CLIENT_HELLO_RANDOM_LEN + MBEDTLS_SERVER_HELLO_RANDOM_LEN]; /*!< random bytes */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) unsigned char premaster[MBEDTLS_PREMASTER_SIZE]; /*!< premaster secret */ + size_t pmslen; /*!< premaster length */ +#endif #if defined(MBEDTLS_SSL_PROTO_TLS1_3) int extensions_present; /*!< extension presence; Each bitfield diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 7feac2d6fa..b1f992e759 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1253,6 +1253,8 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) mbedtls_ssl_handshake_params *handshake = ssl->handshake; psa_algorithm_t const hash_alg = mbedtls_hash_info_psa_from_md( handshake->ciphersuite_info->mac ); + unsigned char *shared_secret = NULL; + size_t shared_secret_len = 0; #if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED) /* @@ -1267,17 +1269,28 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_ECDH_C) /* Compute ECDH shared secret. */ psa_status_t status = PSA_ERROR_GENERIC_ERROR; + psa_key_attributes_t key_attributes = PSA_KEY_ATTRIBUTES_INIT; + + status = psa_get_key_attributes( handshake->ecdh_psa_privkey, + &key_attributes ); + if( status != PSA_SUCCESS ) + ret = psa_ssl_status_to_mbedtls( status ); + + shared_secret_len = PSA_BITS_TO_BYTES( + psa_get_key_bits( &key_attributes ) ); + shared_secret = mbedtls_calloc( 1, shared_secret_len ); + if( shared_secret == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); status = psa_raw_key_agreement( PSA_ALG_ECDH, handshake->ecdh_psa_privkey, handshake->ecdh_psa_peerkey, handshake->ecdh_psa_peerkey_len, - handshake->premaster, sizeof( handshake->premaster ), - &handshake->pmslen ); + shared_secret, shared_secret_len, &shared_secret_len ); if( status != PSA_SUCCESS ) { ret = psa_ssl_status_to_mbedtls( status ); MBEDTLS_SSL_DEBUG_RET( 1, "psa_raw_key_agreement", ret ); - return( ret ); + goto cleanup; } status = psa_destroy_key( handshake->ecdh_psa_privkey ); @@ -1285,7 +1298,7 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) { ret = psa_ssl_status_to_mbedtls( status ); MBEDTLS_SSL_DEBUG_RET( 1, "psa_destroy_key", ret ); - return( ret ); + goto cleanup; } handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; @@ -1306,22 +1319,26 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) */ ret = mbedtls_ssl_tls13_evolve_secret( hash_alg, handshake->tls13_master_secrets.early, - handshake->premaster, handshake->pmslen, + shared_secret, shared_secret_len, handshake->tls13_master_secrets.handshake ); if( ret != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_evolve_secret", ret ); - return( ret ); + goto cleanup; } MBEDTLS_SSL_DEBUG_BUF( 4, "Handshake secret", handshake->tls13_master_secrets.handshake, PSA_HASH_LENGTH( hash_alg ) ); -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED) - mbedtls_platform_zeroize( handshake->premaster, sizeof( handshake->premaster ) ); -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED */ - return( 0 ); +cleanup: + if( shared_secret != NULL ) + { + mbedtls_platform_zeroize( shared_secret, shared_secret_len ); + mbedtls_free( shared_secret ); + } + + return( ret ); } /* Generate application traffic keys since any records following a 1-RTT Finished message From b15d4d8966032e1b39709e6a21fce5a88509992c Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 17 Oct 2022 08:47:32 +0200 Subject: [PATCH 0812/1028] tls13: keys: Fix error code Signed-off-by: Ronald Cron --- library/ssl_tls13_keys.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index b1f992e759..d8d28f11d7 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1307,11 +1307,11 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) else if( mbedtls_ssl_tls13_named_group_is_dhe( handshake->offered_group_id ) ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "DHE not supported." ) ); - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); } } #else - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); #endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED */ /* From 9a6a49c7cba1f20d2121b6d14b8ede104e79da6a Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 17 Oct 2022 08:52:30 +0200 Subject: [PATCH 0813/1028] tls13: keys: Fail if the group type is not ECDHE or DHE Signed-off-by: Ronald Cron --- library/ssl_tls13_keys.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index d8d28f11d7..897541bb12 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1304,9 +1304,9 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; #endif /* MBEDTLS_ECDH_C */ } - else if( mbedtls_ssl_tls13_named_group_is_dhe( handshake->offered_group_id ) ) + else { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "DHE not supported." ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, ( "Group not supported." ) ); return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); } } From fa1e04a7c4cfcd9f31b70096487b3fe7d2079a29 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 17 Oct 2022 09:04:59 +0200 Subject: [PATCH 0814/1028] tls13: keys: Fix PSK build only case When deriving the handshake stage master secret, in the case of a PSK only build, the only possible key exchange mode is PSK and there is no ephemeral key exchange shared secret in that case. Thus do not error out in that case in the first phae of the derivation dedicated to the shared secret. Signed-off-by: Ronald Cron --- library/ssl_tls13_keys.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 897541bb12..2209dd145c 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1310,8 +1310,6 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); } } -#else - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); #endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED */ /* From 2a87e9bf83640e3b1bc86679c52656c26a0212c2 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 19 Oct 2022 10:55:26 +0200 Subject: [PATCH 0815/1028] tls: Align set and usage check for PSK Check that the identity length is not zero in ssl_conf_set_psk_identity() as it is done in mbedtls_ssl_conf_has_static_psk(). Signed-off-by: Ronald Cron --- library/ssl_tls.c | 1 + 1 file changed, 1 insertion(+) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 4678f53864..a3586e7470 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1654,6 +1654,7 @@ static int ssl_conf_set_psk_identity( mbedtls_ssl_config *conf, { /* Identity len will be encoded on two bytes */ if( psk_identity == NULL || + psk_identity_len == 0 || ( psk_identity_len >> 16 ) != 0 || psk_identity_len > MBEDTLS_SSL_OUT_CONTENT_LEN ) { From d29e13eb1bc1d17344cb4d7e26c2c79509540dce Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 19 Oct 2022 10:33:48 +0200 Subject: [PATCH 0816/1028] tls: Use the same function in TLS 1.2 and 1.3 to check PSK conf Signed-off-by: Ronald Cron --- library/ssl_misc.h | 3 ++- library/ssl_tls.c | 19 ++++++++++++------- library/ssl_tls12_client.c | 21 --------------------- library/ssl_tls13_client.c | 13 ++++--------- 4 files changed, 18 insertions(+), 38 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 8a1834fd22..ae602562de 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -1366,7 +1366,8 @@ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_psk_derive_premaster( mbedtls_ssl_context *ssl, mbedtls_key_exchange_type_t key_ex ); #endif /* !MBEDTLS_USE_PSA_CRYPTO */ -#if defined(MBEDTLS_SSL_CLI_C) && defined(MBEDTLS_SSL_PROTO_TLS1_2) + +#if defined(MBEDTLS_SSL_CLI_C) MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_conf_has_static_psk( mbedtls_ssl_config const *conf ); #endif diff --git a/library/ssl_tls.c b/library/ssl_tls.c index a3586e7470..b62e2ac73f 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1600,15 +1600,20 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) - -MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_conf_psk_is_configured( mbedtls_ssl_config const *conf ) +int mbedtls_ssl_conf_has_static_psk( mbedtls_ssl_config const *conf ) { + if( conf->psk_identity == NULL || + conf->psk_identity_len == 0 ) + { + return( 0 ); + } + #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( !mbedtls_svc_key_id_is_null( conf->psk_opaque ) ) + if( ! mbedtls_svc_key_id_is_null( conf->psk_opaque ) ) return( 1 ); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( conf->psk != NULL ) + + if( conf->psk != NULL && conf->psk_len != 0 ) return( 1 ); return( 0 ); @@ -1678,7 +1683,7 @@ int mbedtls_ssl_conf_psk( mbedtls_ssl_config *conf, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* We currently only support one PSK, raw or opaque. */ - if( ssl_conf_psk_is_configured( conf ) ) + if( mbedtls_ssl_conf_has_static_psk( conf ) ) return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); /* Check and set raw PSK */ @@ -1796,7 +1801,7 @@ int mbedtls_ssl_conf_psk_opaque( mbedtls_ssl_config *conf, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* We currently only support one PSK, raw or opaque. */ - if( ssl_conf_psk_is_configured( conf ) ) + if( mbedtls_ssl_conf_has_static_psk( conf ) ) return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); /* Check and set opaque PSK */ diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 7b62e71a55..72c77bb891 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -49,27 +49,6 @@ #include "hash_info.h" -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) -int mbedtls_ssl_conf_has_static_psk( mbedtls_ssl_config const *conf ) -{ - if( conf->psk_identity == NULL || - conf->psk_identity_len == 0 ) - { - return( 0 ); - } - -#if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ! mbedtls_svc_key_id_is_null( conf->psk_opaque ) ) - return( 1 ); -#endif /* MBEDTLS_USE_PSA_CRYPTO */ - - if( conf->psk != NULL && conf->psk_len != 0 ) - return( 1 ); - - return( 0 ); -} -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ - #if defined(MBEDTLS_SSL_RENEGOTIATION) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_write_renegotiation_ext( mbedtls_ssl_context *ssl, diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 8510d8f3e6..4aba59f9ea 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -728,11 +728,6 @@ static int ssl_tls13_ticket_get_psk( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ -static int ssl_tls13_has_configured_psk( const mbedtls_ssl_config *conf ) -{ - return( conf->psk != NULL && conf->psk_identity != NULL ); -} - MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_psk_get_identity( mbedtls_ssl_context *ssl, psa_algorithm_t *hash_alg, @@ -740,7 +735,7 @@ static int ssl_tls13_psk_get_identity( mbedtls_ssl_context *ssl, size_t *identity_len ) { - if( !ssl_tls13_has_configured_psk( ssl->conf ) ) + if( !mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) return( -1 ); *hash_alg = PSA_ALG_SHA_256; @@ -756,7 +751,7 @@ static int ssl_tls13_psk_get_psk( mbedtls_ssl_context *ssl, size_t *psk_len ) { - if( !ssl_tls13_has_configured_psk( ssl->conf ) ) + if( !mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) return( -1 ); *hash_alg = PSA_ALG_SHA_256; @@ -775,7 +770,7 @@ static int ssl_tls13_get_configured_psk_count( mbedtls_ssl_context *ssl ) configured_psk_count++; } #endif - if( ssl_tls13_has_configured_psk( ssl->conf ) ) + if( mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "PSK is configured" ) ); configured_psk_count++; @@ -1094,7 +1089,7 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, } else #endif - if( ssl_tls13_has_configured_psk( ssl->conf ) ) + if( mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) { ret = ssl_tls13_psk_get_psk( ssl, &hash_alg, &psk, &psk_len ); } From 20a8e63b2359abe20e467aec9238ba10bce9d19c Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 3 Oct 2022 17:36:44 +0200 Subject: [PATCH 0817/1028] programs: ssl: Fix some mbedtls_ssl_conf_sig_algs() guards Signed-off-by: Ronald Cron --- programs/ssl/ssl_client2.c | 5 ++--- programs/ssl/ssl_server2.c | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 87c13c02a9..ecf1987ec9 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -2026,11 +2026,10 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ +#endif #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 1fd63d2d0d..b347f0069b 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -3232,11 +3232,10 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ +#endif #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) From 81378b72e8e8caf2ee1943ac1b56dbee4919d234 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 5 Oct 2022 09:18:01 +0200 Subject: [PATCH 0818/1028] programs: ssl: Remove dependency on TLS 1.3 for "sig_algs" option Signature algorithms can be specified through the sig_algs option for TLS 1.2 as well. Signed-off-by: Ronald Cron --- programs/ssl/ssl_client2.c | 18 +++++++----------- programs/ssl/ssl_server2.c | 18 +++++++----------- 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index ecf1987ec9..1637a73592 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -269,8 +269,7 @@ int main( void ) #define USAGE_CURVES "" #endif -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) #define USAGE_SIG_ALGS \ " sig_algs=a,b,c,d default: \"default\" (library default)\n" \ " example: \"ecdsa_secp256r1_sha256,ecdsa_secp384r1_sha384\"\n" @@ -719,10 +718,9 @@ int main( int argc, char *argv[] ) mbedtls_net_context server_fd; io_ctx_t io_ctx; -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) uint16_t sig_alg_list[SIG_ALG_LIST_SIZE]; -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif unsigned char buf[MAX_REQUEST_SIZE + 1]; @@ -1165,11 +1163,10 @@ int main( int argc, char *argv[] ) } else if( strcmp( p, "curves" ) == 0 ) opt.curves = q; -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) else if( strcmp( p, "sig_algs" ) == 0 ) opt.sig_algs = q; -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif else if( strcmp( p, "etm" ) == 0 ) { switch( atoi( q ) ) @@ -1572,8 +1569,7 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_ECP_C */ -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) { p = (char *) opt.sig_algs; @@ -1672,7 +1668,7 @@ int main( int argc, char *argv[] ) sig_alg_list[i] = MBEDTLS_TLS1_3_SIG_NONE; } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_ALPN) if( opt.alpn_string != NULL ) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index b347f0069b..f94f1b85aa 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -435,8 +435,7 @@ int main( void ) #define USAGE_CURVES "" #endif -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) #define USAGE_SIG_ALGS \ " sig_algs=a,b,c,d default: \"default\" (library default)\n" \ " example: \"ecdsa_secp256r1_sha256,ecdsa_secp384r1_sha384\"\n" @@ -1506,10 +1505,9 @@ int main( int argc, char *argv[] ) size_t context_buf_len = 0; #endif -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) uint16_t sig_alg_list[SIG_ALG_LIST_SIZE]; -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif int i; char *p, *q; @@ -1867,11 +1865,10 @@ int main( int argc, char *argv[] ) } else if( strcmp( p, "curves" ) == 0 ) opt.curves = q; -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) else if( strcmp( p, "sig_algs" ) == 0 ) opt.sig_algs = q; -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif else if( strcmp( p, "renegotiation" ) == 0 ) { opt.renegotiation = (atoi( q )) ? @@ -2454,8 +2451,7 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_ECP_C */ -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) { p = (char *) opt.sig_algs; @@ -2554,7 +2550,7 @@ int main( int argc, char *argv[] ) sig_alg_list[i] = MBEDTLS_TLS1_3_SIG_NONE; } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif #if defined(MBEDTLS_SSL_ALPN) if( opt.alpn_string != NULL ) From 457fb7a523047b856425f82f2304f672ae50881d Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 09:02:06 +0200 Subject: [PATCH 0819/1028] tests: ssl: Fix ciphersuite identifier Signed-off-by: Ronald Cron --- tests/suites/test_suite_ssl.data | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index 2b58e6005c..f7ac4df679 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -3131,7 +3131,7 @@ SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #1 # - Complete record: 1703030015c74061535eb12f5f25a781957874742ab7fb305dd5 # - Padding used: No (== granularity 1) depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED -ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"70696e67":"c74061535eb12f5f25a781957874742ab7fb305dd5" +ssl_tls13_record_protection:MBEDTLS_TLS1_3_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"70696e67":"c74061535eb12f5f25a781957874742ab7fb305dd5" SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #2 # - Server App Key: 0b6d22c8ff68097ea871c672073773bf @@ -3142,7 +3142,7 @@ SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #2 # - Complete record: 1703030015370e5f168afa7fb16b663ecdfca3dbb81931a90ca7 # - Padding used: No (== granularity 1) depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED -ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"706f6e67":"370e5f168afa7fb16b663ecdfca3dbb81931a90ca7" +ssl_tls13_record_protection:MBEDTLS_TLS1_3_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"706f6e67":"370e5f168afa7fb16b663ecdfca3dbb81931a90ca7" SSL TLS 1.3 Record Encryption RFC 8448 Example #1 # Application Data record sent by Client in 1-RTT example of RFC 8448, Section 3 @@ -3161,7 +3161,7 @@ SSL TLS 1.3 Record Encryption RFC 8448 Example #1 # 3a ee bb 21 69 49 15 e4 # - Padding used: No (== granularity 1) depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED -ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"a23f7054b62c94d0affafe8228ba55cbefacea42f914aa66bcab3f2b9819a8a5b46b395bd54a9a20441e2b62974e1f5a6292a2977014bd1e3deae63aeebb21694915e4" +ssl_tls13_record_protection:MBEDTLS_TLS1_3_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"a23f7054b62c94d0affafe8228ba55cbefacea42f914aa66bcab3f2b9819a8a5b46b395bd54a9a20441e2b62974e1f5a6292a2977014bd1e3deae63aeebb21694915e4" SSL TLS 1.3 Record Encryption RFC 8448 Example #2 # Application Data record sent by Server in 1-RTT example of RFC 8448, Section 3 @@ -3180,7 +3180,7 @@ SSL TLS 1.3 Record Encryption RFC 8448 Example #2 # 0d d0 32 e1 67 c2 95 5d # - Padding used: No (== granularity 1) depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED -ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"2e937e11ef4ac740e538ad36005fc4a46932fc3225d05f82aa1b36e30efaf97d90e6dffc602dcb501a59a8fcc49c4bf2e5f0a21c0047c2abf332540dd032e167c2955d" +ssl_tls13_record_protection:MBEDTLS_TLS1_3_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"2e937e11ef4ac740e538ad36005fc4a46932fc3225d05f82aa1b36e30efaf97d90e6dffc602dcb501a59a8fcc49c4bf2e5f0a21c0047c2abf332540dd032e167c2955d" SSL TLS 1.3 Key schedule: Application secrets derivation helper # Vector from RFC 8448 From f64cc03b099abf9860fc194c31a930ee19d674d3 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 09:32:19 +0200 Subject: [PATCH 0820/1028] tests: ssl: Add missing dependencies on certificate based handshake Signed-off-by: Ronald Cron --- tests/suites/test_suite_ssl.data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index f7ac4df679..c130e53634 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -261,7 +261,7 @@ depends_on:MBEDTLS_SSL_PROTO_TLS1_2 handshake_version:0:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2 Handshake, tls1_3 -depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED handshake_version:0:MBEDTLS_SSL_VERSION_TLS1_3:MBEDTLS_SSL_VERSION_TLS1_3:MBEDTLS_SSL_VERSION_TLS1_3:MBEDTLS_SSL_VERSION_TLS1_3:MBEDTLS_SSL_VERSION_TLS1_3 Handshake, ECDHE-RSA-WITH-AES-256-GCM-SHA384 From 81cd7ab492977249868a83d4aa290cabbc3b8173 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 18 Oct 2022 12:15:27 +0200 Subject: [PATCH 0821/1028] tests: ssl: Add missing dependency on MBEDTLS_X509_CRT_PARSE_C Signed-off-by: Ronald Cron --- tests/suites/test_suite_x509write.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index 1120bee146..5caf143254 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -235,7 +235,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_PEM_WRITE_C:MBEDTLS_X509_CRT_WRITE_C:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_PEM_WRITE_C:MBEDTLS_X509_CRT_WRITE_C:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void x509_crt_check( char *subject_key_file, char *subject_pwd, char *subject_name, char *issuer_key_file, char *issuer_pwd, char *issuer_name, From 2ea36af693c5f3a0adccff671908caa9b928a3f2 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 17 Oct 2022 09:37:16 +0200 Subject: [PATCH 0822/1028] ssl-opt.sh: TLS 1.3 kex: Do not use sig_algs if no cert Signed-off-by: Ronald Cron --- tests/opt-testcases/tls13-kex-modes.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index c8586d2c27..6914ccd518 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -2792,7 +2792,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: m->O: psk/ephemeral_all, fail - no common kex mode" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2830,7 +2830,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: m->O: psk_all/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2869,7 +2869,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: m->O: psk_ephemeral/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ From bc5adf4ef83c10398db772df5fb160b386b2a26b Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 11:06:14 +0200 Subject: [PATCH 0823/1028] ssl-opt.sh: Add dependencies on handshake with cert Signed-off-by: Ronald Cron --- tests/opt-testcases/tls13-compat.sh | 722 ++++++++++++++++++- tests/scripts/generate_tls13_compat_tests.py | 3 +- tests/ssl-opt.sh | 128 ++++ 3 files changed, 851 insertions(+), 2 deletions(-) diff --git a/tests/opt-testcases/tls13-compat.sh b/tests/opt-testcases/tls13-compat.sh index 5a71d1c42b..5611510bc7 100755 --- a/tests/opt-testcases/tls13-compat.sh +++ b/tests/opt-testcases/tls13-compat.sh @@ -20,7 +20,7 @@ # Purpose # # List TLS1.3 compat test cases. They are generated by -# `./tests/scripts/generate_tls13_compat_tests.py -a -o tests/opt-testcases/tls13-compat.sh`. +# `./tests/scripts/generate_tls13_compat_tests.py -a -o ./tests/opt-testcases/tls13-compat.sh`. # # PLEASE DO NOT EDIT THIS FILE. IF NEEDED, PLEASE MODIFY `generate_tls13_compat_tests.py` # AND REGENERATE THIS FILE. @@ -28,6 +28,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -44,6 +45,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -60,6 +62,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -76,6 +79,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -93,6 +97,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -109,6 +114,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -125,6 +131,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -141,6 +148,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -158,6 +166,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -174,6 +183,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -190,6 +200,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -206,6 +217,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -223,6 +235,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -239,6 +252,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -255,6 +269,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -271,6 +286,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -288,6 +304,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -304,6 +321,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -320,6 +338,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -336,6 +355,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -353,6 +373,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ @@ -369,6 +390,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ @@ -385,6 +407,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ @@ -401,6 +424,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -418,6 +442,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ @@ -434,6 +459,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ @@ -450,6 +476,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ @@ -466,6 +493,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -483,6 +511,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ @@ -499,6 +528,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ @@ -515,6 +545,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ @@ -531,6 +562,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -548,6 +580,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ @@ -564,6 +597,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ @@ -580,6 +614,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ @@ -596,6 +631,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -613,6 +649,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ @@ -629,6 +666,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ @@ -645,6 +683,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ @@ -661,6 +700,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -678,6 +718,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -694,6 +735,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -710,6 +752,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -726,6 +769,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -743,6 +787,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -759,6 +804,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -775,6 +821,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -791,6 +838,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -808,6 +856,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -824,6 +873,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -840,6 +890,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -856,6 +907,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -873,6 +925,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -889,6 +942,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -905,6 +959,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -921,6 +976,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -938,6 +994,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -954,6 +1011,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -970,6 +1028,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -986,6 +1045,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1003,6 +1063,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -1019,6 +1080,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -1035,6 +1097,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -1051,6 +1114,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1068,6 +1132,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -1084,6 +1149,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -1100,6 +1166,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -1116,6 +1183,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1133,6 +1201,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -1149,6 +1218,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -1165,6 +1235,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -1181,6 +1252,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1198,6 +1270,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -1214,6 +1287,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -1230,6 +1304,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -1246,6 +1321,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1263,6 +1339,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -1279,6 +1356,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -1295,6 +1373,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -1311,6 +1390,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1328,6 +1408,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -1344,6 +1425,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -1360,6 +1442,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -1376,6 +1459,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1393,6 +1477,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -1409,6 +1494,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -1425,6 +1511,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -1441,6 +1528,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1458,6 +1546,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -1474,6 +1563,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -1490,6 +1580,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -1506,6 +1597,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1523,6 +1615,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -1539,6 +1632,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -1555,6 +1649,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -1571,6 +1666,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1588,6 +1684,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -1604,6 +1701,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -1620,6 +1718,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -1636,6 +1735,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1653,6 +1753,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1671,6 +1772,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1689,6 +1791,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1707,6 +1810,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -1726,6 +1830,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1744,6 +1849,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1762,6 +1868,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1780,6 +1887,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -1799,6 +1907,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1817,6 +1926,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1835,6 +1945,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1853,6 +1964,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -1872,6 +1984,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1890,6 +2003,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1908,6 +2022,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1926,6 +2041,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -1945,6 +2061,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1963,6 +2080,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1981,6 +2099,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1999,6 +2118,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2018,6 +2138,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2036,6 +2157,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2054,6 +2176,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2072,6 +2195,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2091,6 +2215,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2109,6 +2234,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2127,6 +2253,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2145,6 +2272,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2164,6 +2292,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2182,6 +2311,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2200,6 +2330,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2218,6 +2349,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2237,6 +2369,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2255,6 +2388,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2273,6 +2407,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2291,6 +2426,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2310,6 +2446,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2328,6 +2465,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2346,6 +2484,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2364,6 +2503,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2383,6 +2523,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2401,6 +2542,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2419,6 +2561,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2437,6 +2580,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2456,6 +2600,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2474,6 +2619,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2492,6 +2638,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2510,6 +2657,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2529,6 +2677,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2547,6 +2696,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2565,6 +2715,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2583,6 +2734,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2602,6 +2754,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2620,6 +2773,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2638,6 +2792,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2656,6 +2811,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2675,6 +2831,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2693,6 +2850,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2711,6 +2869,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2729,6 +2888,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2748,6 +2908,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2766,6 +2927,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2784,6 +2946,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2802,6 +2965,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2821,6 +2985,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2839,6 +3004,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2857,6 +3023,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2875,6 +3042,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2894,6 +3062,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2912,6 +3081,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2930,6 +3100,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2948,6 +3119,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2967,6 +3139,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2985,6 +3158,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3003,6 +3177,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3021,6 +3196,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3040,6 +3216,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3058,6 +3235,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3076,6 +3254,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3094,6 +3273,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3113,6 +3293,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3131,6 +3312,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3149,6 +3331,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3167,6 +3350,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3186,6 +3370,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3204,6 +3389,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3222,6 +3408,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3240,6 +3427,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3259,6 +3447,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3277,6 +3466,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3295,6 +3485,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3313,6 +3504,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3332,6 +3524,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3350,6 +3543,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3368,6 +3562,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3386,6 +3581,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3405,6 +3601,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3423,6 +3620,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3441,6 +3639,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3459,6 +3658,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3479,6 +3679,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3496,6 +3697,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3513,6 +3715,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3530,6 +3733,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -3548,6 +3752,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3565,6 +3770,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3582,6 +3788,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3599,6 +3806,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -3617,6 +3825,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3634,6 +3843,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3651,6 +3861,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3668,6 +3879,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -3686,6 +3898,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3703,6 +3916,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3720,6 +3934,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3737,6 +3952,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -3755,6 +3971,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3772,6 +3989,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3789,6 +4007,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3806,6 +4025,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -3824,6 +4044,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3841,6 +4062,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3858,6 +4080,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3875,6 +4098,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ @@ -3893,6 +4117,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3910,6 +4135,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3927,6 +4153,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3944,6 +4171,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ @@ -3962,6 +4190,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3979,6 +4208,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3996,6 +4226,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4013,6 +4244,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ @@ -4031,6 +4263,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4048,6 +4281,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4065,6 +4299,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4082,6 +4317,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ @@ -4100,6 +4336,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4117,6 +4354,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4134,6 +4372,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4151,6 +4390,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ @@ -4169,6 +4409,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4186,6 +4427,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4203,6 +4445,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4220,6 +4463,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -4238,6 +4482,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4255,6 +4500,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4272,6 +4518,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4289,6 +4536,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -4307,6 +4555,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4324,6 +4573,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4341,6 +4591,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4358,6 +4609,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -4376,6 +4628,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4393,6 +4646,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4410,6 +4664,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4427,6 +4682,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -4445,6 +4701,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4462,6 +4719,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4479,6 +4737,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4496,6 +4755,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -4514,6 +4774,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4531,6 +4792,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4548,6 +4810,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4565,6 +4828,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -4583,6 +4847,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4600,6 +4865,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4617,6 +4883,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4634,6 +4901,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -4652,6 +4920,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4669,6 +4938,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4686,6 +4956,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4703,6 +4974,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -4721,6 +4993,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4738,6 +5011,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4755,6 +5029,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4772,6 +5047,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -4790,6 +5066,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4807,6 +5084,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4824,6 +5102,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4841,6 +5120,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -4859,6 +5139,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4876,6 +5157,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4893,6 +5175,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4910,6 +5193,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -4928,6 +5212,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4945,6 +5230,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4962,6 +5248,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4979,6 +5266,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -4997,6 +5285,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5014,6 +5303,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5031,6 +5321,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5048,6 +5339,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -5066,6 +5358,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5083,6 +5376,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5100,6 +5394,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5117,6 +5412,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -5135,6 +5431,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5152,6 +5449,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5169,6 +5467,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5186,6 +5485,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -5206,6 +5506,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5225,6 +5526,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5244,6 +5546,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5263,6 +5566,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -5283,6 +5587,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5302,6 +5607,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5321,6 +5627,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5340,6 +5647,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -5360,6 +5668,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5379,6 +5688,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5398,6 +5708,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5417,6 +5728,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -5437,6 +5749,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5456,6 +5769,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5475,6 +5789,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5494,6 +5809,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -5514,6 +5830,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5533,6 +5850,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5552,6 +5870,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5571,6 +5890,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -5591,6 +5911,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5610,6 +5931,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5629,6 +5951,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5648,6 +5971,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ @@ -5668,6 +5992,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5687,6 +6012,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5706,6 +6032,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5725,6 +6052,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ @@ -5745,6 +6073,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5764,6 +6093,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5783,6 +6113,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5802,6 +6133,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ @@ -5822,6 +6154,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5841,6 +6174,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5860,6 +6194,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5879,6 +6214,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ @@ -5899,6 +6235,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5918,6 +6255,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5937,6 +6275,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5956,6 +6295,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ @@ -5976,6 +6316,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5995,6 +6336,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6014,6 +6356,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6033,6 +6376,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -6053,6 +6397,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6072,6 +6417,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6091,6 +6437,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6110,6 +6457,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -6130,6 +6478,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6149,6 +6498,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6168,6 +6518,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6187,6 +6538,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -6207,6 +6559,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6226,6 +6579,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6245,6 +6599,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6264,6 +6619,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -6284,6 +6640,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6303,6 +6660,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6322,6 +6680,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6341,6 +6700,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -6361,6 +6721,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6380,6 +6741,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6399,6 +6761,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6418,6 +6781,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -6438,6 +6802,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6457,6 +6822,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6476,6 +6842,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6495,6 +6862,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -6515,6 +6883,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6534,6 +6903,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6553,6 +6923,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6572,6 +6943,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -6592,6 +6964,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6611,6 +6984,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6630,6 +7004,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6649,6 +7024,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -6669,6 +7045,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6688,6 +7065,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6707,6 +7085,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6726,6 +7105,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -6746,6 +7126,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6765,6 +7146,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6784,6 +7166,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6803,6 +7186,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -6823,6 +7207,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6842,6 +7227,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6861,6 +7247,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6880,6 +7267,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -6900,6 +7288,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6919,6 +7308,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6938,6 +7328,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6957,6 +7348,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -6977,6 +7369,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6996,6 +7389,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7015,6 +7409,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7034,6 +7429,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -7054,6 +7450,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7073,6 +7470,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7092,6 +7490,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7111,6 +7510,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -7128,10 +7528,12 @@ run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7152,10 +7554,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7176,10 +7580,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7200,11 +7606,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -7226,10 +7634,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7250,10 +7660,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7274,10 +7686,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7298,11 +7712,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -7324,10 +7740,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7348,10 +7766,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7372,10 +7792,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7396,11 +7818,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -7422,10 +7846,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7446,10 +7872,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7470,10 +7898,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7494,11 +7924,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -7520,10 +7952,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7544,10 +7978,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7568,10 +8004,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7592,11 +8030,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -7618,10 +8058,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7642,10 +8084,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7666,10 +8110,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7690,11 +8136,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ @@ -7716,10 +8164,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7740,10 +8190,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7764,10 +8216,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7788,11 +8242,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ @@ -7814,10 +8270,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7838,10 +8296,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7862,10 +8322,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7886,11 +8348,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ @@ -7912,10 +8376,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7936,10 +8402,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7960,10 +8428,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7984,11 +8454,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ @@ -8010,10 +8482,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8034,10 +8508,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8058,10 +8534,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8082,11 +8560,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ @@ -8108,10 +8588,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8132,10 +8614,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8156,10 +8640,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8180,11 +8666,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -8206,10 +8694,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8230,10 +8720,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8254,10 +8746,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8278,11 +8772,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -8304,10 +8800,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8328,10 +8826,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8352,10 +8852,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8376,11 +8878,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -8402,10 +8906,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8426,10 +8932,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8450,10 +8958,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8474,11 +8984,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -8500,10 +9012,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8524,10 +9038,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8548,10 +9064,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8572,11 +9090,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -8598,10 +9118,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8622,10 +9144,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8646,10 +9170,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8670,11 +9196,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -8696,10 +9224,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8720,10 +9250,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8744,10 +9276,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8768,11 +9302,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -8794,10 +9330,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8818,10 +9356,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8842,10 +9382,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8866,11 +9408,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -8892,10 +9436,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8916,10 +9462,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8940,10 +9488,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8964,11 +9514,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -8990,10 +9542,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9014,10 +9568,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9038,10 +9594,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9062,11 +9620,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -9088,10 +9648,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9112,10 +9674,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9136,10 +9700,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9160,11 +9726,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -9186,10 +9754,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9210,10 +9780,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9234,10 +9806,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9258,11 +9832,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -9284,10 +9860,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9308,10 +9886,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9332,10 +9912,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9356,11 +9938,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -9382,10 +9966,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9406,10 +9992,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9430,10 +10018,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9454,11 +10044,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -9480,10 +10072,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9504,10 +10098,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9528,10 +10124,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9552,11 +10150,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -9578,6 +10178,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp256r1 -> secp384r1" \ @@ -9592,6 +10193,7 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp256r1 -> secp521r1" \ @@ -9606,6 +10208,7 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp256r1 -> x25519" \ @@ -9620,6 +10223,7 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp256r1 -> x448" \ @@ -9634,6 +10238,7 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp384r1 -> secp256r1" \ @@ -9648,6 +10253,7 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp384r1 -> secp521r1" \ @@ -9662,6 +10268,7 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp384r1 -> x25519" \ @@ -9676,6 +10283,7 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp384r1 -> x448" \ @@ -9690,6 +10298,7 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp521r1 -> secp256r1" \ @@ -9704,6 +10313,7 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp521r1 -> secp384r1" \ @@ -9718,6 +10328,7 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp521r1 -> x25519" \ @@ -9732,6 +10343,7 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp521r1 -> x448" \ @@ -9746,6 +10358,7 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x25519 -> secp256r1" \ @@ -9760,6 +10373,7 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x25519 -> secp384r1" \ @@ -9774,6 +10388,7 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x25519 -> secp521r1" \ @@ -9788,6 +10403,7 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x25519 -> x448" \ @@ -9802,6 +10418,7 @@ run_test "TLS 1.3 O->m: HRR x25519 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x448 -> secp256r1" \ @@ -9816,6 +10433,7 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x448 -> secp384r1" \ @@ -9830,6 +10448,7 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x448 -> secp521r1" \ @@ -9844,6 +10463,7 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x448 -> x25519" \ @@ -9858,6 +10478,7 @@ run_test "TLS 1.3 O->m: HRR x448 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -9874,6 +10495,7 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -9890,6 +10512,7 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -9906,6 +10529,7 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -9922,6 +10546,7 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -9938,6 +10563,7 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -9954,6 +10580,7 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -9970,6 +10597,7 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -9986,6 +10614,7 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10002,6 +10631,7 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10018,6 +10648,7 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10034,6 +10665,7 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10050,6 +10682,7 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10066,6 +10699,7 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10082,6 +10716,7 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10098,6 +10733,7 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10114,6 +10750,7 @@ run_test "TLS 1.3 G->m: HRR x25519 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10130,6 +10767,7 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10146,6 +10784,7 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10162,6 +10801,7 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10179,6 +10819,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> secp384r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10196,6 +10837,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> secp521r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10213,6 +10855,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> x25519" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10230,6 +10873,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> x448" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10247,6 +10891,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> secp256r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10264,6 +10909,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> secp521r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10281,6 +10927,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> x25519" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10298,6 +10945,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> x448" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10315,6 +10963,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> secp256r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10332,6 +10981,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> secp384r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10349,6 +10999,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> x25519" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10366,6 +11017,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> x448" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10383,6 +11035,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp256r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10400,6 +11053,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp384r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10417,6 +11071,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp521r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10434,6 +11089,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> x448" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10451,6 +11107,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp256r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10468,6 +11125,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp384r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10485,6 +11143,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp521r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10502,6 +11161,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> x25519" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10521,6 +11181,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> secp384r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10540,6 +11201,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> secp521r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10559,6 +11221,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> x25519" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10578,6 +11241,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> x448" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10597,6 +11261,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> secp256r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10616,6 +11281,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> secp521r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10635,6 +11301,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> x25519" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10654,6 +11321,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> x448" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10673,6 +11341,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> secp256r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10692,6 +11361,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> secp384r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10711,6 +11381,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> x25519" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10730,6 +11401,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> x448" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10749,6 +11421,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp256r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10768,6 +11441,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp384r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10787,6 +11461,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp521r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10806,6 +11481,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> x448" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10825,6 +11501,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp256r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10844,6 +11521,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp384r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10863,6 +11541,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp521r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10882,6 +11561,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> x25519" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10898,10 +11578,12 @@ run_test "TLS 1.3 m->G: HRR x448 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> secp384r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10921,10 +11603,12 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> secp521r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10944,10 +11628,12 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> x25519" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10967,10 +11653,12 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> x448" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10990,10 +11678,12 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> secp256r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11013,10 +11703,12 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> secp521r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11036,10 +11728,12 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> x25519" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11059,10 +11753,12 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> x448" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11082,10 +11778,12 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> secp256r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11105,10 +11803,12 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> secp384r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11128,10 +11828,12 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> x25519" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11151,10 +11853,12 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> x448" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11174,10 +11878,12 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp256r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11197,10 +11903,12 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp384r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11220,10 +11928,12 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp521r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11243,10 +11953,12 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> x448" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11266,10 +11978,12 @@ run_test "TLS 1.3 m->m: HRR x25519 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp256r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11289,10 +12003,12 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp384r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11312,10 +12028,12 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp521r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11335,10 +12053,12 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> x25519" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ diff --git a/tests/scripts/generate_tls13_compat_tests.py b/tests/scripts/generate_tls13_compat_tests.py index 7819a87664..0e94af6f0b 100755 --- a/tests/scripts/generate_tls13_compat_tests.py +++ b/tests/scripts/generate_tls13_compat_tests.py @@ -357,7 +357,8 @@ class MbedTLSBase(TLSProgram): def pre_checks(self): ret = ['requires_config_enabled MBEDTLS_DEBUG_C', - 'requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3'] + 'requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3', + 'requires_key_exchange_with_cert_in_tls13_enabled'] if self._compat_mode: ret += ['requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE'] diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index f6437f5153..3378013b3c 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -251,6 +251,29 @@ requires_any_configs_disabled() { fi } +TLS1_2_KEY_EXCHANGES_WITH_CERT="MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED" + +requires_key_exchange_with_cert_in_tls12_enabled() { + if ! $P_QUERY -any $TLS1_2_KEY_EXCHANGES_WITH_CERT + then + SKIP_NEXT="YES" + fi +} + +requires_key_exchange_with_cert_in_tls13_enabled() { + requires_key_exchange_with_cert_in_tls12_enabled +} + +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled() { + requires_key_exchange_with_cert_in_tls12_enabled +} + get_config_value_or_default() { # This function uses the query_config command line option to query the # required Mbed TLS compile time configuration from the ssl_server2 @@ -5158,6 +5181,7 @@ run_test "DER format: with 9 trailing random bytes" \ # Tests for auth_mode, there are duplicated tests using ca callback for authentication # When updating these tests, modify the matching authentication tests accordingly +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: server badcert, client required" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5169,6 +5193,7 @@ run_test "Authentication: server badcert, client required" \ -c "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: server badcert, client optional" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5180,6 +5205,7 @@ run_test "Authentication: server badcert, client optional" \ -C "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: server goodcert, client optional, no trusted CA" \ "$P_SRV" \ "$P_CLI debug_level=3 auth_mode=optional ca_file=none ca_path=none" \ @@ -5191,6 +5217,7 @@ run_test "Authentication: server goodcert, client optional, no trusted CA" \ -C "X509 - Certificate verification failed" \ -C "SSL - No CA Chain is set, but required to operate" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: server goodcert, client required, no trusted CA" \ "$P_SRV" \ "$P_CLI debug_level=3 auth_mode=required ca_file=none ca_path=none" \ @@ -5210,6 +5237,7 @@ run_test "Authentication: server goodcert, client required, no trusted CA" \ requires_config_enabled MBEDTLS_ECP_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: server ECDH p256v1, client required, p256v1 unsupported" \ "$P_SRV debug_level=1 key_file=data_files/server5.key \ crt_file=data_files/server5.ku-ka.crt" \ @@ -5221,6 +5249,7 @@ run_test "Authentication: server ECDH p256v1, client required, p256v1 unsuppo requires_config_enabled MBEDTLS_ECP_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: server ECDH p256v1, client optional, p256v1 unsupported" \ "$P_SRV debug_level=1 key_file=data_files/server5.key \ crt_file=data_files/server5.ku-ka.crt" \ @@ -5231,6 +5260,7 @@ run_test "Authentication: server ECDH p256v1, client optional, p256v1 unsuppo -c "bad server certificate (ECDH curve)" # Expect failure only at ECDH params check requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: server badcert, client none" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5242,6 +5272,7 @@ run_test "Authentication: server badcert, client none" \ -C "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: client SHA256, server required" \ "$P_SRV auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ @@ -5252,6 +5283,7 @@ run_test "Authentication: client SHA256, server required" \ -c "Supported Signature Algorithm found: 5," requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: client SHA384, server required" \ "$P_SRV auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ @@ -5261,6 +5293,7 @@ run_test "Authentication: client SHA384, server required" \ -c "Supported Signature Algorithm found: 4," \ -c "Supported Signature Algorithm found: 5," +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client has no cert, server required (TLS)" \ "$P_SRV debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=none \ @@ -5276,6 +5309,7 @@ run_test "Authentication: client has no cert, server required (TLS)" \ -s "! mbedtls_ssl_handshake returned" \ -s "No client certification received from the client, but required by the authentication mode" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client badcert, server required" \ "$P_SRV debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ @@ -5296,6 +5330,7 @@ run_test "Authentication: client badcert, server required" \ # detect that its write end of the connection is closed and abort # before reading the alert message. +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client cert self-signed and trusted, server required" \ "$P_SRV debug_level=3 auth_mode=required ca_file=data_files/server5-selfsigned.crt" \ "$P_CLI debug_level=3 crt_file=data_files/server5-selfsigned.crt \ @@ -5311,6 +5346,7 @@ run_test "Authentication: client cert self-signed and trusted, server require -S "! The certificate is not correctly signed" \ -S "X509 - Certificate verification failed" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client cert not trusted, server required" \ "$P_SRV debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server5-selfsigned.crt \ @@ -5327,6 +5363,7 @@ run_test "Authentication: client cert not trusted, server required" \ -s "! mbedtls_ssl_handshake returned" \ -s "X509 - Certificate verification failed" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client badcert, server optional" \ "$P_SRV debug_level=3 auth_mode=optional" \ "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ @@ -5344,6 +5381,7 @@ run_test "Authentication: client badcert, server optional" \ -C "! mbedtls_ssl_handshake returned" \ -S "X509 - Certificate verification failed" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client badcert, server none" \ "$P_SRV debug_level=3 auth_mode=none" \ "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ @@ -5361,6 +5399,7 @@ run_test "Authentication: client badcert, server none" \ -C "! mbedtls_ssl_handshake returned" \ -S "X509 - Certificate verification failed" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client no cert, server optional" \ "$P_SRV debug_level=3 auth_mode=optional" \ "$P_CLI debug_level=3 crt_file=none key_file=none" \ @@ -5378,6 +5417,7 @@ run_test "Authentication: client no cert, server optional" \ -S "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: openssl client no cert, server optional" \ "$P_SRV debug_level=3 auth_mode=optional" \ "$O_CLI" \ @@ -5389,6 +5429,7 @@ run_test "Authentication: openssl client no cert, server optional" \ -S "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: client no cert, openssl server optional" \ "$O_SRV -verify 10 -tls1_2" \ "$P_CLI debug_level=3 crt_file=none key_file=none" \ @@ -5400,6 +5441,7 @@ run_test "Authentication: client no cert, openssl server optional" \ -C "! mbedtls_ssl_handshake returned" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: client no cert, openssl server required" \ "$O_SRV -Verify 10 -tls1_2" \ "$P_CLI debug_level=3 crt_file=none key_file=none" \ @@ -5422,6 +5464,7 @@ MAX_IM_CA='8' # are in place so that the semantics are consistent with the test description. requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: server max_int chain, client default" \ "$P_SRV crt_file=data_files/dir-maxpath/c09.pem \ key_file=data_files/dir-maxpath/09.key" \ @@ -5431,6 +5474,7 @@ run_test "Authentication: server max_int chain, client default" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: server max_int+1 chain, client default" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5441,6 +5485,7 @@ run_test "Authentication: server max_int+1 chain, client default" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: server max_int+1 chain, client optional" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5452,6 +5497,7 @@ run_test "Authentication: server max_int+1 chain, client optional" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: server max_int+1 chain, client none" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5462,6 +5508,7 @@ run_test "Authentication: server max_int+1 chain, client none" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client max_int+1 chain, server default" \ "$P_SRV ca_file=data_files/dir-maxpath/00.crt" \ "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ @@ -5471,6 +5518,7 @@ run_test "Authentication: client max_int+1 chain, server default" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client max_int+1 chain, server optional" \ "$P_SRV ca_file=data_files/dir-maxpath/00.crt auth_mode=optional" \ "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ @@ -5480,6 +5528,7 @@ run_test "Authentication: client max_int+1 chain, server optional" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client max_int+1 chain, server required" \ "$P_SRV ca_file=data_files/dir-maxpath/00.crt auth_mode=required" \ "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ @@ -5489,6 +5538,7 @@ run_test "Authentication: client max_int+1 chain, server required" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client max_int chain, server required" \ "$P_SRV ca_file=data_files/dir-maxpath/00.crt auth_mode=required" \ "$P_CLI crt_file=data_files/dir-maxpath/c09.pem \ @@ -5499,6 +5549,7 @@ run_test "Authentication: client max_int chain, server required" \ # Tests for CA list in CertificateRequest messages requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: send CA list in CertificateRequest (default)" \ "$P_SRV debug_level=3 auth_mode=required" \ "$P_CLI crt_file=data_files/server6.crt \ @@ -5507,6 +5558,7 @@ run_test "Authentication: send CA list in CertificateRequest (default)" \ -s "requested DN" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: do not send CA list in CertificateRequest" \ "$P_SRV debug_level=3 auth_mode=required cert_req_ca_list=0" \ "$P_CLI crt_file=data_files/server6.crt \ @@ -5515,6 +5567,7 @@ run_test "Authentication: do not send CA list in CertificateRequest" \ -S "requested DN" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: send CA list in CertificateRequest, client self signed" \ "$P_SRV debug_level=3 auth_mode=required cert_req_ca_list=0" \ "$P_CLI debug_level=3 crt_file=data_files/server5-selfsigned.crt \ @@ -5528,6 +5581,7 @@ run_test "Authentication: send CA list in CertificateRequest, client self sig -s "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: send alt conf DN hints in CertificateRequest" \ "$P_SRV debug_level=3 auth_mode=optional cert_req_ca_list=2 \ crt_file2=data_files/server1.crt \ @@ -5539,6 +5593,7 @@ run_test "Authentication: send alt conf DN hints in CertificateRequest" \ -c "DN hint: C=NL, O=PolarSSL, CN=PolarSSL Server 1" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: send alt conf DN hints in CertificateRequest (2)" \ "$P_SRV debug_level=3 auth_mode=optional cert_req_ca_list=2 \ crt_file2=data_files/server2.crt \ @@ -5550,6 +5605,7 @@ run_test "Authentication: send alt conf DN hints in CertificateRequest (2)" \ -c "DN hint: C=NL, O=PolarSSL, CN=localhost" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: send alt hs DN hints in CertificateRequest" \ "$P_SRV debug_level=3 auth_mode=optional cert_req_ca_list=3 \ crt_file2=data_files/server1.crt \ @@ -5565,6 +5621,7 @@ run_test "Authentication: send alt hs DN hints in CertificateRequest" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: server badcert, client required" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5578,6 +5635,7 @@ run_test "Authentication, CA callback: server badcert, client required" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: server badcert, client optional" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5599,6 +5657,7 @@ run_test "Authentication, CA callback: server badcert, client optional" \ requires_config_enabled MBEDTLS_ECP_C requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: server ECDH p256v1, client required, p256v1 unsupported" \ "$P_SRV debug_level=1 key_file=data_files/server5.key \ crt_file=data_files/server5.ku-ka.crt" \ @@ -5612,6 +5671,7 @@ run_test "Authentication, CA callback: server ECDH p256v1, client required, p requires_config_enabled MBEDTLS_ECP_C requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: server ECDH p256v1, client optional, p256v1 unsupported" \ "$P_SRV debug_level=1 key_file=data_files/server5.key \ crt_file=data_files/server5.ku-ka.crt" \ @@ -5624,6 +5684,7 @@ run_test "Authentication, CA callback: server ECDH p256v1, client optional, p requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: client SHA256, server required" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ @@ -5636,6 +5697,7 @@ run_test "Authentication, CA callback: client SHA256, server required" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: client SHA384, server required" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ @@ -5648,6 +5710,7 @@ run_test "Authentication, CA callback: client SHA384, server required" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: client badcert, server required" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ @@ -5672,6 +5735,7 @@ run_test "Authentication, CA callback: client badcert, server required" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: client cert not trusted, server required" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server5-selfsigned.crt \ @@ -5692,6 +5756,7 @@ run_test "Authentication, CA callback: client cert not trusted, server requir requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: client badcert, server optional" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=optional" \ "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ @@ -5714,6 +5779,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: server max_int chain, client default" \ "$P_SRV crt_file=data_files/dir-maxpath/c09.pem \ key_file=data_files/dir-maxpath/09.key" \ @@ -5726,6 +5792,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: server max_int+1 chain, client default" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5738,6 +5805,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: server max_int+1 chain, client optional" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5751,6 +5819,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: client max_int+1 chain, server optional" \ "$P_SRV ca_callback=1 debug_level=3 ca_file=data_files/dir-maxpath/00.crt auth_mode=optional" \ "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ @@ -5763,6 +5832,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: client max_int+1 chain, server required" \ "$P_SRV ca_callback=1 debug_level=3 ca_file=data_files/dir-maxpath/00.crt auth_mode=required" \ "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ @@ -5775,6 +5845,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: client max_int chain, server required" \ "$P_SRV ca_callback=1 debug_level=3 ca_file=data_files/dir-maxpath/00.crt auth_mode=required" \ "$P_CLI crt_file=data_files/dir-maxpath/c09.pem \ @@ -5799,6 +5870,7 @@ run_test "Certificate hash: client TLS 1.2 -> SHA-2" \ # tests for SNI requires_config_disabled MBEDTLS_X509_REMOVE_INFO +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: no SNI callback" \ "$P_SRV debug_level=3 \ crt_file=data_files/server5.crt key_file=data_files/server5.key" \ @@ -5808,6 +5880,7 @@ run_test "SNI: no SNI callback" \ -c "subject name *: C=NL, O=PolarSSL, CN=localhost" requires_config_disabled MBEDTLS_X509_REMOVE_INFO +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: matching cert 1" \ "$P_SRV debug_level=3 \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -5819,6 +5892,7 @@ run_test "SNI: matching cert 1" \ -c "subject name *: C=NL, O=PolarSSL, CN=localhost" requires_config_disabled MBEDTLS_X509_REMOVE_INFO +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: matching cert 2" \ "$P_SRV debug_level=3 \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -5830,6 +5904,7 @@ run_test "SNI: matching cert 2" \ -c "subject name *: C=NL, O=PolarSSL, CN=polarssl.example" requires_config_disabled MBEDTLS_X509_REMOVE_INFO +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: no matching cert" \ "$P_SRV debug_level=3 \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -5842,6 +5917,7 @@ run_test "SNI: no matching cert" \ -c "mbedtls_ssl_handshake returned" \ -c "SSL - A fatal alert message was received from our peer" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: client auth no override: optional" \ "$P_SRV debug_level=3 auth_mode=optional \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -5855,6 +5931,7 @@ run_test "SNI: client auth no override: optional" \ -C "skip write certificate verify" \ -S "skip parse certificate verify" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: client auth override: none -> optional" \ "$P_SRV debug_level=3 auth_mode=none \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -5868,6 +5945,7 @@ run_test "SNI: client auth override: none -> optional" \ -C "skip write certificate verify" \ -S "skip parse certificate verify" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: client auth override: optional -> none" \ "$P_SRV debug_level=3 auth_mode=optional \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -5879,6 +5957,7 @@ run_test "SNI: client auth override: optional -> none" \ -c "got no certificate request" \ -c "skip write certificate" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: CA no override" \ "$P_SRV debug_level=3 auth_mode=optional \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -5897,6 +5976,7 @@ run_test "SNI: CA no override" \ -s "! The certificate is not correctly signed by the trusted CA" \ -S "The certificate has been revoked (is on a CRL)" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: CA override" \ "$P_SRV debug_level=3 auth_mode=optional \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -5915,6 +5995,7 @@ run_test "SNI: CA override" \ -S "! The certificate is not correctly signed by the trusted CA" \ -S "The certificate has been revoked (is on a CRL)" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: CA override with CRL" \ "$P_SRV debug_level=3 auth_mode=optional \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -6083,6 +6164,7 @@ run_test "SNI: DTLS, CA override with CRL" \ # Tests for non-blocking I/O: exercise a variety of handshake flows +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Non-blocking I/O: basic handshake" \ "$P_SRV nbio=2 tickets=0 auth_mode=none" \ "$P_CLI nbio=2 tickets=0" \ @@ -6091,6 +6173,7 @@ run_test "Non-blocking I/O: basic handshake" \ -C "mbedtls_ssl_handshake returned" \ -c "Read from server: .* bytes read" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Non-blocking I/O: client auth" \ "$P_SRV nbio=2 tickets=0 auth_mode=required" \ "$P_CLI nbio=2 tickets=0" \ @@ -6100,6 +6183,7 @@ run_test "Non-blocking I/O: client auth" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Non-blocking I/O: ticket" \ "$P_SRV nbio=2 tickets=1 auth_mode=none" \ "$P_CLI nbio=2 tickets=1" \ @@ -6109,6 +6193,7 @@ run_test "Non-blocking I/O: ticket" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Non-blocking I/O: ticket + client auth" \ "$P_SRV nbio=2 tickets=1 auth_mode=required" \ "$P_CLI nbio=2 tickets=1" \ @@ -6118,6 +6203,7 @@ run_test "Non-blocking I/O: ticket + client auth" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Non-blocking I/O: ticket + client auth + resume" \ "$P_SRV nbio=2 tickets=1 auth_mode=required" \ "$P_CLI nbio=2 tickets=1 reconnect=1" \ @@ -6127,6 +6213,7 @@ run_test "Non-blocking I/O: ticket + client auth + resume" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Non-blocking I/O: ticket + resume" \ "$P_SRV nbio=2 tickets=1 auth_mode=none" \ "$P_CLI nbio=2 tickets=1 reconnect=1" \ @@ -6136,6 +6223,7 @@ run_test "Non-blocking I/O: ticket + resume" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Non-blocking I/O: session-id resume" \ "$P_SRV nbio=2 tickets=0 auth_mode=none" \ "$P_CLI nbio=2 tickets=0 reconnect=1" \ @@ -6146,6 +6234,7 @@ run_test "Non-blocking I/O: session-id resume" \ # Tests for event-driven I/O: exercise a variety of handshake flows +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Event-driven I/O: basic handshake" \ "$P_SRV event=1 tickets=0 auth_mode=none" \ "$P_CLI event=1 tickets=0" \ @@ -6154,6 +6243,7 @@ run_test "Event-driven I/O: basic handshake" \ -C "mbedtls_ssl_handshake returned" \ -c "Read from server: .* bytes read" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Event-driven I/O: client auth" \ "$P_SRV event=1 tickets=0 auth_mode=required" \ "$P_CLI event=1 tickets=0" \ @@ -6163,6 +6253,7 @@ run_test "Event-driven I/O: client auth" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Event-driven I/O: ticket" \ "$P_SRV event=1 tickets=1 auth_mode=none" \ "$P_CLI event=1 tickets=1" \ @@ -6172,6 +6263,7 @@ run_test "Event-driven I/O: ticket" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Event-driven I/O: ticket + client auth" \ "$P_SRV event=1 tickets=1 auth_mode=required" \ "$P_CLI event=1 tickets=1" \ @@ -6181,6 +6273,7 @@ run_test "Event-driven I/O: ticket + client auth" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Event-driven I/O: ticket + client auth + resume" \ "$P_SRV event=1 tickets=1 auth_mode=required" \ "$P_CLI event=1 tickets=1 reconnect=1" \ @@ -6190,6 +6283,7 @@ run_test "Event-driven I/O: ticket + client auth + resume" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Event-driven I/O: ticket + resume" \ "$P_SRV event=1 tickets=1 auth_mode=none" \ "$P_CLI event=1 tickets=1 reconnect=1" \ @@ -6199,6 +6293,7 @@ run_test "Event-driven I/O: ticket + resume" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Event-driven I/O: session-id resume" \ "$P_SRV event=1 tickets=0 auth_mode=none" \ "$P_CLI event=1 tickets=0 reconnect=1" \ @@ -6323,6 +6418,7 @@ run_test "Not supported version check: srv max TLS 1.1" \ # Tests for ALPN extension +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "ALPN: none" \ "$P_SRV debug_level=3" \ "$P_CLI debug_level=3" \ @@ -6335,6 +6431,7 @@ run_test "ALPN: none" \ -C "Application Layer Protocol is" \ -S "Application Layer Protocol is" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "ALPN: client only" \ "$P_SRV debug_level=3" \ "$P_CLI debug_level=3 alpn=abc,1234" \ @@ -6347,6 +6444,7 @@ run_test "ALPN: client only" \ -c "Application Layer Protocol is (none)" \ -S "Application Layer Protocol is" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "ALPN: server only" \ "$P_SRV debug_level=3 alpn=abc,1234" \ "$P_CLI debug_level=3" \ @@ -6359,6 +6457,7 @@ run_test "ALPN: server only" \ -C "Application Layer Protocol is" \ -s "Application Layer Protocol is (none)" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "ALPN: both, common cli1-srv1" \ "$P_SRV debug_level=3 alpn=abc,1234" \ "$P_CLI debug_level=3 alpn=abc,1234" \ @@ -6371,6 +6470,7 @@ run_test "ALPN: both, common cli1-srv1" \ -c "Application Layer Protocol is abc" \ -s "Application Layer Protocol is abc" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "ALPN: both, common cli2-srv1" \ "$P_SRV debug_level=3 alpn=abc,1234" \ "$P_CLI debug_level=3 alpn=1234,abc" \ @@ -6383,6 +6483,7 @@ run_test "ALPN: both, common cli2-srv1" \ -c "Application Layer Protocol is abc" \ -s "Application Layer Protocol is abc" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "ALPN: both, common cli1-srv2" \ "$P_SRV debug_level=3 alpn=abc,1234" \ "$P_CLI debug_level=3 alpn=1234,abcde" \ @@ -6395,6 +6496,7 @@ run_test "ALPN: both, common cli1-srv2" \ -c "Application Layer Protocol is 1234" \ -s "Application Layer Protocol is 1234" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "ALPN: both, no common" \ "$P_SRV debug_level=3 alpn=abc,123" \ "$P_CLI debug_level=3 alpn=1234,abcde" \ @@ -6556,6 +6658,7 @@ run_test "keyUsage cli: DigitalSignature, RSA: fail, soft" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: DigitalSignature+KeyEncipherment, RSA: OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ds_ke.crt" \ @@ -6568,6 +6671,7 @@ run_test "keyUsage cli 1.3: DigitalSignature+KeyEncipherment, RSA: OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: KeyEncipherment, RSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ke.crt" \ @@ -6580,6 +6684,7 @@ run_test "keyUsage cli 1.3: KeyEncipherment, RSA: fail" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: KeyAgreement, RSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ka.crt" \ @@ -6592,6 +6697,7 @@ run_test "keyUsage cli 1.3: KeyAgreement, RSA: fail" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: DigitalSignature, ECDSA: OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ds.crt" \ @@ -6604,6 +6710,7 @@ run_test "keyUsage cli 1.3: DigitalSignature, ECDSA: OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: KeyEncipherment, ECDSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ke.crt" \ @@ -6616,6 +6723,7 @@ run_test "keyUsage cli 1.3: KeyEncipherment, ECDSA: fail" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: KeyAgreement, ECDSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ka.crt" \ @@ -6678,6 +6786,7 @@ run_test "keyUsage cli-auth: ECDSA, KeyAgreement: fail (soft)" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli-auth 1.3: RSA, DigitalSignature: OK" \ "$P_SRV debug_level=1 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ @@ -6690,6 +6799,7 @@ run_test "keyUsage cli-auth 1.3: RSA, DigitalSignature: OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli-auth 1.3: RSA, KeyEncipherment: fail (soft)" \ "$P_SRV debug_level=1 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ @@ -6701,6 +6811,7 @@ run_test "keyUsage cli-auth 1.3: RSA, KeyEncipherment: fail (soft)" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli-auth 1.3: ECDSA, DigitalSignature: OK" \ "$P_SRV debug_level=1 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6713,6 +6824,7 @@ run_test "keyUsage cli-auth 1.3: ECDSA, DigitalSignature: OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli-auth 1.3: ECDSA, KeyAgreement: fail (soft)" \ "$P_SRV debug_level=1 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6796,6 +6908,7 @@ run_test "extKeyUsage cli: codeSign -> fail" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli 1.3: serverAuth -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-srv.crt" \ @@ -6808,6 +6921,7 @@ run_test "extKeyUsage cli 1.3: serverAuth -> OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli 1.3: serverAuth,clientAuth -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-srv_cli.crt" \ @@ -6820,6 +6934,7 @@ run_test "extKeyUsage cli 1.3: serverAuth,clientAuth -> OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli 1.3: codeSign,anyEKU -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-cs_any.crt" \ @@ -6832,6 +6947,7 @@ run_test "extKeyUsage cli 1.3: codeSign,anyEKU -> OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli 1.3: codeSign -> fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-cs.crt" \ @@ -6891,6 +7007,7 @@ run_test "extKeyUsage cli-auth: codeSign -> fail (hard)" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli-auth 1.3: clientAuth -> OK" \ "$P_SRV debug_level=1 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6902,6 +7019,7 @@ run_test "extKeyUsage cli-auth 1.3: clientAuth -> OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli-auth 1.3: serverAuth,clientAuth -> OK" \ "$P_SRV debug_level=1 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6913,6 +7031,7 @@ run_test "extKeyUsage cli-auth 1.3: serverAuth,clientAuth -> OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli-auth 1.3: codeSign,anyEKU -> OK" \ "$P_SRV debug_level=1 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6924,6 +7043,7 @@ run_test "extKeyUsage cli-auth 1.3: codeSign,anyEKU -> OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli-auth 1.3: codeSign -> fail (soft)" \ "$P_SRV debug_level=1 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -7988,6 +8108,7 @@ run_test "Small client packet TLS 1.2 AEAD shorter tag" \ 0 \ -s "Read from client: 1 bytes read" +requires_key_exchange_with_cert_in_tls13_enabled run_test "Small client packet TLS 1.3 AEAD" \ "$P_SRV force_version=tls13" \ "$P_CLI request_size=1 \ @@ -7995,6 +8116,7 @@ run_test "Small client packet TLS 1.3 AEAD" \ 0 \ -s "Read from client: 1 bytes read" +requires_key_exchange_with_cert_in_tls13_enabled run_test "Small client packet TLS 1.3 AEAD shorter tag" \ "$P_SRV force_version=tls13" \ "$P_CLI request_size=1 \ @@ -8052,12 +8174,14 @@ run_test "Small server packet TLS 1.2 AEAD shorter tag" \ 0 \ -c "Read from server: 1 bytes read" +requires_key_exchange_with_cert_in_tls13_enabled run_test "Small server packet TLS 1.3 AEAD" \ "$P_SRV response_size=1 force_version=tls13" \ "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-SHA256" \ 0 \ -c "Read from server: 1 bytes read" +requires_key_exchange_with_cert_in_tls13_enabled run_test "Small server packet TLS 1.3 AEAD shorter tag" \ "$P_SRV response_size=1 force_version=tls13" \ "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256" \ @@ -8128,6 +8252,7 @@ run_test "Large client packet TLS 1.2 AEAD shorter tag" \ -c "16384 bytes written in $(fragments_for_write 16384) fragments" \ -s "Read from client: $MAX_CONTENT_LEN bytes read" +requires_key_exchange_with_cert_in_tls13_enabled run_test "Large client packet TLS 1.3 AEAD" \ "$P_SRV force_version=tls13" \ "$P_CLI request_size=16384 \ @@ -8136,6 +8261,7 @@ run_test "Large client packet TLS 1.3 AEAD" \ -c "16384 bytes written in $(fragments_for_write 16384) fragments" \ -s "Read from client: $MAX_CONTENT_LEN bytes read" +requires_key_exchange_with_cert_in_tls13_enabled run_test "Large client packet TLS 1.3 AEAD shorter tag" \ "$P_SRV force_version=tls13" \ "$P_CLI request_size=16384 \ @@ -8183,12 +8309,14 @@ run_test "Large server packet TLS 1.2 AEAD shorter tag" \ 0 \ -c "Read from server: 16384 bytes read" +requires_key_exchange_with_cert_in_tls13_enabled run_test "Large server packet TLS 1.3 AEAD" \ "$P_SRV response_size=16384 force_version=tls13" \ "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-SHA256" \ 0 \ -c "Read from server: 16384 bytes read" +requires_key_exchange_with_cert_in_tls13_enabled run_test "Large server packet TLS 1.3 AEAD shorter tag" \ "$P_SRV response_size=16384 force_version=tls13" \ "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256" \ From 89ca97712870a168fad8ad6f7cb15b6f166c9d2f Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 17 Oct 2022 14:56:45 +0200 Subject: [PATCH 0824/1028] ssl-opt.sh: Improve dependencies of some TLS 1.3 test cases Signed-off-by: Ronald Cron --- tests/ssl-opt.sh | 80 ++++++++++++++++++++++-------------------------- 1 file changed, 36 insertions(+), 44 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 3378013b3c..970ee9e990 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -6655,9 +6655,9 @@ run_test "keyUsage cli: DigitalSignature, RSA: fail, soft" \ -c "Ciphersuite is TLS-" \ -c "! Usage does not match the keyUsage extension" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: DigitalSignature+KeyEncipherment, RSA: OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ @@ -6668,9 +6668,9 @@ run_test "keyUsage cli 1.3: DigitalSignature+KeyEncipherment, RSA: OK" \ -C "Processing of the Certificate handshake message failed" \ -c "Ciphersuite is" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: KeyEncipherment, RSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ @@ -6681,9 +6681,9 @@ run_test "keyUsage cli 1.3: KeyEncipherment, RSA: fail" \ -c "Processing of the Certificate handshake message failed" \ -C "Ciphersuite is" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: KeyAgreement, RSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ @@ -6694,9 +6694,9 @@ run_test "keyUsage cli 1.3: KeyAgreement, RSA: fail" \ -c "Processing of the Certificate handshake message failed" \ -C "Ciphersuite is" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: DigitalSignature, ECDSA: OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ @@ -6707,9 +6707,9 @@ run_test "keyUsage cli 1.3: DigitalSignature, ECDSA: OK" \ -C "Processing of the Certificate handshake message failed" \ -c "Ciphersuite is" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: KeyEncipherment, ECDSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ @@ -6720,9 +6720,9 @@ run_test "keyUsage cli 1.3: KeyEncipherment, ECDSA: fail" \ -c "Processing of the Certificate handshake message failed" \ -C "Ciphersuite is" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: KeyAgreement, ECDSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ @@ -6783,12 +6783,11 @@ run_test "keyUsage cli-auth: ECDSA, KeyAgreement: fail (soft)" \ -s "bad certificate (usage extensions)" \ -S "Processing of the Certificate handshake message failed" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli-auth 1.3: RSA, DigitalSignature: OK" \ - "$P_SRV debug_level=1 auth_mode=optional" \ + "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ -cert data_files/server2.ku-ds.crt" \ 0 \ @@ -6796,24 +6795,22 @@ run_test "keyUsage cli-auth 1.3: RSA, DigitalSignature: OK" \ -S "bad certificate (usage extensions)" \ -S "Processing of the Certificate handshake message failed" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli-auth 1.3: RSA, KeyEncipherment: fail (soft)" \ - "$P_SRV debug_level=1 auth_mode=optional" \ + "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ -cert data_files/server2.ku-ke.crt" \ 0 \ -s "bad certificate (usage extensions)" \ -S "Processing of the Certificate handshake message failed" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli-auth 1.3: ECDSA, DigitalSignature: OK" \ - "$P_SRV debug_level=1 auth_mode=optional" \ + "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ -cert data_files/server5.ku-ds.crt" \ 0 \ @@ -6821,12 +6818,11 @@ run_test "keyUsage cli-auth 1.3: ECDSA, DigitalSignature: OK" \ -S "bad certificate (usage extensions)" \ -S "Processing of the Certificate handshake message failed" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli-auth 1.3: ECDSA, KeyAgreement: fail (soft)" \ - "$P_SRV debug_level=1 auth_mode=optional" \ + "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ -cert data_files/server5.ku-ka.crt" \ 0 \ @@ -6905,9 +6901,9 @@ run_test "extKeyUsage cli: codeSign -> fail" \ -c "Processing of the Certificate handshake message failed" \ -C "Ciphersuite is TLS-" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli 1.3: serverAuth -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ @@ -6918,9 +6914,9 @@ run_test "extKeyUsage cli 1.3: serverAuth -> OK" \ -C "Processing of the Certificate handshake message failed" \ -c "Ciphersuite is" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli 1.3: serverAuth,clientAuth -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ @@ -6931,9 +6927,9 @@ run_test "extKeyUsage cli 1.3: serverAuth,clientAuth -> OK" \ -C "Processing of the Certificate handshake message failed" \ -c "Ciphersuite is" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli 1.3: codeSign,anyEKU -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ @@ -6944,9 +6940,9 @@ run_test "extKeyUsage cli 1.3: codeSign,anyEKU -> OK" \ -C "Processing of the Certificate handshake message failed" \ -c "Ciphersuite is" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli 1.3: codeSign -> fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ @@ -7004,48 +7000,44 @@ run_test "extKeyUsage cli-auth: codeSign -> fail (hard)" \ -s "bad certificate (usage extensions)" \ -s "Processing of the Certificate handshake message failed" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli-auth 1.3: clientAuth -> OK" \ - "$P_SRV debug_level=1 auth_mode=optional" \ + "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ -cert data_files/server5.eku-cli.crt" \ 0 \ -S "bad certificate (usage extensions)" \ -S "Processing of the Certificate handshake message failed" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli-auth 1.3: serverAuth,clientAuth -> OK" \ - "$P_SRV debug_level=1 auth_mode=optional" \ + "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ -cert data_files/server5.eku-srv_cli.crt" \ 0 \ -S "bad certificate (usage extensions)" \ -S "Processing of the Certificate handshake message failed" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli-auth 1.3: codeSign,anyEKU -> OK" \ - "$P_SRV debug_level=1 auth_mode=optional" \ + "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ -cert data_files/server5.eku-cs_any.crt" \ 0 \ -S "bad certificate (usage extensions)" \ -S "Processing of the Certificate handshake message failed" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli-auth 1.3: codeSign -> fail (soft)" \ - "$P_SRV debug_level=1 auth_mode=optional" \ + "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ -cert data_files/server5.eku-cs.crt" \ 0 \ From 8f26c8a0cfdc95d4f6af6d6928cae379e13db3ab Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 20 Oct 2022 05:19:47 -0400 Subject: [PATCH 0825/1028] Fix a typo in test_suite_cipher Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_cipher.function | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_cipher.function b/tests/suites/test_suite_cipher.function index af617fc56b..2c0a1ec84d 100644 --- a/tests/suites/test_suite_cipher.function +++ b/tests/suites/test_suite_cipher.function @@ -116,7 +116,7 @@ static int cipher_reset_key( mbedtls_cipher_context_t *ctx, int cipher_id, mbedtls_cipher_free( ctx ); mbedtls_cipher_init( ctx ); -#if !defined(MBEDTLS_USE_PSA_CRYPO) || !defined(MBEDTLS_TEST_DEPRECATED) +#if !defined(MBEDTLS_USE_PSA_CRYPTO) || !defined(MBEDTLS_TEST_DEPRECATED) (void) use_psa; (void) tag_len; #else @@ -1067,7 +1067,7 @@ void test_vec_crypt( int cipher_id, int operation, data_t *key, memset( output, 0x00, sizeof( output ) ); /* Prepare context */ -#if !defined(MBEDTLS_USE_PSA_CRYPO) || !defined(MBEDTLS_TEST_DEPRECATED) +#if !defined(MBEDTLS_USE_PSA_CRYPTO) || !defined(MBEDTLS_TEST_DEPRECATED) (void) use_psa; #else if( use_psa == 1 ) @@ -1095,7 +1095,7 @@ void test_vec_crypt( int cipher_id, int operation, data_t *key, exit: mbedtls_cipher_free( &ctx ); -#if defined(MBEDTLS_USE_PSA_CRYPO) && defined(MBEDTLS_TEST_DEPRECATED) +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_TEST_DEPRECATED) PSA_DONE( ); #endif /* MBEDTLS_USE_PSA_CRYPTO && defined(MBEDTLS_TEST_DEPRECATED */ } From d066c79d7e3ac8a5d87ff83aed54b18078364334 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 21 Oct 2022 05:29:08 -0400 Subject: [PATCH 0826/1028] Add missing ECB requirements for PSA cipher aes tests Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_cipher.aes.data | 48 ++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/tests/suites/test_suite_cipher.aes.data b/tests/suites/test_suite_cipher.aes.data index 8220e8d2cb..41e6230bab 100644 --- a/tests/suites/test_suite_cipher.aes.data +++ b/tests/suites/test_suite_cipher.aes.data @@ -2111,99 +2111,99 @@ depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_ test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_DECRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"5c9d844ed46f9885085e5d6a4f94c7d7":"014730f80ac625fe84f026c60bfd547d":0:1 AES-128-ECB crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_ENCRYPT:"00000000000000000000000000000000":"":"80000000000000000000000000000000":"3ad78e726c1ec02b7ebfe92b23d9ec34":0:1 AES-128-ECB crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_ENCRYPT:"ffffffffffffffffffffffffffffe000":"":"00000000000000000000000000000000":"323994cfb9da285a5d9642e1759b224a":0:1 AES-128-ECB crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_ENCRYPT:"10a58869d74be5a374cf867cfb473859":"":"00000000000000000000000000000000":"6d251e6944b051e04eaa6fb4dbf78465":0:1 AES-128-ECB crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_ENCRYPT:"00000000000000000000000000000000":"":"f34481ec3cc627bacd5dc3fb08f273e6":"0336763e966d92595a567cc9ce537f5e":0:1 AES-128-ECB crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_DECRYPT:"00000000000000000000000000000000":"":"3ad78e726c1ec02b7ebfe92b23d9ec34":"80000000000000000000000000000000":0:1 AES-128-ECB crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_DECRYPT:"ffffc000000000000000000000000000":"":"df556a33438db87bc41b1752c55e5e49":"00000000000000000000000000000000":0:1 AES-128-ECB crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_DECRYPT:"10a58869d74be5a374cf867cfb473859":"":"6d251e6944b051e04eaa6fb4dbf78465":"00000000000000000000000000000000":0:1 AES-128-ECB crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_DECRYPT:"00000000000000000000000000000000":"":"0336763e966d92595a567cc9ce537f5e":"f34481ec3cc627bacd5dc3fb08f273e6":0:1 AES-192-ECB crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_ENCRYPT:"000000000000000000000000000000000000000000000000":"":"80000000000000000000000000000000":"6cd02513e8d4dc986b4afe087a60bd0c":0:1 AES-192-ECB crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_ENCRYPT:"ff0000000000000000000000000000000000000000000000":"":"00000000000000000000000000000000":"833f71258d53036b02952c76c744f5a1":0:1 AES-192-ECB crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_ENCRYPT:"e9f065d7c13573587f7875357dfbb16c53489f6a4bd0f7cd":"":"00000000000000000000000000000000":"0956259c9cd5cfd0181cca53380cde06":0:1 AES-192-ECB crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_ENCRYPT:"000000000000000000000000000000000000000000000000":"":"1b077a6af4b7f98229de786d7516b639":"275cfc0413d8ccb70513c3859b1d0f72":0:1 AES-192-ECB crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_DECRYPT:"000000000000000000000000000000000000000000000000":"":"6cd02513e8d4dc986b4afe087a60bd0c":"80000000000000000000000000000000":0:1 AES-192-ECB crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_DECRYPT:"ffe000000000000000000000000000000000000000000000":"":"7ababc4b3f516c9aafb35f4140b548f9":"00000000000000000000000000000000":0:1 AES-192-ECB crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_DECRYPT:"e9f065d7c13573587f7875357dfbb16c53489f6a4bd0f7cd":"":"0956259c9cd5cfd0181cca53380cde06":"00000000000000000000000000000000":0:1 AES-192-ECB crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_DECRYPT:"000000000000000000000000000000000000000000000000":"":"275cfc0413d8ccb70513c3859b1d0f72":"1b077a6af4b7f98229de786d7516b639":0:1 AES-256-ECB crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_ENCRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"":"80000000000000000000000000000000":"ddc6bf790c15760d8d9aeb6f9a75fd4e":0:1 AES-256-ECB crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_ENCRYPT:"ff00000000000000000000000000000000000000000000000000000000000000":"":"00000000000000000000000000000000":"ec52a212f80a09df6317021bc2a9819e":0:1 AES-256-ECB crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_ENCRYPT:"c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558":"":"00000000000000000000000000000000":"46f2fb342d6f0ab477476fc501242c5f":0:1 AES-256-ECB crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_ENCRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"":"014730f80ac625fe84f026c60bfd547d":"5c9d844ed46f9885085e5d6a4f94c7d7":0:1 AES-256-ECB crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_DECRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"":"ddc6bf790c15760d8d9aeb6f9a75fd4e":"80000000000000000000000000000000":0:1 AES-256-ECB crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_DECRYPT:"ffe0000000000000000000000000000000000000000000000000000000000000":"":"d1ccb9b1337002cbac42c520b5d67722":"00000000000000000000000000000000":0:1 AES-256-ECB crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_DECRYPT:"c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558":"":"46f2fb342d6f0ab477476fc501242c5f":"00000000000000000000000000000000":0:1 AES-256-ECB crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_DECRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"":"5c9d844ed46f9885085e5d6a4f94c7d7":"014730f80ac625fe84f026c60bfd547d":0:1 AES-128-CCM*-NO-TAG crypt Encrypt NIST VPT AES-128 #15 From ed05279e4f2f765d5b98238fc896d8de4f472586 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 21 Oct 2022 05:37:54 -0400 Subject: [PATCH 0827/1028] Comment fix Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_cipher.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_cipher.function b/tests/suites/test_suite_cipher.function index 2c0a1ec84d..b7c3b5144a 100644 --- a/tests/suites/test_suite_cipher.function +++ b/tests/suites/test_suite_cipher.function @@ -1097,7 +1097,7 @@ exit: mbedtls_cipher_free( &ctx ); #if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_TEST_DEPRECATED) PSA_DONE( ); -#endif /* MBEDTLS_USE_PSA_CRYPTO && defined(MBEDTLS_TEST_DEPRECATED */ +#endif /* MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_TEST_DEPRECATED */ } /* END_CASE */ From abc6fbb8d70d177f0507cf282600278632dc668f Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 21 Oct 2022 18:36:08 +0200 Subject: [PATCH 0828/1028] Fix brief description Signed-off-by: Gilles Peskine --- library/bignum_core.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 4ba14331c3..56a3bf874f 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -262,7 +262,7 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, unsigned char *output, size_t output_length ); -/** \brief Shift a machine integer right by a number of bits. +/** \brief Shift an MPI right in place by a number of bits. * * Shifting by more bits than there are bit positions * in \p X is valid and results in setting \p X to 0. From ce220662119bff13da53ef5606ebf233e049ee54 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 21 Oct 2022 18:54:43 +0200 Subject: [PATCH 0829/1028] Rename test_suite_bignum for consistency with bignum.{h,c} Align the name of the bignum test suite with the source module (which was renamed from mpi.c to bignum.c in the PolarSSL 1.x days). This also brings it into line with the test suites for the low-level bignum interfaces. Signed-off-by: Gilles Peskine --- tests/scripts/generate_bignum_tests.py | 4 ++-- tests/suites/{test_suite_mpi.data => test_suite_bignum.data} | 0 .../{test_suite_mpi.function => test_suite_bignum.function} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename tests/suites/{test_suite_mpi.data => test_suite_bignum.data} (100%) rename tests/suites/{test_suite_mpi.function => test_suite_bignum.function} (100%) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 493582968e..4ac9210e71 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -70,8 +70,8 @@ from mbedtls_dev import bignum_core # pylint: disable=unused-import class BignumTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method - """Target for bignum (mpi) test case generation.""" - target_basename = 'test_suite_mpi.generated' + """Target for bignum (legacy) test case generation.""" + target_basename = 'test_suite_bignum.generated' class BignumOperation(bignum_common.OperationCommon, BignumTarget, metaclass=ABCMeta): diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_bignum.data similarity index 100% rename from tests/suites/test_suite_mpi.data rename to tests/suites/test_suite_bignum.data diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_bignum.function similarity index 100% rename from tests/suites/test_suite_mpi.function rename to tests/suites/test_suite_bignum.function From 42832bd406a35326a219913d72603f0913002bea Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 21 Oct 2022 18:56:47 +0200 Subject: [PATCH 0830/1028] Don't use test_suite_mpi as an example It just got renamed, and it's also not the most canonical example since it's a somewhat deprecated interface. Make a different module the example. Signed-off-by: Gilles Peskine --- CONTRIBUTING.md | 2 +- tests/scripts/generate-afl-tests.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 66fe5f1af0..0e2cf49121 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -54,7 +54,7 @@ Tests ----- As mentioned, tests that show the correctness of the feature or bug fix should be added to the pull request, if no such tests exist. -Mbed TLS includes a comprehensive set of test suites in the `tests/` directory that are dynamically generated to produce the actual test source files (e.g. `test_suite_mpi.c`). These files are generated from a `function file` (e.g. `suites/test_suite_mpi.function`) and a `data file` (e.g. `suites/test_suite_mpi.data`). The function file contains the test functions. The data file contains the test cases, specified as parameters that will be passed to the test function. +Mbed TLS includes a comprehensive set of test suites in the `tests/` directory that are dynamically generated to produce the actual test source files (e.g. `test_suite_rsa.c`). These files are generated from a `function file` (e.g. `suites/test_suite_rsa.function`) and a `data file` (e.g. `suites/test_suite_rsa.data`). The function file contains the test functions. The data file contains the test cases, specified as parameters that will be passed to the test function. [A Knowledge Base article describing how to add additional tests is available on the Mbed TLS website](https://mbed-tls.readthedocs.io/en/latest/kb/development/test_suites/). diff --git a/tests/scripts/generate-afl-tests.sh b/tests/scripts/generate-afl-tests.sh index 7c9f432ae4..a640b566dd 100755 --- a/tests/scripts/generate-afl-tests.sh +++ b/tests/scripts/generate-afl-tests.sh @@ -6,7 +6,7 @@ # # Usage: generate-afl-tests.sh # - should be the path to one of the test suite files -# such as 'test_suite_mpi.data' +# such as 'test_suite_rsa.data' # # Copyright The Mbed TLS Contributors # SPDX-License-Identifier: Apache-2.0 From a020d535adb1e30a01531effd4bb3a9be9ccf4fc Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 21 Oct 2022 19:00:38 +0200 Subject: [PATCH 0831/1028] Avoid having both test_suite_XXX.data and test_suite_XXX.*.data Although our build scripts support that, it's annoying, because it makes "test_suite_XXX" ambiguous between "all the data for test_suite_XXX.function" and "just test_suite_XXX.data". Signed-off-by: Gilles Peskine --- .../{test_suite_bignum.data => test_suite_bignum.misc.data} | 0 ...st_suite_bignum_core.data => test_suite_bignum_core.misc.data} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename tests/suites/{test_suite_bignum.data => test_suite_bignum.misc.data} (100%) rename tests/suites/{test_suite_bignum_core.data => test_suite_bignum_core.misc.data} (100%) diff --git a/tests/suites/test_suite_bignum.data b/tests/suites/test_suite_bignum.misc.data similarity index 100% rename from tests/suites/test_suite_bignum.data rename to tests/suites/test_suite_bignum.misc.data diff --git a/tests/suites/test_suite_bignum_core.data b/tests/suites/test_suite_bignum_core.misc.data similarity index 100% rename from tests/suites/test_suite_bignum_core.data rename to tests/suites/test_suite_bignum_core.misc.data From fc4f11b5d00b30fbd6bca1c5fe395b556adaa10c Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 21 Oct 2022 19:34:54 +0200 Subject: [PATCH 0832/1028] Improve test component name Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 30ab9ba632..74c56d5794 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1554,7 +1554,7 @@ component_build_crypto_full () { are_empty_libraries library/libmbedx509.* library/libmbedtls.* } -component_build_crypto_light () { +component_test_crypto_for_psa_service () { msg "build: make, config for PSA crypto service" scripts/config.py crypto scripts/config.py set MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER From ba970be1420dd4255c32a05ac4b2f5827d4a99ab Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 21 Oct 2022 13:39:00 -0400 Subject: [PATCH 0833/1028] Fix test dependencies for cases that are PSA-based These should be using PSA-type macros, not MBEDTLS_XXX_C. Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_cipher.aes.data | 108 +-- tests/suites/test_suite_cipher.ccm.data | 192 ++--- tests/suites/test_suite_cipher.gcm.data | 1008 +++++++++++------------ 3 files changed, 654 insertions(+), 654 deletions(-) diff --git a/tests/suites/test_suite_cipher.aes.data b/tests/suites/test_suite_cipher.aes.data index 41e6230bab..aabd8617d3 100644 --- a/tests/suites/test_suite_cipher.aes.data +++ b/tests/suites/test_suite_cipher.aes.data @@ -2015,195 +2015,195 @@ depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_DECRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"5c9d844ed46f9885085e5d6a4f94c7d7":"014730f80ac625fe84f026c60bfd547d":0:0 AES-128-CBC crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_CBC:MBEDTLS_ENCRYPT:"00000000000000000000000000000000":"00000000000000000000000000000000":"80000000000000000000000000000000":"3ad78e726c1ec02b7ebfe92b23d9ec34":0:1 AES-128-CBC crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_CBC:MBEDTLS_ENCRYPT:"ffffffffffffffffffffffffffffe000":"00000000000000000000000000000000":"00000000000000000000000000000000":"323994cfb9da285a5d9642e1759b224a":0:1 AES-128-CBC crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_CBC:MBEDTLS_ENCRYPT:"10a58869d74be5a374cf867cfb473859":"00000000000000000000000000000000":"00000000000000000000000000000000":"6d251e6944b051e04eaa6fb4dbf78465":0:1 AES-128-CBC crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_CBC:MBEDTLS_ENCRYPT:"00000000000000000000000000000000":"00000000000000000000000000000000":"f34481ec3cc627bacd5dc3fb08f273e6":"0336763e966d92595a567cc9ce537f5e":0:1 AES-128-CBC crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_CBC:MBEDTLS_DECRYPT:"00000000000000000000000000000000":"00000000000000000000000000000000":"3ad78e726c1ec02b7ebfe92b23d9ec34":"80000000000000000000000000000000":0:1 AES-128-CBC crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_CBC:MBEDTLS_DECRYPT:"ffffc000000000000000000000000000":"00000000000000000000000000000000":"df556a33438db87bc41b1752c55e5e49":"00000000000000000000000000000000":0:1 AES-128-CBC crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_CBC:MBEDTLS_DECRYPT:"10a58869d74be5a374cf867cfb473859":"00000000000000000000000000000000":"6d251e6944b051e04eaa6fb4dbf78465":"00000000000000000000000000000000":0:1 AES-128-CBC crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_CBC:MBEDTLS_DECRYPT:"00000000000000000000000000000000":"00000000000000000000000000000000":"0336763e966d92595a567cc9ce537f5e":"f34481ec3cc627bacd5dc3fb08f273e6":0:1 AES-192-CBC crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_CBC:MBEDTLS_ENCRYPT:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"80000000000000000000000000000000":"6cd02513e8d4dc986b4afe087a60bd0c":0:1 AES-192-CBC crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_CBC:MBEDTLS_ENCRYPT:"ff0000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"00000000000000000000000000000000":"833f71258d53036b02952c76c744f5a1":0:1 AES-192-CBC crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_CBC:MBEDTLS_ENCRYPT:"e9f065d7c13573587f7875357dfbb16c53489f6a4bd0f7cd":"00000000000000000000000000000000":"00000000000000000000000000000000":"0956259c9cd5cfd0181cca53380cde06":0:1 AES-192-CBC crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_CBC:MBEDTLS_ENCRYPT:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"1b077a6af4b7f98229de786d7516b639":"275cfc0413d8ccb70513c3859b1d0f72":0:1 AES-192-CBC crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_CBC:MBEDTLS_DECRYPT:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"6cd02513e8d4dc986b4afe087a60bd0c":"80000000000000000000000000000000":0:1 AES-192-CBC crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_CBC:MBEDTLS_DECRYPT:"ffe000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"7ababc4b3f516c9aafb35f4140b548f9":"00000000000000000000000000000000":0:1 AES-192-CBC crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_CBC:MBEDTLS_DECRYPT:"e9f065d7c13573587f7875357dfbb16c53489f6a4bd0f7cd":"00000000000000000000000000000000":"0956259c9cd5cfd0181cca53380cde06":"00000000000000000000000000000000":0:1 AES-192-CBC crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_CBC:MBEDTLS_DECRYPT:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"275cfc0413d8ccb70513c3859b1d0f72":"1b077a6af4b7f98229de786d7516b639":0:1 AES-256-CBC crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_ENCRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"80000000000000000000000000000000":"ddc6bf790c15760d8d9aeb6f9a75fd4e":0:1 AES-256-CBC crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_ENCRYPT:"ff00000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"00000000000000000000000000000000":"ec52a212f80a09df6317021bc2a9819e":0:1 AES-256-CBC crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_ENCRYPT:"c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558":"00000000000000000000000000000000":"00000000000000000000000000000000":"46f2fb342d6f0ab477476fc501242c5f":0:1 AES-256-CBC crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_ENCRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"014730f80ac625fe84f026c60bfd547d":"5c9d844ed46f9885085e5d6a4f94c7d7":0:1 AES-256-CBC crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_DECRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"ddc6bf790c15760d8d9aeb6f9a75fd4e":"80000000000000000000000000000000":0:1 AES-256-CBC crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_DECRYPT:"ffe0000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"d1ccb9b1337002cbac42c520b5d67722":"00000000000000000000000000000000":0:1 AES-256-CBC crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_DECRYPT:"c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558":"00000000000000000000000000000000":"46f2fb342d6f0ab477476fc501242c5f":"00000000000000000000000000000000":0:1 AES-256-CBC crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_DECRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"5c9d844ed46f9885085e5d6a4f94c7d7":"014730f80ac625fe84f026c60bfd547d":0:1 AES-128-ECB crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_ENCRYPT:"00000000000000000000000000000000":"":"80000000000000000000000000000000":"3ad78e726c1ec02b7ebfe92b23d9ec34":0:1 AES-128-ECB crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_ENCRYPT:"ffffffffffffffffffffffffffffe000":"":"00000000000000000000000000000000":"323994cfb9da285a5d9642e1759b224a":0:1 AES-128-ECB crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_ENCRYPT:"10a58869d74be5a374cf867cfb473859":"":"00000000000000000000000000000000":"6d251e6944b051e04eaa6fb4dbf78465":0:1 AES-128-ECB crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_ENCRYPT:"00000000000000000000000000000000":"":"f34481ec3cc627bacd5dc3fb08f273e6":"0336763e966d92595a567cc9ce537f5e":0:1 AES-128-ECB crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_DECRYPT:"00000000000000000000000000000000":"":"3ad78e726c1ec02b7ebfe92b23d9ec34":"80000000000000000000000000000000":0:1 AES-128-ECB crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_DECRYPT:"ffffc000000000000000000000000000":"":"df556a33438db87bc41b1752c55e5e49":"00000000000000000000000000000000":0:1 AES-128-ECB crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_DECRYPT:"10a58869d74be5a374cf867cfb473859":"":"6d251e6944b051e04eaa6fb4dbf78465":"00000000000000000000000000000000":0:1 AES-128-ECB crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_DECRYPT:"00000000000000000000000000000000":"":"0336763e966d92595a567cc9ce537f5e":"f34481ec3cc627bacd5dc3fb08f273e6":0:1 AES-192-ECB crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_ENCRYPT:"000000000000000000000000000000000000000000000000":"":"80000000000000000000000000000000":"6cd02513e8d4dc986b4afe087a60bd0c":0:1 AES-192-ECB crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_ENCRYPT:"ff0000000000000000000000000000000000000000000000":"":"00000000000000000000000000000000":"833f71258d53036b02952c76c744f5a1":0:1 AES-192-ECB crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_ENCRYPT:"e9f065d7c13573587f7875357dfbb16c53489f6a4bd0f7cd":"":"00000000000000000000000000000000":"0956259c9cd5cfd0181cca53380cde06":0:1 AES-192-ECB crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_ENCRYPT:"000000000000000000000000000000000000000000000000":"":"1b077a6af4b7f98229de786d7516b639":"275cfc0413d8ccb70513c3859b1d0f72":0:1 AES-192-ECB crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_DECRYPT:"000000000000000000000000000000000000000000000000":"":"6cd02513e8d4dc986b4afe087a60bd0c":"80000000000000000000000000000000":0:1 AES-192-ECB crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_DECRYPT:"ffe000000000000000000000000000000000000000000000":"":"7ababc4b3f516c9aafb35f4140b548f9":"00000000000000000000000000000000":0:1 AES-192-ECB crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_DECRYPT:"e9f065d7c13573587f7875357dfbb16c53489f6a4bd0f7cd":"":"0956259c9cd5cfd0181cca53380cde06":"00000000000000000000000000000000":0:1 AES-192-ECB crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_DECRYPT:"000000000000000000000000000000000000000000000000":"":"275cfc0413d8ccb70513c3859b1d0f72":"1b077a6af4b7f98229de786d7516b639":0:1 AES-256-ECB crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_ENCRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"":"80000000000000000000000000000000":"ddc6bf790c15760d8d9aeb6f9a75fd4e":0:1 AES-256-ECB crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_ENCRYPT:"ff00000000000000000000000000000000000000000000000000000000000000":"":"00000000000000000000000000000000":"ec52a212f80a09df6317021bc2a9819e":0:1 AES-256-ECB crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_ENCRYPT:"c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558":"":"00000000000000000000000000000000":"46f2fb342d6f0ab477476fc501242c5f":0:1 AES-256-ECB crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_ENCRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"":"014730f80ac625fe84f026c60bfd547d":"5c9d844ed46f9885085e5d6a4f94c7d7":0:1 AES-256-ECB crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_DECRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"":"ddc6bf790c15760d8d9aeb6f9a75fd4e":"80000000000000000000000000000000":0:1 AES-256-ECB crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_DECRYPT:"ffe0000000000000000000000000000000000000000000000000000000000000":"":"d1ccb9b1337002cbac42c520b5d67722":"00000000000000000000000000000000":0:1 AES-256-ECB crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_DECRYPT:"c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558":"":"46f2fb342d6f0ab477476fc501242c5f":"00000000000000000000000000000000":0:1 AES-256-ECB crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_DECRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"":"5c9d844ed46f9885085e5d6a4f94c7d7":"014730f80ac625fe84f026c60bfd547d":0:1 AES-128-CCM*-NO-TAG crypt Encrypt NIST VPT AES-128 #15 @@ -2231,27 +2231,27 @@ depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_ test_vec_crypt:MBEDTLS_CIPHER_AES_256_CCM_STAR_NO_TAG:MBEDTLS_DECRYPT:"f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453":"a544218dadd3c10583db49cf39":"63e00d30e4b08fd2a1cc8d70fab327b2368e77a93be4f412":"3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e":0:0 AES-128-CCM*-NO-TAG crypt Encrypt NIST VPT AES-128 #15 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM_STAR_NO_TAG test_vec_crypt:MBEDTLS_CIPHER_AES_128_CCM_STAR_NO_TAG:MBEDTLS_ENCRYPT:"7301c907b9d2aaac355c5416ff25c59b":"7304b65b6dab466273862c88b9":"484300aa3a506afcd313b49ead8d":"928ca58b0d373dc50c52afac787c":0:1 AES-128-CCM*-NO-TAG crypt Decrypt NIST DVPT AES-128 #15 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM_STAR_NO_TAG test_vec_crypt:MBEDTLS_CIPHER_AES_128_CCM_STAR_NO_TAG:MBEDTLS_DECRYPT:"90929a4b0ac65b350ad1591611fe4829":"5a8aa485c316e9403aff859fbb":"4bfe4e35784f0a65b545477e5e2f4bae0e1e6fa717eaf2cb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697":0:1 AES-192-CCM*-NO-TAG crypt Encrypt NIST VTT AES-192 #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM_STAR_NO_TAG test_vec_crypt:MBEDTLS_CIPHER_AES_192_CCM_STAR_NO_TAG:MBEDTLS_ENCRYPT:"11fd45743d946e6d37341fec49947e8c70482494a8f07fcc":"c6aeebcb146cfafaae66f78aab":"ee7e6075ba52846de5d6254959a18affc4faf59c8ef63489":"137d9da59baf5cbfd46620c5f298fc766de10ac68e774edf":0:1 AES-192-CCM*-NO-TAG crypt Decrypt NIST DVPT AES-192 #15 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM_STAR_NO_TAG test_vec_crypt:MBEDTLS_CIPHER_AES_192_CCM_STAR_NO_TAG:MBEDTLS_DECRYPT:"90929a4b0ac65b350ad1591611fe48297e03956f6083e451":"5a8aa485c316e9403aff859fbb":"a5b7d8cca2069908d1ed88e6a9fe2c9bede3131dad54671e":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697":0:1 AES-256-CCM*-NO-TAG crypt Encrypt NIST VADT AES-256 #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM_STAR_NO_TAG test_vec_crypt:MBEDTLS_CIPHER_AES_256_CCM_STAR_NO_TAG:MBEDTLS_ENCRYPT:"26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389":"72a60f345a1978fb40f28a2fa4":"30d56ff2a25b83fee791110fcaea48e41db7c7f098a81000":"55f068c0bbba8b598013dd1841fd740fda2902322148ab5e":0:1 AES-256-CCM*-NO-TAG crypt Decrypt NIST DVPT AES-256 #13 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM_STAR_NO_TAG test_vec_crypt:MBEDTLS_CIPHER_AES_256_CCM_STAR_NO_TAG:MBEDTLS_DECRYPT:"f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453":"a544218dadd3c10583db49cf39":"63e00d30e4b08fd2a1cc8d70fab327b2368e77a93be4f412":"3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e":0:1 Cipher Corner Case behaviours diff --git a/tests/suites/test_suite_cipher.ccm.data b/tests/suites/test_suite_cipher.ccm.data index 44c05ec6da..3ea44be8a9 100644 --- a/tests/suites/test_suite_cipher.ccm.data +++ b/tests/suites/test_suite_cipher.ccm.data @@ -479,385 +479,385 @@ depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CCM_C auth_crypt_tv:MBEDTLS_CIPHER_CAMELLIA_128_CCM:"D75C2778078CA93D971F96FDE720F4CD":"003B8FD8D3A937B160B6A31C1C":"A4D499F78419728C19178B0C":"4B198156393B0F7796086AAFB454F8C3F034CCA966":"945F1FCEA7E11BEE6A2F":"":"9DC9EDAE2FF5DF8636E8C6DE0EED55F7867E33337D":0 AES-128-CCM test vector NIST #1 PSA (P=0, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"4ae701103c63deca5b5a3939d7d05992":"5a8aa485c316e9":"":"":"02209f55":"":"":1 AES-128-CCM test vector NIST #2 PSA (P=0, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"4ae701103c63deca5b5a3939d7d05992":"3796cf51b87266":"":"":"9a04c241":"FAIL":"":1 AES-128-CCM test vector NIST #3 PSA (P=0, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"4bb3c4a4f893ad8c9bdc833c325d62b3":"5a8aa485c316e9":"":"":"75d582db43ce9b13ab4b6f7f14341330":"":"":1 AES-128-CCM test vector NIST #4 PSA (P=0, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"4bb3c4a4f893ad8c9bdc833c325d62b3":"3796cf51b87266":"":"":"3a65e03af37b81d05acc7ec1bc39deb0":"FAIL":"":1 AES-128-CCM test vector NIST #5 PSA (P=0, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"4bb3c4a4f893ad8c9bdc833c325d62b3":"5a8aa485c316e9403aff859fbb":"":"":"90156f3f":"":"":1 AES-128-CCM test vector NIST #6 PSA (P=0, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"4bb3c4a4f893ad8c9bdc833c325d62b3":"a16a2e741f1cd9717285b6d882":"":"":"88909016":"FAIL":"":1 AES-128-CCM test vector NIST #7 PSA (P=0, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"19ebfde2d5468ba0a3031bde629b11fd":"5a8aa485c316e9403aff859fbb":"":"":"fb04dc5a44c6bb000f2440f5154364b4":"":"":1 AES-128-CCM test vector NIST #8 PSA (P=0, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"19ebfde2d5468ba0a3031bde629b11fd":"a16a2e741f1cd9717285b6d882":"":"":"5447075bf42a59b91f08064738b015ab":"FAIL":"":1 AES-128-CCM test vector NIST #9 PSA (P=24, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"19ebfde2d5468ba0a3031bde629b11fd":"5a8aa485c316e9":"":"a90e8ea44085ced791b2fdb7fd44b5cf0bd7d27718029bb7":"03e1fa6b":"":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22":1 AES-128-CCM test vector NIST #10 PSA (P=24, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"19ebfde2d5468ba0a3031bde629b11fd":"31f8fa25827d48":"":"50aafe0578c115c4a8e126ff7b3ccb64dce8ccaa8ceda69f":"23e5d81c":"FAIL":"":1 AES-128-CCM test vector NIST #11 PSA (P=24, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"197afb02ffbd8f699dacae87094d5243":"5a8aa485c316e9":"":"24ab9eeb0e5508cae80074f1070ee188a637171860881f1f":"2d9a3fbc210595b7b8b1b41523111a8e":"":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22":1 AES-128-CCM test vector NIST #12 PSA (P=24, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"197afb02ffbd8f699dacae87094d5243":"31f8fa25827d48":"":"7ebfda6fa5da1dbffd82dc29b875798fbcef8ba0084fbd24":"63af747cc88a001fa94e060290f209c4":"FAIL":"":1 AES-128-CCM test vector NIST #13 PSA (P=24, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"197afb02ffbd8f699dacae87094d5243":"5a8aa485c316e9403aff859fbb":"":"4a550134f94455979ec4bf89ad2bd80d25a77ae94e456134":"a3e138b9":"":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697":1 AES-128-CCM test vector NIST #14 PSA (P=24, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"197afb02ffbd8f699dacae87094d5243":"49004912fdd7269279b1f06a89":"":"118ec53dd1bfbe52d5b9fe5dfebecf2ee674ec983eada654":"091a5ae9":"FAIL":"":1 AES-128-CCM test vector NIST #15 PSA (P=24, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"90929a4b0ac65b350ad1591611fe4829":"5a8aa485c316e9403aff859fbb":"":"4bfe4e35784f0a65b545477e5e2f4bae0e1e6fa717eaf2cb":"6a9a970b9beb2ac1bd4fd62168f8378a":"":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697":1 AES-128-CCM test vector NIST #16 PSA (P=24, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"90929a4b0ac65b350ad1591611fe4829":"49004912fdd7269279b1f06a89":"":"0c56a503aa2c12e87450d45a7b714db980fd348f327c0065":"a65666144994bad0c8195bcb4ade1337":"FAIL":"":1 AES-128-CCM test vector NIST #17 PSA (P=0, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"90929a4b0ac65b350ad1591611fe4829":"5a8aa485c316e9":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c":"":"782e4318":"":"":1 AES-128-CCM test vector NIST #18 PSA (P=0, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"90929a4b0ac65b350ad1591611fe4829":"a265480ca88d5f":"a2248a882ecbf850daf91933a389e78e81623d233dfd47bf8321361a38f138fe":"":"a04f270a":"FAIL":"":1 AES-128-CCM test vector NIST #19 PSA (P=0, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"6a798d7c5e1a72b43e20ad5c7b08567b":"5a8aa485c316e9":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c":"":"41b476013f45e4a781f253a6f3b1e530":"":"":1 AES-128-CCM test vector NIST #20 PSA (P=0, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"6a798d7c5e1a72b43e20ad5c7b08567b":"a265480ca88d5f":"a2248a882ecbf850daf91933a389e78e81623d233dfd47bf8321361a38f138fe":"":"f9f018fcd125822616083fffebc4c8e6":"FAIL":"":1 AES-128-CCM test vector NIST #21 PSA (P=0, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"6a798d7c5e1a72b43e20ad5c7b08567b":"5a8aa485c316e9403aff859fbb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982":"":"9f69f24f":"":"":1 AES-128-CCM test vector NIST #22 PSA (P=0, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"6a798d7c5e1a72b43e20ad5c7b08567b":"8739b4bea1a099fe547499cbc6":"f6107696edb332b2ea059d8860fee26be42e5e12e1a4f79a8d0eafce1b2278a7":"":"e17afaa4":"FAIL":"":1 AES-128-CCM test vector NIST #23 PSA (P=0, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"f9fdca4ac64fe7f014de0f43039c7571":"5a8aa485c316e9403aff859fbb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982":"":"1859ac36a40a6b28b34266253627797a":"":"":1 AES-128-CCM test vector NIST #24 PSA (P=0, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"f9fdca4ac64fe7f014de0f43039c7571":"8739b4bea1a099fe547499cbc6":"f6107696edb332b2ea059d8860fee26be42e5e12e1a4f79a8d0eafce1b2278a7":"":"edf8b46eb69ac0044116019dec183072":"FAIL":"":1 AES-128-CCM test vector NIST #25 PSA (P=24, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"f9fdca4ac64fe7f014de0f43039c7571":"5a8aa485c316e9":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c":"6be31860ca271ef448de8f8d8b39346daf4b81d7e92d65b3":"38f125fa":"":"a265480ca88d5f536db0dc6abc40faf0d05be7a966977768":1 AES-128-CCM test vector NIST #26 PSA (P=24, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"f9fdca4ac64fe7f014de0f43039c7571":"fdd2d6f503c915":"5b92394f21ddc3ad49d9b0881b829a5935cb3a4d23e292a62fb66b5e7ab7020e":"4cc57a9927a6bc401441870d3193bf89ebd163f5c01501c7":"28a66b69":"FAIL":"":1 AES-128-CCM test vector NIST #27 PSA (P=24, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"a7aa635ea51b0bb20a092bd5573e728c":"5a8aa485c316e9":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c":"b351ab96b2e45515254558d5212673ee6c776d42dbca3b51":"2cf3a20b7fd7c49e6e79bef475c2906f":"":"a265480ca88d5f536db0dc6abc40faf0d05be7a966977768":1 AES-128-CCM test vector NIST #28 PSA (P=24, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"a7aa635ea51b0bb20a092bd5573e728c":"fdd2d6f503c915":"5b92394f21ddc3ad49d9b0881b829a5935cb3a4d23e292a62fb66b5e7ab7020e":"df1a5285caa41b4bb47f6e5ceceba4e82721828d68427a30":"81d18ca149d6766bfaccec88f194eb5b":"FAIL":"":1 AES-128-CCM test vector NIST #29 PSA (P=24, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"a7aa635ea51b0bb20a092bd5573e728c":"5a8aa485c316e9403aff859fbb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982":"934f893824e880f743d196b22d1f340a52608155087bd28a":"c25e5329":"":"8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5":1 AES-128-CCM test vector NIST #30 PSA (P=24, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"a7aa635ea51b0bb20a092bd5573e728c":"0812757ad0cc4d17c4cfe7a642":"ec6c44a7e94e51a3ca6dee229098391575ec7213c85267fbf7492fdbeee61b10":"f43ba9d834ad85dfab3f1c0c27c3441fe4e411a38a261a65":"59b3b3ee":"FAIL":"":1 AES-128-CCM test vector NIST #31 PSA (P=24, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"26511fb51fcfa75cb4b44da75a6e5a0e":"5a8aa485c316e9403aff859fbb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982":"50038b5fdd364ee747b70d00bd36840ece4ea19998123375":"c0a458bfcafa3b2609afe0f825cbf503":"":"8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5":1 AES-128-CCM test vector NIST #32 PSA (P=24, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"26511fb51fcfa75cb4b44da75a6e5a0e":"0812757ad0cc4d17c4cfe7a642":"ec6c44a7e94e51a3ca6dee229098391575ec7213c85267fbf7492fdbeee61b10":"78ed8ff6b5a1255d0fbd0a719a9c27b059ff5f83d0c4962c":"390042ba8bb5f6798dab01c5afad7306":"FAIL":"":1 AES-192-CCM test vector NIST #1 PSA (P=0, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c":"5a8aa485c316e9":"":"":"9d4b7f3b":"":"":1 AES-192-CCM test vector NIST #2 PSA (P=0, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c":"3796cf51b87266":"":"":"80745de9":"FAIL":"":1 AES-192-CCM test vector NIST #3 PSA (P=0, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65":"5a8aa485c316e9":"":"":"17223038fa99d53681ca1beabe78d1b4":"":"":1 AES-192-CCM test vector NIST #4 PSA (P=0, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65":"3796cf51b87266":"":"":"d0e1eeef4d2a264536bb1c2c1bde7c35":"FAIL":"":1 AES-192-CCM test vector NIST #5 PSA (P=0, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65":"5a8aa485c316e9403aff859fbb":"":"":"fe69ed84":"":"":1 AES-192-CCM test vector NIST #6 PSA (P=0, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65":"a16a2e741f1cd9717285b6d882":"":"":"db7ffc82":"FAIL":"":1 AES-192-CCM test vector NIST #7 PSA (P=0, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa":"5a8aa485c316e9403aff859fbb":"":"":"0c66a8e547ed4f8c2c9a9a1eb5d455b9":"":"":1 AES-192-CCM test vector NIST #8 PSA (P=0, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa":"a16a2e741f1cd9717285b6d882":"":"":"38757b3a61a4dc97ca3ab88bf1240695":"FAIL":"":1 AES-192-CCM test vector NIST #9 PSA (P=24, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa":"5a8aa485c316e9":"":"411986d04d6463100bff03f7d0bde7ea2c3488784378138c":"ddc93a54":"":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22":1 AES-192-CCM test vector NIST #10 PSA (P=24, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa":"31f8fa25827d48":"":"32b649ab56162e55d4148a1292d6a225a988eb1308298273":"b6889036":"FAIL":"":1 AES-192-CCM test vector NIST #11 PSA (P=24, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"197afb02ffbd8f699dacae87094d524324576b99844f75e1":"5a8aa485c316e9":"":"cba4b4aeb85f0492fd8d905c4a6d8233139833373ef188a8":"c5a5ebecf7ac8607fe412189e83d9d20":"":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22":1 AES-192-CCM test vector NIST #12 PSA (P=24, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"197afb02ffbd8f699dacae87094d524324576b99844f75e1":"31f8fa25827d48":"":"ca62713728b5c9d652504b0ae8fd4fee5d297ee6a8d19cb6":"e699f15f14d34dcaf9ba8ed4b877c97d":"FAIL":"":1 AES-192-CCM test vector NIST #13 PSA (P=24, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"197afb02ffbd8f699dacae87094d524324576b99844f75e1":"5a8aa485c316e9403aff859fbb":"":"042653c674ef2a90f7fb11d30848e530ae59478f1051633a":"34fad277":"":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697":1 AES-192-CCM test vector NIST #14 PSA (P=24, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"197afb02ffbd8f699dacae87094d524324576b99844f75e1":"49004912fdd7269279b1f06a89":"":"1902d9769a7ba3d3268e1257395c8c2e5f98eef295dcbfa5":"a35df775":"FAIL":"":1 AES-192-CCM test vector NIST #15 PSA (P=24, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"90929a4b0ac65b350ad1591611fe48297e03956f6083e451":"5a8aa485c316e9403aff859fbb":"":"a5b7d8cca2069908d1ed88e6a9fe2c9bede3131dad54671e":"a7ade30a07d185692ab0ebdf4c78cf7a":"":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697":1 AES-192-CCM test vector NIST #16 PSA (P=24, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"90929a4b0ac65b350ad1591611fe48297e03956f6083e451":"49004912fdd7269279b1f06a89":"":"9a98617fb97a0dfe466be692272dcdaec1c5443a3b51312e":"f042c86363cc05afb98c66e16be8a445":"FAIL":"":1 AES-192-CCM test vector NIST #17 PSA (P=0, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"90929a4b0ac65b350ad1591611fe48297e03956f6083e451":"5a8aa485c316e9":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c":"":"1d089a5f":"":"":1 AES-192-CCM test vector NIST #18 PSA (P=0, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"90929a4b0ac65b350ad1591611fe48297e03956f6083e451":"a265480ca88d5f":"a2248a882ecbf850daf91933a389e78e81623d233dfd47bf8321361a38f138fe":"":"2f46022a":"FAIL":"":1 AES-192-CCM test vector NIST #19 PSA (P=0, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2":"5a8aa485c316e9":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c":"":"5280a2137fee3deefcfe9b63a1199fb3":"":"":1 AES-192-CCM test vector NIST #20 PSA (P=0, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2":"a265480ca88d5f":"a2248a882ecbf850daf91933a389e78e81623d233dfd47bf8321361a38f138fe":"":"d40a7318c5f2d82f838c0beeefe0d598":"FAIL":"":1 AES-192-CCM test vector NIST #21 PSA (P=0, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2":"5a8aa485c316e9403aff859fbb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982":"":"5e0eaebd":"":"":1 AES-192-CCM test vector NIST #22 PSA (P=0, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2":"8739b4bea1a099fe547499cbc6":"f6107696edb332b2ea059d8860fee26be42e5e12e1a4f79a8d0eafce1b2278a7":"":"71b7fc33":"FAIL":"":1 AES-192-CCM test vector NIST #23 PSA (P=0, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4":"5a8aa485c316e9403aff859fbb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982":"":"d07ccf9fdc3d33aa94cda3d230da707c":"":"":1 AES-192-CCM test vector NIST #24 PSA (P=0, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4":"8739b4bea1a099fe547499cbc6":"f6107696edb332b2ea059d8860fee26be42e5e12e1a4f79a8d0eafce1b2278a7":"":"65fe32b649dc328c9f531584897e85b3":"FAIL":"":1 AES-192-CCM test vector NIST #25 PSA (P=24, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4":"5a8aa485c316e9":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c":"9f6ca4af9b159148c889a6584d1183ea26e2614874b05045":"75dea8d1":"":"a265480ca88d5f536db0dc6abc40faf0d05be7a966977768":1 AES-192-CCM test vector NIST #26 PSA (P=24, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4":"fdd2d6f503c915":"5b92394f21ddc3ad49d9b0881b829a5935cb3a4d23e292a62fb66b5e7ab7020e":"84d8212e9cfc2121252baa3b065b1edcf50497b9594db1eb":"d7965825":"FAIL":"":1 AES-192-CCM test vector NIST #27 PSA (P=24, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d":"5a8aa485c316e9":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c":"6aab64c4787599d8f213446beadb16e08dba60e97f56dbd1":"4d1d980d6fe0fb44b421992662b97975":"":"a265480ca88d5f536db0dc6abc40faf0d05be7a966977768":1 AES-192-CCM test vector NIST #28 PSA (P=24, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d":"fdd2d6f503c915":"5b92394f21ddc3ad49d9b0881b829a5935cb3a4d23e292a62fb66b5e7ab7020e":"4980b2ee49b1aaf393175f5ab9bae95ec7904557dfa20660":"3c51d36c826f01384100886198a7f6a3":"FAIL":"":1 AES-192-CCM test vector NIST #29 PSA (P=24, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d":"5a8aa485c316e9403aff859fbb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982":"16e543d0e20615ff0df15acd9927ddfe40668a54bb854ccc":"c25e9fce":"":"8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5":1 AES-192-CCM test vector NIST #30 PSA (P=24, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d":"0812757ad0cc4d17c4cfe7a642":"ec6c44a7e94e51a3ca6dee229098391575ec7213c85267fbf7492fdbeee61b10":"df35b109caf690656ae278bbd8f8bba687a2ce11b105dae9":"8ecedb3e":"FAIL":"":1 AES-192-CCM test vector NIST #31 PSA (P=24, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886":"5a8aa485c316e9403aff859fbb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982":"c5b0b2ef17498c5570eb335df4588032958ba3d69bf6f317":"8464a6f7fa2b76744e8e8d95691cecb8":"":"8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5":1 AES-192-CCM test vector NIST #32 PSA (P=24, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886":"0812757ad0cc4d17c4cfe7a642":"ec6c44a7e94e51a3ca6dee229098391575ec7213c85267fbf7492fdbeee61b10":"d1f0518929f4ae2f0543de2a7dfe4bb0110bb3057e524a1c":"06bd6dc2e6bcc3436cffb969ae900388":"FAIL":"":1 AES-256-CCM test vector NIST #1 PSA (P=0, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6":"a544218dadd3c1":"":"":"469c90bb":"":"":1 AES-256-CCM test vector NIST #2 PSA (P=0, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6":"d3d5424e20fbec":"":"":"46a908ed":"FAIL":"":1 AES-256-CCM test vector NIST #3 PSA (P=0, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8":"a544218dadd3c1":"":"":"8207eb14d33855a52acceed17dbcbf6e":"":"":1 AES-256-CCM test vector NIST #4 PSA (P=0, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8":"d3d5424e20fbec":"":"":"60f8e127cb4d30db6df0622158cd931d":"FAIL":"":1 AES-256-CCM test vector NIST #5 PSA (P=0, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8":"a544218dadd3c10583db49cf39":"":"":"8a19a133":"":"":1 AES-256-CCM test vector NIST #6 PSA (P=0, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8":"3c0e2815d37d844f7ac240ba9d":"":"":"2e317f1b":"FAIL":"":1 AES-256-CCM test vector NIST #7 PSA (P=0, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569":"a544218dadd3c10583db49cf39":"":"":"97e1a8dd4259ccd2e431e057b0397fcf":"":"":1 AES-256-CCM test vector NIST #8 PSA (P=0, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569":"3c0e2815d37d844f7ac240ba9d":"":"":"5a9596c511ea6a8671adefc4f2157d8b":"FAIL":"":1 AES-256-CCM test vector NIST #9 PSA (P=24, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569":"a544218dadd3c1":"":"64a1341679972dc5869fcf69b19d5c5ea50aa0b5e985f5b7":"22aa8d59":"":"d3d5424e20fbec43ae495353ed830271515ab104f8860c98":1 AES-256-CCM test vector NIST #10 PSA (P=24, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569":"bfcda8b5a2d0d2":"":"c5b7f802bffc498c1626e3774f1d9f94045dfd8e1a10a202":"77d00a75":"FAIL":"":1 AES-256-CCM test vector NIST #11 PSA (P=24, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453":"a544218dadd3c1":"":"bc51c3925a960e7732533e4ef3a4f69ee6826de952bcb0fd":"374f3bb6db8377ebfc79674858c4f305":"":"d3d5424e20fbec43ae495353ed830271515ab104f8860c98":1 AES-256-CCM test vector NIST #12 PSA (P=24, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453":"bfcda8b5a2d0d2":"":"afa1fa8e8a70e26b02161150556d604101fdf423f332c336":"3275f2a4907d51b734fe7238cebbd48f":"FAIL":"":1 AES-256-CCM test vector NIST #13 PSA (P=24, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453":"a544218dadd3c10583db49cf39":"":"63e00d30e4b08fd2a1cc8d70fab327b2368e77a93be4f412":"3d14fb3f":"":"3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e":1 AES-256-CCM test vector NIST #14 PSA (P=24, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453":"894dcaa61008eb8fb052c60d41":"":"bb5425b3869b76856ec58e39886fb6f6f2ac13fe44cb132d":"8d0c0099":"FAIL":"":1 AES-256-CCM test vector NIST #15 PSA (P=24, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4":"a544218dadd3c10583db49cf39":"":"f0050ad16392021a3f40207bed3521fb1e9f808f49830c42":"3a578d179902f912f9ea1afbce1120b3":"":"3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e":1 AES-256-CCM test vector NIST #16 PSA (P=24, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4":"894dcaa61008eb8fb052c60d41":"":"c408190d0fbf5034f83b24a8ed9657331a7ce141de4fae76":"9084607b83bd06e6442eac8dacf583cc":"FAIL":"":1 AES-256-CCM test vector NIST #17 PSA (P=0, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4":"a544218dadd3c1":"d3d5424e20fbec43ae495353ed830271515ab104f8860c988d15b6d36c038eab":"":"92d00fbe":"":"":1 AES-256-CCM test vector NIST #18 PSA (P=0, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4":"78c46e3249ca28":"232e957c65ffa11988e830d4617d500f1c4a35c1221f396c41ab214f074ca2dc":"":"9143e5c4":"FAIL":"":1 AES-256-CCM test vector NIST #19 PSA (P=0, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088":"a544218dadd3c1":"d3d5424e20fbec43ae495353ed830271515ab104f8860c988d15b6d36c038eab":"":"93af11a08379eb37a16aa2837f09d69d":"":"":1 AES-256-CCM test vector NIST #20 PSA (P=0, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088":"78c46e3249ca28":"232e957c65ffa11988e830d4617d500f1c4a35c1221f396c41ab214f074ca2dc":"":"d19b0c14ec686a7961ca7c386d125a65":"FAIL":"":1 AES-256-CCM test vector NIST #21 PSA (P=0, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088":"a544218dadd3c10583db49cf39":"3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e09a1005e024f6907":"":"866d4227":"":"":1 AES-256-CCM test vector NIST #22 PSA (P=0, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088":"e8de970f6ee8e80ede933581b5":"89f8b068d34f56bc49d839d8e47b347e6dae737b903b278632447e6c0485d26a":"":"94cb1127":"FAIL":"":1 AES-256-CCM test vector NIST #23 PSA (P=0, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a":"a544218dadd3c10583db49cf39":"3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e09a1005e024f6907":"":"867b0d87cf6e0f718200a97b4f6d5ad5":"":"":1 AES-256-CCM test vector NIST #24 PSA (P=0, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a":"e8de970f6ee8e80ede933581b5":"89f8b068d34f56bc49d839d8e47b347e6dae737b903b278632447e6c0485d26a":"":"677a040d46ee3f2b7838273bdad14f16":"FAIL":"":1 AES-256-CCM test vector NIST #25 PSA (P=24, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a":"a544218dadd3c1":"d3d5424e20fbec43ae495353ed830271515ab104f8860c988d15b6d36c038eab":"c2fe12658139f5d0dd22cadf2e901695b579302a72fc5608":"3ebc7720":"":"78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3":1 AES-256-CCM test vector NIST #26 PSA (P=24, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a":"6ba004fd176791":"5a053b2a1bb87e85d56527bfcdcd3ecafb991bb10e4c862bb0751c700a29f54b":"94748ba81229e53c38583a8564b23ebbafc6f6efdf4c2a81":"c44db2c9":"FAIL":"":1 AES-256-CCM test vector NIST #27 PSA (P=24, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe":"a544218dadd3c1":"d3d5424e20fbec43ae495353ed830271515ab104f8860c988d15b6d36c038eab":"3341168eb8c48468c414347fb08f71d2086f7c2d1bd581ce":"1ac68bd42f5ec7fa7e068cc0ecd79c2a":"":"78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3":1 AES-256-CCM test vector NIST #28 PSA (P=24, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe":"6ba004fd176791":"5a053b2a1bb87e85d56527bfcdcd3ecafb991bb10e4c862bb0751c700a29f54b":"d543acda712b898cbb27b8f598b2e4438ce587a836e27851":"47c3338a2400809e739b63ba8227d2f9":"FAIL":"":1 AES-256-CCM test vector NIST #29 PSA (P=24, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe":"a544218dadd3c10583db49cf39":"3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e09a1005e024f6907":"c0ea400b599561e7905b99262b4565d5c3dc49fad84d7c69":"ef891339":"":"e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3":1 AES-256-CCM test vector NIST #30 PSA (P=24, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe":"8fa501c5dd9ac9b868144c9fa5":"5bb40e3bb72b4509324a7edc852f72535f1f6283156e63f6959ffaf39dcde800":"60871e03ea0eb968536c99f926ea24ef43d41272ad9fb7f6":"3d488623":"FAIL":"":1 AES-256-CCM test vector NIST #31 PSA (P=24, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e":"a544218dadd3c10583db49cf39":"3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e09a1005e024f6907":"8d34cdca37ce77be68f65baf3382e31efa693e63f914a781":"367f30f2eaad8c063ca50795acd90203":"":"e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3":1 AES-256-CCM test vector NIST #32 PSA (P=24, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e":"8fa501c5dd9ac9b868144c9fa5":"5bb40e3bb72b4509324a7edc852f72535f1f6283156e63f6959ffaf39dcde800":"516c0095cc3d85fd55e48da17c592e0c7014b9daafb82bdc":"4b41096dfdbe9cc1ab610f8f3e038d16":"FAIL":"":1 diff --git a/tests/suites/test_suite_cipher.gcm.data b/tests/suites/test_suite_cipher.gcm.data index 1ec2e446b5..7b63635509 100644 --- a/tests/suites/test_suite_cipher.gcm.data +++ b/tests/suites/test_suite_cipher.gcm.data @@ -2731,2017 +2731,2017 @@ depends_on:MBEDTLS_GCM_C:MBEDTLS_AES_C auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"ca264e7caecad56ee31c8bf8dde9592f753a6299e76c60ac1e93cff3b3de8ce9":"4763a4e37b806a5f4510f69fd8c63571":"07daeba37a66ebe15f3d6451d1176f3a7107a302da6966680c425377e621fd71610d1fc9c95122da5bf85f83b24c4b783b1dcd6b508d41e22c09b5c43693d072869601fc7e3f5a51dbd3bc6508e8d095b9130fb6a7f2a043f3a432e7ce68b7de06c1379e6bab5a1a48823b76762051b4e707ddc3201eb36456e3862425cb011a":"8d03cf6fac31182ad3e6f32e4c823e3b421aef786d5651afafbf70ef14c00524ab814bc421b1d4181b4d3d82d6ae4e8032e43a6c4e0691184425b37320798f865c88b9b306466311d79e3e42076837474c37c9f6336ed777f05f70b0c7d72bd4348a4cd754d0f0c3e4587f9a18313ea2d2bace502a24ea417d3041b709a0471f":"3105dddb":"FAIL":"":0 AES-GCM NIST Validation PSA (AES-128,128,0,0,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d785dafea3e966731ef6fc6202262584":"d91a46205ee94058b3b8403997592dd2":"":"":"3b92a17c1b9c3578a68cffea5a5b6245":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"aec963833b9098de1ababc853ab74d96":"4e0ffd93beffd732c6f7d6ad606a2d24":"":"":"e9fcedc176dfe587dc61b2011010cdf1":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c4fb9e3393681da9cec5ec96f87c5c31":"845e910bc055d895879f62101d08b4c7":"":"":"99fb783c497416e4b6e2a5de7c782057":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"2a930f2e09beceacd9919cb76f2ac8d3":"340d9af44f6370eff534c653033a785a":"":"":"0c1e5e9c8fe5edfd11f114f3503d63":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"fe71177e02073b1c407b5724e2263a5e":"83c23d20d2a9d4b8f92da96587c96b18":"":"":"43b2ca795420f35f6cb39f5dfa47a2":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"b02392fd7f228888c281e59d1eaa15fb":"2726344ba8912c737e195424e1e6679e":"":"":"a10b601ca8053536a2af2cc255d2b6":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"21895cbafc16b7b8bf5867e88e0853d4":"f987ce1005d9bbd31d2452fb80957753":"":"":"952a7e265830d58a6778d68b9450":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"9bb9742bf47f68caf64963d7c10a97b0":"34a85669de64e1cd44731905fddbcbc5":"":"":"e9b6be928aa77b2de28b480ae74c":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"4e9708e4b37e2e1b5feaf4f5ab54e2a6":"1c53a9fdd23919b036d99560619a9939":"":"":"6611b50d6fbca83047f9f5fe1768":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"82fede79db25f00be96eb050a22cea87":"e9c50b517ab26c89b83c1f0cac50162c":"":"":"d0c0ce9db60b77b0e31d05e048":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"1d98566fca5201abb12914311a8bd532":"590aef4b46a9023405d075edab7e6849":"":"":"a1cfd1a27b341f49eda2ca8305":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3038771820c2e1319f02a74b8a7a0c08":"e556d9f07fb69d7e9a644261c80fac92":"":"":"4d2f005d662b6a8787f231c5e1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"0fb7eef50de598d7d8b508d019a30d5a":"a2a2617040116c2c7e4236d2d8278213":"":"":"68413c58df7bb5f067197ca0":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"8cc58b609204215c8ab4908286e56e5c":"fb83ea637279332677b5f68081173e99":"":"":"a2a9160d82739a55d8cd419f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"81a5fd184742a478432963f6477e8f92":"da297cbb53b11d7c379e0566299b4d5a":"":"":"200bee49466fdda2f21f0062":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"f604ac66d626959e595cbb7b4128e096":"269d2a49d533c6bb38008711f38e0b39":"":"":"468200fa4683e8be":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"2e308ba7903e925f768c1d00ff3eb623":"335acd2aa48a47a37cfe21e491f1b141":"":"":"4872bfd5e2ff55f6":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"1304e2a5a3520454a5109df61a67da7a":"dbe8b452acf4fa1444c3668e9ee72d26":"":"":"83a0d3440200ca95":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"ecf1ec2c9a8f2e9cc799f9b9fddb3232":"ddf0b695aef5df2b594fcaae72b7e41c":"":"":"2819aedf":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"9ab5c8ca905b5fe50461f4a68941144b":"96dd3927a96e16123f2e9d6b367d303f":"":"":"6e0c53ef":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"b5fc7af605721a9cfe61c1ee6a4b3e22":"6b757d4055823d1035d01077666037d6":"":"":"e8c09ddd":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"03c0b4a6e508a8490db0d086a82c9db7":"ac52f6c1a05030321fa39f87e89fdb5e":"33316ca79d10a79f4fd038593e8eef09625089dc4e0ffe4bc1f2871554fa6666ab3e7fe7885edef694b410456f3ec0e513bb25f1b48d95e4820c5972c1aabb25c84c08566002dadc36df334c1ce86847964a122016d389ac873bca8c335a7a99bcef91e1b985ae5d488a2d7f78b4bf14e0c2dc715e814f4e24276057cf668172":"":"756292d8b4653887edef51679b161812":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"b228d3d15219ea9ad5651fce02c8374d":"5c7eafaead029c3fe3cf3835fe758d0e":"8c35dd805c08686b9b4d460f81b4dcb8c46c6d57842dc3e72ba90952e2bebf17fe7184445b02f801800a944486d662a127d01d3b7f42679052cdc73ce533129af8d13957415c5495142157d6ce8a68aa977e56f562fed98e468e42522767656ce50369471060381bb752dd5e77c79677a4cadffa39e518e30a789e793b07ea21":"":"a4dde1ab93c84937c3bbc3ad5237818d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"776afcbabedd5577fe660a60f920b536":"5bbb7f1b14084e520408dd87b97705e9":"44631fc9d4a07416b0dfb4e2b42071e3e2be45502c9ddf72b3e61810eeda31a7d685ebb2ee43a2c06af374569f439ee1668c550067de2dece9ec46ee72b260858d6033f814e85275c5ae669b60803a8c516de32804fa34d3a213ccfaf6689046e25eeb30b9e1608e689f4d31cc664b83a468a51165f5625f12f098a6bf7ddab2":"":"a5347d41d93b587240651bcd5230264f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"20abeafa25fc4ea7d0592cb3e9b4d5fe":"3aba79a58c5aa664856b41d552c7a8d3":"98cfecaae9eb9a7c3b17e6bc5f80d8a4bf7a9f4fa5e01b74cae15ee6af14633205aafe3b28fb7b7918e12322ea27352056a603746d728a61361134a561619400ff2bf679045bac2e0fbc2c1d41f8faba4b27c7827bceda4e9bf505df4185515dd3a5e26f7639c8ad5a38bc5906a44be062f02cc53862678ae36fa3de3c02c982":"":"2a67ad1471a520fe09a304f0975f31":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"2bc73fba942ff105823b5dccf6befb1c":"902c3e3b69b1ef8395d7281ff74cce38":"4adec0b4ac00325a860044d9f9519daa4f7c163229a75819b0fd7d8e23319f030e61dfa8eadabff42ea27bc36bdb6cad249e801ca631b656836448b7172c11126bad2781e6a1aa4f62c4eda53409408b008c057e0b81215cc13ddabbb8f1915f4bbab854f8b00763a530ad5055d265778cd3080d0bd35b76a329bdd5b5a2d268":"":"ebdd7c8e87fe733138a433543542d1":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"356a4c245868243d61756cabe86da887":"b442f2ec6d45a17144c258fd59fe5b3b":"12cccc3c60474b0a1579c5006c2134850724fa6c9da3a7022d4f65fd238b052bdf34ea34aa7dbadad64996065acee588ab6bd29726d07ed24ffae2d33aadf3e66ebb87f57e689fd85128be1c9e3d8362fad1f8096ee391f75b576fb213d394cef6f091fc5488d9aa152be69475b9167abd6dd4fd93bbbc7b8ca316c952eb19c6":"":"ed26080dcb670590613d97d7c47cf4":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"dfa7e93aff73600fc552324253066e2c":"c20001e93f1cd05253c277a9445d61e4":"a64d1e20058a1f7e698622a02f7ff8dc11886717ede17bbdc3c4645a66a71d8b04346fb389a251ffb0a7f445a25faf642bb7e4697d2cacf925e78c4be98457996afb25b0516b50f179441d1923312364947f8f1e0f5715b43bd537727bf943d7b4679b0b0b28b94e56e7bbf554d9cf79fcee4387f32bb6f91efdd23620035be6":"":"6ba5e4dace9a54b50b901d9b73ad":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"2ecea80b48d2ecd194a7699aa7d8ccfc":"8b4db08bafc23b65ae50a2d20661d270":"efc2ca1a3b41b90f8ddf74291d68f072a6e025d0c91c3ce2b133525943c73ebadc71f150be20afeb097442fa51be31a641df65d90ebd81dcbaf32711ed31f5e0271421377ffe14ddafea3ca60a600588d484856a98de73f56a766ae60bae384a4ae01a1a06821cf0c7a6b4ee4c8f413748457b3777283d3310218fb55c107293":"":"246a9d37553088b6411ebb62aa16":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d38fee3fd3d6d08224c3c83529a25d08":"a942ccb11cf9468186fabfc18c899801":"1c92a4ce0a1dae27e720d6f9b1e460276538de437f3812ab1177cf0273b05908f296f33ba0f4c790abe2ce958b1d92b930a0d81243e6ad09ef86ee8e3270243095096537cb1054fcfcf537d828b65af9b6cf7c50f5b8470f7908f314d0859107eed772ee1732c78e8a2e35b2493f3e8c1e601b08aeab8d9729e0294dca168c62":"":"803a08700ec86fdeb88f7a388921":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"1899b0cbae41d705c6eed3226afb5bc0":"82d0910aa53e300a487d880d018d0dea":"6bf5583cc1007d74f3529db63b8d4e085400ccf3725eab8e19cb145f3910c61465a21486740a26f74691866a9f632af9fae81f5f0bffedf0c28a6ce0fd520bb4db04a3cd1a7d29d8801e05e4b9c9374fd89bcb539489c2f7f1f801c253a1cc737408669bcd133b62da357f7399a52179125aa59fae6707d340846886d730a835":"":"c5d58870fee9ce157f5ec1fa8f":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"8b95323d86d02754f4c2874b42ec6eb0":"4f76084acbdef9999c71dcc794238d7c":"ebc75788377c0b264818a6f97c19cf92c29f1c7cdeb6b5f0a92d238fa4614bc35d0cfe4ec9d045cd628ff6262c460679ac15b0c6366d9289bbd217e5012279e0af0fb2cfcbdf51fe16935968cbb727f725fe5bcd4428905849746c8493600ce8b2cfc1b61b04c8b752b915fed611d6b54ef73ec4e3950d6db1807b1ce7ed1dcc":"":"c4724ff1d2c57295eb733e9cad":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"30da555559eb11cf7e0eff9d99e9607d":"7799275bf12335f281ec94a870f90a0b":"e735d556e15aec78d9736016c8c99db753ed14d4e4adaaa1dd7eaad702ea5dc337433f8c2b45afdf2f385fdf6c55574425571e079ca759b6235f877ed11618ff212bafd865a22b80b76b3b5cf1acfd24d92fd41607bbb7382f26cd703757088d497b16b32de80e1256c734a9b83356b6fced207177de75458481eaef59a431d7":"":"3c82272130e17c4a0a007a908e":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"ed2ac74af896c5190c271cfa6af02fd2":"e0226e2d8da47badad1fb78b9a797f27":"8f11353ae476ff923013e6e736ffc9d23101a1c471ccc07ad372a8430d6559c376075efce2e318cdf4c9443dbf132e7e6da5524045028c97e904633b44c4d189a4b64237ac7692dd03c0e751ce9f04d0fdbd8a96074cd7dfa2fd441a52328b4ac3974b4902db45663f7b6f24947dba618f8b9769e927faf84c9f49ad8239b9fb":"":"db8af7a0d548fc54d9457c73":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"0225b73fe5fbbe52f838d873173959d8":"02a048764f48d9aed1147ee922395bbf":"9b46a57b06e156c877e94c089814493ead879397dab3dfcab2db349ef387efcd0cc339a7e79131a2c580188fc7429044a465b8329d74cd8f47272a4ed32582b1c5c7e3d32341ae902ea4923dc33df8062bc24bb51a11d2ecc82f464f615041387f9c82bd2135d4e240fe56fa8a68e6a9a417e6702430a434b14d70cf02db3181":"":"e2c2ce4022c49a95c9ac9026":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"89ca3771a0ef3287568b4ac036120198":"7e83d2ffa8af8c554cfd71a0db56ef5b":"1bd7a9d6262882bd12c62bd50942965b3cdcadf5e0fab2dc4d0daf0ee4b16e92c6e2464c0caa423cdce88e4d843490609716ec5e44c41672c656ac0e444d3622557ea8420c94deae3ad190ddaf859f6f8c23e4e2e32a46d28df23de4f99bd6c34f69e06eddfdfa5f263dbe8baf9d4296b2c543e4c4847271e7590374edf46234":"":"06b2bf62591dc7ec1b814705":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"a41a297bd96e224942998fe2192934a1":"6827f2c5a0b7ecd6bbc696abb0adf556":"f32041abd8543415cbac423d945dda5378a16a7e94d9ab5dbd2d32eb1c5048cc7c8e4df3ca84ec725f18c34cfdeaa7595392aabfd66d9e2f37c1165369cd806cd9d2110def6f5fad4345e5a6e2326c9300199438fcc078cd9fcf4d76872cac77fc9a0a8ac7e4d63995078a9addecf798460ff5910861b76c71bccfb6b629d722":"":"49a4917eef61f78e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"a9372c058f42e0a1d019bdb528313919":"8d03f423230c8f00a5b6b712d426a2af":"cfef4e70fcc1821eeccf7c7b5eb3c0c3b5f72dc762426e0bd26242f8aa68c5b716ab97eded5e5720caccc1965da603d556d8214d5828f2cf276d95bf552d47313876796221f62ccb818a6d801088755d58cfb751bfed0d5a19718d4e0f94b850e0279b3a69295d1837cba958a6cc56e7594080b9e5b954a199fdc9e54ddc8583":"":"b82cd11cd3575c8d":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"6302b7338f8fa84195ad9abbacd89b4e":"e1bed5c53547cbc85f3411fbb43bb08b":"bcd329c076e8da2797d50dcdcf271cecf3ce12f3c136ed746edc722f907be6133276ee099038fdc5d73eec812739c7489d4bcc275f95451b44890416e3ffe5a1b6fa3986b84eee3adad774c6feaecb1f785053eeda2cfc18953b8547866d98918dbe0a6abc168ac7d77467a367f11c284924d9d186ef64ef0fd54eacd75156d2":"":"5222d092e9e8bd6c":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"78b5c28d62e4b2097873a1180bd5a3a5":"c93902c2819ee494f0fc4b259ee65dd8":"e6b1192674a02083a6cf36d4ba93ba40a5331fadf63fd1eb2efa2ee9c0d8818472aaaf2b4705746011753f30f447c8f58dd34d29606daf57eadc172529837058cb78a378b19da8d63c321f550dfa256b5fd9f30e93d8f377443bfcd125f86a079a1765d2010be73d060f24eebae8d05e644688b2149bc39e18bd527bc066f2ba":"":"eae48137":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3d84130578070e036c9e3df5b5509473":"3b9b4950523a19c6866fd2b0cde541fd":"a764931e1b21a140c54a8619aacdb4358834987fb6e263cec525f888f9e9764c165aaa7db74f2c42273f912daeae6d72b232a872ac2c652d7cd3af3a5753f58331c11b6c866475697876dbc4c6ca0e52a00ba015ee3c3b7fb444c6e50a4b4b9bbe135fc0632d32a3f79f333d8f487771ed12522e664b9cf90e66da267f47a74d":"":"79987692":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"08428605ab4742a3e8a55354d4764620":"128f5f4a817e4af04113847a223adeb0":"464b484ed79d93a48e0f804e04df69d7ca10ad04ba7188d69e6549ab50503baaec67e0acba5537d1163c868fd3e350e9d0ae9123046bc76815c201a947aa4a7e4ed239ce889d4ff9c8d043877de06df5fc27cf67442b729b02e9c30287c0821ef9fa15d4cccbc53a95fa9ec3ed432ca960ebbf5a169ccada95a5bf4c7c968830":"":"3eb3e3a2":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"0dd358bc3f992f26e81e3a2f3aa2d517":"d8c750bb443ee1a169dfe97cfe4d855b":"":"87cc4fd75788c9d5cc83bae5d764dd249d178ab23224049795d4288b5ed9ea3f317068a39a7574b300c8544226e87b08e008fbe241d094545c211d56ac44437d41491a438272738968c8d371aa7787b5f606c8549a9d868d8a71380e9657d3c0337979feb01de5991fc1470dfc59eb02511efbbff3fcb479a862ba3844a25aaa":"a81d13973baa22a751833d7d3f94b3b1":"":"77949b29f085bb3abb71a5386003811233056d3296eb093370f7777dadd306d93d59dcb9754d3857cf2758091ba661f845ef0582f6ae0e134328106f0d5d16b541cd74fdc756dc7b53f4f8a194daeea9369ebb1630c01ccb307b848e9527da20a39898d748fd59206f0b79d0ed946a8958033a45bd9ae673518b32606748eb65":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"43b5f18227e5c74288dbeff03801acd6":"08ee12246cf7edb81da3d610f3ebd167":"":"f58d630f10cfca61d4644d4f6505bab629e8e8faf1673e64417f9b79e622966a7011cfb3ff74db5cebf09ad3f41643d4437d213204a6c8397e7d59b8a5b1970aed2b6bb5ea1933c72c351f6ba96c0b0b98188f6e373f5db6c5ebece911ec7a1848abd3ae335515c774e0027dab7d1c07d047d3b8825ff94222dbaf6f9ab597ee":"82d83b2f7da218d1d1441a5b37bcb065":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"9a433c612d7e1bdff881e4d63ba8b141":"8b670cf31f470f79a6c0b79e73863ca1":"":"ce10758332f423228b5e4ae31efda7677586934a1d8f05d9b7a0dc4e2010ec3eaacb71a527a5fff8e787d75ebd24ad163394c891b33477ed9e2a2d853c364cb1c5d0bc317fcaf4010817dbe5f1fd1037c701b291b3a66b164bc818bf5c00a4c210a1671faa574d74c7f3543f6c09aaf117e12e2eb3dae55edb1cc5b4086b617d":"8526fd25daf890e79946a205b698f287":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"8e9d75c781d63b29f1816859f7a0e0a0":"748a3b486b62a164cedcf1bab9325add":"":"a9f1883f58e4ef78377992101ab86da0dafcefa827904dd94dff6f6704b1e45517165a34c5555a55b04c6992fb6d0840a71bd262fe59815e5c7b80fe803b47d5ba44982a3f72cb42f591d8b62df38c9f56a5868af8f68242e3a15f97be8ef2399dbace1273f509623b6f9e4d27a97436aebf2d044e75f1c62694db77ceac05de":"131e0e4ce46d768674a7bcacdcef9c":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"fe6b8553002c69396d9976bb48d30779":"595b17d0d76b83780235f5e0c92bd21f":"":"786f4801b16de7a4931ab143b269c7acc68f1ed9b17a95e8929ccec7d53413059fd4267bedbf079d9d69e90314c1345bc9cb9132f1af69323157ddf7533ced42b4b7bd39004f14d326f5b03bc19084d231d93bcab328312d99b426c1e86e8e049d380bb492e2e32ad690af4cf86838d89a0dfdcbc30e8c9e9039e423a234e113":"8879de07815a88877b0623de9be411":"":"b15dc7cd44adcb0783f30f592e5e03ccd47851725af9fe45bfc5b01ae35779b9a8b3f26fec468b188ec3cad40785c608d6bfd867b0ccf07a836ec20d2d9b8451636df153a32b637e7dcdbd606603d9e53f6e4c4cc8396286ce64b0ea638c10e5a567c0bc8e808080b71be51381e051336e60bf1663f6d2d7640a575e0752553b":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"14898c56009b459172fef9c17993b54f":"0862f8f87289988711a877d3231d44eb":"":"e7ba6ef722273238b975d551f95d3e77e9b75b24c547b86eafb457d409803bdf6e1443839d8604ee497020e1a3dbd687a819b17fdde0fcf240ce2129792792a58bfcd825773001ee959bf9ec8d228e27ce1cd93d7fb86769a3793361b6f82bf7daf284afc1ece657a1ee6346ea9294880755b9b623563ad2657ba2286488a2ef":"36938974301ae733760f83439437c4":"":"3fd56897a62743e0ab4a465bcc9777d5fd21ad2c9a59d7e4e1a60feccdc722b9820ec65cb47e1d1160d12ff2ea93abe11bc101b82514ead7d542007fee7b4e2dd6822849cd3e82d761ff7cf5ce4f40ad9fec54050a632a401451b426812cf03c2b16a8667a88bb3f7497e3308a91de6fd646d6a3562c92c24272411229a90802":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"fe5253d4b071793b081ebc122cc2a5f8":"49e82d86804e196421ec19ddc8541066":"":"b57a0bd7714ae95e77fa9452e11a7ed4a2bec60f81ad6ddb956d4b1cb5dfc277dcb4034d501801b26733b5e08c710c3cfdccc1b208dc7a92cd7ebe166320582bcaff64cc943c36fbe7008f004e5db70c40de05fa68b0c9d4c16c8f976130f20702b99674cd2f4c93aeaeb3abca4b1114dbc3a4b33e1226ad801aa0e21f7cc49b":"e8b8ae34f842277fe92729e891e3":"":"c4a31c7ec820469f895d57579f987733337ec6547d78d17c44a18fab91f0322cfe05f23f9afaf019cf9531dec2d420f3591d334f40d78643fd957b91ab588a7e392447bd702652017ede7fb0d61d444a3b3cc4136e1d4df13d9532eb71bcf3ff0ae65e847e1c572a2f90632362bc424da2249b36a84be2c2bb216ae7708f745c":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"b3502d6f0d172246e16503cdf5793296":"6ce994689ff72f9df62f386a187c1a13":"":"09268b8046f1558794e35cdc4945b94227a176dd8cb77f92f883542b1c4be698c379541fd1d557c2a07c7206afdd49506d6a1559123de1783c7a60006df06d87f9119fb105e9b278eb93f81fd316b6fdc38ef702a2b9feaa878a0d1ea999db4c593438f32e0f849f3adabf277a161afb5c1c3460039156eec78944d5666c2563":"21cdf44ff4993eb54b55d58e5a8f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"5fb33dd73db309b9dfd3aee605cd94bf":"3f6486f9e9e645292e0e425bac232268":"":"f4e011f8c99038c46854b427475f23488077ebf051c4b705a1adfdd493a0a10af7a7e9453965b94f52f61ae62ce9243a82a2dbf9c5a285db3fe34ed34ed08b5926f34c48171195f7062d02a6e6e795322a0475017371cb8f645cdcac94afc66dc43e7583bdf1c25790f4235076a53de6c64f3bc5004e5a9ce4783fbf639fad97":"7ee5e0e2082b18d09abf141f902e":"":"0503cb531f1c967dae24f16dd651d544988a732020134896a0f109222e8639bf29ff69877c6ef4ac3df1b260842f909384e3d4409b99a47112681c4b17430041ca447a903a6c1b138f0efbb3b850d8290fceac9723a32edbf8e2d6e8143b1cbc7bf2d28d1b6c7f341a69918758cc82bbab5d898fa0f572d4ceaa11234cb511ec":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"a958fe3b520081b638d9e4c7d5da7ac7":"c396109e96afde6f685d3c38aa3c2fae":"":"dfa9487378c7d8af9c8dbd9e533cd81503d9e4e7dab43133bad11fd3050a53a833df9cc3208af1a86110567d311d5fc54b0d627de433c381b10e113898203ac5225140f951cdb64c6494592b6453f9b6f952ec5ece732fb46c09a324f26b27cdad63588006bb5c6c00b9aa10d5d3b2f9eaab69beeddd6f93966654f964260018":"06ca91004be43cf46ed4599e23":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"ec319fb143eac8215b51541daec268f2":"8a4684f42a1775b03806574f401cff78":"":"d298d988e74927736237eb8ab09d7a86b854fa2fd1f7f3be83b417ac10aa9291f4af5b3fbaf75a296ac32369ad57ded3984b84711953e477de3035ba430a30ffb84c941936e6c8d2cae8d80159876f87dd682747f2dccc36d7c32ab227032b8ac70b313fa4202ea236e3ec4d9e4d8b48cf3b90b378edc5b1dbeec929549344f8":"e91acb1bfda191630b560debc9":"":"27ce4a622959930f4059f247d29d1438257093cc973bf1bae4e0515da88b9a7e21ec59c7e4d062035cdf88b91254d856b11c8c1944865fa12922227ded3eecccaa36341ecf5405c708e9ea173f1e6cdf090499d3bb079910771080814607a1efe62ec6835dc0333d19dd39dd9ea9f31cd3632128536149a122050bb9365b521d":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"14a3e69f351ac39b4297749a90c1365c":"eb1c6c04437aa5a32bcc208bb3c01724":"":"051224f7b208549dcfda5f9d56ce5f0a072ef1f23f3810c693516c92622be6ed4d7a9e0f9450980ba490b2e9e3468ea7eef10bc9ebd673d91f32b748c1bf2c50cc4ebb59fc409c6d780bba00700d563ce1dc9927a6c860095a42ed053f3d640debfbfa7a4e6d5de234af19755000d95e7f414f1f78285ee165410c020038286b":"e418815960559aefee8e0c3831":"":"797310a6ed9ce47cdc25f7f88f5dbbf6f8f4837701704d7afced250585922744598d6f95ba2eecf86e030cc5ee71b328fc1c4f2d4df945d1b91a2803d6ae8eba6881be5fe0f298dd0c0279e12720ede60b9e857ccca5abe9b4d7ee7f25108beebbfe33f05c0d9903bf613c2e7ed6a87b71b5e386d81b3ae53efd01055bbcccc2":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c34827771fc3918d1cee09ba9401b832":"2379bbd39a1c22bc93b9b9cc45f3840b":"":"ce79701b661066e53191c9acdaf677ad41622314898d7216e3f113e2e6e215d26d8bd139827f06ab3ea5c4105694e87db1dd6cec10e1f86a8744d4c541f08e40319e22ab42fc1a6c89edfd486b6f142c6bbbf84a73912e0b2e55b79db306ccabf839855afdd889e52ae981520c89e7dc29bb2adb1906cca8c93fcb21290a095b":"26e1f6cf0d9e0f36dfd669eb":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"b1f9bd2006ec550b7b9913d383200b5d":"ca28fa6b64bb3b32ef7d211f1c8be759":"":"6d9fc8f586d50d6e0128172ae147844e80136905d3a297497a9566ca7c7445029028f14c9950acee92a5c12a9150f5e024e01c7505dd83937542b0b1288de9c292ae8ad918a09b2edf8493540b74c73d2794f2eb6eed18eba520ddea9567462c83330f33d7892fcde0b10c73a4e26ab1bef037cec7e0190b95188e9a752fee6f":"c87aac7ad0e85dbb103c0733":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"8b2cef1a92aa0af2b00fb2a99855d5bc":"08d87b7acee87d884667f6b1e32e34d0":"":"fd09525ef3c65ab5823e1b6c36b4a9449a3975c5d3a9e7e33c61fb32edcbb8e8c915b6202e3fbce87d73cc3b66d83d9ea7e1e353cc7468f08626932cf0235563e2a28953ee5a0afadb1c3cb513b1f1fc9a8a6cf326174b877448672f7731dd6430a51619da1a169ab302da5af5b38802f8bbf5890b5d9b45deda799679501dc4":"3bd7685318010b0c5fe3308b":"":"583e64631c218549923e8ad33b728d07f23b0f19d2aff1ad7e20d564c591db0e117caa8f21e3f3345e3d84f0ccbb27274cddf9274410fc342cb2a5d4aea4e925d0dd5350389ee0dea23a842ff3f5c1198374a96f41e055f999cfbc2f47ceaa883da8eb6ff729f583eff1f91bd3f3254d4e81e60d9993b3455e67f405708e4422":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"175c306f8644b0c4b894ae3d0971505e":"9860268ca2e10974f3726a0e5b9b310f":"":"fbe7ced7048f83e3a075661c4924eb77da1b4d6019d504afb942d728b31fd3b17557bd101c08453540a5e28d3505aeb8801a448afac2d9f68d20c0a31c7ef22bd95438851789eef1bebe8d96ac29607025b7e1366fecd3690ba90c315528dc435d9a786d36a16808d4b3e2c7c5175a1279792f1daccf51b2f91ac839465bb89a":"f809105e5fc5b13c":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"08c0edcfe342a676ccdc04bdf854b4b0":"4a7b70753930fe659f8cc38e5833f0c7":"":"1fc8ef8480c32d908b4bcbfa7074a38e915c20ed7a1c608422087e89442d7c5af6fe9c9a716c55793248062d8e6c6e8e904e2804da3a43701e4c78ecdb67e0b25308afc6d9b463356439cd095cff1bdf0fd91ab301c79fd257046cba79a5d5cd99f2502ad968420e4d499110106072dc687f434db0955c756a174a9024373c48":"9ab1e2f3c4606376":"":"983458c3f198bc685d98cea2b23cf71f0eb126e90937cab3492a46d9dc85d76bbb8035c6e209c34b2a7187df007faabe9f3064dc63f1cb15bf5a10655e39b94732e0c6583d56327e9701344e048887a81b256181cdfa9ec42ebc990875e4852240ddcb3cbc4ea4e6307075fd314f7190f3553267bd68b19e954e310ec3f8dbab":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"241067a0301edf0f825d793e03383ea1":"a30994261f48a66bb6c1fc3d69659228":"":"6984bb9830843529fad7f5e7760db89c778d62c764fcd2136ffb35d7d869f62f61d7fef64f65b7136398c1b5a792844528a18a13fba40b186ae08d1153b538007fc460684e2add8a9ed8dd82acbb8d357240daaa0c4deb979e54715545db03fe22e6d3906e89bdc81d535dae53075a58f65099434bfeed943dbc6024a92aa06a":"36c3b4a732ba75ae":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"03cccb5357bd2848332d1696f2ff90cb":"e0754022dfb1f813ccaf321558790806":"":"5e2f18cbc1e773df9f28be08abb3d0b64d545c870c5778ac8bb396bef857d2ac1342ae1afb3bf5d64e667bf837458415d48396204fe560e3b635eb10e560e437f2d0396952998fd36e116cd047c1d7f6fc9901094454d24165c557a8816e0d0a8e0ce41e040ba6f26ca567c74fc47d9738b8cd8dae5dfc831c65bc1ba9603a07":"c75f0246":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"4e5e53c84a05d5a5348bac7b2611cf62":"47e40543b7d16bc9122c40b106d31d43":"":"489c00c05dec06f282924c680f621ab99ac87f7d33ebbb4ca0eee187ec177d30d2b4afb4ee9f0dc019cf1a4da16d84b7f5f5c7fce72a32461db115b5a5a433024fd5ed3d47161836bb057a0189ed768f95e45fa967d0cc512fc91b555808c4033c945e8f2f7d36428dcb61f697e791b74e5c79b2bcb9cb81bec70d8119cd8d76":"81eec75d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"2c94008bf377f90b7a1c0d2ea38f730c":"abfe92931a8411a39986b74560a38211":"":"7b3d619d115de9970b2df4e1f25194940b3f3da04c653231e8e6946de9dc08ae5ba37e2a93c232e1f9445f31c01333045f22bd832e3b5f9833f37070fafb0ef1c44cc5637058ab64d9e07bb81b32852d4cf749a3ddbfdb494f8de8bb4e31f46033f8a16bc22e2595d023845505ea5db74dd69ab4ca940078b09efb4ff19bdb66":"47d42e78":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"69eedf3777e594c30e94e9c5e2bce467":"a3330638a809ba358d6c098e4342b81e":"df4e3f2b47cf0e8590228fcf9913fb8a5eb9751bba318fd2d57be68c7e788e04fabf303699b99f26313d1c4956105cd2817aad21b91c28f3b9251e9c0b354490fa5abfcea0065aa3cc9b96772eb8af06a1a9054bf12d3ae698dfb01a13f989f8b8a4bb61686cf3adf58f05873a24d403a62a092290c2481e4159588fea6b9a09":"5114e9983c96fecec3f7304ca42f52aa16cb7c6aadfb62ad537c93a3188835ca0703dad34c73cf96435b668b68a7a1d056931959316e8d3ab956bf64c4e07479c7767f9d488b0c0c351333ccf400b7e0be19a0fd173e3f2a1ae313f27e516952260fd2da9ab9daca478ebb93cd07d0b7503b32364d8e308d904d966c58f226bb":"5de3068e1e20eed469265000077b1db9":"":"208e6321238bf5c6e2ef55a4b8f531cbbfb0d77374fe32df6dd663486cf79beeed39bb6910c3c78dd0cc30707a0a12b226b2d06024db25dcd8a4e620f009cafa5242121e864c7f3f4360aaf1e9d4e548d99615156f156008418c1c41ff2bbc007cecf8f209c73203e6df89b32871de637b3d6af2e277d146ae03f3404d387b77":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"45cc35311eedf0ba093bf901931a7036":"fed5084de3c348f5a0adf4c2fd4e848a":"6e210914e4aed188d576f5ad7fc7e4cf7dd8d82f34ea3bcbdb7267cfd9045f806978dbff3460c4e8ff8c4edb6ad2edba405a8d915729d89aab2116b36a70b54f5920a97f5a571977e0329eda6c696749be940eabfc6d8b0bbd6fbdb87657b3a7695da9f5d3a7384257f20e0becd8512d3705cc246ee6ca1e610921cf92603d79":"5dc8d7525eaad035c19714ae1b1e538cb66a4089027245351e0ad9297410fb3a0c1155407c10a8bb95a9ca624a9c9925dac003ee78926c6e90ff4ccdba10e8a78bda1c4478162a0e302de5ff05fb0f94c89c3c7429fb94828bdcd97d21333c2ee72963ee6f056ce272b8bab007e653a42b01d1d2041ba627f169c8c0d32e6dae":"266a895fc21da5176b44b446d7d1921d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"9edb5231ca4a136b4df4ae22b8588f9f":"c342e9bdabe7be922b2695f5894e032c":"a45c7f8032ac5144deef8d5380f033aea2786b0592720a867f4831eaccc6b85d3fd568aedc6e472e017455b0b5b30cf7a08ea43ca587f35e1646ecd9b4dc774d11e350c82c65692be1e9541cbd72a283bdcf93dc7115545f373747b4f8d5915ed0c42fbeefd3e9bd86003d65efc2361fde5b874ddabcf8265e6b884615102eff":"493df801c57f8bb591955712d92d3fc34518f0599fec8533b2b4473364e1df4f560c12444cf50eeb584676b7e955c742189de6b50b8e012dfa6642f3679fb02bc6d8e08d1db88c8ae955a7946263e06494e17f8df246b672942661e5563302252208f2e00a0d77068a020e26082c291a75a06f63c41e2830292a418b2b5fd9dd":"5ed3ea75c8172fa0e8755fef7b4c90f1":"":"56696e501fac1e8d5b83ef911ed11337d5d51ff5342a82993dd5340bb9632e6606eef68ec5fe8cec6b34ebbc596c279e6cbc9221c4cde933f6d93ae014e3c4ca49593f35eaa638606d059519bac3a3373519e6184e7227d2aa62170c36479fe239cb698bfca863925a4c9fb1338685a55a6dfd3bd9c52d8ae12be8551fce6e1a":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d5fdcb8f5225090e63fae9b68f92c7cb":"581c818282a0905df5ffff652e5604e9":"f1ae6cd7b07f261105f555cf812a1d5bf8dd9aac07666318acffa11abb77d0238156663acbf7543825b45c6e9cddb481a40995ecd78bb5f4cba5df7c7efb00fc19c7f45e94d37697aca8ef368b99165393b6107f900194c797cd3289cb097eb5915f2abfd6aa52dd1effffdde448e30075a1c053246db54b0ec16eadca1c0071":"d39b9cba95e3a3aab9bc1d03ff475c04faeb5b7f0510777f39e5a05756606eb7ddd154aac035d9ddaf3535629821dd8f014dedd52cd184f52fc706e3c89a3a271398c9125d9a624dafb297a56022ca2ea331ea7359ab5e65f8e14814788e64e0a886a9b1a0144bf268fdcf9d94c3d10a0452f40111da9df108252e9039eacea3":"827e66b5b70dce56215cfb86c9a642":"":"cec11a12e47fd443f878e8e9fe23c65f29dd2d53cec59b799bcb0928de8e2f92fe85c27cec5c842ef30967b919accafe0c0d731b57f0bb5685d90a3061cb473e50e8aeca1346d1f47f7db06941f83f21ba5976d97c28cab547d8c1f38387a04b8a0b212da55b75fbaf9562eeeabd78eadcbab66457f0cd4e0d28133a64cb063f":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"036198cd3a3ab9319684d0f811cf2992":"47dffc6b3b80ffef4b943bde87b9cf3c":"ec4de476cd337f564a3facb544d0ff31cd89af4c3d9a28543e45156189f8eff8f804494dda83a1fb2c30ce858884a01ec63db59268452b1eea0f0d48280bb7340eaacc84509469dd94d303774d053d7ab4fb5f6c26581efeb19165f8cb09d58ec314d09ab8356731e87fd081f661e7b2d1a7c3aa4af5448a12b742e7b210b0b0":"6b95b9e82a695fb7b466ce3adb536f525d8314f95eada39efb49baf121093ce7d5439f0d8223e03530b85accd388a70650ca9f7e63eb32afecb7b1916ed9b762128cc641caf3e08e027c3d88481d653b6b15172e977dfb9b3f88465911aee162501cbf8501ce2b66ee151bbfdc23225f638f18750c239d62471663e5ee2a5856":"6cf68a374bea08a977ec8a04b92e8b":"":"5c2f7c408167be3d266ff634e1993fe291aef7efae245fa0b6b5bde886a810c866ae6a078286684d1b66116e636e285f03646e09f3c4ed7b184e7c171ba84f3bfd9500c6f35964a404892b4cdcdd3f697fc5b01934a86019810987a9fea7efca016049873f1072f62df3c17f57ea1d88ccd8757f7e3c5d96e8a18d5366a39ea9":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c9fbbff8f25f951ba874dfc5ff38584e":"1c1fc752673be6d4ff4cc749fc11e0fe":"abfde0b60acfe265b62ed68ebebc1f5f725f155c4b8a8aeec8d704701c51ff7817060c1b0ce6b80d6efc9836c9ea2bc022ec67db4cd34e945e3a1b153fd2e0f7ac84bb4b07e04cbb529ee24014b16067f9f082b940c9d5e54024d3e5e910310457478560721587da7b5343d89eec5a8fce389c01185db15e7faa9a3fa32e8ab9":"ca401071396da00376add467490abc6e6a7d8a85852026979f7013a09cf689113c8d833560cd6c5b8fdaa8fdd818e773ac13954839a0a2c91efeaf4e0e14de43308419a8b86fa2ae600a88a6bd39dfaabc16a3c7c1b77a5c2aab7f7caceb2f8595324125efbb7c96ba16c47d0bd10568b24bf445d72d683268466e68e46df500":"ff0b2c384e03b50e7e829c7a9f95aa":"":"239637fac6e180e71b2c9fa63ce8805f453d81499623ec2deba9b033350250662897867bffaf0c314244baf9e1fe3e1bb7c626d616bfbf3e0ac09a32aaf718b432337c9dc57c2d6fc4a0a09bdc05b9184d1b90c7193b7869f91e2caa8b3b35c10c6621ffae4c609bdf4e4e3f06e930541c381451ef58f4f30a559d2b79b0e6b6":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3a314ec178da96311e42334a616fb38b":"d7ea27c819e3eb2666611bb1c7fc068d":"db8dcc31a5681f13d56abd51bd2dcb0d2b171628186e215a68bf16167b4acd00c3441973c3fa62fa2698ee5c6749fc20e542364d63c40756d8bcff780269e5201bafdced3cdc97931d8203873431882c84522c151b775285d0a3c5d7667254c74724ff0ea9d417aa6c62835865dfded34edd331c0c235a089427672c5a9211c9":"518b3f5384ab54f80497d55be7a5d6902bc7718386212c2ec7537db331514b3838f104bf9054e03039a4cfb73f41e5d0a9648e569ed738cea8d33917430dff6afa8f07a75e324b9262fa196a4439dcd66b0535ee5bea0d292600227c2a79ed03be0671740e5cb7b306d855612bd3abcbf02cf7e7cecbb6cdbb33d57b4e3234a2":"1e774647b1ca406e0ed7141a8e1e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"e818372a63b7e2c23b524e29ba752bdb":"36e617e787cb25e154f73af1da68cb06":"71801d69796c2ce36b043c157aec9fd2e06fd1ec596126d10c26b6d44e3dc36c4fa30a030d65c382b6ddfd958e71fe9c16732e595137a3d6764c15480fc3358e9a113ba492b31274663f5842df5d1cc6bad70e83b34675a4411e2e70755aede0ff5035601be130562e27a20283d6f144ff1bdb5276dec05fad80d51b28d50688":"c1bf1b702a95ceaa6b48a1cdd888ae51f58a9fc3232bd6c784529a83301c6d0cdda6e605ad9a2563f54a8d59f624ae7c589e48b85041a010dcb6fb8739d43e79a456fc0e8574af086df78680460c3cdc4e00dc3b9d4e76b0de26e9aec546705249fa7e7466c01001c2667eaf2813be1f0f116916f34843a06b201d653aa1b27e":"3744262bc76f283964c1c15dc069":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"9a04f16882ff45816739d1b6697ce8b7":"66f504d9a9128ad7fb7f1430d37c4784":"f641c53c83c4fb1ff8044bfa97cdf63fe75d8159d65b3e5ad585b89c083a53cf4a2f7a58eaeaf45fa71f2c07bc5725a6b03307d7f32884a133a4c803700bf1e12564b98b71f63b434ddf13ad2c467dda25ffa6effcafa72452b20c34cfae71e47096f8745b487e9f1945f5bec83f7ec2709a13b504d92315b1b727a78902be84":"6a4f3dbb3371f64258fd1f831349e745a4e19a33aad794b1de3788729618beed619586092120e9e5dc3ac6e0d52f991f7be61afbfaa4399ac716ad79a2734827254b1627791dc92a128a6f43426b8085dee94242e83176a3d762658f18ecc1e37e3e1531648c9caed212ea2cf3b3843cb92cb07730f30fe2dca3925470fadd06":"fbb37084396394fecd9581741f3c":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"38cf029a4b20607030586cd2d82146e6":"6330084319e2bf32cd5240f4826944bc":"80746cfb0127c592f8164d751b0e14a5b379056a884cece7ee4e9b80538d7ff6be56a3b19c135786722aaf315123b47672b0251e87ea45f0fd3601cf93f9efa6cbd9ad537f54d57f1e187f821faac24096ecec19d137c9f4cf145c278af4cd8de01c7758784fda06f1cc62d92ae1977786f3d0645714ab4ab6f48c8794b12f73":"f4c9f4476561c9ebdac71b282ae6e2f9f03547da98e66d4d857720db2fcc9ed1f363858db34c9dcaca0109d7c81db24150493115f2bb6985efa8686e3d2ab719d33b230aa4c5c70696bf42f225fb3c6704711c054a882d89b320884a78cb59cd2100496edf4010487597fb9135d8ca79693a43843e9626fd6c64a8722b3a27dc":"7b021de5cda915ba58f90ceef4":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"cf4d81fc5997c744a572bed71f4ae609":"bc4e20c56931c967ce8e3b8f5f1c392f":"b6b8294abf7da5703f864721f7904d3821f5568bf4b269e44edef4f1c95ddc172d83a06c0ad9f7f1fd2e292c17a876392bc5bb705d370b2f16ff721bef7648f423346fd3a4d762676e6fcf2d690553a47224af29afed0f452d263be90eb8150a13d720f1db6f1abc1c2ec18cfbf93b8ed3c5aa7cfc1dcb514d69f90409687a4d":"f3d65d70326e641fbe7fd945fe9cf66c74f17d0d1020ae8ac488f39b7285c99d8632bc2201960f3d77daccfecc04428abe0853aa8d82b90a93127c72b2d2af53f7f1bd0afb99d50f0b3b24e934ec98eddb278b2c65866442cebf10208c7ce1b7ecf764858480b2a269b106fa6d2428d5ad17612e53e62ccc7ad1184663aeb9a7":"0a86142a0af81c8df64ba689f4":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d88ad40b42ead744f1b7a36685658be1":"52c3158f5bd65a0a7ce1c5b57b9b295e":"dde2663335c40e5550ae192b843fa9fb4ef357b5c09d9f39dafda3296a4d14031817ee4dc1a201d677597d81e37050cd3dc86c25adbd551e947a080b6c47ec7be8a927ef7920bd1bb81f2c59801a2b9d745d33344cbe4838bcf2eb8dce53ab82c75c9bbab8e406597f6908aaa81fbbdef25aa69116c8f7a8cdc9958435aa32ac":"e99d2566fe6bcb2a04d167605db7c0f1e5567ff2d8d3292c15bbccc5d1e872bcb15a30b3bb8b1eb45e02fba15946e6bca310583a6740845a0f74f4ebfd5c59ced46875823e369e0447cc3e5d03dae530adf3c9846362c94e7f9d17207bf92d4d59981d8fd904eb8b96a0a23eb0f8d7e7a87e8e8892a2451524da6841ce575c27":"7643b3534eb5cb38331ed2e572":"":"6f87f6be2f4e7421aa26fe321045d1e23066a02158634bef35890581c92367d0bc232940de30974c70a66c60137a9f3924d12db1e5bc1b0e7131ea3620a25eb805b7d670263b82c8bbfcd6839305025390fc17d42d82daebe1b24f73ff9aa4617e3866785dded88f8b55ef89b2798ea2641a592a46428d9020f9bf853c194576":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c3ce86a212a30e724b4c624057db4e79":"9e03f0dd4cb2b3d830a6925e4400ed89":"92c48a39d93ea3308f55f6650d33fdf17a902076d582a94a82ac99496de9f62312292b844bbca5a683ef0f0710bbc1c7f89cbcca8f9c0299f154590d32059bd99fca5d78c450ede0d11d55075947caf2151218ce7a06c1e81985a7781a3444054170b457fd7ba816026310112abb47c8eddfd3ab7f679a0f60efc6c6dd3b759e":"3582ef7a9565c9a8e4496750ee5ca3e3a80df6238f7b7608e3394ec56d1360777921da039ede34abcedd01081babd496ba4de74a7de501181d6bb2022a6cc7f79d89a4c6a97676fb0f2b42f70e2d0bc1eaac364c3646df4f611c1d6b09737451b81b5a4da73c05fb58391c74e44498b80b26f1c29562d23c39b5d3f086b280cb":"3230fe94b6ccd63e605f87d0":"":"052347a4273cddba65b2a0b961477f07edee440a9117ab204359d2dd45ad2a6dad3b60ead891e7da6d79f3017ac90f95725a0089f04d25ce537bf53b7ea8e1ea58692d34c221db141e2a9fd7211adcee03ef8b5bf3c5d36311d20bb3d81f70f7e7272d0e2b6d12293b1a2c31b70f140a8f08d98c6231a3c429c3d0a10b2e1c1c":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"a0155360b84420b5bf4fb410ea02f31e":"46f0386be7363887e7e357376305eab5":"611bc290f91798ad84f0a5ecb5a7cb8fa35e9ab6a5a51c9869a68a076e96f92c9c117595f92cbac5d33343fa2accd2541473907cbc54792c5e215ae857424c921b04ca4b81376bbedbfcc0e565c118f2aced08f247698eed5e2d202c48245161cabeac9fa195219f9799fa253e339561e13012167f1d02b4012b7791b7c863ba":"ecdb51522fc440f7471ea6a31f7c1ef1ec2153e5bcf6303297dbf8ddb3830b45ed9866157375ce4bdeb5e32fcbc6607984fccd7e6552628736608ab13072856d432ceccd3e90d1bb52ca9ada9cee90eb89ac10e887a1978fd0fb3d7bb20caaf35539e150be8044b725b8427c4c4a910f79980865d36344a8784bcc3d58460acb":"ac5addcc10cae6c1345520f1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"694f621f594d96b16c32254ff06f3f9c":"542db4e107485a3cd24c7ad337a4f1b5":"27b7bfa5eb34ba376e515e58ab8b6556c396820d0074a1fe3b984945dcf5251ca450456ccb4bb66ec739b03fdc5f72d24553e843255adc012d1f1c95aa3cdac5d12926465354217203052cbd4869a8b5be2e01d0fe66b5a6a8da0a2ce351557e2991ce77baa812b9c67b8e1c5a1fc348710e1a73a0fd49acfd538b7db6bef8b3":"e61476b8b7f101ca6005f25af2b9bee795d62720bbbf59357057ca7cd473e00f0d465255fce8d6164657603323549fb4e3d33fa51054b1a70cc7e492916dea85453e9107fe781bfeb4a622c5b2306a8dddef99386dc50745003aa7220cd7f32fb0a060fa7682576769a48f9169c7d11fe0a8a61b95f5d6dfcf216f7d0c652a84":"0bdef4d771a1740381e7db97":"":"8b27a338fd2153d304f04655e09bd9bdf4468890ecce1e3b51de2c9a25a8d9336a9acd753ce270b1fe8d50196feac68145e0fd59c9cb3aa7c1e8af03494bc4279c6e287c849f3c775ada584ae173100946ae6921ef7c96bbc6f216093548702cf1867bb1bf1f4c9e90a34230a2b2aeb584622dd615023a43a406e64428bd9170":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"78826a5215a1d5e1b39cad5a06861f8f":"feb9d740fd1e221e328b5ef5ed19eff5":"ca9411b368d8295210d7a04da05a351d287f2f67d978ef1bb936de9f8065473f6fa11495da2eab13a1002231c86411d5409bbc718e2042ee99e013b1df1ef786e9fc1f2d43293c854128184efb9317c4ef82a002eac8b28fcd91d8a714a3aa25fc3c0ae4af9f4bcf5ad19a30cd8ec4b1785df70aa92074da419abe433dd4c435":"0fe2c798d7015d3e2f8725648d95729c45d357dc0c89fc63b9df5a68d3e65419540f663e9190793a29c58c495d5c6a731782acf119e2df8a96fb180ad772c301d098dbc5e3560ac45b6631a01cef7eed6db51f223775d601d2e11b9baa55e2f0651344777e5a03f6738a2013626a891b5f134f07b16598b8cbe3aeaefa1c2a26":"a724bbb295a02883":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d450f5253251121606e56687952bf2f1":"fe7ff90b020fc77d7fcd90bc583850ac":"a3bca9ff25a60006eb18f993dcdc99681e414e27605264dfd25652195d7fe1489550afd07fc7346b88d93b59eb6642913646e93bf50ee1db5dd30106cf181124d8ad01c72ed99038c9798620abdf5c78c419b08c97f982b34d9e9105d9aa4538afcd37f62e2412f14f7a248fcd60abaf2b66cd4554767f99030f1a495d56a5ae":"479b4f421bd8ac7f615c4a507da187cb5d4b1f1e2c6113d1f9678c1ba92dc5e17c5b525d7f3208733223eb82af0820b8476e9b08ca714ce044417b24d2238720cb8ffdc69db558cbaff52e3651b400e16c9d5ac8ed8949a19c35516f80394a04bd1cfdced7b204f779d792086e00b2ebca2f55a1140e85f5ee9ac7cfc5a31747":"6446398aff73ed23":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"90a59f6b0abf932311f0b65623c17740":"20778bea82a6717038e7064f48a31981":"4022d04f1454a72d2efe57533bd32757595220b20f3a37d166cec0412fb1eb2588f939ecd906c805f4827338669888e9f730905001eb1b136b95e306edf70d9ba1e5cd0aa13a25a1f28ab55cff36f9cd7036c735e3b285d26002ad2ed1074b566e252ea3ec8a9ce10882375dc3f1d9676e301dcb179eaae991120b796cc35648":"be5a948a771a8df12adaf74d702f064a75f6483c03203365fbde7d184844fe6dee0b84cf344be05b1d163817ba1516fcb87b9167ed81f884ada73b0058e2b38cba515bbbe462f4c21f8de1d41bca2cf4340aa659f9f07886c2bb620d9c3295318c07fa3c17fe8242409359c08bcb337e5cf268880839b6a20f4ee4b3f04e7024":"dc77c1d7e0902d48":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"6be4ef629f0b38194c74f7b66418922d":"fb77a4b9b246271abfc656433f87628c":"e5d5227725a19a3050fbf2a97a6e854bc1218b94a4a3403b721ace3447daff68fff5553a26edd41219e68fb61fb9e964d0a3c29796251ae4eb942187cdc55d13a09dfb487e93d9e2072d7271456a77c6ccb81154443eea176314d6e3a08619b52cd880f1c28ae5214ac0090a3855dbd74f87389fe8afebd464330fb683dff81a":"b67ea20a320f4ec0e4185c62a4ad79a3c97a8189a5e4d1deff9d3edff0f9a9323532853c1a2a2c1e62e4d1afebfcdf1d8461921ea601750380e63b912d8b7389198f976851d88a19f1aa32c97143668ad00838d98da1c4f2be0e6e2dc964d170d7f7ad2e2997982e5ca110e744b6e10c24ca18eadff6b129b1f290c8a7e0a593":"3d8fc6fb":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c50e37244931e8debc12b3d561c83ba2":"6c0b1fd7ab424a6883c36457d1b5521f":"516dc25f6452ae169ce293c5cee440de47353ca5ba770dca0f04175950e87a2d4c3f84fbc6eeacaac436853492929680066f959e74de4b736ab924d8367b90aaa6e9492561ad4b5aa78b6737d562e960edc3b983e2e01a186e9f22896f48d8dfcfb6a42cfe2c6006c687a27772820a1e8875bdf09e8104248ce4db883376bc04":"b9abf0796f2d2f774735546cf809030f65ed0c7f6bd469ef2fe0ef32aa0225b57fbce07c36017bbc1806a81ff1a429278160a07643f864485b4e0e35d57553dc1a131e32aa10f1f91d663b10f0a418f472ed7b4bca54fd7ffdbb22c4d7764d94a7ffd04730614459431eb64335b9b65363de292c04275d40a7b968c0f5c486e9":"7d4393f0":"":"962509e494f10269b70ebad02b0cd799d1d41191a734863ef502aff3d3ba48dc2acf9da9a3fc3f40be4d210dc5e128bc00499aec57aa0a4669863165428687b88d46fad41e36af8ea6605586eaa5c0736d0d53b9d523e0cb5a0b285048e060a73cbf4b587d2cd787debdb2b4c8cda731a61a15b19fe8b561fbdd3a7373853ae1":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"8531ddb03977383405baf2ee9ca7d64b":"baf623867d6a25fd85d1f08e599c0566":"18f92cdd37dcd7f99b06838f3f68748aba367baabaebd0da9ee787d70e752fa07dea553a43b643b8d8f460175c0746675205e20a7a98acfcac864d7c4cf5ab4c41c031738c76882acda003c5af47b1c4df8894a827a317935d970d4afaee17715c9cfd1883e8c345f19d1f89e229b8edba6b4f53b86d8da1c0f159afb83b6b33":"d90c9e26509bdba9b1dea8d2b94f2b1881d22c2bd756ad23cd61944710a1c1f2807170ed47a6870ae654e44757fcb3822ef28b37946cafc07284f8a0c22ae3552954f0d87b8d8c825bd546935b494cacb4262d9e2a88f254f200ad31367d8b3715afbabea5f34214ffedb14d7c84806022aba2dc8f88a314ffbb24017d1a9b9f":"2fc9de46":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"862dd5b362cfa556ca37e73cff7f4a0e":"81530a243655a60d22d9ab40d2520447":"":"":"3b9b2af54e610ed0b3dda96961dd8783":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3452b7bc100c334292e08343f139b9d0":"8f92739a30fe4ba24079f5d42753d6ac":"":"":"0eeca69f8b95e1a902cc3ab1aaa8e2af":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"31a0cbaf21b943f8badc939e94eac7eb":"d5bb2c4eaec47088230972ae34fcda9c":"":"":"580e728512c8e44fbb3fe2c498e05323":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"9e8fca537746e7cbff97f1dcd40a3392":"43e9f2bf186b2af8cc022e7c7412d641":"":"":"4465a3f9d9751789bcef5c7c58cbc5":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"35b5854ca83792ad691dbda1a66790fb":"cff61cf9b32ea30cf7e3692aa6e74bed":"":"":"726793199df533dd9055b0ac7c939d":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"07259267c1c6a015437a5d8cfa92f9e6":"18b9cf2ad7ace6ec1c8366b72878cf20":"":"":"4340f6263f0ba2d82c2eb79cb0cc7e":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"fa1df8955aa3ef191900b06e7c1b7d46":"6928c138c98a4350c318fbdccd3f44ba":"":"":"7c89d9e77515d271b6ed54c9c4e3":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c04200ce41ce77d772babb206315ec7d":"a885d58f0f38f9ff26d906fa1bfb12f4":"":"":"9ee0d025421f2bf18caf563953fb":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"650df049461be341c3099bd1613dcead":"8a4ff6327b49d297248ce2d5bd38afa8":"":"":"13f067ef0d7b448d56e70d282fed":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"ee61b5bf5060fcc637dc833926898508":"b2dcf21f9ffa4a883044d29f087f9b85":"":"":"9ab1d66666d4dea3cbb5982238":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"01cc56ca7e64db7fbef66236a5c49493":"8ea5b63004189792cc040ef18b37e550":"":"":"d685aeb54aa129a21bed17766e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"134dd72ac8e28ab46720c2f42284a303":"c6368e4c0ba0ec90fa7488af9997a4c7":"":"":"4ad9cdf19ff7d7fd7e273efced":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"180c04b2bde6901edcda66085f73ecd9":"9193b206beade4cb036f01a9db187cb8":"":"":"530f5e9ed0879ccef3a7b360":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"aaac85742a55ffa07e98106d6d6b1004":"630cd8ab849253c4da95ac80324ecc28":"":"":"37911820c810e3700c3a9321":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"ab663c4f8f2fdc7d5eabf6ef26169b4e":"86e6100669929e329a1d258cd3552dc9":"":"":"958d6141f7fb2b2dc7d851a6":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"0dd756d49fd25380c4026ea03cafc2da":"6a6f7e39b0d730ea1670e13d16c12c28":"":"":"872ef05a28da5ea1":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"bd8a834b288bdc7578b6c6ab36f5d068":"aa77de0af5fa4dd1ed2ada5cb94813a0":"":"":"c5c094e83755f2b6":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"020d280dbd06939bbb5e6edc6f6d39c6":"09aea6f0e57598452719d6f63b6fe5a0":"":"":"05d6c56ba601e85b":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"e47f41a27a2722df293c1431badc0f90":"227c036fca03171a890806b9fa0c250d":"":"":"86c22189":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"9d3e112114b94e26e93d3855d4be26bd":"99b98525160c4bb2029da5553ff82b59":"":"":"33bee715":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"5b4b7688588125349fbb66004a30d5d4":"b4ae363edb529d8b927c051cf21a2d9d":"":"":"6a920617":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c4b6c5b8e21c32f36b0ae4ef3b75d5cd":"3d1036bf0000e6f1b77a799f2ef32dec":"1cf2b6cbe86a87b4b5bb3cc50024aeb27c48143658d47b41f2f20b87ed67bd6fc3b85a3a803f66d3576608f5d6ce6cad11e02fe12de5390722dccb8242e1dd140051bef51aa9716c860d45d45bca6effbb1a4797e6e7406a04db5d823766c0f011ebc28e9a8cd4446ec8a75ea8bdc1b2fdbb5cc364fa9877886e30404593df34":"":"a49725014c214ef7cc2d28b9b2b53da7":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"63c3f81500746eaf383fe3975d84f849":"0799d4152fd73c1604b4610cf7171fe1":"cb8248e5f904cc9ccccf6f273fe621eee1b4d7ed98480f9e806a48b84e2d6a733772ecf8fb7fe91805715cddab2b462b89f6e6c7cf873f65031f13c357d5f57b00b7c391c39e78ad1ed94be236ca0ae316bce11bc33c5d701fdfc58abbe918b9c42f7b3d6e89d46f9784b388a6e6daf47730b9fa665d755a17e89932fa669c44":"":"c53d01e53ee4a6ea106ea4a66538265e":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"b0c88b191ce6e8e4a3941f7960b7eae5":"e2a899961c332c815685c553351fa519":"308bf10570af48d632911f3641dea60d78046211c01a63bb8e4e5cbddfff8841d2f2b11e18ccb2170805ef4cacf7804d64e0feef40731a1704907f33b77788c18ccf35b224ec3046a67664ac9a3481d2385b6ddeec6da4f32423f94ea9663a5c51cc388cef33744a8159b4fb654dfdb5092718bf926c824be31197f07f276b5f":"":"92604d37407aff33f8b677326cbb94fc":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c818dfa0885a09f65ef78712f5ce6609":"ca279284723530fdd68ae880e0ce775c":"2a562abdbb483ca5f355f9cc1c5e607bdd624a078a76b717ce0f8f35d0d4c54b629f372f15d20c848d01420c6af5a7040d42063704a17b46259dcc53723caf2d4bf556143ff9117c752fa4f22c9c155c99b7bf5949d089cdafd562165b9cbf53ff51cec21f49128c8a599718bbcdb4a5d705d20509c44c8945e2a133164b9942":"":"20e9a3a98d71d460743e1efaab13c6":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"2354c6b6afaa883e7ce91faca4981f8b":"604f2730c756c8c39a0527093bc2feb5":"959b4b0b9ce2e9120b327d2d090117553999ee10bdd384a546fc6de0957ef4b447daf07b3d07ef7dbc811f36b0fc09a175d26e4d1263cb5e21eda5ecab85d763807bb20b3cb6ac3f31d548dff00aae058d434ebcf6f7e3a37f11324134f453dd0ea7f51094863486426ff1706129a5a93c53d8c5ccb56cafa5881981fe233cb0":"":"3588c9aa769897dfa328549fbbd10a":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"b0af48e6aebbb6ff5b7c92bd140b085f":"d210d6502a5221ac1274a9c7f5a81725":"d725311ca10eb4b4aa24e6dd19c5e72dc34fc1ff53feb25d924a9b7d8d72205790ca4b1275bd93ad60c27a5587a45659bca07c111e9748fb683a03465153ffd735b7d134b479674ab8596f0596496fe2090f623fd1e4dd730c5283d8b172db8a25df42d9b34f388ed32676a56b8ba03347e47379702654508ccd0a21ff03516e":"":"e6222f068a1e18f09ba6c771eabd86":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"a05fe482fe164b2eca7f6c3e377b39d8":"145327bcc10335fccb93afbf4b17e6e7":"ea6f2e93b5e1bf127d40440b8d6397405246b1b48eebe16964f18928f6b4b8ee2c36322d7126905c1a5b816996e340404b586edc2d77afac11a6c1266511f9eff1a320b035442d4078f8e42ca63cf26d12a971a7adf4645d1bd9a8e4d0a20722f7c2d529beaecc4033f7738075e1cdc6d8a929da5582540678935b82e7b7ba68":"":"3900bde9fa9ae2cbeee54d04f224":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"dacbadf819eb16a63f6f091d13ed04d4":"b9ebce724b0dcb0989ac2d8e7ff8aaec":"7dc6e2189d8a96f3507e352e05e8fd1b4bab988c2f1c706115887119f63b78084f015d85f6b460901a02880103e4d36e8f6527dfd74e4a3acd3f578c0cc726b528875f701ff8b66e5c11b4689c346a098e123bebfa253362cb86829be73c2b85a6881fa976aa730fabb76775027feec7fd920a6c8965a4a509ea812d7c413a95":"":"8988fca83c8cfb1f8feefac46f04":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"969244c7444f3f3bf193b28f8e8e96dc":"49b2845a1a1c87fa66eb8f78c05ac029":"1414a07e86d8b61d1eff43e1ff4ab42c1c95e159058b74c731e3007d21a5eb78bc17b7e920363a3974aeb8608813dc9a4655199b6703ed337450702d8ab16a89776831b2c7c811fec3acc23598a0aa01680a7bf42a4e258145beb08c9f0eacf2bb5f56d26bea3ad11e1a956a630b80f3d22bf35592b4704f7c464b08b06dd7f8":"":"a291c7527385f037f62e60fd8a96":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"525abe490c8434802b69439c590a5290":"141f79f0501316e66451c41c7af0f0cd":"be440db66d3f81be467605a7b2805ec1df5e71e1b1b04bd7a4d05e912f5aa1912ba08de72df18613b32b7edf78963c48c80c25178b3b19262b85bb829f5377e0b368b500d6d3b442f54172d4ca4500eb5b4d478b602e5dc11d090539455087ce1e5b9ea74355fc06e9b60cbf25a9804d3f8c623fff130abc48bc2d8d116b8366":"":"038c7e95f790e6ca5ce73f9551":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"51644e025659de983f5c8156516b812e":"614837c743d0974e9cca497f13038c02":"60c5d062ade2c5c2dec68b734dd3e58ec474a586d1c4797fdfa2337800510134cb27a10d501927632af3c1febc275010c0d2e5abee630cd2bc792963fa82a42286ab047b934a261927311b40f5f953bfd661427921147cac7613d95ee86e16326ef67c1ed097e8fb87a78753d785de34e03a182232786079cb6be00182e41c9e":"":"77e3deba2c7f9386f85bc4a801":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"08566ca7310302dfb84d76ea0525ba20":"5f20ec9c35c08aa7f1c0e8a20fdbd2b3":"5d84e32768b8d1e7e3c426b3118d48e35491bf1bb454b359c8429220216efd8826be94fe1919409a128ccd8125a594f1691c9421fc3dbbb3f757bf2355bb0d074ceec165eb70e26eb53fa2cb5d84dfae06babb557805ef7b8c61c1bc76137571bcc5e84bf5987dc49013831d78bd497ccc49cde7dca2cb75e7ab967da8c6ce81":"":"873f037fc05252a44dc76f8155":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"dfb54db96383fa911bf5b4fa1218ef9a":"7e849e24983f63f1194b396bbd2d55e0":"d3fb689c5818810dd104693f3306a10b27178444af26798a194f7c2ab31ff3a172904b951942b1a26c8ae5b5b1ee2d86dc78bb72a335fde350766d7d9aef6f549871dd46b04b2cc319fcdd47be437d431ad18cab82d51ca9fa57f4108a8de622a92f87d28c0349fab27757fd773413f559a8c00d30e258c1f6cd96f9759bd957":"":"dada7fc7fed58db462854ef6":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"389cf888474e9403e5f4d0e22ffec439":"ef57794cf6fac9f9cea3e8499b53b1d6":"7ea7f7f4763ad208eb6199285b6b2819756c4e3caf2d0ac6f5076ae6785fecdcc4b138a51860ff8b87aaac3a18c2df778a4818308d458dba28f5017513e1454f60be20dae68736ea6d48b1f9deadb517df63140acbd329fbfbc9b82f3ca1862c9e998f0faff1d3ae60b005bf66829f5cf0c5fa03efbdd92d39351e3954be0257":"":"92726d90ad26130e65f2beb4":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"e55abb2ca36c822bf2a030ac703cb8b4":"d86f7177e8ec90f9e9edf10175d5012d":"777a9d93091de56324c10712243f5541722e0b27e1f303fef6faa387a8666161ab354dbea6c43c82a24e8623bfec39aab13164add6be0dfd55d23204c0975b4ba6fbda51363befde482a9ccc1eb9f151e6ad59c77a1e24dd268389e4686f198a936dd603044a3fb653d63cff80597f5a2913c8a2ec1b7d9dce5728dd56c78c2c":"":"65025250343ed8c09b3fceed":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"586114f3b1dc087e1b2739b28c592dfe":"ae5a38ddd455505284434a4bcfe81ef2":"531ff8c285e532d961f49bd210a5523cd9b19a697a3a3fb26db940a496f253862405b1e825daeda7eb0445c98022b8342c8f8ea20301618483f8ab04b6ebccd7e7fc57878fb544a5bf78fa896f50ac30126ff8afca8a86388666b64c643d16812729bfd7e5c03ba52f7e6ea4c6a685404f7bcbd956964417fa0ea9a6d7290c41":"":"467a815610faeb82":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"cbfe806bddb7f06b3826b097550c68f5":"04c1b6c9fd2ab76fc2adfe15d3421bbb":"cfa86d02599652cb4ffff027b9c6ef2336dc9fe946f64fa5ce83f624e144563d4738381bc5371c3cb55cf41ceda07e62cb635ff37246bfa428785229c6e869d5df69d7949a8577889a29e3d05b788ddd43608d9c14e3f1b51ce2085b9a976fe843e3396a74922babe6797d5f01c37ead623b5b582505bcd29edf8a6ea36b0fc7":"":"0697ac372a9acafd":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"96ce3a095a91effdd91d616f1f02ddcd":"579d6633ec6687afa24ef874899b58e0":"3ff3c0038148ed391b6a10aad623a82fe9209c5ba74482f11506d597b5fc7af977235d8ee9e28cf2160346ddd0e33a5bd1fb67b87dad7167fdd4b2b4000d8460ef7b3e1b59b9d61d06cfbe7945379ed6b650de86f396a38cc70d47b8a349f067d00144c903c276b323be6a929a7d7dd8ae7d254d640cdc1176f98e01a1d8c82f":"":"55a0f61032e048f3":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"24ece168c2971cf2b404ea206dc9e29d":"e9db62a42491664a6c46cbb0b2bafc92":"3579f6c0cb3d2a5d0c4548855c7c052d36b6a8dfc60f4ca1b4bbe28ed87306119e71982dd84c4205ceba918d675472753df1b5192d3693dbf6a061c6056e312135ffc5ff426895a7e30f7f675d2cb21de06eea5e3761b94deef7537b985d324864c9ff6ab6e230a1006720f98c958912b604a6d03e3979887c07be3ceaafc78f":"":"d2b15a23":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d3c3cf993f6740a019e61ce13c29955c":"af900ac348082ff32d2e0ab886079516":"2ddd0e8c99661f0757f04aa79a1ffa24ad48fbe5da68b9e71f7a0cf1b4f2ca9b757695900b7549d48847ae49950dc9b270b1569d29dcbef412216737bd83509c17ae41c34ccda318939cb37a0a380762993a7568c0b07794e78746173dd5c0d921cd50de4b548c1589e142c3dadbad42161aaeda2310f3c6d5c722d9ac69e96d":"":"f2d3a6ff":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"5f1e5bd45ee8bb207ebbd730510ff218":"8846424a194f5de858556e6be5b65d7f":"e968947fc0e49136e730b97f6b16e393d5e4fdf3e4803a23af79211ef59f29167c60ead72fd489da32d2ffa43b2bca2074f9d1b4f5396ca65004b0806cb7c6dfa751fb6afbee3e443f3c9b0e3df6722e0d1320441400c5ca508afb657c2b7f1669b0de21761dccab9a40fc513768bd1f552692626ce35078a2e0e12f5d930647":"":"0d6c15da":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3997050377cfbb802cc438d973661688":"c95c84c263bdfd5f1de66e7e616cf3fb":"":"b02f0dd373e42c65e8e1db2dd76a432e0b2bf6e630c8aaf0d48af51b3709b175de9a19b3245ae75818274c771c06fae225c4f8b002236712336e805ab006449eb29cc5e29abd82b06c32d4c36ee99acb9a6d7d9eae6ec6ec263c002a22c4a898c74f6abd6d92112367ca7ffe82787c5b39e7012ba22825d3612af3d41e8008a8":"b35b3cf6ed59ccb69dbc9b47a3f284ae":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c58583f6479d9bc9f1bffddefee66e59":"cee448b48d3506ff3ecc227a87987846":"":"564a9f700cbc1f895e4f4fa6426f73b4956896a15e6127e7560d74e3fd0b980d2ee45b7a6a3884fa613d91d13921e3f90967d7132bdafcd146dd8ff7147ed1964c2bdb3e12f4133d3dbbc3bf030ff37b1d2147c493ce885068d9ba5bebae24903aaac004aa0ab73fe789e4150e75ddc2bde2700db02e6398d53e88ac652964ac":"361fc2896d7ee986ecef7cbe665bc60c":"":"9cce7db3fc087d8cb384f6b1a81f03b3fafa2e3281e9f0fcf08a8283929f32439bb0d302516f0ab65b79181fc223a42345bad6e46ff8bcb55add90207f74481227f71a6230a3e13739ef2d015f5003638234b01e58537b7cfab5a8edac19721f41d46948987d1bb1b1d9485a672647bb3b5cb246a1d753a0d107bff036ac7d95":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"0bc2bde877e881aea512068105694968":"05f0c34ab2e8e8026b0a23719344b71f":"":"1a6369a45e8ef2846c42d54f92d0d140a94f9633432782dcbf094f1444a1d006acd07ef6076cd0faee226f9ff14adc1fb23e3c63ed818c9a743efbe16624981663e5a64f03f411dcd326e0c259bcadca3b3dd7660ed985c1b77f13a3b232a5934f8b54e46f8368c6e6eb75f933196fa973e7413e4b1442b9dee5e265b44255ed":"46bab9fc2dbe87b8f6ca0ed4d73e5368":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"e14f45ba5d1eb52e0412240da5d7b5f9":"d7f8ef12f66f8b7c60aea02ef6ff688f":"":"9a85fda19ce923f093a0c25b0c52f5d9534828af7c7687d22307004ae2d10c4592242c0f2704070307ab55b137780d1e2013a19396ab43ff6a295b63fdcf323456d149758f9a2bb37f1418d62ea6368b24d5067b9c63d2968e06d6586c7e3275faffa005f7c7bfef51303e4c2b2ed4564acd17d50efac9f5e3e7f16ce589c39b":"beede05e4928c808bc660f3de95634":"":"4ad5b9ace0c0c7c07df2900faf37a902899471e7aa4a0a1ad5387f8f56d73f78f619be79a4e253f95b15d52895a05bae9ecffa916d35efacd8baf1c704d2aa4a38c234efc4dcfb191ec0fa0b522328fa5b5dff55e8c443fee660ebe3d8ad85de157a889aefc823720030a4cd6ba94a6309dd61806f0abb27772432018bc61701":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"9a64579f3601b0022d357b601cd876ab":"515efc6d036f95db7df56b1bbec0aff2":"":"88be1f4bc8c81b8a9d7abc073cb2751e209ab6b912c15dc094002f95a57a660b9f08b1b34f5947223205b579e704d70a9ecb54520ce3491e52965be643f729516f5cb018beeedc68a7d66c0d40a3f392ec7729c566ce1e9f964c4c0bd61b291ccb96e3d1fac18a401a302f3775697c71edb8ff5a8275a815eba9dd3b912e3759":"13ea92ba35fced366d1e47c97ca5c9":"":"7fc8565760c168d640f24896c69758355b17310dbc359f38b73fc7b57fe3f4b6ecad3f298be931c96a639df3c5744f7e932b32d222f5534efb8eb5d5b98d218dce3efef5c8c7ce65738bf63412d0a8ed209071218a6fa2f7be79b38d0b2f5b571ec73f1a91721bd409b1722b313683e97d53df19ded95fd471124fa5f294a4bb":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"1bda4acfd10ab635f357935bb0ab7020":"48b77c587616ffaa449533a91230b449":"":"c9ac8d4ef7d83848fdc03664957c28b9b76710797d5db1c21e713e85eb0898892223e52be1644fc7362c95026ebb9c9ca74d7d3739eff10cab1eda00c36628dae0b98d119a14635800e37cd340faa6fbba9c3d41d52722cc3969612b1a8c5ca9a68773f5ee654506cb88ea65fb1eddf5ab6312d0170dc03324e483342448b854":"8325e4394c91719691145e68e56439":"":"1287ad3719508a9be70c19e3b134a2eaa4415d736c55922e9abcfd7f621ea07ffb9b78d8a9668c74bbd548b5e6519ea12609d2d6197c8bd3da9c13c46628f218e7ff81884ff7eb34664ab00f86e09cd623bec248d8898ef054fce8f718a0e0978e8b5d037709c524114ec37809ac3fd1604e223e08f594e7aa12097f7dc1850b":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d21cf24bc5bd176b4b0fd4c8477bb70d":"208cb9dced20b18edddb91596e902124":"":"2e7108fd25c88b799263791940594ec80b26ccd53455c837b2e6cf4e27fcf9707af3f0fe311355e1b03ac3b5ee0af09fb6fb9f0311f8545d40a658119e6a87ba8ba72cc5fdb1386bc455c8fec51a7c0fec957bed4d6441180741197962d51b17c393b57553e53602f2a343a0871ea2dc4b1506663b2768ce271b89c4ed99eec6":"7edfb9daf8ca2babcc02537463e9":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3d02e2b02170986944487cba8448f998":"6336077bb83eff1c9ea715de99b372cd":"":"bc1d7553f4a28754cf59ed6f7a901901f04ce62a449db2b45ad60329d0341bb9ba421c783c28a9200b41da8ab6328d826293134a7d0c9a5775dd2735e7767efda4ad183566e0847d6d978abd1a8ab13b16b8323acef05ced3b571631e1e24ad44d65e6ffa64e03c9970e94bacb9f721aba06cda6a08806a3be63dddd8029301d":"0466bb2957281f64b59eafed3509":"":"5f395958f2f7acafb1bca6d3a6ec48b717f2ceeac1b77e1b0edc09a09e4a299d2ec722cc7daf34c8f4121a93c80b2adb20a2fc95afd09320f91085c93c8b082dd703814c9777501d23bf9b328f07f04652592dc5a3f4321626a695b8db8e65c8617c809eb2978d8c9a882ffa82a4bb707c1a8f9a965bdacce5c041bafc94a1c6":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"cd1ad1de0521d41645d13c97a18f4a20":"413873a0b063ad039da5513896233286":"":"588c2617517329f3e1e7ba6206a183dc9232e6a4fa8c8b89532d46235af1e542acaa7eae4d034f139b00449076ba2ef9a692cae422998878dabdac60993dce9880d280bec1419803ba937366e5285c4a7f31a5f232f8d3ef73efe7267b3ef82a02f97d320ebc9db6219fbdf1c7f611e8e5164e9ecf25b32f9c07dfa12aa705af":"d4dbe9cae116553b0cbe1984d176":"":"bd519b7e6921e6026784cd7b836c89bc1fa98e4013b41d2bf091ef0d602e44a70df89816c068d37f0c6377af46c8bfa73ec0d5bc0b61966f23e55a15a83cea49f37cc02213b4996f9353ee2b73a798b626e524b9c15937ecf98a4eded83fb62e6deea1de31e0a7f1d210f6d964bc3e69b269da834720fd33487874489b8932a8":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"1cb120e9cd718b5119b4a58af0644eff":"5a7087989bfe2f6eddcb56fde4d72529":"":"4c8e8fb8c87ff6b994ae71bfbf0fa4529f03bad86edf9d27cf899ea93a32972640697e00546136c1dbc7e63662200951b6479c58ae26b1bd8c3b4f507c0d945d615183196868ec4f4865d1d00bb919a00184e9663f6cb9a7a0ddfc73ee2901f7a56ef2074d554f48cef254be558fca35651be405f91c39e0367762b4715d05fa":"95d8bd12af8a5ab677309df0fb":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"315b206778c28ed0bfdd6e66088a5c39":"7ec6f47ec56dda5b52bbdaa6ad2eb6da":"":"6186f57a85b65f54efbf9974a193012b1396fc0ca887227e1865f1c915ac2af9bbd55969f7de57ce9fb87604cf11c7bc822b542f745be8a101877a810ed72bf4544d0acb91f0f9d3c30b6a18c48b82557433d0db930e03bcecc6fb53530bfd99ee89f9e154aa1a3e2a2c2a7a9e08c9aed1deab7fae8ea5a31158b50bca2f5e79":"930750c53effc7b84aa10b2276":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"e886de1c907c97e7db8ec80a79df90f8":"612cacbf33266353d0a29a24532f3c0c":"":"c64cc9596d7c738746ab800f688eec190a4c802c55b2528931d74d294496892b81f53d3073d48f9bef1d58ce3be26547474cdda2868abeab71aff566fff613b4e5bfed1be1d2fff35d8ffa33302d3da1c82e421aa3a23848f31e26d90c0cb2ac2ae136ada73404ed3e0e1d3e7cb355a11cd2a4f9393b4d5eac988104fe1cf959":"76634e58d8f3a48f15875ac1d6":"":"7001d7395efb432e2804cc65c0ba5d4719ce84177ce46292c4fd62a5596bd2bab1d5c44217ac43235bd94489c43d01618a11f047d2e247062c3b88d6e59adaa1f46514fb33b7843483920bee60a41f3cb312322c305d25251b4704fb66da58637c95a9d539731434f60ef44fe3cd6d37e2c8e7089880a563938dcc98b43f08fd":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3b936e09a6477f3bd52030a29df5001d":"f93105be83fa5e315d73acfdcf578de7":"":"65cf11d1afad19b34f282f98f140315992392f5d4eed4265085b29e1e5553f4783fec681ba2d368486ba6a54c00e71c82c08ca3d097904f021ce4b0acba2d2a7005e28e5f8750ea3d18a4f78363c37583e85104234498942c639a0564b0d80055c21cb7735dd44348298291ab602f345b1d74d624750c0177fbd5cca6f99223b":"91b55bb5e3f3f1abcf335db5":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"dc9e2095de7b1b48481b56bf6a3604cd":"9e5268db19a1b51c0496a160ca76f8f7":"":"ed61ff94a3f84c72147faefa615e2df00324fb01790cf9764c72c1b8ba47f17866a1fd64ee5c2f53865d1bc24ec93165a6774466a59603199ee476c1f2da7d932c8943d126aa172d532d8475a484d42bb45fcf92766feafd7f3e2e3d42d22f6f84a90e7e688232f799d80cd2cc152ddd21ecfb137701ecafcb2b65abe2e4e6f4":"0fa9588536fca71bb44260f7":"":"ef562e301fcf923ff1a1acd3aff9b1c963058228655fe8a66cab01396547dbd2aa1f79a22eefc62944b86d1a31ebe2d17130175b8c003d6755b0eb8b79895b0f7f8046c5ae888a067ba17bc8e11a8f6e5023a9cd42f6461966c28e505b371c0f72a2606bff430a58016e99713d25ce11f10391fb4a922e27989422c6a64f9107":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3f93901fd7cc88db3ba76a158d658c7b":"7e98de461e6d96c0ce6c8d8b3854cf49":"":"16402fded879fcbfe9405902aa63ca2a520889e0045f687455469b7bb867829a01208b8dc5dcc852d8ee478993c30e6d9ec6408773b367821310a0ae171d38d71e06981ff6e845acffbc794142b87c748e12484c0636419d79be3d798cde59e9dae0a4a4a4346596427e6b235ad52e6a1b02d6f4df0c7de35fc390cae36aef14":"86c9a70e4bab304ae46e6542":"":"1b4c09569b42c469b3ab6b39312c214502ec09f5fe2fed1d1933d13cdc6a7b77a5d135123fa69d9207d6844b0357b26b7a2f53b33a5cd218dacda87b78b09cf259e48e74076812c432e2d0833fb269721f9347c96e158500f9b2283342a35c8de0a022edce711118d72d8fbaa354bfb0ffee465844ef2d37e24ec2cea8556648":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"42289f3d3cd5838e250ef54b128e60d1":"e557389a216ad724aafdab0180e1892e":"":"3edae1d554b67d2036f5fdbdb2945cc112f100adc1b47009c2e23f6a2eaee78d1f39ce8a98f715853cc29fc793fb6981ec3036834188dea7d668185ccc8642071b15de1332f6a59c8a9b4399733eb4b3d8f224af57ba6b4a8e64494bb6630b9d28e7ec3349064350febcef6a3ad1d6cca1b1da74f3d2921c2b28a2dd399c3416":"6f78bc809f31393e":"":"25c476659cc7b343a69088baf868a811ba37daca85c4093105bf98235a90aeca015ab034da008af0982f9b2e80df804c186a9b2e97f74cffd70ebb7771d874fcaf12f6d01c44a8b0ec2898cf4493cf09a16a88a65cd77909bbf0430c9603869bd5f20d56cb51d8a3f0a032fc30d925c96599d296b1ec41c2912bda426adea4fb":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3d772eabb7f19475665ca2a7e693bcfc":"0747cbb486a013453fde1ca6abb11dbe":"":"e9fc4d86f5b857fa6057b73f967351e06f87288c40a95b9e378c84f1a4c0f4b80ed0a0b44ff90a8973be4199c0c4006fc4f5ea19d5f1fe8b9c8c01f4675ab85afab0592bb3daba36bb4fc7ed9eea867e9d8cc50c19fb62a5a57956e9efacebac5e9f849649d35a329bd68de97bb6e5ff7bef477a86765c2c9ec15e24cbba5c6e":"8e761ffaea68f967":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"fb7fd753ee6eaaf283a42a121dab4e43":"8164929fb54485377ecccc9b9621af5e":"":"fd5cecb2c0287cb8229e97d9cc4b9885f428710528884ce663ed1728cd44cb2df93e56ef17ace0678d1e341366c652f4ba7ee45797d39be4a05c1151e5cde499e13e5d45549b5d95a174d03616d06ef96e9d7b2b6bb0d79a726b253dd64223a5f09611671b234ccf9b383952f8888814b2c167e774cfbf54e9c6b99a753f4fa9":"40a2fa7f4370afb2":"":"6208d068be60f7b04b80fc611062e6caaef9a5cf59f850d174b7446c78c039ea9aefe4885e19c2b33911d32ce1fe3c48ddffa4b03e450fd35da03f40c4e7c5bb3b1c3f3049dbfad3ac81ca1b79cafbaa172f4900e3829d38edea3b64000f93924a801259bc4b2523445c64bc23bfee190b952468507fa4baf6dc2bec66fcf0d8":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"30d757fd73a0fd5fa49159ad0653296d":"b35b8df0aebd0608517f2830e0e70cd0":"":"17d485b258f80d8924e35291118cfdcffd86c47851b65f0b06a7c1f5202de82f3f460fc61b1aa38fdba7c8ded375c92cf005afe63e59d362c0960044af39241b81ca24e85c5faa43903229355b7313fee21b992ef3931d9d2407b32b3cf72dd7acbc7948395eb513cb2fd428b215ba2bd1e29c62f45d0ce231884f62480c6d8f":"954c0e99":"":"022618d2598f79104e918a09c937a82b3db59243b5e13de731fcb912e4366105797ce47f6dce7f08073f2f41e5c15fd6b1ec4b5861469a4880c3b0bd769b78c696ff29c28c9349d5a46a6e5ad9211bd4b708a8c0b6928ebbb0dac1c0a5f5ce6b05de6a50073128566a23f09cc1b826aa5803f9f750aa4debf59f24ae9f98c9b5":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d9d3cfd5900de5d5e2109e7721cfeef6":"b4b9dfb013de6f7c44779e5a9daaf5e5":"":"e4243cc37cc32dfcedf9bb76890e706af6ab1e06b290b8ccfe2a55e5dabe68cb390f7636dc9676b431d4dc8ad3f6d989e510194294ab7ab0556789046743cf374d8b6462f5f95a17f3f44337d6c69ee47b0e1ad7e5ce6f9b224c54099a104e70d2d06af869b921ea47febe08f90c591ed49c1f12003afceabd2c7bba458a0111":"2b81e8ce":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"68dc138f19354d73eaa1cf0e79231d74":"e7147749560f491420a2d893c075bb76":"":"ce345567a76bc30d8b4fd2239788221cfa75e1a310aeeeb8c355f8eea57d80967f3047fbd4e6173fac5caeb22151fa607065953c4c35e0537b9e3788cc80de9eedf2a340698bde99a6a1bdc81265319da3e52f7a53883b7f21749237fcfd3cd4f149bb2be7a4ddd9ef0544cfe0789040d1dc951b6447304942f03ab0beae8866":"70a83f6f":"":"64b021612c78b3e192e8349d48b77d02927e7fd70c7160d37cb8ef472f6bcd9df9d93431627c1c80875e208724ae05f94fdd2e005e9707b78a1bf3bbca7beec4b03ddd4d9de6235ffd6d84a8b9a1842e104c1e22df4566f6c4d3d4e3d96a56b9b8a5cdce9da70aa236109b289266036f285564060b204dfd7ac915eea0dd0b1e":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"7362c86344e0aefb0cf0d04768f9c05d":"7e8d12c2f0dcf4f792247134234ac94b":"86d2b5debc3b10495da353d6821f6cad380776d805bd8660b08dcdb1acd87026e4f344b547a4db47b5f44cded314bec4ce9a417ce40a2acd5a21460c42dfcd27483abf3f38dd8cc5fa523b6768a26513df5896435baa97781cff1966e2e3d6ec6d0a9cdc013de5a50e4d46831667055bad04f784024a82f9cd087ae4cd37dd64":"8baffc7836004deb87c0111d47c182512bf861874021ddfcd559acf2c4a51cf5bc4bfdee2d039b9c005b6af95a2607643dcf4d9cd9d62412f709334556db22fc91d7b40438505d6806ccb2f2c21ae731bc1f1c825d28a71ab27095a39985e96ccd07cfb2e75243ccafd474494a2338c324ef533ca5f17d2ac1b1883140342ced":"9594da428fd8c1b13ecb23afa2c1af2e":"":"e2c424f42aedd56f0e17a39d43ad19c8e2731efc7a25f077aef51d55280b10e667e338bd981b82a975ef62bf53bc52496b6995d33c90c7ae14767c126826e3f32bd23f444ddcfd7a0dd323b0ae2c22defad04ce63892b45c176bd0b86f5fa057a3dc371359744cb80bbfb4a195755136a0ea90b4044a45bc1b069f3cb3695c04":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"58748bb204ccb7bdafdbf739b6c19a3e":"93ac298c73c88e127a4d9dd81bf24e3d":"8f168fc4d1da13bdbefae3f9d6ac1d8cb19fcec1f43f727951af0a466d8826649a46c3cb50c045ea83849fce0eedbc042a1a435e6d9d59017997a2d5459b940078b8a7f3b6b0ff279ff8c560248296a17240ff1b0643d1f436b6e3f2079363fc49fb45f410debbdde083b92057916368cb807d603cb82e2c0dc01658bff7f1ab":"b72902c9ebb72a86be539b19a52fd9af00aa4de081d90c0d8ad580ebb5900177a036f40a1e9b43e3a07d715466526d6d7544e5a5551805b62463f956cd519fc99182c2d54bd62fc7ffc6e5ebf1503859b706da11a1b6c707a67a70789dbfc10ef726bd360f9f2347326e068e757c8443ddc9308a171e682359ae1bfe87194ab5":"efba4589d4a03555766bbc3b421dd60f":"":"d5c97a659f016904ff76286f810e8e92da6f8db2c63d8a42e617760780637e32105503440cdf04d1fe67813312f1479fda8d746c8b0b080591eba83850382f600e9d8680516c6579669f0b3d0a30323510f9de1c92512790b8347751994d022156cae64da0808a649d163a0e99e869fdf224b7c1a6a8fbc613d5917eca8ee08c":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"6cc13cbd62428bb8658dd3954fe9181f":"86740da7ce4efbed70af55e1d6c10fdf":"be561ac15e3cfda624b422af97c26719c140bb50e4a993d636efe9c7f1963fb9047a0762169b571a698ff310bc417e34d4039b7562a95af710ccc1b197964a376c986fd2ed8ac4b0c7b4e843c37a41366f2f483c821a1823f317416c7e4f32eed9b9dc2ae1a2f3ed32c4b3187358a2329aa42191b7c2fe87b6e27ff20303cb29":"2c9ec982d1cfb644ddbc53c0759b10493206d5186affc6882fbb2ba3aa430f9bae1209db2d78dcc125f3c909a54dd84fdff96c71e678216a58390ef4308bdd90f94f7109c4edefa76a74fda64b201b7a435bbabc27298f3eaa4c2d1393bd584f811fff52638f6ad2f6d86a8c3c9c030d9d4264c8c079592a36178d25991cff09":"76b990a1e010e5f088f6ae90bec40b32":"":"0b9a5f5d2e6852b75b9cf26c1b310b2200e56dafcf3c941478862cdf9737ac8e2cb9b38d41bd4a1872ea1b4cfd51a1a0b9b743aca439eefa10de8459a0a7a221c5429b3dee393f17031ca6c399df8e05657c3db55be9c9dd29e690042a4ed8db732efce7c58d6b20a2a0f7c79e42e5ada43b87ab00f481c20cac1b35514dcdc9":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"286d3f5080cfe88538571188fbeb2dd5":"da6140bd4dc6456ddab19069e86efb35":"5d350a04562a605e9082ebd8faec6c27e561425849e7f0f05f5049859c2c1bd2c4682ebf9773fab6177d2601fd5a086cefc3adef5a2f8f6b5dc9e649e98dd0a3d1a2524419f01305bd0fcfff52d84a20d1b14dea2138dcc54eea2bf263c6fe27c3e7255f1f359d0d00fb1b350d7a04965af30027632520197e85eb41de6bb286":"55135928997711360622eda1820c815aa22115204b1e9bb567e231ac6ea2594b4d652627b6816bdc6c40a4411fd6b12fab9a1f169d81c476dbf77151bff13f98ca0d1dc0a68ea681652be089fadbc66c604284eebfc8ce4cf10f4ca6bda0e0f6634023db6e3f0f1de626c3249a28a642ecc9ec5ff401e941fa8a3c691566c0ae":"d90d34094d740214dd3de685010ce3":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"726ae113a096769b657f973ea6d2d5dd":"2f9900226c97585d200dd20a279c154a":"761663c3fcbf1db12bc25546b2425b8229b3153e75f79fa63958819caee3febff74603d99264b5a82ef5980439bef89301ae3206a1d01a3bbd7a6c99d27d1e934cc725daeb483f826c2c9d788fd1f67a627864cf8b5f94df777bb59ef90cb6781a2000e6f0baa4f1ea4754b47bb7cbd2699f83634e4d8ab16b325b2c49f13499":"90636012ba8c51d16f8f6df3d3bcabc3f09aeffbe2a762f62e677913188045b861b2e7d9a7bd93dcee46e9e4832e497a6f79db52b4e45c8dab20fa568ff9c4ace55be3216f514a3284768a25d86b1c7da5377622f3e90ed4c7bd4571715af4d0a2ab5181d0475f699202e4406bb9cfdbd4fa7f22d0dd744d36b3223134658496":"d095bfb8990d4fd64752ee24f3de1e":"":"9f7759c6d24fd9aa0df02a7c0cc5f17e61622c63195f85dfafa5d820d3ad218c7288ec017821100f1fade10f9bb447a4a01e3698b045548c7619a08f2304e2818a9bf55e70b40f8b994b7dcf0cb243848cf3f6fdfec3ebbb147d01df84a3ec62cd8fa5d78ad9f2f28cd288a35eb49a5172339e9872e8e7e3350b0d69f59acd07":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"73a9eeda721c6f292e6b399e2647f8a6":"c1e80eb723960049cc4448b66433f1cf":"fb2a0b1f817404e74aee0a6ec8f2cd86f0c9114ed367b2690c44ad80f9d3377d7fd5066beaf1daa739d27ed3fba98379188016b1fe901204a174f9ffca370c181aece5e5d40939a0d460913b40b895e78a3b80ddf3d613c05e4e27bfd161ea2ef42271a2679f2cdca5b728ffb2319781c946a4f3ecacf486b754b30bb04ea60b":"215fc7e52abe4c751ca2f7f9a5cbde9ab8b44b8d4054bb62dcea6df5b936145ca6ec83a2b78b070638fd6e5ea3bad5d0caf1b8f755f391c3e0962a92337e3eba575585eb83680075fc818860388c587746af78d5fc75ccd0a63f1612abb1ba0f04a2228ca27fbddba4878f9b2683683f516b6d6fe4f6622e603bd3c5ad45e332":"e08161262234d0d5be22f09e5646bf":"":"b5e286183f16dd9403bec6786bd4836cc6add47947ef111fb1d5503c18c333c8fe60959502f58390d0e0f69fbe5fee13c72aed65fe6e32f6ea45877fe44f8a556aa5157b112e572197c1c350b7943c6cf2e9146018599524d27599f09c86027f2c5927e4a20c63833870e8369baa36ecc07cdb3ced520b5ae46869ff357ca089":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"90dbda7397d8fc46215a1218a6ffd0d8":"7be477d14df5dc15877ae537b62e1a56":"7358ddf1310a58871a2f76705f1cf64223c015c4d1574104d2e38783bb866205042f05c86e76c47a2516ce284911f1d2cbee079982dd77167e328b8324eec47c9244cc5668cf908c679bb586d4dd32c6c99ed99a6b571cf18b00689463e7a88cea6ea32d288301a10a9139ed6092ffe298e25b8cfb6b4be8217f16076dcd0a90":"4f82a1eca6c9184240f50f7e0cfec07ec772cad5276d93043c462d8364addd9a652eed385ccc6b0faa6ca679ab3a4c3d0be6a759425fd38316ee6a1b1b0c52c1bb3b57a9bd7c8a3be95c82f37800c2e3b42dde031851937398811f8f8dc2a15bfd2d6be99a572d56f536e62bc5b041d3944da666081cd755ec347f464214bf33":"776d871944159c51b2f5ec1980a6":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"0c85174d428fc1c7c89ca5d1b8aaba25":"b3c9dfa4c55388a128fbf62aa5927361":"3f552d45b61cf05ae2aa92668e89f3338a15ec7c5b7113b6571cfcd9e4c4a962043ccd9323f828dd645e8a91b007ce2112b7f978ad22ee9821698a4f2559d987ae4421452ad2e8d180953297156426d4540aff2104d8637b56b034a3a1823cf962bffbc465fe6148097975a8821ca7487e6e6c7ff4ee4de899fe67345676bb1c":"3735cbfb8000260021d1938d2a18e7737f378ecddb11a46ce387bf04e20bbfcc902457637fd152ab87017185601f32a7f906057123b6c2da31a1069c93e3cacc59a359aebd3e31b302e1a1f7d5d8f1b2917a8fe79181fa633b925ce03a1198dac48f4c959076b55bc6b3d50188af2c6aa33d83698aa8db22649f39825ba54775":"1e7dec83830183d56f443a16471d":"":"3d98cabca4afb7c1f6b8eeed521f4666ae252ac12d17ebf4a710b9a22d839b69458387ba4bbec2f6400e0cff80fbe4682c24efcd3b8c594d9b515ca7842c9d5988c42b59b6526c29a99256451e2927f5b956ef262f97c733dfa8bff73644473b9a8562bdfca748f4733ddce94a60024dfbfcde62fb3cbd7c3d955012d5338b91":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d89f06eb07744d43d44734faf9751d07":"185f8d033713ee629e93561cf8d5acb8":"743bcb671d0aa1c547b5448d64d7c6b290777625ba28f25ca0fbf1fc66495a2fde0648a8db51039b0e7340d993aef8afb48269e660cb599837d1e46f72727762d887ee84c073d6136d1b0bc7d4c78f5673a4a6b73375937e8d54a47304845f38ca6b4f51cf14136a0826016535dc5ed003e38c3ac362b9d58ba8b555a05a1412":"36cc3b2f563305208a03378f7dc036119f7de3fee77cefac06515853d36609a622382ed026c59783fbc0d9910767874c516e10c7bf3e3d104f73b3463c8d93a63418c76cb0d05e62e9c8642cb4f32caced2620912cb6c79e5110a27d5fba1ef3b4d0578077858526c5e4254365f2b2ab47a45df4af08980b3b7a9b66dff5b38c":"fcad48076eb03ebe85c6d64f6357":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"6150f14dc53f391e815acfabed9f9e20":"7e92dd558bd2662c3a539dfe21a352cf":"9b4624e9118e6aa5dc65b69856638f77fd3f9f562046f50ba92a64e988258637932af7979f000505b84a71ff5dd7b60bad62586b1a8837a61c15a1a1ba7f06668272c28169915d7f06297b6c2a96c8c44203a422bfd25500c82e11274ffe07706365bfd3da34af4c4dd8ad7b620de7284a5af729bea9c4ed2631bdcba2ebdb7d":"fd8f337017e1b60d6618e6e4ad37c1f230cdeb78891579c2c63d4e6a4f7d2cb7252e99de333c73db45958808c08e91359c885a7385ab6f9ed98a27927a5b83c3a456ce2e01869712675e527155ba1e339ac14a3ccd7a4b87360902f2b8381308fe5a4eac5c90d0b84da4bf5b907de6ff3139cffd23b49a78750006100183032a":"922a7b48ad5bf61e6d70751cfe":"":"f272a3ee9b981f97785cc6fad350e516d72d402dae0d8a531c064ec64598b2a5760f9b279c10aa1ff71bec07300ab0373187138e7a103fc4130105afa6b6346f3d368b40d6f542375de97878ad4d976d64c5c4968a17be2b1757a17c03100231c34721250cd37cc596678764083ade89ae3b1a2151ff9151edcd7ba0eb8a4649":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3e8216072ed6fcde0fe0f636b27ed718":"23a122cf363c3117b8c663388c760ee4":"28ce0b4a44fa83323e060f3ff6436b8829d4f842090296bdc952b6d4a6b1b1a66be06168c63c4643e6ac186f7ffd8d144f603b2d4bc0d65be48121676f9fa1f359029c512bebfd75075ff357bc55f20fc76d9f2477c9930f16408f9f09c5ae86efa2529d2f1449ceeb635b83ca13662860ef9ac04a3d8ab4605eccd2d9ae5a71":"3b50f2a8dca9f70178503d861d9e37f5edfafc80ee023bfed390a477372986e4794175ec22ac038c3461aba50c9b2379cab48512946efdfe2cb9c12a858b373a5309324f410e6a05e88ba892759dbee6e486dc9665f66cb5950ea7e71317fa94abbebd67a3948746a998173fbbb4f14f9effbdf66d3b6e346053496a4b1934ce":"531a65cc5dfeca671cc64078d1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"1af434b73a1210b08595ffa686079832":"ae318f3cb881d1680f6afbf6713a9a2f":"3763c9241be0d9d9a9e46e64b12e107d16cca267ff87844c2325af910cc9a485c7015d95bbe62398864d079fb2b577ba0cfad923c24fa30691ad7d767d651eed4a33d0be8f06fed43f58b2e0bb04959f10b9e8e73bd80d3a6a8c8ce637bfbdb9d02c2b0a3dd8317c4997822031a35d34b3b61819b425c10c64e839b29874ddfb":"13f6c1c2d4edcf1438a7b4e85bcd1c84a989831a64d205e7854fce8817ddfceab67d10506ccf6ed9ce50080ef809e28e46cba7b0c96be6a811f59cd09cb3b7b3fe5073ee6763f40aee61e3e65356093f97deef5a8721d995e71db27a51f60a50e34ac3348852c445188cfc64337455f317f87535d465c6f96006f4079396eba3":"2ae7350dd3d1909a73f8d64255":"":"3cd2a770300ce4c85740666640936a0fe48888788702fc37e7a8296adb40b862ec799f257a16821adaa7315bd31e8dec60e4a8faeb8ba2ee606340f0219a6440e9c1d3168425e58fac02e8a88865f30649913d988353ab81f42a5ad43f960055f0877acda20f493208c2c40754fbf4ccee040975aa358ea3fe62cbd028c1611a":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"04036d2f5273c6ff5b8364aa595359c9":"edc433c381140dff929d9df9f62f4cb6":"404acfeeea342aeea8c8b7449af9e20ddf5b85dc7770d2144a4dd05959613d04d0cfece5a21cbb1a9175ddc9443ffacd2085332eb4c337a12a7bb294c95960e7c0bde4b8ab30a91e50267bbd0b8d2a4ed381409ea2e4c84f9a2070a793ce3c90ea8a4b140651b452674f85d5b76d0055df115608bf3a3c60996108023ebabe65":"acf79b6099490af938fb5fd8913255b3daa22786b03356cdf3e0ffaf570f9f866047b8e15c9953f893d97e7098265297396868ebc383be8547e8ec9d974b6a65b5dc5147cdadef2e2ad96696e84e44f364c2ba18c8aabe21f99489957b2b5484bf3fb4fecaf5ddaa1d373e910059c978918a3d01b955de2adb475914bf2c2067":"71f818f1a2b789fabbda8ec1":"":"4729cb642304de928b9dca32bb3d7b7836dd3973bbccf3f013c8ff4b59eca56f5d34d1b8f030a7b581b2f8fdc1e22b76a4cbc10095559876736d318d6c96c5c64cbd9fbd1d8eb4df38a2d56640d67d490d03acc1cd32d3f377eb1907bbd600f21d740b578080ba9c6ddc7dc6c50cdcee41fec51499cb944713c0961fc64f5a70":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"59fe44c6e28d025b2ad05e6e867051ab":"eb0c30320029433f66d29b3fd5c6563b":"49b7418b87374b462d25309b1c06e3132a3c8f4a4fcf29fed58e0902509426be712639db21c076df7b83dcfcc2c2c8fcc88576f4622a4366eb42f84ebf760e3eb22b14f8b5ff83f06a6f04a924eaab05b912e126e80da22461abf7f1925fd72ebdf2aea335a044726e7c2ebbb2b8aeebab4f7de5e186b50f275b700794d895d8":"20e66bae1215de9a87a0b878d39015d17e0d4542a1aaba2000cefbd5f892c26a410f55f0d7dc2f6b66690f2997032985e5516e068bfc6ec8a3669f566e280b0cefded519023b735ee3bcbfc5b6ce8203b727933a750f9bd515ec448c1f3a030aa0f40e607727a3239ebbe655d46b38a3d867e481ccf0fadbf0d59b665d2ed6b5":"296c4cdaeb94beb2847dc53d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c314264cee0e6db30ebe9b2f6d4991b2":"4cd4431bb6dea8eb18ae74e4c35a6698":"0eeafbfd04f9a0ea18e5bdc688c7df27183f346187e9574b61222006f2b3e12e8d9d9bf1f0f15949ee1a7ee8e5c80ee903b8ba2860e15ccb999929f280200b159c2adca481748d0632a7b40601c45055f8cb5126148e6cbab2c76f543537ab54eb276188343cea3c4ab0d7b65b8754e55cfe3f6a5c41b6ea3c08b81fcecc968a":"d436ff9abfb044a332c4e009b591719a67b12a5366da0a66edf19605c34daa37588e15dd3da0d1a097215e469439de79cca74e04cd4904e5b4a6cb4e0ea54e6ba4e624ed6bd48be32d1ef68ffea1639a14e91a5914c2346ea526df95cbd4ad1b8ee842da210b35b6315c3075ecc267d51643c4b39202d0ad793cbb0045ebdc19":"fda18d2f795d900f057fe872":"":"cb9e0fb0ac13ca730b79e34745584b362d0716c344e4de90d8352b21117471ba12c97f193150b33774baee5e4a0f11b10428eaf0106c958e16aa46c5f6f3d99eed93d1b9ba3957bed05a8b9cc8c5511cf813a66dc7d773cb735b0523d8d6b0b80639b031ddc375f714c6dd50055320cd7ed44a471c8d5645c938a9005d0b5050":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"26072018bd0bda524b5beb66a622c63e":"c783d6d3b8392160e3b68038b43cf1f4":"8ae7c809a9dc40a6732a7384e3c64abb359c1b09dcb752e5a6b584873e3890230c6fc572b9ad24d849766f849c73f060fc48f664c1af9e6707e223691b77e170966ed164e0cc25ede3fbc3541c480f75b71e7be88fe730d8b361ea2733c6f37e6a59621de6004e020894b51dfb525973d641efe8d5fd9077a0bbc9dc7933a5de":"91c524b359dae3bc49117eebfa610672af1e7754054607317d4c417e7b1a68453f72d355468f825aeb7fde044b20049aed196ec6646cce1eeeccf06cb394286272b573220cdb846613ebc4683442dccc7a19ec86ef1ec971c115726584ae1f4008f94e47d1290d8b6b7a932cfe07165fd2b94e8f96d15f73bf72939c73f4bd11":"edffe55c60235556":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"201751d3da98bd39ff4e5990a56cfea7":"6172468634bf4e5dda96f67d433062d7":"ae2d770f40706e1eaa36e087b0093ec11ed58afbde4695794745e7523be0a1e4e54daade393f68ba770956d1cfb267b083431851d713249ffe4b61227f1784769ce8c9127f54271526d54181513aca69dc013b2dfb4a5277f4798b1ff674bca79b3dec4a7a27fcf2905ae0ce03f727c315662cd906e57aa557d1023cce2acd84":"2965af0bde3565a00e61cebbfe0b51b5b5ee98dbbfff7b1b5bf61da5ba537e6f4cf5fa07d2b20e518232c4961e6bc3ae247b797429da5d7eee2fc675b07066ac2e670261c6e9a91d920c7076101d86d5ef422b58e74bdc1e0b1d58298d3ee0f510ee3a3f63a3bbc24a55be556e465c20525dd100e33815c2a128ac89574884c1":"66c247e5ad4e1d6a":"":"efd064d4b4ef4c37b48ddf2fa6f5facc5e9cc4c3255b23a1e3765fabb5a339fa0eda754a5381b72989fc1323ff9a6bbaecd904eb4835e5a511b922927574673061ed8de23299ea1456054e7ebb62869878c34fb95e48c8385b5ebceecb962654cf1586b3f54e7887ce31850363e9a22be9e6fbc22e694db81aa055490495dbf2":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3bc0dcb5261a641a08e6cb00d23e4deb":"16fa19f69fceed9e97173207158755a5":"92ddd3b98f08fc8538f6106f6434a1efa0a7441cc7f6fd0841103c2e4dd181ea0c9a4811b3cb1bad1986a44d8addabc02dd6980daf7d60405b38dadc836bb1d0620ceab84e0134aca7c30f9f9490436b27acfd7052f9d7f0379b8e7116571017add46b9976f4b41431d47bae6f5f34dc42410793bc26c84bfe84fb53ae138c85":"d533ad89a1a578db330c01b4e04d08238b020e36aebe87cf2b0bf0b01f1ce4197be8b0596e475a95946918152e8b334ba89f60486c31f0bd8773ca4ff1319fe92197088b131e728d64405441c4fb5466641f0b8682e6cb371f8a8936140b16677f6def8b3dd9cbf47a73f553f1dca4320ad76f387e92f910f9434543f0df0626":"f5289e1204ace3b2":"":"be0c30deeffbe51706247928132002b24d29272eee6b9d618483868e67280236632fa1ae06f3ef793f67bd01b1b01f70a827367c1cd28f778910457c7cbd977dfefff1f84a522247e19b2fd01fa22ce67cef9503d45c80a5084741f04108f2462b7cdd06a8f1f044fea2b05e920bcc061fbc6910175d732f45102a63c76ae48c":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"239c15492d6deec979e79236baca4635":"916b8b5417578fa83d2e9e9b8e2e7f6b":"b39eb732bc296c555cc9f00cf4caaf37d012329f344a6b74a873baf0d8dde9631f5e57b45b957d6aec0f7978e573dd78b43d459b77756037cd64d10d49966eb3a2a08d0f4d5e4f5dcb8713f4e4756acdf9925c5fc6120c477f6dffc59b0b47a3d5efd32b8c9052b321bb9b5129e5c6a095d8de563601b34608456f58d7221f2d":"d64886ce5f5b4adb7fe8f95904bc1461749c931655b02819ffdd0ae31bad4175125aa68962f8e36ec834a7d53a191a74c937e81ec93ad9ce0d3b286d3c11ff1733c0b7780130768c120b1833933561cf07399ca49b912370ae34f0e49b9c8cb9920eddc6816ab2ae261c6d7f70058a9b83a494026f249e58c4c613eefafe6974":"fc08cbbe":"":"95c169721ea007c3f292e4ec7562a426d9baa7d374fd82e1e48d1eaca93d891d5ffa9acf5e3bd82e713ac627141e26a8b654920baffab948401cc3c390d6eea9d7b78c4fcb080b0aa9222e4d51bf201ccfd9328995831435e065d92ad37ee41c7c4366cc1efe15c07fc0470608866aeea96997772ecf926934c5d02efe05f250":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"db68a96e216b0dd9945f14b878487e03":"8a1a72e7bb740ec37ea4619c3007f8ae":"1b4f37190a59a4fff41d348798d1829031204fd7ac2a1be7b5ea385567e95e2ace25bf9e324488dd3ab8ce7f29d4c9a4f4b1a8a97f774871ee825e2c17700128d3c55908d3b684a1f550fdb8b38149ff759c21debdd54e49d64d3e8aac803dfd81600464ed484749bb993f89d4224b3d7d55c756b454466ff9fd609019ed5e83":"5634196a32d4cbfa7a2f874a1e0f86287d2942090e0cc6a82bd5caf40136a27ddf524a17713ce4af04ca6cb640a7205cce4ac9cb2d0ab380d533e1e968089ea5740c0fcbfa51f2424008e0b89dc7b3396b224cfaed53b3ac0604879983d3e6e6d36053de4866f52976890f72b8f4b9505e4ebdd04c0497048c3ce19336133ea4":"9251d3e3":"":"0c6bb3ee5de5cbb4b39d85d509bcacb3dda63fa50897936531339882962e8dc54c285c8944768d12096d4a3c2b42ffa92603cee2da9b435ec52908fca6d38ed74f898fe0ffa761f96038ff7dfeccc65bb841c3457b8de1e97d9bee82e2911602ee2dc555b33a227424dea86d610d37c447776295b412b412903ad2cede5170b6":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"659b9e729d12f68b73fdc2f7260ab114":"459df18e2dfbd66d6ad04978432a6d97":"ee0b0b52a729c45b899cc924f46eb1908e55aaaeeaa0c4cdaacf57948a7993a6debd7b6cd7aa426dc3b3b6f56522ba3d5700a820b1697b8170bad9ca7caf1050f13d54fb1ddeb111086cb650e1c5f4a14b6a927205a83bf49f357576fd0f884a83b068154352076a6e36a5369436d2c8351f3e6bfec65b4816e3eb3f144ed7f9":"fd0732a38224c3f16f58de3a7f333da2ecdb6eec92b469544a891966dd4f8fb64a711a793f1ef6a90e49765eacaccdd8cc438c2b57c51902d27a82ee4f24925a864a9513a74e734ddbf77204a99a3c0060fcfbaccae48fe509bc95c3d6e1b1592889c489801265715e6e4355a45357ce467c1caa2f1c3071bd3a9168a7d223e3":"8e5a6a79":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"806766a4d2b6507cc4113bc0e46eebe120eacd948c24dc7f":"4f801c772395c4519ec830980c8ca5a4":"":"":"8fa16452b132bebc6aa521e92cb3b0ea":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"0c2abdcd2e4ae4137509761a38e6ca436b99c21b141f28f5":"335ca01a07081fea4e605eb5f23a778e":"":"":"d7f475dfcb92a75bc8521c12bb2e8b86":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"eef490a0c2ecb32472e1654184340cc7433c34da981c062d":"d9172c3344d37ff93d2dcb2170ea5d01":"":"":"017fef05260a496654896d4703db3888":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"fe0c3490f1f0dba23cf5c64e6e1740d06f85e0afec6772f3":"f47e915163fa3df7f6c15b9d69f53907":"":"":"14e1a057a2e7ffbd2208e9c25dbba1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"4356b3b1f308df3573509945afe5268984f9d953f01096de":"a35b397b34a14a8e24d05a37be4d1822":"":"":"e045ecba220d22c80826b77a21b013":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"e2898937cc575c8bb7444413884deafe8eaf326be8849e42":"169a449ccb3eb29805b15304d603b132":"":"":"3a807251f3d6242849a69972b14f6d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"75683c7df0442e10b5368fcd6bb481f0bff8d95aae90487e":"538641f7d1cc5c68715971cee607da73":"":"":"07d68fffe417adc3397706d73b95":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"0724ee1f317997ce77bb659446fcb5a557490f40597341c7":"0d8eb78032d83c676820b2ef5ccc2cc8":"":"":"7da181563b26c7aefeb29e71cc69":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"be2f0f4ae4ab851b258ec5602628df261b6a69e309ff9043":"646a91d83ae72b9b9e9fce64135cbf73":"":"":"169e717e2bae42e3eb61d0a1a29b":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"583c328daecd18c2ac5c83a0c263de194a4c73aa4700fe76":"55e10d5e9b438b02505d30f211b16fea":"":"":"95c0a4ea9e80f91a4acce500f7":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"b40857e7e6f26050f1e9a6cbe05e15a0ba07c2055634ad47":"e25ef162a4295d7d24de75a673172346":"":"":"89ea4d1f34edb716b322ea7f6f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"627008956e31fea497fb120b438a2a043c23b1b38dc6bc10":"08ea464baac54469b0498419d83820e6":"":"":"ab064a8d380fe2cda38e61f9e1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"8c386d67d7c2bfd46b8571d8685b35741e87a3ed4a46c9db":"766996fb67ace9e6a22d7f802455d4ef":"":"":"9a641be173dc3557ea015372":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"711bc5aa6b94fa3287fad0167ac1a9ef5e8e01c16a79e95a":"75cdb8b83017f3dc5ac8733016ab47c7":"":"":"81e3a5580234d8e0b2204bc3":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"c74620828402e0bdf3f7a5353668505dc1550a31debce59a":"cfbefe265583ab3a2285e8080141ba48":"":"":"355a43bcebbe7f72b6cd27ea":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"1eb53aa548b41bfdc85c657ebdebdae0c7e525a6432bc012":"37ffc64d4b2d9c82dd17d1ad3076d82b":"":"":"34b8e037084b3f2d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"50d077575f6db91024a8e564db83324539e9b7add7bb98e4":"118d0283294d4084127cce4b0cd5b5fa":"":"":"507a361d8ac59882":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"d9ddca0807305025d61919ed7893d7d5c5a3c9f012f4842f":"b78d518b6c41a9e031a00b10fb178327":"":"":"f401d546c8b739ff":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"6ed8d8afde4dc3872cbc274d7c47b719205518496dd7951d":"14eb280288740d464e3b8f296c642daa":"":"":"39e64d7a":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"80aace5ab74f261bc09ac6f66898f69e7f348f805d52404d":"f54bf4aac8fb631c8b6ff5e96465fae6":"":"":"1ec1c1a1":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"23b76efd0dbc8d501885ab7d43a7dacde91edd9cde1e1048":"75532d15e582e6c477b411e727d4171e":"":"":"76a0e017":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"94c50453dd3ef7f7ea763ae13fa34debb9c1198abbf32326":"1afe962bc46e36099165552ddb329ac6":"b2920dd9b0325a87e8edda8db560bfe287e44df79cf61edba3b2c95e34629638ecb86584f05a303603065e63323523f6ccc5b605679d1722cde5561f89d268d5f8db8e6bdffda4839c4a04982e8314da78e89f8f8ad9c0fee86332906bf78d2f20afcaabdc282008c6d09df2bfe9be2c9027bb49268b8be8936be39fa8b1ae03":"":"51e1f19a7dea5cfe9b9ca9d09096c3e7":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"c6a98102af3d875bcdebe594661d3a6b376970c02b11d019":"bea8cd85a28a2c05bf7406b8eef1efcc":"f2f80e2c042092cc7240b598ab30fad055bce85408aa0f8cefaf8a7204f0e2acb87c78f46a5867b1f1c19461cbf5ed5d2ca21c96a63fb1f42f10f394952e63520795c56df77d6a04cb5ad006ee865a47dc2349a814a630b3d4c4e0fd149f51e8fa846656ea569fd29a1ebafc061446eb80ec182f833f1f6d9083545abf52fa4c":"":"04b80f25ae9d07f5fd8220263ac3f2f7":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"ec3cc45a22fdc7cc79ed658d9e9dbc138dcc7d6e795cba1a":"b10d9c70205e142704f9d1f74caee0f6":"714994017c169c574aaff2f8bad15f8fa6a385117f5405f74846eca873ca4a8f4876adf704f2fcaff2dfa75c17afefd08a4707292debc6d9fafda6244ca509bc52b0c6b70f09b14c0d7c667583c091d4064e241ba1f82dd43dc3ea4b8922be65faf5583f6b21ff5b22d3632eb4a426675648250e4b3e37c688d6129b954ef6a8":"":"d22407fd3ae1921d1b380461d2e60210":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"5a32ebc7a2338038ced36d2b85cbc6c45cca9845a7c5aa99":"9afe0882e418c9af205eeb90e131d212":"61ff8a8bc22803f17e8e9f01aff865bc7d3083ff413ce392a989e46ebed5114894de906f7d36439024d8f2e69cc815ac043fff2f75169f6c9aa9761ff32d10a1353213ac756cb84bd3613f8261ef390e1d00c3a8fb82764b0cda4e0049219e87d2e92c38f78ffac242391f838a248f608bb2b56b31bbb453d1098e99d079ea1b":"":"fcbb932ddb0128df78a71971c52838":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"9bf22885e7f13bcc63bb0a2ca90c20e5c86001f05edf85d8":"99dec21f4781284722b5074ea567c171":"9f4176dacf26e27aa0e669cd4d44bca41f83468c70b54c745a601408a214bf876941ae2ae4d26929113f5de2e7d15a7bb656541292137bf2129fdc31f06f070e3cfaf0a7b30d93d8d3c76a981d75cd0ffa0bcacb34597d5be1a055c35eefeddc07ee098603e48ad88eb7a2ec19c1aefc5c7be9a237797397aa27590d5261f67a":"":"18fd1feec5e3bbf0985312dd6100d1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"cfd75a9d3788d965895553ab5fb7a8ff0aa383b7594850a6":"a6df69e5f77f4d99d5318c45c87451b2":"041aeb2fa0f7df027cd7709a992e041179d499f5dbccd389035bf7e514a38b5f8368379d2d7b5015d4fa6fadfd7c75abd2d855f5ea4220315fad2c2d435d910253bf76f252a21c57fe74f7247dac32f4276d793d30d48dd61d0e14a4b7f07a56c94d3799d04324dfb2b27a22a5077e280422d4f014f253d138e74c9ac3428a7b":"":"fd78b9956e4e4522605db410f97e84":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"b0b21ae138485591c6bef7b3d5a0aa0e9762c30a50e4bba2":"56dc980e1cba1bc2e3b4a0733d7897ca":"a38458e5cc71f22f6f5880dc018c5777c0e6c8a1301e7d0300c02c976423c2b65f522db4a90401035346d855c892cbf27092c81b969e99cb2b6198e450a95c547bb0145652c9720aaf72a975e4cb5124b483a42f84b5cd022367802c5f167a7dfc885c1f983bb4525a88c8257df3067b6d36d2dbf6323df80c3eaeffc2d176a5":"":"b11f5c0e8cb6fea1a170c9342437":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"8775665aba345b1c3e626128b5afa3d0da8f4d36b8cf1ca6":"cd17f761670e1f104f8ea4fb0cec7166":"2ee08a51ceaca1dbbb3ee09b72f57427fd34bd95da5b4c0933cbb0fc2f7270cffd3476aa05deeb892a7e6a8a3407e61f8631d1a00e47d46efb918393ee5099df7d65c12ab8c9640bfcb3a6cce00c3243d0b3f316f0822cfeae05ee67b419393cc81846b60c42aeb5c53f0ede1280dc36aa8ef59addd10668dd61557ce760c544":"":"6cdf60e62c91a6a944fa80da1854":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"cc9922299b47725952f06272168b728218d2443028d81597":"9b2f1a40717afcdbb6a95d6e335c9e4d":"bcfca8420bc7b9df0290d8c1bcf4e3e66d3a4be1c947af82dd541336e44e2c4fa7c6b456980b174948de30b694232b03f8eb990f849b5f57762886b449671e4f0b5e7a173f12910393bdf5c162163584c774ad3bba39794767a4cc45f4a582d307503960454631cdf551e528a863f2e014b1fca4955a78bd545dec831e4d71c7":"":"dd515e5a8b41ecc441443a749b31":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"5a27d718f21c5cbdc52a745b931bc77bd1afa8b1231f8815":"59661051912fba45023aef4e6f9380a5":"2b7ce5cea81300ed23501493310f1316581ef8a50e37eaadd4bb5f527add6deb09e7dcc67652e44ac889b48726d8c0ae80e2b3a89dd34232eb1da32f7f4fcd5bf8e920d286db8604f23ab06eab3e6f99beb55fe3725107e9d67a491cdada1580717bbf64c28799c9ab67922da9194747f32fd84197070a86838d1c9ebae379b7":"":"f33e8f42b58f45a0456f83a13e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"b83e933cf54ac58f8c7e5ed18e4ed2213059158ed9cb2c30":"8710af55dd79da45a4b24f6e972bc60a":"b7a428bc68696cee06f2f8b43f63b47914e29f04a4a40c0eec6193a9a24bbe012d68bea5573382dd579beeb0565b0e0334cce6724997138b198fce8325f07069d6890ac4c052e127aa6e70a6248e6536d1d3c6ac60d8cd14d9a45200f6540305f882df5fca2cac48278f94fe502b5abe2992fa2719b0ce98b7ef1b5582e0151c":"":"380128ad7f35be87a17c9590fa":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"d2f85f92092385f15da43a086cff64c7448b4ee5a83ed72e":"9026dfd09e4553cd51c4c13ce70830de":"3c8de64c14df73c1b470a9d8aa693af96e487d548d03a92ce59c0baec8576129945c722586a66f03deb5029cbda029fb22d355952c3dadfdede20b63f4221f27c8e5d710e2b335c2d9a9b7ca899597a03c41ee6508e40a6d74814441ac3acb64a20f48a61e8a18f4bbcbd3e7e59bb3cd2be405afd6ac80d47ce6496c4b9b294c":"":"e9e5beea7d39c9250347a2a33d":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"de7df44ce007c99f7baad6a6955195f14e60999ed9818707":"4d209e414965fe99636c1c6493bba3a3":"da3bc6bdd414a1e07e00981cf9199371192a1fb2eaae20f7091e5fe5368e26d61b981f7f1d29f1a9085ad2789d101155a980de98d961c093941502268adb70537ad9783e6c7d5157c939f59b8ad474c3d7fc1fcc91165cdf8dd9d6ec70d6400086d564b68ebead0d03ebd3aa66ded555692b8de0baf43bc0ddef42e3a9eb34ab":"":"24483a57c20826a709b7d10a":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"1dfa5ff20046c775b5e768c2bd9775066ae766345b7befc3":"2d49409b869b8b9fc5b67767979ca8cd":"e35d34478b228bc903ea2423697e603cc077967d7cfb062e95bc11d89fbe0a1f1d4569f89b2a7047300c1f5131d91564ec9bce014d18ba605a1c1e4e15e3e5c18413b8b59cbb25ab8f088885225de1235c16c7d9a8d06a23cb0b38fd1d5c6c19617fe08fd6bf01c965ed593149a1c6295435e98463e4f03a511d1a7e82c11f01":"":"23012503febbf26dc2d872dc":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"2df3ee3a6484c48fdd0d37bab443228c7d873c984529dfb4":"dc6aeb41415c115d66443fbd7acdfc8f":"eafc6007fafb461d3b151bdff459e56dd09b7b48b93ea730c85e5424f762b4a9080de44497a7c56dd7855628ffc61c7b4faeb7d6f413d464fe5ec6401f3028427ae3e62db3ff39cd0f5333a664d3505ff42caa8899b96a92ec01934d4b59556feb9055e8dfb81f55e60135345bfce3e4199bfcdb3ce42523e7d24be2a04cdb67":"":"e8e80bf6e5c4a55e7964f455":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"ce0787f65e6c24a1c444c35dcd38195197530aa20f1f6f3b":"55300431b1eaac0375681d7821e1eb7a":"84a699a34a1e597061ef95e8ec3c21b592e9236ddb98c68d7e05f1e709937b48ec34a4b88d99708d133a2cc33f5cf6819d5e7b82888e49faa5d54147d36c9e486630aa68fef88d55537119db1d57df0402f56e219f7ece7b4bb5f996dbe1c664a75174c880a00b0f2a56e35d17b69c550921961505afabf4bfd66cf04dc596d1":"":"74264163131d16ac":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"3a15541b5857a668dc9899b2e198d2416e83bac13282ca46":"89bf8ab0cea6f59616eeb9b314d7c333":"4d2843f34f9ea13a1ac521479457005178bcf8b2ebeaeb09097ea4471da9f6cc60a532bcda1c18cab822af541de3b87de606999e994ace3951f58a02de0d6620c9ae04549326da449a3e90364a17b90b6b17debc0f454bb0e7e98aef56a1caccf8c91614d1616db30fc8223dbcd8e77bf55d8253efe034fd66f7191e0303c52f":"":"8f4877806daff10e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"b61cdfd19c136ee2acbe09b7993a4683a713427518f8e559":"4066118061c904ed1e866d4f31d11234":"153c075ecdd184fd8a0fca25cae8f720201361ef84f3c638b148ca32c51d091a0e394236d0b51c1d2ee601914120c56dfea1289af470dbc9ef462ec5f974e455e6a83e215a2c8e27c0c5b5b45b662b7f58635a29866e8f76ab41ee628c12a24ab4d5f7954665c3e4a3a346739f20393fc5700ec79d2e3c2722c3fb3c77305337":"":"4eff7227b42f9a7d":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"ce175a7df7e429fcc233540e6b8524323e91f40f592ba144":"c34484b4857b93e309df8e1a0e1ec9a3":"ce8d8775f047b543a6cc0d9ef9bc0db5ac5d610dc3ff6e12e0ad7cd3a399ebb762331e3c1101a189b3433a7ff4cd880a0639d2581b71e398dd982f55a11bf0f4e6ee95bacd897e8ec34649e1c256ee6ccecb33e36c76927cc5124bc2962713ad44cbd435ae3c1143796d3037fa1d659e5dad7ebf3c8cbdb5b619113d7ce8c483":"":"ff355f10":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"5f659ed236ba60494e9bf1ee2cb40edcf3f25a2bac2e5bc5":"ad49f12f202320255406c2f40e55b034":"6da62892f436dfe9790e72d26f4858ca156d1d655c9cc4336fcf282b0f3f0b201e47f799c3019109af89ef5fd48a4811980930e82cd95f86b1995d977c847bbb06ecdcc98b1aae100b23c9c2f0dcf317a1fb36f14e90e396e6c0c594bcc0dc5f3ebf86ce7ecd4b06d1c43202734d53f55751a6e6bbda982104102af240def4eb":"":"cb4d8c1d":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"a73f318b1e298ba4ac0ab2aed74f73543b1017cccbd1b240":"abe33b7e8d88bd30deb96d1e90c4e951":"6de616b000047b14b6759015183dd753c61499c0e665d06a89e4fb0cd0dd3064ff8651582e901ef5d0cdf3344c29c70c3aabc2aaf83cb3f284c6fe4104906d389b027e7d9ca60d010f06ef8cd9e55db2483d06552ddbe3fc43b24c55085cd998eae3edec36673445bf626e933c15b6af08ea21cbace4720b0b68fe1a374877d5":"":"4a28ec97":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"73d5be74615bc5b627eedfb95746fb5f17cbf25b500a597f":"eb16ed8de81efde2915a901f557fba95":"":"fc40993eb8559e6b127315c03103ce31b70fc0e07a766d9eecf2e4e8d973faa4afd3053c9ebef0282c9e3d2289d21b6c339748273fa1edf6d6ef5c8f1e1e9301b250297092d9ac4f4843125ea7299d5370f7f49c258eac2a58cc9df14c162604ba0801728994dc82cb625981130c3ca8cdb3391658d4e034691e62ece0a6e407":"804056dca9f102c4a13a930c81d77eca":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"a249135c9f2f5a8b1af66442a4d4e101771a918ef8acee05":"80b6e48fe4a3b08d40c1636b25dfd2c4":"":"c62b39b937edbdc9b644321d5d284e62eaa4154010c7a3208c1ef4706fba90223da04b2f686a28b975eff17386598ba77e212855692f384782c1f3c00be011e466e145f6f8b65c458e41409e01a019b290773992e19334ffaca544e28fc9044a5e86bcd2fa5ad2e76f2be3f014d8c387456a8fcfded3ae4d1194d0e3e53a2031":"951c1c89b6d95661630d739dd9120a73":"":"b865f8dd64a6f51a500bcfc8cadbc9e9f5d54d2d27d815ecfe3d5731e1b230c587b46958c6187e41b52ff187a14d26aa41c5f9909a3b77859429232e5bd6c6dc22cf5590402476d033a32682e8ab8dc7ed0b089c5ab20ab9a8c5d6a3be9ea7aa56c9d3ab08de4a4a019abb447db448062f16a533d416951a8ff6f13ed5608f77":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"fa832a4b37dcb3c0879a771bb8ae734f0d88b9be497797a8":"70835abab9f945c84ef4e97cdcf2a694":"":"0f1105f9ec24121232b60b6ef3c3e8ca9eec1a3d7625004b857d1d77f292b6ec065d92f5bb97e0dc2fdfdf823a5db275109a9472690caea04730e4bd732c33548718e9f7658bbf3e30b8d07790cd540c5754486ed8e4d6920cefaeb1c182c4d67ebed0d205ba0bd9441a599d55e45094b380f3478bcfca9646a0d7aa18d08e52":"a459be0b349f6e8392c2a86edd8a9da5":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"dda216287910d1f5c0a312f63c243612388bc510cb76c5ba":"7f770140df5b8678bc9c4b962b8c9034":"":"d6617d583344d4fe472099d2a688297857215a3e31b47d1bf355ccfe9cf2398a3eba362c670c88f8c7162903275dfd4761d095900bd97eba72200d4045d72bd239bda156829c36b38b1ff5e4230125e5695f623e129829721e889da235bb7d4b9da07cce8c3ceb96964fd2f9dd1ff0997e1a3e253a688ceb1bfec76a7c567266":"9823e3242b3f890c6a456f1837e039":"":"b4910277224025f58a5d0f37385b03fcd488dfef7580eb5c270c10bd7a6f6d9c7ddc2d1368d68d4e04f90e3df029ed028432a09f710be1610b2a75bd05f31bae83920573929573affd0eb03c63e0cec7a027deab792f43ee6307fd3c5078d43d5b1407ac023824d41c9437d66eeec172488f28d700aa4b54931aad7cd458456f":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"c5afa1e61d4594b1c2fa637f64f18dd557e4df3255b47f24":"151fd3ba32f5bde72adce6291bcf63ea":"":"5c772cdf19571cd51d71fc166d33a0b892fbca4eae36ab0ac94e6164d51acb2d4e60d4f3a19c3757a93960e7fd90b9a6cdf98bdf259b370ed6c7ef8cb96dba7e3a875e6e7fe6abc76aabad30c8743b3e47c8de5d604c748eeb16806c2e75180a96af7741904eca61769d39e943eb4c4c25f2afd68e9472043de2bb03e9edae20":"f0626cc07f2ed1a7570386a4110fc1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"febd4ff0fedd9f16bccb62380d59cd41b8eff1834347d8fa":"743699d3759781e82a3d21c7cd7991c8":"":"dc971c8f65ece2ea4130afd4db38fc657c085ea19c76fef50f5bd0f8dd364cc22471c2fa36be8cde78529f58a78888e9de10961760a01af005e42fc5b03e6f64962e6b18eaedea979d33d1b06e2038b1aad8993e5b20cae6cc93f3f7cf2ad658fbba633d74f21a2003dded5f5dda3b46ed7424845c11bab439fbb987f0be09f8":"1da347f9b6341049e63140395ad445":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"d280d079110c1c826cc77f490d807dd8d508eb579a160c49":"85b241d516b94759c9ef975f557bccea":"":"a286d19610a990d64f3accd329fc005d468465a98cfa2f3606c6d0fbeb9732879bad3ca8094322a334a43155baed02d8e13a2fbf259d80066c6f418a1a74b23e0f6238f505b2b3dc906ffcb4910ce6c878b595bb4e5f8f3e2ede912b38dbafdf4659a93b056a1a67cb0ec1dbf00d93223f3b20b3f64a157105c5445b61628abf":"bbf289df539f78c3a912b141da3a":"":"b9286ab91645c20de040a805020fed53c612d493a8ce9c71649ae16bd50eab6fb7f3a9180e1651d5413aa542608d7ecbf9fc7378c0bef4d439bc35434b6cf803976b8783aecc83a91e95cea72c2a26a883b710252e0c2a6baa115739a0692c85f6d34ff06234fbdc79b8c4a8ea0a7056fb48c18f73aaf5084868abb0dfaa287d":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"5e80f87fa2156c62df7be2ad16c4890de5ee5868a684fcf9":"9769f71c76b5b6c60462a845d2c123ad":"":"c829073efd5c5150d2b7e2cdaeff979830d1aa983c747724ade6472c647a6e8e5033046e0359ea62fc26b4c95bccb3ac416fdf54e95815c35bf86d3fdd7856abbb618fe8fcd35a9295114926a0c9df92317d44ba1885a0c67c10b9ba24b8b2f3a464308c5578932247bf9c79d939aa3576376d2d6b4f14a378ab775531fe8abf":"394b6c631a69be3ed8c90770f3d4":"":"f886bd92ca9d73a52e626b0c63a3daa138faaacf7809086d04f5c0c899362aa22e25d8659653b59c3103668461d9785bb425c6c1026ad9c924271cec9f27a9b341f708ca86f1d82a77aae88b25da9061b78b97276f3216720352629bd1a27ebf890da6f42d8c63d68342a93c382442d49dd4b62219504785cee89dffdc36f868":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"d8a7b99e53f5e5b197364d4516cace4b928de50e571315e3":"4b12c6701534098e23e1b4659f684d6f":"":"d0db0ac5e14bf03729125f3137d4854b4d8ce2d264f8646da17402bdad7034c0d84d7a80f107eb202aeadbfdf063904ae9793c6ae91ee8bcc0fc0674d8111f6aea6607633f92e4be3cfbb64418101db8b0a9225c83e60ffcf7a7f71f77149a13f8c5227cd92855241e11ee363062a893a76ac282fb47b523b306cd8235cd81c2":"729b31c65d8699c93d741caac8e3":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"c874b427b7181b0c90b887147c36f242827149324fd5c945":"4b8dda046a5b7c46abeeca2f2f9bcaf8":"":"bdd90190d587a564af022f06c8bd1a68735b6f18f04113fdcec24c6027aaf0271b183336fb713d247a173d9e095dae6e9badb0ab069712302875406f14320151fd43b90a3d6f35cc856636b1a6f98afc797cb5259567e2e9b7ce62d7b3370b5ee852722faf740edf815b3af460cdd7de90ca6ab6cd173844216c064b16ea3696":"fe1e427bcb15ce026413a0da87":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"56543cd6e2ebb1e3dc136a826bfc37eddb12f7a26430a1b4":"927ce8a596ed28c85d9cb8e688a829e6":"":"d541dd3acec2da042e6ea26fb90ff9a3861191926423b6dc99c5110b3bf150b362017159d0b85ffea397106a0d8299ec22791cb06103cd44036eed0d6d9f953724fb003068b3c3d97da129c28d97f09e6300cbea06ba66f410ca61c3311ce334c55f077c37acb3b7129c481748f79c958bc3bbeb2d3ff445ad361ed4bbc79f0a":"3a98f471112a8a646460e8efd0":"":"a602d61e7a35cbe0e463119bb66fd4bb6c75d1fe0b211b9d6a0a6e9e84b0794282318f0d33ec053f2cfba1623e865681affeaf29f3da3113995e87d51a5ab4872bb05b5be8ef2b14dfc3df5a48cbc9b10853a708ee4886a7390e8e4d286740a0dd41c025c8d72eda3f73f3cec5c33d5e50b643afd7691213cccccc2c41b9bd7a":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"caaf81cd380f3af7885ef0d6196a1688c9372c5850dc5b0b":"508c55f1726896f5b9f0a7024fe2fad0":"":"6f269929b92c6281e00672eaec183f187b2ddecc11c9045319521d245b595ab154dd50f045a660c4d53ae07d1b7a7fd6b21da10976eb5ffcddda08c1e9075a3b4d785faa003b4dd243f379e0654740b466704d9173bc43292ae0e279a903a955ce33b299bf2842b3461f7c9a2bd311f3e87254b5413d372ec543d6efa237b95a":"3b8026268caf599ee677ecfd70":"":"c4a96fb08d7c2eebd17046172b98569bc2441929fc0d6876aa1f389b80c05e2ede74dc6f8c3896a2ccf518e1b375ee75e4967f7cca21fa81ee176f8fb8753381ce03b2df873897131adc62a0cbebf718c8e0bb8eeed3104535f17a9c706d178d95a1b232e9dac31f2d1bdb3a1b098f3056f0e3d18be36bd746675779c0f80a10":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"2fc9d9ac8469cfc718add2b03a4d8c8dcc2eeca08e5ff7bc":"b2a7c0d52fc60bacc3d1a94f33087095":"":"bc84d8a962a9cfd179d242788473d980d177abd0af9edccb14c6dc41535439a1768978158eeed99466574ea820dbedea68c819ffd9f9915ca8392c2e03049d7198baeca1d3491fe2345e64c1012aff03985b86c831ad516d4f5eb538109fff25383c7b0fa6b940ae19b0987d8c3e4a37ccbbd2034633c1eb0df1e9ddf3a8239e":"0a7a36ec128d0deb60869893":"":"fc3cd6486dfe944f7cb035787573a554f4fe010c15bd08d6b09f73066f6f272ff84474f3845337b6e429c947d419c511c2945ffb181492c5465940cef85077e8a6a272a07e310a2f3808f11be03d96162913c613d9c3f25c3893c2bd2a58a619a9757fd16cc20c1308f2140557330379f07dbfd8979b26b075977805f1885acc":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"81ff729efa4a9aa2eccc37c5f846235b53d3b93c79c709c8":"1bd17f04d1dc2e447b41665952ad9031":"":"3992ad29eeb97d17bd5c0f04d8589903ee23ccb2b1adc2992a48a2eb62c2644c0df53b4afe4ace60dc5ec249c0c083473ebac3323539a575c14fa74c8381d1ac90cb501240f96d1779b287f7d8ba8775281d453aae37c803185f2711d21f5c00eb45cad37587ed196d1633f1eb0b33abef337447d03ec09c0e3f7fd32e8c69f0":"01b0a815dc6da3e32851e1fb":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"068500e8d4f8d4af9035cdaa8e005a648352e8f28bdafc8a":"5ea9198b860679759357befdbb106b62":"":"98e32428d9d21c4b60e690a2ce1cf70bee90df31302d1819b7d27fd577dd990f7ffe6ba5ef117caac718cc1880b4ca98f72db281c9609e189307302dc2866f20be3a545a565521368a6881e2642cba63b3cf4c8b5e5a8eabeb3e8b004618b8f77667c111e5402c5d7c66afd297c575ce5092e898d5831031d225cee668c186a1":"d58752f66b2cb9bb2bc388eb":"":"2ef3a17fcdb154f60d5e80263b7301a8526d2de451ea49adb441aa2541986b868dab24027178f48759dbe874ae7aa7b27fb19461c6678a0ba84bbcd8567ba2412a55179e15e7c1a1392730ac392b59c51d48f8366d45b933880095800e1f36ff1ac00753f6363b0e854f494552f1f2efe028d969e6b1a8080149dd853aa6751e":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"7474d9b07739001b25baf6867254994e06e54c578508232f":"3ade6c92fe2dc575c136e3fbbba5c484":"":"1cbab2b6e4274caa80987072914f667b887198f7aaf4574608b91b5274f5afc3eb05a457554ff5d346d460f92c068bc626fd301d0bb15cb3726504b3d88ecd46a15077728ddc2b698a2e8c5ea5885fc534ac227b8f103d193f1977badf4f853a0931398da01f8019a9b1ff271b3a783ff0fae6f54db425af6e3a345ba7512cbf":"67c25240b8e39b63":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"d50d4c7d442d8a92d0489a96e897d50dda6fbe47ca7713ee":"41b37c04ab8a80f5a8d9d82a3a444772":"":"b36b4caf1d47b0d10652824bd57b603ec1c16f4720ce7d43edde8af1b9737f61b68b882566e04da50136f27d9af4c4c57fff4c8465c8a85f0aeadc17e02709cc9ba818d9a272709e5fb65dd5612a5c5d700da399b3668a00041a51c23de616ea3f72093d85ecbfd9dd0b5d02b541fb605dcffe81e9f45a5c0c191cc0b92ac56d":"4ee54d280829e6ef":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"38f3ec3ec775dac76ae484d5b6ca61c695c7beafba4606ca":"9af53cf6891a749ab286f5c34238088a":"":"49726b8cefc842a02f2d7bef099871f38257cc8ea096c9ac50baced6d940acb4e8baf932bec379a973a2c3a3bc49f60f7e9eef45eafdd15bda1dd1557f068e81226af503934eb96564d14c03f0f351974c8a54fb104fb07417fe79272e4b0c0072b9f89b770326562e4e1b14cad784a2cd1b4ae1dc43623ec451a1cae55f6f84":"6f6f344dd43b0d20":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"6db4ef061513ef6690d57aef50d8011e0dd7eb4432d82374":"623df5a0922d1e8c883debb2e0e5e0b1":"":"b7f9206995bc97311855ee832e2b40c41ab2d1a40d9263683c95b14dcc51c74d2de7b6198f9d4766c659e7619fe2693a5b188fac464ccbd5e632c5fd248cedba4028a92de12ed91415077e94cfe7a60f117052dea8916dfe0a51d92c1c03927e93012dbacd29bbbc50ce537a8173348ca904ac86df55940e9394c2895a9fe563":"14f690d7":"":"a6414daa9be693e7ebb32480a783c54292e57feef4abbb3636bebbc3074bfc608ad55896fe9bd5ab875e52a43f715b98f52c07fc9fa6194ea0cd8ed78404f251639069c5a313ccfc6b94fb1657153ff48f16f6e22b3c4a0b7f88e188c90176447fe27fa7ddc2bac3d2b7edecad5f7605093ac4280b38ae6a4c040d2d4d491b42":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"8901bec4d3c64071d8c30c720c093221e05efed71da280bf":"9265abe966cb83838d7fd9302938f49d":"":"7c447e700db7367260dffa42050e612eff062eb0c8a6b4fe34858800bcb8ec2f622cb5213767b5771433783e9b0fa617c9ffb7fde09845dafc16dfc0df61215c0ca1191eabf43293db6603d5285859de7ef3329f5e71201586fb0188f0840ed5b877043ca06039768c77ff8687c5cfc2fd013a0b8da48344c568fce6b39e2b19":"6f6c38bc":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"2c57eb763f886154d3846cc333fc8ae8b3c7c9c3705f9872":"9b3781165e7ff113ecd1d83d1df2366d":"":"9fe7d210221773ba4a163850bab290ba9b7bf5e825760ac940c290a1b40cd6dd5b9fb6385ae1a79d35ee7b355b34275857d5b847bef4ac7a58f6f0e9de68687807009f5dc26244935d7bcafc7aed18316ce6c375192d2a7bf0bee8a632fe4f412440292e39339b94b28281622842f88048be4640486f2b21a119658c294ce32e":"62f32d4e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"307d31a594e54f673bea2f977835670aca4f3d45c9c376cc":"0bdaa353c4904d32432926f27534c73c":"aa39f04559ccc2cae3d563dda831fb238b2582cb2c2bb28cff20cc20200724c8771b9805ef7464b8fc06c7b8060c6920fd2779fbc807c2292c8c1f88f8088755609a1732ff8c0b06606452b970c79997b985889404fd907c4668a0bcc11ba617175f4525523494a244da60b238468c863055f04db20ea489adf545d56c0a71d8":"d7385a7bd0cb76e1e242fa547c474370bcc7cc7cf3e3fa37b00fe08a56383ca31d023d8c493f6d42e482b0f32e4f244dd100ea08eee6535e5bb8d27f76dbb7eead6ba8e031ccd0eaeb649edee92aeaf0f027d59efd4e39b1f34b15ceb8b592ee0f171b1773b308c0e747790b0e6ace90fc661caa5f942bdc197067f28fbe87d1":"2ddda790aae2ca427f5fb032c29673e6":"":"0b92262759897f4bd5624a891187eba6040d79322a2a5a60fb75c6c6a5badd117abe40c6d963931bbc72dca1a1bf1f5388030fe323b3b24bd408334b95908177fb59af57c5cc6b31825bc7097eec7fec19f9cdb41c0264fd22f71893bcf881c1510feb8057e64880f1ea2df8dc60bb300fd06b0a582f7be534e522caadc4a2c7":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"23c201968def551817f20e49b09dbb5aae0033305bef68a0":"bd2952d215aed5e915d863e7f7696b3e":"23f35fac583897519b94998084ad6d77666e13595109e874625bc6ccc6d0c7816a62d64b02e670fa664e3bb52c276b1bafbeb44e5f9cc3ae028daf1d787344482f31fce5d2800020732b381a8b11c6837f428204b7ed2f4c4810067f2d4da99987b66e6525fc6b9217a8f6933f1681b7cfa857e102f616a7c84adc2f676e3a8f":"77bc8af42d1b64ee39012df5fc33c554af32bfef6d9182804dcfe370dfc4b9d059bdbc55f6ba4eacb8e3a491d96a65360d790864ba60acf1a605f6b28a6591513ea3cfd768ff47aee242a8e9bdfac399b452231bfd59d81c9b91f8dc589ad751d8f9fdad01dd00631f0cb51cb0248332f24194b577e5571ceb5c037a6d0bcfe8":"bb9ba3a9ac7d63e67bd78d71dc3133b3":"":"17d93c921009c6b0b3ecf243d08b701422983f2dcaec9c8d7604a2d5565ed96ce5cddcb183cd5882f8d61d3202c9015d207fed16a4c1195ba712428c727601135315fc504e80c253c3a2e4a5593fc6c4a206edce1fd7104e8a888385bbb396d3cdf1eb2b2aa4d0c9e45451e99550d9cfa05aafe6e7b5319c73c33fd6f98db3c5":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"6baec0669add30acb8f678ce477a2b171f89d1f41935c491":"b1472f92f552ca0d62496b8fa622c569":"5ae64edf11b4dbc7294d3d01bc9faf310dc08a92b28e664e0a7525f938d32ef033033f1de8931f39a58df0eabc8784423f0a6355efcff008cae62c1d8e5b7baefd360a5a2aa1b7068522faf8e437e6419be305ada05715bf21d73bd227531fea4bc31a6ce1662aec49f1961ee28e33ae00eb20013fd84b51cfe0d5adbdaff592":"5712b84c4c97d75f84edd50561bc1d3f1ba451cc3b358b2403b5e528290954348cf7a235b4dc11a72ddbc503191204e98a9744d85419508c8ca76438c13305f716f1e239a6d9f6423c27217a0057aa75f6d7e2fb356e7194f271459ab5482589ea311b33e3d3845952ff4067dd2b9bcc2e8f83630b0a219e904040abd643d839":"29a2d607b2d2d9c96d093000b401a94f":"":"beb687f062ae7f5159d07609dd58d7b81c478d180bc0b4c07ae799626ff1da2be2e0d78b2a2a1f563257f161491a5ac500cd719da6379e30d0f6d0a7a33203381e058f487fc60989923afbee76e703c03abc73bb01bd262ff6f0ac931f771e9b4f2980e7d8c0a9e939fa6e1094796894f2c78f453e4abe64cb285016435ef0e8":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"7b882a2df81fdb9275fb05d120f32417e8ffedd07457e938":"5c064d3418b89388fb21c61d8c74d2c5":"5bfa7113d34e00f34713cf07c386d055e889bb42d7f6c8631ffce5668e98cb19bed8820b90ecb2b35df7134f975700347e5514287cfef7ffa2b0ff48b1de0769b03dca6610995d67cb80052cb2e5914eb4ed43ef5861f4b9364314fde6ad2b82fbba7fd849dfa6e46ecc12edc8cabfff28d9bd23c2bcc8ab3661c9ba4d5fee06":"0aae7213da279b34d6dcf2a691b2d0333112ea22de0c3c68d47cf9f9f4ed8ad4e03d4a60ec18c3a04ac9c2abb73e1023051029b5e8705bb69c4c50afc84deb0379db5077be1f663652f8bd8958271af2c1ac4a87e08cb526bab8a030652f2a29af8055d0f31e35475caee27f84c156ef8642e5bfef89192f5bde3c54279ffe06":"0943abb85adee47741540900cc833f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"51d94d21482c00bb5bc7e7e03aa017ba58f5a23494b72c2a":"fb21cd763e6f25540f8ad455deaccdf0":"019d1db5569eeff83306f65d653b01064854c1be8446cd2516336667c6557e7844fc349adea64a12dc19ac7e8e40b0520a48fac64571a93d669045607085ac9fa78fed99bbf644908d7763fe5f7f503947a9fe8661b7c6aef8da101acca0aed758ca1580eeb2f26ae3bf2de06ce8827a91a694179991a993cdf814efbcc61ca5":"3a9c69c1ed2340bfde1495658dbf4f54731a19b3922a1d535df8d0b2582f5e803b5891e8ad1aa256c923956dcda2430d0c0696bce63295fb61183e040566e459338f908d23ae51f64020c1ef3d192428f23312b285fc4111d50d1add58f4a49008a22c90d3365230e9158cd56f9d84f079bdd673555d4dc76c74b02fa9920e7d":"a93bd682b57e1d1bf4af97e93b8927":"":"7093f44703f2cbb3d12d9872b07a8cd44deb62dae48bc573b11a1ee1c9f3105223423fac3181c312a8a61757a432d92719f486c21e311b840aa63cf530710c873df27fecda0956075923f1ecc39bffb862706f48bde2de15612930fc8630d2036e9e4cfc1c69779171bd23d9e1d5de50a9e0a0de4bd82ed3efc45299980bb4cc":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"e6756470937f5d9af76f2abe6df2d0bc15ff8e39b5154071":"4500193711a5d817a9f48deafda39772":"92fa22dba0eee6b1de1ddd24713b1be44c7105df90e6e7a54dcbf19025e560eb4986ee080cf613898a1a69d5ab460a3b8aa2723a95ac4a4af48224b011b55fb7582ae18f6746591eab2bd33d82a8dbbae3f7877e28afef9857a623530b31d8198b2df43f903d6e48ddae0848741f9eaae7b5504c67ad13791818f3c55c9b3d1e":"afae92bd56c426c095d76633701aa9bea5ce05490482c6c64ac24468c3e1af6e6030a6bb6649745b011c6729bde985b9242e22105322fbb8853dcabbd00165d0b07d7b499e0238b6513bf6351eb40635a798f7e6e2d31125dda45ffe8964596fdbff55df22d4e9025bd4f39e7c9b90e74b3ee58d6901f113900ee47a4df5afd7":"7d9f97c97c3424c79966f5b45af090":"":"62258d60f0138c0405df4b2ec1e308b374603a9eace45932fdc2999e9e2261de8b1099473d1fc741c46c334023aa5d9359f7ef966240aaf7e310d874b5956fd180fb1124cbeb91cf86020c78a1a0335f5f029bd34677dd2d5076482f3b3e85808f54998f4bac8b8fa968febceec3458fb882fc0530271f144fb3e2ab8c1a6289":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"30db73d46b518669c45b81bc67b93bed3d0864f7e9e8e789":"5069e2d2f82b36de8c2eb171f301135d":"ef781dce556b84188adee2b6e1d64dac2751dd8592abc6c72af7b998dfae40cbe692a4cae0b4aa2c95910e270600550fca1e83640c64efb1eb0e0a90a6fc475ae1db863a64ce9cc272f00abac8a63d48dd9f1c0a5f4586224befed05be4afae5bd92249833d565cc6b65fd8955cb8a7d7bd9f4b6a229e3881212871a52c15d1c":"750bc1d2f91d786bb1e621192a376f552538ba8c07d50d9e10b9345f31b3e5f9d8ad7c719c03d8548a3b184b741cd06c49d7fb6fe80258d60c01c2987c337c823211cee7c1cf82077266889bc7767475e0eeabb2ef6b5a1de2089aaef77565d40a1c2c470a880c911e77a186eacca173b25970574f05c0bdcd5428b39b52af7f":"a5100c5e9a16aedf0e1bd8604335":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"209f0478f1a62cb54c551181cbd4d24b796e95f3a06b6cb9":"7be1768f6ffb31599eb6def7d1daa41c":"9cb49357536ebe087e1475a5387907a9e51ad1550697f13c6cc04384ec8a67dea13376bdd5e26b815c84a78f921b506b9e2086de50f849185f05ba7c3041e49e42c0673df856da109a78b8e0ce918c25836f7e781e6b16168e4e5976d27ebc83f20b7bf4beadecb9b4f17a7a0d3a3db27fc65288a754b5031a2f5a1394801e6e":"66db7cc97b4a8266c0a2228e8028e38d8986e79fcbcc3caff3050fdd2de87b7ff7a6895b988b0bdb7fcc4d6e2d538dcfaad43ce2f98b6d32500f5a6e6183d84cb19157a699cdde1266d6d75a251ee1a2eb97bfe6405d50be2b17a58ba6eafaee0a023a28d568fd1c914f06041a49c79b9df9efe63d56883cbbbeaba809273d2e":"4d2ac05bfd4b59b15a6f70ea7cd0":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"1bfa30b315e7b908263330140fa2d66ed57104784a43cc70":"b7081a3010b524218390ba6dd460a1ec":"8c1f42b5931d69ae351fcde7d2b4136d4898a4fa8ba62d55cef721dadf19beaabf9d1900bdf2e58ee568b808684eecbf7aa3c890f65c54b967b94484be082193b2d8393007389abaa9debbb49d727a2ac16b4dab2c8f276840e9c65a47974d9b04f2e63adf38b6aad763f0d7cdb2c3d58691adde6e51e0a85093a4c4944f5bf2":"8eeee9865e23fa51dbbf197fa41776b7edbdb9381a22c935299cd959a46190788ae82f4e645b0362df89bfc00241964784bc7ef70f6f97e81687d52e552a33af20ae34a3005e0a7b85d094368d707c3c4cd3ef31c0daf3ccaa1676609ed199327f4139d0c120977e6babceed28896d2cb3129630f3ee135572dc39433057e26a":"4da85b8ec861dd8be54787bb83f1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"fc47156a693e59a1dea0618c41441fe669fc65dcfb7d0726":"ea1935ed014883cc427983d7962d9992":"0d85b8513becfe8c91d0f6ffb65ec31f2cf406c51c0da88893c43d1327fd8ad1f4bab2d7b5e27438d643397034a72f8666bf641b6781bc90f764db387eae6720b5723d510194570ccd773e1b3bebfc333cc099d078583e8dac60d174d332925a24a45110c8d2abe8924ea677ac74db66ea789e2838efc96c78bceaa6236c0a67":"3e4f0a586bad532a08c8863ebba01fd25014baa907e6032ee43d4a7dfc7c3171916dcdf9faee0531f27527872ae4e127b6b9aaee93f5e74d0ab23f3874aa0e291564bc97f17085dd7d5eb9a85d9f44574e5952929eda08863b64c85dd395c91b01fe5bef66e3fa8f9ee5bf62c25d80dc84fbe002ecfd218430b26f3549f734a1":"8781b045a509c4239b9f44624e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"b5fcd780a03ba80341081ef96b440c0e4348afde4d60c1d5":"ad20cce056e74ec5d0a76d6280998f15":"28f8fcf23b9c1ba40c19ffc1092632e35f234c1e8b82bcd5309d37bf849a2ce401413d1f242cf255ed597f9a93a1d6e50676997f95aa612e580d88234a86ddc404292746f0b2f5cf15abebcea6659f998ec6a1cb5a9914fee5aa1aa5d04b3c20914e45095e4141ce9c173653dd91c3ebe4ed4a9a28f3915d7b2edba34c2a58d8":"6316f3beb32f6f3bf8f2ff6a2c160b432bafd3036d3eefa1e4ec204f24892e37dc4d75c7ce9a24b5c49fb4df901f35ef9d5955f7dc289c56cb74753f4d6b2982267d5269d12237e21202a65061849c65e90e6702dda03a35ace3a3a098d16b4bfbb85b7232404baee37776a9b51af6b3059a5f170f4ebe4ecf11061ca3c1f1f3":"2ad4520ddc3b907414d934cc1d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"4382507dddccf1385fc831da8924147563416d0656e168ec":"a37687c9cd4bdc1ead4e6b8f78bee7f5":"fa9ae30509cbb6fe104c21480ae7b8ec9f12f1afb17320d77b77cdf32ce8c5a3f7f927e501118c7ccd6975b79225059cef530a4fcb0a9719f5e2d3bebe7bb6ec0855e495a31e5075eb50aa6c1227e48b03e3fdf780084ac4912eb3a5674cca9dd6ac037366b230ae631a8580d2d117942dee5d5ddbbb2233afeca53289cc4f68":"e5c5430b960aa35dc8540215c2772d66811270859e33dd4477904759e7e5eb2986a52a4ccc9f592e614147b5ea2ead6636a15c6426336b2995d9a31ab36d76578c3540bc6693842a4bc0491c7963ee9cda2317951cf93244bd30bcdfec69a4767004636fe7d1be7300c35e80627bab9236a075a803e9e1080b9159060c643a78":"4221818d4be45306e205813789":"":"b5b36719bc4d13a5fbf37188ea814cdf3c97a430784330540325c899570e15482300bc82c5b8163074e0544c5132e3ce93bba68bd7a8d2db81d1431b424b697c1158c4d70625666d5ff99145ca34856815c905b5a0fd95806df56b9cd5b384bda3e394b409048eb1037144cc071539c02397e931da28a43cc354d584643afd4f":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"7a66db3450dac9a1e63d2639f34c5c6a3fbfb3c8e8230199":"21f8341529b210ade7f2c6055e13007a":"1699bc8c198ab03e22d9bc4f3682aad335c6e35f3f616bb69769a9d5a202511797e770ae0d8d8528ef7b2bb25b4294d47427b43f0580fa71d93fdef667f4f4196f84e41c0b1978796d0de74a94420fb8571bff39137fa231c572b31be9ae72338288bef5f8c992121dc918538551f346e279a9047df14ec9fc0fd399cd3bd8d8":"6463a7eb2496379bc8a5635541525926a6f9fa718e338221952118ae4cf03a85f2074b4ebaf108b9c725809be1e6309c3a444b66f12286f6ea9d80c3413706b234b26372e8f00783819314a994c9e3ecf6abdd255cbfe01b3865e1390a35dcd2853a3d99ed992e82ec67ba245f088cb090adade74bdbc8a1bad0f06cbea766a6":"4af02b81b26104d1d31e295a":"":"53fe6a34d280f2c96d1ae2b2e8baf6abd67cedf7d214312f75dd4a1bec28a641dda3e71aa398726b2b0b1f515e1f4259ee97acaf17f122db9ec7814c2de6a88d36c3ac106396ad03d337c2cd2d2b9b4b7170e23a5848ca7ea129838f967dfdfe83b45ff2a9be699bfb2346115465d59f074f09e24d8fcbd9ece0018c92776c43":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"1f5c818f24d201f9fb23fcca211b0545eee5c5c9b440810d":"3a163067bdd90fce0406d1c198a88771":"a5e94e233d04fe0c4b6c4684b386902fe05096702237dfbe76f73befa69b6f30394cf9fe3358997942df65842748fb4f075a3dc06e147bd8d67fc4371113a4d75c70219257c650a6f38a136659e20a1cf3a119397835c304e0fb2a33aa3c3019175c86463043d5edc6992874f61e81cd0d26af8b62cf8c8626901d4f16d84236":"9a7566817a06f792e96a6a2ba8e0a01f8837e2de06796e68b0782cc54ed0b04fc5e24a1ad37d5ffb035548b882d88150e89915b89f57cde2bf3c43ab9dae356927daef6bd61cc9edd5e1b7a4abea2f71313677f1b2fdf3d8d4a7e9814ea820fbc3e5c83947db961839a985a57ced7f5e4a1efffcfd17a2c806d4cdc1e79162da":"b124eea927e2a62a875494a1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"9a301f7edf83da63bcf37216a3a33d7613331c3210281dd7":"d73a546b0fa307633ac89506fa86138b":"f57fe548cf4a551a216ffb24a1dcf1b79c95f9abf06443fd58af042d287c2165db373c82a94172db517840f22e45e966e3ead91ce1ddad132bcb844e406e84b76a0b5b0ee23064b66a229f32a2d3b9c71103f020c4ba57fc0f0608b7114914cf2ada0c5a9bc4afbfa9ce5da320f34beb2211d569a142f53bfd262f6d149c4350":"e09cc8543db7804870004706a26e94b457c125bd648b581a196f962f2ae8fa55d9bc66530ba5020e22d282080b4720dc9a2096a11c0fcc3d9a67cd1cf95cd7cd2417ba308c761e64be24347a14c9423447094a5c72a0043c288b35e753ba0aa748f208381249fb1c8d195a472192404b6c8172663ee4b4d4ecfa426e1fb003f2":"f536a3b8c333b1aa520d6440":"":"124a327a8c22b7652886dac2c84b8997ca8a6f61c9ba9c094b5aea41eaa050a6df6cbf280259e5466071bcfa53b4ebc76c3cc4afc8c0385189a5382933aa57c89aab78dca84331e0fe8f0aab3a7857d3e13f08dcd90ec5f0684f82088ef8eb7fd67e75de43b67afc3a0beb458f5ebd61b2c779e6c539d795c667bb7dcc2b762e":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"fd40e8226fd13cb95ba50b7cdf0f07f7ab7037cf8705ca50":"3406e70cbe16b047fedaa537eb892279":"390b18d22d5ecc0b5a524ae9afac6fd948ac72d1360775a88b385aa862cce8a27f3e4b420e539bec6e8958f8c1b5416c313fa0a16f921149a2bfeae29ad2348949b29a73970e5be925ec0c35218b82a020cf21bb68c6931f86b29e01b85500a73f3ee7eb78da60078f42550da83b2e301d151d69b273a050f89e57dfc4787cbf":"75aa7df5c3c443d48ee998064b6fd112c20d2d90c98e00d025ef08d1ad3595385be99de47fa627549b827c48bc79eb1dcaf2f1be95a45f7e55755b952aee5ae0748e68bee1b014a628f3f7dc88e0ebac1d1d00e268355f5101838ce125c57003aebc02a1c9d6ae2cd6e2592f52c0be38cef21a680ae35c909cab99dce9837aef":"69e06c72ead69501":"":"6e8d661cd320b1b39f8494836fcf738b0ab82873d3903c9ee34d74f618aea36099926b54c1589225ec9a9d48ca53657f10d9289c31f199c37c48fb9cbe1cda1e790aaeedf73871f66a3761625cca3c4f642bc4f254868f6b903e80ceeeb015569ace23376567d3712ad16d1289dc504f15d9b2751b23e7722b9e6d8e0827859f":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"a85ab87563b809b01725764d64ba4cc6a143e2e0362f0c52":"9f991ff16a3e3eb164a4f819c9f1821a":"df289511f78d8fa2505afc4c71ab1d7c31a8d15d1e5fcbb29d70f0e56f89c4d7b30f1b3b4745b5d2cc7af34fb4c95461372bf516ec192b400dc8fdb0ca9fe1f30f5320d0fadf20155cfcddcf09233c6f591c1c89917e38a003f56b94a1e2429d1f2b6297db790d7dce84d9fa13d2d86a0e4d100e154050b07178bee4cdf18126":"ef43629721b50bd3656b7ae31b6e4b4ba1cf2c72ed0460ee7d9fb416631ddc597e5f9aebbcf4442b95cc46e28476a464dd87caf9c1c1d6c99d3e3e059dc23f8d2fe155ff5e59c50d640bc052c62adee3aa1295b38732e3458f379e98a8dbdfed04c22a5761792e87fa67ecbcbf3b90eb1bcd1d3f49e60132452f28afece83e90":"dc4c97fe8cc53350":"":"ff0e531c7344f0425d62d5fbedf4bc8d3d5cc80647e67b852c1a58ad1516d376d954cb8dda739f6a4df3cf1507e59696610bcb6b34340d6313028e00d7197845d392e73331aaf168b474a67364d8f9dab740509fabf92af75045f0afabc1b5829264d138820952bbc484d1100d058a4de32b4ece82746b2b4a85fb2993d4add8":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"f4f1e03abb927ffd0b081b9dce83a56a6dd419a6313ac34f":"d1e29bb51a3c4e871d15bb0cd86257e2":"ae2911cdaaad1194c5d7868b6d8f30287105df132eb0cecca14b6e23ec7ac39cc01da1c567a0219cca7b902cc2e825e30f9524a473eb6e1d4d1beff5ab4f29103b2c7522a33dd33182fa955c4f09a75196b1072a6f0340fc55a802d29c7067f05219c21857ebff89ada11f648c1f28dfbfdaab56028f05509de17e2381457ebc":"0e70421499bc4bcb3851afa34cdf5be374722815abdd9bcee5f332dbe890bdc1c0210ab10667e5bb924bf3c1120e25a0c074da620076f143940989e222086d1b34a1200d09aea1f810ef6de7d8520c65eef9539fde5a6422606c588fce6264e5f91f934ede6397c4b307d2d7e07a518fce577a427fa92923cbba637ae495afad":"44f760787f7bc3c0":"":"2199fa5051461b67581429ab19de2ccb50b8b02e12c0e1d81a8a14929f84e09d9715b7d198e77e632de4af1c08c5041276204a7ed76646385e288e96e1a4b0b0f2b1a9df7f0892beaea3cb58d9632720158f6daa4cbbfc0ebdc56ff6a5175768ff2abd24cb7669bc3fe40f8aba7869d2dd7dac86b6ebc4e4ce261edbec88db17":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"33efe20433c6a1ad261a1fed494961749e5bf9d35809b59d":"dc94673b0c49c6d3b4611e278212c748":"919f7397a6d03836423b7cac53177fcfbe457d4aa4348646f646aae1bc5a15568cdb8c96fabef278ace248aca531110a4f4f9e8ab0c32525ad816ae3facf03175232dc84addcd6065f9cc1f513966b63fd27e91a09f1921b95d6bd8f08f1dbce073bcf827847f774514b478b9d7fb5426847dd4dee6f39b5768c1fb729b32d03":"cfbeb61be50def25f513346498f75984bfe797a8ad56be34f2461e2d673f6ce14e7479a59777267b75dadc6b9522599ebe5d7b079495a58ca187ec47796f6ee8c322278ad7451b038c938928adcff6105a8ea3780aedc45b6a3323d3ae6fbce5da4fb59ca5ec0a16a70494c3c4859672348532505e44f915e0b9b8a296ef5225":"c5098340":"":"c5e47d8c60b04df1974b68a14095d9bc8429a413d21960b15bae4fd7356bf7872e0da0a1a385ca2982d3aa3182e63ea4bb8ca01410cd4e71ddad34aa1f12c1387902b3d56634f89c619a2e6756648ab3bf90e9bc945afc9140eb935b633bae96bb067e9ee421697bcf80b14b1b88dbf13e010b472a7ca5411db36848b9c7a37f":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"3ed5dadefa0f6d14fedd1a3cdbab109f6660896a952ac5ab":"553a14f1e1619f9d7bd07cd823961f25":"eb8ea81d3e328a1113942cd5efd0f2b5e7f088791c8fc05690a34584101c4d493628ee7d0099a2865ac194b9124c3fb924de0c4428d0a1c26ea3ad9a0bc89187a16673e3b6f7e370dfb2dc26e8a56a9cf91f9c2088c020a766efe0d0c91689743a603f2cd1e300a6a84828b3b515a4b9a06e6bb20457bf124cd6ce4ac8b83d51":"aef617f69724e020309ec39d9587520efda68a8e303686c3a41ef700cba05b7c6e43e95aadb1a566f61650c87845835e789eb2366941e3bfef6d9846af0e0dbc43249117ad6f299bbc40669ac383cdf79289ada6ccd8ccfe329a0dc6a38eea1a99550457102d10f641cda50c21f533b1f981663f74a0a7c657c04d9fc6696ff4":"dc413c4c":"":"bc1f34991a48aabb0fea513f790f0d223e9feac4c99fa1e8427f01ab8b4b2827cfaf239342de36051a846af0306a3f82e7aed98dd0416fb078bc7f3b617b00ceb2cea4ddafc22dd022efa8303e9804510e0e888065d8427345156d823f796f74130c06db9f9934435552b4fefd051953e20ecba3a4514ac121d7d2097d597439":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"6d97e8bff3923a778504fb917dbc1428a1328587047697d9":"0c28dc4cd53725091c2fb68a476c2e40":"f3932f5e82d75a1e3eba1591c17769e1a45819ccf057c31e76fa810b93678766d25905e859775c244e96bcafbc75c4a2d95e7d02868ccb2f65e49276f0b645ac8cf6e3758402304a3c25ce2de0a49f401b1acadaff8b57589b45cc79130ddc8387f41cc383e33ef38eec019152051c756198d6f782ccf56297b9fe944269a65a":"dc1a81efd51e967767f5bdd7e2e425732c1d28451f2bf5bdf3f5a6492279330594d360dd8a193e5dbde1be49bf143a35c38bcd059f762ada65c5119e097f0976891347f4d829b087bd72daa3494b344cbd3370c4459ca243bd57aeda4cb86cdd0bf274f07830cdbf5e5be4eb9b742ddffef8aa35626d2b9ea0a29d3c3d058b28":"e6d6df7a":"":"39327836e9d8cfb59397adcf045a85644c52c3563290795811f26350c8bce8f55ca779cbcd15479efd8144b8a39ef611153955c70bf3a7da9d4d944c2407a0d735784fcb68de1083eebf6940ebc9cf92f9f139c01404b503ff64e61126a94e881351473507884357040fd32714b872c254349071069644e2bd642905521b944e":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"2c78e29971e90a01bb65973f81260b9344fa835751f5f142":"f1a23ce6e2bc9088a62c887abecd30ae":"":"":"d4d5c22f993c8c610145fcbe4e021687":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"8c582d5b6a40ef0e4048ec20f0263572d7cc82704e380851":"ef221a1c66fda17906190b7c99ab60b8":"":"":"6327dcb46ffb3d0fd8fbf3d2848a8f01":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"3a58abadd29e946e23ca9eb09af059913d5394971bda6a4f":"7c29b3196d44df78fa514a1967fcd3a6":"":"":"fc123944bbea6c5075a5f987aed9cf99":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"04bdde4c35c385783715d8a883640851b860ce0e8436ec19":"783f9a3c36b6d0c9fd57c15105316535":"":"":"23e21a803cac5237777014686564f2":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"4ba5fba0c22fbe10c2d1690c5d99938522de9c5186721bac":"2acc2073089a34d4651eee39a262e8ae":"":"":"7ac742c859a02a543b50464c66dcf5":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"f12890b0a8819faa5a8e0e487f7f064af42fa6d5519d009f":"c937615675738f4b3227c799833d1e61":"":"":"88300bd65b12dcb341f1f6d8a15584":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"51878f3630298a81297f4a21514fea637faa3815d4f26fae":"1f939226feab012dabfc2193637d15b1":"":"":"eed5fcb7607c038b354746d91c5b":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"ae596e74840a600556a06f97b13b89e38f67c152f1a1b930":"e2076e1050070d468659885ea77e88d0":"":"":"b4586bdbd4b6b899648f2333eee0":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"fd33b7a0efae34339ca987b5eb8075385fd1276e63cc8530":"2d07bb8616fc0bbb71755a1bd256e7fb":"":"":"6b60d645220cfde42d88296ac193":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"5685b12a6617d554c36b62af5b8ff2239cb3ffb1d2c40e14":"6c31194df99d08881fa5b1dd33b45a92":"":"":"69431593c376c9f8052bf10747":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"036ae037410dae9f0741608516d03b855c9c1851df8c54a4":"73599275f8237f14c4a52b283c07275d":"":"":"6f7249d25c9f273434c4720275":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"ac144f39ebd6124bad85c9c7fb4f75bff389ece2e8085d83":"d0871bfc3693245be478e6a257c79efb":"":"":"5a99d59631d0e12f58b7b95ccd":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"a8a541ff11a1b8548e832d9e015edeccc94b87dadc156065":"c72bb300b624c27cded863eba56e7587":"":"":"ea2528e7439be2ed0a0d6b2a":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"30dd8f400335e9c688e13cc0b1007bd21736a6d395d152e2":"28899601fa95f532b030f11bbeb87011":"":"":"35625638589bb7f6ccdb0222":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"cb8f672b04d706d7d4125d6830fff5d2ec069569bea050ce":"375d4134e8649367f4db9bdb07aa8594":"":"":"70610bf329683e15ecf8c79f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"bf71e5b1cd6eb363ecd89a4958675a1166c10749e1ff1f44":"9f502fb5ac90ff5f5616dd1fa837387d":"":"":"a4b5138122e1209d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"5b9d1dfb2303b66848e363793bdca0e5ada8599cb2c09e24":"2ee96384dd29f8a4c4a6102549a026ab":"":"":"3b33a10189338c3b":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"a35ae271f70ebacb28173b37b921f5abcad1712a1cf5d5db":"8d97f354564d8185b57f7727626850a0":"":"":"813d2f98a760130c":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"9bdd0cb826d5d28c2ab9777d5a0c1558e7c8227c53ed4c4f":"daf13501a47ee73c0197d8b774eec399":"":"":"a6d108c0":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"81b4d5ee4e1cbee1d8966fb3946409e6e64319a4b83231f5":"bc2f9320d6b62eea29ebc9cf7fc9f04a":"":"":"a47cdadd":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"5813627d26d568dfe5a0f8184cf561fe455eb98b98841fe0":"817199254a912880405c9729d75ed391":"":"":"d81d9b41":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"94f160e2325da2330fbe4e15910d33c2014f01ace58e5b24":"80a1b99750980bf2be84a17032fc2721":"066fdd980cf043a732403ee5f65c82ca81e3fc858ad3cfa343014a8426fd3806770f127e2041efb42e31506ce83390ac5d76de2fe1806df24ce6e4bb894972a107ef99e51e4acfb0e325ab053f9824514b5941ab1ec598fbb57a5d18ed34d72992a19215d914e34ad1a22326e493d1ff2da7bc271c96ad3ab66d0c32bd711293":"":"dd153cfd7aa946280660c445f586fa28":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"4785846f7c0524e78f3eb137fd433e1808af64549af69183":"5334476a5fa3fa50dcc4b12f8ac00b51":"e70f82d1e3361ac5a5c9a087e47984d5533ba296f9b7e4a192a4ab28a833cdbbd5cece3415cf6fbb2f8055560b5c31c98d83d139954e1c03a464739f1eb5ad982c4371cf20b8984bbd97d5f40b336f5e96df3d272b95f7547be15c3bc05b3caac7d08c5eb5de8bdd246e74f6caa6bff76ea0417730ce72b911867f88fdcf73a0":"":"c59231ddaae98e0e8db6b3fe8f4d3427":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"49b085fe1a8e1ae769ed09fc585d29eb24d589689992e6c5":"899878b0684fb865d30190821817b88c":"f789eafe3d02826b619ca4fbca7bb1919e5c6f7c33824a2f7f815dc50e329979705f7ef61e9adf7899d34f1b8840384ff62ef6d29eea38c45d12be9249aca69a02222cd744d81958c6816304ff0d81d6714a2023b3dd9d940db5c50afd89c52774d28d6afde2b6c68425b6acbe34682531a2e57e2b9a7729b3e8d96a729b15cc":"":"2c84bf7a8947ab93b10ae408243b4993":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"75847588760ecb6ca548747b743914c89fea367a5ccb81b6":"7d8a9fd254e2061c01e39eb574951924":"b03c57dfd49152401a225357f1d6e533f3a423e5cfce07b8ae7ca9daf68645e5bd67b3ca2421eac447530b27c6dc6bd9c7f1b22441b8cc8c4ac26cec2c9c0d665a35b66d779a3772d714f802d6b6272984808d0740344b6abdb63e626ef4e1ab0469da521c7908b2c95a0fd07437c0e9d4d2451ae189ad61ff19f4efb405127c":"":"e8aac14b53cdbc2028d330fc8d92a7":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"e3a18a96d2e45d2f60780dc39cee7160e28cb810bf09858c":"26a4d659665ded39b7a1583de756d0ad":"83f8d9c58169b4c68032321197077ff5c8ee4ebb732b040748e1b55dcf53375ae86fb9646a672b5c5bc805a92c475cbb6d0ed689a58abdf2230250a7d3fbd8cfab07835fa85e738a7f74bc3e93616d844b1ec61b79f23dfea62e1815f295d43f61d7b5956103b31ca88afb0b3d37eb42cf77232dbf2258065232971c397dcbcb":"":"dc034564d4be7de243ff059b5f9160":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"7be3909170ea7a2ff76f9f28241d8cc48ddeafa8517c6f8c":"8dee7e29350c60c5bcfec89da6617d2e":"f6e9e7a7f9716760eb43060d5c80236a0f118b0f750ebd5df01fd2dba95c556ecd2e54a3f337767321abf569c8137a8e48c5b44037ba62951e9f9f709e6e4540a36d769f3945d01a20a2ed1891c415a16d95cab7ddf9bcebf18842c830067509a2a5d49a9684324c433d53824d2f8fd326b149af17f40e5bf5e49185738fba60":"":"942b52277e9dc0a30d737d00f5e597":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"1fe413bafc4753e1511b580c830449bee56e0e5b9acb852c":"e30829f64f3eda13bfb2ac572aceb3de":"6c772d08b4d7507e35804572fa697c646c77301954cc5c160941e49e230697ed8c23338b9f30c3ead69b1c1a2329ff025dcd3c0d0a9cc83fee4979448aa71ddb9d569bedc8c497a2a4ac3b60d087d7872f0a110bf90493ae7da03b0953734223156cd2d6c562e4a978a6dd5cdb229dd58dd4d0f50ac015f2f5e89dac4aa29a19":"":"87737873b82586bb29b406946cae":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"b4bc4378d423931f9b320bb57df584c641406c1daa7448ad":"eca70e10c0358838a3f4a45c4b016ccd":"68d1c045c1604e3c3dd4f7c7543240aca8dbc5266dc18c5a8071e8b09e3700b7cf819044b2722d8db92021f42a0afb295d7b16ecf4e4704a50a527a2e72d7f53617c358e3b7be3d7fecda612ce6842fcfaa68f2d1b8a59d8b8391779f2fab99f820862c94029f444abe62367c5de0a4becc359660e4a5366f7d482bdc362b866":"":"06f95ca69c222a8985887925b15e":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"1cd4414ffd24e830e2dc49727efa592e430a6a75391cf111":"a08e32ad7d63f975de314ad2c0fa13fc":"20a271f1f4c6bea8f1584ab39a7179ec448650e2ff67a7338d1bc9fab7f73b2ce5222cd07ded947d135d9d0670dc368f0a4b50ece85cbf641877f9fe0ac6a7e6afb32fdb1b3cd35360bb80cfffc34cfb94dbcbee9ca5be98a0ca846394a135860fba57c6f0125dcb9fb8b61be681ada31a997638ee172525c03dd13171534a91":"":"c68842cafc50070799f7c8acd62a":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"9e0ef9ed5e6f00a721a9893e1f0d9079c5aa667a4cdd2a52":"5f015fd556e87ff0d0df586fb452306d":"b82986135e49e03f6f8f3ce4048ded2e63ee0c31ddc84929e022ee8561159179b3bb4403ebdafdf6beae51ac5bf4abed4dbc251433417ece3228b260eca5134e5390cba49a0b6fcbbbabb085378374e4e671d9ba265298e9864bfce256884247c36f9bddceb79b6a3e700cb3dd40088ba7bb6ab6aa11b6be261a7e5348f4a7d1":"":"ec9a79a88a164e1a6253d8312e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"9bc8f15d98e089d60d4db00808700053f78b33c31652c3e4":"5cc0ff9bb7d5b9b2aa06f6ecf669d5bb":"24ac95a6ed2f78853f9ab20f53de47e7f662f72aea454141e2131aace7ed2daeb395bbccdbf004e23ce04ad85909f30151b6526c1ce7934726f99997bbab27055b379e5e43b80ad546e2d1655d1adad4cbe51282643bb4df086deb1b48c1bd3ac3b53c4a406be2687174028ecf7e7976e5c7a11c9a3827813ade32baef9f15ec":"":"9779b7c3ece6c23d5813e243ec":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"19afc43a4481f796d77561f80b5b2e1514c96c5d1d86e64c":"d4c06595fefd4a81bbbd4b40c2e1989d":"98fcca51352998d0126b5539e3fb9a238ac31c05954fc206d381909aee70983b6ab99d3f3efe8530a1c3cfe3b62756321b1d0771a5940055eba1e71fa64f29291aa5e5b0af0fcc8e6f5a02688d9e93417225eded791a35217822ffb346d3fa2809b65abe729448316be30cf661137d3c0e49846cb0df598d90eda545afb64a5e":"":"ca82448429106009094c21d70b":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"b4fc31dcfef6203fdb296cc928c13b7df56bfe6f32583057":"6308a78dc8f3c90442dc52196649c38e":"2567d80c253b080c0158102558551445d8ce4d5ddee2014a2be5cbad62e1717a0fd4d2059447c3151192951eb11a4a7b19a952f6ba261c87f10f4c9032028de3cc5a2a573a4e993a690fc8954daa3ec92743e7343e75b646c4fa9cbc3fceb4f5d59bb439c23754c4d9666fbc16c90c0cac91679b6ad1bfe5dcf6bd1a8a67c6b5":"":"9d1603799e2485a03e7b05a0":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"1c2d9412486c381440213e1588b6bb58b0da53300b9d3089":"727ed8846daab874d5a9918b47d016f4":"656430f0c1423018b5e2efbb1e32a5385c1a9a1779c4dbd585dea91edc39ea8752ebfc2d8064251a8a5ae71e1845f24a7e42c6371c2ecb31e2229d5f4923bffc21d4804575a84836f3cf90ec6047bb360b558a41a975ece111b5284dfa2441705a6df54fc66ca6cc1af9163ecc46902fac337d5f67f563fde8e8e7e64b8588b7":"":"05ee6ce13711535864674a5b":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"abf7a97569427225a4bd5143c716a22e62f84c145bb51511":"e255088cdfe8ae5c9fea86d74d2f1b7d":"b850993300f54d078f83ceb9aef7345bbf758f92365b6625c210f61dad4f2a2319f51d883a383a706392d3dfca1706eba585a6fac8bd4294c0bb2cb3f6b454d5c97819e8e5c926754840261b07ec4ef1f87cf281d75c187839689944230306e1903047915e086043990745864819ad713d34a244aa4e9d755fdb137105d7eed8":"":"0c9c17388d0610f99d0a093f":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"45a6df655e88bc880acff41520aafd0cc8aa8aeb8952fd06":"1125e1de94970c9e7be70e58e7626ef4":"fe9838a445b8edef19b3e9f33c8c0c265b3a12c97b8ec57ceb94f65ae5227177de38f1e338dccb2b24e5bd0f0eb8127f83eba0f1ddfa55198789df0cdd1d977fcb985ad9c7d51b96e749d2cf3cc7a1ec4dfcbc641a1a022d55def328e081af890a7e699f2dbafdf506389e045aa1219239d5868ba675a3925602b6fb6f6e6d37":"":"1c3bd1e0d4918e36":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"279f4f2ab4b70778fdb9ca7800cd20e323601d7aa2c75366":"0f7b402560735cf03d5da58de5b6c685":"7dd9a8c848bbcf5127161c8a419a436a0dad559f7c1613cdf41594e177016acb1ccf44be852185c42e7120902a42efe83855995ab52cf5c190d499fcfd698c671fd72949dc3ea7ddb874e586a3aa455a021cec7b5f8608462ca66f926aba76e60a5846d4eb204155cd3c1328da51ba35c3007b8bb394f34e3a8b81ddd2ea1115":"":"dab612351f75e2cb":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"6716ab937755684af7403e6fba5452c1b11568a9047bb50f":"2fd5a446dd564619ef75b6e00905ffe0":"20d261d3192996c21da69e979c26f5f937e6ea4cb7b05c6ef556ce4d86ca0fe85ec2425d274c43b5212fe9d27bb48b04e887461a9f45f524059b87eaea2e287a8d4537f338b0212012a9d4b6610e8c97dd554e0b3c3133e05c14d0ddab3524c93fd527e223b1996b4cff0a4a7438f1d54890bf573cd803941b69e5fc6212c5d2":"":"f1d743b7e1b73af5":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"7dc94b5bbd6315ad8d2b67f0c683d10cf456f822a3ebb024":"6f3eedeb57dcf12bfb3cd80849893c90":"ee1ff367f4b23c156e3dccff84ae4bf2b8ecec1fb5ffd25ccaa93b6c6834389bd79655bd4bac75238eb0f65d3603ecc57c8774798309e85b6677e78ed2077b712cf28795d0dc8fee994f97373a82338ef67c62378136a79a990ecbcd6367445e805efa98f9168826e57cb8dd7e7b1d5c89ad98358646fa56dd2a71c40e0275a1":"":"4dc74971":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"3bbe223e253bf272599e28af6861013ecd0c88710947ed41":"4fbf09ffaffb600f0de38fb12315cab5":"5388146f6479f7b3b280f45655a95b847ee27c734fb2fd91f6c009b1ab1810c772c7435d3221069f9490d251b76e740147906ac1db1c209c175b21aa10881c44fb307d4d2900aa3b1d56fb0edb9f2a58505653a17fee350e12755b9656bc65c78c1593d5cb7178e29f82209caf53e60fddf725f6957cc9718bf410c4a0229ed4":"":"fb845ab7":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"461877813acfe6e9979eab729b52e3d192b3236758bb6563":"6985cf77b75a47a3978dd6412d59200b":"385551854a89ab37063ba0ed911501b3d632153c5c2992e154c0a334bc36620476f11495437b842409e0954f7352cbf288d158bdbbaf72621ea2ce75b708bc276f796c5aa7fd0071e522c5f175a9e7787deef79f6362101aa3607b4588f2e1df7127f617c6073593a1c792b959e201e4a7a43ea8b1c3af026376439ef629266c":"":"c840d994":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"09770f9114120a2c1c3cc416fe0eb8699e07141158a5bdff":"cff291d2364fc06a3a89e867b0e67e56":"":"875e2e5b5c02e0a33e71b678aa29c15ce18ec259cf4b41874893ed3112daa56ff2a7475681b8b3d9028ef184d30658e881c908f3588f69899962074db4ddfc0597f8debb66c8388a1bccf0ffe2cf9f078dc1c93f8191f920754442ad4a325985c62de1a57a25de4e9ed5c2fd0f2c8af33f3b140bac12bf60fdb33e0ec557955b":"81f1eb568d0af29680518df7378ba3e8":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"4fbf1c785c087ad06b43d4163cf9b9396deffd3712856379":"1c8f41424acaf009996ceaa815b24ad4":"":"96a690e5319c94d94923988025307e543f16fd970aec24524cf9808dc62b093359287251503f4231bf52cd1a16a80bfa82d8f585d96855dc1932f4919a92da2618d6448fc18a234f9acb386ab4ab4a9e38ea341e7c54faceff38c162d74e7fabbca13aadb71e9c8ae6072e7bef4073cf08aa7faaa6d639f98d15bad4ed183ced":"9f3c0349c5a4a740a82d6d63bf00fb17":"":"6100b091e52366fb422251d9b68974b6c666a62a8bb77a1ffd7c7d1ae586a6ee763b84dc11aace02a25af91d194b70b3265ec46872fded54275b7ddb26ee1f20c857328f46a694fb1dce68bcaecbd587ece5b505d658d57d50333e30b639eea1f6537b37c175f62497c6c84e3cfddae214285d2d68d90dd5cd8ce2273d25c8ca":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"3e0ce4fb4fe4bb2fdf97b23084ff5671b9b899624184acef":"a950ab0dd84115e3829ab0ad3bbb1193":"":"df89974b1534f0ba262bbea5efe39d8b72820cc8a720cc99520fedbf667515c3f6d8c3e25c72c48c1cff042171df58421741aacb2a49f23167257be7d7004d56b14901b2075eaca85946e9fbf1bbf4ae98227efc62bf255a25dd0402d37c67ba553531c699dd89ff797e7a5b5b9a9aa51e73ca2dacfda0f814152aa8ed8c79f9":"25cfde73e7a29115828dfe1617f8b53e":"":"847b54e176ccc83081cb966efc4b4a3bf7809ce0b4885009f620f61fafcaa78feee91a835ae6c1a942571811108b1e81b4c4ddac46aaff599c14988c9a1fb9f387ab7f1357b581568b7b34e167ac2c8c2b2b8a4df3fd7ad8947a363c1c0cb782ec54b1901e928821cf319669dd77eb37b15c67f13ad787ff74312812731ca3e6":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"6be3c66b20e5e66ababbfba1b38e5a716eafce23a1767b69":"3a2acf69bba19f5d1d1947af2cfda781":"":"de1cd978354a499415176f260021abe0a8c5bc34d166f53d20e02e413e1377ce4ef5d7f58337c62251a3b4ddea0dea23c40e5de037fd5dd8a558eb53bffa4e8ce94899afa8284afab503c1a485999a154d23777f9d8a031b7ad5c6d23d6abbe3b775c77876ad50f6bed14ac0b2b88fb19c438e4b7eb03f7d4d3fcca90dd01260":"f826d212f7c1212fb8a8bf23996826":"":"fd1f7b56e5664cf4c91e58f7c50f6c5e98e42ca2e4adcc00348cee6f662b382ad4022da54a47d8faeb9b76a24dfc4f493c27fc0bc421a4648fad7b14b0df95d8752013feb033b1fd971daa2c9a5df898bece6a3b8fa078dd130071df20a68cd0f394be25dcbb3e85bdfa0df4797fa6f01f5f0da7a6e86320207ddb5b3be53ae0":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"d16abb9f5b38d7f5abba9dc36995ce6ce928ed822a07b7c4":"3cd95429c6de1d327b9eb3c45424a87c":"":"e72f29b1fc1dbfc2d93a0f3b79ea4b9806ce9b2c4d490ac5c0c3c793df9dc7df5471e834b84d18afa5a7516f9a6a813a9b65ae2f083a854730547e28a1f60fe97d8dba1d2d433e11847b9bffd8873ec634e64365530c905dd6f274e45c9795ac127a6f356f63cc6c116c5dd8c628e7e17e1fadc58f8452bf21f53c4133198118":"13521236f190f78e75c0897c5fb237":"":"cd8bb97c28df092b6783ef653fd26f2bdc27c442bab0a4c7bee2789f389dcd1b280c0231672721bfbbc939a0449557678ec61ba0afb2e5817e6f7d94387f84ecafbfa1216d65e7f5025f47b0d2905cff7c99adf8306a3d9850c5908be05f87cb1d36a4837dba428aac97d7fbc18e3778f8d81a319259504c87fc94bd0766ed93":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"0bc344b1a4078807e5f53a6e7e1e36fa83108473ae2fb4c2":"bd505fcba464e6e2c58fdf29f5695fb9":"":"8bd73f94c71e3765bc7d17fdc90a9ba6aff9648b46300e4048985fbbd7c60c39c3766f7c524780bfc2296dc11e1132134921760a373104edc376eab6e91e9a60a5c4a5972935df12eadae074722bdc0147c3caf6a62fd449ef37d76b65f6d210283c94ac524cf13186e444d80a70b01e4373cc0462546f1caee6b49e738a742c":"8510fff71bb879f56ea2fe43f6ff50":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"c8097398fc21f93eea6a95aa93a3231096817b65520bc549":"776248381941e16908f52d19207881f5":"":"80b0abbaebbd537a0810ed75cd172d29d50f5982e4d01f8664ddb2dfda8f57fa0ed87e64a779a1d7f5e568b6acfdc739572a7176752307b430fb1fa1c3c2c346477cebe7d01b16745ca6c8929a7f446c03ad9a9e8a5a935de78ca6c701e8c1c5e6d2550c42949cf5342fb5ef4c6ab9bb02ace8388b16edf72a1237e5d1d0e820":"7fc4388b2f8eab0f0c2d6a08527e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"76d4bb5694faaf344db83bc6d6c47d56bb6ab52700826f2d":"603977845d82faccb401817ecce6e2fe":"":"9e31fda6a171f0d4a5f2af2c4f827b1312d9dda5d78fa329b8f1b6373b9b29be358601e5bb0d0c615aef4b9e441c811219f1f2ff2d0ab23e0cd829a88b5b615ee72e5e3ea604fa26cc6438ec4c30e90f7348e9116adf8e8efb7498320d2da16679fa546b1aa9afc7720b074c4e48e06862d41428c9e71a4772c2e195a6f36978":"c955a3bc316841be07e406d289c8":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"a3e5020695587984074d78d9c98b8e1a5719e5f88372740e":"4cd56de54e5140a587be7dfd02d3a39e":"":"c0bfe3b2dc4dad17ec5a7662d86847fb67e582cc0baf469bc9baa7a075d48a8b97521a1072c2798bfbdae5ca3752eda1cb96fe5cf24af989eb77a2948aae3d8b70d83d93f84c49347f788480f34051621c358c03cf8159a70fc72cb8bc02876234ffe76b181da8b22b8796c87b0904da1af46de519c20d8d1b1dc7cc24e39ba5":"1a29527a41330259f918d99d7509":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"afe986ead799727063958e2ce13ca846f76c51605439f839":"f85a95ed10b69623162ab68d1098de94":"":"7c1b354a5bb214bd95147e32d81e658705089c38035d0ea423eb1a5c82f97443c6903d2cf1ba7a007eec7c8ff98b8f82b073d9636a79bd47c7f2f639a8eb4e92076f9ed615766f43ac3a4f1687301ed7d507766605e0e332880ae740ab72e861a2cb6dce1df1ff8be1873d25845ee7c665e712c5bbe029a1788634bce122836c":"3cf1cdb4a4fdc48da78a8b4e81":"":"a7f252ad7983e7083260598051bffd83f40f4d4a8b580cc2388d720a0979dde71549ddcb86b0a62c4964fca591d0982f3a203f2f8884ff4991f17e20f759ea7125ba2bb4d993722f23938994eb2709c850f33ed9889e5a3966f9d7b76add46aedf230e8f417425f9db79ccd46b5660361de7c5d87f71a9d82c491c0c3daaf56c":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"2cfaa215841826a977ae6adfdd993346210c49dd04d5d493":"537a4ee307af3072e745570aaaadce34":"":"e8eb3b6edd0ca4201b49a6a83036445aba1a1db040f3e74511363bce769760a9914e05a067f555ca15a57c6e02e66fbe4e04dd8c8db8d6d14ebc01cc7d84a20ff0aacb69bb3679d6b7d9d2e07deda7c2d4fe4c584fe1166e78d21dc56b9cdad93709c03b9145b887f87b4f605f24f989d5e0534fc71a58e8a8619ee99f69e5f5":"df01cffbd3978850e07328e6b8":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"128ddc83d2170c403a517615056dceec0d19d6fd7632e738":"5124b410c43d875eca6ce298c45994a7":"":"cfe9f7797ee37bfc4f564419bf2268c964479efa7435970874154432930f3b2736438da4dc9c76200009651340e23044bc9d200a32acfd4df2e1b98b0bae3e9ff9d6e8181d926d2d03f89768edc35b963d341931ac57d2739b270ce254f042b64ceac4b75223b233602c9a4bdc925967b051440c28805d816abe76fc9d593f5a":"56ad9c1653f11a41fd649cccd8":"":"cf91f087fd7faf362caacf4a68cff51ec57b3075563e4ad0955df20b366e92bd75c3762cf4a6f0eb859872667a5c55aa5d94f5ac9479b1b9c9345b50f82379d551506a2ab02b0441b14b28b78a12b38500d703a8c19888fe612d4710eec7cd18c16d6a4b55d3c69760e2bed99efc8b551dbe2ac9b9b64715f87180b8e14d1795":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"98581c28983c4da321ce0c419cc0d476d539e77da513c894":"ff10234524433b871202c2cca6acb194":"":"bdef5b65b5111b29e781a6b71a0160179c52b5bccb1ac5c0377b26cf3f61432f3ccd67633a836357c24b5099db0510a7f8110f59e8227cacd11f17ea1798b5d4d68902ca6c6eccd319fef14545edd135078b38d43b61c9af269fc72f7a209ba7897e4c6dbd21bb71d7e93d2d2426ffa1557cae28e74059d3baf06ba419a47b39":"984943355a7aef15c4fb8033":"":"808e28bfd441cb8890416a757d252c986daa8d607ac9cadd2f4fd29eddbcf3b859ba298e14a4ccefe2c2752b123f87b98d6708fde48faca4bc7dd818a7ea76cfa4357932e59cb6be0e9283bdfb49454b86b9fd04aa8cdef503c65d13fcff42e9cd8f142f8c06cf7daa6d8ef8b9c9d69c39e8afd980048fecf731fd674b2a814b":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"167b8b6df8014c8f3de912b77f5a0c113580aa42d785298f":"49da91e926091a448d57d521cc90f3c0":"":"4f787de12ba907a589edf74c8e7a6cdaaabebddd465a86e170e1efc289240298b516fddc43c7fd9bb1c51720a4455db4dd630b59aebaa82bd578eb3cb19f8b23ee6897c1fefaef820430efa6eb7d6ff04de4d8b079605fb520b0d33e96c28f0cd71983c4ce76c0ea62fd7209d21ec7b416881d545824a73d1f9f8d3323fdb90c":"99198f55f9fa763651bba58e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"71f5f8505fba62f08fa0557dd5407fc83a852c6007ccecc8":"b5efb9feae3de41b5ce9aa75583b8d21":"":"3e19ec02365e450e946123a3362f9859352eb52902a6bcb8a782285dfac9d2b282f56302b60d6e9f53fddd16bbf04976cf4eb84ef3b6583e9dc2f805276a7b7340dec7abde4916fb94b0ed9c9af6d4917b27e44d25f3952d0444cd32a4a574e165a23fa8c93229ceb48345171a4f20d610b5be7d9e40dcf7209128f029fed6bf":"9604d031fa43dcd0853e641c":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"4cdb38f8185a4186fc983e58a776a6454b92ecf0bffefe98":"aef257dd44d14d0bc75f9311ef24e85a":"":"1ca72c50a093076e9a9dfa09888b9c89eb36a942072fc536a81713f05a2669b39fdb2871b82ca47dcaf18393ca81dcb499aafcc4ed57ea79f8d4f9bd63540610215b2c65481b294638cec41264a7fdca4230df5fe1e7e3d8d26dcd0c435fec8e9bf778f9e6f13482157a9722761601e08425f6160d3bb626ae39ee1117b0353c":"d951becb0d55f9fb":"":"2eaa7e922dbd8963e2078aae216636276f3f7cb5d7f35fa759e91bddb6e247a93c388241ba1d0d37040c0b9e447c67d35b4991c1acce97914f3bc22ee50171bc5922299983ee70af79303265bc1ae1e7334202460618b4a8891d1a7eaaac5cac1e4dce024ce662d14849993f89e771fb873644b552120fd346250df39aaaa403":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"ee8d3aced3aa3cb2166aa66c4a252c12dc0978830d0bc75b":"c15c9c0b0b70c7321df044bfde2b15fb":"":"ee69b2421d43a9f383d99f9802ba4d6cf1c537b42041c86cce681049bb475e5098d4181f1902b0a49c202bf34ef70ea7b787fa685ab8f824fcc27282146d8158925bfef47ccba89aa81c0565eacb087b46b8706c9f886b7edf863701003051d6fb57e45e61d33412591ec818d016eec7dee4254636615a43dacb4f1e6ec35702":"c5c9851a6bf686d0":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"4a8538d609444e3197ab740cd33b66db1cf53600096b94e0":"0bd64d222532dae8ab63dc299355bf2a":"":"8c2b8fb775d1b21c41a3dcf48ad6d68ab05be3879f9b94b305a6ce4d799e3a992c1c3a65a3e4eab563edb57424927c90c76e49386e29dd5e7de2800fcc0eefbc8b4f977f71be3754c006ee93dc09b1cfa59c424b6b3987aeb56feefc21004c63e8284b6845e395bc8843cca0917267fb4a8f2db1f7daafe7a9da95083a44de70":"3477cad1fd4098b2":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"447f0f065771b6129952e52206a64fe0844658ed685e39cd":"37e3a300542d9caf3975c6429cb8a2e8":"":"fea5d227869e527882c63a68a6623f4a699df82b3dc715c7260a5554336df8376744c05ae89ec27d40da02d9f1c5e9e29405579fd4132143cb21cdbe3edfaaab62128ecc28018725c8dd309d2376223d2e2edfea9765699b2630ff5d9fe9bec416c0ca6418b938d195d31a08e4034c49d79e3a249edd65f985230b33c444dd02":"06bfca29":"":"e1bdd1c212b159b87e41a5f64dcba6b27aa0f5c8871fabfb588df0e06bd7730ec1beb0e3388f96c992a573ff69b34870f83c53fb65b420c1c6f92e2aa6f03917e8203d77c7f5ee08baf9fab12f9d38fc0ffb83807ba781c3dd7b62edca2121f68ef230b42b8adbd4cea072209d02713789ed559b83739a54cfde69e68bdc4128":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"f465e95f6fc19fe6968b98319b547104d0c01c17105f8fc0":"6cba4efc8d4840aa044a92d03d6b4d69":"":"2426f108368a00d2a49670a3b64b4f0569c6da9660163e7b209ec3f8d058ee11f7818a8c5030c5f4ce6e1e5a93faa3e5ae3d0bd5d712fbc891cfeb20845707edcf5e29719a5246a3b024fb12d37bd1b81df3812fd50b1dfb3e948ce546dd165cc77f903c07fe32bc7da7fbc25036679017317ce94cd8a00c1bce7379774f1714":"92750ac9":"":"2e59b104c1a6f6d651000396adbfa009bf4cf8cbf714da8e4d3b4a62bd7f522d614decf090c7552a4b9e8d7ee457ba642d5100c0c81c14cbba8c8ff49b12827f6ebd41504ccb6dfc97cdf8532d1f7f7e603c609efa72d2ae0dce036ec4ab36849a0c06f8737d9710075a1daaed3867ca0a7e22111c0e7afae91f553b6fd66c6e":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"f08e3e9f7b3a20ccdc4d98b56f2b567399a28a6b3908deab":"4f4636d1b283bfa72c82809eb4f12519":"":"a986e816f1eafb532c716a555cca1839a1b0523410134ea0426ab309520b339fc1fdeb40478ae76823cee4e03b8d3450e6be92d5ff17b2f78400f0176e6d6a3930bd076a7a3c87c3397dcc0520c6b7b4ff9059ea21e71c91912a74aac2ca70eec422b507cc5c60860bb8baca01eec2a3003970ba84011efe576804b2820e306c":"16c80a62":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"87b5372571fb244648053c99405999130f87a7c178052297":"a1cc81b87bd36affe3af50546e361c9e":"684ce23f59632308d7db14f7f6eddaf4d83271fb0c27401b09518a775b36252540f14305f0dae13ff6c0dc565c9e570759e070c8ac73dfb97abd3285689a7cdcfc941f6271be3b418740b42ba4a114421065a785be3dfa944c86af56da8209779e8736e62529c418b507c6d8ae002cbc0431747722afd64521734f99273de455":"ae078d1554fc6a14447a28c3dd753e790f7ef9b53e35c3e0fe63a7b1b326bc56034847f8a31c2d6358049aae990bfe7575b439db370aa515e225e0ec730488c700a7b0a96a7b8e4e8e4c6afec20decd16fe3c0f3f8d7a6cf7a8711d170829d14c706cceb00e133b8c65c8e08cd984b884662eddd2258ce629abf6b9dd28688c9":"98177b3428e64bc98631375905c0100f":"":"8be7df33a86b1162464af738de582a357d0ce8e213bba1b7913c0d13ad759d62c3bf4366f5130b3af2b255b7ad530b4977627f9e76b07e360c079d0f763dabbd22e976b98cd5495c6182f95bc963aad4b719446f49d3a448d11cac5bfcba4b675b8e4d88a389e2580e8f383f95bf85c72e698680d2a2bc993c9ee1ce0d1f1ac3":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"a2d069b826455d5e79e65db4f1d2b6a29ae9f401bc623917":"6d40a0c7813bc0410ff73f19bb5d89c9":"9960376b1898618d98c327c1761959d045488cc6198238bbe72662f276d47b41e8aebc06dbce63da5adcb302a61ade140c72b9cf9f6dfad6ecedd7401c9509fae349d3c7debe35117776227ba167f2b75921d7321d79f4ebca13d20af1638a1567043365f179f4162795fe4fd80b5d832e4ca70e7bf9830bc272b82182f70d2e":"acd6225dc5b9109d56ea565ab38dd4db432a7ec08f0db04f1c6b691c96d2eaaa6be62da7cc7fd75f931716c7f39705ea7cf828f1a5a325955e9b2c77e7fb2d562be6a89b3351b1b3d1355b43b73ed425049430314c16bf0836ed580e9390a3b8e2a652fddbfa939ca4c3c99765b09db7f30bf2ef88e1aa030e68958722cb0da3":"010195091d4e1684029e58439039d91e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"f3252351fe8e7c628c418c1a49709bf1f8e20add82539948":"eacd2b1c3cf01bf4ea7582d8ee2675d5":"141cb39a2fb8e735e0c97207f1b618a4b98f6b9bf8c44a1c8e9ea575a7759cc2a02301274553e7744408b2c577b4c8c2a00e18f8717fd8a6d2f46a44eeb05d685fbef7edeb4229e7ea9b8e419ffcb504d33583b3ae421c84caeca9f9789047dd7b1810318d3765307233567bc40e003401c9f4e1b07a2a7162889e1a092aedc1":"7e8d2816d280c91d232bad43b6610e2d0532a9f670f221a3a975fb16472c2e83b168115e87a487bcd14b37f075e1faa59c42515c353cdefc728ac617b7d273fa96778e3fb5f7a1132f8e2add4a57015b15d1984338b7862356243d1c5aa628406f4a507498eda12d2f652c55e8e58113ed828783b82505790654f036b610f89a":"63a310b4f43b421a863fb00fafd7eac4":"":"699c146927ae29025e5b20088b20af27bc75449e4725ee6b7d5dc60b44ba8a06f7d265330c16060fbd6def244630d056c82676be2dc85d891c63d005804085c93ce88f3f57c2d2c0371c31027d0a4a0031e3f473cb373db63d4ff8f65be9ebe74045de813a4e6c688110d000f6b12406881c08085c9348e1f0315038907e33f7":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"e462957f2c500bf2d6bfa9af97938fdd8930e360ea4175e7":"b380584a3f4e0e59add4753c282f2cf7":"682b0af6592eef173e559407e7f56574c069251b92092570cbb7f5a2f05e88bed0af48dcda45b2930b1ee7d5da78dc43ec3598a38593df7c548058eda3c9275c1304489aff95f33a6cd79e724e8d12ca0ae92b20273eb3736efcd50dc49e803ad631dcbf64376a45a687eb4e417aef08a3f5f8230d3f0b266ea732c21ed2eed7":"82a7a6dd82a5ea3d9a8e9541d854978487eda298b483df02b45c76b8b38bac98ffd969dd160a2765595b19d4ea3e64351ce95764a903f595dd673d13facf5a5594e01be1d60a0c6d28b866a1f93a63a74fecb6d73ac6fb26b20c008b93db53e9dc1d3e3902359fd47734fe22a5c6958f97e9001cc4e8b6484d9542dbbdfcfcdc":"28a43253d8b37795433140641e9ffd":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"4a62ddd87f41c6df756e8da0985dcd8c91e73ba395b3d79b":"1d1843e2118772d76a0244a2c33c60bd":"028b92727b75b14cb8dfeb7a86a7fec50cd5de46aa4a34645754918b8606819d4bf8a2e7531a05ae5505492ca6cbc8c0e6d6ab2dea23bff1fdf581bb780b4a3312aa39639383fd10bcf92489801954733f16b021c2e84809345216f8f28a99773341e40c4a64305a2098eaa39f26a93bd556c97f02090e1a6c181a4e13e17d3a":"37a83ee6dbdece212446739ea353cb957b9aa409c88bee042bbc3a6e5199aeb28f2b4b00ff433c0c68d6db5a197566019db8a4c7a792e2839a19a302ee02bee046adce04c1fbbd5b0c457d7cbe277992ce2c153d132269e2d1f12b084cf3026a202b4664bc9d11832e9b99c7cc5035dcfde5991dd41aeb4fbf8bec5126a9f524":"ab738073228bdf1e8fd4430b5c7d79":"":"e702f1bb9a1f395c74fca0ce9cdf29e7332c14acaca45200cd432a5767be38929ef8de43d0e1a5e7300c1eb669ac1ab997b31cb1403af8451e77e63505920af0f8c3abf5a9450ea47371039ba1cf2d65a14fa5f013b7ce1d175859404dcf6461a36e8bc260e7abf739d8951ddf1a3754e2d65e0aa31320a5ffca822023bc0906":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"fc46976d38a581a7042a94ea4b5bfe3587ddc65d1162d71e":"b5e92563dd0339df00b7ffa2239d21bc":"7b6f6e104acbcd7188161477d8e425ff99add22df4d22de7f28d0a0075ca4ef848f68d07ed22d3165c08e40890ce04d1bd05b1a6ccb2fec8193d5f7dffc93d97a0c036b3748f708b011b68247a0249b9e1a60b652164e5c2fd7210377de804ac010c8aa08a11f40af97e8370a59f936cd14c22ea7a236d904145adc04a241fc0":"4b9e858fc8f01903e426112192d4ae4686b1ae4d683b75afb2b8c63590275943d0d6d6a23b6d35796a2f101203acba107474ca6f4ff6dd87d6b77785ad1d160ef2755d84092dc70c86db5e639b689943b15efa646aff44b3f51f5d3f4cf6c8f7fc5adfe7bf2d72f75b93b8ee94ef3fa69ea0fc0bb77b3983901fdcd30bcd36f5":"d4356cb417953b01f7b1110c8aa3eb":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"403e49feadd4db763652ed5c4b1e12680cfe0abc30f4696d":"1a60258a56e15f92814b4d372255a80d":"a4ffa9e3c612103224c86515dad4343cbca7a7daf277f5828670834f4d9af67b9a935c71b2130dfbc929c4409bffb7974ffa87523b58890770439c33342880b33319c626bf776c1c0aeb9c2a348a7681572f4ff711d94c192f3450e8b1275f9d02c742a2c9f1da316e9918bf787f22699172986cb9b10fc56d5f6b8392ff92b8":"221c61d769febce3913bfead9a201a805f11005ddcac185cbae00ce749de9c4362889b1b0d9546e91598e0ddedb88b673a90acca65d7e71a85636be052f361839a646dc8b834c02f3e2261d370e6bac9636b7536225b5ea77881200c8a3450d21bfd1e11afb3a470e178ecfe944a25a7cd0254e04a42b67723aac8afffd56fee":"62646fc8bfe38b3ba6d62f9011e3":"":"5c76c90dea7d659804ad873960906259fbdda3614277ec575d9eec730e747a2e7b9df6716b4c38d3451e319eeecee74d1f4918266fc9239de87080f1ad437b47c6904ed2d5514161ad25e3e237655e00e53fe18d452576580e89b2f1f0f6aa7e40a337fd8c48d690fe013a67264a80e9b5dfd009a9152d559aa02a68f401a09b":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"c3471259512d1f03ce44c1ddac186e9a56c1434a6ac567c6":"50164c63d466148ab371376d5c2b6b72":"11d1f523888bea1fbc680d34bc9b66957d651efa59e788db3d3f6f50e72184b9d14e9ff9bc05fb687520cf423d681812e007025eedf0e78e7e8191e6b62404e8eb400cf837d762a31aa248553367263d6de091fcf7abedc3e69fc118b7efb0594c89b96c387b7c28ed9a7b75db60b6b5133949b891ff81eca5790a265f12a58c":"dd5b98b3b3cf03fb92be579068a885afd984630692eb5f155fa6b49f2b1690b803d34b90e8de3cc39c2e61650ffffb51e7ef36d35ad17dc4d91f336363b0734996b162b509c9954cab3dd959bde7e437e9100d84c44104c61e29dbe12492a0272ce6eea2906d390de7808d337e8c650b3301af04a9ed52ab9ea208f3c7439d6c":"6c5f38232e8a43871ab72a3419ad":"":"50438ee712720abf2089331e4c058b30c30c3d17834c507c0010ac3f974a256d01b14a45e9ce5193c5cede41330cf31e1a07a1f5e3ceca515cc971bfda0fbe0b823450efc30563e8ed941b0350f146ec75cd31a2c7e1e469c2dd860c0fd5b286219018d4fbacda164a40d2980aa3a27aa95f8b8e2cd8e2f5f20d79a22c3ff028":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"ec326a1e0fe6a99421398df4fc7d8fea67b67e5f5fcd50ad":"c94aa4baa840a044dbd5942787a0c951":"f8401c578f20d9c250ea86eb945184e007a0190462c7abddf238ce1ceddcc230756aa222386d8ba66ebbba13de008ced140896ac55bc47c231cc81370ca9feadc225e017d59890e6291cc4cca27db3078c0cd6cbb51afb62210226a76837c5454728cb5ce3afe7352e7fe75421f94986e6b7b26321bbca15c75ac7c13dc15f50":"6d5016c434a0f4b4a5d9e0b6b8e2d848a94f132f055d2d847e54601a4c9cfc5966a654d696f8a3529a48a90b491ea0d31c08eae8ef364f71f8ec7ae7f7e39bb9c331137b2578362ff165628099944ba8deb0d99ac660d5ed2215b9a7626ff1fa6173cd8dd676c988d16c9cf750a0d793f584c3c8f5fd5d167bc278f4d77a629c":"3269922affb9d767f5abe041cc8e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"a7ef81652f604e88a72416924c53979dc73cadd3575eda1c":"0cc9ae54c9a85f3e9325c5f3658ab3b2":"d0195b744351aa25a57a99df9573dfa3cebe9850139149b64f7e4af37756a430dda8af98e4ed480e913aa82821c01c1f75b187e105a8f39621757d522c083a8d81d7d8bfe6cf15c439d0692b6affd655a11bcd2457046fae996a1075c66029867b88cd23c503ae04037dd41f27bafd5000d1f516002f9fcc0f2500e8c1b27de0":"9ecd19a8eba9fba843486e1bbfb8d9053c5e04b24e30174d4aa89d8307439d653f8630edddafd51719c744bcb4bce3e444847567bd2cdde2995870d0634cc0ba2bde4b6bc2bc583062fb83874a1c25b50aeb945bd109a151772c077438c4d1caaeb5b0c56390ac23c6d117f3a00fd616306fc2ffc4c1e76f934b30fbbc52eec2":"22c2efeddfd5d9cb528861c4eb":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"605271a41e263c92dc14fe9df5203e79d58cc2d1289dc361":"7f128092a777fc503adc7f6b85eb2006":"aef9f984fb645e08d5f0aa07a31c114d2f8e9eca047e4a8d5471378cfc2ced1159dc093d174788e58447a854be58942ed9a3fd45f3f4a1af7351e087369a267797c525f134e79709097e733b9003b9be0c569fc70ee3462b815b6410e19954ce2efac121300c06fd9e00542a9c6a5a682fe1010c145acbbb8b82333bdb5ddfd9":"2bda3448a283ecba31e0299c0a9e44628cb2b41fa7b1a41107e107cabc381083bdbe048f2804568fdd5fe016f4d607f694042a459ba03a2deda4cccc8cbe4612d8ed0d4575e48bc9f59843369dbe2af6d048e65ff4250e1eef61d7b1b378fe2f3305b133ddc7e37d95ca6de89a971730fc80da943a767ff137707a8d8a24329c":"673afea592b2ce16bd058469f1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"fa076f36cb678e2275561e9553ebdf397360e5a5e44791c4":"1ecd53d94fe287047ff184e8b9b71a26":"5ff25f7bac5f76f533f9edffdfd2b2991d7fc4cd5a0452a1031da6094cd498297fb2a05ae8db71cb3451e4ac33a01172619035a9621d2d54f812ef5343e14b9dedc93838e4cf30e223d215b4d2476ea961a17ac7295069f25b2a12d6e2efe76d91f45632c6d4e61ff19a95d5ae36af960d95050ce98b5791df0b7e322411c884":"513305e86c0cb046c5d3720b25a406392766bd1fb7de2758de370ff2e68281e211922890c61f3659460f22c45a57895b424441262a3ba0606df4e2701f38281fd3436a4d0e0f8efecd231808a9ea063dfb725015a91f27cadfe7909a0ee109eac391ac807afed1767ae0515b9c1b51ae9a48b38fe7fec7fe0ddee562c945e5ae":"079e8db9c3e6eddb0335b1cf64":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"ce9dafa0e7e53a8766fc0bc38fba807d04e14e5ed61bc234":"fd0751af49814ee98b2b0cdf730adaa6":"1cba488a0fc8a012f9a336cc7b01cbcc504178eeb08237dbedbc6c7ac68fdf3a6742751a207e43d43068abf6ef4e12a5e3c17e5a2f9398fc04ced67377cbb858fd6020fad675a880adb249e4aba94b96efa515d1cdf5c0c3071a27a3245968867ea94b2bfc2028a67be34c84c3f475944497aa8ca1ab009f8e4b11c8308c1996":"b585b8bf634757dac015f2f69f2ae674372a664f2115ad2d03bd3e0c335306b02d0947d3cda5991f5c0c25f12ead2c3cc2d65d575fd67091c70bc93ddb4b1e21f7b0fc6e6ae652dea93a6564ff13489f927942e64dd94bf8f821c7ffdef16df58bd8306a957821ac256da6f19c9d96e48eee87f88acb83bae05d693b70b9337b":"e5dc92f4ad4000e9b62fb637":"":"95f4324b0656bef19eca5570548fc6a7a9923f4e2a7e42066891bc132fd73bc1c9089755d996756de0072824e69c43f2db8ba2bf6f90d3c4eafc0721ceaccce1af896f9fb15fb19c4746979b6d945f593fad61d550f81d12b5945ed728c02931d7f8d917285c22a3af748d75a6bf163fddd84b941d8564c1a63192c816ad6d6d":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"8a328554fed68dc4838fbc89fd162c99ec105b36651abbc9":"e4f7c69a1d026eeebfc45e77bd7b3538":"e349dcedb0bfcc771c820f0d510b80cef32ae3326484e25aa183015941e7844bc46f617d5e61fd64fa71759e90fcb72ae220bcd507f0fb389b689dd3fa29b3b937eded85f26ada9e0f3f5109f82fef47c7eba7313049750ad17969e7550c0d4093ed18ee27843d082bcee8bf3fc7833d569b7723998595a5a1d871089fd238da":"75986f56972c045c850ed68aeb229f203b228fdfc36cad6b16d9bd12037c48700d20d8062a983ffeca76b8d36a67ef51bc8853706e83a34e4e23ff4f4a4eb943f19dbe85e454043d7906be6587a85079f9ccd27962d2905117d2dbeaf725d6ffe87bef52b2138da153ef29b18065b3342b3f9d07837d57b8bc5f2597de06c54f":"8e8320912fff628f47e92430":"":"a1ed65cfc7e1aeccd0531bce1dc749c7aa84451ec0f29856f12f22c4105888c7d62e2e2fc8ad7a62748610b16e57490f061ad063c88800037d7244ee59e109d445205280473390336d7b6089f3a78218447b1b2398c4d0b3aac8b57a35891ad60dc1b69ad75e2e86248ceac7bb4cf3caade4a896e5ee8c76893ef990f6f65266":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"6e7f6feb4022312de5c804ed1d7a37580d74499107f8cc8b":"6ce13485ffbc80567b02dd542344d7ef":"c6804a2bd8c34de14fe485c8b7caa2564adaf9fcbb754bd2cc1d88ba9183f13d110c762a3c5d2afc0fbc80aedcb91e45efe43d9320075420ee85ab22505f20e77fa4624b0387346c1bd944e9cd54055b5135c7fc92e85390ecf45a7091136b47e3d68d9076594cfad36c36047538e652178c375a2fe59a246a79784577860189":"4f5bbdf575ab8f778549f749f2265e17dc7225713e73ee6d7be163ff7071557dcc2240b0705c079008605f81396414ac64f06b1b637876e04c3fca8d0fa576cef4dd3dc553fd6808eaf120f837f9bb1d9dbbd5cf67ed497167fc7db89d3a84151b81aeab0e921057f121583df5ed7f976b206ece17a913f23485385f64c462a8":"974bd0c4a8cac1563a0e0ce0":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"46d6e982feff0e7d04a84384c56739b69626dde500e4b7fb":"71a6d1e022a6bdff6460c674fb0cf048":"67a8455c7d3fbfdba3c5ec5f40e0be935fbb9417e805771832ffad06ba38a61b8377997af1f586dc0fa1e3da0b39facd520db1f0ec2bdf1904a3a897f0b507c901fab30a85de51effa9f7d4703ceeb2ca72abe0bd146ba0bd3ffdee11628310db7d65ea1343b018084ea2414995f86fefb45ba91a9dc2236d92078b4305671b5":"a5160fb2d397b55a7eba02df33a042404188f02f4492d46f4edc03fc67723d64f5f7fed3a60728438703c60454a30f473ac918ffc8f98be5c5e9779ee984415e415ce3c71f9acc3f808d215be58535d3144cebe7982b9b527edbe41446161094d6fc74dec2e0a1c644bbc2cf5779a22bd4117a7edb11d13e35e95feeb418d3f0":"84f1efd34ff84e83":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"991dcaa2e8fdad2b4e6e462a3c06c96067ef5e9fb133496a":"978913d2c822ba7cc758041d5ee46759":"5a94dc81af011a8af263318b60215b9752292b194b89f6fc013b0fe8e29133de631d981862f2c131ee34905bd93caffc3b8f91aeb0264b27a509e5c6a41ae781209f8c5895d0d35b3c5e1ae34a1a92a2b979e0e62132051394940ea4d9bfffb8d89ba1e8331b15bdf05c41db83a57745a4a651a757cc8648acdcf850a2f25367":"9cd0c27f0c2011c1ab947400d28516c7f46d22a409a18fd35c1babf693b8030dfd7822d9ba03bb8fd56a00f9c7149c056640dde690889d2f23978eeeb28ccc26e2fc251220a3682c963f5580c654c1a6736cccb1b8ed104ec7390021d244bd9f92abde89e39a4b83eff8211c8a6259bd6ac2af1da7dfb8cf1355238056c60381":"15d456da7645abf2":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"f29cff00781f5916930f125489c87d21f6593324d1506f65":"50db7ee25a9f815c784236f908bfd7f2":"ec1482e18692bcd6894a364c4a6abb9c3b9818bb17e5e1fc9ec0b41702c423f3a60907e94c888fad8e78f51e1f724b39969ba7b11d31b503504b304d5c4b4cbd42634f4ec5080a9fe51c82e121ae191270dd2c307af84c82d892d982413a50ccce33698054f761a3fa93da9a1fca321296b378a50d458ba78e57a70da4676150":"a3e8595747b7147d471ac4fe38014bf4a409931e3f419ff88ae249ba7a7f51bd0ede371bf153bab4b28020b7a82a8ca30b75f1e3bcfee3c13db813cbc85138ef05874dedb14a6e5b6d06d7589a83bd5e052dc64433a8e24c1188b9470ddb2536d13b4b7bff0c5afcfaa9aa0157c3aae3b1774df2df14f965d6dee4332edba67e":"a1e19ef2f0d4b9f1":"":"eea18261a4de31d8619e77005ebbb3998c5dcfac2bc120ae465e29d6b4c46de7e6c044c8b148ffe4eda7629c243df8af4e7ceb512d5751a3ee58defb0690b6f26b51086dedfde38748f6f0bbe6b495f4304373188e5d2dc93461bd51bf720149a7d3aa543623b122b9af0123b2cdc9020136b041a49498ec4aa696c2d3c46d06":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"2087e14092dad6df8996715cb1cfca90094f030328080ffd":"d30504afb6f8b6ac444b4a76115d79d1":"d95845d268c8d8f9135d310c39e30f55f83ef7ffee69e6ba1f80d08e92ed473b5ac12cc8f7a872bfc8b325e6b8e374609c90beaf52d975f71caeef5ee4c13de08dce80d358ee1cd091faea209a24e3392adcfe01aeb2b2e1738bc75d4a9b7cd31df7f878141cf278d150f6faa83fb3a2fd1225542a39c900606c602f15c06a4f":"6d039513061980fb195bdf2f7c7079ca4b7e0fdd50d948cbfab5ba10b99e3aea27f08abd000c428851de82cacb0d64c146cd9567e9d55b89819876d6a635bd68bcaf47ffa41e02d9ee97f5a2363bfe6131ae7a21ea5130ae953a64d57d6cbfd45260c5f1946388d445ce97d23ab7ba31a5069a4896bc940a71de32bde02bc18d":"5412f25c":"":"1e81a4c10a3440d0002ddc1bfa42ebb08e504fcc8f0497915c51b6f5f75fee3f0cd3e9c5a81ff6528e0fecd68a36192114f17fa1a4cfe21918dac46e3ba1383c2678c7a6889a980024ee2a21bcf737f7723b5735e1ebe78996f7c7eace2802ebb8284216867d73b53a370a57d5b587d070a96db34b5b4f5afe7f39830498c112":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"3fc76d627c775de2f789279dc7b67979a9f1cc23c8dcabc9":"8f6fd53eb97e12dcd4d40f2843e25365":"e56995df73e52606a11de9df6c7bfb0ef93b86bf6766e319aea59372060294b0e1b13c6288c2310a4bef725a2dddb174f3e1228649861757903c4497a0eec9c141454fc75f101439a2150e368857c4f0f6e5161c42c77f632bf1c229a52595cbf16e9018de9a8f6a1e6b8b18bd244f93f001eb2eb315405d223c0d27ece9d4d9":"92a60d38fc687b92d44635aafee416a142d11a025680e5aa42e9ba5aa010462991ad3dd7328ca4a693673410f9bba37f05a551b949ab0d43fc61ef3b8996dd3fc1b325e66eec6cc61ea667500f82a83e699756a139d14be6ca9747ed38cd9b1d9da032ece311331bdcd698666ddc970b8be2b746ec55fe60e65d7ae47c6f853c":"613ba486":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"b10979797fb8f418a126120d45106e1779b4538751a19bf6":"ca362e615024a1fe11286668646cc1de":"237d95d86a5ad46035870f576a1757eded636c7234d5ed0f8039f6f59f1333cc31cb893170d1baa98bd4e79576de920120ead0fdecfb343edbc2fcc556540a91607388a05d43bdb8b55f1327552feed3b620614dfcccb2b342083896cbc81dc9670b761add998913ca813163708a45974e6d7b56dfd0511a72eb879f239d6a6d":"e3dc64e3c02731fe6e6ec0e899183018da347bf8bd476aa7746d7a7729d83a95f64bb732ba987468d0cede154e28169f7bafa36559200795037ee38279e0e4ca40f9cfa85aa0c8035df9649345c8fdffd1c31528b485dfe443c1923180cc8fae5196d16f822be4ad07e3f1234e1d218e7c8fb37a0e4480dc6717c9c09ff5c45f":"28d730ea":"":"dafde27aa8b3076bfa16ab1d89207d339c4997f8a756cc3eb62c0b023976de808ab640ba4467f2b2ea83d238861229c73387594cd43770386512ea595a70888b4c38863472279e06b923e7cf32438199b3e054ac4bc21baa8df39ddaa207ebb17fa4cad6e83ea58c3a92ec74e6e01b0a8979af145dd31d5df29750bb91b42d45":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"2c186654406b2b92c9639a7189d4ab5ab0b9bb87c43005027f3fa832fd3507b1":"3a0324d63a70400490c92e7604a3ba97":"":"":"4c61cd2e28a13d78a4e87ea7374dd01a":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"747d01d82d7382b4263e7cbf25bd198a8a92faabf8d7367584c7e2fa506e9c5f":"7156358b203a44ef173706fdc81900f8":"":"":"9687fb231c4742a74d6bf78c62b8ac53":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"1cbe30216136b7eaf223e6a7b46c06625176d9a08182fa806a63d8b143aa768b":"4fe6ace582c4e26ce71ee7f756fb7a88":"":"":"d5bdf8ec2896acafb7022708d74646c7":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"f31194c83bb8da979a1eabb3337ceb3d38a663790da74380d8f94142ab8b8797":"404efd26b665c97ea75437892cf676b6":"":"":"e491075851eec28c723159cc1b2c76":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"daeed52ae4bf5cbe1ad58ae4ccb3da81fb9c0b6f7619ca21979313ad9d3e83c1":"4037eadb11249884b6b38b5525ba2df4":"":"":"360c6ef41cbd9cd4a4e649712d2930":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"3ad81c34389406a965c60edb3214663ac4a6bd5cfd154ae8d9dc86dae93def64":"cebbce06a88852d3bb2978dbe2b5995a":"":"":"bd7ca9f6bd1099cde87c0f0d7cc887":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"4c152ba30aefa5b2a08b0b4d9bf3f16fc208bb0bc4c4eca9411dc262d9276bad":"008d040fbd7342464209f330cf56722c":"":"":"c87107585751e666bedae2b1b7e8":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"9aed4ae6b1d857fdcbe5aec6db38440613dcc49f24aa31fba1f300b2585723f1":"947c5f0432723f2d7b560eca90842df1":"":"":"7d331fedcea0fd1e9e6a84385467":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"cc80bc031676eff5f34dd076388a5130e985f9e06df4b4bf8490ff9ff20aae73":"51f639467083377795111d44f7d16592":"":"":"02d31f29e15f60ae3bee1ad7ea65":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"db7a40213b5b4b07e9900dc28f599403b0579cbce13fcd44dff090062f952686":"aea6f8690f865bca9f77a5ff843d2365":"":"":"7f2280776d6cd6802b3c85083c":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"299b874eaa8b7baf769f81f4988a41e2708ae928e69a5ba7b893e8e6b2db5c3b":"2aa04d85d2c0dc6f5294cb71c0d89ac1":"":"":"ea01723a22838ed65ceb80b1cf":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"a6c7b4c8175db4cf23d0593ed8ea949043880fc02e2725f0ab90ae638f9dcfce":"ae07f8c7ac82c4f4c086e04a20db12bc":"":"":"1132e4fff06db51ff135ed9ced":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b98e1bf76828b65a81005449971fdc8b11be546d31de6616cd73c5813050c326":"929b006eb30d69b49a7f52392d7d3f11":"":"":"33940d330f7c019a57b74f2d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"09ccef64ae761a70fe16772cba462b058a69477c91595de26a5f1bd637c3816f":"e34b19381f05693f7606ce043626664d":"":"":"2adc2c45947bfa7faa5c464a":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"654cf46598e5ad3e243472a459bcd80f1e026a65429352dbd56e73fcc5895d1c":"a56f27709e670b85e5917d5c1d5b0cc2":"":"":"177b9a5e6d9731419dd33c5c":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"84bca1b2768b9202bf194f2d5e5a0a5f51fd8bb725f2bab8a3fccbdb64a4ea70":"c45b2708c5bdf65ec6cc66b6dfb3623b":"":"":"fe82300adffd8c17":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"c8ae011795c9a60ad7660a31fe354fa6f7e9c2724d7a126436291680cd95c007":"1bd9ea6186450f9cd253ccfed2812b1c":"":"":"35214bbc510430e3":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"df2f0a8a3849f497d12bda44e12ce30a6957f3febcd5ec9bc134171326ca66d3":"728cb9608b67a489a382aa677b1f4f5b":"":"":"e2ef5d9cc5791c01":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"78e8a8ad1ecd17446cf9cd9c56facfd4e10faf5762da0fd0da177f6a9b9c3a71":"f169ce6f3ccc58f6434ae2b8ad1a63a1":"":"":"0fe57572":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"02ca6d8a862e25db9d68e4404abc107e700135df4157cfb135ce98eaa33151c9":"7b722fdd43cff20832812f9baf2d6791":"":"":"72dea6cc":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"9a2b709dbcc3a4fb15b3ad541fb008c381b7e985b57df52f07ca7cd26ab1ecc4":"729baa4c0ef75ed8aae746376b39fe3c":"":"":"2a0d607c":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"449d39f863e4909984b37f2e5c09ea4d4b3e9fac67bd57c299e4e1d1f084aaa3":"d8e9118f331bb5a359f0aa8882861b72":"4ddcae0bc24d622e12bdeaac73e8d1ab7957af051d27dfaafce53aeed4cdd3f989ea25989a2f41cfb3c38dbd841c5560b0b5ab1861b1fbcd236865d13da55b50219462e021f8a21848a64a85326031fcec8fe47a6ef4a435dd2b2fff637644ffcf3914ef2dfa5dd556421bfd297be150b31db039f0f2cc422b282e659e70cceb":"":"c595b9d99414891228c9fa5edb5fcce3":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"3e70e66813fc48f984dcda4d1c9c24f1d5d1b71ecfc8bb9581782e7cca5a5cc6":"d804f1051e72c9b7117002b862eb45ff":"0b1ab2b7a87cebac668c7a532fa8fa56a22cabf0c41fc1e6744ffe07c857c6865d623f508351f98f3f0c577d1eb94300a30a445472218c8ac626b0bee7d4c122d33f8130436a89add341e8ef7e00694afb4ad80d314d87ad3f921c7105eed05431b8151df7cff2c8e3790efd4acd3f60332dc7f34fdd90beef70f9093361d65b":"":"c09c2e3fdfefa222f7345ae4efb978fc":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"8e534041090b45b80f287dc5fa20ebda017ad81b0530e680f62c6280fd8881af":"ead675b019ef5c6bbf4985f2a382d6c1":"b1db220052c4bebcef27eed6db0dc91be481179d71160c5a2ddb2fe497a05484840b04cce48980057d770fbbd0d5f3d5c633b55470617ad2cab5767188283310337825c4b0eafe13b5b11293dec230dad43b220885105767938c7ec4600fe063f98aa14bc6afb886fc874c10546749da295f571e696305bd9165486e29f43f52":"":"9aa0cdad5686ca515cd58aed94938ef4":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"2de18874470c09db683cf45cd752bdfa8bf33e7967220b1a69f41f2a02da1d80":"af30eb2d0a0c2a50ea413f3285aa88d4":"22889b868d8ccc9f488406813caed199b23091ddd796c8632f564e7cf5a39dfb725266a931fec958659b6fc5b6b9343b8217edb0acb010afc9416601155262b57bd398d62f555953f0e15958e19ae004fbc9cb25e0269a9eaa38a4635a27bfa719fb249fa49337796bcf5f416bba87fbf3b19f0d8c11290c25ca50bbdc822f01":"":"646bbc9b14681af65b0d1c4c9f1d0d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"1a1bb9122e762ecd7ff861a1d65e52607d98e7ae5bd1c3a944e443710f3b0599":"32f99ea4cbf52c2701c2252e5e6c863d":"91b7a70c3a06c1f7f2ea584acb5dd76177ba07323c94f2e8f7cbe93fc0bb7c389c3c88e16aa53174f0fc373bc778a6ccf91bf61b6e92c2969d3441eb17a0a835d30dcf882472a6d3cb036533b04d79f05ebfaadf221ae1c14af3f02fa41867acfdfa35f81e8a9d11d42b9a63288c759063c0c3040c3e6ee69cf7c75f9c33fea1":"":"a8e29e08623a3efdbbe8b111de30a4":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"3bfad1e8f9850577f9ba3f290e9a5e91b494c2d99534220362e171a7543177ac":"8410886b70c57d7ded8596443bd1b157":"ca801c83596795515ea931edba00e06e332bf84246b7036e10b317e2d09a51b2981fcb664ee3bf4180bb0b12ed1cda221abc6790b27c26914f5ef9cea9536e2453cd5b247cb054e295c2687b725a97cbc484b8eb86c6ceee03bd07a54a9301a3ac0ddb23aecb825a238252e7575329058b40e75575a7f16439edf5be163ce5f5":"":"e3645db0c600dba52044efcecfc331":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"65debdf2f2191a6cd8de8ad4d5d4d0d8f731f67744e2545df6b2a7cba89c1ee0":"fdab2ee547dd8b6f5a4ea2dd19697b3e":"d2b0a0438ee0f145aec9a7ca452b788ecb473152b78fb75f6ace721afc7b0ae1942049b790f3a5b6221a8760295659756d35347cc04029be03459f3e23a71209b4e0bbe13a253a888c83db23376d3a6d9a539f7c9fa4a12dc64297e7c93dfa0ab53ef76b6e1d95bf6f3d5e6ee8f08662fc03ec9d40eff0a43f23ac313671bfd9":"":"c25fc157c3f2474885e2eea48aea":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"496ae810380460d40cd2fdae8c0739f16b87205cc7f57db0a71a473eb361d570":"77233de96f5e1744337778212b411bd5":"85f5b54b4c4af5c808120bd28d98e44e96f4126623e57684957e9fc4fd1a2d0583940b8fc8314a249325476e8d05247831b04709580ae714e8187cd38f9559419e14c9fc4f8c454ec191b8ef2a3610988fe3339d0dc6b72f5978f9eff9d596dfabf27056e3a908c6497267461386e860f6b9d65526294bcb92908b5661b06b5a":"":"4ed91af6340e70b0c2b94ab6f82e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"aca188183b46139cc7cffc82a6aaaeb2fd73cecad14e75c663bd62daf1ec711d":"7bbf7fb55eb70cce94cc6a2b67de55ba":"015cfba90f069545fed60f31992ff3d3c3592eb91e7a53df5978ded64291954cb99a57de82d5398ce782b68d14ac04a8b425395bd076ead59eb445721bdb2f45e19fa089117800cbbac7b8313fb165ccb1122acb654e1242dc7fe6885ea1cbb7281b1270cfa1549cdfe9b47caf47b4ac3807e562e48c066566f5e606b5023b47":"":"3bcb5c2a4261d75bfa106fb25ee1":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"8cd6815f6ec15f03b7a53f159e877a5981e0ab7f6e6c261ddde4b47cbb2f2366":"c431c07d9adf5f61204a017259cddd75":"4e1a835402bde4f5227e64b46a1f8d0f23a9434e189377fcdf1b9621ba1987eb86a7f3b97ed0babfd674e74c5604a03dd016d71000a72bbbd00a7f7fe56ad0fcb36a3e24dd0fdb63bd66d4db415f35012416ed599796ca3f678df7eb5a1b17f75abb348ddd3b366369a7b362c9488aedab836b61f9a158f0b129c8ca0a53a81e":"":"0e463806ff34e206f703dd96b3":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"8f0a72abcda104aa7fae501f9a3b686d00d3f6fe984731db8a2865bfec587073":"ab8acd063775d1b1314f14e90fddd1be":"02c6d426e7f20b725d8cde0a6382e49b029b52126889013ef45251f27b2fadb95ca4a9a3b16ad06999eeca4a473e813045db4942e9b9ff2e5a5e429d9bac298372344d1b781d5facabf6d779643f31ada6124eb50aad599044b54279ec9b25714ac8a3b9ad2487cec7f4b1ee245d7be3d496d6af1d4cbee1c8201312541f3064":"":"3f0ccc134091e0c0425887b1b9":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"417135cad74280e6f8597dc791431c95cb8fa63bbf7197e3ab37c4b1d6d9438a":"0fe22d9ba1d0e32656e3a9f07a517a27":"a0b2712e81d329d5b076a4be2ad6823cee6dbd17d9a592d065bdebb92b1ff37a56bf2f5e5341f39c574246ccda19e5f35fede49c9ba958f3920cc5440fb404fab7846884ca0c2a3af5b51f4fe97a1395571319cc5b40f8aac986d77de280db82343983982638326ef003e0c013af19c34672975dc99ccc0853a1acf7c617d965":"":"888b836c9111073924a9b43069":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"304824914e32ea0efd61be6972586093349bd2cc2cf0cff44be943682b2dbff5":"b6d927a71929029f6766be42746f7cb1":"7281c81c7514f4b17cb125c4649006ef8959a400a1e4d609d277e363e433725fa32346a10bcbd826b6afc8222158920d0a2db1e6fc915e81231c34c3941ecf3c6f94ffe2136190cae3dc39a4277acbc247f36291b5614a8433b1a0780434a6c50521b72ec25145bbd3b192647155d5dd9df9e66762d39592602ea99bf9bfff49":"":"b6044c4d7f59491f68b2c61e":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"8a10e9abe9389738e12a4bb6f553ae81e8bd320e0dfbc05fbae2128c1fde7a23":"6da44354e198e3beb54792718becbcc1":"199d754630135b669bf2ec581d3027a569412ab39a78dd9d482e87b778ec65c6473656260c27827e00e566f1e3728fd7bc1853a39d00e43752c6f62c6f9b542a302eea4fd314473674f6926a878ec1e4b475d889126ce6317115aea7660b86ab7f7595695787f6954903f72361c917523615a86d6ce724bd4a20c9257984c0c6":"":"5c5683e587baf2bd32de3df5":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d164ffde5dd684becaf73e9667e3e6acb316682c41aea247899e104a54dd7a7f":"1d388e19e9d7a9750e2fc1187d4b075a":"f166a5b6f91261cda56f1a537f42ffb8aed10af5e0248f8910034b92dbc58d25953f1497f571d31fbf5ec30d92234b440161703851f0e43530418147ce6270fbcb5db33ab819ba8973051908704b6bea8aaca0718947e6aa82498a6e26a813981783ed9bf9d02eb1ea60927530c4700ff21f00179002b27903dd4103bbc5c645":"":"52e10495105799ead991547b":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"2854188c28b15af4b8e528ab25c0950fc1384976f242716c91bddeec06f2fdea":"075af9c31f5252b8920092cbd999e7a0":"e9452f71093843a025bb5f655eb6a4e8316ab5946484b11818f22b62f4df75d5891fa3397537093a261dc9a7648b7477ea1f5fc761716e302763364bcab7992595edd0fc1c7f7ac719c879e6616e2007948eb8530065a6cccf73d0fe4a0598819b471b0856e6d90ea0fc0e5d36a30ee925b6b8e5dbf40e77f01efe782c0bb4f7":"":"6ff8fd87e5a31eb6":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"2bfc445ac0365ae6c3c3815fd18bbd0c60ea224f6620d9b6ac442a500221f104":"43c5f3367a9955aaee1a0c4d4a330059":"db0bae8ce7c66a8ba2fedec22f236212e9a7ad72b371de285c7dc6d2f6c22df0ce4920e0f03f91eb1653c4490050b9f18a2a047115796f0adc41707d1ffcbf148aed5c82013f557e6c28f49434fc4eb20112f43566f212c48cec9894ac40772fcd9b611ee9444df7b73e35b8a38428ccb064c9c50491d2535e0b539f424db83e":"":"49aaa806cb2eeadd":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"7b828f99aaf751bf22d993ed682e488595617a607ed74aaacbb6b60457453080":"d48dac1d8d77e245420feb2598812418":"f50f785f4e7c848a55a616ecf4b6b1e1ca85e16de7100c7e4273d411bd95c1380ee157ba501ba9616980195f34e39f43e335f33253342feb8ed64443483c721b85241a0320b3cac83104de2db47188c61a373fba592ea16feeefdee1f2bb43927396f58151418672ebb74afff5c029503a0d0be81430e81ed443e08b74c03183":"":"a5b71ecf845b25d0":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"7b6da11d69fca3e4c907628d3eb63d95c7e502fc901372fd097e064e70831432":"6fe2148f250ea178d4c8ca8423ead87d":"a8097bb74ded776f578eb7588f5ef8915db9bfa7262af700c8e76ee114e07557b6786dd5a60a66b2703e7c9de5d6b42aca92568aec5d1ecc298dbd0edb150b8cc13c9a78698f7674caa94da6cacd1f3ef4ca4238c59830ea725ab3a6284e28966c8c32d9bccfb0cfd6583a5ca309debe86549a6f317d15c5f928cbc7f473310c":"":"e9cdbc52":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"c5ae9328be49e761064080fc213e53e373fd86359a09d0355e2d438d9b8e68f1":"a7e3f8660ff925d5c88c5aceffbd7026":"2ddddba7a56cc808aec4602f09ae9bd78887827bf0315d8dbe16821606ef9d117746dd138bf1f23565d1ab8f4cee36d53fe3730632c5df9f12109b16edbeae285bb49dfdd155f5dc97b319a85362d53cc86817b7c1c31e5e87c9f37422f133d00dd0776bd92ab05ce6860573cd911645cfe3fbe515e85f744899a447fe443653":"":"e35dbac8":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"e4f8ca13ba86c658cc7f42d4f029422209efbd101bc10a1df81a42cfb3a0f79f":"1a362fa0e4054ba11e4b06d59c8bc9cf":"e7ad5c75aa13659f8ce4b1650c46382645ec67418199b84ea445b8ceef619ef3fbde59ed3d313c459e36fcf87d26ef2b453409b32f1086934c3072c1ef0aac83762d28b1193b9afff2c083ce4300b768b0ae23ff9d3dcf65bc1693f1350da65180620aab205aceacfc683c8be53a332e2d0337a7518d2a5204f9c8d7325a4799":"":"e7a37f15":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"00050a21ca1e72cd0924be31b943c60854be6744577de3dd9d1f4fada4a19ea6":"2fc1afc1395d8409919248709f468496":"":"693ffd3d92294857a99c702a0799eeca28ab066dd90917b9ea5ef8f6547f1d90b106cbec8ef2c22af9f8efa6c652f2f97c2baf33af14fe9def230d49524bd65909c3df1490f637f99e788dcc042b40e00bd524c91e2427ef991bf77e7b2f770cda6e90076c5dac4cac7ee3958b53ff8ce846c3a96281f53c2c52f5f3e523536f":"e39b6a7fd5ac67a2a1cc24d5eb9d9c74":"":"cfcd6b9ff7641829cbadeaa2e56f1f150a099eccf3e378fa4da59794dcc4490aa4f9c5db0ab245bec36a7d4557a572008e42f03bc1baff3c946f23f54a4dc9828f106cf4264e4ab40165839d1085e7795b1ae0950f0ee4a08e46ada501b6b51dee0e518129c9426e5bd44c66674a9f99cfe676f002cfd344c5bbd22d3d91e600":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"f10965a66255f0c3515af497ccbb257a09f22ec2d57c5edae322a3e6d2d188ef":"c571ce0e911de5d883dc4a0787483235":"":"91598690edf2de8b27f9bc7461a84e80811cee544f0542923898328cf157590251f0342cb81d359b5dccc5391a12320d1444c26f24178977dd6705c2b365dc1ece0152c42e2f0ee3162cf886ef5529f4f16a77f3bdd2aeccd405b59addf098521d0d38cc25f1991e11be7ecf24caedb48a2a286d2e560a38fa9001c5a228c4d1":"6d9d3a5dbc8dce385f092fff14bfffda":"":"2867996e389e09ec0da94d42e77b1e436b50065b09ca4adf1cd03240444ee699dbb7b3fc081a1869ca607d77d5ff9754fc3c997ff0a4ee17543a2ba77886b88a7128bcc51d3450df58ff3a26671b02c1d213df6adb6f7e853080eb46b504517cbaea162710a9bbc2da8b552eb6b0e0cb98e44fcab0a157312be67974678d143e":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"4437ee7d16d8c3ca1aa01e20b66749efa901614d4bb4bee786ad5a5f1bfde2e6":"275393276745bc43bae4af1e5d43a31e":"":"ff80727a3485cdbc7fab4ee9fadfdc621c538e2055706629046078f1aa3fb687fc728d3a7ffa52ae457b7b5649613eab7bafa464bb435314c49e5900750f7ad39ca9b75df6b2eaa755439e101f67b7ae4cd80dc4a9dea0027048253f2d0a6014056ca69b8c85605b00cf75fa7634a0ddf464270a8c79ce1a1324c4a4c513b24b":"a82ff1e87d26e4d6e417b60fb2d3ce23":"":"88f994d276ed20be3932d16f551c4b7e2ed80411f2e72ce098fa0b70c22157a59edab30649fec447dd63f0c87dceca7238ef0d9561b58489ba7bd86f2892743099f40af63c432f78ac0ad0b5c2be47b9e3045e7237b096ee400f430af63a6f309de785caf190f3f4aabbe79f727a741590de542bd343df68d13db55a5f8bab41":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"fe4ec037ce563dadee435cfcb2bf090f1f7ccc7d1b5b4fab2f1b738348f8ed2f":"47f5264f7a5b65b671892a05fa556f63":"":"64eb8a4bda9804c09b04cfcd89094928c21480908b81ee19d6c29c2a3631b1a5bdc8e7f8ea56f7b8b8e14a5208296026785cac3a6afa54be8af4d5faedcd12b6621bde0f8ec5a2635fe72a89468ca7704c73aa40cd2ba97aef08886b27a694d339b00e7d12a31308672f87c06a7388a1432f869eb4cc1da864140b1b33931925":"660462b4088f6628a630f2e4170b21":"":"4a310e035361f98b8c54fb4cef70b1a9c910552ece056ca8fdab54c52308ec0ad7fe9dd1dae92badab5010577de522088768fa6466fbccce22e14c51ca7986c4063d0f06bf578dab16a91856713198a7138395c49c78b6314b57ab72fd079028c8dc351952d90b04a7cd2b245df0c0522447cdb7d3329fd9425fe5cb40a8e7c9":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"e6e1ada628ca76eb9832cc6b5efc5c9d2686bb587366a6de2d734233fa95279e":"5a100b451e3a63a3e6d4b8a9e59c6bce":"":"a0ac738e0fb35246b84a6fbe319f827039515df25d0c0fc6de7c048253ae63d3c561e44a12672ffeae1cb925610b482aa422bbee0e1784fc69baac3a97d69f51e6d2a17957b44b318624ea7ec680a559f4d3f2761d09bee66efb3a312ae6b3ecb673e756b2a0f654671e82500e7ace91f2be2a74bc3bc1ec1a4b6877a53c27c8":"88df9a1ea54e5bd2ef24da6880b79d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"cd5c1e90d78213155c51767c52c290b3d657db8414ee0a7604a2ec7b48105667":"4e022d8d86efbd347e8cbab7e979771f":"":"8e987693da0fb77b6d1282eebd3a03e05d9955ff81929b1a2c721574862a067ddee392c7ece52ca1451f3e6e321d7208882d97b4149af6d78d65c054e1bfcdfa62bd2202de32dea8363f8d7f041891ce281840f3cd906ab46ca748e5b3b11890b4014bf0271c9427c874097782d1c13dbb40e78fc8276fc134f3c29923a43a01":"e7df79af0aef011299c3b882e3a45b":"":"3b20473d9b5018d089e7f74d3fef22ec2805948a9e07689831973c704a6d8db4d090af88d696ab8c3aae9740a2bbd7f03e0b18b2b591e59c335c1043a2578a89b1a9f20fd0dd53f12e00e9bfdb27de8caac772bbfc4de9e4a255a5d1b04e59625a87b8279babe613def58d890d5502abf2f709aab625dcc20c58772832c7bbab":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"6e3dfc07003bb6a2d82bd5263b2832f47db4e73279266c7a9ea21f4f18eddf83":"7c0f49fb54f5e68c84e81add009284e6":"":"a960da222af9d4da5797e6957d59b00f6d3893599c70e95c0984b56eb3329b191703c2532f3288b15ebf655b9b5ee4617484e5ac9c39bb06731d03ebe4fef9495d003b0ed694cf540b4dc759d32629e55512680badd81234bd71ffd55fcb5e6a85031c1dc31ee1ed198939582d8336c905717cc87101dcfcf9d833fac815c8ea":"b2ec0f3da02a9eb3132fb4ebe3b8":"":"a40b6f70f0572fe0bc70d83368e7c154f7dbd501f52501630a2e523d18e216e07368521f6040d806299397722b99bcf7f85d36b8bed934b49aa1fa76d38783e6a2e392d6d0786d467f7bc894a739ecf94f0fe884a9c391154f8326bf31ea5242a18aa263d04da4b63b11de23b42d3e10a2d5460cb32700cdf50a0d89165ba22a":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"4103b1ddff87a508a219c808a04ad4750668688f4c2ee75b92d28d70b98a2c94":"5cea906737518c2cb901016e30206276":"":"a00a196193ff07006b7df524824bd0971d63f447a3a7bb1b75c1e2d11789482c115cff677b54948d36dc4de34200bce97be0101d88cee39b177857dd5da3cb0d2f9d6e1150f72a3bd655e0bace1d25a657ba9a7f8dff082b4460432075afb20173da22b49beeb6a030d72ba07869ff4389fc1c28d87018d7c1a9829c21932197":"3a3a771dd5f31c977e154ef5c73a":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"cd8c2f0c330d5db316dae7a16b57d681ca058864f7bd60f3d0de174442283f77":"387ee8c1e7f047e94d06d0322eec02fc":"":"e2a5ad295d35031535bf13c2993bd0b292e8a9465b9dab738e59ba03670248a1ecc92b38a55bae34729162271cc1572c35fcccb27417b48dfcbff852a7a8845cc829a4461061b558ac8b5930a5c6491ffba04a9d0dff220b3cd5e4fc2e0f3db3b2ddd90328f2cad819573a7856299620b02f5ee0267f3b56981afbf1b7d9e3e1":"62356850d12b54e39872357cfa03":"":"17b7f6bdfc1993c56dd9bd674cc276a55a46fdd9fd5fe435b9e4b7ebc7052a9dc76a99e4e43aba7d486603189c90d10a21ad3722c86bf5bc856a0f930ff5bca65be708b76bb8a29105da67f31eebcec81f28aaf526d2f8f0feac393a24959dcd612e2b93b4463f61957d2b3046bcdf855e346601e4c7760c0ca618ee7bf55381":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"7e19e400872eed721d560202cd757d3eb99729496b6e3a6d38dd8afe1066045a":"d2b277f78e98f1fa16f977ce72ee22a7":"":"3fb9abc7aba654dfb174e8899c17db222ffbb387b7260fc6f015b54f1cd74284c516e21aae3b72338e5e8dc643cfafca0678f5bda3a7539f1612dddb04366031b5a3eda55f3232c1b176cc9be7cc07e0ebca674a272224929c401a2530efc6d4eed0087b544b12d172a01bc8340d9c2a2ebcb5af8b07d96073a879fda140c196":"4c81c044101f458fdfac9ca3b9":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d0653934a16fd36c27d54488a1829302b931bed6e26ca26047242b85b50bfb61":"94886a1845aebba5ed6b86f580be47f9":"":"c02347e1add9178d830d8baaad9aeee37e958bedf2cc846e2561fe8c83481d0a8a85911e7f1f6e444b28f30bd96c13c390e80f616feb6844ee6fa486543a2e3f38c138f45b4405e3fb331b64648219aaf1d574be948ccfca6afc18d12488db19c35b05601e47c0af5d49a93a5dd4420f38585c1eb033e173376fa390d3f948df":"4be34ff42085ef4443c8b6042d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d0f0ccb88c7cec9496f26a59ddc67dc59ebe49ae3dd89ef3be008598727e214c":"e5ca84b907ac761a5e68a9080da0a88a":"":"7845e155f4f28021291e7c814a1ace8f42b239990831aa82758fc1e376cace0b6f668f7f2f224dede1ef5b1df7ae74b2c01483701044acbbb72a9216eec6b7ef0190f114b3c73c6985c4653f11601c774d10b7f9df1f1e1f3ff4fafa20d6525edb37d9e5acfafe6d3468ee068d407fdb56dc718c98425926831253978d727854":"c8f78e4139dd3eaf2baef8aafb":"":"0cc3ede50b0d3fb9ada11300a3239a383c98f968ad65266d57a195bb18d3e568fe6cabba258da4bee9e923c7c838e06dc887a6c49cc1453ea6a227c6a83e651a8742e0316cad5efc93739393e3603446b5c920a206db1434adbb8ebde4d1a7a8699c7f6c61b2d57c9709b564338423b4f526d6c157647a6c45da9dd521061f05":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"e35dcea17cbf391491ae5ba6056d0dd13b348183474dd4b614742751bdebfc32":"fa549b33b5a43d85f012929a4816297a":"":"5213542beb044910d7fdeec8bb89de93f350760e493286eaef1140485380d429f74a4279c1842a5c64f3ca3381cb5dbb0621de48821bded650cb59703e0ca88f4e9c3d15875f9dc87d85ba7e4bae9986ef8c203fce6f0ce52c28e3a93befb4cc4ba3d963d2283cd30f9bf6ab99d92f2f4f3aff0b022f1751b89d43ea10bbb28a":"afa61e843cee615c97de42a7":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"844c50ddc0ac1d9364b21003287d6ae6360d12bbb17a85351362420ee4ca588e":"2f8512bb7e214db774a217a4615139e1":"":"3a3bf4ccaf05f7c02f5e158dd2c5cb08c6aed4b1ba404a6d8ef9a0737fe2f350b3e22188fc330ea63e35df82f996e3cf94d331c4246cdb25bb2c409762e05ddc21f337edee51b64f1766ad18f520b3f34735b24278d9d647c533a743e0c1e9c81e9dee975cdc47e8582113fd250ef59353605b64acb7c025a97854c1a5c03237":"f1da1cebe00d80eb4e025feb":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"2aae1aa047a20ed2d6d8336d923864cee9404f924031ae327fbfe2d293e1d93c":"3da9af3567d70553ca3a9636f0b26470":"":"8e5b6b9e4e7d01de9a919dd33c0c1eb94dcfebf28847c754c62c1c00642d9e96f15b5d28ad103ff6969be750aadfd02fc146935562c83ec459a932a2fd5fda32eb851e6cff33335abd5c2434ae4f5524d6bc74a38094ced360f4606a1a17096ff06604952c8ca94a9a6dc4a251e13b0e0c54bd8a6dff5f397a1eb1cf186fa518":"e1026b3d15d261b2fb47632e":"":"58c52ea9f3b162511160eed1a68b6f52b3c4f5834af728de97a3d9e4ba337b29aad12636003cf5be9ffbeae0f383f7cf32f645a8f6fc5cdc1cde91c625c69a92bc434ed671e52a0044a48f3fce55cae49a7d065c2a72603a7efe58b5a7b18ac500d1a51420e820357e7a439b1c02198ebe3d4e62d5573a3aa5f40900a21e3b41":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"f3d69208cb0d27474e9a231cd46eac7c1574fff950c48bbd1ba03fad16f563df":"b957f05921d21f2192f587768dc12b4f":"":"0d1f06eef5e8f2c81d1a73bb1dca93c22cfb6e40e9948bc75b0d84830fb9216330424f580b89050c3fb3f620eca8f9fd09fb86d2e8b3a0869c6022d8a705fc280d66fd16d3aba7395d6be4bed44145d51d42d56285f3675726d62d94c081364a6d440511de83a613c598b03078e2ec7648c6302defbbea66aafd33e1a4b1686c":"322374fbb192abbc":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"cb2cdeb17fa6bcb006c7fc60858a12a411804464458db351957e8caf42f1ee6c":"31bd7c971a6d330b566567ab19590545":"":"296504131354b2c1928982f12d408ba2377f2d4bbe87e4c69f92a15bf6003910a43bda6c8929df66b3ab1d202a5258cad199f32f36cc30d2dc06199c2a52f7ccadad1fce50123c5f8434dec57cc60cc780263d7aace8f59cc8a6c54bddbaded3adb12ae2ee0bacf6a8da635ff85b51a4e8a1b3dc404863b90059de4ad0f158dd":"efc5a1acf433aaa3":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"f94170790fadab3240df568197f9d6f6855afaed8d07eceeaa2380121872529f":"2f9c0647a4af7f61ced45f28d45c43f1":"":"ed231b78db082f652bc6310c396993b52de804a82464fa3fac602a1286535f59c67fc2b1b420c7321eb42b971edde24cd4cb9e75c843f2ac6fb8ecdad612d2e5049cf39327aa7a8d43ec821161c385f3fdc92284a764a5d1cbae886f07f93017f83a105bb7c3cc4fc51e2781516a2471b65c940ddae6b550ad37b35f53d7cc64":"ab74877a0b223e1c":"":"1cb5ed0c10cee98ff8ecfa5a1b6592391bbd9f9b1dc1ff351e0af23920d546b5e27d62b94daabd32f7f96a2632dc9fd7c19bf55f3b9b7cd492e76f4d6b0f5b437c155c14a75e65bfc4120bef186da05e06a2fd3696f210292ee422ddbce6e63d99ee766b68363139438733c5e567177f72e52ef2df6a7dd33fc0376d12ec3005":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"797c0091ff8787fe7cd0427c02922620e7f6fb71c52ddcc03a9f25c89ba33490":"69d81c73008a6827a692fa636fbab8bb":"":"2d3efc8900315c3691a8e3c9de3319d4deaf538fcf41aa0e295b861d0ac85baf56d149a6437747dd6976f44016e012b88de542fb8e5b9e4ad10c19deec4b7c0b69bc1b2e33d44a981ded66127dea354b072010b8dc24b85ed2ffeea3b9c0e931619dbbf22677691f0d54fc03eaa162e0ab0d760ad41021f67057c0d6ac19ca8f":"be2dda5c":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"90ce1afb5500489b9edbad987f4009509c847b3e55cdf0c764ef2fb085e3d033":"e119e166471ecf44bc3a070639619931":"":"98482b54edce2bac1cd64d44917dcf117ebfbfe26ad17a9b263447028304f1cf5a69559c05b5d833420f4fddb6e308277d01eb4b3235f1c4b47d33d3899325b55e7be19d43187a5b1b1354ce02a529b3df1c13b4883902ae9fc565079dee825e705f3e580371e4fd86c3b0d31bae98adb529901f346ca07127314152b4370edd":"b2f54b3a":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"29264a90f114a800c0fc3247b3bda00981a12a8f85cf3a19ea4c7ffdd005f4bb":"cf296aa43cb7b328e09c8975e067404e":"":"587c8e53ab5ae8c31e16160b4a41d88798e27f4ad61c573c023c62d4dbb3952eef5026ad7b453fa9e0694347ab8fe50a6cf20da566202b81e325cee9c07ab2d4d53ed45b3ec2d2135936515f8a24f2a8116807dce9df3c44edf64c32647145152ff241d9e018e4101e400af070192dc3b498b5a213d265b4cfc8c8d4d7deccb5":"56015c1e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"84ff9a8772815b929d55f6052c0354cf3e02bcc8336fcfe5794952b4c45d5d96":"5c044a66e488b853baf479f7dee2aadb":"00304e3d40cbc6d2bee0778462884f4ec047a8c74bb3dd7e100f2b9d0e529fd24730063986117b56ca876b208a3691425ac63afc3d504ccb499c76622eade09717023fcb7d956b01ce24a3e53cb5da472be3fcf5b278b5d9e377de22fab75bc74afa9670f5fe9691aa0ed77e43f6abc67a61ec409ec39fd66ac0307bf195f36f":"a87de56d49725a1625baf12fd15931fe1a6783dce5d1e744eba108f45e0c105d8141dc027d0e33ad7efb6752b43729715e2f3e2c42ebdab4d5f72f886bd821c4372244699ddded99a63dbe7763a5a3bc21cbfc253cdc2514eba2a4f54e24dca7c207cb3f6ae80153d77fe0641f357d5a073dcd425c38deb77c45f27427345516":"72ddd9966ede9b684bc981cbb2113313":"":"aadb8537309940422f67ca393aa6182d67fe7c52092538a15e98a4254f0a9087c7f10903d5e78078c2e55de914dec8b6b35cb720e3e55963c0ac9901e44b83a0e7c5b2d3f002aec0a4a08354febe47b2abb955f2a21107626ef0b8e1e099650812a6fecf36908fce2d078c2735cf7c2b970a309e5c6d6ff29c26a05720c57105":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b5ca3991d0160b1729ae1a622dcf4b03b1f4ba86150bd66bf35cbbee9258af10":"f8402184d1cc36df07b68ecb1ab42047":"d378cfd29758bcbd21e26a324239c42c992941b3ad68d9f2b3d2def3a051fd172ee882562970ef59798ff8d9eb5f724ff17626156f4cf5d93e41ffef6e525919af6194ea9bbb58c67563d3ffd90e5a6e2a3a33bd1fa3d55eff5dba7cd439d571f7e08014c4780e3d10904ef22b660897e78258da20b2600e88d71c35ecb6329a":"62aad5854a238f096bdde0711ac6f5763e7fea29db068ea8c911f17ba91e6d7807883e6fc5ba7db17af33da2b00973008a3425e65cc786ce1b97360019ee2cef74563d54752be436b905705b507c3d62689df4edf0356d26b693eb43d8a2a927a9f3866b7e0e19e84a90447bd6f47e31070fa7c2a71e3f78229ee19fa47e848f":"9e8b59b4971130557aa84ec3ac7e4133":"":"556dd32edc0af3c64186fe8c000ddad1516cd14721c93c228e379d4f87e32c79e734539cec930322048f34a2b34931c585d44f09966caf187ec4b9244c991a8a5f263e9da1d08d6086e52535afdb36c7662307521cbceb9ecb470a76970243723fbc1613b6ebbcae261ac2f1936e66ce29ec7350b2e6b2f73a910ade645154f7":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"df867d1dd8a287821a54479cab6f88636d2aca30e1bf01a5dffc735e17590356":"35019826c51dd1ef07ff915d9ac4ea96":"0375ed93f287eefe414ab2968844bd10148860c528dbf571a77aa74f98cc669a7fc317adc9f7cf2d80dda29b19db635b30a044399f3665b6176ed669146d28f5ada03b3d32d53fe46575a8afcd37f20386d9e36f7e090b4fefadfab7f008e02f1b5022c0eeb81d03443a276eae48c038ed173631687d2450b913b02c97243edb":"6517272cac85d7f38902bcb4b96a0c59c4bdc46bfefa6ebacd7f2fb1629b87ca91de2ffefc42ce3cfd34dcbf01b3f7cadcea3f99e6addf35d36c51f2ceb1f85c1f56a04ec9c9fff60cd7fc238674992183ea3de72ef778561b906202b7b83fe6562a0bca9c1e0a18638e8685b998b4192f5120435809ad6e93a0422d00725262":"e49beb083a9b008ae97a17e3825692f0":"":"723be39bc13adbc48c861b07753f64fac1ae28fc8933acba888b6538721df0a8b91c040a26522fe0dbb7335d8f63d209e89f7cde23afa9ca3c584b336d63a91e07fdd8808b14c3214c96a202e665bbaaa34248ff30348f3d79c9f16e66ad6c5903305acd887a89b6244eb7c2d96e18b13a686de935bf3821444ee20f48678be5":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"0e8e9ce6294b7fbc534a96bdd060120976a6e08315d2ea73ac61d085cd462a44":"4edc6be20f904b4789e5bee0a80a3fc8":"db28ce076b360816cd1e04b7729f8ab080e0a07f35204350f3bd056945aab8638c0e8311ab056f3e5debdbfbb03fae700770264faf73e0f3a05a5812aee84ab613c82f4a76da276250675f6a663f85e2c26d4f4a8666a7f4cedaffc1a7218dec11ca4e72b8b5d5b620d1efbd3d3b94a5ae0d118b9860dfd543b04c78d13a94c3":"9855f186b51358f0e2111c06bfaaeaec9bf95c55e246375c614fad9883d86c82a20c86538dc5f42a0ea69677d59a20c5112d15d2a8396f12096242ad5d7b838d16ee0679fc4017af75bc15e8ad2f77b0e802c864031cbfb0bacd95c828d1db4b7bab0713619e9e5e8fe6902aac7a9e6c42eb05f5b156f7e663ee43e6fdb62480":"03cfe6c36c3f54b3188a6ef3866b84":"":"e10142f852a0d680c983aad2b4609ccbd35ff61bb3eb66442aee6e01d4cc1cd70f45210acbd506395d6ca0cfebc195a196c94b94fc2afb9ffa3b1714653e07e048804746955e2070e1e96bff58f9bc56f3862aaa5fe23a6a57b5e764666ddec9e3e5a6af063f2c150889268619d0128b3b5562d27070e58e41aadd471d92d07e":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"886c77b80f5f3a21c01932685a540b23629f6d41d5574fc527227ed0bdf2e21b":"5ec506edb1890a5a63b464490450d419":"05b8d820c9f439d7aeae5c7da0ee25fb0dad47cc3e6f3a47e8b984e856201546975f8214531fc3c2e504d2ac10fa49cb948596b9a8fab01b95c49d6f04d1589f93b77b899e803dd20e1f00a51c0b5953e85be639109b14b100e35ca26d84ea629964b0db8260dfa5a150a66261bf37e79de2ec49e9f1b082a7c58ecd3d39b6c9":"53a17d7b69f607f08676d6f6dd4e8db08e01333a8355d8c87616e84cdf10ef5b041fc6ddc3f6a245c0f534c2b167064af82f45e4702a5e8dede59579fdecf6713353392433950c9b97c38d9ee515ac97d0970ccf03981954540088567a30941bb2cca08cbed680500f8342faa7aebbc6c143e2ea57ba6b4ac1fd975dcc5d0871":"ffdf56e1c1a7252b88422787536484":"":"79ee27adfa9698a97d217c5010ec807806feda37db811e398c3b82abf698aece08561fffc6c601d2691738e279eeb57e5804e1405a9913830e3ba0d7b979213ef40d733a19497d4bb1b8b2c609a8f904e29771fa230c39a48ebb8c3376f07c8013fff6e34f10fe53988a6ec87a9296c0a7cfba769adefe599ec6671012965973":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"5231ca6d772edd9ea2d251e22d7d455928c22474b4b44130dad57e6511fed6ee":"048698a4a0feabc1f336112e2794795a":"3a81b6b0b722899ff931cb73c39222d555b83ae3f8880b982593cbc1ab8be90d1ee32fd7dfe697cf24c95b7309d82c3fed3aa6b3d5740cc86a28174ac8f17d860ebb251ac0d71751c2ff47b48bfb0b3beb4f51494464cda34feaecddb1dbbe5fa36c681ada0787d6ed728afc4008b95929a1905787917adc95f1034fedcd817a":"2767c808410ee132291585ea74a48ad3102f883f07d060c91c5f10abd37fe0996d2210dc490260238ae15f5d74c7be2a1e15d80db09079c520047f88488a7802857a3fc3b81d85a96949997430a880177880a31d4d0c9c9045247804f057a4f2756d6e40375a4a3187c4376d6bf573ce334cda1ed88d8a50db499e7cdb89d8db":"ba61edeb7b8966188854fc7926aad2":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"5a3f516a7898e04e5da4efd6c7c5989b77552d195464620c2b35b9a4fda29cce":"9310af6974890c0a0364231f9cc8103d":"2103af8356bcb9dfc2a4f1d4ed09cbcd8e1990d23865605e19f87feb50bf8d10d0257740e5557a9297f0499c01e29a1a513ca18e6f43f7406c865cbe3951a7771128f3110c8da3bd696368901944549552842a1f6fd96cc681b45da098f3c1acb3d237d2363285f520d0b6714b698790b7660c52ac84a42c9721ac7e9d38a2ef":"5cc28b61ae97557774bdcd7ff653f4aa349df68d53c7e5a65263883ef1fe224ad40e86bffc2d38f28a2ed9ae1fc08563e2a1e46246106546eb8e6064c06baa0046fa137421734b7f0f94656a4f459d9d981717557d843700d116b6e5e2dd3af5f67c34edf31b40b71fd3c6f2475f9310feb70bcb973be52d41e86792c49d54c0":"993fc8e7176557ee9eb8dd944691":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"59c9258554363d8a885fc0f5d112fee08eadfc7ce52a0e7e73e3d0d41d9a0290":"77e51e89dc47bbcac79cca21e81a61de":"25a6f8800a9b914c0ebf9a45d72355c03ee72a138eb81b2980f332645ce1d7aa4659805821866aee2b276e2c032776b4eaf36f93b5f9a72b791be24e31eff105ca6d0700e3069ee327983dd7fe1c7465d6c6d77837aff69055149988e7199847fad98605c377d997dbd40f3e2ff1a4f978a493684e401249e69540fbde96323c":"79c491411402ea7878e480519fd984dde44bce6459303bb76d4eaf97d4e345d1aafaa68ceb0590b41cfed0f411b675d9344c7e888cccfc9eb6fe6b229d198f94ba516ee850ee7f078a4f5f32a23f92f72264e3a76a31ebd042564315ac4f2ec0bb49ba6d08cfd2d3a6308688e39f28e3ecd669c588368cee8210edf5dbefb925":"ee6d85d3f3703b45adb4f9b2f155":"":"44ca68deed5478074adfddc97f06f44c08bf7bca4dee8707d621fc7396fe2efcdad0a167d1708a9ff59ce4cddb86920bf1dbdf41b2109a1815ffc4e596787319114cad8adab46cf7f080c9ef20bcf67a8441ba55eac449f979280319524c74cf247818a8c5478ea6f6770996026a43781285dd89c36212050afc88faa56135fb":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"5e9eae594cb54c8089330e4404ff79abb1c0841b0be5347a14633ad1e1ff44fa":"0917b486da754f48bb43ecc8766a7ce3":"2aa1ef2f91aeba5da10b48a882dbd4574df4e9157a18abf8cecd03e4176712ba171b6ecb0e745841ff84e35063e47b08101afc44cfd9cededb913a82f00b9d4bac922f23a22f200642270399896405d00fa5271718eefb4cd5fe7e5f32097766ebff36ff1898a1c8a1a01cc18e6121e470805c37ff298fc65ef2fb1b336d09fd":"32abc1eb6077555a85a0a6fd1c78cccca6c8b375842e2eb8eee45ee6c38dc0837443d16c647252e8124639dd01c808ac5e857a25d927c2a75e2fa8955cad5beb5c206fc050cd933fc4621f5718936f01f39dd700ae1aee7537cc595df8789c5d1a6e1e87b1c7a60e3ce5d57c80dd65dee3801798e1481b1963bcc78cc69f8c50":"92282b022e393924ab9c65b258c2":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"aaf03c3055a35362212b9b059931e7a24fc71e32bc9a533428c9dc31077f2ebc":"7dfccd077b29e6ed5720244bb76bde9f":"21edd1c6056f51fd5f314e5c26728182edcd9df92877f30498949098dcde8089eed84e76d774ef8874d77125669a302d268b99dcd66b349d0271dde6f8cc94dc4f2df3787887b1173cad94d067e346846befb108005387102854d9387d2c0fbc9636cdf73a10d145f4b612c201b46e1ff4465f6a7654ce3da5792daf9a27fb35":"c0e12cdd8233878505e025d52427536be7b6bf1887d2dd20eac7092db80b22417a3a4ca83cdf5bc5e36161be1ff9b73f7ceb297c6d07c9cb2a75035a5dc079e48283daea60596f4b356ca28c243e628cbe459f069709fe193394c9b1a31d8ccc5a3a4eba30056c415e68571a2c34bb5c32efff12e9aa483c4a68be5e76aba4cd":"6154c6799ad7cdc2d89801943a":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"60c775971a9eac7950ed2bdd85bd60fe948ba04c419f6743fb67f37557e46c6e":"9b92ad7079b0de09c94091386577338b":"1f6a84b0df75bd99a2a64849e9686957c6a60932ebe898d033128be9b757e9890225925d856bfdc33ff514c63145f357730bb0435c65342bc5e025267b410af6fd388a5eca01b7efc87fd3b1b791df791bd47dfab736350d7b7f368b4100e04c939d5af957bab95ed502dac904e969876674602a0f0790da2d7351b686e46590":"8abb2e66a4d08074916056bb8e925551372f737f0e1b597c5d08ee102989743a273b29d7281013f8b3aee2934399cb427370d70370ee86eb41584b653660c633506a53cae747826bb7d93909f069d5aacf058b7f2bbdc58ea08653db857bda83a979fc22a4f126dfef7aac45177f4cdb802fab0c812fb35d12a8176ec21336d7":"1d6cd4ab3914e109f22668867f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"3b426e449337a14bc0663246ab61b671b523c9a3130c21ed59c93fa6a5aa5ae3":"e6efc96acd105fe4a48d1ac931eea096":"0902cf7a0685444126369712ac47962bc2f7a3a5837f1b6190d9ab1adb4cd35e7f0892eee628b8e07fcf2b598cebe1ec07d8c4823172ae66a135bb51cc71590707b691a66b56af1ffe38772911d11685da355728eaddd83752d21c119d7b59f4c17c2403629fa55cd70cd331aed7b0de673c85f25c2e9e0267f53f0b7480c8ca":"291bd5a00d71eb7d547b7c94e7030ba4a947418eaeb378a3bacd304b08c6f92f6958eaba968ac6aa23e0512a2a8ad7c1ca2f8fcf623bfc1281f5b7b598c08d2aebcd447668b23238c5e338b4c2ac7f8fd381714c596ea3e0c17aca4317a08563e58f0f52a8af08e078dc242ae54ee0fe3869f8c9687b004a4ded0aa27d8f4c5d":"ca4bfeedcd19d301d3f08cb729":"":"bcef3f2fd101b828d36cb38530cf9a0a7a285ac1c55ee1069cc78466327e85887534c98a8891d579effd832c0f7d6e7e822fb1eea85a39317a547591def4aeed6660872859fc9d1df9725d3c40e9ccaa900e0f1426a55d20ac4f2e8e07bd3bbc687f8e059ab93e7604c97e75ac94be1c8c24f4c4da0080a4d77953fb090cbb62":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"ceaf204ff504ea8e7fade1a2097f2b527a44766860447322fa5ad346cd810217":"cfdb8183251f4b61c64e73243594fdc6":"a60f3969fd1b14793dd1425aa0b1f742a4861e0b50eaffd1525cd209ba6d1252176763bb5bee59aaa55f92341cdc0705899aba44cf0ec05cbf80274ebef65cd9507fd4224b25cac19610968d6a37e2daf9ddf046ef158ef512401f8fd0e4f95662eebdee09dd4a7894cc8c409be086d41280bd78d6bc04c35a4e8cd3a2e83be3":"1c8e4cf6018211518494d46c2e0607fa42e236abc28d58f8175c530f84b1f030572f5f6a74cb5517e1fb999a637d352afcbeadea9121e695675859b66b499a3a351ecba5226e58ebbb59fe12e359e4c89cd51c8703d4643c49921ae495801c73627df404b91e828e1d0e03ae09a39defb5aa5f2c8106953772ba0713d3261329":"9e45029f4f13a4767ee05cec":"":"5cdc66b587ed5eebb04f42b83a6ab7017093514881c598cce332d74fa3fab927493ac15bff26835296e080b5b45ef907c0529fc2f4ed2fc09db179ef598e5d193ea60c301d3f8d823404814e3e74de0e1d2417c963e9246c353201c7a42659d447376e7d05c579dd4c3ae51c2436407b8eff16ec31f592f04b8013efcfd0f367":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"15652abe38cd09777bba21d0db04637f5737d3cb3922181b9f2d07bfdafd327a":"3a5e0d223ae981efb405566264e3e776":"cd755437cb61b539908e0cfaaa36c0123f8f17d1e6539783cb61d4b56cac3bc1e971c1ea558b12669b025cb6b9ad55991c6e2f8ee8b0b7901790193e226a0fbbfff7ff0bee6a554660b9f32e061b6c04bf048484ff9ebd492f7e50e744edd72d02c8fd32f87f9421bf18a5a20ebb4d9dbe39a13c34b7296232470e8be587ba09":"1d6c153dec3b4738a09c9fbdfe31a093eb7ea79b8fa49f83e5e1f46893590f074fb171fb66e30ef887767014e3a10a3aa05da2bd50dd7b7936e1d7f6f31af9030e31e76bdf147f4396464db0f6a72511c4885c6c2305d339906e3c761a3249d7ebea3bf463e8b79c3706e684575550e964b8047979f7aed6ea05056c4b5840b1":"01a573d8e99c884563310954":"":"162430c23f7adcf98575a2d9249b4b5cec42efae33776360ebfa6a19c8eee4bd6b07cbd274deadc3292b7cdbb7803e99d9f67ccc5077f3ad5808f339a05b3213dbfd11377673d4f9b486a67a72a9ac8ea9ba699861dce0de7e2fd83d3ba2a2ec7fabf18b95a2bbe2184ff7bddd63111b560b3afe7f2c76807614ba36c1b011fb":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"a43f6d07042a15cd49f6f52a2a3a67c6c2ff420d95bb94b9fe03b287c3abcaf8":"3b6fad21f0034bba8b1f7a344edf7a3c":"2e01c0523c8293fc51388281dccdb8d0a2d215d729289deb327b8142d716c2bb849e9476545b82f3882ba7961b70c5da2a925ba18b6b121e9215d52ac479c9129c9cd28f81584ff84509d5f9dcb7eaae66911b303cc388efa5020ac26a9cd9ea953f61992a306eb4b35bcd8447eea63cef37bb0c95c1e37811115cf26c53e8c5":"b67e58c8b608724fd20aa097ee483bc4c804490cc79de635170944af75c87ae0ad8261365c1dc80d852553bcba18da9fbc3fbe61d27550a03003ef0c60202054626655509a9e1ab54677e537a4e761df011d6c6dd041c795446b384161ae9eab441afd24d19b58eb4fe5116cd7b11b751ebbd0a2adba7afc380d9d775177099a":"43470bc3d7c573cb3a5230f5":"":"e1720d451fa7ab9db4988567187244b15b6fe795dd4fef579fb72e41b21aaa436d2e5d8735a4abd232a3fb9188c75c247f6034cdebb07fd7f260f8e54efefa4f2981cafa510dd5c482a27753a7c015b3cae1c18c7c99a6d6daa4781b80f18bbe6620bfc1518a32531017a1a52aadb96a7794887c11ad6bdd68187ba14f72a4b5":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"1f0f0191e18db07c0501dbab4ed952c5603a4cd249d2d8d17e62e10b96ae713f":"ab8be16b4db809c81be4684b726c05ab":"a5a6e828352a44bd438ad58de80011be0408d410f6e762e3145f8b264a70c593476b41bb87875746c97de7d5fab120bd2f716b37c343608ee48d197a46c7546fafcdbe3e7688b7e9d2f5b6319c91d3881d804546b5f3dbe480996968dd046f406c11f0dc671be0421cbc8b4ea6811dd504281518bb96148dddf9f0dc4e2e2436":"aad40e7866c26e486b6f6e8eb14a130d5f88891bf0d09aa8fe32f447ab8dea7bee5d3eda4499c0103a010483f2b64fdf1155499d31decf528c77dd7627884f9995c213cf7402143dbb7561d69c86886734260ac94ffac7eb33598d25714228ef43f744ec1af2a87e789f1e5d6fff0fbd5082dcc49328f194e8f8a14a5bfc962d":"d8bd7d8773893519":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"a6cf7d83137f57f2310ee6bf31e8883952bb07ccdc12f516233ed533ea967e5d":"f17e37e73a28c682366bfe619cc673bb":"0f4dd201b18e20230b6233e0d7add6f96537dd4e82d3d0704c047fab41af5faf6bd52bd14fa9a072f81d92a2ce04352f0b66f088c67102d2d127a9850b09ff6087f194a6e8ccaba24091feb303eebb65f1203b2d22af44e7be4de71f03e6f6cbadf28e15af58f58eb62e5bddfae06df773cc3f0942520de20078dda752e3270f":"83ab20698fd7573fd121976a72b45a7f03aad84702fc8ac73d6926eabd8a546895aeffe4ba81d117507e2cd37d58eeff71cc3afa8a4449be85f228ea52f6dc6395bb43c1c9f795343720841682d9b2f00602eafa4d4cbe297bfc62467e526b9d823cc8eeecd9e5f8dbc2f65610663c6f37b3d896651b254bd60215629ade3b2a":"74110471ccd75912":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b0c85ac6b3887639838ddca94c5c69f38115aa00122322c8114642d12ea1b8fe":"14f68e533ecf02bceb9a504d452e78c7":"796a46236fd0ff6572b1d6257c874038f870aa71cbb06b39046d0fb6489d6ae8622b5154292ae5c4e1d5ff706daedb2e812533ae3a635d339a7fbe53780e3e8204924a5deb4b6856618f4c7465d125a3edffe1ab8f88b31d49537791c0f3171f08dbb5ed1d9ed863dafbae4ecb46824a4922862fe0954ee2caa09ab0e77ed8fc":"0210fce418e7e2199cb8f899c81b9be74a630d00269755f882fc4db27632e99685cc12c426a7503473646df1288d0ede28408be9add5713628700f8e2b2e27d7522520ed00ac47239084651eb99e7d03e1520aae137b768f3144232c16b72158fd5da4a26a2525b9b27791bf06d1eb2e671c54daf64fddc1420bc2a30a324ba5":"6fb0b5c83b5212bf":"":"5e6c362f7587936bcb306673713a6f1fb080783a20e9bbb906456973e529cfa0298206184509c30e1d3793eaaa5d564edd4488f04311821eb652e0a1f4adaf6971505ca014788c8ce085ceb3523d70284ed2bb0aebeba7af83d484df69c87f55a93b3d87baa43bd301c4e55eb8c45dcf3e4612535ea1bd5fdb4c3b9056d0cae9":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"e61b1a6b40e2ab1245ff65dcfb9948318ac4fe55e9ed600cec301dae32ae0e93":"c356244b3034d288e4d4fe901b8e27c1":"bdcfeb09d5b97bab05a7acd9849e7de2c5beb7a4dc573c7e1c1d0c0409245a6584023114fdcc6413c800ca16847bde750b27c4d590248e2ce457c19b0f614f6aff4d78d4a19b3251531e5e852fbb05d09412cc1ff8988d1955ca6f5fe2d820f20a7642e3ae69e8122b06ba0918e806400b9b615e1abe6fdd4f56a7d02d649083":"8d67fa9fcf078e421cb63abeb25dba739ab0e09a091dd06b0c616e1e888f350edb2d73a42f57f115266ea20c7f8fc143ac746649612df06a5e29b4a15934dc049be1ab49d018ab86c4f37d8c3d9c714f038029e74d8ee3dbe61d81adc63712ea413b37f7604da12107aa1695d9b0981e5a92cdfaa5fbda0e31b22c6fd6f3b499":"86acc02f":"":"7c73182eca97d9617abb478a6ce62e3491a7e9951981c89c3071b161a4c80440614c3f24d0155073e28dcccee96bc8303dab4901ef77318df522d16d9da47770ef022395d6104cd623d93d67090a27507fc8ca04157e7939e639c62cd0e7d8a472314833c0eaa9ba2fd54a25b02854e3bff25cccd638885c082374ae520ed392":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"4f5a02e9843d28c8c226ed70d44b8fced8fb757ab6ece4d4f06e3c3cec79e44f":"099e5d9aae89fb6391a18adf844a758e":"ad93e8662c3196e48cfdb5aa3bc923cd204151aa980cbec78f0d592b701f779c1c49f9e8686d7e2385a4146b21a643a59c18c8b82214f42560bcd686fad7c7c8e8c1944ce6b20ec9537dd14b6cf2592740ca112f4cd582250d69f240d3e957040e1f7e19c60b3c8f2bd00cb666604c38946eb9b2f17336d281b4794f71e538a2":"3ec13950d329f24074714c583bdc35686b811f775b76b0a8fcfa66fc56426c9d022f8ab0af38f8d2f71a068548330cdbe891670181ed7491bf40c739ef4dd93689fd35929b225089d2b151f83d9b3cd767300611144586767354c0491112c205409f3168092d27f9b9f433afb79820a2811984d48e70c1fb2a13bbb3ddbc53fb":"30298885":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"1cdb218e0bd0e02156e5b48182990f778889793ef6018a8928e61164ac047c8e":"d2ffbb176f86bee958e08e5c7c6357c7":"bc580c4223f34e4f867d97febf9b03629d1c00c73df94436852cafd1408c945c5474c554cb0faf2bae35d3160c823d339a64ebd607cf765fa91f416fc6db042bc2bd7445c129b4a0e04b6f92a7b7b669eb70be9f9b2569e774db7cb7ae83943e3a12d29221356e08e5bf1b09e65f193d00d9fe89f82b84b3b8b062e649163dc8":"4d039618a0eb640329f90fe97de18bc928fc3fc7a0db42c97774bec2e882e872fc1097c8319f7837a16516bf387b1bae321c565e8fc1cb8480f051158e4685f0adba310d2c6253bc1300403cbd3f7ddcb2796a69f8bf9e73d47aada9a02673c1a3d5ecdac838abf22b385906236529a1b7dd5b8af2611a04cf4f83b15ba41cfc":"1997daa9":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"dc1a145c18bdbca760f35eea0d4a5992de04a0615964ec8b419c8288ab1470f0":"7f8368254955e1b6d55b5c64458f3e66":"":"":"8ddaa2c3ed09d53731834fa932d9d3af":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"7b4766d3a6615ee58b390daa228ae7a541c46ce80a1efe227cc43cb777df3232":"274367f31ec16601fe87a8e35b7a22dd":"":"":"5f3a757b596e06e9b246ed9bac9397f9":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d19b04055bf6e7ff82e89daef66c9d8319ab25f9197e559444c5729b92c4f338":"796efaff4f172bef78453d36a237cd36":"":"":"3b445f38bf4db94f1a9ec771173a29e8":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"7ca68e300534a90a7a87ca9906e4ac614a6aa51f769b6e6129753a4f83d10317":"45e6b23f8b3feefd4b0ea06880b2c324":"":"":"6c0a1c9c2cf5a40407bfa1d5958612":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"a2b7cd693239bbc93599d3d12c9876e7303b227b8ae718e2c62e689e1fd62903":"548c9c8fcc16416a9d2b35c29f0dacb3":"":"":"3aa21f221266e7773eeba4440d1d01":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"156b854beb0c276a5e724f5da72f0d1ca4ae7cbd5f93a2257d95c2e5bfd78ad4":"a5129e2530f47bcad42fc5774ee09fe7":"":"":"6bb09ed183527c5d5ed46f568af35f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d824330c60141264e1f709d63227a9a731bcc42b4adec1d8f0161b10b4fdb2ab":"c5afaa45312c64ab3c3cf9d6c4e0cc47":"":"":"55952a01eee29d8a1734bbdf3f8f":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b5517589948d8aea778df6fd66c17a170d327f69e504f0a4bd504c4286a9f578":"6404b111c6289eefa0d88ed6117bb730":"":"":"637f82e592831531a8e877adfc2c":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"f6137b2bcbd327fbcc7f313efa10f6ffaed30e4782e222e1225c87103fcae905":"3b87b08337a82272b192bd067e3245ec":"":"":"1f2dda372f20ffddd9dd4810e05f":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b5e70d1b78e931abf44bba3f937dbc344858516a8a8afe605818dc67d0c3e4c4":"58e70095c6f3a0cda2cdc7775e2f383d":"":"":"1763573f7dab8b46bc177e6147":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"90de0c047d1dd01d521f2dedec7eb81bc0ace7a5a693a7869eaafbb6e725ad7b":"d565c9cdfb5d0a25c4083b51729626bd":"":"":"78738d3e9f5e00b49635ac9a2d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"c43e8dbeafb079692483a9fcbab964b76fccca6ca99e1388a1aa9bf78dfd2f02":"f2bd4fe0d30c0e8d429cac90c8a7b1c8":"":"":"ea7b52490943380ccc902ca5ae":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"13540919fdb95559e37b535a427efeee334309e34c4608459e204d931b8087e7":"c993c1802df0f075ce92963eb9bff9bd":"":"":"edfab013213591beb53e6419":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"2a7b2e07c148ff0f627ae28c241a395876bbed0c20f3fd637330e986db025714":"8f7e1621c2227839da4ea60548290ffa":"":"":"f9da62f59c080160ec30b43d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b3e7837a75b38ae6d4299a1ae4af3c2460dfca558708de0874d6b1a5689b8360":"05d363b2452beff4b47afb052ac3c973":"":"":"6b4a16d1ea1c21b22bdcb235":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"9df3ccd95f7570f6ecf5e5329dcb79bcd46cbcf083fe03aa8f5bd0f645c6a607":"774f4e70a7577b5101c0c3d019655d3e":"":"":"98ff89a8e28c03fd":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"1c7123e2e8d3774c8f1bdbb2272f19129e04f29b4351ae19c3b9d24e6ea1fe87":"99f25cebd6cfa7f41390b42df6a65f48":"":"":"8e14a0a4853a156a":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"490090323e9257517e2453469caa3414045cacb4d05d5cebc6b9c06fa6d19291":"c1beff1ff6cdd62339aa21149c4da1e6":"":"":"f998d7c08d609b3a":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"360e48dd38d9e7f5bf29a2994ab5b3c9c70247102d94049ae791850807a4c845":"88126c350dfc079c569210ee44a0e31a":"":"":"f2ebe5e4":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"1562b32e4dd843edaf4474b62cadd8f46d50461f5b22c9f1a8eae7367d35d71b":"af29fdb96f726c76f76c473c873b9e08":"":"":"13fd6dfd":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d5160d0c98ffcb1c26aad755f67589000e2bb25fa940e6b1d81d780f421353d9":"1552604763453b48a57cea1aed8113f4":"":"":"660c5175":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"c3a3ea3a097c0c2b3a4cb78462d87fd5a8f348687c4150e9d3354b388ab13d17":"f77945979241fb3a454d8e3da193e169":"a69bac31241a2c07d3f7e331b77f662b1e67ccb81c07f52578b01f5785de9437f02eb7627ca7b9af09c1cb428fe93d6deb31f4d6dd2f0729f87480bdeb92d985de1aaad4bcebc6fbad83bede9a5dd1ca6a15bf5d8a96d4edb5bee1f7d195e9b2e5fb2221a596d69f257c18a143eda870e22d3f2ed20c9b3b0d8c8a229c462fff":"":"6b4b1a84f49befe3897d59ce85598a9f":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"e1626327d987342cba5c8c63b75b4ed65463a2b9c831f4f9f80325fa867d1d73":"4e25800deab7ecec2a2311f8fb44eb7d":"ebaffd558f24dae03117c69ac4b2b4aaeaffe7e0e7599eaba678bfce23a9914dc9f80b69f4a1c837a5544cba08064a8f924064cba4d783623600d8b61837a08b4e0d4eb9218c29bc3edb8dd0e78c1534ab52331f949b09b25fbf73bece7054179817bc15b4e869c5df1af569c2b19cb6d060855be9a15f2cf497c168c4e683f2":"":"8faa0ffb91311a1a2827b86fec01788d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"938da64b837275b0c80c442bdf2301aa75e387fe65a775d10a8ec840f62ff429":"dec6adeb60216cbb8a6c3afba49fa201":"4ac144bd95f405649444f01ab67ef3e4c0a54fdbd933b6ba00518c79db45c22c90030c45aadcfdb53ec8199be0cbb22dbb9ab938a871f4b3b0c98ed32590a051abb946c42726b3e9701f183b2092985e3457943a6350fbcaece2e6b111b179ea3fd10ac080a577a1481785111d5f294bc28519c470ff94392a51a2c40a42d8b5":"":"2211ca91a809adb8cf55f001745c0563":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"e2436484ea1f454d6451ad8dbd1574b208d7a3ab4fa34869299b85c24348b43d":"97040d2ec094fe1c64fa35b35b7451a7":"bc198677513ce0e66697dfe52b22315fa5d8f92042f34cc9f373a01f94607df1a599132f60af010ed9b5e52162dd7b162912b68b11700e08f5fdafd84d10f760fc05ec97c05b83e55155194f399594015b90a19c04fb992e228940fe1b54ba59c4bb8318b33cc0df1cb1d71c389473dfb3eefabfe269ca95db59a7bc0201c253":"":"2e080ba16011e22a779da1922345c2":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"7fb3fc72eb8a3aa5b102f90039f852cc3fd64f46915f5e49f1d9e02fe9cc13b1":"f6120fea313362524917c53d90bafb4f":"60c2be7fbd15faf895fd19a9ce775fe2b183b45cffafe4fcbf50d421bea97347e41a9418cfa129b2dda63b889a70063010215dbe38c37feae18bc31b34f31b726f22177f2b4b9d648dd4aa80edfd12dafaee10baa83224354432d1cb62ccabe38bb8448d162cd0d30e988d2e1a2458ffdafaacbdff928756390f66dc60d7ea45":"":"83de3f521fcfdaff902386f359e683":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"697c96d80d0a3fa9af35b86f31fb71a17aed30ce841c79896bbc8863b3b3ee04":"3a5163ec7e007061838d755ac219855e":"de50c12da63232768d5eb9920d49683b5b7114cb77448fa10b9d63552ec5d9c2eac94b375d11f944959f903bb20c696639b6e7f108ec1e873870098c631ddacb2c25268cfc26d2a4cacfb7dda7383374c5456bcf4daa887a887f4293f8caa14419472a8bf7ffd214dfb2743091238b6d1142b116c2b9f4360c6fe0015cd7de81":"":"cd4542b26094a1c8e058648874f06f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"66c1d9ce3feb0e966c33e3fd542ec11cc32f18c2514b953103d32abcdc72633a":"46fdb88fdde9b7d74e893802a0303256":"55d2f263d2e3cf0b390fce1dd1ebd5f666086f26e1ce2f08002bedbb810ada3922c6bfcf6a6adaa556e9e326c9766f02b3eb6e278da2fa3baa7dbdb6373be3c6ecfbe646b1a39e27c5a449db9b559e7ea3496366b8cdbca00ee7a3dea7fdfbea1665bbf58bd69bb961c33a0fd7d37b580b6a82804f394f9d5d4366772cee3115":"":"96ca402b16b0f2cd0cdff77935d3":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d7c949420dc9497232cd5810f316d11f9e85d36c430b5943ba79836d88c1eb92":"7ef9788ff09cbeedd9569d49083a4097":"ca1de5cc3fcde2638eb72210e551e9c0e0a3f5570d5be83a9a4406b545d854bf17e75b9cd0f4c45722fbd71319a317b72a8798485e9316a1c8102432b83bc95af42f6d50700ba68f6f2e19b6af609b73ad643dfa43da94be32cc09b024e087c120e4d2c20f96f8e9ddfe7eae186a540a22131cedfe556d1ebd9306684e345fd1":"":"8233588fca3ad1698d07b25fa3c4":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"6fe7c70815aa12326cdcbb2d2d3e088bbaaef98b730f87fe8510b33d30e12afe":"e0253bd1f19e99a7f8848206fb8ac4a4":"397897eca4856f90d14c3cdfe1ad3cba47e23174ae2dab7d2a6320898584e03bffa3ffd526f416d7b3c579b0f3628744e36eebb5df519240c81d8bbbf5c5966519c5da083ab30a7aa42deae6180e517cdd764b7f77d19cc1a84141817758887a8d7265e7e62279b9d33cd2f1ba10fd54c6c96d4b8a5dbe2318fef629c8e2af0f":"":"477b0a884d788d1905646bd66084":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"cbeefb3817cb02d617f385cf2371d52c8bcbc29e5e7a55cd2da131ca184c6e89":"f74156d6400ae46b612531848bffe18f":"1abe2ab05ceccf2391273126fe4a4426b94d2c3b97a7f1cd2ee6bb952bf4a546e972b5a1701d5ddb0e5bb7a248fcb47107a9fc77e4b9806b68a11850119aa239fa8be1370e3a2e1a8b168f7323afdfc4b8917d92570167848a56132d68876abc386c258a9233dc8a9eb73443b052e842c3d63e8b5369acdd038404e4e9a4b038":"":"0cb67cec1820339fa0552702dd":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"e6f5f65ce2fc8ec3f602f5df90eb7d506dd771337913680ac16bdcd15c56583d":"9212a548c597677d1747e98ce6fb18a4":"55ca486c0183d0134925880d2e21dde0af51c4c77c6038a5a9c0497884e0aa4715bdb5b4bb864acc708ac00b511a24fa08496df6a0ca83259110e97a011b876e748a1d0eae2951ce7c22661a3e2ecf50633c50e3d26fa33c2319c139b288825b7aa5efbd133a5ce7483feecb11167099565e3131d5f0cb360f2174f46cb6b37c":"":"08d7cc52d1637db2a43c399310":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"0e9a0391435acb57eae2e6217e0941c79a3ff938ec6a19b8a7db2ea972e49f54":"27cd1d7af7e491e30c8110cc01392529":"79140d32bb32dace0779e2d37a0f744d6d973e99a279962b43a6c0af63772e8a0a21d5d9dd3c33d4b218cb2f6f24dd8d93bb4e1e6a788cb93135321ecfed455e747fa919b85b63b9e98b4980a8ccb3b19d50d735742cb5853720c2ad37fa5b0e655149583585830f8d799c0d2e67c0dc24fc9273d9730f3bb367c487a5f89a25":"":"fbb477dd4b9898a9abc5a45c63":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"55a12eeca637654252e3e40b371667e3f308b00f2fd2af696223e4cd89e3fd4e":"8a3793b6441258360f7f4801b03d0b26":"f5810dc5f25e49bd6d94bc63c2494aa7a579a4056a25f1dd9b2734d0b8731ee52523edd54ff475651d45c213e1bf254327fb0e2c41a7d85345b02bcc9d27b08915d332e1659671991a4bb74055967bebbba6ecceb182f57977130623d5a7b2175fa5a84b334868661c1f450b95562928b4791759796a177d59ed18bbf141e2ad":"":"99230019630647aedebbb24b":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"3d353f870a9c088de5674efd97646b9c5420b2bcdfcffefcadd81682847e5331":"f267fa982af5c85359b6447f9b7715ea":"7cf55630867af5dff747c8dd25bcc531d94a7730a20b6c03d46059ea93fcaa00d07ee17dad0e0dff814b02dfef0cbe00b37fd2f5f95ead7c72be60016f2934d7683fc1e47185c7211c49cb03e209b088edb14e533dbcb792ab7033728904f7ff12381a236dba97894ec1fafcf853ab15fff343f9265d0283acef10168ffd1271":"":"9553b583d4f9a1a8946fe053":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d227c9ff5d17a984983056fb96f3991932ae8132377529c29238cf7db94a359d":"b8f6536f376a7efe0e684acf350bae70":"1cc25da31f90de7fa47ebce92754d3faa99f88d4e25ccab45645c1acdf850d55d7f02f61a0bfdc3125f29259d7da8abef532fe0966c63d3486753c8a2cb63a39349a0641b2f2b9526a03b97d58ca60fbb054c6c164ff2836688b0cad54df2b165bc082eeae660e768dde5130e30f8edc863446661c74da69b9e56de8ae388da0":"":"44b95a37fab232c2efb11231":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b2a57ef85ffcf0548c3d087012b336c46f6574cf1d97ca087bfad042ee83eec2":"3d580402d2a8dc4d7466e5dcb456be7a":"c2b9e95c16e55028794a63ef82d11fb83a2a75dc34a81f238e472c33264534bdd54cd07d02a0ecf9019ad1a6d6c779f339dd479e37940486950f183bade24fca2f24f06d4037b3555b09fc80279ea311769473eb0630b694a29823324cdf780d7d1a50d89f7a23b05f7a8c3ad04b7949aa9e6a55978ba48d8078b5a2fd3c1bbb":"":"072d4118e70cd5ab":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"63889ed5bf2c27d518a696b71c0f85592e3337aae95b5bf07289e4c5dfdc088d":"1ad534280a0fac7dce31f2ae4fb73f5a":"be1b9dabea33bb9443e27f674b27931c0fba699a33dc86fab29e50b76a9441030444b465317bbf2949faf908bc1b501d11a5ea2042e4b460a85f3be5836729e523d99b56ef39231d5c6d8ae2c2ab36ef44e2aa02a1f2c559c6e333216c7f9ed5f9b880a88e920219204c99a3ae8f90afd1396563bc59a691a93e0070b0b5fd90":"":"1bcea0ac2c1a0c73":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"94e3e2c17cfb6f52d4fdba3ba6d18bba891b6662e85df14d7e61f04adb69e0e5":"8a80efb3bfe220526997543409fddb4d":"05da1b0f7ac6eef488d3f087ecae7f35abe3ef36d339709dc3fcb5b471979268ee894c3b6c7f984300d70bc5ea5fba923bfb41d88652bdaecc710964c51f3e2ae2c280b7d6c8e3b9a8a8991d19d92d46c8a158123187f19397ad1ad9080b4ffd04b82b5d68d89dacd3e76439013728c1395263e722b28e45dabf1ef46b8e70b5":"":"faa5c13d899f17ea":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"fe5e479ad0d79dbf717a1f51f5250d467819e444b79cb3def1e0033c80ddadd8":"47ce838083fd070d8544c0ad5337cdc6":"98476bf05a18c4ff1b6024dd779c1ac06d838705a0a83fe42bee5fc6ebf3b2a1a5049b67f4aabc8239cd6ff56504bcbad1e2498c159bbec2a6635933945f6ea49e5bc763dcf94f4b3643d3888f16105abb0965e24f51cb4949406124145e9ae31cc76535b4178492f38b311099df2751f674363ae7a58f6f93019653b7e6a6f0":"":"a3958500":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"27d4dedb71a8f68ca5ce2b9e56da772bf5a09b7981d41cd29f485bd2d1adb8d4":"7e6f0343c54539717a97b6c8b9f7dec4":"d386db78043f719b7e137cbf79a7f53dda2fe3baccbebb57d499f6eb168e5151f10081d76b72ae0f30165efbdda469e826f9246e59dbcad5c0b27691c00d6c192c24073e99c19cf8c142087c0b83c4ce2fc7ba1e696394e5620ab2d117d5dcd2ac2298997407fd5de07d008de8f9941a4a5f8074736a59404118afac0700be6c":"":"50fd1798":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"5a7aa836a469d28542d0d24d3232fad266da8fc889c6b6038b726d3da25f7b20":"9faf7cd805803e143ec8f3f13475efd2":"1006c707f608728b2bf64734062b12a5625062bcdcb80a3ce2058352a2922d5e6fbe19681b4f0d79ad3c837f81e72f2fbf8df669894e802a39072b26c286f4b05188c708f7c6edd5f5bb90b87ffa95b86d84d6c1c4591b11d22c772a8ad7f2fe6bd8b46be0e93672df2e8bff8ba80629e1846cfd4603e75f2d98874665c1a089":"":"07764143":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"a9444fd176acbe061d0221fde3ddfcc4ff74e995d981a831297c4cbda51c22a1":"5714732145470da1c42452e10cd274b5":"":"c146ff5a988496cad7eced7a2ea471e0117d5d6bd2562c23ce9db4bf36d83ba3fc22e90486ec288a627d208e0b2fd3b65f8301cf7fc41d97959981a95cd1cf37effc46db99b94b21c941c3613c26a10b1a6b7793f467d58ff5134612230f1c49d7e1fcf664fe52fc6eca46273982f6fe729b009d90eb8d8e4a0b0dbe907b76da":"db85b830a03357f408587410ebafd10d":"":"a3cad9a57fa28e6f6aaa37150a803bf8b77e765f0702e492c4e5ebb31ae6b12d791149153e469a92bb625784a699fd7ca517500ee3f2851840ba67063b28b481e24ba441314e8b7128f5aaccaf4c4e2c92258eb27310bf031422b7fc2f220f621d4c64837c9377222aced2411628018a409a744902c9e95c14b77d5bb7f5846b":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"686d3bd071e3f46f180611bc4ec8d7726fe72b6c617e7d42b3339f53918c9e36":"a714e51e43aecfe2fda8f824ea1dc4b7":"":"21983ad66449c557263aef299da6eef8f31d576fc17ed2dac3e836f7c2ceaff3094b2695452680e188df10c174810efd1fbaa6c832baedce0b92e4c7121447f6461ac909b4302cdf658095b1de532b536faa4fb38cfdf4192eb5c3fe090d979a343492f841b1edc6eb24b24bdcb90bbbe36d5f8409ce7d27194a7bb995ecc387":"cd30c3618c10d57e9a4477b4a44c5c36":"":"9610908a0eb2ee885981c9e512e1a55075a212d311073bbb2fb9248cce07af16ee4c58bdc8dbe806d28480f9065838146f3e1eb3ae97012cfe53863a13d487f061a49a6c78ca22a321fa25157dbe68c47d78f2359540cc9031ee42d78855ed90e6b8ea3d67725bfffcb6db3d438c982b5f88d9b660f7d82cb300c1fa1edebb6b":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"6fe81f15a02e2ecf46e61199c057102d160e6b5d447d4a275972323fff908c3e":"91d55cfdcdcd7d735d48100ff82227c3":"":"0b4ee0385e6665da8fd2ae47f2d0cf1c5bd395a3bb447047ab5a3ae0b95355bf83d0381119a8d4c01acbe60cd7885da650502f73498a682fdc94f7b14f4c753226064fa15e3a90a6083e053f52f404b0d22394e243b187f913ee2c6bb16c3033f79d794852071970523a67467ce63c35390c163775de2be68b505a63f60245e8":"cd7da82e890b6d7480c7186b2ea7e6f1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"4c2095e1379389dc3810e8819314f5a2f87d1494213c5b1de1a402f7f4f746c4":"19788b2e0bd757947596676436e22df1":"":"26ec8ebac0560538a948afbc18fb730e9a91f21392bde24b88b200f96114b229a5b57fa9d02cf10e6592d4dfb28bf0f00740c61157ce28784e9066ea3afd44ecf3a494723610cb593c0feffc6897e3435c6f448697ad3e241685c4e133eff53bdd0fe44dd8a033cfb1e1ea37a493934eb5303ae6ef47ce6478f767ef9e3301ab":"f26a20bea561004267a0bfbf01674e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"be5351efc0277afc9759ec2464a22cb4401f7a17efd1a205e7af023c7ed30ee1":"c6b26117d9dbd80c1c242ad41abe2acc":"":"1eca91406f338fc09c2988b1d7dc8c409d719300c03840a497d7b680cdd5e09b144903477f7116a934e1d931cf368af1fc2a0a0e7caa95475a3cd7bf585a16fda31eb3f8201db0216b37a1635c1c030836b3dd05ca5b0194388fa198e717822131d5d4318690ef82d35ac80b27fff19aec8f020dc6c6ce28f0813bbbf8230ad9":"61051d6c0801b4a6b6ca0124c019f3":"":"95447aded336d6c20d483a6f062d533efed0261ad321d37bf8b7321b98f55c0f0082ce7f3d341b18fea29a72fc909d30cd8c84a1640227227287674a9b2f16a81b191ecf3b6232d656c32d7b38bea82a1b27d5897694a2be56d7e39aa1e725f326b91bad20455f58a94a545170cb43d13d4b91e1cee82abb6a6e0d95d4de0567":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"814c2cdfdeecf39d43bb141fbfc62dac44f7552c5e5dac2d4913303fc860119b":"0db3ade15cb0dea98a47d1377e034d63":"":"0d3013a1d7132f685d001420daa6c7b643bc36b887511acc4588237d3b412c79e4ebba29c08248ad46c7239e8daa232b7483c9c4e3d1c0bbebc696401efe21f7fd6fc0525a4ab81bd9a893d5f7ab23b70ed07c00f33649b8a996a006de6c94f7793f72848793f4d5b31311c68aae1e715b37409fbe506dac038a0950f05fe82b":"e62f910b6046ba4e934d3cfc6e024c":"":"374d03cfe4dacf668df5e703902cc784f011f418b43887702972dcc3f021bcb9bdd61ed5425f2975b6da7052c4859501eb2f295eb95d10ba6b2d74e7decc1acacebf8568e93a70a7f40be41ac38db6f751518c2f44a69c01c44745c51ad9a333eda9c89d001aa644f1e4063a8eb2a3592e21c6abc515b5aacaec8c32bcf1d3c4":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"1ae4541110f2bc4f83cd720b5c40c8315413d896e034b75007f172baa13d29ec":"83f98eec51ee4cae4cb7fe28b64d1355":"":"5ea811e7fbfc0e00bf2a6abfac50cad9efd90041c5f7fb8f046a0fecbd193b70a2de8a774d01dd3cd54f848cb3e9f5152ee1b052ba698bebfba1fbbdae44a260447d6e6482640ae4d01c9cac3d37d4ffe9a0de0b6001de504a33ef7620efe3ce48ecd6f5b1b3a89185c86d4d662a843ff730e040e3668d6170be4cced8a18a1c":"df47eef69ba2faab887aa8f48e4b":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"20c9b662ec4bd13bf58d64cb0a7159b0e7fee4703af66292bf75c8bd6e42e8dc":"2bc0847d46f3d1064bbf8fe8567f54a2":"":"45b64f2ed5ac707890c0c1726adf338770ce6a728fe86bb372c4c49409a32705f881bc4d31a27c455c7c7df9dd2c541743523e7d32f88930d988857847f011be5f5f31a31e8812745147cbff5c1294d0fd4a7285db4833f22bf1975250da99c4d0dd2c9688d7f8001bb6ef2bc898ce4d42c5b78e74645b56ce992338f49d4183":"5a1bf25aa8d5c3fe5cf1be8e54a1":"":"9079d6275db076625e8474c2914fe483d413d5339202f98f06c3b0ef063d8f3d31029deaf7f9349bfec57e5cf11f46f02d5a6520c7992efc951adbbea6d08e53faeb10dfe8b67ee4685da9ea4fe932551a65821147d06d4c462338e6ddda52017c2bc187fd6d02b7d5193f77da809d4e59a9061efad2f9cadbc4cd9b29728d32":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"0a1554db37f2e275732a77e521cbd8170729d8677a85db73feacf3c66a89d689":"b9194a4d42b139f04c29178467955f1d":"":"5421d93b7e6e0091978c673df4f3a406aef5f13eb5e6f95da19b0783308cbe26d4fd6c669cc4a9f069d7e62e4c6fad14b80e918fe91556a9a941a28b3dbf776a68ac7c42df7059b5ed713e78120aec84e7b68e96226c2b5e11a994864ed61b122e7e42ef6cfdae278fadbae1b3ea3362f4e6dc68eef6a70477b8a3ffcfba0df9":"05949d591793ca52e679bfdf64f3":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"3ab1d9bb571c4bdc9f3ef340914bddcfe0c8e7718d4a2530334372cec86e5fcb":"6a5335901284dd3b64dc4a7f810bab96":"":"80bcea307e009745724d5f15d21f3b61a5d5a8401530346b34a2adfa13e3e8c9c9327d6fad914b081e554fbe6c1c6fe070b566620e559555c702c0ab5becf61ea1d9de64351ce43b2276ef4e20b5af7ce43db6d21286af4e740ef00c6d790705afcf0ee4850fffc12c662f2bd8212feb21db31065ab8f717a7509c213352b869":"04b8e5423aee8c06539f435edd":"":"36b9602eee20b8f18dce0783cd1e01a799f81ae0a1ce6d293a26c62f47e7dad85c8446697cc09c81d3d9ead6f9e55c4147211660c8aea9536cc5516e9883c7d6854be580af8cd47ba38fa8451f0dad9c904e0e7f9997eff7e29bf880cd7cedd79493a0e299efe644046e4a46bf6645dfb2397b3a482a346b215deb778c9b7636":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"7dddbd5657e22750bfe6baa70a1f4ac46c1ef8bee573a57cfcef50b66f85e593":"fcb962c39e4850efc8ffd43d9cd960a6":"":"2bf5aba83a8161b9d21ff29251fb0efa697b1ea9c1b3de8481d5fd4d6b57afda0b098decdc8278cc855f25da4116ed558fc4e665a49a8fff3aef11115757a99c10b5a73b1f794f9502186c13dc79442f9226bbf4df19a6440281f76184933aeae438a25f85dbd0781e020a9f7e29fb8e517f597719e639cbd6061ea3b4b67fb0":"1d8cdadcf1872fb2b697e82ef6":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"6916b93b2712421f1f4582de7ec4237c4e42e2b32c7dced2f8bb5bd2e0598312":"b4d9248bb500e40de99ca2a13e743f1c":"":"3739cca20279a36ddb857ac22beae901a49529b3182463ab81a7c46e437eb0b0571e8c16f7b626ecd9f2ca0cd83debe3f83e5d58ed3738899f4b616755eb57fb965208f261736bdf7648b1f8595c6b6a779768115e3077dfee7a42d44b555a51675fb1ce9961d0e21b2b9b477c0541184350e70decf7c14a4c24b8a6cd5fed8e":"090d03446d65adcc0a42387e8e":"":"0255be7ac7ac6feb3a21f572f6a593cc8a97f17af7064c80e478f4a6c469cf94d604bc014b003bf284d216161a9c8a493af43c6a0d8caf813a9e6f83c7ed56dd57543876b11f76aa2be80dcd79d19ac61f00fa423ac2f52fae7a8327cd91494ca4116feb735980ad0a4b1445cb7f38cc712b8aee72179e65b97fca38694e3670":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b751c8b724165009a8bd97a9d2a0e22cae5a95c4743c55eeeef0a6fe7d946bec":"160c50c0621c03fd1572df6ba49f0d1e":"":"e8546a5af1e38114822e60e75563a9399c88796f303c99c69d1f3c50379da81e1cd5b5a4a721e23c59da58ea4361b7ff58408e506a27fea24f9a235c6af7f7a5bd93fa31e90edfc322821c08d6324134830b7fe160b4a3e6d27866a10e6e60762a31618ef92f5c67ccb1deb1f1b188f0e687165e7c366c7418920df4f4fcdcae":"9fef9becf21901496772996f":"":"175fa6b7cd781ec057ff78ba410f2897a920739b5fc4f04bc9b998fbc7cc18e327ad44d59b167e4627256aaecd97dc3e4a7c9baaf51d177787a7f4a0a2d207a855753c4754d41348982d9418b6b24b590632d5115dc186b0ba3bec16b41fa47c0077c5d091ec705e554475024814c5167121dd224c544686398df3f33c210e82":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"0faf32c22c2a4ee38fe4b5ce08f98fdf6f83b5038dcba5ec8332b3eeb5c710c7":"04885a5846f5f75a760193de7f07853c":"":"8a556cc30075753c6e94c2f669bca2058ff6abcbffffc82da7cfca0a45af82dfb4cf487ceb4ede72be87ee4c8b72db1e96459de1dc96721464c544c001d785f2188b9fccaec4b1a37970d38b326f30163d2fdfdf8a2ce74aec55abcd823772b54f8081d086a2e7b17b4086d6c4a5ea67828ef0b593ea1387b2c61f5dfe8f2bb0":"0c13506ed9f082dd08434342":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"0dddc3d2f82bdcdbc37648a6b9b416af28753740f8e998cd1a52a0b665369f1c":"0a93b883cbd42998ae2e39aab342cb28":"":"07bf84b15b21951fd22049be6991a672503ae243b8d285fb1e515e1d2c36bfd5b0d0bcce85791f2cea8f616aed68a7d9cf4eaf76418e8b1ec27751de67cbfd9d9f7905b2667904f10d598503f04c04ea00a681ff89a9c446d5763898430bd7a9dfebfe544e3ed3e639b362683a651e087626ffa63c0c2b3e0dd088b81b07f75e":"5c37918edb7aa65b246fd5a6":"":"ff7b7b2f88b8c6f9f9bad7152874e995eea0ff1ce1ecd9b8d563642a37a31499f14d70f0dd835b7adf80928497f845fd8c2786cd53af25f8c9fe1bba24e3c3860162635bbed58f06cf6c9966bb9b570987a48329279bb84afb9e464bb4ad19ae6600175086e28929569027c5285d2ed97615e5a7dada40ba03c440861f524475":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"a0b1a62e46e7712277fc711e19d0c0c865ee77b42ac964b7202dbcaf428086c2":"e20957a49a27e247d00379850f934d6c":"":"7dd7c0787fdbea4aacf929341659dcf4b75cbca8f92001e8b62a4d7b40272c5755fa9c445857db05328dc11ce5221f044f4b3dafbf0e2d72a1ad0d3e4c804148db578218690ccc620d8b97b4450ff83400a6caaa959617611446a6627138a4067be9ea410d4b0581022ab621928205b4a4480560fc4c2c3b39a2805684006f35":"c99751516620bf89":"":"9307620479f076c39f53965c87d20c2aff11c736c040dba74cd690d275591a5defc57a02f6806de82eb7051548589484364f6c9b91f233a87258ede1ee276cb2c93b4fc76f4d7e60cbd29ba2c54cb479c178fa462c1c2fb6eeb3f1df0edfb894c9222b994c4931dedf7c6e8ddecbde385ddf4481807f52322a47bf5ff7272991":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"ffcc1c88fba1723b3ab57b458d9bffb98b878c967fb43b9db2ae0753d32a3bb1":"d533c2170c5dc203512c81c34eff4077":"":"19b6dec86d93c466307de3a36c0791ed1010b1b9cf8d30347ae46e0f9283c9fda43da8cb491dd17cc4298b1f0b876d6a0f4bcbc9667fe34564bc08f8f7b67045057d19f4bf027bc839e590822fa09a5cef1af18e64a0116aa2a01a3f246c2b5272c18c9aa23efe674ba53d533ae8f0695cb78c1155cdc7a9d7fae2c4567dc07c":"167ec8675e7f9e12":"":"0539287ac546fe5342e4c3c0ec07127dcd22899abfe8cdd6e89d08f1374d76e877bec4844d06e0a9f32d181c8d945ba16a54ce3725fae21d8245c070a4da0c646203d6b91325b665ab98c30295851c59265b4ab567b968b6e98536b7850738d92e9627b4c9c6f5d9ae2520944783d8f788a1aa11f3f5245660d41f388e26e0a1":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"55e94b339c3bafe068ef9cc30787cc6705850114976843777c92b4b331801650":"2e2b31214d61276a54daf2ccb98baa36":"":"147cc7bc4008dadf1956520b5998d961499bdf3d8b168591adbfd99411ad7b34eb4b2a5c1bb0522b810fec12dd7c775784d7ecdc741e6dec8191361e6abf473b219221801951b4d5ffe955ab50eef9cffdfee65ba29ddfa943fb52d722825338c307870a48a35f51db340aa946c71904d03174b1e4a498238b9d631a6982c68d":"5266e9c67c252164":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"13c9572bdef62510d84f2d415cc481cd1e71b9c1132b43e63b21ba4e16de9b39":"a8339ba505a14786ad05edfe8cebb8d0":"":"7c78e634dec811173ff3c4a9a48ae3ae794fbd2aefd4b31701777ff6fcb670744c592a1d298d319717870dca364b2a3562a4ffa422bf7173c4f7ea9b0edf675e948f8370ffd0fd0d5703a9d33e8f9f375b8b641a1b1eecd1692ad1d461a68d97f91f9087f213aff23db1246ee16f403969c238f99eed894658277da23ced11ee":"df3cab08":"":"91f9780daefd2c1010c458054ac6e35baa885cdd2c95e28e13f84451064e31e0739f27bf259cb376ab951e1c7048e1252f0849ccb5453fc97b319666ebbfbc7ef3055212a61582d1b69158f3b1629950a41bc756bded20498492ebc49a1535d1bd915e59c49b87ffebea2f4ad4516ecdd63fa5afda9cce9dc730d6ab2757384a":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"30a14ca53913acbb215b4e4159083106db3fff83cbedd1e5425f65af1e94f5dd":"4f23f04904de76d6decd4bd380ff56b1":"":"8c5f73ee1544553b712ad7a14f31379c8d54a4e432fb6c5112436988d83c4e94954b0249b470538fb977b756fbee70b811d4dc047a869e207bb0b495f1e271d0034e912000e97594033e0dedde0591b297f8a84bafcc93a46268a5bba117b558f1c73513e971c80a7083e1718fc12d0cc0d996a8e09603d564f0b8e81eea28bc":"18e92b96":"":"bb4b3f8061edd6fa418dd71fe22eb0528547050b3bfbaa1c74e82148470d557499ce856de3e988384c0a73671bf370e560d8fda96dabe4728b5f72a6f9efd5023b07a96a631cafdf2c878b2567104c466f82b89f429915cf3331845febcff008558f836b4c12d53e94d363eae43a50fc6cb36f4ca183be92ca5f299704e2c8cf":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"e69f419140289ac25fb0e2ef9cc4f7e06777ac20f7d631918d1af0c8883b7d6a":"531248afdaaf1b86cf34d2394900afd9":"":"ff8dfa4e70490ea9c84cb894dc5d7e1b935ebcdea80a39c4161d4db42cbb269cc86abd381af15ec9a4a42ed18c1eed540decec19722df46f22aa06883297cb393fb23e4bb31a817e88357aa923c7ecbcf24c28a09f622dd21fa70c0a02193024fdcefeaa96cc1b50f81a65dfa9e1bb5126f0c9766a861eed096ec15fb07b0f81":"c6885cdd":"":"f75299e0ead3834fc7ebd4b2051541b598ad57cc908fdcd4324cf4ccf7dcf7b3f0737ad6c026399a8b1b6d3d50011b3c48ea2c89833b4b44c437677f230b75d36848781d4af14546894eecd873a2b1c3d2fcdd676b10bd55112038c0fdaa7b5598fe4db273a1b6744cba47189b7e2a973651bfc2aaa9e9abea4494047b957a80":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"404a5d1ac9e32f9caabffbfa485ce9c27edc9e5cde0f2aab4f32ce3121449b88":"b6e6c078e6869df156faa9ac32f057c3":"6ebc75fc9304f2b139abc7d3f68b253228009c503a08b7be77852da9e1afbe72c9ab374740b0dc391fa4d7e17de6a0aa08c69e6f5c5f05411e71e70c69dfbcf693df84c30f7a8e6c7949ea1e734297c0ea3df9b7e905faa6bbdcaf1ff2625a39363308331d74892cf531cb3f6d7db31bbe9a039fca87100367747024f68c5b77":"b63ec4d28854b7fe2d4d13973f5bcb16f78494ce25cc2820de9d0dc1d8d91db1f19bc9e01cee8418c9e88a69b2f30cdbb0dbdbb50be71e1e666c111c126f2b7197c02f69a1b2ec5e1bf4062b2d0b22fb0fa1585b4e6286b29f6ac98d1b1319dd99851fa6921607077d2947140fdeeea145b56ea7b6af276c9f65393bc43ede33":"94c1b9b70f9c48e7efd40ecab320c2d3":"":"56a0ac94f3ec7be2608154f779c434ee96db5ed4f5a6e1acfb32361ce04e16e1337be5978df06d7c4f6012385fb9d45bb397dc00f165883714b4a5b2f72f69c018ffa6d4420ad1b772e94575f035ad203be3d34b5b789a99389f295b43f004de3daaef7fa918712d3a23ca44329595e08da190e3678bc6ad9b500b9f885abe23":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b56f0c980acf7875cf7f27d53ad4a276adc126d0b93a5774ac4277eecad4309e":"b004c049decfb43d6f3ec13c56f839ef":"b2045b97fbb52a5fc6ff03d74e59dd696f3f442c0b555add8e6d111f835df420f45e970c4b32a84f0c45ba3710b5cd574001862b073efa5c9c4bd50127b2ce72d2c736c5e2723956da5a0acb82041a609386d07b50551c1d1fa4678886bac54b0bd080cc5ef607dca2a0d6a1e71f0e3833678bf8560bc059dae370ec94d43af6":"2c94299e36b7c4a825ecbc5a7809061e0a6761764a5a655ffdb0c20e5c3fcb10f4e93c68aa0a38c2acc5d06f2b7c4ff4fcf814b551bfefa248dbe06a09a0f153213538a31fa7cf7d646b5b53908d8978f514c9c4d6d66f2b3738024b5f9c3fd86b6da0c818203183f4205f186ea44a54edb911b1a17c424c95852c8d271b2e93":"fce7234f7f76b5d502fd2b96fc9b1ce7":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"1c5027c36e6caa1b3e5e45fead32b5e3126ac41f106c491b0b3a7c16502f4fe6":"3ee660f03858669e557e3effdd7df6bd":"93e803c79de6ad652def62cf3cd34f9addc9dd1774967a0f69e1d28361eb2cacc177c63c07657389ce23bbe65d73e0460946d31be495424655c7724eac044cafafe1540fcbd4218921367054e43e3d21e0fa6a0da9f8b20c5cdbd019c944a2d2ee6aa6760ee1131e58fec9da30790f5a873e792098a82ddf18c3813611d9242a":"58f0ceaa31c0025d2e6bb58720cce4b64f5f6c657c847ae42936eb1e343fea397c8a8cf2f5ef02ffaec25f431900dcb0910cf32cea9eca3b78aed1c451c7af51066489f87b2a5f8cf28d6fdb6ce49d898b6167b590a3907be7618be11fb0922a3cfd18e73efef19e5cdc250fa33f61e3940c6482ae35f339e8c0a85a17379a4e":"ac33f5ffca9df4efc09271ff7a4f58e2":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"34c3019810d72b5e584f0758f2f5888a42729a33610aafa9824badade4136bbd":"f315ea36c17fc57dab3a2737d687cd4f":"f33c5a3a9e546ad5b35e4febf2ae557ca767b55d93bb3c1cf62d862d112dbd26f8fe2a3f54d347c1bc30029e55118bab2662b99b984b8b8e2d76831f94e48587de2709e32f16c26695f07e654b703eba6428f30070e23ed40b61d04dd1430e33c629117d945d9c0e4d36c79a8b8ab555d85083a898e7e7fbeb64a45cc3511d99":"22deef66cbb7db240c399b6c83407f090d6999ba25e560b2087fed0467904bb5c40cbaa05b8bf0ff5a77c53fa229478d8e0736414daf9c420417c391c9a523fd85954533f1304d81359bdcc2c4ac90d9f5f8a67a517d7f05ba0409b718159baf11cd9154e815d5745179beb59954a45a8676a375d5af7fae4d0da05c4ea91a13":"0bae9403888efb4d8ec97df604cd5d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"29397d98fc5a7f04b5c8b6aa3a1dd975b6e4678457ae7f0691eee40b5397503a":"885543a45fd1163e34ef9276145b0f8c":"d88beaa0664bcef178cbdbfab17ff526b5c0f8ad9543c6a312d93c336707fbf87c0448b07a550580953279f552f368225cc6971f1eecc718d6aad1729c8d8873081357752bd09d77075fa680cb2dc4139171e4a0aaa50b28c262c14fd10b8d799ca1c6641bb7dfdfdf3dea69aa2b9e4e4726dc18b0784afa4228e5ccb1eb2422":"0bbf1079cb5569c32257bc7e52371db46f3961b457402b816588243b4523543430d5ca56b52de6632724c51e6c3af310b28822c749a12bdd58dee58bbc3266631562a998ec3acdc8a2567a9f07f7f9759c3f50b1d1dcdd529256b80c0d227fc1fe8b58c62d1c643f1ac2996809fd061afcf4a9af184c14db9e63ec885c49de61":"7b334d7af54b916821f6136e977a1f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"7555dfcf354da07fd70f951d94ec1d86a635edfdb7929460207b2a39cc0cf4a3":"e1b30b6a47e8c21228e41a21b1a004f0":"bf986d3842378440f8924bb7f117d1a86888a666915a93ba65d486d14c580501e736d3418cebee572439318b21b6e4e504a7b075b8c2300c014e87e04fa842b6a2a3ebd9e6134b9ddd78e0a696223b1dc775f3288a6a9569c64b4d8fc5e04f2047c70115f692d2c2cefe7488de42ff862d7c0f542e58d69f0f8c9bf67ef48aea":"a1351cfffd1b0cbf80c3318cc432d3238cb647e996b7b53c527783594683f535950cd08788687c77226b2d3f095955884adc2e475ca1e1eab04e37d5e901ae8934a9d3a0cb37b80612ca25d989856dfa7607b03039b64d7dcd468204f03e0f2c55cb41c5367c56ca6c561425992b40e2d4f380b3d8419f681e88ebe2d4bdad36":"d8ef5438b7cf5dc11209a635ce1095":"":"95e8db7c8ecab8a60ceb49726153a7c5553cf571bc40515944d833485e19bf33cb954e2555943778040165a6cfffecef79eb7d82fef5a2f136f004bb5e7c35ae827fac3da292a185b5b8fc262012c05caeda5453ede3303cfeb0c890db1facadaa2895bdbb33265ada0bb46030607b6cf94f86961178e2e2deeb53c63900f1ec":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"bbeafe86c72ab0354b733b69b09e4d3462feb1658fe404004d81503f3a6e132f":"ee1caba93cb549054ca29715a536393e":"e44b0e0d275ae7c38a7dc2f768e899c1c11a4c4cb5b5bd25cd2132e3ecbaa5a63654312603e1c5b393c0ce6253c55986ee45bb1daac78a26749d88928f9b9908690fc148a656b78e3595319432763efbcf6957c9b2150ccabfd4833d0dcee01758c5efb47321a948b379a2ec0abcd6b6cbf41a8883f0f5d5bf7b240cb35f0777":"a033c2051e425d01d97d563572e42c5113860e5dedcd24c76e3e357559ba3250f1fc5d4a931a9d0900ac025400f0158621f0b1215b2907467bfc874bcabbb28e28de81fe1ee5b79985261c512afec2327c8c5957df90c9eb77950de4a4860b57a9e6e145ea15eb52da63f217f94a5c8e5fcb5d361b86e0e67637a450cdbcb06f":"a4809e072f93deb7b77c52427095":"":"e62adf9bbd92dd03cc5250251691f724c6ece1cb89d8c4daf31cc732a5420f6bedab71aab0238ba23bd7165ed1f692561ef457fd1d47413949405b6fc8e17922b17026d89d5830b383546ea516a56f3a1c45ec1251583ae880fa8985bd3dcc1d6a57b746971937bf370e76482238cc08c2c3b13258151e0a6475cc017f8a3d0e":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"6ad06c88dd4f3becf35eed95bb859be2406a1803a66e4332a74c5f75c09b9a01":"07d8b4a6e77aef9018828b61e0fdf2a4":"cca1fd0278045dda80b847f0975b6cbf31e1910d2c99b4eb78c360d89133a1c52e66c5c3801824afc1f079d2b2b1c827199e83f680e59b9a7de9b15fa7b6848b5bf4e16a12ac1af4cf2b4d7bb45673c5e1241e9996440860a9204fc27cae46a991607bc5e7120d6c115ddcbdd02c022b262602139081e61eee4aba7193f13992":"2219c11672884b93d0290b6a7140feafe416461f1cdaf0b3aa64693d7db2eb10feae46aac7af549fa1b0abc78c11f8df7ee803ef70310fc3e67769f8b4bc64f81143a6ebf8bee9d386a8ede5d2cc0ed17985a3b7bb95191ef55e684690ccdc5ca504bc6eb28442b353861a034a43532c025f666e80be967a6b05b9dd3a91ff58":"e3ede170386e76321a575c095966":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"87bbf7c15689e8c99a5a32a8ba0dfebcfe1989159807428cdd1f382c3ea95178":"2f19aa1f3a82a7398706953f01739da7":"590dbd230854aa2b5ac19fc3dc9453e5bb9637e47d97b92486a599bdafdfb27c3852e3d06a91429bb820eb12a5318ed8861ffe87d659c462ef167be22604facfa3afb601b2167989b9e3b2e5b59e7d07fda27ffccd450869d528410b0aff468f70cc10ef6723a74af6eebc1572c123a9b5a9aab748a31fa764716d3293ff5de7":"b77d3bf3b30b3e6e5c86cbfb7e5455f6480f423cc76834b4663d28d9f1eb5c40212634e3347668427f7848352ab789886f96682a568260bdaeb7de0aae2af36f5ae04f06c332b158d923706c1c6255c673feeadb6d30bfc901e60b92acd9ddd83ef98686c4d492f4a60e97af2541d470a6a6b21903441020ea7619cf28a06986":"5c43fc4dc959fabeebb188dbf3a5":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"24095a66b6eb0320ca75e2ab78e8496a45f4b000fc43436904c3e386fb852ed2":"0955c1f0e271edca279e016074886f60":"f5160c75c449e6bb971e73b7d04ab9b9a85879f6eb2d67354af94a4f0ca339c0a03a5b9ede87a4ff6823b698113a38ae5327e6878c3ccc0e36d74fe07aa51c027c3b334812862bc660178f5d0f3e764c0b828a5e3f2e7d7a1185b7e79828304a7ad3ddcd724305484177e66f4f81e66afdc5bbee0ec174bff5eb3719482bd2d8":"4690edc843e23d9d9b9a4dab8fa8193f8bf03897d3d29759e9dc9e0f8a970c0f5d4399b9f60461fe5cf439f9b0d54bbc075695e4d76b76298cc2b75bb3e0b516ee9ada93f77c4c002ba9fd163a1e4b377befb76c1e5ab8b3901f214c0a4c48bd2aa2f33560d46e2721a060d4671dc97633ff9bcd703bb0fbed9a4a2c259b53f3":"75a31347598f09fceeea6736fe":"":"0dd2dca260325967267667ff3ccdc6d6b35648821a42090abba46282869bac4bdc20a8bee024bea18a07396c38dbb45d9481fedcc423a3928cfa78a2f0ae8eedb062add810bdbee77ddc26c29e4f9fda1ab336d04ef42947b05fbdb9bc4df79e37af951d19d6bf5e5cb34eef898f23642a9c4a9111ed0b7a08abeeefbbd45c23":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"086b77b5731f971f0bf5b8227361b216746daf8b08c583ad38f114a64aa7877b":"164058e5e425f9da40d22c9098a16204":"6633eae08a1df85f2d36e162f2d7ddd92b0c56b7477f3c6cdb9919d0e4b1e54ea7635c202dcf52d1c688afbbb15552adda32b4cd30aa462b367f02ded02e0d64eeee2a6b95462b191784143c25607fd08a23a2fbc75cf6bee294daf2042587fdd8fe3d22c3a242c624cf0a51a7c14db4f0f766ec437de4c83b64f23706a24437":"629317212ff8bd8a7676e4c00b81a9577de6397c832f99ac974fa2bbbccb6e3b8aa776db6922eed0b014bf3923799da7d9d0854c8817470e1e2f7fc7a572f9d0316ee60cde7ef025d59b897d29a6fee721aeb2f7bb44f9afb471e8a7b0b43a39b5497a3b4d6beb4b511f0cefa12ce5e6d843609d3e06999acfbee50a22ca1eee":"2eb6eb6d516ed4cf1778b4e378":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"0f9e806b0d937268561c0eafbbdd14ec715b7e9cef4118d6eb28abbb91266745":"8657996634e74d4689f292645f103a2e":"2ca253355e893e58cb1a900fbb62d61595de5c4186dc8a9129da3657a92b4a631bbdc3d5f86395385a9aa8557b67f886e3bb807620e558c93aea8e65826eadeb21544418ee40f5420c2d2b8270491be6fc2dcbfd12847fa350910dd615e9a1881bc2ced3b0ac3bde445b735e43c0c84f9d120ca5edd655779fc13c6f88b484f7":"2ae4baef22ace26f464a9b0c75802303f2d7c0f9a1ed1d0180135189765bdd347fea0cc2b73ee7fbbf95ea1fda22597b8aad826f63e744069a9c349488b2cc1cf9372f423cc650302082125724730ae5a4d878e07385ddc99034c6b6b46748f02c80b179fe6406b1d33581950cb9bcd1d1ea1ec7b5becfd6c1f5b279412c433a":"83155ebb1a42112dd1c474f37b":"":"87d69fc3cbc757b2b57b180c6ba34db4e20dde19976bfb3d274d32e7cea13f0c7d9e840d59ce857718c985763b7639e448516ddbbda559457cd8cb364fa99addd5ba44ef45c11060d9be82b4ebe1f0711ac95433074649b6c08eeab539fdfc99c77498b420427e4d70e316111845793de1f67fb0d04e3389a8862f46f4582dc8":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"c24c17911f6db4b3e37c46bcc6fa35efc1a55f7754f0bb99f2eea93398116447":"5098cc52a69ee044197e2c000c2d4ab8":"9ad4dee311d854925fc7f10eca4f5dd4e6990cb2d4325da2ef25a9a23690f5c5590be285d33aaeba76506c59edec64b8c3ff8e62716d1c385fbce2a42bc7bd5d8e8584de1944543ab6f340c20911f8b7b3be1a1db18a4bb94119333339de95815cae09365b016edc184e11f3c5b851f1fa92b1b63cfa3872a127109c1294b677":"0bd92cb106867e25ad427ff6e5f384d2d0f432fc389852187fcc7b0bf9f6d11a102a872b99ed1ad9a05dab0f79fa634745535efed804ff42b0af8dad20ba44709391fb263f245e5a2c52d9ce904179633282f57a1229b0a9c4557a5c0aeda29bbc5a7a871fa8b62d58100c3722c21e51e3b3e913185235526e7a5a91c559717d":"f7930e3fab74a91cb6543e72":"":"6124ede608d416baa5e653a898ca76e9f47f08403c1984feec112e670ded2226e0073f8881ab2161cfda541dccae19691285f7391a729f07aba18f340bb452c1da39cbe83cf476cfc105b64187e0d2227dd283dcba8b6a350f9956b18861fa131d3f00c034443e8f60e0fdfcfaabbed93381ae374a8bf66523d33646183e1379":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d267a8379260036ff3d1ec07a7b086ff75706bad12d37d9656f04776f3d8b85c":"674dc34e8c74c51fa42aacd625a1bd5b":"6a9a8af732ae96d0b5a9730ad792e296150d59770a20a3fdbbc2a3a035a88ac445d64f37d684e22003c214b771c1995719da72f3ed24a96618284dd414f0cac364640b23c680dc80492a435c8ec10add53b0d9e3374f1cf5bfc663e3528fa2f6209846421ea6f481b7ecf57714f7bc2527edc4e0466b13e750dd4d4c0cc0cdfc":"80c68a330ef50e3e516681f1e535868b03466e7edbb86cb385d01db487da3dd3edad940fdc98d918b7db9b59f8d61369eee2928c88557306c4a13e366af0708d94cb90a15f1c3bc45544bdb05ff964da5e06c5ae965f20adb504620aed7bce2e82f4e408d00219c15ef85fae1ff13fea53deb78afa5f2a50edbd622446e4a894":"bea660e963b08fc657741bc8":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"c86cb637753010f639fa3aa3bff7c28b74f012ad6090f2a31b0801d086f183ad":"87ff6e0bb313502fedf3d2696bff99b5":"2816f1132724f42e40deabab25e325b282f8c615a79e0c98c00d488ee56237537240234966565e46bfb0c50f2b10366d1589620e6e78bd90ade24d38a272f3fff53c09466aa2d3ef793d7f814a064b713821850a6e6a058f5139a1088347a9fa0f54e38abd51ddfc7ef040bf41d188f3f86c973551ced019812c1fc668649621":"6b7858557e0fd0f957842fb30e8d54dedbc127eb4bbf9de319f731fa28a606df2c046a0bce8ecda4e75d3596e4e988efd6bc279aa005bc52fad92ba07f5b1dfda4cc417029f9778c88d6fe5341a0fd48893dcb7c68d0df310a060f2a5235aee422d380f7209bc0909b2aa7e876044056f0b915dab0bc13cbea5a3b86d40ca802":"7859f047f32b51833333accf":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"2c31ca0cac3efe467168198f06beacf39565a6f57f82e1048a5c06a231315882":"95cae6e85f33f3043182460589be3639":"67523751a9b1b643d00de4511b55e4268cb2d18e79e01a55fc7b677d529bd6400940fb25ea6ae135c1a816e61b69e90b966981aeda685934b107066e1467db78973492ad791e20aef430db3a047447141def8be6e6a9a15089607c3af9368cdb11b7b5fbf90691505d0c33664766945d387904e7089b915a3c28886ba1763bb5":"65261d6e29b2369b1828a7cef2df9873d6e6057c499301afedd6cb65b5036ddb95f9e353fbf38e54c4f46f88164325b33620ce183beb2e411fbb89a0e0002e542fc161cad32a61ee6f1e1717e0b4dcd0340b116f795bc1009dbbc65bc31c9b549bf03c40bc204cd0d02ec884be907777ebeed8b527ec3af7cbb508193c0745de":"21309d0351cac45e":"":"1d5f2cb921f54aeb552b4304142facd49497837deb1f00d26fbeddbab922fd80b00dba782961f8fce84f1f7973e81eed6ee168b1760c575c891f40a1dae0fa1a08738025d13ef6e0b30be4f054d874f1b8a2427a19ebb071d98365c32316a88a68c2b40daf1ea831a64519ac3679acb4e04986ecc614ec673c498c6fee459e40":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"ca9fa36ca2159dff9723f6cfdb13280446eb6bc3688043c7e2e2504184791596":"d13ca73365e57114fc698ee60ba0ad84":"2aa510b7f1620bfce90080e0e25f5468dbc5314b50914e793b5278369c51ac017eace9fd15127fca5a726ad9e67bdee5af298988d9a57ec4bbc43d4eb849535eb10521ac7cd7ed647479a42876af2ebc9e2108b539febdaa9127c49bda1bda800f6034050b8576e944311dfbca59d64d259571b6d2ed5b2fc07127239b03f4b7":"ac04c4293554cd832aa400c811cb202d815d6178aa1343b4628592b7f3ae45dc5f12ea47be4b43e1865f40b06ab67b3a9fb3644248a9b3efe131a8addb7447978bb51ccf749e75574fea60e8781677200af023b2f8c415f4e6d8c575a9e374916d9ec3a612b16e37beb589444b588e0b770d9f8e818ad83f83aa4ecf386d17a7":"2111d55d96a4d84d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"2f802e838250064c15fdee28d7bd4872850355870847701ad9742b2d6eb4b0c0":"2dd550cfd97f8e1d8d31ba5537ae4710":"72b9630dda40306e785b961934c56e20948f8eac0e981f49787eb3dbd6e4607f7d08d10ca643746bf1efa7e5066993683d527a90f2d45ec9cf73113f1f17bb67958be669acd4e2927f1dacfde902cd3048056d7f6dfdd8630ff054efce4526db7c9321d6d2be2236f4d60e27b89d8ec94f65a06dc0953c8c4533a51b6a29bd2c":"e2ca8c8d172ff90232879f510d1225af91bc323bdf636363c2903fcd1790692c8bcb03a1cccb18814678852c6b3a441552e541b843ee5e4f86a152fa73d05aea659fe08aa6428bb257eaa2a7b579fdc4022c1dec359a854253c1aefc983c5ede8c97517ea69fc4606e25f13ffb0f5f49160691454fbb74e704326738353525f7":"bd6c8823c9005c85":"":"f6dd0b5f3d1a393a1837112962dba175a13c2d1e525ef95734caf34949d8b2d63b4fe5603226b5f632f2d7f927361ba639dc0e3c63414f45462342695916d5792133b4a24c7c4cbe2b97c712bf27ab62d3d68b3875d58ffe4b7c30a8171bff1a9e2f3995768faacda2ea9213ff35798b9e4513f6a87bd3f5a9d93e847e768359":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"84dd53ce0146cb71c32776033bb243098d78a22ac17f52a62a122f5653fb4e33":"f0c90a1bca52f30fab3670df0d3beab0":"a3ea8032f36a5ca3d7a1088fd08ac50ae6bdc06ad3a534b773ac3e3d4a3d524499e56274a0062c58c3b0685cc850f4725e5c221af8f51c6df2bbd5fbcff4a93ba4c1054f7f9c67fd9285511a08d328d76a642f067227d378f95a1e67587b90251f9103ed3cacdb6bf69e0794e366d8b92d8de37b4e028de0778841f356ac044d":"68222bffa782dcfe4f328fc20eb520e75a9a5fedbe13ec7fcf0e82fba08bb87a8a8e02902638e32fe0e2294344b380797f8028426ffcc0531c739c884892394c48ff0779c5f5edf0a36a3fb8aa91213347774ec4bf0fe1049bd53746b13beef3c637169826c367056cb1aa0a3868e23f886a9c7b8015c26af9e40794662f6b21":"b1ece9fb":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"9bb36fe25e966a075ae2c3bb43b5877679ebc379d5123c8eda3fa0e30b95cae0":"59869df4ef5754b406478a2fb608ee99":"ecd125682e8a8e26757c888b0c8b95dec5e7ed7ac991768f93e8af5bcf6f21ed4d4d38699ee7984ed13635fff72f938150157c9a27fcda121ffced7b492d2b18dad299cb6495ed5f68441aefc8219d2cf717d15d5cd2dbce4606fcf90fe45f3601127cf6acee210bd7df97309f773974a35bef1d33df984101c2fc9d4b55259e":"fb3a4be643c10343251c6f0745aaa54349463f622ca04a792e9b4780866844b30aeef3269fc60cac0ea031c5f3780b535e15154f7c76eb4a371b8ae368550f3fa2ce693c34511ec96b839cac567f1b0de0e7e3116d729b45d1b16e453703a43db73f5d0c3e430f16b142420b5f0d26d72ac3dba543d7d813603b0bfdca3dd63e":"cb3f5338":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"ca264e7caecad56ee31c8bf8dde9592f753a6299e76c60ac1e93cff3b3de8ce9":"4763a4e37b806a5f4510f69fd8c63571":"07daeba37a66ebe15f3d6451d1176f3a7107a302da6966680c425377e621fd71610d1fc9c95122da5bf85f83b24c4b783b1dcd6b508d41e22c09b5c43693d072869601fc7e3f5a51dbd3bc6508e8d095b9130fb6a7f2a043f3a432e7ce68b7de06c1379e6bab5a1a48823b76762051b4e707ddc3201eb36456e3862425cb011a":"8d03cf6fac31182ad3e6f32e4c823e3b421aef786d5651afafbf70ef14c00524ab814bc421b1d4181b4d3d82d6ae4e8032e43a6c4e0691184425b37320798f865c88b9b306466311d79e3e42076837474c37c9f6336ed777f05f70b0c7d72bd4348a4cd754d0f0c3e4587f9a18313ea2d2bace502a24ea417d3041b709a0471f":"3105dddb":"FAIL":"":1 From d8d2ea5674871f3d708626c33d5342921b3ef266 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 15:48:06 +0200 Subject: [PATCH 0834/1028] Add TLS 1.3 key exchange mode config options Add TLS 1.3 specific configuration options to enable/disable the support for TLS 1.3 key exchange modes. These configurations are introduced to move away from the aforementioned enablement/disablement based on MBEDTLS_KEY_EXCHANGE_xxx_ENABLED options that relate to group of TLS 1.2 ciphersuites. Signed-off-by: Ronald Cron --- docs/architecture/tls13-support.md | 31 +++++++++++++++++++--- include/mbedtls/build_info.h | 16 ++++++++++++ include/mbedtls/check_config.h | 13 ++++++++++ include/mbedtls/mbedtls_config.h | 41 ++++++++++++++++++++++++++++++ tests/scripts/depends.py | 4 ++- 5 files changed, 100 insertions(+), 5 deletions(-) diff --git a/docs/architecture/tls13-support.md b/docs/architecture/tls13-support.md index fc0087ff83..30185f4e1a 100644 --- a/docs/architecture/tls13-support.md +++ b/docs/architecture/tls13-support.md @@ -141,10 +141,33 @@ Support description | MBEDTLS_USE_PSA_CRYPTO | yes | (1) These options must remain in their default state of enabled. - (2) Key exchange configuration options for TLS 1.3 will likely to be - organized around the notion of key exchange mode along the line - of the MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_NONE/PSK/PSK_EPHEMERAL/EPHEMERAL - runtime configuration macros. + (2) See the TLS 1.3 specific build options section below. + +- TLS 1.3 specific build options: + + - MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE enables the support for middlebox + compatibility mode as defined in section D.4 of RFC 8446. + + - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED enables the + support of the ephemeral key exchange mode. If it is the only key exchange + mode enabled, the TLS 1.3 implementation does not contain any code related + to PSK based key exchange. The ephemeral key exchange mode requires at least + one of the key exchange protocol allowed by the TLS 1.3 specification, the + parsing and validation of x509 certificates and at least one signature + algorithm allowed by the TLS 1.3 specification for signature computing and + verification. + + - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED enables the support for + the PSK key exchange mode as defined by RFC 8446. If it is the only key + exchange mode enabled, the TLS 1.3 implementation does not contain any code + related to key exchange protocols, certificates and signatures. + + - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED enables the support + for the PSK ephemeral key exchange mode. If it is the only key exchange + mode enabled, the TLS 1.3 implementation does not contain any code + related to certificates and signatures. The PSK ephemeral key exchange + mode requirss at least one of the key exchange protocol allowed by the + TLS 1.3 specification. Prototype upstreaming status diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index 6195ac979b..041c5b61e8 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -78,6 +78,22 @@ #define MBEDTLS_PK_WRITE_C #endif +#if !defined(MBEDTLS_SSL_PROTO_TLS1_3) +#undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +#undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +#undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +#endif + +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) || \ + defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) +#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED +#endif + +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) || \ + defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) +#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED +#endif + /* Make sure all configuration symbols are set before including check_config.h, * even the ones that are calculated programmatically. */ #if defined(MBEDTLS_PSA_CRYPTO_CONFIG) /* PSA_WANT_xxx influences MBEDTLS_xxx */ || \ diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 0081ca3d60..6a96479947 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -806,6 +806,19 @@ #endif /* !MBEDTLS_USE_PSA_CRYPTO */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) +#if !( defined(MBEDTLS_ECDH_C) && defined(MBEDTLS_X509_CRT_PARSE_C) && \ + ( defined(MBEDTLS_ECDSA_C) || defined(MBEDTLS_PKCS1_V21) ) ) +#error "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED defined, but not all prerequisites" +#endif +#endif + +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) +#if !( defined(MBEDTLS_ECDH_C) ) +#error "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED defined, but not all prerequisites" +#endif +#endif + /* * The current implementation of TLS 1.3 requires MBEDTLS_SSL_KEEP_PEER_CERTIFICATE. */ diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 61007d801b..9588ca4b41 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1552,6 +1552,47 @@ */ //#define MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +/** + * \def MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + * + * Enable TLS 1.3 PSK key exchange mode. + * + * Comment to disable support for the PSK key exchange mode in TLS 1.3. If + * MBEDTLS_SSL_PROTO_TLS1_3 is not enabled, this option does not have any + * effect on the build. + * + */ +#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + +/** + * \def MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED + * + * Enable TLS 1.3 ephemeral key exchange mode. + * + * Requires: MBEDTLS_ECDH_C, MBEDTLS_X509_CRT_PARSE_C, MBEDTLS_ECDSA_C or + * MBEDTLS_PKCS1_V21 + * + * Comment to disable support for the ephemeral key exchange mode in TLS 1.3. + * If MBEDTLS_SSL_PROTO_TLS1_3 is not enabled, this option does not have any + * effect on the build. + * + */ +#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED + +/** + * \def MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED + * + * Enable TLS 1.3 PSK ephemeral key exchange mode. + * + * Requires: MBEDTLS_ECDH_C + * + * Comment to disable support for the PSK ephemeral key exchange mode in + * TLS 1.3. If MBEDTLS_SSL_PROTO_TLS1_3 is not enabled, this option does not + * have any effect on the build. + * + */ +#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED + /** * \def MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE * diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index ce7fee65c2..f2396ee96a 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -237,7 +237,9 @@ REVERSE_DEPENDENCIES = { 'MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], + 'MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', + 'MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED', + 'MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED'], 'MBEDTLS_ECP_DP_SECP256R1_ENABLED': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], 'MBEDTLS_PKCS1_V21': ['MBEDTLS_X509_RSASSA_PSS_SUPPORT'], 'MBEDTLS_PKCS1_V15': ['MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', From 928cbd34e733e0274fb9634fa6e7fc86a24bc6e9 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 16:14:26 +0200 Subject: [PATCH 0835/1028] tls13: Use MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED Use MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED instead of MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED to guard code specific to the TLS 1.3 ephemeral key exchange mode. Use it also for the dependencies of TLS 1.3 only tests relying on ephemeral key exchange mode, but for tests in tls13-kex-modes.sh where the change is done later using all MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_.*ENABLED macros. Signed-off-by: Ronald Cron --- include/mbedtls/ssl.h | 2 +- library/ssl_misc.h | 134 +- library/ssl_tls.c | 2 +- library/ssl_tls13_client.c | 20 +- library/ssl_tls13_generic.c | 12 +- library/ssl_tls13_server.c | 18 +- tests/opt-testcases/tls13-compat.sh | 1440 +++++++++--------- tests/scripts/generate_tls13_compat_tests.py | 2 +- tests/ssl-opt.sh | 170 ++- tests/suites/test_suite_ssl.data | 2 +- 10 files changed, 950 insertions(+), 852 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 219d820721..6ae85d99cd 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1450,7 +1450,7 @@ struct mbedtls_ssl_config const int *MBEDTLS_PRIVATE(sig_hashes); /*!< allowed signature hashes */ #endif const uint16_t *MBEDTLS_PRIVATE(sig_algs); /*!< allowed signature algorithms */ -#endif +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) const mbedtls_ecp_group_id *MBEDTLS_PRIVATE(curve_list); /*!< allowed curves */ diff --git a/library/ssl_misc.h b/library/ssl_misc.h index ae602562de..a58e2a1249 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -1873,7 +1873,7 @@ int mbedtls_ssl_tls13_fetch_handshake_msg( mbedtls_ssl_context *ssl, MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_process_certificate( mbedtls_ssl_context *ssl ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) /* * Handler of TLS 1.3 write Certificate message */ @@ -1886,7 +1886,7 @@ int mbedtls_ssl_tls13_write_certificate( mbedtls_ssl_context *ssl ); MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_write_certificate_verify( mbedtls_ssl_context *ssl ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ /* * Generic handler of Certificate Verify @@ -2063,10 +2063,7 @@ static inline const void *mbedtls_ssl_get_sig_algs( #endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ } - -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) - -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) static inline int mbedtls_ssl_sig_alg_is_received( const mbedtls_ssl_context *ssl, uint16_t own_sig_alg ) { @@ -2081,61 +2078,7 @@ static inline int mbedtls_ssl_sig_alg_is_received( const mbedtls_ssl_context *ss } return( 0 ); } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ -static inline int mbedtls_ssl_sig_alg_is_offered( const mbedtls_ssl_context *ssl, - uint16_t proposed_sig_alg ) -{ - const uint16_t *sig_alg = mbedtls_ssl_get_sig_algs( ssl ); - if( sig_alg == NULL ) - return( 0 ); - - for( ; *sig_alg != MBEDTLS_TLS_SIG_NONE; sig_alg++ ) - { - if( *sig_alg == proposed_sig_alg ) - return( 1 ); - } - return( 0 ); -} - -static inline int mbedtls_ssl_get_pk_type_and_md_alg_from_sig_alg( - uint16_t sig_alg, mbedtls_pk_type_t *pk_type, mbedtls_md_type_t *md_alg ) -{ - *pk_type = mbedtls_ssl_pk_alg_from_sig( sig_alg & 0xff ); - *md_alg = mbedtls_ssl_md_alg_from_hash( ( sig_alg >> 8 ) & 0xff ); - - if( *pk_type != MBEDTLS_PK_NONE && *md_alg != MBEDTLS_MD_NONE ) - return( 0 ); - - switch( sig_alg ) - { -#if defined(MBEDTLS_PKCS1_V21) -#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: - *md_alg = MBEDTLS_MD_SHA256; - *pk_type = MBEDTLS_PK_RSASSA_PSS; - break; -#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384: - *md_alg = MBEDTLS_MD_SHA384; - *pk_type = MBEDTLS_PK_RSASSA_PSS; - break; -#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -#if defined(MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512: - *md_alg = MBEDTLS_MD_SHA512; - *pk_type = MBEDTLS_PK_RSASSA_PSS; - break; -#endif /* MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -#endif /* MBEDTLS_PKCS1_V21 */ - default: - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); - } - return( 0 ); -} - -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) static inline int mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported( const uint16_t sig_alg ) { @@ -2203,7 +2146,63 @@ static inline int mbedtls_ssl_tls13_sig_alg_is_supported( return( 1 ); } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ +MBEDTLS_CHECK_RETURN_CRITICAL +int mbedtls_ssl_tls13_check_sig_alg_cert_key_match( uint16_t sig_alg, + mbedtls_pk_context *key ); +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +static inline int mbedtls_ssl_sig_alg_is_offered( const mbedtls_ssl_context *ssl, + uint16_t proposed_sig_alg ) +{ + const uint16_t *sig_alg = mbedtls_ssl_get_sig_algs( ssl ); + if( sig_alg == NULL ) + return( 0 ); + + for( ; *sig_alg != MBEDTLS_TLS_SIG_NONE; sig_alg++ ) + { + if( *sig_alg == proposed_sig_alg ) + return( 1 ); + } + return( 0 ); +} + +static inline int mbedtls_ssl_get_pk_type_and_md_alg_from_sig_alg( + uint16_t sig_alg, mbedtls_pk_type_t *pk_type, mbedtls_md_type_t *md_alg ) +{ + *pk_type = mbedtls_ssl_pk_alg_from_sig( sig_alg & 0xff ); + *md_alg = mbedtls_ssl_md_alg_from_hash( ( sig_alg >> 8 ) & 0xff ); + + if( *pk_type != MBEDTLS_PK_NONE && *md_alg != MBEDTLS_MD_NONE ) + return( 0 ); + + switch( sig_alg ) + { +#if defined(MBEDTLS_PKCS1_V21) +#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: + *md_alg = MBEDTLS_MD_SHA256; + *pk_type = MBEDTLS_PK_RSASSA_PSS; + break; +#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384: + *md_alg = MBEDTLS_MD_SHA384; + *pk_type = MBEDTLS_PK_RSASSA_PSS; + break; +#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +#if defined(MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512: + *md_alg = MBEDTLS_MD_SHA512; + *pk_type = MBEDTLS_PK_RSASSA_PSS; + break; +#endif /* MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +#endif /* MBEDTLS_PKCS1_V21 */ + default: + return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + } + return( 0 ); +} #if defined(MBEDTLS_SSL_PROTO_TLS1_2) static inline int mbedtls_ssl_tls12_sig_alg_is_supported( @@ -2281,25 +2280,16 @@ static inline int mbedtls_ssl_sig_alg_is_supported( } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) { return( mbedtls_ssl_tls13_sig_alg_is_supported( sig_alg ) ); } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ +#endif ((void) ssl); ((void) sig_alg); return( 0 ); } - -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) - -MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_check_sig_alg_cert_key_match( uint16_t sig_alg, - mbedtls_pk_context *key ); - -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - #endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index b62e2ac73f..1e7d9a33b2 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -4822,7 +4822,7 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, else #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ conf->sig_algs = ssl_preset_suiteb_sig_algs; -#endif +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) conf->curve_list = NULL; diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 4aba59f9ea..c44399e3a7 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2065,7 +2065,7 @@ static int ssl_tls13_process_encrypted_extensions( mbedtls_ssl_context *ssl ) mbedtls_ssl_add_hs_msg_to_checksum( ssl, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, buf, buf_len ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) if( mbedtls_ssl_tls13_key_exchange_mode_with_psk( ssl ) ) mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_FINISHED ); else @@ -2082,7 +2082,7 @@ cleanup: } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) /* * STATE HANDLING: CertificateRequest * @@ -2319,7 +2319,7 @@ static int ssl_tls13_process_certificate_verify( mbedtls_ssl_context *ssl ) mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_FINISHED ); return( 0 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ /* * Handler for MBEDTLS_SSL_SERVER_FINISHED @@ -2365,7 +2365,7 @@ static int ssl_tls13_write_client_certificate( mbedtls_ssl_context *ssl ) ( "Switch to handshake traffic keys for outbound traffic" ) ); mbedtls_ssl_set_outbound_transform( ssl, ssl->handshake->transform_handshake ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) if( ssl->handshake->client_auth ) { int ret = mbedtls_ssl_tls13_write_certificate( ssl ); @@ -2395,7 +2395,7 @@ static int ssl_tls13_write_client_certificate( mbedtls_ssl_context *ssl ) return( 0 ); } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) /* * Handler for MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY */ @@ -2409,7 +2409,7 @@ static int ssl_tls13_write_client_certificate_verify( mbedtls_ssl_context *ssl ) return( ret ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ /* * Handler for MBEDTLS_SSL_CLIENT_FINISHED @@ -2722,7 +2722,7 @@ int mbedtls_ssl_tls13_handshake_client_step( mbedtls_ssl_context *ssl ) ret = ssl_tls13_process_encrypted_extensions( ssl ); break; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) case MBEDTLS_SSL_CERTIFICATE_REQUEST: ret = ssl_tls13_process_certificate_request( ssl ); break; @@ -2734,7 +2734,7 @@ int mbedtls_ssl_tls13_handshake_client_step( mbedtls_ssl_context *ssl ) case MBEDTLS_SSL_CERTIFICATE_VERIFY: ret = ssl_tls13_process_certificate_verify( ssl ); break; -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ case MBEDTLS_SSL_SERVER_FINISHED: ret = ssl_tls13_process_server_finished( ssl ); @@ -2744,11 +2744,11 @@ int mbedtls_ssl_tls13_handshake_client_step( mbedtls_ssl_context *ssl ) ret = ssl_tls13_write_client_certificate( ssl ); break; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) case MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY: ret = ssl_tls13_write_client_certificate_verify( ssl ); break; -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ case MBEDTLS_SSL_CLIENT_FINISHED: ret = ssl_tls13_write_client_finished( ssl ); diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index abb7a14816..3913c1669b 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -83,7 +83,7 @@ cleanup: return( ret ); } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) /* * STATE HANDLING: Read CertificateVerify */ @@ -285,12 +285,12 @@ error: return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ int mbedtls_ssl_tls13_process_certificate_verify( mbedtls_ssl_context *ssl ) { -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char verify_buffer[SSL_VERIFY_STRUCT_MAX_SIZE]; size_t verify_buffer_len; @@ -348,7 +348,7 @@ cleanup: ((void) ssl); MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ } /* @@ -757,7 +757,7 @@ cleanup: MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse certificate" ) ); return( ret ); } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) /* * enum { * X509(0), @@ -1078,7 +1078,7 @@ cleanup: return( ret ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ /* * diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 3e54f38790..e5cd416e52 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -1104,7 +1104,7 @@ static int ssl_tls13_determine_key_exchange_mode( mbedtls_ssl_context *ssl ) } #if defined(MBEDTLS_X509_CRT_PARSE_C) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) + defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) static psa_algorithm_t ssl_tls13_iana_sig_alg_to_psa_alg( uint16_t sig_alg ) @@ -1229,7 +1229,7 @@ static int ssl_tls13_pick_key_cert( mbedtls_ssl_context *ssl ) return( -1 ); } #endif /* MBEDTLS_X509_CRT_PARSE_C && - MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ /* * @@ -1634,7 +1634,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, break; #endif /* MBEDTLS_SSL_ALPN */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) case MBEDTLS_TLS_EXT_SIG_ALG: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found signature_algorithms extension" ) ); @@ -1649,7 +1649,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, } ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_SIG_ALG; break; -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ default: MBEDTLS_SSL_DEBUG_MSG( 3, @@ -2390,7 +2390,7 @@ static int ssl_tls13_write_encrypted_extensions( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_finish_handshake_msg( ssl, buf_len, msg_len ) ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) if( mbedtls_ssl_tls13_key_exchange_mode_with_psk( ssl ) ) mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_FINISHED ); else @@ -2405,7 +2405,7 @@ cleanup: return( ret ); } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) #define SSL_CERTIFICATE_REQUEST_SEND_REQUEST 0 #define SSL_CERTIFICATE_REQUEST_SKIP 1 /* Coordination: @@ -2573,7 +2573,7 @@ static int ssl_tls13_write_certificate_verify( mbedtls_ssl_context *ssl ) mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_FINISHED ); return( 0 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ /* * Handler for MBEDTLS_SSL_SERVER_FINISHED @@ -2984,7 +2984,7 @@ int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ) } break; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) case MBEDTLS_SSL_CERTIFICATE_REQUEST: ret = ssl_tls13_write_certificate_request( ssl ); break; @@ -2996,7 +2996,7 @@ int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ) case MBEDTLS_SSL_CERTIFICATE_VERIFY: ret = ssl_tls13_write_certificate_verify( ssl ); break; -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ /* * Injection of dummy-CCS's for middlebox compatibility diff --git a/tests/opt-testcases/tls13-compat.sh b/tests/opt-testcases/tls13-compat.sh index 5611510bc7..59e305246a 100755 --- a/tests/opt-testcases/tls13-compat.sh +++ b/tests/opt-testcases/tls13-compat.sh @@ -28,7 +28,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -45,7 +45,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -62,7 +62,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -79,7 +79,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -97,7 +97,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -114,7 +114,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -131,7 +131,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -148,7 +148,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -166,7 +166,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -183,7 +183,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -200,7 +200,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -217,7 +217,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -235,7 +235,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -252,7 +252,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -269,7 +269,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -286,7 +286,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -304,7 +304,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -321,7 +321,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -338,7 +338,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -355,7 +355,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -373,7 +373,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ @@ -390,7 +390,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ @@ -407,7 +407,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ @@ -424,7 +424,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -442,7 +442,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ @@ -459,7 +459,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ @@ -476,7 +476,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ @@ -493,7 +493,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -511,7 +511,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ @@ -528,7 +528,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ @@ -545,7 +545,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ @@ -562,7 +562,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -580,7 +580,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ @@ -597,7 +597,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ @@ -614,7 +614,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ @@ -631,7 +631,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -649,7 +649,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ @@ -666,7 +666,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ @@ -683,7 +683,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ @@ -700,7 +700,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -718,7 +718,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -735,7 +735,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -752,7 +752,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -769,7 +769,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -787,7 +787,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -804,7 +804,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -821,7 +821,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -838,7 +838,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -856,7 +856,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -873,7 +873,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -890,7 +890,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -907,7 +907,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -925,7 +925,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -942,7 +942,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -959,7 +959,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -976,7 +976,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -994,7 +994,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -1011,7 +1011,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -1028,7 +1028,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -1045,7 +1045,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1063,7 +1063,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -1080,7 +1080,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -1097,7 +1097,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -1114,7 +1114,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1132,7 +1132,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -1149,7 +1149,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -1166,7 +1166,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -1183,7 +1183,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1201,7 +1201,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -1218,7 +1218,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -1235,7 +1235,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -1252,7 +1252,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1270,7 +1270,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -1287,7 +1287,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -1304,7 +1304,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -1321,7 +1321,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1339,7 +1339,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -1356,7 +1356,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -1373,7 +1373,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -1390,7 +1390,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1408,7 +1408,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -1425,7 +1425,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -1442,7 +1442,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -1459,7 +1459,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1477,7 +1477,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -1494,7 +1494,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -1511,7 +1511,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -1528,7 +1528,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1546,7 +1546,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -1563,7 +1563,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -1580,7 +1580,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -1597,7 +1597,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1615,7 +1615,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -1632,7 +1632,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -1649,7 +1649,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -1666,7 +1666,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1684,7 +1684,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -1701,7 +1701,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -1718,7 +1718,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -1735,7 +1735,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1753,7 +1753,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1772,7 +1772,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1791,7 +1791,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1810,7 +1810,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -1830,7 +1830,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1849,7 +1849,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1868,7 +1868,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1887,7 +1887,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -1907,7 +1907,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1926,7 +1926,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1945,7 +1945,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1964,7 +1964,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -1984,7 +1984,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2003,7 +2003,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2022,7 +2022,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2041,7 +2041,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2061,7 +2061,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2080,7 +2080,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2099,7 +2099,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2118,7 +2118,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2138,7 +2138,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2157,7 +2157,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2176,7 +2176,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2195,7 +2195,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2215,7 +2215,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2234,7 +2234,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2253,7 +2253,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2272,7 +2272,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2292,7 +2292,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2311,7 +2311,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2330,7 +2330,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2349,7 +2349,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2369,7 +2369,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2388,7 +2388,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2407,7 +2407,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2426,7 +2426,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2446,7 +2446,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2465,7 +2465,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2484,7 +2484,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2503,7 +2503,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2523,7 +2523,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2542,7 +2542,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2561,7 +2561,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2580,7 +2580,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2600,7 +2600,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2619,7 +2619,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2638,7 +2638,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2657,7 +2657,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2677,7 +2677,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2696,7 +2696,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2715,7 +2715,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2734,7 +2734,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2754,7 +2754,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2773,7 +2773,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2792,7 +2792,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2811,7 +2811,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2831,7 +2831,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2850,7 +2850,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2869,7 +2869,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2888,7 +2888,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2908,7 +2908,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2927,7 +2927,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2946,7 +2946,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2965,7 +2965,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2985,7 +2985,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3004,7 +3004,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3023,7 +3023,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3042,7 +3042,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3062,7 +3062,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3081,7 +3081,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3100,7 +3100,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3119,7 +3119,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3139,7 +3139,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3158,7 +3158,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3177,7 +3177,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3196,7 +3196,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3216,7 +3216,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3235,7 +3235,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3254,7 +3254,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3273,7 +3273,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3293,7 +3293,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3312,7 +3312,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3331,7 +3331,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3350,7 +3350,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3370,7 +3370,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3389,7 +3389,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3408,7 +3408,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3427,7 +3427,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3447,7 +3447,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3466,7 +3466,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3485,7 +3485,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3504,7 +3504,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3524,7 +3524,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3543,7 +3543,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3562,7 +3562,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3581,7 +3581,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3601,7 +3601,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3620,7 +3620,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3639,7 +3639,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3658,7 +3658,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3679,7 +3679,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3697,7 +3697,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3715,7 +3715,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3733,7 +3733,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -3752,7 +3752,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3770,7 +3770,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3788,7 +3788,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3806,7 +3806,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -3825,7 +3825,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3843,7 +3843,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3861,7 +3861,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3879,7 +3879,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -3898,7 +3898,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3916,7 +3916,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3934,7 +3934,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3952,7 +3952,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -3971,7 +3971,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3989,7 +3989,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4007,7 +4007,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4025,7 +4025,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -4044,7 +4044,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4062,7 +4062,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4080,7 +4080,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4098,7 +4098,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ @@ -4117,7 +4117,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4135,7 +4135,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4153,7 +4153,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4171,7 +4171,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ @@ -4190,7 +4190,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4208,7 +4208,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4226,7 +4226,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4244,7 +4244,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ @@ -4263,7 +4263,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4281,7 +4281,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4299,7 +4299,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4317,7 +4317,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ @@ -4336,7 +4336,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4354,7 +4354,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4372,7 +4372,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4390,7 +4390,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ @@ -4409,7 +4409,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4427,7 +4427,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4445,7 +4445,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4463,7 +4463,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -4482,7 +4482,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4500,7 +4500,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4518,7 +4518,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4536,7 +4536,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -4555,7 +4555,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4573,7 +4573,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4591,7 +4591,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4609,7 +4609,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -4628,7 +4628,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4646,7 +4646,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4664,7 +4664,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4682,7 +4682,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -4701,7 +4701,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4719,7 +4719,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4737,7 +4737,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4755,7 +4755,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -4774,7 +4774,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4792,7 +4792,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4810,7 +4810,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4828,7 +4828,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -4847,7 +4847,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4865,7 +4865,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4883,7 +4883,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4901,7 +4901,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -4920,7 +4920,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4938,7 +4938,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4956,7 +4956,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4974,7 +4974,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -4993,7 +4993,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5011,7 +5011,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5029,7 +5029,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5047,7 +5047,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -5066,7 +5066,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5084,7 +5084,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5102,7 +5102,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5120,7 +5120,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -5139,7 +5139,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5157,7 +5157,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5175,7 +5175,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5193,7 +5193,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -5212,7 +5212,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5230,7 +5230,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5248,7 +5248,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5266,7 +5266,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -5285,7 +5285,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5303,7 +5303,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5321,7 +5321,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5339,7 +5339,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -5358,7 +5358,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5376,7 +5376,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5394,7 +5394,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5412,7 +5412,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -5431,7 +5431,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5449,7 +5449,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5467,7 +5467,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5485,7 +5485,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -5506,7 +5506,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5526,7 +5526,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5546,7 +5546,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5566,7 +5566,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -5587,7 +5587,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5607,7 +5607,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5627,7 +5627,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5647,7 +5647,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -5668,7 +5668,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5688,7 +5688,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5708,7 +5708,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5728,7 +5728,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -5749,7 +5749,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5769,7 +5769,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5789,7 +5789,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5809,7 +5809,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -5830,7 +5830,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5850,7 +5850,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5870,7 +5870,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5890,7 +5890,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -5911,7 +5911,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5931,7 +5931,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5951,7 +5951,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5971,7 +5971,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ @@ -5992,7 +5992,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6012,7 +6012,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6032,7 +6032,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6052,7 +6052,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ @@ -6073,7 +6073,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6093,7 +6093,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6113,7 +6113,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6133,7 +6133,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ @@ -6154,7 +6154,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6174,7 +6174,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6194,7 +6194,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6214,7 +6214,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ @@ -6235,7 +6235,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6255,7 +6255,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6275,7 +6275,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6295,7 +6295,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ @@ -6316,7 +6316,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6336,7 +6336,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6356,7 +6356,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6376,7 +6376,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -6397,7 +6397,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6417,7 +6417,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6437,7 +6437,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6457,7 +6457,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -6478,7 +6478,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6498,7 +6498,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6518,7 +6518,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6538,7 +6538,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -6559,7 +6559,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6579,7 +6579,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6599,7 +6599,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6619,7 +6619,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -6640,7 +6640,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6660,7 +6660,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6680,7 +6680,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6700,7 +6700,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -6721,7 +6721,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6741,7 +6741,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6761,7 +6761,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6781,7 +6781,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -6802,7 +6802,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6822,7 +6822,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6842,7 +6842,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6862,7 +6862,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -6883,7 +6883,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6903,7 +6903,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6923,7 +6923,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6943,7 +6943,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -6964,7 +6964,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6984,7 +6984,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7004,7 +7004,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7024,7 +7024,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -7045,7 +7045,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7065,7 +7065,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7085,7 +7085,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7105,7 +7105,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -7126,7 +7126,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7146,7 +7146,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7166,7 +7166,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7186,7 +7186,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -7207,7 +7207,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7227,7 +7227,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7247,7 +7247,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7267,7 +7267,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -7288,7 +7288,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7308,7 +7308,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7328,7 +7328,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7348,7 +7348,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -7369,7 +7369,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7389,7 +7389,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7409,7 +7409,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7429,7 +7429,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -7450,7 +7450,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7470,7 +7470,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7490,7 +7490,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7510,7 +7510,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -7528,12 +7528,12 @@ run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7554,12 +7554,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7580,12 +7580,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7606,13 +7606,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -7634,12 +7634,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7660,12 +7660,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7686,12 +7686,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7712,13 +7712,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -7740,12 +7740,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7766,12 +7766,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7792,12 +7792,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7818,13 +7818,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -7846,12 +7846,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7872,12 +7872,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7898,12 +7898,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7924,13 +7924,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -7952,12 +7952,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7978,12 +7978,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8004,12 +8004,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8030,13 +8030,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -8058,12 +8058,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8084,12 +8084,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8110,12 +8110,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8136,13 +8136,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ @@ -8164,12 +8164,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8190,12 +8190,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8216,12 +8216,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8242,13 +8242,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ @@ -8270,12 +8270,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8296,12 +8296,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8322,12 +8322,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8348,13 +8348,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ @@ -8376,12 +8376,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8402,12 +8402,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8428,12 +8428,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8454,13 +8454,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ @@ -8482,12 +8482,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8508,12 +8508,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8534,12 +8534,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8560,13 +8560,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ @@ -8588,12 +8588,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8614,12 +8614,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8640,12 +8640,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8666,13 +8666,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -8694,12 +8694,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8720,12 +8720,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8746,12 +8746,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8772,13 +8772,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -8800,12 +8800,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8826,12 +8826,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8852,12 +8852,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8878,13 +8878,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -8906,12 +8906,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8932,12 +8932,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8958,12 +8958,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8984,13 +8984,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -9012,12 +9012,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9038,12 +9038,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9064,12 +9064,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9090,13 +9090,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -9118,12 +9118,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9144,12 +9144,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9170,12 +9170,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9196,13 +9196,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -9224,12 +9224,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9250,12 +9250,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9276,12 +9276,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9302,13 +9302,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -9330,12 +9330,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9356,12 +9356,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9382,12 +9382,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9408,13 +9408,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -9436,12 +9436,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9462,12 +9462,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9488,12 +9488,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9514,13 +9514,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -9542,12 +9542,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9568,12 +9568,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9594,12 +9594,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9620,13 +9620,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -9648,12 +9648,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9674,12 +9674,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9700,12 +9700,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9726,13 +9726,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -9754,12 +9754,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9780,12 +9780,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9806,12 +9806,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9832,13 +9832,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -9860,12 +9860,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9886,12 +9886,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9912,12 +9912,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9938,13 +9938,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -9966,12 +9966,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9992,12 +9992,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10018,12 +10018,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10044,13 +10044,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -10072,12 +10072,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10098,12 +10098,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10124,12 +10124,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10150,13 +10150,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -10178,7 +10178,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp256r1 -> secp384r1" \ @@ -10193,7 +10193,7 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp256r1 -> secp521r1" \ @@ -10208,7 +10208,7 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp256r1 -> x25519" \ @@ -10223,7 +10223,7 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp256r1 -> x448" \ @@ -10238,7 +10238,7 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp384r1 -> secp256r1" \ @@ -10253,7 +10253,7 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp384r1 -> secp521r1" \ @@ -10268,7 +10268,7 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp384r1 -> x25519" \ @@ -10283,7 +10283,7 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp384r1 -> x448" \ @@ -10298,7 +10298,7 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp521r1 -> secp256r1" \ @@ -10313,7 +10313,7 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp521r1 -> secp384r1" \ @@ -10328,7 +10328,7 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp521r1 -> x25519" \ @@ -10343,7 +10343,7 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp521r1 -> x448" \ @@ -10358,7 +10358,7 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x25519 -> secp256r1" \ @@ -10373,7 +10373,7 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x25519 -> secp384r1" \ @@ -10388,7 +10388,7 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x25519 -> secp521r1" \ @@ -10403,7 +10403,7 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x25519 -> x448" \ @@ -10418,7 +10418,7 @@ run_test "TLS 1.3 O->m: HRR x25519 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x448 -> secp256r1" \ @@ -10433,7 +10433,7 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x448 -> secp384r1" \ @@ -10448,7 +10448,7 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x448 -> secp521r1" \ @@ -10463,7 +10463,7 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x448 -> x25519" \ @@ -10478,7 +10478,7 @@ run_test "TLS 1.3 O->m: HRR x448 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10495,7 +10495,7 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10512,7 +10512,7 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10529,7 +10529,7 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10546,7 +10546,7 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10563,7 +10563,7 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10580,7 +10580,7 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10597,7 +10597,7 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10614,7 +10614,7 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10631,7 +10631,7 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10648,7 +10648,7 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10665,7 +10665,7 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10682,7 +10682,7 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10699,7 +10699,7 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10716,7 +10716,7 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10733,7 +10733,7 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10750,7 +10750,7 @@ run_test "TLS 1.3 G->m: HRR x25519 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10767,7 +10767,7 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10784,7 +10784,7 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10801,7 +10801,7 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10819,7 +10819,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> secp384r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10837,7 +10837,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> secp521r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10855,7 +10855,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> x25519" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10873,7 +10873,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> x448" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10891,7 +10891,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> secp256r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10909,7 +10909,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> secp521r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10927,7 +10927,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> x25519" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10945,7 +10945,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> x448" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10963,7 +10963,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> secp256r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10981,7 +10981,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> secp384r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10999,7 +10999,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> x25519" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11017,7 +11017,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> x448" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11035,7 +11035,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp256r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11053,7 +11053,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp384r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11071,7 +11071,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp521r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11089,7 +11089,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> x448" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11107,7 +11107,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp256r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11125,7 +11125,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp384r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11143,7 +11143,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp521r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11161,7 +11161,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> x25519" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11181,7 +11181,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> secp384r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11201,7 +11201,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> secp521r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11221,7 +11221,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> x25519" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11241,7 +11241,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> x448" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11261,7 +11261,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> secp256r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11281,7 +11281,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> secp521r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11301,7 +11301,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> x25519" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11321,7 +11321,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> x448" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11341,7 +11341,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> secp256r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11361,7 +11361,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> secp384r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11381,7 +11381,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> x25519" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11401,7 +11401,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> x448" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11421,7 +11421,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp256r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11441,7 +11441,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp384r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11461,7 +11461,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp521r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11481,7 +11481,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> x448" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11501,7 +11501,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp256r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11521,7 +11521,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp384r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11541,7 +11541,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp521r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11561,7 +11561,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> x25519" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11578,12 +11578,12 @@ run_test "TLS 1.3 m->G: HRR x448 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> secp384r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11603,12 +11603,12 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> secp521r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11628,12 +11628,12 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> x25519" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11653,12 +11653,12 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> x448" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11678,12 +11678,12 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> secp256r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11703,12 +11703,12 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> secp521r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11728,12 +11728,12 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> x25519" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11753,12 +11753,12 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> x448" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11778,12 +11778,12 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> secp256r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11803,12 +11803,12 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> secp384r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11828,12 +11828,12 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> x25519" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11853,12 +11853,12 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> x448" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11878,12 +11878,12 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp256r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11903,12 +11903,12 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp384r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11928,12 +11928,12 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp521r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11953,12 +11953,12 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> x448" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11978,12 +11978,12 @@ run_test "TLS 1.3 m->m: HRR x25519 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp256r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -12003,12 +12003,12 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp384r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -12028,12 +12028,12 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp521r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -12053,12 +12053,12 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> x25519" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ diff --git a/tests/scripts/generate_tls13_compat_tests.py b/tests/scripts/generate_tls13_compat_tests.py index 0e94af6f0b..5c445df727 100755 --- a/tests/scripts/generate_tls13_compat_tests.py +++ b/tests/scripts/generate_tls13_compat_tests.py @@ -358,7 +358,7 @@ class MbedTLSBase(TLSProgram): def pre_checks(self): ret = ['requires_config_enabled MBEDTLS_DEBUG_C', 'requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3', - 'requires_key_exchange_with_cert_in_tls13_enabled'] + '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'] diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 970ee9e990..42faac01ca 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -266,12 +266,14 @@ requires_key_exchange_with_cert_in_tls12_enabled() { fi } -requires_key_exchange_with_cert_in_tls13_enabled() { - requires_key_exchange_with_cert_in_tls12_enabled -} - requires_key_exchange_with_cert_in_tls12_or_tls13_enabled() { - requires_key_exchange_with_cert_in_tls12_enabled + if $P_QUERY -all MBEDTLS_SSL_PROTO_TLS1_2 + then + requires_key_exchange_with_cert_in_tls12_enabled + elif ! $P_QUERY -all MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED + then + SKIP_NEXT="YES" + fi } get_config_value_or_default() { @@ -6658,7 +6660,7 @@ run_test "keyUsage cli: DigitalSignature, RSA: fail, soft" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: DigitalSignature+KeyEncipherment, RSA: OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ds_ke.crt" \ @@ -6671,7 +6673,7 @@ run_test "keyUsage cli 1.3: DigitalSignature+KeyEncipherment, RSA: OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: KeyEncipherment, RSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ke.crt" \ @@ -6684,7 +6686,7 @@ run_test "keyUsage cli 1.3: KeyEncipherment, RSA: fail" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: KeyAgreement, RSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ka.crt" \ @@ -6697,7 +6699,7 @@ run_test "keyUsage cli 1.3: KeyAgreement, RSA: fail" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: DigitalSignature, ECDSA: OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ds.crt" \ @@ -6710,7 +6712,7 @@ run_test "keyUsage cli 1.3: DigitalSignature, ECDSA: OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: KeyEncipherment, ECDSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ke.crt" \ @@ -6723,7 +6725,7 @@ run_test "keyUsage cli 1.3: KeyEncipherment, ECDSA: fail" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: KeyAgreement, ECDSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ka.crt" \ @@ -6785,7 +6787,7 @@ run_test "keyUsage cli-auth: ECDSA, KeyAgreement: fail (soft)" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli-auth 1.3: RSA, DigitalSignature: OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ @@ -6797,7 +6799,7 @@ run_test "keyUsage cli-auth 1.3: RSA, DigitalSignature: OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli-auth 1.3: RSA, KeyEncipherment: fail (soft)" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ @@ -6808,7 +6810,7 @@ run_test "keyUsage cli-auth 1.3: RSA, KeyEncipherment: fail (soft)" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli-auth 1.3: ECDSA, DigitalSignature: OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6820,7 +6822,7 @@ run_test "keyUsage cli-auth 1.3: ECDSA, DigitalSignature: OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli-auth 1.3: ECDSA, KeyAgreement: fail (soft)" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6904,7 +6906,7 @@ run_test "extKeyUsage cli: codeSign -> fail" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli 1.3: serverAuth -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-srv.crt" \ @@ -6917,7 +6919,7 @@ run_test "extKeyUsage cli 1.3: serverAuth -> OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli 1.3: serverAuth,clientAuth -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-srv_cli.crt" \ @@ -6930,7 +6932,7 @@ run_test "extKeyUsage cli 1.3: serverAuth,clientAuth -> OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli 1.3: codeSign,anyEKU -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-cs_any.crt" \ @@ -6943,7 +6945,7 @@ run_test "extKeyUsage cli 1.3: codeSign,anyEKU -> OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli 1.3: codeSign -> fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-cs.crt" \ @@ -7002,7 +7004,7 @@ run_test "extKeyUsage cli-auth: codeSign -> fail (hard)" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli-auth 1.3: clientAuth -> OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -7013,7 +7015,7 @@ run_test "extKeyUsage cli-auth 1.3: clientAuth -> OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli-auth 1.3: serverAuth,clientAuth -> OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -7024,7 +7026,7 @@ run_test "extKeyUsage cli-auth 1.3: serverAuth,clientAuth -> OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli-auth 1.3: codeSign,anyEKU -> OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -7035,7 +7037,7 @@ run_test "extKeyUsage cli-auth 1.3: codeSign,anyEKU -> OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli-auth 1.3: codeSign -> fail (soft)" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -8100,7 +8102,7 @@ run_test "Small client packet TLS 1.2 AEAD shorter tag" \ 0 \ -s "Read from client: 1 bytes read" -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "Small client packet TLS 1.3 AEAD" \ "$P_SRV force_version=tls13" \ "$P_CLI request_size=1 \ @@ -8108,7 +8110,7 @@ run_test "Small client packet TLS 1.3 AEAD" \ 0 \ -s "Read from client: 1 bytes read" -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "Small client packet TLS 1.3 AEAD shorter tag" \ "$P_SRV force_version=tls13" \ "$P_CLI request_size=1 \ @@ -8166,14 +8168,14 @@ run_test "Small server packet TLS 1.2 AEAD shorter tag" \ 0 \ -c "Read from server: 1 bytes read" -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "Small server packet TLS 1.3 AEAD" \ "$P_SRV response_size=1 force_version=tls13" \ "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-SHA256" \ 0 \ -c "Read from server: 1 bytes read" -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "Small server packet TLS 1.3 AEAD shorter tag" \ "$P_SRV response_size=1 force_version=tls13" \ "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256" \ @@ -8244,7 +8246,7 @@ run_test "Large client packet TLS 1.2 AEAD shorter tag" \ -c "16384 bytes written in $(fragments_for_write 16384) fragments" \ -s "Read from client: $MAX_CONTENT_LEN bytes read" -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "Large client packet TLS 1.3 AEAD" \ "$P_SRV force_version=tls13" \ "$P_CLI request_size=16384 \ @@ -8253,7 +8255,7 @@ run_test "Large client packet TLS 1.3 AEAD" \ -c "16384 bytes written in $(fragments_for_write 16384) fragments" \ -s "Read from client: $MAX_CONTENT_LEN bytes read" -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "Large client packet TLS 1.3 AEAD shorter tag" \ "$P_SRV force_version=tls13" \ "$P_CLI request_size=16384 \ @@ -8301,14 +8303,14 @@ run_test "Large server packet TLS 1.2 AEAD shorter tag" \ 0 \ -c "Read from server: 16384 bytes read" -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "Large server packet TLS 1.3 AEAD" \ "$P_SRV response_size=16384 force_version=tls13" \ "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-SHA256" \ 0 \ -c "Read from server: 16384 bytes read" -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "Large server packet TLS 1.3 AEAD shorter tag" \ "$P_SRV response_size=16384 force_version=tls13" \ "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256" \ @@ -11183,6 +11185,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: minimal feature sets - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=3" \ @@ -11216,6 +11219,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: minimal feature sets - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=3" \ @@ -11250,6 +11254,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_ALPN +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: alpn - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -alpn h2" \ "$P_CLI debug_level=3 alpn=h2" \ @@ -11285,6 +11290,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_ALPN +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: alpn - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert --alpn=h2" \ "$P_CLI debug_level=3 alpn=h2" \ @@ -11319,6 +11325,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_ALPN +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: server alpn - openssl" \ "$P_SRV debug_level=3 tickets=0 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 alpn=h2" \ "$O_NEXT_CLI -msg -tls1_3 -no_middlebox -alpn h2" \ @@ -11334,6 +11341,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_ALPN +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: server alpn - gnutls" \ "$P_SRV debug_level=3 tickets=0 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 alpn=h2" \ "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V --alpn h2" \ @@ -11431,6 +11439,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, no client certificate - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -verify 10" \ "$P_CLI debug_level=4 crt_file=none key_file=none" \ @@ -11447,6 +11456,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, no client certificate - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --verify-client-cert" \ "$P_CLI debug_level=3 crt_file=none key_file=none" \ @@ -11462,6 +11472,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, no server middlebox compat - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10 -no_middlebox" \ "$P_CLI debug_level=4 crt_file=data_files/cli2.crt key_file=data_files/cli2.key" \ @@ -11476,6 +11487,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, no server middlebox compat - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE" \ "$P_CLI debug_level=3 crt_file=data_files/cli2.crt \ @@ -11491,6 +11503,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp256r1_sha256 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp256r1.crt \ @@ -11507,6 +11520,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp256r1_sha256 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp256r1.crt \ @@ -11522,6 +11536,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp384r1_sha384 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp384r1.crt \ @@ -11538,6 +11553,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp384r1_sha384 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp384r1.crt \ @@ -11553,6 +11569,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp521r1_sha512 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11569,6 +11586,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp521r1_sha512 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11585,6 +11603,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha256 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/cert_sha256.crt \ @@ -11602,6 +11621,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha256 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/server2-sha256.crt \ @@ -11618,6 +11638,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha384 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=data_files/cert_sha256.crt \ @@ -11635,6 +11656,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha384 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 force_version=tls13 crt_file=data_files/server2-sha256.crt \ @@ -11651,6 +11673,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha512 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=data_files/cert_sha256.crt \ @@ -11668,6 +11691,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha512 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 force_version=tls13 crt_file=data_files/server2-sha256.crt \ @@ -11684,6 +11708,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, client alg not in server list - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10 -sigalgs ecdsa_secp256r1_sha256" \ @@ -11703,6 +11728,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, client alg not in server list - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11720,6 +11746,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, no server middlebox compat - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10 -no_middlebox" \ "$P_CLI debug_level=4 crt_file=data_files/cli2.crt key_file=data_files/cli2.key key_opaque=1" \ @@ -11735,6 +11762,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, no server middlebox compat - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE" \ "$P_CLI debug_level=3 crt_file=data_files/cli2.crt \ @@ -11751,6 +11779,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp256r1_sha256 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp256r1.crt \ @@ -11768,6 +11797,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp256r1_sha256 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp256r1.crt \ @@ -11784,6 +11814,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp384r1_sha384 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp384r1.crt \ @@ -11801,6 +11832,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp384r1_sha384 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp384r1.crt \ @@ -11817,6 +11849,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp521r1_sha512 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11834,6 +11867,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp521r1_sha512 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11851,6 +11885,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha256 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/cert_sha256.crt \ @@ -11869,6 +11904,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha256 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/server2-sha256.crt \ @@ -11886,6 +11922,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha384 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=data_files/cert_sha256.crt \ @@ -11904,6 +11941,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha384 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 force_version=tls13 crt_file=data_files/server2-sha256.crt \ @@ -11921,6 +11959,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha512 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=data_files/cert_sha256.crt \ @@ -11939,6 +11978,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha512 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 force_version=tls13 crt_file=data_files/server2-sha256.crt \ @@ -11956,6 +11996,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, client alg not in server list - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10 -sigalgs ecdsa_secp256r1_sha256" \ @@ -11976,6 +12017,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, client alg not in server list - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11991,6 +12033,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_openssl_tls1_3 run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_128_GCM_SHA256 - openssl" \ "$O_NEXT_SRV -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -12006,6 +12049,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_openssl_tls1_3 run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_256_GCM_SHA384 - openssl" \ "$O_NEXT_SRV -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -12023,6 +12067,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_128_GCM_SHA256 - gnutls" \ "$G_NEXT_SRV -d 4 --priority=NONE:+GROUP-SECP256R1:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+VERS-TLS1.3:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4" \ @@ -12039,6 +12084,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_256_GCM_SHA384 - gnutls" \ "$G_NEXT_SRV -d 4 --priority=NONE:+GROUP-SECP256R1:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+VERS-TLS1.3:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4" \ @@ -12053,6 +12099,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - openssl" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$O_NEXT_CLI -msg -debug -tls1_3 -no_middlebox" \ @@ -12069,6 +12116,7 @@ run_test "TLS 1.3: Server side check - openssl" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_openssl_tls1_3 run_test "TLS 1.3: Server side check - openssl with client authentication" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ @@ -12090,6 +12138,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - gnutls" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12109,6 +12158,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - gnutls with client authentication" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$G_NEXT_CLI localhost -d 4 --x509certfile data_files/server5.crt --x509keyfile data_files/server5.key --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12128,6 +12178,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - mbedtls" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$P_CLI debug_level=4 force_version=tls13" \ @@ -12147,6 +12198,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - mbedtls with client authentication" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$P_CLI debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13" \ @@ -12164,6 +12216,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - mbedtls with client empty certificate" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$P_CLI debug_level=4 crt_file=none key_file=none force_version=tls13" \ @@ -12182,6 +12235,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - mbedtls with optional client authentication" \ "$P_SRV debug_level=4 auth_mode=optional crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=none key_file=none" \ @@ -12199,6 +12253,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: server: HRR check - mbedtls" \ "$P_SRV debug_level=4 force_version=tls13 curves=secp384r1" \ "$P_CLI debug_level=4 force_version=tls13 curves=secp256r1,secp384r1" \ @@ -12216,6 +12271,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check, no server certificate available" \ "$P_SRV debug_level=4 crt_file=none key_file=none force_version=tls13" \ "$P_CLI debug_level=4 force_version=tls13" \ @@ -12228,6 +12284,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - openssl with sni" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0 \ sni=localhost,data_files/server5.crt,data_files/server5.key,data_files/test-ca_cat12.crt,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -12241,6 +12298,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - gnutls with sni" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0 \ sni=localhost,data_files/server5.crt,data_files/server5.key,data_files/test-ca_cat12.crt,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -12254,6 +12312,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - mbedtls with sni" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -12277,6 +12336,7 @@ requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m both peers do not support middlebox compatibility" \ "$P_SRV debug_level=4 force_version=tls13 tickets=0" \ "$P_CLI debug_level=4" \ @@ -12291,6 +12351,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m both with middlebox compat support" \ "$P_SRV debug_level=4 force_version=tls13 tickets=0" \ "$P_CLI debug_level=4" \ @@ -12305,6 +12366,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->O both peers do not support middlebox compatibility" \ "$O_NEXT_SRV -msg -tls1_3 -no_middlebox -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=4" \ @@ -12318,6 +12380,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->O server with middlebox compat support, not client" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=4" \ @@ -12329,6 +12392,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->O both with middlebox compat support" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=4" \ @@ -12343,6 +12407,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->G both peers do not support middlebox compatibility" \ "$G_NEXT_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE --disable-client-cert" \ "$P_CLI debug_level=4" \ @@ -12357,6 +12422,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->G server with middlebox compat support, not client" \ "$G_NEXT_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4" \ @@ -12369,6 +12435,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->G both with middlebox compat support" \ "$G_NEXT_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4" \ @@ -12381,6 +12448,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m both peers do not support middlebox compatibility" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$O_NEXT_CLI -msg -debug -no_middlebox" \ @@ -12394,6 +12462,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m server with middlebox compat support, not client" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$O_NEXT_CLI -msg -debug -no_middlebox" \ @@ -12406,6 +12475,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m both with middlebox compat support" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$O_NEXT_CLI -msg -debug" \ @@ -12421,6 +12491,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m both peers do not support middlebox compatibility" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$G_NEXT_CLI localhost --priority=NORMAL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12436,6 +12507,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m server with middlebox compat support, not client" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12452,6 +12524,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m both with middlebox compat support" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12465,6 +12538,7 @@ requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m HRR both peers do not support middlebox compatibility" \ "$P_SRV debug_level=4 force_version=tls13 curves=secp384r1 tickets=0" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12480,6 +12554,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m HRR both with middlebox compat support" \ "$P_SRV debug_level=4 force_version=tls13 curves=secp384r1 tickets=0" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12495,6 +12570,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->O HRR both peers do not support middlebox compatibility" \ "$O_NEXT_SRV -msg -tls1_3 -groups P-384 -no_middlebox -num_tickets 0 -no_cache" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12509,6 +12585,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->O HRR server with middlebox compat support, not client" \ "$O_NEXT_SRV -msg -tls1_3 -groups P-384 -num_tickets 0 -no_cache" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12521,6 +12598,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->O HRR both with middlebox compat support" \ "$O_NEXT_SRV -msg -tls1_3 -groups P-384 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12535,6 +12613,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->G HRR both peers do not support middlebox compatibility" \ "$G_NEXT_SRV --priority=NORMAL:-GROUP-ALL:+GROUP-SECP384R1:-VERS-ALL:+VERS-TLS1.3:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE --disable-client-cert" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12550,6 +12629,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->G HRR server with middlebox compat support, not client" \ "$G_NEXT_SRV --priority=NORMAL:-GROUP-ALL:+GROUP-SECP384R1:-VERS-ALL:+VERS-TLS1.3:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12563,6 +12643,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->G HRR both with middlebox compat support" \ "$G_NEXT_SRV --priority=NORMAL:-GROUP-ALL:+GROUP-SECP384R1:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12575,6 +12656,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m HRR both peers do not support middlebox compatibility" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$O_NEXT_CLI -msg -debug -groups P-256:P-384 -no_middlebox" \ @@ -12588,6 +12670,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m HRR server with middlebox compat support, not client" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$O_NEXT_CLI -msg -debug -groups P-256:P-384 -no_middlebox" \ @@ -12600,6 +12683,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m HRR both with middlebox compat support" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$O_NEXT_CLI -msg -debug -groups P-256:P-384" \ @@ -12615,6 +12699,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m HRR both peers do not support middlebox compatibility" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$G_NEXT_CLI localhost --priority=NORMAL:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12630,6 +12715,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m HRR server with middlebox compat support, not client" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12646,6 +12732,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m HRR both with middlebox compat support" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12659,6 +12746,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, m->O" \ "$O_NEXT_SRV_NO_CERT -cert data_files/server2-sha256.crt -key data_files/server2.key -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache @@ -12675,6 +12763,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, m->G" \ "$G_NEXT_SRV_NO_CERT --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key -d 4 @@ -12691,6 +12780,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, m->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12710,6 +12800,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, O->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12728,6 +12819,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, G->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12747,6 +12839,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable signature algorithm, G->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12763,6 +12856,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable signature algorithm, O->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12779,6 +12873,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable signature algorithm, m->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12794,6 +12889,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable certificate, G->m" \ "$P_SRV debug_level=4 force_version=tls13 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key @@ -12808,6 +12904,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable certificate, O->m" \ "$P_SRV debug_level=4 force_version=tls13 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key @@ -12822,6 +12919,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable certificate, m->m" \ "$P_SRV debug_level=4 force_version=tls13 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key @@ -12836,6 +12934,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check client no signature algorithm, m->O" \ "$O_NEXT_SRV_NO_CERT -cert data_files/server2-sha256.crt -key data_files/server2.key -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache @@ -12850,6 +12949,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check client no signature algorithm, m->G" \ "$G_NEXT_SRV_NO_CERT --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key -d 4 @@ -12864,6 +12964,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check client no signature algorithm, m->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12879,6 +12980,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->O" \ "$O_NEXT_SRV -msg -tls1_3 -no_resume_ephemeral -no_cache --num_tickets 4" \ "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ @@ -12894,6 +12996,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->G" \ "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+PSK --disable-client-cert" \ "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ @@ -12911,6 +13014,7 @@ requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED # https://github.com/openssl/openssl/issues/10714 # Until now, OpenSSL client does not support reconnect. skip_next_test @@ -12928,6 +13032,7 @@ requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, G->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4" \ "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r" \ @@ -12946,6 +13051,7 @@ requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ @@ -12998,6 +13104,7 @@ requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: servername check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -13020,6 +13127,7 @@ requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index c130e53634..a35762d7fa 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -261,7 +261,7 @@ depends_on:MBEDTLS_SSL_PROTO_TLS1_2 handshake_version:0:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2 Handshake, tls1_3 -depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED +depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED handshake_version:0:MBEDTLS_SSL_VERSION_TLS1_3:MBEDTLS_SSL_VERSION_TLS1_3:MBEDTLS_SSL_VERSION_TLS1_3:MBEDTLS_SSL_VERSION_TLS1_3:MBEDTLS_SSL_VERSION_TLS1_3 Handshake, ECDHE-RSA-WITH-AES-256-GCM-SHA384 From 41a443a68de83c6934128abf23c417fea15e1ece Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 16:38:25 +0200 Subject: [PATCH 0836/1028] tls13: Use MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK.*ENABLED Use MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED instead of MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED to guard code specific to one of the TLS 1.3 key exchange mode with PSK. Signed-off-by: Ronald Cron --- library/ssl_client.c | 10 ++++------ library/ssl_misc.h | 12 +++++++----- library/ssl_tls.c | 4 ++-- library/ssl_tls13_client.c | 13 ++++++------- library/ssl_tls13_keys.c | 8 ++++---- library/ssl_tls13_keys.h | 4 ++-- library/ssl_tls13_server.c | 34 +++++++++++++++++----------------- tests/ssl-opt.sh | 7 +++++++ 8 files changed, 49 insertions(+), 43 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 90ec252d42..543c82162a 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -637,8 +637,7 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* The "pre_shared_key" extension (RFC 8446 Section 4.2.11) * MUST be the last extension in the ClientHello. */ @@ -650,7 +649,7 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, return( ret ); p += output_len; } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ /* Write the length of the list of extensions. */ extensions_len = p - p_extensions_len - 2; @@ -957,8 +956,7 @@ int mbedtls_ssl_write_client_hello( mbedtls_ssl_context *ssl ) mbedtls_ssl_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, msg_len ); ssl->handshake->update_checksum( ssl, buf, msg_len - binders_len ); -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) if( binders_len > 0 ) { MBEDTLS_SSL_PROC_CHK( @@ -967,7 +965,7 @@ int mbedtls_ssl_write_client_hello( mbedtls_ssl_context *ssl ) ssl->handshake->update_checksum( ssl, buf + msg_len - binders_len, binders_len ); } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_finish_handshake_msg( ssl, buf_len, diff --git a/library/ssl_misc.h b/library/ssl_misc.h index a58e2a1249..5a23676f34 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -619,7 +619,7 @@ struct mbedtls_ssl_handshake_params #if defined(MBEDTLS_SSL_SRV_C) /** selected_group of key_share extension in HelloRetryRequest message. */ uint16_t hrr_selected_group; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) uint8_t tls13_kex_modes; /*!< Key exchange modes supported by the client */ #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) @@ -1786,7 +1786,8 @@ static inline int mbedtls_ssl_conf_tls13_some_psk_enabled( mbedtls_ssl_context * MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL ) ); } -#if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_SRV_C) && \ + defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /** * Given a list of key exchange modes, check if at least one of them is * supported. @@ -1833,7 +1834,8 @@ static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) return( ! mbedtls_ssl_tls13_check_kex_modes( ssl, MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL ) ); } -#endif /* MBEDTLS_SSL_SRV_C && MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_SRV_C && + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ /* * Helper functions to check the selected key exchange mode. @@ -2451,7 +2453,7 @@ int mbedtls_ssl_check_dtls_clihlo_cookie( unsigned char *obuf, size_t buf_len, size_t *olen ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /** * \brief Given an SSL context and its associated configuration, write the TLS * 1.3 specific Pre-Shared key extension. @@ -2484,7 +2486,7 @@ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( mbedtls_ssl_context *ssl, unsigned char *buf, unsigned char *end ); -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SESSION_TICKETS) && \ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 1e7d9a33b2..7486f1f869 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -3665,7 +3665,7 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) mbedtls_free( handshake->psk ); } #endif /* MBEDTLS_USE_PSA_CRYPTO */ -#endif +#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ #if defined(MBEDTLS_X509_CRT_PARSE_C) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) @@ -4895,7 +4895,7 @@ void mbedtls_ssl_config_free( mbedtls_ssl_config *conf ) conf->psk_identity = NULL; conf->psk_identity_len = 0; } -#endif +#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ #if defined(MBEDTLS_X509_CRT_PARSE_C) ssl_key_cert_free( conf->key_cert ); diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index c44399e3a7..acac23174f 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -602,7 +602,7 @@ static int ssl_tls13_write_cookie_ext( mbedtls_ssl_context *ssl, return( 0 ); } -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* * ssl_tls13_write_psk_key_exchange_modes_ext() structure: * @@ -1112,8 +1112,7 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, return( 0 ); } - -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, unsigned char *buf, @@ -1151,7 +1150,7 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, p += ext_len; } -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* For PSK-based key exchange we need the pre_shared_key extension * and the psk_key_exchange_modes extension. * @@ -1165,7 +1164,7 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, if( ret != 0 ) return( ret ); p += ext_len; -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif *out_len = p - buf; @@ -1681,7 +1680,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, goto cleanup; break; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found pre_shared_key extension" ) ); if( is_hrr ) @@ -1698,7 +1697,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, return( ret ); } break; -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif case MBEDTLS_TLS_EXT_KEY_SHARE: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found key_shares extension" ) ); diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 2209dd145c..5954b62efb 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1067,7 +1067,7 @@ int mbedtls_ssl_tls13_key_schedule_stage_early( mbedtls_ssl_context *ssl ) } hash_alg = mbedtls_hash_info_psa_from_md( handshake->ciphersuite_info->mac ); -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) if( mbedtls_ssl_tls13_key_exchange_mode_with_psk( ssl ) ) { ret = mbedtls_ssl_tls13_export_handshake_psk( ssl, &psk, &psk_len ); @@ -1083,7 +1083,7 @@ int mbedtls_ssl_tls13_key_schedule_stage_early( mbedtls_ssl_context *ssl ) ret = mbedtls_ssl_tls13_evolve_secret( hash_alg, NULL, psk, psk_len, handshake->tls13_master_secrets.early ); #if defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) + defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) mbedtls_free( (void*)psk ); #endif if( ret != 0 ) @@ -1614,7 +1614,7 @@ cleanup: return( ret ); } -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) int mbedtls_ssl_tls13_export_handshake_psk( mbedtls_ssl_context *ssl, unsigned char **psk, size_t *psk_len ) @@ -1655,7 +1655,7 @@ int mbedtls_ssl_tls13_export_handshake_psk( mbedtls_ssl_context *ssl, return( 0 ); #endif /* !MBEDTLS_USE_PSA_CRYPTO */ } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls13_keys.h b/library/ssl_tls13_keys.h index f3bdf373bf..966b5c5e4b 100644 --- a/library/ssl_tls13_keys.h +++ b/library/ssl_tls13_keys.h @@ -691,7 +691,7 @@ int mbedtls_ssl_tls13_compute_handshake_transform( mbedtls_ssl_context *ssl ); MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_compute_application_transform( mbedtls_ssl_context *ssl ); -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /** * \brief Export TLS 1.3 PSK from handshake context * @@ -707,7 +707,7 @@ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_export_handshake_psk( mbedtls_ssl_context *ssl, unsigned char **psk, size_t *psk_len ); -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index e5cd416e52..2b33a00e12 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -59,7 +59,7 @@ static const mbedtls_ssl_ciphersuite_t *ssl_tls13_validate_peer_ciphersuite( return( ciphersuite_info ); } -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* From RFC 8446: * * enum { psk_ke(0), psk_dhe_ke(1), (255) } PskKeyExchangeMode; @@ -701,7 +701,7 @@ static int ssl_tls13_write_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, return( 0 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ /* From RFC 8446: * struct { @@ -993,7 +993,7 @@ static int ssl_tls13_client_hello_has_exts_for_ephemeral_key_exchange( MBEDTLS_SSL_EXT_SIG_ALG ) ); } -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_client_hello_has_exts_for_psk_key_exchange( mbedtls_ssl_context *ssl ) @@ -1015,7 +1015,7 @@ static int ssl_tls13_client_hello_has_exts_for_psk_ephemeral_key_exchange( MBEDTLS_SSL_EXT_PRE_SHARED_KEY | MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ) ); } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_check_ephemeral_key_exchange( mbedtls_ssl_context *ssl ) @@ -1027,7 +1027,7 @@ static int ssl_tls13_check_ephemeral_key_exchange( mbedtls_ssl_context *ssl ) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_check_psk_key_exchange( mbedtls_ssl_context *ssl ) { -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) return( mbedtls_ssl_conf_tls13_psk_enabled( ssl ) && mbedtls_ssl_tls13_psk_enabled( ssl ) && ssl_tls13_client_hello_has_exts_for_psk_key_exchange( ssl ) ); @@ -1040,7 +1040,7 @@ static int ssl_tls13_check_psk_key_exchange( mbedtls_ssl_context *ssl ) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_check_psk_ephemeral_key_exchange( mbedtls_ssl_context *ssl ) { -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) return( mbedtls_ssl_conf_tls13_psk_ephemeral_enabled( ssl ) && mbedtls_ssl_tls13_psk_ephemeral_enabled( ssl ) && ssl_tls13_client_hello_has_exts_for_psk_ephemeral_key_exchange( ssl ) ); @@ -1289,11 +1289,11 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, const unsigned char *extensions_end; int hrr_required = 0; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) const unsigned char *cipher_suites; const unsigned char *pre_shared_key_ext = NULL; const unsigned char *pre_shared_key_ext_end = NULL; -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif ssl->handshake->extensions_present = MBEDTLS_SSL_EXT_NONE; @@ -1400,7 +1400,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, * with CipherSuite defined as: * uint8 CipherSuite[2]; */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) cipher_suites = p; #endif cipher_suites_end = p + cipher_suites_len; @@ -1581,7 +1581,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS; break; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found psk key exchange modes extension" ) ); @@ -1596,7 +1596,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES; break; -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found pre_shared_key extension" ) ); @@ -1608,14 +1608,14 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); } -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* Delay processing of the PSK identity once we have * found out which algorithms to use. We keep a pointer * to the buffer and the size for later processing. */ pre_shared_key_ext = p; pre_shared_key_ext_end = extension_data_end; -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PRE_SHARED_KEY; break; @@ -1669,7 +1669,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, p - buf ); -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* Update checksum with either * - The entire content of the CH message, if no PSK extension is present * - The content up to but excluding the PSK extension, if present. @@ -1698,7 +1698,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, } } else -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ { ssl->handshake->update_checksum( ssl, buf, p - buf ); } @@ -2154,7 +2154,7 @@ static int ssl_tls13_write_server_hello_body( mbedtls_ssl_context *ssl, p += output_len; } -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) if( !is_hrr && mbedtls_ssl_tls13_key_exchange_mode_with_psk( ssl ) ) { ret = ssl_tls13_write_server_pre_shared_key_ext( ssl, p, end, &output_len ); @@ -2166,7 +2166,7 @@ static int ssl_tls13_write_server_hello_body( mbedtls_ssl_context *ssl, } p += output_len; } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif MBEDTLS_PUT_UINT16_BE( p - p_extensions_len - 2, p_extensions_len, 0 ); diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 42faac01ca..7072494579 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12981,6 +12981,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->O" \ "$O_NEXT_SRV -msg -tls1_3 -no_resume_ephemeral -no_cache --num_tickets 4" \ "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ @@ -12997,6 +12998,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->G" \ "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+PSK --disable-client-cert" \ "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ @@ -13015,6 +13017,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED # https://github.com/openssl/openssl/issues/10714 # Until now, OpenSSL client does not support reconnect. skip_next_test @@ -13033,6 +13036,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, G->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4" \ "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r" \ @@ -13052,6 +13056,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ @@ -13105,6 +13110,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: servername check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -13128,6 +13134,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ From e68ab4f55eb3ad3badbd44717f01223b161aff32 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 5 Oct 2022 12:46:29 +0200 Subject: [PATCH 0837/1028] Introduce and use MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED Introduce and use MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED to guard TLS code (both TLS 1.2 and 1.3) specific to handshakes involving certificates. Signed-off-by: Ronald Cron --- include/mbedtls/ssl.h | 8 ++-- include/mbedtls/ssl_ciphersuites.h | 5 ++ library/ssl_client.c | 4 +- library/ssl_misc.h | 22 ++++----- library/ssl_tls.c | 40 ++++++++-------- programs/ssl/ssl_client2.c | 70 ++++++++++++++-------------- programs/ssl/ssl_server2.c | 48 +++++++++---------- tests/suites/test_suite_ssl.function | 64 ++++++++++++------------- 8 files changed, 133 insertions(+), 128 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 6ae85d99cd..8b2a8b64cc 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1444,13 +1444,13 @@ struct mbedtls_ssl_config void *MBEDTLS_PRIVATE(p_async_config_data); /*!< Configuration data set by mbedtls_ssl_conf_async_private_cb(). */ #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if !defined(MBEDTLS_DEPRECATED_REMOVED) const int *MBEDTLS_PRIVATE(sig_hashes); /*!< allowed signature hashes */ #endif const uint16_t *MBEDTLS_PRIVATE(sig_algs); /*!< allowed signature algorithms */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) const mbedtls_ecp_group_id *MBEDTLS_PRIVATE(curve_list); /*!< allowed curves */ @@ -3598,7 +3598,7 @@ void MBEDTLS_DEPRECATED mbedtls_ssl_conf_curves( mbedtls_ssl_config *conf, void mbedtls_ssl_conf_groups( mbedtls_ssl_config *conf, const uint16_t *groups ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if !defined(MBEDTLS_DEPRECATED_REMOVED) && defined(MBEDTLS_SSL_PROTO_TLS1_2) /** * \brief Set the allowed hashes for signatures during the handshake. @@ -3644,7 +3644,7 @@ void MBEDTLS_DEPRECATED mbedtls_ssl_conf_sig_hashes( mbedtls_ssl_config *conf, */ void mbedtls_ssl_conf_sig_algs( mbedtls_ssl_config *conf, const uint16_t* sig_algs ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_X509_CRT_PARSE_C) /** diff --git a/include/mbedtls/ssl_ciphersuites.h b/include/mbedtls/ssl_ciphersuites.h index cd6ccbc90a..6682ee8303 100644 --- a/include/mbedtls/ssl_ciphersuites.h +++ b/include/mbedtls/ssl_ciphersuites.h @@ -292,6 +292,11 @@ typedef enum { #define MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED #endif +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) || \ + defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) +#define MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED +#endif + /* Key exchanges allowing client certificate requests */ #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) || \ diff --git a/library/ssl_client.c b/library/ssl_client.c index 543c82162a..01f1b68eb5 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -608,7 +608,7 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C || MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( #if defined(MBEDTLS_SSL_PROTO_TLS1_3) ( propose_tls13 && mbedtls_ssl_conf_tls13_ephemeral_enabled( ssl ) ) || @@ -623,7 +623,7 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, return( ret ); p += output_len; } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) if( propose_tls12 ) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 5a23676f34..7917a2333c 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -245,7 +245,7 @@ #define MBEDTLS_RECEIVED_SIG_ALGS_SIZE 20 -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #define MBEDTLS_TLS_SIG_NONE MBEDTLS_TLS1_3_SIG_NONE @@ -255,7 +255,7 @@ #define MBEDTLS_SSL_TLS12_HASH_ALG_FROM_SIG_AND_HASH_ALG(alg) (alg >> 8) #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ /* * Check that we obey the standard's message size bounds @@ -629,7 +629,7 @@ struct mbedtls_ssl_handshake_params #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) uint16_t received_sig_algs[MBEDTLS_RECEIVED_SIG_ALGS_SIZE]; #endif @@ -862,7 +862,7 @@ struct mbedtls_ssl_handshake_params represents an extension and defined as \c MBEDTLS_SSL_EXT_XXX */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) unsigned char certificate_request_context_len; unsigned char *certificate_request_context; #endif @@ -1918,7 +1918,7 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * Parse TLS Signature Algorithm extension */ @@ -1926,7 +1926,7 @@ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_parse_sig_alg_ext( mbedtls_ssl_context *ssl, const unsigned char *buf, const unsigned char *end ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ /* Get handshake transcript */ MBEDTLS_CHECK_RETURN_CRITICAL @@ -2046,7 +2046,7 @@ static inline int mbedtls_ssl_named_group_is_supported( uint16_t named_group ) static inline const void *mbedtls_ssl_get_sig_algs( const mbedtls_ssl_context *ssl ) { -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if !defined(MBEDTLS_DEPRECATED_REMOVED) if( ssl->handshake != NULL && @@ -2058,11 +2058,11 @@ static inline const void *mbedtls_ssl_get_sig_algs( #endif return( ssl->conf->sig_algs ); -#else /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#else /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ ((void) ssl); return( NULL ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ } #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) @@ -2153,7 +2153,7 @@ int mbedtls_ssl_tls13_check_sig_alg_cert_key_match( uint16_t sig_alg, mbedtls_pk_context *key ); #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) static inline int mbedtls_ssl_sig_alg_is_offered( const mbedtls_ssl_context *ssl, uint16_t proposed_sig_alg ) { @@ -2292,7 +2292,7 @@ static inline int mbedtls_ssl_sig_alg_is_supported( ((void) sig_alg); return( 0 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) /* Corresponding PSA algorithm for MBEDTLS_CIPHER_NULL. diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 7486f1f869..0ea40085fe 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -843,7 +843,7 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl ) #endif /* MBEDTLS_DEPRECATED_REMOVED */ #endif /* MBEDTLS_ECP_C */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if !defined(MBEDTLS_DEPRECATED_REMOVED) #if defined(MBEDTLS_SSL_PROTO_TLS1_2) /* Heap allocate and translate sig_hashes from internal hash identifiers to @@ -909,7 +909,7 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl ) ssl->handshake->sig_algs_heap_allocated = 0; } #endif /* !MBEDTLS_DEPRECATED_REMOVED */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ return( 0 ); } @@ -2395,7 +2395,7 @@ void mbedtls_ssl_conf_dhm_min_bitlen( mbedtls_ssl_config *conf, } #endif /* MBEDTLS_DHM_C && MBEDTLS_SSL_CLI_C */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if !defined(MBEDTLS_DEPRECATED_REMOVED) && defined(MBEDTLS_SSL_PROTO_TLS1_2) /* * Set allowed/preferred hashes for handshake signatures @@ -2416,7 +2416,7 @@ void mbedtls_ssl_conf_sig_algs( mbedtls_ssl_config *conf, #endif /* !MBEDTLS_DEPRECATED_REMOVED */ conf->sig_algs = sig_algs; } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) #if !defined(MBEDTLS_DEPRECATED_REMOVED) @@ -3587,7 +3587,7 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) #endif /* MBEDTLS_DEPRECATED_REMOVED */ #endif /* MBEDTLS_ECP_C */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if !defined(MBEDTLS_DEPRECATED_REMOVED) if ( ssl->handshake->sig_algs_heap_allocated ) mbedtls_free( (void*) handshake->sig_algs ); @@ -3599,7 +3599,7 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) mbedtls_free( (void*) handshake->certificate_request_context ); } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) if( ssl->conf->f_async_cancel != NULL && handshake->async_in_progress != 0 ) @@ -4465,7 +4465,7 @@ static int ssl_preset_suiteb_ciphersuites[] = { 0 }; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* NOTICE: * For ssl_preset_*_sig_algs and ssl_tls12_preset_*_sig_algs, the following @@ -4610,7 +4610,7 @@ static uint16_t ssl_tls12_preset_suiteb_sig_algs[] = { }; #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ static uint16_t ssl_preset_suiteb_groups[] = { #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) @@ -4622,7 +4622,7 @@ static uint16_t ssl_preset_suiteb_groups[] = { MBEDTLS_SSL_IANA_TLS_GROUP_NONE }; -#if defined(MBEDTLS_DEBUG_C) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_DEBUG_C) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* Function for checking `ssl_preset_*_sig_algs` and `ssl_tls12_preset_*_sig_algs` * to make sure there are no duplicated signature algorithm entries. */ MBEDTLS_CHECK_RETURN_CRITICAL @@ -4646,7 +4646,7 @@ static int ssl_check_no_sig_alg_duplication( uint16_t * sig_algs ) return( ret ); } -#endif /* MBEDTLS_DEBUG_C && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_DEBUG_C && MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ /* * Load default in mbedtls_ssl_config @@ -4658,7 +4658,7 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; #endif -#if defined(MBEDTLS_DEBUG_C) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_DEBUG_C) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( ssl_check_no_sig_alg_duplication( ssl_preset_suiteb_sig_algs ) ) { mbedtls_printf( "ssl_preset_suiteb_sig_algs has duplicated entries\n" ); @@ -4684,7 +4684,7 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, return( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED ); } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ -#endif /* MBEDTLS_DEBUG_C && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_DEBUG_C && MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ /* Use the functions here so that they are covered in tests, * but otherwise access member directly for efficiency */ @@ -4815,14 +4815,14 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, conf->cert_profile = &mbedtls_x509_crt_profile_suiteb; #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if defined(MBEDTLS_SSL_PROTO_TLS1_2) if( mbedtls_ssl_conf_is_tls12_only( conf ) ) conf->sig_algs = ssl_tls12_preset_suiteb_sig_algs; else #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ conf->sig_algs = ssl_preset_suiteb_sig_algs; -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) conf->curve_list = NULL; @@ -4841,14 +4841,14 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, conf->cert_profile = &mbedtls_x509_crt_profile_default; #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if defined(MBEDTLS_SSL_PROTO_TLS1_2) if( mbedtls_ssl_conf_is_tls12_only( conf ) ) conf->sig_algs = ssl_tls12_preset_default_sig_algs; else #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ conf->sig_algs = ssl_preset_default_sig_algs; -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) conf->curve_list = NULL; @@ -5274,7 +5274,7 @@ int mbedtls_ssl_get_handshake_transcript( mbedtls_ssl_context *ssl, #endif /* !MBEDTLS_USE_PSA_CRYPTO */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* mbedtls_ssl_parse_sig_alg_ext() * * The `extension_data` field of signature algorithm contains a `SignatureSchemeList` @@ -5382,7 +5382,7 @@ int mbedtls_ssl_parse_sig_alg_ext( mbedtls_ssl_context *ssl, return( 0 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) @@ -8588,7 +8588,7 @@ int mbedtls_ssl_validate_ciphersuite( return( 0 ); } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * Function for writing a signature algorithm extension. * @@ -8691,7 +8691,7 @@ int mbedtls_ssl_write_sig_alg_ext( mbedtls_ssl_context *ssl, unsigned char *buf, #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ return( 0 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) /* diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 1637a73592..6b797117fa 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -120,7 +120,7 @@ int main( void ) #define GET_REQUEST "GET %s HTTP/1.0\r\nExtra-header: " #define GET_REQUEST_END "\r\n\r\n" -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #define USAGE_CONTEXT_CRT_CB \ " context_crt_cb=%%d This determines whether the CRT verification callback is bound\n" \ " to the SSL configuration of the SSL context.\n" \ @@ -129,8 +129,8 @@ int main( void ) " - 1: Use CRT callback bound to SSL context\n" #else #define USAGE_CONTEXT_CRT_CB "" -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if defined(MBEDTLS_FS_IO) #define USAGE_IO \ " ca_file=%%s The single file containing the top-level CA(s) you fully trust\n" \ @@ -148,10 +148,10 @@ int main( void ) #define USAGE_IO \ " No file operations available (MBEDTLS_FS_IO not defined)\n" #endif /* MBEDTLS_FS_IO */ -#else /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#else /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #define USAGE_IO "" -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ -#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #define USAGE_KEY_OPAQUE \ " key_opaque=%%d Handle your private key as if it were opaque\n" \ " default: 0 (disabled)\n" @@ -269,7 +269,7 @@ int main( void ) #define USAGE_CURVES "" #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #define USAGE_SIG_ALGS \ " sig_algs=a,b,c,d default: \"default\" (library default)\n" \ " example: \"ecdsa_secp256r1_sha256,ecdsa_secp384r1_sha384\"\n" @@ -540,7 +540,7 @@ struct options #include "ssl_test_common_source.c" -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) static unsigned char peer_crt_info[1024]; /* @@ -578,7 +578,7 @@ static int my_verify( void *data, mbedtls_x509_crt *crt, return( 0 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) int report_cid_usage( mbedtls_ssl_context *ssl, @@ -718,7 +718,7 @@ int main( int argc, char *argv[] ) mbedtls_net_context server_fd; io_ctx_t io_ctx; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) uint16_t sig_alg_list[SIG_ALG_LIST_SIZE]; #endif @@ -775,7 +775,7 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_TIMING_C) mbedtls_timing_delay_context timer; #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) uint32_t flags; mbedtls_x509_crt cacert; mbedtls_x509_crt clicert; @@ -784,7 +784,7 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_USE_PSA_CRYPTO) mbedtls_svc_key_id_t key_slot = MBEDTLS_SVC_KEY_ID_INIT; /* invalid key slot */ #endif -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ char *p, *q; const int *list; #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) @@ -825,7 +825,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_config_init( &conf ); memset( &saved_session, 0, sizeof( mbedtls_ssl_session ) ); rng_init( &rng ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) mbedtls_x509_crt_init( &cacert ); mbedtls_x509_crt_init( &clicert ); mbedtls_pk_init( &pkey ); @@ -1025,7 +1025,7 @@ int main( int argc, char *argv[] ) opt.key_file = q; else if( strcmp( p, "key_pwd" ) == 0 ) opt.key_pwd = q; -#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) else if( strcmp( p, "key_opaque" ) == 0 ) opt.key_opaque = atoi( q ); #endif @@ -1163,7 +1163,7 @@ int main( int argc, char *argv[] ) } else if( strcmp( p, "curves" ) == 0 ) opt.curves = q; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) else if( strcmp( p, "sig_algs" ) == 0 ) opt.sig_algs = q; #endif @@ -1569,7 +1569,7 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_ECP_C */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) { p = (char *) opt.sig_algs; @@ -1668,7 +1668,7 @@ int main( int argc, char *argv[] ) sig_alg_list[i] = MBEDTLS_TLS1_3_SIG_NONE; } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_ALPN) if( opt.alpn_string != NULL ) @@ -1701,7 +1701,7 @@ int main( int argc, char *argv[] ) goto exit; mbedtls_printf( " ok\n" ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * 1.1. Load the trusted CA */ @@ -1823,7 +1823,7 @@ int main( int argc, char *argv[] ) mbedtls_printf( " ok (key type: %s)\n", strlen( opt.key_file ) || strlen( opt.key_opaque_alg1 ) ? mbedtls_pk_get_name( &pkey ) : "none" ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ /* * 2. Setup stuff @@ -1841,7 +1841,7 @@ int main( int argc, char *argv[] ) goto exit; } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* The default algorithms profile disables SHA-1, but our tests still rely on it heavily. */ if( opt.allow_sha1 > 0 ) @@ -1854,7 +1854,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_conf_verify( &conf, my_verify, NULL ); memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) if( opt.cid_enabled == 1 || opt.cid_enabled_renego == 1 ) @@ -1991,7 +1991,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_conf_renegotiation( &conf, opt.renegotiation ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( strcmp( opt.ca_path, "none" ) != 0 && strcmp( opt.ca_file, "none" ) != 0 ) { @@ -2012,7 +2012,7 @@ int main( int argc, char *argv[] ) goto exit; } } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) if( opt.curves != NULL && @@ -2022,7 +2022,7 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); #endif @@ -2099,7 +2099,7 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_SSL_DTLS_SRTP */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( ( ret = mbedtls_ssl_set_hostname( &ssl, opt.server_name ) ) != 0 ) { mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", @@ -2122,10 +2122,10 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( opt.context_crt_cb == 1 ) mbedtls_ssl_set_verify( &ssl, my_verify, NULL ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ io_ctx.ssl = &ssl; io_ctx.net = &server_fd; @@ -2446,7 +2446,7 @@ int main( int argc, char *argv[] ) } } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * 5. Verify the server certificate */ @@ -2469,7 +2469,7 @@ int main( int argc, char *argv[] ) mbedtls_printf( " . Peer certificate information ...\n" ); mbedtls_printf( "%s\n", peer_crt_info ); #endif /* !MBEDTLS_X509_REMOVE_INFO */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) ret = report_cid_usage( &ssl, "initial handshake" ); @@ -2844,9 +2844,9 @@ send_request: mbedtls_printf( " . Restarting connection from same port..." ); fflush( stdout ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ if( ( ret = mbedtls_ssl_session_reset( &ssl ) ) != 0 ) { @@ -3080,9 +3080,9 @@ reconnect: mbedtls_printf( " . Reconnecting with saved session..." ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ if( ( ret = mbedtls_ssl_session_reset( &ssl ) ) != 0 ) { @@ -3186,14 +3186,14 @@ exit: mbedtls_free( context_buf ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) mbedtls_x509_crt_free( &clicert ); mbedtls_x509_crt_free( &cacert ); mbedtls_pk_free( &pkey ); #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_destroy_key( key_slot ); #endif -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) && \ defined(MBEDTLS_USE_PSA_CRYPTO) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index f94f1b85aa..c8594ffbf3 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -175,7 +175,7 @@ int main( void ) */ #define DFL_IO_BUF_LEN 200 -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if defined(MBEDTLS_FS_IO) #define USAGE_IO \ " ca_file=%%s The single file containing the top-level CA(s) you fully trust\n" \ @@ -206,8 +206,8 @@ int main( void ) #endif /* MBEDTLS_FS_IO */ #else #define USAGE_IO "" -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ -#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #define USAGE_KEY_OPAQUE \ " key_opaque=%%d Handle your private keys as if they were opaque\n" \ " default: 0 (disabled)\n" @@ -435,7 +435,7 @@ int main( void ) #define USAGE_CURVES "" #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #define USAGE_SIG_ALGS \ " sig_algs=a,b,c,d default: \"default\" (library default)\n" \ " example: \"ecdsa_secp256r1_sha256,ecdsa_secp384r1_sha384\"\n" @@ -1113,7 +1113,7 @@ typedef struct unsigned remaining_delay; } ssl_async_operation_context_t; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* Note that ssl_async_operation_type_t and the array below need to be kept in sync! * `ssl_async_operation_names[op]` is the name of op for each value `op` @@ -1276,7 +1276,7 @@ static void ssl_async_cancel( mbedtls_ssl_context *ssl ) mbedtls_printf( "Async cancel callback.\n" ); mbedtls_free( ctx ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ #if defined(MBEDTLS_USE_PSA_CRYPTO) @@ -1455,7 +1455,7 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_SSL_RENEGOTIATION) unsigned char renego_period[8] = { 0 }; #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) uint32_t flags; mbedtls_x509_crt cacert; mbedtls_x509_crt srvcert; @@ -1468,7 +1468,7 @@ int main( int argc, char *argv[] ) mbedtls_svc_key_id_t key_slot2 = MBEDTLS_SVC_KEY_ID_INIT; /* invalid key slot */ #endif int key_cert_init = 0, key_cert_init2 = 0; -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) ssl_async_key_context_t ssl_async_keys; #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ @@ -1505,7 +1505,7 @@ int main( int argc, char *argv[] ) size_t context_buf_len = 0; #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) uint16_t sig_alg_list[SIG_ALG_LIST_SIZE]; #endif @@ -1552,7 +1552,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_init( &ssl ); mbedtls_ssl_config_init( &conf ); rng_init( &rng ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) mbedtls_x509_crt_init( &cacert ); mbedtls_x509_crt_init( &srvcert ); mbedtls_pk_init( &pkey ); @@ -1781,7 +1781,7 @@ int main( int argc, char *argv[] ) opt.key_file = q; else if( strcmp( p, "key_pwd" ) == 0 ) opt.key_pwd = q; -#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) else if( strcmp( p, "key_opaque" ) == 0 ) opt.key_opaque = atoi( q ); #endif @@ -1865,7 +1865,7 @@ int main( int argc, char *argv[] ) } else if( strcmp( p, "curves" ) == 0 ) opt.curves = q; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) else if( strcmp( p, "sig_algs" ) == 0 ) opt.sig_algs = q; #endif @@ -2451,7 +2451,7 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_ECP_C */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) { p = (char *) opt.sig_algs; @@ -2583,7 +2583,7 @@ int main( int argc, char *argv[] ) goto exit; mbedtls_printf( " ok\n" ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * 1.1. Load the trusted CA */ @@ -2791,7 +2791,7 @@ int main( int argc, char *argv[] ) mbedtls_printf( " ok (key types: %s, %s)\n", key_cert_init ? mbedtls_pk_get_name( &pkey ) : "none", key_cert_init2 ? mbedtls_pk_get_name( &pkey2 ) : "none" ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_FS_IO) if( opt.dhm_file != NULL ) @@ -2841,7 +2841,7 @@ int main( int argc, char *argv[] ) goto exit; } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* The default algorithms profile disables SHA-1, but our tests still rely on it heavily. Hence we allow it here. A real-world server should use the default profile unless there is a good reason not to. */ @@ -2851,7 +2851,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_conf_cert_profile( &conf, &crt_profile_for_test ); mbedtls_ssl_conf_sig_algs( &conf, ssl_sig_algs_for_test ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ if( opt.auth_mode != DFL_AUTH_MODE ) mbedtls_ssl_conf_authmode( &conf, opt.auth_mode ); @@ -3102,7 +3102,7 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( strcmp( opt.ca_path, "none" ) != 0 && strcmp( opt.ca_file, "none" ) != 0 ) { @@ -3191,7 +3191,7 @@ int main( int argc, char *argv[] ) &ssl_async_keys ); } #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(SNI_OPTION) if( opt.sni != NULL ) @@ -3228,7 +3228,7 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); #endif @@ -3542,7 +3542,7 @@ handshake: { mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", (unsigned int) -ret ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED ) { char vrfy_buf[512]; @@ -3597,7 +3597,7 @@ handshake: } #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * 5. Verify the client certificate */ @@ -3626,7 +3626,7 @@ handshake: mbedtls_printf( "%s\n", crt_buf ); } #endif /* MBEDTLS_X509_REMOVE_INFO */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ if( opt.eap_tls != 0 ) { @@ -4320,7 +4320,7 @@ exit: mbedtls_printf( "Failed to list of opaque PSKs - error was %d\n", ret ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) mbedtls_x509_crt_free( &cacert ); mbedtls_x509_crt_free( &srvcert ); mbedtls_pk_free( &pkey ); diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index cc7497818f..9ac642b2fe 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -31,7 +31,7 @@ typedef struct log_pattern size_t counter; } log_pattern; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) static int rng_seed = 0xBEEF; static int rng_get( void *p_rng, unsigned char *output, size_t output_len ) { @@ -103,7 +103,7 @@ typedef struct handshake_test_options void init_handshake_options( handshake_test_options *opts ) { -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) srand( rng_seed ); rng_seed += 0xD0; #endif @@ -790,7 +790,7 @@ int mbedtls_mock_tcp_recv_msg( void *ctx, unsigned char *buf, size_t buf_len ) return msg_len; } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * Structure with endpoint's certificates for SSL communication tests. @@ -1178,7 +1178,7 @@ int mbedtls_move_handshake_to_state( mbedtls_ssl_context *ssl, return ( max_steps >= 0 ) ? ret : -1; } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ /* * Write application data. Increase write counter if necessary. @@ -1750,7 +1750,7 @@ static int ssl_tls12_populate_session( mbedtls_ssl_session *session, memset( session->id, 66, session->id_len ); memset( session->master, 17, sizeof( session->master ) ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) && defined(MBEDTLS_FS_IO) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) && defined(MBEDTLS_FS_IO) if( crt_file != NULL && strlen( crt_file ) != 0 ) { mbedtls_x509_crt tmp_crt; @@ -1801,9 +1801,9 @@ static int ssl_tls12_populate_session( mbedtls_ssl_session *session, mbedtls_x509_crt_free( &tmp_crt ); } -#else /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED && MBEDTLS_FS_IO */ +#else /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED && MBEDTLS_FS_IO */ (void) crt_file; -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED && MBEDTLS_FS_IO */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED && MBEDTLS_FS_IO */ session->verify_result = 0xdeadbeef; #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) @@ -2029,7 +2029,7 @@ int exchange_data( mbedtls_ssl_context *ssl_1, ssl_2, 256, 1 ); } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) static int check_ssl_version( mbedtls_ssl_protocol_version expected_negotiated_version, const mbedtls_ssl_context *ssl ) { @@ -2066,10 +2066,10 @@ static int check_ssl_version( mbedtls_ssl_protocol_version expected_negotiated_v exit: return( 0 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) void perform_handshake( handshake_test_options *options ) { /* forced_ciphersuite needs to last until the end of the handshake */ @@ -2467,7 +2467,7 @@ exit: #endif USE_PSA_DONE( ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_TEST_HOOKS) /* @@ -3685,7 +3685,7 @@ void ssl_dtls_replay( data_t * prevs, data_t * new, int ret ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ void ssl_set_hostname_twice( char *hostname0, char *hostname1 ) { mbedtls_ssl_context ssl; @@ -4752,7 +4752,7 @@ void ssl_serialize_session_save_load( int ticket_len, char *crt_file, TEST_ASSERT( memcmp( original.master, restored.master, sizeof( original.master ) ) == 0 ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) TEST_ASSERT( ( original.peer_cert == NULL ) == ( restored.peer_cert == NULL ) ); @@ -4778,7 +4778,7 @@ void ssl_serialize_session_save_load( int ticket_len, char *crt_file, original.peer_cert_digest_len ) == 0 ); } #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ TEST_ASSERT( original.verify_result == restored.verify_result ); #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) @@ -5100,7 +5100,7 @@ void ssl_session_serialize_version_check( int corrupt_major, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void mbedtls_endpoint_sanity( int endpoint_type ) { enum { BUFFSIZE = 1024 }; @@ -5127,7 +5127,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void move_handshake_to_state(int endpoint_type, int state, int need_pass) { enum { BUFFSIZE = 1024 }; @@ -5183,7 +5183,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void handshake_version( int dtls, int client_min_version, int client_max_version, int server_min_version, int server_max_version, int expected_negotiated_version ) @@ -5208,7 +5208,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_psk_cipher( char* cipher, int pk_alg, data_t *psk_str, int dtls ) { handshake_test_options options; @@ -5229,7 +5229,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_cipher( char* cipher, int pk_alg, int dtls ) { test_handshake_psk_cipher( cipher, pk_alg, NULL, dtls ); @@ -5239,7 +5239,7 @@ void handshake_cipher( char* cipher, int pk_alg, int dtls ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_ciphersuite_select( char* cipher, int pk_alg, data_t *psk_str, int psa_alg, int psa_alg2, int psa_usage, int expected_handshake_result, @@ -5266,7 +5266,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void app_data( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments, int dtls ) @@ -5294,7 +5294,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void app_data_tls( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments ) @@ -5306,7 +5306,7 @@ void app_data_tls( int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void app_data_dtls( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments ) @@ -5318,7 +5318,7 @@ void app_data_dtls( int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_serialization( ) { handshake_test_options options; @@ -5334,7 +5334,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_fragmentation( int mfl, int expected_srv_hs_fragmentation, int expected_cli_hs_fragmentation) { handshake_test_options options; @@ -5373,7 +5373,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void renegotiation( int legacy_renegotiation ) { handshake_test_options options; @@ -5392,7 +5392,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers( int mfl, int renegotiation, int legacy_renegotiation, int serialize, int dtls, char *cipher ) { @@ -5416,7 +5416,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers_serialize_mfl( int mfl ) { test_resize_buffers( mfl, 0, MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION, 1, 1, @@ -5427,7 +5427,7 @@ void resize_buffers_serialize_mfl( int mfl ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers_renegotiate_mfl( int mfl, int legacy_renegotiation, char *cipher ) { @@ -5828,7 +5828,7 @@ void conf_group() } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_CACHE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_DEBUG_C:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_CACHE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_DEBUG_C:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void force_bad_session_id_len( ) { enum { BUFFSIZE = 1024 }; @@ -6015,7 +6015,7 @@ void cid_sanity( ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECDSA_C */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECDSA_C */ void raw_key_agreement_fail( int bad_server_ecdhe_key ) { enum { BUFFSIZE = 17000 }; @@ -6086,7 +6086,7 @@ exit: USE_PSA_DONE( ); } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ void tls13_server_certificate_msg_invalid_vector_len( ) { int ret = -1; From 73fe8df9221b4627bf995f656772dcf8457c9c33 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 5 Oct 2022 14:31:43 +0200 Subject: [PATCH 0838/1028] Introduce and use MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED Introduce and use MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED to guard TLS code (both 1.2 and 1.3) specific to handshakes involving PSKs. Signed-off-by: Ronald Cron --- include/mbedtls/ssl.h | 10 +++++----- include/mbedtls/ssl_ciphersuites.h | 5 +++++ library/ssl_misc.h | 9 +++++---- library/ssl_tls.c | 12 +++++------ programs/ssl/ssl_client2.c | 24 +++++++++++----------- programs/ssl/ssl_server2.c | 30 ++++++++++++++-------------- tests/suites/test_suite_ssl.function | 8 ++++---- 7 files changed, 52 insertions(+), 46 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 8b2a8b64cc..9677c71635 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1393,7 +1393,7 @@ struct mbedtls_ssl_config void *MBEDTLS_PRIVATE(p_vrfy); /*!< context for X.509 verify calllback */ #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_SSL_SRV_C) /** Callback to retrieve PSK key from identity */ int (*MBEDTLS_PRIVATE(f_psk))(void *, mbedtls_ssl_context *, const unsigned char *, size_t); @@ -1463,7 +1463,7 @@ struct mbedtls_ssl_config mbedtls_mpi MBEDTLS_PRIVATE(dhm_G); /*!< generator for DHM */ #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) mbedtls_svc_key_id_t MBEDTLS_PRIVATE(psk_opaque); /*!< PSA key slot holding opaque PSK. This field @@ -1494,7 +1494,7 @@ struct mbedtls_ssl_config * Its value is non-zero if and only if * \c psk is not \c NULL or \c psk_opaque * is not \c 0. */ -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_SSL_ALPN) const char **MBEDTLS_PRIVATE(alpn_list); /*!< ordered list of protocols */ @@ -3296,7 +3296,7 @@ int mbedtls_ssl_conf_own_cert( mbedtls_ssl_config *conf, mbedtls_pk_context *pk_key ); #endif /* MBEDTLS_X509_CRT_PARSE_C */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) /** * \brief Configure pre-shared keys (PSKs) and their * identities to be used in PSK-based ciphersuites. @@ -3465,7 +3465,7 @@ void mbedtls_ssl_conf_psk_cb( mbedtls_ssl_config *conf, size_t), void *p_psk ); #endif /* MBEDTLS_SSL_SRV_C */ -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_SSL_SRV_C) /** diff --git a/include/mbedtls/ssl_ciphersuites.h b/include/mbedtls/ssl_ciphersuites.h index 6682ee8303..b46116e0df 100644 --- a/include/mbedtls/ssl_ciphersuites.h +++ b/include/mbedtls/ssl_ciphersuites.h @@ -346,6 +346,11 @@ typedef enum { #define MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED #endif +#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) || \ + defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) +#define MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED +#endif + /* Key exchanges using DHE */ #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 7917a2333c..41bb9c514d 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -675,7 +675,7 @@ struct mbedtls_ssl_handshake_params const mbedtls_ecp_curve_info **curves; /*!< Supported elliptic curves */ #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) mbedtls_svc_key_id_t psk_opaque; /*!< Opaque PSK from the callback */ uint8_t psk_opaque_is_internal; @@ -684,7 +684,7 @@ struct mbedtls_ssl_handshake_params size_t psk_len; /*!< Length of PSK from callback */ #endif /* MBEDTLS_USE_PSA_CRYPTO */ uint16_t selected_identity; -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) mbedtls_x509_crt_restart_ctx ecrs_ctx; /*!< restart context */ @@ -1366,12 +1366,13 @@ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_psk_derive_premaster( mbedtls_ssl_context *ssl, mbedtls_key_exchange_type_t key_ex ); #endif /* !MBEDTLS_USE_PSA_CRYPTO */ +#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_SSL_CLI_C) MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_conf_has_static_psk( mbedtls_ssl_config const *conf ); #endif - #if defined(MBEDTLS_USE_PSA_CRYPTO) /** * Get the first defined opaque PSK by order of precedence: @@ -1424,7 +1425,7 @@ static inline int mbedtls_ssl_get_psk( const mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_USE_PSA_CRYPTO */ -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_PK_C) unsigned char mbedtls_ssl_sig_from_pk( mbedtls_pk_context *pk ); diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 0ea40085fe..63a433dbeb 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1599,7 +1599,7 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) int mbedtls_ssl_conf_has_static_psk( mbedtls_ssl_config const *conf ) { if( conf->psk_identity == NULL || @@ -1842,7 +1842,7 @@ void mbedtls_ssl_conf_psk_cb( mbedtls_ssl_config *conf, } #endif /* MBEDTLS_SSL_SRV_C */ -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_USE_PSA_CRYPTO) static mbedtls_ssl_mode_t mbedtls_ssl_get_base_mode( @@ -3645,7 +3645,7 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) mbedtls_free( (void *) handshake->curves ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) if( ! mbedtls_svc_key_id_is_null( ssl->handshake->psk_opaque ) ) { @@ -3665,7 +3665,7 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) mbedtls_free( handshake->psk ); } #endif /* MBEDTLS_USE_PSA_CRYPTO */ -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_X509_CRT_PARSE_C) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) @@ -4873,7 +4873,7 @@ void mbedtls_ssl_config_free( mbedtls_ssl_config *conf ) mbedtls_mpi_free( &conf->dhm_G ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) if( ! mbedtls_svc_key_id_is_null( conf->psk_opaque ) ) { @@ -4895,7 +4895,7 @@ void mbedtls_ssl_config_free( mbedtls_ssl_config *conf ) conf->psk_identity = NULL; conf->psk_identity_len = 0; } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_X509_CRT_PARSE_C) ssl_key_cert_free( conf->key_cert ); diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 6b797117fa..556ecb97c4 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -173,7 +173,7 @@ int main( void ) #define USAGE_CID "" #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #define USAGE_PSK_RAW \ " psk=%%s default: \"\" (disabled)\n" \ " The PSK values are in hex, without 0x.\n" \ @@ -195,7 +195,7 @@ int main( void ) #define USAGE_PSK USAGE_PSK_RAW USAGE_PSK_SLOT #else #define USAGE_PSK "" -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) #define USAGE_CA_CALLBACK \ @@ -724,7 +724,7 @@ int main( int argc, char *argv[] ) unsigned char buf[MAX_REQUEST_SIZE + 1]; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) unsigned char psk[MBEDTLS_PSK_MAX_LEN]; size_t psk_len = 0; #endif @@ -756,7 +756,7 @@ int main( int argc, char *argv[] ) const char *pers = "ssl_client2"; #if defined(MBEDTLS_USE_PSA_CRYPTO) -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) mbedtls_svc_key_id_t slot = MBEDTLS_SVC_KEY_ID_INIT; psa_algorithm_t alg = 0; psa_key_attributes_t key_attributes; @@ -1403,7 +1403,7 @@ int main( int argc, char *argv[] ) mbedtls_debug_set_threshold( opt.debug_level ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) /* * Unhexify the pre-shared key if any is given */ @@ -1416,7 +1416,7 @@ int main( int argc, char *argv[] ) goto exit; } } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_USE_PSA_CRYPTO) if( opt.psk_opaque != 0 ) @@ -1475,7 +1475,7 @@ int main( int argc, char *argv[] ) } #if defined(MBEDTLS_USE_PSA_CRYPTO) -#if defined (MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined (MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) if( opt.psk_opaque != 0 ) { /* Determine KDF algorithm the opaque PSK will be used in. */ @@ -1486,7 +1486,7 @@ int main( int argc, char *argv[] ) #endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256); } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #endif /* MBEDTLS_USE_PSA_CRYPTO */ } @@ -2027,7 +2027,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) if( opt.psk_opaque != 0 ) { @@ -2065,7 +2065,7 @@ int main( int argc, char *argv[] ) goto exit; } } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ if( opt.min_version != DFL_MIN_VERSION ) mbedtls_ssl_conf_min_tls_version( &conf, opt.min_version ); @@ -3195,7 +3195,7 @@ exit: #endif #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) && \ +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) && \ defined(MBEDTLS_USE_PSA_CRYPTO) if( opt.psk_opaque != 0 ) { @@ -3214,7 +3214,7 @@ exit: ret = MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; } } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED && +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index c8594ffbf3..67be9bf8a5 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -241,7 +241,7 @@ int main( void ) #define USAGE_CID "" #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #define USAGE_PSK_RAW \ " psk=%%s default: \"\" (disabled)\n" \ " The PSK values are in hex, without 0x.\n" \ @@ -276,7 +276,7 @@ int main( void ) #define USAGE_PSK USAGE_PSK_RAW USAGE_PSK_SLOT #else #define USAGE_PSK "" -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) #define USAGE_CA_CALLBACK \ " ca_callback=%%d default: 0 (disabled)\n" \ @@ -907,7 +907,7 @@ int cert_callback( mbedtls_ssl_context *ssl ) #endif /* SNI_OPTION */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) typedef struct _psk_entry psk_entry; @@ -1020,7 +1020,7 @@ int psk_callback( void *p_info, mbedtls_ssl_context *ssl, return( -1 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ static mbedtls_net_context listen_fd, client_fd; @@ -1280,7 +1280,7 @@ static void ssl_async_cancel( mbedtls_ssl_context *ssl ) #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ #if defined(MBEDTLS_USE_PSA_CRYPTO) -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) static psa_status_t psa_setup_psk_key_slot( mbedtls_svc_key_id_t *slot, psa_algorithm_t alg, unsigned char *psk, @@ -1303,7 +1303,7 @@ static psa_status_t psa_setup_psk_key_slot( mbedtls_svc_key_id_t *slot, return( PSA_SUCCESS ); } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) @@ -1431,7 +1431,7 @@ int main( int argc, char *argv[] ) int query_config_ret = 0; io_ctx_t io_ctx; unsigned char* buf = 0; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_algorithm_t alg = 0; mbedtls_svc_key_id_t psk_slot = MBEDTLS_SVC_KEY_ID_INIT; @@ -2336,7 +2336,7 @@ int main( int argc, char *argv[] ) } #if defined(MBEDTLS_USE_PSA_CRYPTO) -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) if( opt.psk_opaque != 0 || opt.psk_list_opaque != 0 ) { /* Determine KDF algorithm the opaque PSK will be used in. */ @@ -2347,7 +2347,7 @@ int main( int argc, char *argv[] ) #endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256); } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #endif /* MBEDTLS_USE_PSA_CRYPTO */ } @@ -2374,7 +2374,7 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) /* * Unhexify the pre-shared key and parse the list if any given */ @@ -2393,7 +2393,7 @@ int main( int argc, char *argv[] ) goto exit; } } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_ECP_C) if( opt.curves != NULL ) @@ -3233,7 +3233,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) if( strlen( opt.psk ) != 0 && strlen( opt.psk_identity ) != 0 ) { @@ -4314,7 +4314,7 @@ exit: sni_free( sni_info ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) ret = psk_free( psk_info ); if( ( ret != 0 ) && ( opt.query_config_mode == DFL_QUERY_CONFIG_MODE ) ) mbedtls_printf( "Failed to list of opaque PSKs - error was %d\n", ret ); @@ -4348,7 +4348,7 @@ exit: } #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) && \ +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) && \ defined(MBEDTLS_USE_PSA_CRYPTO) if( opt.psk_opaque != 0 ) { @@ -4365,7 +4365,7 @@ exit: (int) status ); } } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED && +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 9ac642b2fe..7447a1d0ee 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -2076,7 +2076,7 @@ void perform_handshake( handshake_test_options *options ) int forced_ciphersuite[2]; enum { BUFFSIZE = 17000 }; mbedtls_endpoint client, server; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) const char *psk_identity = "foo"; #endif #if defined(MBEDTLS_TIMING_C) @@ -2188,7 +2188,7 @@ void perform_handshake( handshake_test_options *options ) TEST_ASSERT( MBEDTLS_SSL_MAX_FRAG_LEN_NONE == options->mfl ); #endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) if( options->psk_str != NULL && options->psk_str->len > 0 ) { TEST_ASSERT( mbedtls_ssl_conf_psk( &client.conf, options->psk_str->x, @@ -5621,7 +5621,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ void test_multiple_psks() { unsigned char psk0[10] = { 0 }; @@ -5651,7 +5651,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED:MBEDTLS_USE_PSA_CRYPTO */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED:MBEDTLS_USE_PSA_CRYPTO */ void test_multiple_psks_opaque( int mode ) { /* From 59625848e6fb3a6f7623afcca17f6f6102760e19 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 17 Oct 2022 10:36:34 +0200 Subject: [PATCH 0839/1028] ssl-opt.sh: TLS 1.3 kex: Use MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_*ENABLED Signed-off-by: Ronald Cron --- tests/opt-testcases/tls13-kex-modes.sh | 577 ++++++++++++++++--------- 1 file changed, 382 insertions(+), 195 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 6914ccd518..6ef0c3c99d 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -32,9 +32,8 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -# SOME_ECDHE_ENABLED? -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + run_test "TLS 1.3: PSK: No valid ciphersuite. G->m" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-CIPHER-ALL:+AES-256-GCM:+AEAD:+SHA384:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -52,9 +51,8 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -# SOME_ECDHE_ENABLED? -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + run_test "TLS 1.3: PSK: No valid ciphersuite. O->m" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -ciphersuites TLS_AES_256_GCM_SHA384\ @@ -228,7 +226,7 @@ run_test "TLS 1.3 m->m: Session resumption failure, age outside tolerance window requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk, fail, no common kex mode" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -245,7 +243,7 @@ run_test "TLS 1.3: G->m: ephemeral_all/psk, fail, no common kex mode" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -264,7 +262,7 @@ run_test "TLS 1.3: G->m: all/psk, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -282,7 +280,7 @@ run_test "TLS 1.3: G->m: all/psk, fail, key id mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -300,7 +298,7 @@ run_test "TLS 1.3: G->m: all/psk, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -319,7 +317,7 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -337,7 +335,7 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, fail, key id mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -355,8 +353,7 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -375,8 +372,7 @@ run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -394,8 +390,7 @@ run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -413,8 +408,7 @@ run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, fail, key material mism requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/psk_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -433,8 +427,7 @@ run_test "TLS 1.3: G->m: all/psk_ephemeral, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/psk_ephemeral, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -452,8 +445,7 @@ run_test "TLS 1.3: G->m: all/psk_ephemeral, fail, key id mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/psk_ephemeral, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -471,8 +463,7 @@ run_test "TLS 1.3: G->m: all/psk_ephemeral, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_ephemeral, fail, no common kex mode" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -489,8 +480,8 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_ephemeral, fail, no common kex requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -509,8 +500,8 @@ run_test "TLS 1.3: G->m: ephemeral_all/psk_all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_all, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -528,8 +519,8 @@ run_test "TLS 1.3: G->m: ephemeral_all/psk_all, fail, key id mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -547,8 +538,8 @@ run_test "TLS 1.3: G->m: ephemeral_all/psk_all, fail, key material mismatch" requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/psk_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -567,8 +558,8 @@ run_test "TLS 1.3: G->m: all/psk_all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/psk_all, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -586,8 +577,8 @@ run_test "TLS 1.3: G->m: all/psk_all, fail, key id mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/psk_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -605,8 +596,8 @@ run_test "TLS 1.3: G->m: all/psk_all, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -625,8 +616,8 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -644,8 +635,8 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, fail, key id mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -663,8 +654,8 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, fail, key material mismatc requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -683,8 +674,8 @@ run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, good, key id mismatch, dhe." \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -702,8 +693,8 @@ run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, good, key id mismatch, requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -721,8 +712,8 @@ run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, fail, key material mism requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/ephemeral_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -741,8 +732,8 @@ run_test "TLS 1.3: G->m: all/ephemeral_all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/ephemeral_all, good, key id mismatch, dhe." \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -760,8 +751,8 @@ run_test "TLS 1.3: G->m: all/ephemeral_all, good, key id mismatch, dhe." \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/ephemeral_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -779,8 +770,8 @@ run_test "TLS 1.3: G->m: all/ephemeral_all, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/ephemeral_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -799,8 +790,9 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/ephemeral_all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -819,8 +811,9 @@ run_test "TLS 1.3: G->m: ephemeral_all/all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/all, good, key id mismatch, dhe." \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -838,8 +831,9 @@ run_test "TLS 1.3: G->m: ephemeral_all/all, good, key id mismatch, dhe." \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -857,8 +851,9 @@ run_test "TLS 1.3: G->m: ephemeral_all/all, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -877,8 +872,9 @@ run_test "TLS 1.3: G->m: all/all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/all, good, key id mismatch, dhe." \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -896,8 +892,9 @@ run_test "TLS 1.3: G->m: all/all, good, key id mismatch, dhe." \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -915,8 +912,9 @@ run_test "TLS 1.3: G->m: all/all, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -935,8 +933,9 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -954,8 +953,8 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/all, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_or_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -974,8 +973,8 @@ run_test "TLS 1.3: G->m: ephemeral_all/psk_or_ephemeral, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/psk_or_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -994,8 +993,8 @@ run_test "TLS 1.3: G->m: all/psk_or_ephemeral, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/psk_or_ephemeral, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -1013,8 +1012,8 @@ run_test "TLS 1.3: G->m: all/psk_or_ephemeral, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_or_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -1033,8 +1032,8 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_or_ephemeral, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_or_ephemeral, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -1052,8 +1051,7 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_or_ephemeral, fail, key materia requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_ephemeral group(secp256r1) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1 \ @@ -1067,8 +1065,7 @@ run_test "TLS 1.3: G->m: psk_ephemeral group(secp256r1) check, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_ephemeral group(secp384r1) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP384R1 \ @@ -1082,8 +1079,7 @@ run_test "TLS 1.3: G->m: psk_ephemeral group(secp384r1) check, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_ephemeral group(secp521r1) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP521R1 \ @@ -1097,8 +1093,7 @@ run_test "TLS 1.3: G->m: psk_ephemeral group(secp521r1) check, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_ephemeral group(x25519) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519 \ @@ -1112,8 +1107,7 @@ run_test "TLS 1.3: G->m: psk_ephemeral group(x25519) check, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_ephemeral group(x448) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X448 \ @@ -1127,7 +1121,7 @@ run_test "TLS 1.3: G->m: psk_ephemeral group(x448) check, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk, fail, no common kex mode" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1143,7 +1137,7 @@ run_test "TLS 1.3: O->m: ephemeral_all/psk, fail, no common kex mode" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1161,7 +1155,7 @@ run_test "TLS 1.3: O->m: all/psk, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1178,7 +1172,7 @@ run_test "TLS 1.3: O->m: all/psk, fail, key id mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1195,8 +1189,7 @@ run_test "TLS 1.3: O->m: all/psk, fail, key material mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1214,8 +1207,7 @@ run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1232,8 +1224,7 @@ run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1250,8 +1241,7 @@ run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, fail, key material mism requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/psk_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1269,8 +1259,7 @@ run_test "TLS 1.3: O->m: all/psk_ephemeral, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/psk_ephemeral, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1287,8 +1276,7 @@ run_test "TLS 1.3: O->m: all/psk_ephemeral, fail, key id mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/psk_ephemeral, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1305,8 +1293,8 @@ run_test "TLS 1.3: O->m: all/psk_ephemeral, fail, key material mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1324,8 +1312,8 @@ run_test "TLS 1.3: O->m: ephemeral_all/psk_all, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_all, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1342,8 +1330,8 @@ run_test "TLS 1.3: O->m: ephemeral_all/psk_all, fail, key id mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1360,8 +1348,8 @@ run_test "TLS 1.3: O->m: ephemeral_all/psk_all, fail, key material mismatch" requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/psk_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1379,8 +1367,8 @@ run_test "TLS 1.3: O->m: all/psk_all, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/psk_all, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1397,8 +1385,8 @@ run_test "TLS 1.3: O->m: all/psk_all, fail, key id mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/psk_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1415,8 +1403,8 @@ run_test "TLS 1.3: O->m: all/psk_all, fail, key material mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1434,8 +1422,8 @@ run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, good, key id mismatch, dhe." \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1452,8 +1440,8 @@ run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, good, key id mismatch, requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1470,8 +1458,8 @@ run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, fail, key material mism requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/ephemeral_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1489,8 +1477,8 @@ run_test "TLS 1.3: O->m: all/ephemeral_all, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/ephemeral_all, good, key id mismatch, dhe." \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1507,8 +1495,8 @@ run_test "TLS 1.3: O->m: all/ephemeral_all, good, key id mismatch, dhe." \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/ephemeral_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1525,8 +1513,9 @@ run_test "TLS 1.3: O->m: all/ephemeral_all, fail, key material mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1544,8 +1533,9 @@ run_test "TLS 1.3: O->m: ephemeral_all/all, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/all, good, key id mismatch, dhe." \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1562,8 +1552,9 @@ run_test "TLS 1.3: O->m: ephemeral_all/all, good, key id mismatch, dhe." \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1580,8 +1571,9 @@ run_test "TLS 1.3: O->m: ephemeral_all/all, fail, key material mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1599,8 +1591,9 @@ run_test "TLS 1.3: O->m: all/all, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/all, good, key id mismatch, dhe." \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1617,8 +1610,9 @@ run_test "TLS 1.3: O->m: all/all, good, key id mismatch, dhe." \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1635,8 +1629,8 @@ run_test "TLS 1.3: O->m: all/all, fail, key material mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_or_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1654,8 +1648,8 @@ run_test "TLS 1.3: O->m: ephemeral_all/psk_or_ephemeral, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/psk_or_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1673,8 +1667,8 @@ run_test "TLS 1.3: O->m: all/psk_or_ephemeral, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/psk_or_ephemeral, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1691,8 +1685,7 @@ run_test "TLS 1.3: O->m: all/psk_or_ephemeral, fail, key material mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: psk_ephemeral group(secp256r1) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups P-256 \ @@ -1705,8 +1698,7 @@ run_test "TLS 1.3: O->m: psk_ephemeral group(secp256r1) check, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: psk_ephemeral group(secp384r1) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups secp384r1 \ @@ -1719,8 +1711,7 @@ run_test "TLS 1.3: O->m: psk_ephemeral group(secp384r1) check, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: psk_ephemeral group(secp521r1) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups secp521r1 \ @@ -1733,8 +1724,7 @@ run_test "TLS 1.3: O->m: psk_ephemeral group(secp521r1) check, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: psk_ephemeral group(x25519) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups X25519 \ @@ -1747,8 +1737,7 @@ run_test "TLS 1.3: O->m: psk_ephemeral group(x25519) check, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: psk_ephemeral group(x448) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups X448 \ @@ -1760,9 +1749,8 @@ run_test "TLS 1.3: O->m: psk_ephemeral group(x448) check, good" \ -S "key exchange mode: ephemeral" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef curves=secp384r1" \ "$O_NEXT_CLI_NO_CERT -tls1_3 -msg -allow_no_dhe_kex -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70 -groups P-256:P-384" \ @@ -1774,11 +1762,10 @@ run_test "TLS 1.3 O->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \ -S "key exchange mode: ephemeral" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef curves=secp384r1" \ "$G_NEXT_CLI_NO_CERT --debug=4 --single-key-share --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1 --pskusername Client_identity --pskkey 6162636465666768696a6b6c6d6e6f70 localhost" \ @@ -1797,6 +1784,7 @@ run_test "TLS 1.3 G->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->m: psk/psk, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -1810,6 +1798,7 @@ run_test "TLS 1.3: m->m: psk/psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->m: psk/psk, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ @@ -1822,6 +1811,7 @@ run_test "TLS 1.3: m->m: psk/psk, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->m: psk/psk, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ @@ -1834,6 +1824,8 @@ run_test "TLS 1.3: m->m: psk/psk, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/psk_ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -1846,6 +1838,8 @@ run_test "TLS 1.3: m->m: psk/psk_ephemeral, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -1858,6 +1852,9 @@ run_test "TLS 1.3: m->m: psk/ephemeral, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/ephemeral_all, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -1870,6 +1867,8 @@ run_test "TLS 1.3: m->m: psk/ephemeral_all, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -1883,6 +1882,8 @@ run_test "TLS 1.3: m->m: psk/psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/psk_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ @@ -1896,6 +1897,8 @@ run_test "TLS 1.3: m->m: psk/psk_all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/psk_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ @@ -1908,6 +1911,9 @@ run_test "TLS 1.3: m->m: psk/psk_all, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -1921,6 +1927,9 @@ run_test "TLS 1.3: m->m: psk/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ @@ -1934,6 +1943,9 @@ run_test "TLS 1.3: m->m: psk/all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ @@ -1947,6 +1959,8 @@ run_test "TLS 1.3: m->m: psk/all, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -1959,6 +1973,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -1972,6 +1987,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ @@ -1985,6 +2001,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail, key id mismatch" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk_ephemeral" \ @@ -1998,8 +2015,8 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -2011,6 +2028,8 @@ run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral, fail - no common kex mode" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -2025,8 +2044,8 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ @@ -2039,6 +2058,8 @@ run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail, key id mismatch" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk_ephemeral" \ @@ -2051,6 +2072,8 @@ run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail, key material mism requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -2064,6 +2087,8 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ @@ -2077,6 +2102,8 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -2089,6 +2116,9 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail, key material mismatch" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -2102,6 +2132,9 @@ run_test "TLS 1.3: m->m: psk_ephemeral/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ @@ -2114,6 +2147,9 @@ run_test "TLS 1.3: m->m: psk_ephemeral/all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -2127,6 +2163,8 @@ run_test "TLS 1.3: m->m: psk_ephemeral/all, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral/psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -2136,6 +2174,8 @@ run_test "TLS 1.3: m->m: ephemeral/psk, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral/psk_ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -2145,6 +2185,7 @@ run_test "TLS 1.3: m->m: ephemeral/psk_ephemeral, fail - no common kex mode" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral/ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -2155,6 +2196,8 @@ run_test "TLS 1.3: m->m: ephemeral/ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -2165,6 +2208,9 @@ run_test "TLS 1.3: m->m: ephemeral/ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral/psk_all, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -2174,6 +2220,9 @@ run_test "TLS 1.3: m->m: ephemeral/psk_all, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -2185,6 +2234,9 @@ run_test "TLS 1.3: m->m: ephemeral/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2197,6 +2249,8 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2210,6 +2264,8 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ @@ -2222,6 +2278,8 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2234,6 +2292,8 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail, key material mism requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2248,6 +2308,8 @@ run_test "TLS 1.3: m->m: ephemeral_all/ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2261,6 +2323,8 @@ run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,key id mismatch,fallback" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ @@ -2274,6 +2338,8 @@ run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,key id mismatch,fal requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2286,6 +2352,9 @@ run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all, fail, key material mism requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2299,6 +2368,9 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ @@ -2312,6 +2384,9 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2324,6 +2399,9 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail, key material mismatch" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2337,6 +2415,9 @@ run_test "TLS 1.3: m->m: ephemeral_all/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/all, good, key id mismatch, fallback" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ @@ -2350,6 +2431,9 @@ run_test "TLS 1.3: m->m: ephemeral_all/all, good, key id mismatch, fallback" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2363,6 +2447,8 @@ run_test "TLS 1.3: m->m: ephemeral_all/all, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2376,6 +2462,8 @@ run_test "TLS 1.3: m->m: psk_all/psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ @@ -2388,6 +2476,8 @@ run_test "TLS 1.3: m->m: psk_all/psk, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2400,6 +2490,8 @@ run_test "TLS 1.3: m->m: psk_all/psk, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2413,6 +2505,8 @@ run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ @@ -2426,6 +2520,8 @@ run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2438,6 +2534,9 @@ run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail, key material mismatch" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2449,6 +2548,9 @@ run_test "TLS 1.3: m->m: psk_all/ephemeral, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2462,6 +2564,9 @@ run_test "TLS 1.3: m->m: psk_all/ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ @@ -2474,6 +2579,9 @@ run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2486,6 +2594,8 @@ run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail, key material mismatch" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2499,6 +2609,8 @@ run_test "TLS 1.3: m->m: psk_all/psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ @@ -2512,6 +2624,8 @@ run_test "TLS 1.3: m->m: psk_all/psk_all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2524,6 +2638,9 @@ run_test "TLS 1.3: m->m: psk_all/psk_all, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2537,6 +2654,9 @@ run_test "TLS 1.3: m->m: psk_all/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ @@ -2549,6 +2669,9 @@ run_test "TLS 1.3: m->m: psk_all/all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2562,6 +2685,9 @@ run_test "TLS 1.3: m->m: psk_all/all, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2575,6 +2701,9 @@ run_test "TLS 1.3: m->m: all/psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ @@ -2588,6 +2717,9 @@ run_test "TLS 1.3: m->m: all/psk, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2600,6 +2732,9 @@ run_test "TLS 1.3: m->m: all/psk, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2613,6 +2748,9 @@ run_test "TLS 1.3: m->m: all/psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk_ephemeral, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ @@ -2626,6 +2764,9 @@ run_test "TLS 1.3: m->m: all/psk_ephemeral, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk_ephemeral, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2638,6 +2779,9 @@ run_test "TLS 1.3: m->m: all/psk_ephemeral, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2651,6 +2795,9 @@ run_test "TLS 1.3: m->m: all/ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2664,6 +2811,9 @@ run_test "TLS 1.3: m->m: all/ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/ephemeral_all, good, key id mismatch, fallback" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ @@ -2678,6 +2828,9 @@ run_test "TLS 1.3: m->m: all/ephemeral_all, good, key id mismatch, fallback" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/ephemeral_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2690,6 +2843,9 @@ run_test "TLS 1.3: m->m: all/ephemeral_all, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2703,6 +2859,9 @@ run_test "TLS 1.3: m->m: all/psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ @@ -2716,6 +2875,9 @@ run_test "TLS 1.3: m->m: all/psk_all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2728,6 +2890,9 @@ run_test "TLS 1.3: m->m: all/psk_all, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2741,6 +2906,9 @@ run_test "TLS 1.3: m->m: all/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/all, good, key id mismatch, fallback" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ @@ -2754,6 +2922,9 @@ run_test "TLS 1.3: m->m: all/all, good, key id mismatch, fallback" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2769,8 +2940,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->O: psk/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -2788,8 +2958,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->O: psk/ephemeral_all, fail - no common kex mode" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -2807,8 +2976,8 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: psk_all/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2826,8 +2995,8 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: psk_all/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2846,8 +3015,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: psk_ephemeral/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -2865,8 +3033,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: psk_ephemeral/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -2885,8 +3052,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: ephemeral/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -2903,8 +3069,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: ephemeral/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -2922,8 +3087,8 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: ephemeral_all/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2941,8 +3106,8 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: ephemeral_all/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2961,8 +3126,9 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: all/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2980,8 +3146,9 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: all/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -3000,6 +3167,7 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->G: psk/all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -3019,6 +3187,7 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->G: psk/ephemeral_all, fail - no common kex mode" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -3038,6 +3207,8 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: psk_all/all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -3057,6 +3228,8 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: psk_all/ephemeral_all, fail - no fallback" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -3076,6 +3249,7 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: psk_ephemeral/all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -3095,6 +3269,7 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: psk_ephemeral/ephemeral_all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -3115,6 +3290,7 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: ephemeral/all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -3131,6 +3307,7 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: ephemeral/ephemeral_all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -3148,6 +3325,8 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: ephemeral_all/all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -3167,6 +3346,8 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: ephemeral_all/ephemeral_all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -3187,6 +3368,9 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: all/all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -3206,6 +3390,9 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: all/ephemeral_all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ From de08cf354335efea87faba2b970c5ac206efedd8 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 17:15:35 +0200 Subject: [PATCH 0840/1028] tls13: Do not use MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED Use MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED instead. Signed-off-by: Ronald Cron --- library/ssl_tls13_generic.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 3913c1669b..48e3675820 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -357,7 +357,7 @@ cleanup: * */ -#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) /* * Structure of Certificate message: @@ -534,9 +534,9 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); } #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) /* Validate certificate chain sent by the server. */ MBEDTLS_CHECK_RETURN_CRITICAL @@ -727,14 +727,14 @@ static int ssl_tls13_validate_certificate( mbedtls_ssl_context *ssl ) return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); } #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ int mbedtls_ssl_tls13_process_certificate( mbedtls_ssl_context *ssl ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse certificate" ) ); -#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) unsigned char *buf; size_t buf_len; @@ -752,7 +752,7 @@ int mbedtls_ssl_tls13_process_certificate( mbedtls_ssl_context *ssl ) buf, buf_len ); cleanup: -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse certificate" ) ); return( ret ); From 82be0d4b4db3fb8ab84d79e8b2b435b984a29874 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 17:25:34 +0200 Subject: [PATCH 0841/1028] tls13: Do not use MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED Signed-off-by: Ronald Cron --- library/ssl_tls13_keys.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 5954b62efb..642b912603 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1256,7 +1256,8 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) unsigned char *shared_secret = NULL; size_t shared_secret_len = 0; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) || \ + defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) /* * Compute ECDHE secret used to compute the handshake secret from which * client_handshake_traffic_secret and server_handshake_traffic_secret @@ -1310,7 +1311,8 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); } } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED || + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED */ /* * Compute the Handshake Secret From 766c0cdb1f96c487225c8530a8b8570f1d1c34f0 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 18 Oct 2022 12:17:11 +0200 Subject: [PATCH 0842/1028] tls13: Add missing kex guards Signed-off-by: Ronald Cron --- library/ssl_tls13_client.c | 5 ++++- library/ssl_tls13_server.c | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index acac23174f..0ff85c674b 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -210,6 +210,7 @@ static int ssl_tls13_reset_key_share( mbedtls_ssl_context *ssl ) /* * Functions for writing key_share extension. */ +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_get_default_group_id( mbedtls_ssl_context *ssl, uint16_t *group_id ) @@ -364,7 +365,7 @@ cleanup: return( ret ); } - +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED */ /* * ssl_tls13_parse_hrr_key_share_ext() @@ -1142,6 +1143,7 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, return( ret ); p += ext_len; +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED) if( mbedtls_ssl_conf_tls13_some_ephemeral_enabled( ssl ) ) { ret = ssl_tls13_write_key_share_ext( ssl, p, end, &ext_len ); @@ -1149,6 +1151,7 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, return( ret ); p += ext_len; } +#endif #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* For PSK-based key exchange we need the pre_shared_key extension diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 2b33a00e12..8b9ac343a0 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -3027,6 +3027,7 @@ int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ) ret = ssl_tls13_handshake_wrapup( ssl ); break; +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) case MBEDTLS_SSL_CLIENT_CERTIFICATE: ret = mbedtls_ssl_tls13_process_certificate( ssl ); if( ret == 0 ) @@ -3053,6 +3054,7 @@ int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ) ssl, MBEDTLS_SSL_CLIENT_FINISHED ); } break; +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) case MBEDTLS_SSL_NEW_SESSION_TICKET: From 8328113cad67dad24faee63c525f7e6acd29a1d5 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 18 Oct 2022 09:37:39 +0200 Subject: [PATCH 0843/1028] ssl-opt.sh: Fix some test checks for ephemeral only kex build Signed-off-by: Ronald Cron --- tests/opt-testcases/tls13-kex-modes.sh | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 6ef0c3c99d..209c34a2fd 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -3057,10 +3057,6 @@ run_test "TLS 1.3: m->O: ephemeral/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -c "<= write client hello" \ - -c "found key_shares extension" \ -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 ok" @@ -3074,10 +3070,6 @@ run_test "TLS 1.3: m->O: ephemeral/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -c "<= write client hello" \ - -c "found key_shares extension" \ -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 ok" @@ -3295,10 +3287,6 @@ run_test "TLS 1.3: m->G: ephemeral/all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -s "Not sending extension (PSK Key Exchange Modes/45)" \ - -c "<= write client hello" \ -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" @@ -3312,10 +3300,6 @@ run_test "TLS 1.3: m->G: ephemeral/ephemeral_all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -s "Not sending extension (PSK Key Exchange Modes/45)" \ - -c "<= write client hello" \ -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" From 571f1ff6dcc94f880dde2b469ae3ffb488e30fbf Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 09:33:27 +0200 Subject: [PATCH 0844/1028] Make sure TLS 1.2 kex macros are undefined in builds without TLS 1.2 Signed-off-by: Ronald Cron --- include/mbedtls/build_info.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index 041c5b61e8..9c9a345465 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -78,6 +78,20 @@ #define MBEDTLS_PK_WRITE_C #endif +#if !defined(MBEDTLS_SSL_PROTO_TLS1_2) +#undef MBEDTLS_KEY_EXCHANGE_RSA_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_PSK_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED +#endif + #if !defined(MBEDTLS_SSL_PROTO_TLS1_3) #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED From c3f43b663e99d12a0c4703428dad3f46e7dc385c Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 17 Oct 2022 17:35:32 +0200 Subject: [PATCH 0845/1028] all.sh: Add components testing TLS 1.3 kex partial enablement Signed-off-by: Ronald Cron --- tests/scripts/all.sh | 87 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 4 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 61d675f4fc..bfd865b8f8 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -3218,11 +3218,90 @@ component_test_tls13_only () { msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3, without MBEDTLS_SSL_PROTO_TLS1_2" make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" - msg "test: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, without MBEDTLS_SSL_PROTO_TLS1_2" - if_build_succeeded make test + msg "test_suite_ssl: TLS 1.3 only, all key exchange modes enabled" + cd tests; ./test_suite_ssl; cd .. - msg "ssl-opt.sh (TLS 1.3)" - if_build_succeeded tests/ssl-opt.sh + msg "ssl-opt.sh: TLS 1.3 only, all key exchange modes enabled" + tests/ssl-opt.sh +} + +component_test_tls13_only_psk () { + msg "build: TLS 1.3 only from default, only PSK key exchange mode" + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED + scripts/config.py unset MBEDTLS_ECDH_C + scripts/config.py unset MBEDTLS_X509_CRT_PARSE_C + scripts/config.py unset MBEDTLS_X509_RSASSA_PSS_SUPPORT + scripts/config.py unset MBEDTLS_SSL_SERVER_NAME_INDICATION + scripts/config.py unset MBEDTLS_ECDSA_C + scripts/config.py unset MBEDTLS_PKCS1_V21 + make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" + + msg "test_suite_ssl: TLS 1.3 only, only PSK key exchange mode enabled" + cd tests; ./test_suite_ssl; cd .. + + msg "ssl-opt.sh: TLS 1.3 only, only PSK key exchange mode enabled" + tests/ssl-opt.sh +} + +component_test_tls13_only_ephemeral () { + msg "build: TLS 1.3 only from default, only ephemeral key exchange mode" + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED + make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" + + msg "test_suite_ssl: TLS 1.3 only, only ephemeral key exchange mode" + cd tests; ./test_suite_ssl; cd .. + + msg "ssl-opt.sh: TLS 1.3 only, only ephemeral key exchange mode" + tests/ssl-opt.sh +} + +component_test_tls13_only_psk_ephemeral () { + msg "build: TLS 1.3 only from default, only PSK ephemeral key exchange mode" + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED + scripts/config.py unset MBEDTLS_X509_CRT_PARSE_C + scripts/config.py unset MBEDTLS_X509_RSASSA_PSS_SUPPORT + scripts/config.py unset MBEDTLS_SSL_SERVER_NAME_INDICATION + scripts/config.py unset MBEDTLS_ECDSA_C + scripts/config.py unset MBEDTLS_PKCS1_V21 + make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" + + msg "test_suite_ssl: TLS 1.3 only, only PSK ephemeral key exchange mode" + cd tests; ./test_suite_ssl; cd .. + + msg "ssl-opt.sh: TLS 1.3 only, only PSK ephemeral key exchange mode" + tests/ssl-opt.sh +} + +component_test_tls13_only_psk_all () { + msg "build: TLS 1.3 only from default, without ephemeral key exchange mode" + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED + scripts/config.py unset MBEDTLS_X509_CRT_PARSE_C + scripts/config.py unset MBEDTLS_X509_RSASSA_PSS_SUPPORT + scripts/config.py unset MBEDTLS_SSL_SERVER_NAME_INDICATION + scripts/config.py unset MBEDTLS_ECDSA_C + scripts/config.py unset MBEDTLS_PKCS1_V21 + make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" + + msg "test_suite_ssl: TLS 1.3 only, PSK and PSK ephemeral key exchange modes" + cd tests; ./test_suite_ssl; cd .. + + msg "ssl-opt.sh: TLS 1.3 only, PSK and PSK ephemeral key exchange modes" + tests/ssl-opt.sh +} + +component_test_tls13_only_ephemeral_all () { + msg "build: TLS 1.3 only from default, without PSK key exchange mode" + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" + + msg "test_suite_ssl: TLS 1.3 only, ephemeral and PSK ephemeral key exchange modes" + cd tests; ./test_suite_ssl; cd .. + + msg "ssl-opt.sh: TLS 1.3 only, ephemeral and PSK ephemeral key exchange modes" + tests/ssl-opt.sh } component_test_tls13_only_with_hooks () { From 9810b6d0b7b3240251324c69f6fc615e6b12d99b Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Thu, 20 Oct 2022 14:22:45 +0200 Subject: [PATCH 0846/1028] Fix kex config options documentation in tls13-support.md Signed-off-by: Ronald Cron --- docs/architecture/tls13-support.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/architecture/tls13-support.md b/docs/architecture/tls13-support.md index 30185f4e1a..1c568d82cd 100644 --- a/docs/architecture/tls13-support.md +++ b/docs/architecture/tls13-support.md @@ -148,7 +148,12 @@ Support description - MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE enables the support for middlebox compatibility mode as defined in section D.4 of RFC 8446. - - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED enables the + - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED enables the support for + the PSK key exchange mode as defined by RFC 8446. If it is the only key + exchange mode enabled, the TLS 1.3 implementation does not contain any code + related to key exchange protocols, certificates and signatures. + + - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED enables the support of the ephemeral key exchange mode. If it is the only key exchange mode enabled, the TLS 1.3 implementation does not contain any code related to PSK based key exchange. The ephemeral key exchange mode requires at least @@ -157,16 +162,11 @@ Support description algorithm allowed by the TLS 1.3 specification for signature computing and verification. - - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED enables the support for - the PSK key exchange mode as defined by RFC 8446. If it is the only key + - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED enables the + support for the PSK ephemeral key exchange mode. If it is the only key exchange mode enabled, the TLS 1.3 implementation does not contain any code - related to key exchange protocols, certificates and signatures. - - - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED enables the support - for the PSK ephemeral key exchange mode. If it is the only key exchange - mode enabled, the TLS 1.3 implementation does not contain any code related to certificates and signatures. The PSK ephemeral key exchange - mode requirss at least one of the key exchange protocol allowed by the + mode requires at least one of the key exchange protocol allowed by the TLS 1.3 specification. From a2900bcd1e2059bebf6a010203e9b0b5e2ddcef4 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Thu, 20 Oct 2022 14:37:35 +0200 Subject: [PATCH 0847/1028] tls13: keys: Simplify code guard Signed-off-by: Ronald Cron --- library/ssl_tls13_keys.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 642b912603..ec84a996cc 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1256,8 +1256,7 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) unsigned char *shared_secret = NULL; size_t shared_secret_len = 0; -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) || \ - defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED) /* * Compute ECDHE secret used to compute the handshake secret from which * client_handshake_traffic_secret and server_handshake_traffic_secret @@ -1311,8 +1310,7 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); } } -#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED || - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED */ /* * Compute the Handshake Secret From 5de538c9dd546ad0c3af9d6fe2c23a3b0585ad0c Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Thu, 20 Oct 2022 14:47:56 +0200 Subject: [PATCH 0848/1028] ssl-opt.sh: Remove requires_key_exchange_with_cert_in_tls12_enabled Remove requires_key_exchange_with_cert_in_tls12_enabled and use `requires_any_configs_enabled` directly instead. Signed-off-by: Ronald Cron --- tests/scripts/generate_tls13_compat_tests.py | 1 - tests/ssl-opt.sh | 95 +++++++++----------- 2 files changed, 44 insertions(+), 52 deletions(-) diff --git a/tests/scripts/generate_tls13_compat_tests.py b/tests/scripts/generate_tls13_compat_tests.py index 5c445df727..764c0ee3f8 100755 --- a/tests/scripts/generate_tls13_compat_tests.py +++ b/tests/scripts/generate_tls13_compat_tests.py @@ -357,7 +357,6 @@ class MbedTLSBase(TLSProgram): def pre_checks(self): ret = ['requires_config_enabled MBEDTLS_DEBUG_C', - 'requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3', 'requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED'] if self._compat_mode: diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 7072494579..8945bdf837 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -259,17 +259,10 @@ TLS1_2_KEY_EXCHANGES_WITH_CERT="MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED" -requires_key_exchange_with_cert_in_tls12_enabled() { - if ! $P_QUERY -any $TLS1_2_KEY_EXCHANGES_WITH_CERT - then - SKIP_NEXT="YES" - fi -} - requires_key_exchange_with_cert_in_tls12_or_tls13_enabled() { if $P_QUERY -all MBEDTLS_SSL_PROTO_TLS1_2 then - requires_key_exchange_with_cert_in_tls12_enabled + requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT elif ! $P_QUERY -all MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED then SKIP_NEXT="YES" @@ -5195,7 +5188,7 @@ run_test "Authentication: server badcert, client required" \ -c "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: server badcert, client optional" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5207,7 +5200,7 @@ run_test "Authentication: server badcert, client optional" \ -C "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: server goodcert, client optional, no trusted CA" \ "$P_SRV" \ "$P_CLI debug_level=3 auth_mode=optional ca_file=none ca_path=none" \ @@ -5239,7 +5232,7 @@ run_test "Authentication: server goodcert, client required, no trusted CA" \ requires_config_enabled MBEDTLS_ECP_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: server ECDH p256v1, client required, p256v1 unsupported" \ "$P_SRV debug_level=1 key_file=data_files/server5.key \ crt_file=data_files/server5.ku-ka.crt" \ @@ -5251,7 +5244,7 @@ run_test "Authentication: server ECDH p256v1, client required, p256v1 unsuppo requires_config_enabled MBEDTLS_ECP_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: server ECDH p256v1, client optional, p256v1 unsupported" \ "$P_SRV debug_level=1 key_file=data_files/server5.key \ crt_file=data_files/server5.ku-ka.crt" \ @@ -5262,7 +5255,7 @@ run_test "Authentication: server ECDH p256v1, client optional, p256v1 unsuppo -c "bad server certificate (ECDH curve)" # Expect failure only at ECDH params check requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: server badcert, client none" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5274,7 +5267,7 @@ run_test "Authentication: server badcert, client none" \ -C "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: client SHA256, server required" \ "$P_SRV auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ @@ -5285,7 +5278,7 @@ run_test "Authentication: client SHA256, server required" \ -c "Supported Signature Algorithm found: 5," requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: client SHA384, server required" \ "$P_SRV auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ @@ -5419,7 +5412,7 @@ run_test "Authentication: client no cert, server optional" \ -S "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: openssl client no cert, server optional" \ "$P_SRV debug_level=3 auth_mode=optional" \ "$O_CLI" \ @@ -5431,7 +5424,7 @@ run_test "Authentication: openssl client no cert, server optional" \ -S "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: client no cert, openssl server optional" \ "$O_SRV -verify 10 -tls1_2" \ "$P_CLI debug_level=3 crt_file=none key_file=none" \ @@ -5443,7 +5436,7 @@ run_test "Authentication: client no cert, openssl server optional" \ -C "! mbedtls_ssl_handshake returned" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: client no cert, openssl server required" \ "$O_SRV -Verify 10 -tls1_2" \ "$P_CLI debug_level=3 crt_file=none key_file=none" \ @@ -5487,7 +5480,7 @@ run_test "Authentication: server max_int+1 chain, client default" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: server max_int+1 chain, client optional" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5499,7 +5492,7 @@ run_test "Authentication: server max_int+1 chain, client optional" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: server max_int+1 chain, client none" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5551,7 +5544,7 @@ run_test "Authentication: client max_int chain, server required" \ # Tests for CA list in CertificateRequest messages requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: send CA list in CertificateRequest (default)" \ "$P_SRV debug_level=3 auth_mode=required" \ "$P_CLI crt_file=data_files/server6.crt \ @@ -5560,7 +5553,7 @@ run_test "Authentication: send CA list in CertificateRequest (default)" \ -s "requested DN" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: do not send CA list in CertificateRequest" \ "$P_SRV debug_level=3 auth_mode=required cert_req_ca_list=0" \ "$P_CLI crt_file=data_files/server6.crt \ @@ -5569,7 +5562,7 @@ run_test "Authentication: do not send CA list in CertificateRequest" \ -S "requested DN" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: send CA list in CertificateRequest, client self signed" \ "$P_SRV debug_level=3 auth_mode=required cert_req_ca_list=0" \ "$P_CLI debug_level=3 crt_file=data_files/server5-selfsigned.crt \ @@ -5583,7 +5576,7 @@ run_test "Authentication: send CA list in CertificateRequest, client self sig -s "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: send alt conf DN hints in CertificateRequest" \ "$P_SRV debug_level=3 auth_mode=optional cert_req_ca_list=2 \ crt_file2=data_files/server1.crt \ @@ -5595,7 +5588,7 @@ run_test "Authentication: send alt conf DN hints in CertificateRequest" \ -c "DN hint: C=NL, O=PolarSSL, CN=PolarSSL Server 1" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: send alt conf DN hints in CertificateRequest (2)" \ "$P_SRV debug_level=3 auth_mode=optional cert_req_ca_list=2 \ crt_file2=data_files/server2.crt \ @@ -5607,7 +5600,7 @@ run_test "Authentication: send alt conf DN hints in CertificateRequest (2)" \ -c "DN hint: C=NL, O=PolarSSL, CN=localhost" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: send alt hs DN hints in CertificateRequest" \ "$P_SRV debug_level=3 auth_mode=optional cert_req_ca_list=3 \ crt_file2=data_files/server1.crt \ @@ -5623,7 +5616,7 @@ run_test "Authentication: send alt hs DN hints in CertificateRequest" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: server badcert, client required" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5637,7 +5630,7 @@ run_test "Authentication, CA callback: server badcert, client required" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: server badcert, client optional" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5659,7 +5652,7 @@ run_test "Authentication, CA callback: server badcert, client optional" \ requires_config_enabled MBEDTLS_ECP_C requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: server ECDH p256v1, client required, p256v1 unsupported" \ "$P_SRV debug_level=1 key_file=data_files/server5.key \ crt_file=data_files/server5.ku-ka.crt" \ @@ -5673,7 +5666,7 @@ run_test "Authentication, CA callback: server ECDH p256v1, client required, p requires_config_enabled MBEDTLS_ECP_C requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: server ECDH p256v1, client optional, p256v1 unsupported" \ "$P_SRV debug_level=1 key_file=data_files/server5.key \ crt_file=data_files/server5.ku-ka.crt" \ @@ -5686,7 +5679,7 @@ run_test "Authentication, CA callback: server ECDH p256v1, client optional, p requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: client SHA256, server required" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ @@ -5699,7 +5692,7 @@ run_test "Authentication, CA callback: client SHA256, server required" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: client SHA384, server required" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ @@ -5712,7 +5705,7 @@ run_test "Authentication, CA callback: client SHA384, server required" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: client badcert, server required" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ @@ -5737,7 +5730,7 @@ run_test "Authentication, CA callback: client badcert, server required" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: client cert not trusted, server required" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server5-selfsigned.crt \ @@ -5758,7 +5751,7 @@ run_test "Authentication, CA callback: client cert not trusted, server requir requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: client badcert, server optional" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=optional" \ "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ @@ -5781,7 +5774,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: server max_int chain, client default" \ "$P_SRV crt_file=data_files/dir-maxpath/c09.pem \ key_file=data_files/dir-maxpath/09.key" \ @@ -5794,7 +5787,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: server max_int+1 chain, client default" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5807,7 +5800,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: server max_int+1 chain, client optional" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5821,7 +5814,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: client max_int+1 chain, server optional" \ "$P_SRV ca_callback=1 debug_level=3 ca_file=data_files/dir-maxpath/00.crt auth_mode=optional" \ "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ @@ -5834,7 +5827,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: client max_int+1 chain, server required" \ "$P_SRV ca_callback=1 debug_level=3 ca_file=data_files/dir-maxpath/00.crt auth_mode=required" \ "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ @@ -5847,7 +5840,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: client max_int chain, server required" \ "$P_SRV ca_callback=1 debug_level=3 ca_file=data_files/dir-maxpath/00.crt auth_mode=required" \ "$P_CLI crt_file=data_files/dir-maxpath/c09.pem \ @@ -6185,7 +6178,7 @@ run_test "Non-blocking I/O: client auth" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Non-blocking I/O: ticket" \ "$P_SRV nbio=2 tickets=1 auth_mode=none" \ "$P_CLI nbio=2 tickets=1" \ @@ -6195,7 +6188,7 @@ run_test "Non-blocking I/O: ticket" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Non-blocking I/O: ticket + client auth" \ "$P_SRV nbio=2 tickets=1 auth_mode=required" \ "$P_CLI nbio=2 tickets=1" \ @@ -6205,7 +6198,7 @@ run_test "Non-blocking I/O: ticket + client auth" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Non-blocking I/O: ticket + client auth + resume" \ "$P_SRV nbio=2 tickets=1 auth_mode=required" \ "$P_CLI nbio=2 tickets=1 reconnect=1" \ @@ -6215,7 +6208,7 @@ run_test "Non-blocking I/O: ticket + client auth + resume" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Non-blocking I/O: ticket + resume" \ "$P_SRV nbio=2 tickets=1 auth_mode=none" \ "$P_CLI nbio=2 tickets=1 reconnect=1" \ @@ -6225,7 +6218,7 @@ run_test "Non-blocking I/O: ticket + resume" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Non-blocking I/O: session-id resume" \ "$P_SRV nbio=2 tickets=0 auth_mode=none" \ "$P_CLI nbio=2 tickets=0 reconnect=1" \ @@ -6255,7 +6248,7 @@ run_test "Event-driven I/O: client auth" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Event-driven I/O: ticket" \ "$P_SRV event=1 tickets=1 auth_mode=none" \ "$P_CLI event=1 tickets=1" \ @@ -6265,7 +6258,7 @@ run_test "Event-driven I/O: ticket" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Event-driven I/O: ticket + client auth" \ "$P_SRV event=1 tickets=1 auth_mode=required" \ "$P_CLI event=1 tickets=1" \ @@ -6275,7 +6268,7 @@ run_test "Event-driven I/O: ticket + client auth" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Event-driven I/O: ticket + client auth + resume" \ "$P_SRV event=1 tickets=1 auth_mode=required" \ "$P_CLI event=1 tickets=1 reconnect=1" \ @@ -6285,7 +6278,7 @@ run_test "Event-driven I/O: ticket + client auth + resume" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Event-driven I/O: ticket + resume" \ "$P_SRV event=1 tickets=1 auth_mode=none" \ "$P_CLI event=1 tickets=1 reconnect=1" \ @@ -6295,7 +6288,7 @@ run_test "Event-driven I/O: ticket + resume" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Event-driven I/O: session-id resume" \ "$P_SRV event=1 tickets=0 auth_mode=none" \ "$P_CLI event=1 tickets=0 reconnect=1" \ From 70ed41754dd7dfe7a0de3e23ea89f7a63758648d Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Thu, 20 Oct 2022 15:48:19 +0200 Subject: [PATCH 0849/1028] ssl-opt.sh: Simplify TLS 1.3 dependencies Simplify TLS 1.3 dependencies taking into account that MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED implies that MBEDTLS_SSL_PROTO_TLS1_3 is defined. Signed-off-by: Ronald Cron --- tests/ssl-opt.sh | 509 ++++++++++++++++++----------------------------- 1 file changed, 198 insertions(+), 311 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 8945bdf837..996cd1a4f6 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -6651,9 +6651,8 @@ run_test "keyUsage cli: DigitalSignature, RSA: fail, soft" \ -c "! Usage does not match the keyUsage extension" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: DigitalSignature+KeyEncipherment, RSA: OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ds_ke.crt" \ @@ -6664,9 +6663,8 @@ run_test "keyUsage cli 1.3: DigitalSignature+KeyEncipherment, RSA: OK" \ -c "Ciphersuite is" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: KeyEncipherment, RSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ke.crt" \ @@ -6677,9 +6675,8 @@ run_test "keyUsage cli 1.3: KeyEncipherment, RSA: fail" \ -C "Ciphersuite is" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: KeyAgreement, RSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ka.crt" \ @@ -6690,9 +6687,8 @@ run_test "keyUsage cli 1.3: KeyAgreement, RSA: fail" \ -C "Ciphersuite is" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: DigitalSignature, ECDSA: OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ds.crt" \ @@ -6703,9 +6699,8 @@ run_test "keyUsage cli 1.3: DigitalSignature, ECDSA: OK" \ -c "Ciphersuite is" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: KeyEncipherment, ECDSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ke.crt" \ @@ -6716,9 +6711,8 @@ run_test "keyUsage cli 1.3: KeyEncipherment, ECDSA: fail" \ -C "Ciphersuite is" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: KeyAgreement, ECDSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ka.crt" \ @@ -6779,8 +6773,8 @@ run_test "keyUsage cli-auth: ECDSA, KeyAgreement: fail (soft)" \ -S "Processing of the Certificate handshake message failed" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli-auth 1.3: RSA, DigitalSignature: OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ @@ -6791,8 +6785,8 @@ run_test "keyUsage cli-auth 1.3: RSA, DigitalSignature: OK" \ -S "Processing of the Certificate handshake message failed" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli-auth 1.3: RSA, KeyEncipherment: fail (soft)" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ @@ -6802,8 +6796,8 @@ run_test "keyUsage cli-auth 1.3: RSA, KeyEncipherment: fail (soft)" \ -S "Processing of the Certificate handshake message failed" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli-auth 1.3: ECDSA, DigitalSignature: OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6814,8 +6808,8 @@ run_test "keyUsage cli-auth 1.3: ECDSA, DigitalSignature: OK" \ -S "Processing of the Certificate handshake message failed" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli-auth 1.3: ECDSA, KeyAgreement: fail (soft)" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6897,9 +6891,8 @@ run_test "extKeyUsage cli: codeSign -> fail" \ -C "Ciphersuite is TLS-" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli 1.3: serverAuth -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-srv.crt" \ @@ -6910,9 +6903,8 @@ run_test "extKeyUsage cli 1.3: serverAuth -> OK" \ -c "Ciphersuite is" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli 1.3: serverAuth,clientAuth -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-srv_cli.crt" \ @@ -6923,9 +6915,8 @@ run_test "extKeyUsage cli 1.3: serverAuth,clientAuth -> OK" \ -c "Ciphersuite is" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli 1.3: codeSign,anyEKU -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-cs_any.crt" \ @@ -6936,9 +6927,8 @@ run_test "extKeyUsage cli 1.3: codeSign,anyEKU -> OK" \ -c "Ciphersuite is" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli 1.3: codeSign -> fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-cs.crt" \ @@ -6996,8 +6986,8 @@ run_test "extKeyUsage cli-auth: codeSign -> fail (hard)" \ -s "Processing of the Certificate handshake message failed" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli-auth 1.3: clientAuth -> OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -7007,8 +6997,8 @@ run_test "extKeyUsage cli-auth 1.3: clientAuth -> OK" \ -S "Processing of the Certificate handshake message failed" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli-auth 1.3: serverAuth,clientAuth -> OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -7018,8 +7008,8 @@ run_test "extKeyUsage cli-auth 1.3: serverAuth,clientAuth -> OK" \ -S "Processing of the Certificate handshake message failed" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli-auth 1.3: codeSign,anyEKU -> OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -7029,8 +7019,8 @@ run_test "extKeyUsage cli-auth 1.3: codeSign,anyEKU -> OK" \ -S "Processing of the Certificate handshake message failed" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli-auth 1.3: codeSign -> fail (soft)" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -11174,11 +11164,10 @@ run_test "TLS 1.3: Test gnutls tls1_3 feature" \ # TLS1.3 test cases requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: minimal feature sets - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=3" \ @@ -11208,11 +11197,10 @@ run_test "TLS 1.3: minimal feature sets - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: minimal feature sets - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=3" \ @@ -11242,12 +11230,11 @@ run_test "TLS 1.3: minimal feature sets - gnutls" \ -c "HTTP/1.0 200 OK" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_ALPN -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: alpn - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -alpn h2" \ "$P_CLI debug_level=3 alpn=h2" \ @@ -11278,12 +11265,11 @@ run_test "TLS 1.3: alpn - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_ALPN -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: alpn - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert --alpn=h2" \ "$P_CLI debug_level=3 alpn=h2" \ @@ -11314,7 +11300,6 @@ run_test "TLS 1.3: alpn - gnutls" \ -c "Application Layer Protocol is h2" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_ALPN @@ -11330,7 +11315,6 @@ run_test "TLS 1.3: server alpn - openssl" \ -s "Application Layer Protocol is h2" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_ALPN @@ -11428,11 +11412,10 @@ run_test "TLS 1.3: Not supported version check:openssl: srv max TLS 1.2" \ -C "Protocol : TLSv1.2" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, no client certificate - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -verify 10" \ "$P_CLI debug_level=4 crt_file=none key_file=none" \ @@ -11445,11 +11428,10 @@ run_test "TLS 1.3: Client authentication, no client certificate - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, no client certificate - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --verify-client-cert" \ "$P_CLI debug_level=3 crt_file=none key_file=none" \ @@ -11462,7 +11444,6 @@ run_test "TLS 1.3: Client authentication, no client certificate - gnutls" \ requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED @@ -11477,7 +11458,6 @@ run_test "TLS 1.3: Client authentication, no server middlebox compat - openss requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED @@ -11492,11 +11472,10 @@ run_test "TLS 1.3: Client authentication, no server middlebox compat - gnutls -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp256r1_sha256 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp256r1.crt \ @@ -11509,11 +11488,10 @@ run_test "TLS 1.3: Client authentication, ecdsa_secp256r1_sha256 - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp256r1_sha256 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp256r1.crt \ @@ -11525,11 +11503,10 @@ run_test "TLS 1.3: Client authentication, ecdsa_secp256r1_sha256 - gnutls" \ -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp384r1_sha384 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp384r1.crt \ @@ -11542,11 +11519,10 @@ run_test "TLS 1.3: Client authentication, ecdsa_secp384r1_sha384 - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp384r1_sha384 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp384r1.crt \ @@ -11558,11 +11534,10 @@ run_test "TLS 1.3: Client authentication, ecdsa_secp384r1_sha384 - gnutls" \ -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp521r1_sha512 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11575,11 +11550,10 @@ run_test "TLS 1.3: Client authentication, ecdsa_secp521r1_sha512 - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp521r1_sha512 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11591,12 +11565,11 @@ run_test "TLS 1.3: Client authentication, ecdsa_secp521r1_sha512 - gnutls" \ -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha256 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/cert_sha256.crt \ @@ -11609,12 +11582,11 @@ run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha256 - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha256 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/server2-sha256.crt \ @@ -11626,12 +11598,11 @@ run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha256 - gnutls" \ -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha384 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=data_files/cert_sha256.crt \ @@ -11644,12 +11615,11 @@ run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha384 - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha384 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 force_version=tls13 crt_file=data_files/server2-sha256.crt \ @@ -11661,12 +11631,11 @@ run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha384 - gnutls" \ -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha512 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=data_files/cert_sha256.crt \ @@ -11679,12 +11648,11 @@ run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha512 - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha512 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 force_version=tls13 crt_file=data_files/server2-sha256.crt \ @@ -11696,12 +11664,11 @@ run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha512 - gnutls" \ -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, client alg not in server list - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10 -sigalgs ecdsa_secp256r1_sha256" \ @@ -11716,12 +11683,11 @@ run_test "TLS 1.3: Client authentication, client alg not in server list - ope requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, client alg not in server list - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11735,7 +11701,6 @@ run_test "TLS 1.3: Client authentication, client alg not in server list - gnu # Test using an opaque private key for client authentication requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_USE_PSA_CRYPTO @@ -11751,7 +11716,6 @@ run_test "TLS 1.3: Client authentication - opaque key, no server middlebox co requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_USE_PSA_CRYPTO @@ -11767,12 +11731,11 @@ run_test "TLS 1.3: Client authentication - opaque key, no server middlebox co -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp256r1_sha256 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp256r1.crt \ @@ -11785,12 +11748,11 @@ run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp256r1_sha256 requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp256r1_sha256 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp256r1.crt \ @@ -11802,12 +11764,11 @@ run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp256r1_sha256 -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp384r1_sha384 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp384r1.crt \ @@ -11820,12 +11781,11 @@ run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp384r1_sha384 requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp384r1_sha384 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp384r1.crt \ @@ -11837,12 +11797,11 @@ run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp384r1_sha384 -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp521r1_sha512 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11855,12 +11814,11 @@ run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp521r1_sha512 requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp521r1_sha512 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11872,13 +11830,12 @@ run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp521r1_sha512 -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha256 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/cert_sha256.crt \ @@ -11891,13 +11848,12 @@ run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha256 - requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha256 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/server2-sha256.crt \ @@ -11909,13 +11865,12 @@ run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha256 - -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha384 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=data_files/cert_sha256.crt \ @@ -11928,13 +11883,12 @@ run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha384 - requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha384 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 force_version=tls13 crt_file=data_files/server2-sha256.crt \ @@ -11946,13 +11900,12 @@ run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha384 - -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha512 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=data_files/cert_sha256.crt \ @@ -11965,13 +11918,12 @@ run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha512 - requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha512 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 force_version=tls13 crt_file=data_files/server2-sha256.crt \ @@ -11983,13 +11935,12 @@ run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha512 - -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, client alg not in server list - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10 -sigalgs ecdsa_secp256r1_sha256" \ @@ -12004,13 +11955,12 @@ run_test "TLS 1.3: Client authentication - opaque key, client alg not in serv requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, client alg not in server list - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -12022,12 +11972,11 @@ run_test "TLS 1.3: Client authentication - opaque key, client alg not in serv -c "no suitable signature algorithm" \ -C "unkown pk type" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_openssl_tls1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_openssl_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_128_GCM_SHA256 - openssl" \ "$O_NEXT_SRV -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=4" \ @@ -12038,12 +11987,11 @@ run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_128_GCM_SHA256 - openssl" \ -c "Protocol is TLSv1.3" \ -c "HTTP/1.0 200 ok" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_openssl_tls1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_openssl_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_256_GCM_SHA384 - openssl" \ "$O_NEXT_SRV -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=4" \ @@ -12054,13 +12002,12 @@ run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_256_GCM_SHA384 - openssl" \ -c "Protocol is TLSv1.3" \ -c "HTTP/1.0 200 ok" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_128_GCM_SHA256 - gnutls" \ "$G_NEXT_SRV -d 4 --priority=NONE:+GROUP-SECP256R1:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+VERS-TLS1.3:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4" \ @@ -12071,13 +12018,12 @@ run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_128_GCM_SHA256 - gnutls" \ -c "Protocol is TLSv1.3" \ -c "HTTP/1.0 200 OK" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_256_GCM_SHA384 - gnutls" \ "$G_NEXT_SRV -d 4 --priority=NONE:+GROUP-SECP256R1:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+VERS-TLS1.3:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4" \ @@ -12089,7 +12035,6 @@ run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_256_GCM_SHA384 - gnutls" \ -c "HTTP/1.0 200 OK" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED @@ -12106,11 +12051,10 @@ run_test "TLS 1.3: Server side check - openssl" \ -s "tls13 server state: MBEDTLS_SSL_CLIENT_FINISHED" \ -s "tls13 server state: MBEDTLS_SSL_HANDSHAKE_WRAPUP" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_openssl_tls1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_openssl_tls1_3 run_test "TLS 1.3: Server side check - openssl with client authentication" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$O_NEXT_CLI -msg -debug -cert data_files/server5.crt -key data_files/server5.key -tls1_3 -no_middlebox" \ @@ -12128,7 +12072,6 @@ run_test "TLS 1.3: Server side check - openssl with client authentication" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED @@ -12148,7 +12091,6 @@ run_test "TLS 1.3: Server side check - gnutls" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED @@ -12167,7 +12109,6 @@ run_test "TLS 1.3: Server side check - gnutls with client authentication" \ -s "=> parse client hello" \ -s "<= parse client hello" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12187,7 +12128,6 @@ run_test "TLS 1.3: Server side check - mbedtls" \ -s "tls13 server state: MBEDTLS_SSL_HANDSHAKE_WRAPUP" \ -c "HTTP/1.0 200 OK" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12205,7 +12145,6 @@ run_test "TLS 1.3: Server side check - mbedtls with client authentication" \ -s "=> parse client hello" \ -s "<= parse client hello" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12224,7 +12163,6 @@ run_test "TLS 1.3: Server side check - mbedtls with client empty certificate" -s "=> parse client hello" \ -s "<= parse client hello" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12245,7 +12183,6 @@ run_test "TLS 1.3: Server side check - mbedtls with optional client authentic requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: server: HRR check - mbedtls" \ "$P_SRV debug_level=4 force_version=tls13 curves=secp384r1" \ @@ -12260,7 +12197,6 @@ run_test "TLS 1.3: server: HRR check - mbedtls" \ -s "=> write hello retry request" \ -s "<= write hello retry request" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12273,11 +12209,10 @@ run_test "TLS 1.3: Server side check, no server certificate available" \ -s "No certificate available." requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - openssl with sni" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0 \ sni=localhost,data_files/server5.crt,data_files/server5.key,data_files/test-ca_cat12.crt,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -12287,11 +12222,10 @@ run_test "TLS 1.3: Server side check - openssl with sni" \ -s "HTTP/1.0 200 OK" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - gnutls with sni" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0 \ sni=localhost,data_files/server5.crt,data_files/server5.key,data_files/test-ca_cat12.crt,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -12300,12 +12234,11 @@ run_test "TLS 1.3: Server side check - gnutls with sni" \ -s "parse ServerName extension" \ -s "HTTP/1.0 200 OK" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - mbedtls with sni" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -12324,7 +12257,6 @@ done unset TEST_SUITE_NAME # Test 1.3 compatibility mode -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C @@ -12339,12 +12271,11 @@ run_test "TLS 1.3 m->m both peers do not support middlebox compatibility" \ -S "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO" \ -C "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m both with middlebox compat support" \ "$P_SRV debug_level=4 force_version=tls13 tickets=0" \ "$P_CLI debug_level=4" \ @@ -12355,7 +12286,6 @@ run_test "TLS 1.3 m->m both with middlebox compat support" \ -c "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12369,7 +12299,6 @@ run_test "TLS 1.3 m->O both peers do not support middlebox compatibility" \ -C "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12381,11 +12310,10 @@ run_test "TLS 1.3 m->O server with middlebox compat support, not client" \ -c "ChangeCipherSpec invalid in TLS 1.3 without compatibility mode" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->O both with middlebox compat support" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=4" \ @@ -12396,7 +12324,6 @@ run_test "TLS 1.3 m->O both with middlebox compat support" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12411,7 +12338,6 @@ run_test "TLS 1.3 m->G both peers do not support middlebox compatibility" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12424,11 +12350,10 @@ run_test "TLS 1.3 m->G server with middlebox compat support, not client" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->G both with middlebox compat support" \ "$G_NEXT_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4" \ @@ -12437,7 +12362,6 @@ run_test "TLS 1.3 m->G both with middlebox compat support" \ -c "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C @@ -12451,11 +12375,10 @@ run_test "TLS 1.3 O->m both peers do not support middlebox compatibility" \ -C "14 03 03 00 01" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m server with middlebox compat support, not client" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$O_NEXT_CLI -msg -debug -no_middlebox" \ @@ -12464,11 +12387,10 @@ run_test "TLS 1.3 O->m server with middlebox compat support, not client" \ -s "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m both with middlebox compat support" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$O_NEXT_CLI -msg -debug" \ @@ -12480,7 +12402,6 @@ run_test "TLS 1.3 O->m both with middlebox compat support" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C @@ -12496,11 +12417,10 @@ run_test "TLS 1.3 G->m both peers do not support middlebox compatibility" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m server with middlebox compat support, not client" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12513,11 +12433,10 @@ run_test "TLS 1.3 G->m server with middlebox compat support, not client" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m both with middlebox compat support" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12526,7 +12445,6 @@ run_test "TLS 1.3 G->m both with middlebox compat support" \ -s "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO" \ -c "SSL 3.3 ChangeCipherSpec packet received" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C @@ -12542,12 +12460,11 @@ run_test "TLS 1.3 m->m HRR both peers do not support middlebox compatibility" -S "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST" \ -C "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m HRR both with middlebox compat support" \ "$P_SRV debug_level=4 force_version=tls13 curves=secp384r1 tickets=0" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12559,7 +12476,6 @@ run_test "TLS 1.3 m->m HRR both with middlebox compat support" \ -c "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12574,7 +12490,6 @@ run_test "TLS 1.3 m->O HRR both peers do not support middlebox compatibility" -C "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12587,11 +12502,10 @@ run_test "TLS 1.3 m->O HRR server with middlebox compat support, not client" -c "ChangeCipherSpec invalid in TLS 1.3 without compatibility mode" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->O HRR both with middlebox compat support" \ "$O_NEXT_SRV -msg -tls1_3 -groups P-384 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12602,7 +12516,6 @@ run_test "TLS 1.3 m->O HRR both with middlebox compat support" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12618,7 +12531,6 @@ run_test "TLS 1.3 m->G HRR both peers do not support middlebox compatibility" requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12632,11 +12544,10 @@ run_test "TLS 1.3 m->G HRR server with middlebox compat support, not client" requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->G HRR both with middlebox compat support" \ "$G_NEXT_SRV --priority=NORMAL:-GROUP-ALL:+GROUP-SECP384R1:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12645,7 +12556,6 @@ run_test "TLS 1.3 m->G HRR both with middlebox compat support" \ -c "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C @@ -12659,11 +12569,10 @@ run_test "TLS 1.3 O->m HRR both peers do not support middlebox compatibility" -C "14 03 03 00 01" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m HRR server with middlebox compat support, not client" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$O_NEXT_CLI -msg -debug -groups P-256:P-384 -no_middlebox" \ @@ -12672,11 +12581,10 @@ run_test "TLS 1.3 O->m HRR server with middlebox compat support, not client" -s "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST" \ requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m HRR both with middlebox compat support" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$O_NEXT_CLI -msg -debug -groups P-256:P-384" \ @@ -12688,7 +12596,6 @@ run_test "TLS 1.3 O->m HRR both with middlebox compat support" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C @@ -12704,11 +12611,10 @@ run_test "TLS 1.3 G->m HRR both peers do not support middlebox compatibility" requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m HRR server with middlebox compat support, not client" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12721,11 +12627,10 @@ run_test "TLS 1.3 G->m HRR server with middlebox compat support, not client" requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m HRR both with middlebox compat support" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12735,11 +12640,10 @@ run_test "TLS 1.3 G->m HRR both with middlebox compat support" \ -c "SSL 3.3 ChangeCipherSpec packet received" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, m->O" \ "$O_NEXT_SRV_NO_CERT -cert data_files/server2-sha256.crt -key data_files/server2.key -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache @@ -12752,11 +12656,10 @@ run_test "TLS 1.3: Check signature algorithm order, m->O" \ -c "HTTP/1.0 200 [Oo][Kk]" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, m->G" \ "$G_NEXT_SRV_NO_CERT --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key -d 4 @@ -12768,12 +12671,11 @@ run_test "TLS 1.3: Check signature algorithm order, m->G" \ -c "CertificateVerify signature with rsa_pss_rsae_sha512" \ -c "HTTP/1.0 200 [Oo][Kk]" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, m->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12789,11 +12691,10 @@ run_test "TLS 1.3: Check signature algorithm order, m->m" \ -c "HTTP/1.0 200 [Oo][Kk]" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, O->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12808,11 +12709,10 @@ run_test "TLS 1.3: Check signature algorithm order, O->m" \ -s "ssl_tls13_pick_key_cert:selected signature algorithm rsa_pss_rsae_sha512" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, G->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12828,11 +12728,10 @@ run_test "TLS 1.3: Check signature algorithm order, G->m" \ -s "ssl_tls13_pick_key_cert:selected signature algorithm rsa_pss_rsae_sha512" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable signature algorithm, G->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12845,11 +12744,10 @@ run_test "TLS 1.3: Check server no suitable signature algorithm, G->m" \ -S "ssl_tls13_pick_key_cert:check signature algorithm" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable signature algorithm, O->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12861,12 +12759,11 @@ run_test "TLS 1.3: Check server no suitable signature algorithm, O->m" \ 1 \ -S "ssl_tls13_pick_key_cert:check signature algorithm" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable signature algorithm, m->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12878,11 +12775,10 @@ run_test "TLS 1.3: Check server no suitable signature algorithm, m->m" \ -S "ssl_tls13_pick_key_cert:check signature algorithm" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable certificate, G->m" \ "$P_SRV debug_level=4 force_version=tls13 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key @@ -12893,11 +12789,10 @@ run_test "TLS 1.3: Check server no suitable certificate, G->m" \ -s "ssl_tls13_pick_key_cert:no suitable certificate found" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable certificate, O->m" \ "$P_SRV debug_level=4 force_version=tls13 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key @@ -12907,12 +12802,11 @@ run_test "TLS 1.3: Check server no suitable certificate, O->m" \ 1 \ -s "ssl_tls13_pick_key_cert:no suitable certificate found" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable certificate, m->m" \ "$P_SRV debug_level=4 force_version=tls13 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key @@ -12923,11 +12817,10 @@ run_test "TLS 1.3: Check server no suitable certificate, m->m" \ -s "ssl_tls13_pick_key_cert:no suitable certificate found" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check client no signature algorithm, m->O" \ "$O_NEXT_SRV_NO_CERT -cert data_files/server2-sha256.crt -key data_files/server2.key -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache @@ -12938,11 +12831,10 @@ run_test "TLS 1.3: Check client no signature algorithm, m->O" \ -c "no suitable signature algorithm" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check client no signature algorithm, m->G" \ "$G_NEXT_SRV_NO_CERT --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key -d 4 @@ -12952,12 +12844,11 @@ run_test "TLS 1.3: Check client no signature algorithm, m->G" \ 1 \ -c "no suitable signature algorithm" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check client no signature algorithm, m->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12969,12 +12860,11 @@ run_test "TLS 1.3: Check client no signature algorithm, m->m" \ -c "no suitable signature algorithm" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->O" \ "$O_NEXT_SRV -msg -tls1_3 -no_resume_ephemeral -no_cache --num_tickets 4" \ "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ @@ -12986,12 +12876,11 @@ run_test "TLS 1.3: NewSessionTicket: Basic check, m->O" \ -c "HTTP/1.0 200 ok" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->G" \ "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+PSK --disable-client-cert" \ "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ @@ -13004,13 +12893,12 @@ run_test "TLS 1.3: NewSessionTicket: Basic check, m->G" \ -s "This is a resumed session" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED # https://github.com/openssl/openssl/issues/10714 # Until now, OpenSSL client does not support reconnect. skip_next_test @@ -13023,13 +12911,12 @@ run_test "TLS 1.3: NewSessionTicket: Basic check, O->m" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, G->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4" \ "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r" \ @@ -13043,13 +12930,13 @@ run_test "TLS 1.3: NewSessionTicket: Basic check, G->m" \ -s "key exchange mode: psk_ephemeral" \ -s "found pre_shared_key extension" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ @@ -13097,13 +12984,13 @@ run_test "TLS 1.2: Check rsa_pss_rsae compatibility issue, m->G" \ -c "Protocol is TLSv1.2" \ -c "HTTP/1.0 200 [Oo][Kk]" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: servername check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -13121,13 +13008,13 @@ run_test "TLS 1.3: NewSessionTicket: servername check, m->m" \ -s "key exchange mode: psk_ephemeral" \ -s "found pre_shared_key extension" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ From 083da8eb53818da506590f311f684b9d60c24d94 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Thu, 20 Oct 2022 15:53:51 +0200 Subject: [PATCH 0850/1028] tls13: client: Improve coding style Signed-off-by: Ronald Cron --- library/ssl_tls13_client.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 0ff85c674b..72f48577ab 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -736,7 +736,7 @@ static int ssl_tls13_psk_get_identity( mbedtls_ssl_context *ssl, size_t *identity_len ) { - if( !mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) + if( ! mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) return( -1 ); *hash_alg = PSA_ALG_SHA_256; @@ -752,7 +752,7 @@ static int ssl_tls13_psk_get_psk( mbedtls_ssl_context *ssl, size_t *psk_len ) { - if( !mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) + if( ! mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) return( -1 ); *hash_alg = PSA_ALG_SHA_256; From 10bf956334892a5d87e13738684e705ffde92d49 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Fri, 21 Oct 2022 08:51:33 +0200 Subject: [PATCH 0851/1028] tls13: Fix documentation Signed-off-by: Ronald Cron --- docs/architecture/tls13-support.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/architecture/tls13-support.md b/docs/architecture/tls13-support.md index 1c568d82cd..2a1faed00b 100644 --- a/docs/architecture/tls13-support.md +++ b/docs/architecture/tls13-support.md @@ -154,7 +154,7 @@ Support description related to key exchange protocols, certificates and signatures. - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED enables the - support of the ephemeral key exchange mode. If it is the only key exchange + support for the ephemeral key exchange mode. If it is the only key exchange mode enabled, the TLS 1.3 implementation does not contain any code related to PSK based key exchange. The ephemeral key exchange mode requires at least one of the key exchange protocol allowed by the TLS 1.3 specification, the From 454eb9172d3b044284525c7bf7966244872a6ffb Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Fri, 21 Oct 2022 08:56:04 +0200 Subject: [PATCH 0852/1028] ssl-opt.sh: Fix list of TLS 1.2 key exchanges with cert Signed-off-by: Ronald Cron --- tests/ssl-opt.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 996cd1a4f6..e2f9206ec3 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -251,7 +251,7 @@ requires_any_configs_disabled() { fi } -TLS1_2_KEY_EXCHANGES_WITH_CERT="MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED \ +TLS1_2_KEY_EXCHANGES_WITH_CERT="MBEDTLS_KEY_EXCHANGE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED \ From f160ef1dd1b9888555a16f7d0883f603bb40e4cb Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 24 Oct 2022 13:11:38 +0100 Subject: [PATCH 0853/1028] Refactor macro-spanning if in ssl_client2.c Signed-off-by: David Horstmann --- programs/ssl/ssl_client2.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 6377162b2d..2060c8c177 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -1732,15 +1732,17 @@ int main( int argc, char *argv[] ) if( ret != 0 ) break; } - if( ret == 0 ) #endif /* MBEDTLS_PEM_PARSE_C */ - for( i = 0; mbedtls_test_cas_der[i] != NULL; i++ ) + if( ret == 0 ) { - ret = mbedtls_x509_crt_parse_der( &cacert, - (const unsigned char *) mbedtls_test_cas_der[i], - mbedtls_test_cas_der_len[i] ); - if( ret != 0 ) - break; + for( i = 0; mbedtls_test_cas_der[i] != NULL; i++ ) + { + ret = mbedtls_x509_crt_parse_der( &cacert, + (const unsigned char *) mbedtls_test_cas_der[i], + mbedtls_test_cas_der_len[i] ); + if( ret != 0 ) + break; + } } } if( ret < 0 ) From 3f44e5b11a140bb62dc45df9c9cae2c7b1a4dfd4 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 24 Oct 2022 13:12:19 +0100 Subject: [PATCH 0854/1028] Refactor macro-spanning if in ssl_server2.c Signed-off-by: David Horstmann --- programs/ssl/ssl_server2.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 7526bc6cf5..5f84f9fc30 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -2537,15 +2537,17 @@ int main( int argc, char *argv[] ) if( ret != 0 ) break; } - if( ret == 0 ) #endif /* MBEDTLS_PEM_PARSE_C */ - for( i = 0; mbedtls_test_cas_der[i] != NULL; i++ ) + if( ret == 0 ) { - ret = mbedtls_x509_crt_parse_der( &cacert, - (const unsigned char *) mbedtls_test_cas_der[i], - mbedtls_test_cas_der_len[i] ); - if( ret != 0 ) - break; + for( i = 0; mbedtls_test_cas_der[i] != NULL; i++ ) + { + ret = mbedtls_x509_crt_parse_der( &cacert, + (const unsigned char *) mbedtls_test_cas_der[i], + mbedtls_test_cas_der_len[i] ); + if( ret != 0 ) + break; + } } } if( ret < 0 ) From 468c50656e23242907fb6fd34bf9a7c9354e9e36 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 24 Oct 2022 10:30:14 -0400 Subject: [PATCH 0855/1028] Fix key exchange dependencies for ssl_parse_server_ecdh_params Resulting from particular configs in which this code is used. Signed-off-by: Andrzej Kurek --- library/ssl_tls12_client.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 7b62e71a55..f60d0cb567 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -1771,10 +1771,10 @@ static int ssl_parse_server_dh_params( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED || MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \ - defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) || \ - defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) +#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, unsigned char **p, @@ -1839,7 +1839,15 @@ static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, return( 0 ); } +#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED || + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED || + MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ #else +#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_check_server_ecdh_params( const mbedtls_ssl_context *ssl ) { @@ -1869,6 +1877,15 @@ static int ssl_check_server_ecdh_params( const mbedtls_ssl_context *ssl ) return( 0 ); } +#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED || + MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED || + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED || + MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED || + MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, unsigned char **p, @@ -1904,11 +1921,10 @@ static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, return( ret ); } -#endif /* MBEDTLS_USE_PSA_CRYPTO */ -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED || - MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED || - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */ - +#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED || \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED || \ + MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ +#endif /* !MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_parse_server_psk_hint( mbedtls_ssl_context *ssl, From 57d1063db9876938d5c4fdbec5f92c7644fecc79 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 24 Oct 2022 10:32:01 -0400 Subject: [PATCH 0856/1028] Fix tls_prf generic dependencies One version was already surrounded by the USE_PSA define, so the VIA_XX_OR_XX macros were removed; Second version is when USE_PSA is undefined, so MBEDTLS_ macros can be used. Signed-off-by: Andrzej Kurek --- library/ssl_tls.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 4678f53864..c8904f288c 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -5447,8 +5447,8 @@ static psa_status_t setup_psa_key_derivation( psa_key_derivation_operation_t* de return( PSA_SUCCESS ); } -#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ - defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) +#if defined(PSA_WANT_ALG_SHA_384) || \ + defined(PSA_WANT_ALG_SHA_256) MBEDTLS_CHECK_RETURN_CRITICAL static int tls_prf_generic( mbedtls_md_type_t md_type, const unsigned char *secret, size_t slen, @@ -5523,9 +5523,12 @@ static int tls_prf_generic( mbedtls_md_type_t md_type, return( 0 ); } -#endif +#endif /* PSA_WANT_ALG_SHA_256 || PSA_WANT_ALG_SHA_384 */ #else /* MBEDTLS_USE_PSA_CRYPTO */ +#if defined(MBEDTLS_MD_C) && \ + ( defined(MBEDTLS_SHA256_C) || \ + defined(MBEDTLS_SHA384_C) ) MBEDTLS_CHECK_RETURN_CRITICAL static int tls_prf_generic( mbedtls_md_type_t md_type, const unsigned char *secret, size_t slen, @@ -5616,6 +5619,7 @@ exit: return( ret ); } +#endif /* MBEDTLS_MD_C && ( MBEDTLS_SHA256_C || MBEDTLS_SHA384_C ) */ #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) From 409248a73ac5cf0a46f52e0d3138ef1e0a738d8a Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 24 Oct 2022 10:33:21 -0400 Subject: [PATCH 0857/1028] mbedtls_ssl_get_handshake_transcript is unusable without hashes Mark unused variables when compiling without SHA256 and SHA384. In future a proper dependency will be added to TLS 1.2 to enforce either of these hashes to be on. Signed-off-by: Andrzej Kurek --- library/ssl_tls.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index c8904f288c..c3bb9f92c5 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -5261,6 +5261,13 @@ int mbedtls_ssl_get_handshake_transcript( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ default: +#if !defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ + !defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + (void) ssl; + (void) dst; + (void) dst_len; + (void) olen; +#endif break; } return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); From 2c7993c4563fd882bf97d32e449e46a36d07567f Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 24 Oct 2022 10:41:20 -0400 Subject: [PATCH 0858/1028] depends.py: add a config option to unset MBEDTLS_USE_PSA This lets us perform any test without MBEDTLS_USE_PSA Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index ce7fee65c2..8baa8f3af5 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -146,6 +146,8 @@ derived.""" # Turn off options that are not relevant to the tests and slow them down. run_config_py(options, ['full']) run_config_py(options, ['unset', 'MBEDTLS_TEST_HOOKS']) + if options.unset_use_psa: + run_config_py(options, ['unset', 'MBEDTLS_USE_PSA_CRYPTO']) def collect_config_symbols(options): """Read the list of settings from mbedtls_config.h. @@ -534,6 +536,9 @@ def main(): parser.add_argument('--make-command', metavar='CMD', help='Command to run instead of make (e.g. gmake)', action='store', default='make') + parser.add_argument('--unset-use-psa', + help='Unset MBEDTLS_USE_PSA_CRYPTO before any test', + action='store_true', dest='unset_use_psa') parser.add_argument('tasks', metavar='TASKS', nargs='*', help='The domain(s) or job(s) to test (default: all).', default=True) From 54413b10c2350cbf6a637bdb0fc244b931a7bb08 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 20 Oct 2022 05:57:03 +0000 Subject: [PATCH 0859/1028] Add early data support preparatory work Add MBEDTLS_SSL_EARLY_DATA configuration option Define early_data_enabled field in mbedtls_ssl_config Add function mbedtls_ssl_conf_early_data Signed-off-by: Xiaokang Qian --- include/mbedtls/mbedtls_config.h | 8 +++++++ include/mbedtls/ssl.h | 38 ++++++++++++++++++++++++++++++++ library/ssl_misc.h | 3 +++ library/ssl_tls13_generic.c | 8 +++++++ 4 files changed, 57 insertions(+) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 9588ca4b41..8e45726194 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1632,6 +1632,14 @@ */ #define MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS 1 +/** +* \def MBEDTLS_SSL_EARLY_DATA +* +* Allows to add functionality for TLS/DTLS 1.3 early data. +* +*/ +//#define MBEDTLS_SSL_EARLY_DATA + /** * \def MBEDTLS_SSL_PROTO_DTLS * diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 9677c71635..57c07b4d00 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -329,6 +329,12 @@ #define MBEDTLS_SSL_CERT_REQ_CA_LIST_ENABLED 1 #define MBEDTLS_SSL_CERT_REQ_CA_LIST_DISABLED 0 +#define MBEDTLS_SSL_EARLY_DATA_DISABLED 0 +#define MBEDTLS_SSL_EARLY_DATA_ENABLED 1 + +#define MBEDTLS_SSL_EARLY_DATA_OFF 0 +#define MBEDTLS_SSL_EARLY_DATA_ON 1 + #define MBEDTLS_SSL_DTLS_SRTP_MKI_UNSUPPORTED 0 #define MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED 1 @@ -1496,6 +1502,12 @@ struct mbedtls_ssl_config * is not \c 0. */ #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ +#if defined(MBEDTLS_SSL_EARLY_DATA) + int early_data_enabled; /*!< Early data indication: + * - MBEDTLS_SSL_EARLY_DATA_DISABLED, + * - MBEDTLS_SSL_EARLY_DATA_ENABLED */ +#endif /* MBEDTLS_SSL_EARLY_DATA */ + #if defined(MBEDTLS_SSL_ALPN) const char **MBEDTLS_PRIVATE(alpn_list); /*!< ordered list of protocols */ #endif @@ -1905,6 +1917,32 @@ void mbedtls_ssl_conf_transport( mbedtls_ssl_config *conf, int transport ); */ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); +/** +* \brief Set the early_data mode +* Default: disabled on server and client +* +* \param ssl SSL context +* \param early_data can be: +* +* MBEDTLS_SSL_EARLY_DATA_DISABLED: early data functionality will not be used +* (default on server) +* (default on client) +* +* MBEDTLS_SSL_EARLY_DATA_ENABLED: early data functionality is enabled and +* may be negotiated in the handshake. Application using +* early data functionality needs to be aware of the +* lack of replay protection of the early data application +* payloads. +* +* \param max_early_data Max number of bytes allowed for early data (server only). +* \param early_data_callback Callback function when early data is received (server +* only). +*/ +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_EARLY_DATA) +void mbedtls_ssl_conf_early_data( mbedtls_ssl_config *conf, + int early_data_enabled ); +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_EARLY_DATA */ + #if defined(MBEDTLS_X509_CRT_PARSE_C) /** * \brief Set the verification callback (Optional). diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 41bb9c514d..c02ff58b57 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -243,6 +243,9 @@ /* Maximum size in bytes of list in supported elliptic curve ext., RFC 4492 */ #define MBEDTLS_SSL_MAX_CURVE_LIST_LEN 65535 +/* Maximum amount of early data to buffer on the server. */ +#define MBEDTLS_SSL_MAX_EARLY_DATA 1024 + #define MBEDTLS_RECEIVED_SIG_ALGS_SIZE 20 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 48e3675820..5f895932a5 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1080,6 +1080,14 @@ cleanup: #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ +#if defined(MBEDTLS_SSL_EARLY_DATA) +void mbedtls_ssl_conf_early_data( mbedtls_ssl_config *conf, + int early_data_enabled ) +{ + conf->early_data_enabled = early_data; +} +#endif /* MBEDTLS_SSL_EARLY_DATA */ + /* * * STATE HANDLING: Incoming Finished message. From 600804b0e7b7755e77fe9d48dc1b74d678c37c66 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 20 Oct 2022 09:22:38 +0000 Subject: [PATCH 0860/1028] Remove useless early data related macros for the time being Signed-off-by: Xiaokang Qian --- include/mbedtls/mbedtls_config.h | 5 ++++- include/mbedtls/ssl.h | 10 ++-------- library/ssl_misc.h | 3 --- library/ssl_tls13_generic.c | 2 +- 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 8e45726194..9480de0066 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1635,8 +1635,11 @@ /** * \def MBEDTLS_SSL_EARLY_DATA * -* Allows to add functionality for TLS/DTLS 1.3 early data. +* Enable support for RFC 8446 TLS 1.3 early data. * +* Requires: MBEDTLS_SSL_PROTO_TLS1_3 +* +* Comment this to disable support for early data. */ //#define MBEDTLS_SSL_EARLY_DATA diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 57c07b4d00..b8e12ecbac 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -332,9 +332,6 @@ #define MBEDTLS_SSL_EARLY_DATA_DISABLED 0 #define MBEDTLS_SSL_EARLY_DATA_ENABLED 1 -#define MBEDTLS_SSL_EARLY_DATA_OFF 0 -#define MBEDTLS_SSL_EARLY_DATA_ON 1 - #define MBEDTLS_SSL_DTLS_SRTP_MKI_UNSUPPORTED 0 #define MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED 1 @@ -1921,8 +1918,8 @@ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); * \brief Set the early_data mode * Default: disabled on server and client * -* \param ssl SSL context -* \param early_data can be: +* \param conf The SSL configuration to use. +* \param early_data_enabled can be: * * MBEDTLS_SSL_EARLY_DATA_DISABLED: early data functionality will not be used * (default on server) @@ -1934,9 +1931,6 @@ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); * lack of replay protection of the early data application * payloads. * -* \param max_early_data Max number of bytes allowed for early data (server only). -* \param early_data_callback Callback function when early data is received (server -* only). */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_EARLY_DATA) void mbedtls_ssl_conf_early_data( mbedtls_ssl_config *conf, diff --git a/library/ssl_misc.h b/library/ssl_misc.h index c02ff58b57..41bb9c514d 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -243,9 +243,6 @@ /* Maximum size in bytes of list in supported elliptic curve ext., RFC 4492 */ #define MBEDTLS_SSL_MAX_CURVE_LIST_LEN 65535 -/* Maximum amount of early data to buffer on the server. */ -#define MBEDTLS_SSL_MAX_EARLY_DATA 1024 - #define MBEDTLS_RECEIVED_SIG_ALGS_SIZE 20 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 5f895932a5..976a13471a 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1084,7 +1084,7 @@ cleanup: void mbedtls_ssl_conf_early_data( mbedtls_ssl_config *conf, int early_data_enabled ) { - conf->early_data_enabled = early_data; + conf->early_data_enabled = early_data_enabled; } #endif /* MBEDTLS_SSL_EARLY_DATA */ From 72de95dcf53a50691d85dcd166bc584f3a293c1c Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 25 Oct 2022 02:54:33 +0000 Subject: [PATCH 0861/1028] Move function mbedtls_ssl_tls13_conf_early_data to ssl_tls.c Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 21 +++++++++++---------- library/ssl_tls.c | 8 ++++++++ library/ssl_tls13_generic.c | 8 -------- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index b8e12ecbac..78842a12b5 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1500,9 +1500,9 @@ struct mbedtls_ssl_config #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_SSL_EARLY_DATA) - int early_data_enabled; /*!< Early data indication: - * - MBEDTLS_SSL_EARLY_DATA_DISABLED, - * - MBEDTLS_SSL_EARLY_DATA_ENABLED */ + int MBEDTLS_PRIVATE(early_data_enabled); /*!< Early data enablement: + * - MBEDTLS_SSL_EARLY_DATA_DISABLED, + * - MBEDTLS_SSL_EARLY_DATA_ENABLED */ #endif /* MBEDTLS_SSL_EARLY_DATA */ #if defined(MBEDTLS_SSL_ALPN) @@ -1915,15 +1915,14 @@ void mbedtls_ssl_conf_transport( mbedtls_ssl_config *conf, int transport ); void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); /** -* \brief Set the early_data mode -* Default: disabled on server and client +* \brief Set the early data mode +* Default: disabled on server and client * -* \param conf The SSL configuration to use. +* \param conf The SSL configuration to use. * \param early_data_enabled can be: * -* MBEDTLS_SSL_EARLY_DATA_DISABLED: early data functionality will not be used -* (default on server) -* (default on client) +* MBEDTLS_SSL_EARLY_DATA_DISABLED: early data functionality is disabled +* This is the default on client and server. * * MBEDTLS_SSL_EARLY_DATA_ENABLED: early data functionality is enabled and * may be negotiated in the handshake. Application using @@ -1931,9 +1930,11 @@ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); * lack of replay protection of the early data application * payloads. * +* \warning This interface is experimental and may change without notice. +* */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_EARLY_DATA) -void mbedtls_ssl_conf_early_data( mbedtls_ssl_config *conf, +void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, int early_data_enabled ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_EARLY_DATA */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 63a433dbeb..f385f5d4b9 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1425,6 +1425,14 @@ void mbedtls_ssl_conf_tls13_key_exchange_modes( mbedtls_ssl_config *conf, { conf->tls13_kex_modes = kex_modes & MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL; } + +#if defined(MBEDTLS_SSL_EARLY_DATA) +void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, + int early_data_enabled ) +{ + conf->early_data_enabled = early_data_enabled; +} +#endif /* MBEDTLS_SSL_EARLY_DATA */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_X509_CRT_PARSE_C) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 976a13471a..48e3675820 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1080,14 +1080,6 @@ cleanup: #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ -#if defined(MBEDTLS_SSL_EARLY_DATA) -void mbedtls_ssl_conf_early_data( mbedtls_ssl_config *conf, - int early_data_enabled ) -{ - conf->early_data_enabled = early_data_enabled; -} -#endif /* MBEDTLS_SSL_EARLY_DATA */ - /* * * STATE HANDLING: Incoming Finished message. From 95a0730f178980085c8f7acfd3b26c5c67511464 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 25 Oct 2022 02:56:00 +0000 Subject: [PATCH 0862/1028] Change prerequisites of MBEDTLS_SSL_EARLY_DATA and add related check Signed-off-by: Xiaokang Qian --- include/mbedtls/check_config.h | 7 +++++++ include/mbedtls/mbedtls_config.h | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 6a96479947..d36db4a9ec 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -842,6 +842,13 @@ "but no key exchange methods defined with MBEDTLS_KEY_EXCHANGE_xxxx" #endif +/* Early data requires PSK related mode defined */ +#if defined(MBEDTLS_SSL_EARLY_DATA) && \ + ( !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) && \ + !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED)) +#error "MBEDTLS_SSL_EARLY_DATA defined, but not all prerequisites" +#endif + #if defined(MBEDTLS_SSL_PROTO_DTLS) && \ !defined(MBEDTLS_SSL_PROTO_TLS1_2) #error "MBEDTLS_SSL_PROTO_DTLS defined, but not all prerequisites" diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 9480de0066..7ce8083d46 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1640,6 +1640,10 @@ * Requires: MBEDTLS_SSL_PROTO_TLS1_3 * * Comment this to disable support for early data. +* +* This feature is experimental, not completed and thus not ready for +* production. +* */ //#define MBEDTLS_SSL_EARLY_DATA From d69d06fffa726594a18ecb97f27c8f979ac09211 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 25 Oct 2022 06:51:25 +0000 Subject: [PATCH 0863/1028] Improve format issue Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 78842a12b5..a07c723262 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1501,8 +1501,8 @@ struct mbedtls_ssl_config #if defined(MBEDTLS_SSL_EARLY_DATA) int MBEDTLS_PRIVATE(early_data_enabled); /*!< Early data enablement: - * - MBEDTLS_SSL_EARLY_DATA_DISABLED, - * - MBEDTLS_SSL_EARLY_DATA_ENABLED */ + * - MBEDTLS_SSL_EARLY_DATA_DISABLED, + * - MBEDTLS_SSL_EARLY_DATA_ENABLED */ #endif /* MBEDTLS_SSL_EARLY_DATA */ #if defined(MBEDTLS_SSL_ALPN) @@ -1914,6 +1914,7 @@ void mbedtls_ssl_conf_transport( mbedtls_ssl_config *conf, int transport ); */ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_EARLY_DATA) /** * \brief Set the early data mode * Default: disabled on server and client @@ -1933,7 +1934,6 @@ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); * \warning This interface is experimental and may change without notice. * */ -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_EARLY_DATA) void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, int early_data_enabled ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_EARLY_DATA */ From 65fc0de894b1a9c195010652580abcb92c65fe1f Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 25 Oct 2022 09:08:57 +0000 Subject: [PATCH 0864/1028] Improve the prerequisites for early data Signed-off-by: Xiaokang Qian --- include/mbedtls/mbedtls_config.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 7ce8083d46..2524133786 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1637,7 +1637,8 @@ * * Enable support for RFC 8446 TLS 1.3 early data. * -* Requires: MBEDTLS_SSL_PROTO_TLS1_3 +* Requires: MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED or +* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED * * Comment this to disable support for early data. * From 059848ff23682e04773145ff72807feb2155d2da Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 25 Oct 2022 10:16:45 +0100 Subject: [PATCH 0865/1028] Minor changes to asn1write.c Signed-off-by: David Horstmann --- library/asn1write.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/library/asn1write.c b/library/asn1write.c index 6c2a71f004..ee743d84e1 100644 --- a/library/asn1write.c +++ b/library/asn1write.c @@ -78,11 +78,11 @@ int mbedtls_asn1_write_len( unsigned char **p, const unsigned char *start, size_ return( 4 ); } - int len_valid = 1; + int len_is_valid = 1; #if SIZE_MAX > 0xFFFFFFFF - len_valid = ( len <= 0xFFFFFFFF ); + len_is_valid = ( len <= 0xFFFFFFFF ); #endif - if( len_valid ) + if( len_is_valid ) { if( *p - start < 5 ) return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); @@ -94,10 +94,8 @@ int mbedtls_asn1_write_len( unsigned char **p, const unsigned char *start, size_ *--(*p) = 0x84; return( 5 ); } - else - { - return( MBEDTLS_ERR_ASN1_INVALID_LENGTH ); - } + + return( MBEDTLS_ERR_ASN1_INVALID_LENGTH ); } int mbedtls_asn1_write_tag( unsigned char **p, const unsigned char *start, unsigned char tag ) From 9b0eb90131d97974cd82d0f1addcdbc34278caef Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 25 Oct 2022 10:23:34 +0100 Subject: [PATCH 0866/1028] Rename ARIA_SELF_TEST_IF_FAIL Change to ARIA_SELF_TEST_ASSERT Signed-off-by: David Horstmann --- library/aria.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/library/aria.c b/library/aria.c index 43ca762e11..f3c15dabba 100644 --- a/library/aria.c +++ b/library/aria.c @@ -895,7 +895,7 @@ static const uint8_t aria_test2_ctr_ct[3][48] = // CTR ciphertext }; #endif /* MBEDTLS_CIPHER_MODE_CFB */ -#define ARIA_SELF_TEST_IF_FAIL( cond ) \ +#define ARIA_SELF_TEST_ASSERT( cond ) \ do { \ if( cond ) { \ if( verbose ) \ @@ -939,7 +939,7 @@ int mbedtls_aria_self_test( int verbose ) mbedtls_printf( " ARIA-ECB-%d (enc): ", 128 + 64 * i ); mbedtls_aria_setkey_enc( &ctx, aria_test1_ecb_key, 128 + 64 * i ); mbedtls_aria_crypt_ecb( &ctx, aria_test1_ecb_pt, blk ); - ARIA_SELF_TEST_IF_FAIL( + ARIA_SELF_TEST_ASSERT( memcmp( blk, aria_test1_ecb_ct[i], MBEDTLS_ARIA_BLOCKSIZE ) != 0 ); @@ -948,7 +948,7 @@ int mbedtls_aria_self_test( int verbose ) mbedtls_printf( " ARIA-ECB-%d (dec): ", 128 + 64 * i ); mbedtls_aria_setkey_dec( &ctx, aria_test1_ecb_key, 128 + 64 * i ); mbedtls_aria_crypt_ecb( &ctx, aria_test1_ecb_ct[i], blk ); - ARIA_SELF_TEST_IF_FAIL( + ARIA_SELF_TEST_ASSERT( memcmp( blk, aria_test1_ecb_pt, MBEDTLS_ARIA_BLOCKSIZE ) != 0 ); } @@ -969,7 +969,7 @@ int mbedtls_aria_self_test( int verbose ) memset( buf, 0x55, sizeof( buf ) ); mbedtls_aria_crypt_cbc( &ctx, MBEDTLS_ARIA_ENCRYPT, 48, iv, aria_test2_pt, buf ); - ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_cbc_ct[i], 48 ) + ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_cbc_ct[i], 48 ) != 0 ); /* Test CBC decryption */ @@ -980,7 +980,7 @@ int mbedtls_aria_self_test( int verbose ) memset( buf, 0xAA, sizeof( buf ) ); mbedtls_aria_crypt_cbc( &ctx, MBEDTLS_ARIA_DECRYPT, 48, iv, aria_test2_cbc_ct[i], buf ); - ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_pt, 48 ) != 0 ); + ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_pt, 48 ) != 0 ); } if( verbose ) mbedtls_printf( "\n" ); @@ -999,7 +999,7 @@ int mbedtls_aria_self_test( int verbose ) j = 0; mbedtls_aria_crypt_cfb128( &ctx, MBEDTLS_ARIA_ENCRYPT, 48, &j, iv, aria_test2_pt, buf ); - ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_cfb_ct[i], 48 ) != 0 ); + ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_cfb_ct[i], 48 ) != 0 ); /* Test CFB decryption */ if( verbose ) @@ -1010,7 +1010,7 @@ int mbedtls_aria_self_test( int verbose ) j = 0; mbedtls_aria_crypt_cfb128( &ctx, MBEDTLS_ARIA_DECRYPT, 48, &j, iv, aria_test2_cfb_ct[i], buf ); - ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_pt, 48 ) != 0 ); + ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_pt, 48 ) != 0 ); } if( verbose ) mbedtls_printf( "\n" ); @@ -1028,7 +1028,7 @@ int mbedtls_aria_self_test( int verbose ) j = 0; mbedtls_aria_crypt_ctr( &ctx, 48, &j, iv, blk, aria_test2_pt, buf ); - ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_ctr_ct[i], 48 ) != 0 ); + ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_ctr_ct[i], 48 ) != 0 ); /* Test CTR decryption */ if( verbose ) @@ -1039,7 +1039,7 @@ int mbedtls_aria_self_test( int verbose ) j = 0; mbedtls_aria_crypt_ctr( &ctx, 48, &j, iv, blk, aria_test2_ctr_ct[i], buf ); - ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_pt, 48 ) != 0 ); + ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_pt, 48 ) != 0 ); } if( verbose ) mbedtls_printf( "\n" ); From 6e11687ba58a205792af927f02529f380dd0043f Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 25 Oct 2022 10:32:08 +0100 Subject: [PATCH 0867/1028] Minor improvements to ecp.c changes Signed-off-by: David Horstmann --- library/ecp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/ecp.c b/library/ecp.c index 2cec0a0b0c..8326aa138c 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -2287,12 +2287,12 @@ cleanup: mbedtls_free( T ); } - int should_free_R = 0; /* prevent caller from using invalid value */ - should_free_R = ( ret != 0 ); + int should_free_R = ( ret != 0 ); #if defined(MBEDTLS_ECP_RESTARTABLE) /* don't free R while in progress in case R == P */ - should_free_R = should_free_R && ( ret != MBEDTLS_ERR_ECP_IN_PROGRESS ); + if( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ) + should_free_R = 0; #endif if( should_free_R ) mbedtls_ecp_point_free( R ); From 7aee0ec0ba11c3c74002ccd63b1181fee6f576e4 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 25 Oct 2022 10:38:25 +0100 Subject: [PATCH 0868/1028] Minor improvements in ssl_client.c Signed-off-by: David Horstmann --- library/ssl_client.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 08cb3421e6..bfa1c747b1 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -794,7 +794,8 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) */ int renegotiating = 0; #if defined(MBEDTLS_SSL_RENEGOTIATION) - renegotiating = ( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ); + if( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ) + renegotiating = 1; #endif if( !renegotiating ) { From 3a334c2edcd16b184d3a83a0b84e6ad1cfe8e404 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 25 Oct 2022 10:53:44 +0100 Subject: [PATCH 0869/1028] Minor improvements to ssl_tls12_server.c Signed-off-by: David Horstmann --- library/ssl_tls12_server.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index fcf8e9a06e..d4760a3a63 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -714,13 +714,13 @@ static int ssl_pick_cert( mbedtls_ssl_context *ssl, #endif list = ssl->conf->key_cert; - int pk_alg_none = 0; + int pk_alg_is_none = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) - pk_alg_none = ( pk_alg == PSA_ALG_NONE ); + pk_alg_is_none = ( pk_alg == PSA_ALG_NONE ); #else - pk_alg_none = ( pk_alg == MBEDTLS_PK_NONE ); + pk_alg_is_none = ( pk_alg == MBEDTLS_PK_NONE ); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( pk_alg_none ) + if( pk_alg_is_none ) return( 0 ); MBEDTLS_SSL_DEBUG_MSG( 3, ( "ciphersuite requires certificate" ) ); @@ -737,21 +737,21 @@ static int ssl_pick_cert( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_CRT( 3, "candidate certificate chain, certificate", cur->cert ); - int key_type_mismatch = 0; + int key_type_matches = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - key_type_mismatch = ( ( ssl->conf->f_async_sign_start == NULL && - ssl->conf->f_async_decrypt_start == NULL && - ! mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ) || - ! mbedtls_pk_can_do_ext( &cur->cert->pk, pk_alg, pk_usage ) ); + key_type_matches = ( ( ssl->conf->f_async_sign_start != NULL || + ssl->conf->f_async_decrypt_start != NULL || + mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ) && + mbedtls_pk_can_do_ext( &cur->cert->pk, pk_alg, pk_usage ) ); #else - key_type_mismatch = ( - ! mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ); + key_type_matches = ( + mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ); #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ #else - key_type_mismatch = ( ! mbedtls_pk_can_do( &cur->cert->pk, pk_alg ) ); + key_type_matches = mbedtls_pk_can_do( &cur->cert->pk, pk_alg ); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( key_type_mismatch ) + if( !key_type_matches ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "certificate mismatch: key type" ) ); continue; From ec440f2397a8e4326457abb315b2d33496948cf2 Mon Sep 17 00:00:00 2001 From: Hanno Becker Date: Thu, 11 Aug 2022 17:29:32 +0100 Subject: [PATCH 0870/1028] bignum_mod_raw: Ported mbedtls_mpi_get_montgomery_constant_unsafe from prototype Signed-off-by: Minos Galanakis --- library/bignum_core.c | 16 ++++++++++++++++ library/bignum_core.h | 19 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/library/bignum_core.c b/library/bignum_core.c index 00837298b0..457405d277 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -511,4 +511,20 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, mbedtls_ct_mpi_uint_cond_assign( AN_limbs, X, T, (unsigned char) ( carry ^ borrow ) ); } +int mbedtls_mpi_get_montgomery_constant_unsafe( mbedtls_mpi *X, + mbedtls_mpi const *N ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if ( X == NULL || N == NULL ) goto cleanup; + + MBEDTLS_MPI_CHK( mbedtls_mpi_lset( X, 1 ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( X, N->n * 2 * biL ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( X, X, N ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_shrink( X, N->n ) ); + +cleanup: + return( ret ); +} + #endif /* MBEDTLS_BIGNUM_C */ diff --git a/library/bignum_core.h b/library/bignum_core.h index 56a3bf874f..3100bd5ff9 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -412,4 +412,23 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *N, size_t AN_limbs, mbedtls_mpi_uint mm, mbedtls_mpi_uint *T ); +/** + * \brief Calculate initialisation value for fast Montgomery modular + * multiplication + * + * \param[out] X A pointer to the result of the calculation of + * Montgomery const 2^{2*n*biL} mod N. + * \param[in] N Little-endian presentation of the modulus, which must be odd. + * + * \return 0 if successful. + * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if there is not enough space + * to store the value of Montgomery constant squared. + * \return #MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if \p N modulus is zero. + * \return #MBEDTLS_ERR_MPI_NEGATIVE_VALUE if \p N modulus is negative. + * \return #MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED \p N, \p X are NULL + * or other operations fail. + */ +int mbedtls_mpi_get_montgomery_constant_unsafe( mbedtls_mpi *X, + mbedtls_mpi const *N ); + #endif /* MBEDTLS_BIGNUM_CORE_H */ From 1a1b1755548b2b0e773df39922f87def8820ea20 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Mon, 10 Oct 2022 14:50:06 +0100 Subject: [PATCH 0871/1028] test_suite_bignum: Added tests for `mpi_get_montgomery_constant_unsafe()` This patch adds the test for the method calculating the RR. The input/expected data are generated manually using the following Python3 snippet: ~~~~~ import math title="mpi_get_montgomery_constant_unsafe" tt = title + " #{}" in_data = [ "0f", ... ] def limb_no(number, bil=64): return int(math.ceil(int.bit_length(number)/(bil * 1.0))) def calc_rr(number, bil=64 ): return '{:x}'.format(pow(pow(2, limb_no(number, bil) * bil), 2, number)) def calc_rr_str(number, prefix=""): rr64 = calc_rr(number) rr32 = calc_rr(number, bil=32) return '{}:"{:x}":"{}":"{}"'.format(prefix,number, rr32, rr64) print("\n\n".join(["{}\n{}".format(tt.format(in_data.index(v)+1), calc_rr_str(int(v,base=16), title)) for v in in_data])) ~~~~~ Signed-off-by: Minos Galanakis --- tests/suites/test_suite_bignum.function | 78 ++++++++++++++++++++++++ tests/suites/test_suite_bignum.misc.data | 33 ++++++++++ 2 files changed, 111 insertions(+) diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index 4cec0a7c71..e94681a28b 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -1,8 +1,10 @@ /* BEGIN_HEADER */ #include "mbedtls/bignum.h" +#include "bignum_core.h" #include "mbedtls/entropy.h" #include "constant_time_internal.h" #include "test/constant_flow.h" +#include "mbedtls/error.h" #if MBEDTLS_MPI_MAX_BITS > 792 #define MPI_MAX_BITS_LARGER_THAN_792 @@ -1414,6 +1416,82 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_get_montgomery_constant_unsafe_neg( ) +{ + mbedtls_mpi N, RR; + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &RR ); + const char * n = "7ffffffffffffff1"; + + /* Test for NULL input pointers */ + TEST_EQUAL( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, + mbedtls_mpi_get_montgomery_constant_unsafe( NULL, &N ) ); + + TEST_EQUAL( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, + mbedtls_mpi_get_montgomery_constant_unsafe( &RR, NULL ) ); + + /* Test for zero divisor */ + TEST_EQUAL( MBEDTLS_ERR_MPI_DIVISION_BY_ZERO, + mbedtls_mpi_get_montgomery_constant_unsafe( &RR, &N ) ); + + /* Test for negative input */ + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, n ) ); + N.s = -1; + TEST_EQUAL( MBEDTLS_ERR_MPI_NEGATIVE_VALUE, + mbedtls_mpi_get_montgomery_constant_unsafe( &RR, &N ) ); + N.s = 1; + +exit: + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &RR ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_get_montgomery_constant_unsafe( char * input_N, + char * input_RR_X4, + char * input_RR_X8 ) +{ + mbedtls_mpi N, RR, RR_REF; + + /* Select the appropriate output */ + char * input_rr = ( sizeof(mbedtls_mpi_uint) == 4 ) ? input_RR_X4: input_RR_X8; + + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &RR ); + mbedtls_mpi_init( &RR_REF ); + + /* Read inputs */ + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &RR_REF, input_rr ) ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, sign_is_valid(&N)); + TEST_EQUAL( 1, sign_is_valid(&RR_REF)); + + /* Test valid input */ + TEST_EQUAL( 0, mbedtls_mpi_get_montgomery_constant_unsafe( &RR, &N ) ); + + /* Test that the moduli is odd */ + TEST_EQUAL(N.p[0] ^ 1, N.p[0] - 1); + + /* Output is +ve (or zero) */ + TEST_EQUAL( 1, sign_is_valid(&RR)); + + /* rr is updated to a valid pointer */ + TEST_ASSERT( RR.p != NULL ); + + /* Calculated rr matches expected value */ + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &RR, &RR_REF ) == 0 ); + +exit: + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &RR ); + mbedtls_mpi_free( &RR_REF ); +} +/* END_CASE */ + /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ void mpi_selftest( ) { diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index 78afcb64c5..b93b18391d 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1902,6 +1902,39 @@ mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mbedtls_mpi_get_montgomery_constant_unsafe_neg +mpi_get_montgomery_constant_unsafe_neg: + +mbedtls_mpi_get_montgomery_constant_unsafe #1 +mpi_get_montgomery_constant_unsafe:"f":"1":"1" + +mbedtls_mpi_get_montgomery_constant_unsafe #2 +mpi_get_montgomery_constant_unsafe:"fd":"ec":"24" + +mbedtls_mpi_get_montgomery_constant_unsafe #3 +mpi_get_montgomery_constant_unsafe:"eeff99aa37":"a23bd6a686":"a23bd6a686" + +mbedtls_mpi_get_montgomery_constant_unsafe #4 +mpi_get_montgomery_constant_unsafe:"eeff99aa11":"3308cb71":"3308cb71" + +mbedtls_mpi_get_montgomery_constant_unsafe #5 +mpi_get_montgomery_constant_unsafe:"800000000005":"6400000000":"6400000000" + +mbedtls_mpi_get_montgomery_constant_unsafe #6 +mpi_get_montgomery_constant_unsafe:"7fffffffffffffff":"4":"4" + +mbedtls_mpi_get_montgomery_constant_unsafe #7 +mpi_get_montgomery_constant_unsafe:"80fe000a10000001":"5dbc6e833bad575a":"5dbc6e833bad575a" + +mbedtls_mpi_get_montgomery_constant_unsafe #8 +mpi_get_montgomery_constant_unsafe:"25a55a46e5da99c71c7":"11637ce1347edeaf669":"1e455bf7451c05bc711" + +mbedtls_mpi_get_montgomery_constant_unsafe #9 +mpi_get_montgomery_constant_unsafe:"314dc643fb763f2b8c0e2de00879":"1058ad82120c3a10196bb36229c1":"1058ad82120c3a10196bb36229c1" + +mbedtls_mpi_get_montgomery_constant_unsafe #10 +mpi_get_montgomery_constant_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa6af813c808dbf33dbfa11dabd6e6144bef37c6800000000000000000000000000000000051":"78a9f16233856e722242e964006ed8666bfe8e55ea736ea86ce7aa71511e36d9ea1509ad5d821f7777e4a2d885924d15cc11e2ccd85eba69ab04989":"5c9d20a5636b6d7abdec003c1ad87e7c88ebf7238a5d85800d3bc214512cd6269558728307ae94eb389e2ccd85eba69ab0493e8277211ce1be22db" + MPI Selftest depends_on:MBEDTLS_SELF_TEST mpi_selftest: From 4f43f61c6ad965a8a9cae7afc5af875c959b33b6 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 20 Oct 2022 09:46:59 +0100 Subject: [PATCH 0872/1028] Renamed mbedtls_mpi_get_montgomery_constant_unsafe to mpi_core_get_mont_R2_unsafe Signed-off-by: Minos Galanakis --- library/bignum_core.c | 4 +-- library/bignum_core.h | 4 +-- tests/suites/test_suite_bignum.function | 18 +++++----- tests/suites/test_suite_bignum.misc.data | 44 ++++++++++++------------ 4 files changed, 35 insertions(+), 35 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 457405d277..a3547bd64c 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -511,8 +511,8 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, mbedtls_ct_mpi_uint_cond_assign( AN_limbs, X, T, (unsigned char) ( carry ^ borrow ) ); } -int mbedtls_mpi_get_montgomery_constant_unsafe( mbedtls_mpi *X, - mbedtls_mpi const *N ) +int mbedtls_mpi_core_get_mont_R2_unsafe( mbedtls_mpi *X, + mbedtls_mpi const *N ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; diff --git a/library/bignum_core.h b/library/bignum_core.h index 3100bd5ff9..57f27ddf2b 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -428,7 +428,7 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, * \return #MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED \p N, \p X are NULL * or other operations fail. */ -int mbedtls_mpi_get_montgomery_constant_unsafe( mbedtls_mpi *X, - mbedtls_mpi const *N ); +int mbedtls_mpi_core_get_mont_R2_unsafe( mbedtls_mpi *X, + mbedtls_mpi const *N ); #endif /* MBEDTLS_BIGNUM_CORE_H */ diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index e94681a28b..4b5aee5775 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -1417,7 +1417,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_get_montgomery_constant_unsafe_neg( ) +void mpi_core_get_mont_R2_unsafe_neg( ) { mbedtls_mpi N, RR; mbedtls_mpi_init( &N ); @@ -1426,20 +1426,20 @@ void mpi_get_montgomery_constant_unsafe_neg( ) /* Test for NULL input pointers */ TEST_EQUAL( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, - mbedtls_mpi_get_montgomery_constant_unsafe( NULL, &N ) ); + mbedtls_mpi_core_get_mont_R2_unsafe( NULL, &N ) ); TEST_EQUAL( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, - mbedtls_mpi_get_montgomery_constant_unsafe( &RR, NULL ) ); + mbedtls_mpi_core_get_mont_R2_unsafe( &RR, NULL ) ); /* Test for zero divisor */ TEST_EQUAL( MBEDTLS_ERR_MPI_DIVISION_BY_ZERO, - mbedtls_mpi_get_montgomery_constant_unsafe( &RR, &N ) ); + mbedtls_mpi_core_get_mont_R2_unsafe( &RR, &N ) ); /* Test for negative input */ TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, n ) ); N.s = -1; TEST_EQUAL( MBEDTLS_ERR_MPI_NEGATIVE_VALUE, - mbedtls_mpi_get_montgomery_constant_unsafe( &RR, &N ) ); + mbedtls_mpi_core_get_mont_R2_unsafe( &RR, &N ) ); N.s = 1; exit: @@ -1449,9 +1449,9 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_get_montgomery_constant_unsafe( char * input_N, - char * input_RR_X4, - char * input_RR_X8 ) +void mpi_core_get_mont_R2_unsafe( char * input_N, + char * input_RR_X4, + char * input_RR_X8 ) { mbedtls_mpi N, RR, RR_REF; @@ -1471,7 +1471,7 @@ void mpi_get_montgomery_constant_unsafe( char * input_N, TEST_EQUAL( 1, sign_is_valid(&RR_REF)); /* Test valid input */ - TEST_EQUAL( 0, mbedtls_mpi_get_montgomery_constant_unsafe( &RR, &N ) ); + TEST_EQUAL( 0, mbedtls_mpi_core_get_mont_R2_unsafe( &RR, &N ) ); /* Test that the moduli is odd */ TEST_EQUAL(N.p[0] ^ 1, N.p[0] - 1); diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index b93b18391d..0c9e91785f 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1902,38 +1902,38 @@ mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA -mbedtls_mpi_get_montgomery_constant_unsafe_neg -mpi_get_montgomery_constant_unsafe_neg: +mbedtls_mpi_core_get_mont_R2_unsafe_neg +mpi_core_get_mont_R2_unsafe_neg: -mbedtls_mpi_get_montgomery_constant_unsafe #1 -mpi_get_montgomery_constant_unsafe:"f":"1":"1" +mbedtls_mpi_core_get_mont_R2_unsafe #1 +mpi_core_get_mont_R2_unsafe:"f":"1":"1" -mbedtls_mpi_get_montgomery_constant_unsafe #2 -mpi_get_montgomery_constant_unsafe:"fd":"ec":"24" +mbedtls_mpi_core_get_mont_R2_unsafe #2 +mpi_core_get_mont_R2_unsafe:"fd":"ec":"24" -mbedtls_mpi_get_montgomery_constant_unsafe #3 -mpi_get_montgomery_constant_unsafe:"eeff99aa37":"a23bd6a686":"a23bd6a686" +mbedtls_mpi_core_get_mont_R2_unsafe #3 +mpi_core_get_mont_R2_unsafe:"eeff99aa37":"a23bd6a686":"a23bd6a686" -mbedtls_mpi_get_montgomery_constant_unsafe #4 -mpi_get_montgomery_constant_unsafe:"eeff99aa11":"3308cb71":"3308cb71" +mbedtls_mpi_core_get_mont_R2_unsafe #4 +mpi_core_get_mont_R2_unsafe:"eeff99aa11":"3308cb71":"3308cb71" -mbedtls_mpi_get_montgomery_constant_unsafe #5 -mpi_get_montgomery_constant_unsafe:"800000000005":"6400000000":"6400000000" +mbedtls_mpi_core_get_mont_R2_unsafe #5 +mpi_core_get_mont_R2_unsafe:"800000000005":"6400000000":"6400000000" -mbedtls_mpi_get_montgomery_constant_unsafe #6 -mpi_get_montgomery_constant_unsafe:"7fffffffffffffff":"4":"4" +mbedtls_mpi_core_get_mont_R2_unsafe #6 +mpi_core_get_mont_R2_unsafe:"7fffffffffffffff":"4":"4" -mbedtls_mpi_get_montgomery_constant_unsafe #7 -mpi_get_montgomery_constant_unsafe:"80fe000a10000001":"5dbc6e833bad575a":"5dbc6e833bad575a" +mbedtls_mpi_core_get_mont_R2_unsafe #7 +mpi_core_get_mont_R2_unsafe:"80fe000a10000001":"5dbc6e833bad575a":"5dbc6e833bad575a" -mbedtls_mpi_get_montgomery_constant_unsafe #8 -mpi_get_montgomery_constant_unsafe:"25a55a46e5da99c71c7":"11637ce1347edeaf669":"1e455bf7451c05bc711" +mbedtls_mpi_core_get_mont_R2_unsafe #8 +mpi_core_get_mont_R2_unsafe:"25a55a46e5da99c71c7":"11637ce1347edeaf669":"1e455bf7451c05bc711" -mbedtls_mpi_get_montgomery_constant_unsafe #9 -mpi_get_montgomery_constant_unsafe:"314dc643fb763f2b8c0e2de00879":"1058ad82120c3a10196bb36229c1":"1058ad82120c3a10196bb36229c1" +mbedtls_mpi_core_get_mont_R2_unsafe #9 +mpi_core_get_mont_R2_unsafe:"314dc643fb763f2b8c0e2de00879":"1058ad82120c3a10196bb36229c1":"1058ad82120c3a10196bb36229c1" -mbedtls_mpi_get_montgomery_constant_unsafe #10 -mpi_get_montgomery_constant_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa6af813c808dbf33dbfa11dabd6e6144bef37c6800000000000000000000000000000000051":"78a9f16233856e722242e964006ed8666bfe8e55ea736ea86ce7aa71511e36d9ea1509ad5d821f7777e4a2d885924d15cc11e2ccd85eba69ab04989":"5c9d20a5636b6d7abdec003c1ad87e7c88ebf7238a5d85800d3bc214512cd6269558728307ae94eb389e2ccd85eba69ab0493e8277211ce1be22db" +mbedtls_mpi_core_get_mont_R2_unsafe #10 +mpi_core_get_mont_R2_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa6af813c808dbf33dbfa11dabd6e6144bef37c6800000000000000000000000000000000051":"78a9f16233856e722242e964006ed8666bfe8e55ea736ea86ce7aa71511e36d9ea1509ad5d821f7777e4a2d885924d15cc11e2ccd85eba69ab04989":"5c9d20a5636b6d7abdec003c1ad87e7c88ebf7238a5d85800d3bc214512cd6269558728307ae94eb389e2ccd85eba69ab0493e8277211ce1be22db" MPI Selftest depends_on:MBEDTLS_SELF_TEST From b85506e250dc40ba6b4dde887fac5feaf3e47f30 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 20 Oct 2022 09:51:53 +0100 Subject: [PATCH 0873/1028] bignum_core.h: Comment update for mbedtls_mpi_core_get_mont_R2_unsafe Signed-off-by: Minos Galanakis --- library/bignum_core.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 57f27ddf2b..d46aea3e09 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -413,11 +413,12 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, mbedtls_mpi_uint mm, mbedtls_mpi_uint *T ); /** - * \brief Calculate initialisation value for fast Montgomery modular - * multiplication + * \brief Calculate the square of the Montgomery constant. (Needed + * for conversion and operations in Montgomery form.) * * \param[out] X A pointer to the result of the calculation of - * Montgomery const 2^{2*n*biL} mod N. + * the square of the Montgomery constant: + * 2^{2*n*biL} mod N. * \param[in] N Little-endian presentation of the modulus, which must be odd. * * \return 0 if successful. From b9243ef231ce11a9efda4116ab0df3086f58ce91 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 20 Oct 2022 10:06:16 +0100 Subject: [PATCH 0874/1028] test_suite_bignum: Fixed whitespace issues Signed-off-by: Minos Galanakis --- tests/suites/test_suite_bignum.function | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index 4b5aee5775..6b59a517f6 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -1467,17 +1467,17 @@ void mpi_core_get_mont_R2_unsafe( char * input_N, TEST_EQUAL( 0, mbedtls_test_read_mpi( &RR_REF, input_rr ) ); /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, sign_is_valid(&N)); - TEST_EQUAL( 1, sign_is_valid(&RR_REF)); + TEST_EQUAL( 1, sign_is_valid( &N ) ); + TEST_EQUAL( 1, sign_is_valid( &RR_REF ) ); /* Test valid input */ TEST_EQUAL( 0, mbedtls_mpi_core_get_mont_R2_unsafe( &RR, &N ) ); /* Test that the moduli is odd */ - TEST_EQUAL(N.p[0] ^ 1, N.p[0] - 1); + TEST_EQUAL( N.p[0] ^ 1, N.p[0] - 1 ); /* Output is +ve (or zero) */ - TEST_EQUAL( 1, sign_is_valid(&RR)); + TEST_EQUAL( 1, sign_is_valid( &RR ) ); /* rr is updated to a valid pointer */ TEST_ASSERT( RR.p != NULL ); From e1913a8da8c4d868c2e7b408d03b8f48dab8534c Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 20 Oct 2022 10:44:40 +0100 Subject: [PATCH 0875/1028] test_suite_bignum: Updated test cases for mbedtls_mpi_core_get_mont_R2_unsafe This patch adds tests for 192 and 2048 bits inputs. Signed-off-by: Minos Galanakis --- tests/suites/test_suite_bignum.misc.data | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index 0c9e91785f..3aec84d19a 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1933,7 +1933,10 @@ mbedtls_mpi_core_get_mont_R2_unsafe #9 mpi_core_get_mont_R2_unsafe:"314dc643fb763f2b8c0e2de00879":"1058ad82120c3a10196bb36229c1":"1058ad82120c3a10196bb36229c1" mbedtls_mpi_core_get_mont_R2_unsafe #10 -mpi_core_get_mont_R2_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa6af813c808dbf33dbfa11dabd6e6144bef37c6800000000000000000000000000000000051":"78a9f16233856e722242e964006ed8666bfe8e55ea736ea86ce7aa71511e36d9ea1509ad5d821f7777e4a2d885924d15cc11e2ccd85eba69ab04989":"5c9d20a5636b6d7abdec003c1ad87e7c88ebf7238a5d85800d3bc214512cd6269558728307ae94eb389e2ccd85eba69ab0493e8277211ce1be22db" +mpi_core_get_mont_R2_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396" + +mbedtls_mpi_core_get_mont_R2_unsafe #11 +mpi_core_get_mont_R2_unsafe:"d1cece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e" MPI Selftest depends_on:MBEDTLS_SELF_TEST From ae4fb671b4e55396c4538b5e7cb60e7885865891 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 20 Oct 2022 10:47:26 +0100 Subject: [PATCH 0876/1028] mbedtls_mpi_core_get_mont_R2_unsafe: Removed NULL input checking Signed-off-by: Minos Galanakis --- library/bignum_core.c | 2 -- library/bignum_core.h | 3 +-- tests/suites/test_suite_bignum.function | 8 -------- 3 files changed, 1 insertion(+), 12 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index a3547bd64c..ad22a1542a 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -516,8 +516,6 @@ int mbedtls_mpi_core_get_mont_R2_unsafe( mbedtls_mpi *X, { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if ( X == NULL || N == NULL ) goto cleanup; - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( X, 1 ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( X, N->n * 2 * biL ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( X, X, N ) ); diff --git a/library/bignum_core.h b/library/bignum_core.h index d46aea3e09..9870da41f1 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -426,8 +426,7 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, * to store the value of Montgomery constant squared. * \return #MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if \p N modulus is zero. * \return #MBEDTLS_ERR_MPI_NEGATIVE_VALUE if \p N modulus is negative. - * \return #MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED \p N, \p X are NULL - * or other operations fail. + * \return #MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED if other operations fail. */ int mbedtls_mpi_core_get_mont_R2_unsafe( mbedtls_mpi *X, mbedtls_mpi const *N ); diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index 6b59a517f6..b598ea6240 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -4,7 +4,6 @@ #include "mbedtls/entropy.h" #include "constant_time_internal.h" #include "test/constant_flow.h" -#include "mbedtls/error.h" #if MBEDTLS_MPI_MAX_BITS > 792 #define MPI_MAX_BITS_LARGER_THAN_792 @@ -1424,13 +1423,6 @@ void mpi_core_get_mont_R2_unsafe_neg( ) mbedtls_mpi_init( &RR ); const char * n = "7ffffffffffffff1"; - /* Test for NULL input pointers */ - TEST_EQUAL( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, - mbedtls_mpi_core_get_mont_R2_unsafe( NULL, &N ) ); - - TEST_EQUAL( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, - mbedtls_mpi_core_get_mont_R2_unsafe( &RR, NULL ) ); - /* Test for zero divisor */ TEST_EQUAL( MBEDTLS_ERR_MPI_DIVISION_BY_ZERO, mbedtls_mpi_core_get_mont_R2_unsafe( &RR, &N ) ); From 51d638baf6a9081c2a42c845f24cd3591c1c84c5 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Mon, 24 Oct 2022 09:59:44 +0100 Subject: [PATCH 0877/1028] bignum_core: Style update 'mbedtls_mpi_core_get_mont_R2_unsafe' aligns const keyword to match the style of the rest of the module. Documentation is also updated to remove `MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED`. Signed-off-by: Minos Galanakis --- library/bignum_core.c | 2 +- library/bignum_core.h | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index ad22a1542a..675eb3070f 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -512,7 +512,7 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, } int mbedtls_mpi_core_get_mont_R2_unsafe( mbedtls_mpi *X, - mbedtls_mpi const *N ) + const mbedtls_mpi *N ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; diff --git a/library/bignum_core.h b/library/bignum_core.h index 9870da41f1..f3d460929a 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -426,9 +426,8 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, * to store the value of Montgomery constant squared. * \return #MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if \p N modulus is zero. * \return #MBEDTLS_ERR_MPI_NEGATIVE_VALUE if \p N modulus is negative. - * \return #MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED if other operations fail. */ int mbedtls_mpi_core_get_mont_R2_unsafe( mbedtls_mpi *X, - mbedtls_mpi const *N ); + const mbedtls_mpi *N ); #endif /* MBEDTLS_BIGNUM_CORE_H */ From a081c51cd3aac62f5cc28ed901337762d427cfe1 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Mon, 24 Oct 2022 12:16:28 +0100 Subject: [PATCH 0878/1028] Renamed mpi_core_get_mont_R2_unsafe_neg -> mpi_core_get_mont_r2_unsafe_neg Signed-off-by: Minos Galanakis --- library/bignum_core.c | 2 +- library/bignum_core.h | 2 +- tests/suites/test_suite_bignum.function | 10 ++--- tests/suites/test_suite_bignum.misc.data | 48 ++++++++++++------------ 4 files changed, 31 insertions(+), 31 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 675eb3070f..963af5b183 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -511,7 +511,7 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, mbedtls_ct_mpi_uint_cond_assign( AN_limbs, X, T, (unsigned char) ( carry ^ borrow ) ); } -int mbedtls_mpi_core_get_mont_R2_unsafe( mbedtls_mpi *X, +int mbedtls_mpi_core_get_mont_r2_unsafe( mbedtls_mpi *X, const mbedtls_mpi *N ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; diff --git a/library/bignum_core.h b/library/bignum_core.h index f3d460929a..503bc1d33b 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -427,7 +427,7 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, * \return #MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if \p N modulus is zero. * \return #MBEDTLS_ERR_MPI_NEGATIVE_VALUE if \p N modulus is negative. */ -int mbedtls_mpi_core_get_mont_R2_unsafe( mbedtls_mpi *X, +int mbedtls_mpi_core_get_mont_r2_unsafe( mbedtls_mpi *X, const mbedtls_mpi *N ); #endif /* MBEDTLS_BIGNUM_CORE_H */ diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index b598ea6240..fc3e9ef91e 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -1416,7 +1416,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_get_mont_R2_unsafe_neg( ) +void mpi_core_get_mont_r2_unsafe_neg( ) { mbedtls_mpi N, RR; mbedtls_mpi_init( &N ); @@ -1425,13 +1425,13 @@ void mpi_core_get_mont_R2_unsafe_neg( ) /* Test for zero divisor */ TEST_EQUAL( MBEDTLS_ERR_MPI_DIVISION_BY_ZERO, - mbedtls_mpi_core_get_mont_R2_unsafe( &RR, &N ) ); + mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); /* Test for negative input */ TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, n ) ); N.s = -1; TEST_EQUAL( MBEDTLS_ERR_MPI_NEGATIVE_VALUE, - mbedtls_mpi_core_get_mont_R2_unsafe( &RR, &N ) ); + mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); N.s = 1; exit: @@ -1441,7 +1441,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_get_mont_R2_unsafe( char * input_N, +void mpi_core_get_mont_r2_unsafe( char * input_N, char * input_RR_X4, char * input_RR_X8 ) { @@ -1463,7 +1463,7 @@ void mpi_core_get_mont_R2_unsafe( char * input_N, TEST_EQUAL( 1, sign_is_valid( &RR_REF ) ); /* Test valid input */ - TEST_EQUAL( 0, mbedtls_mpi_core_get_mont_R2_unsafe( &RR, &N ) ); + TEST_EQUAL( 0, mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); /* Test that the moduli is odd */ TEST_EQUAL( N.p[0] ^ 1, N.p[0] - 1 ); diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index 3aec84d19a..f3522df8a4 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1902,41 +1902,41 @@ mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA -mbedtls_mpi_core_get_mont_R2_unsafe_neg -mpi_core_get_mont_R2_unsafe_neg: +mbedtls_mpi_core_get_mont_r2_unsafe_neg +mpi_core_get_mont_r2_unsafe_neg: -mbedtls_mpi_core_get_mont_R2_unsafe #1 -mpi_core_get_mont_R2_unsafe:"f":"1":"1" +mbedtls_mpi_core_get_mont_r2_unsafe #1 +mpi_core_get_mont_r2_unsafe:"f":"1":"1" -mbedtls_mpi_core_get_mont_R2_unsafe #2 -mpi_core_get_mont_R2_unsafe:"fd":"ec":"24" +mbedtls_mpi_core_get_mont_r2_unsafe #2 +mpi_core_get_mont_r2_unsafe:"fd":"ec":"24" -mbedtls_mpi_core_get_mont_R2_unsafe #3 -mpi_core_get_mont_R2_unsafe:"eeff99aa37":"a23bd6a686":"a23bd6a686" +mbedtls_mpi_core_get_mont_r2_unsafe #3 +mpi_core_get_mont_r2_unsafe:"eeff99aa37":"a23bd6a686":"a23bd6a686" -mbedtls_mpi_core_get_mont_R2_unsafe #4 -mpi_core_get_mont_R2_unsafe:"eeff99aa11":"3308cb71":"3308cb71" +mbedtls_mpi_core_get_mont_r2_unsafe #4 +mpi_core_get_mont_r2_unsafe:"eeff99aa11":"3308cb71":"3308cb71" -mbedtls_mpi_core_get_mont_R2_unsafe #5 -mpi_core_get_mont_R2_unsafe:"800000000005":"6400000000":"6400000000" +mbedtls_mpi_core_get_mont_r2_unsafe #5 +mpi_core_get_mont_r2_unsafe:"800000000005":"6400000000":"6400000000" -mbedtls_mpi_core_get_mont_R2_unsafe #6 -mpi_core_get_mont_R2_unsafe:"7fffffffffffffff":"4":"4" +mbedtls_mpi_core_get_mont_r2_unsafe #6 +mpi_core_get_mont_r2_unsafe:"7fffffffffffffff":"4":"4" -mbedtls_mpi_core_get_mont_R2_unsafe #7 -mpi_core_get_mont_R2_unsafe:"80fe000a10000001":"5dbc6e833bad575a":"5dbc6e833bad575a" +mbedtls_mpi_core_get_mont_r2_unsafe #7 +mpi_core_get_mont_r2_unsafe:"80fe000a10000001":"5dbc6e833bad575a":"5dbc6e833bad575a" -mbedtls_mpi_core_get_mont_R2_unsafe #8 -mpi_core_get_mont_R2_unsafe:"25a55a46e5da99c71c7":"11637ce1347edeaf669":"1e455bf7451c05bc711" +mbedtls_mpi_core_get_mont_r2_unsafe #8 +mpi_core_get_mont_r2_unsafe:"25a55a46e5da99c71c7":"11637ce1347edeaf669":"1e455bf7451c05bc711" -mbedtls_mpi_core_get_mont_R2_unsafe #9 -mpi_core_get_mont_R2_unsafe:"314dc643fb763f2b8c0e2de00879":"1058ad82120c3a10196bb36229c1":"1058ad82120c3a10196bb36229c1" +mbedtls_mpi_core_get_mont_r2_unsafe #9 +mpi_core_get_mont_r2_unsafe:"314dc643fb763f2b8c0e2de00879":"1058ad82120c3a10196bb36229c1":"1058ad82120c3a10196bb36229c1" -mbedtls_mpi_core_get_mont_R2_unsafe #10 -mpi_core_get_mont_R2_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396" +mbedtls_mpi_core_get_mont_r2_unsafe #10 +mpi_core_get_mont_r2_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396" -mbedtls_mpi_core_get_mont_R2_unsafe #11 -mpi_core_get_mont_R2_unsafe:"d1cece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e" +mbedtls_mpi_core_get_mont_r2_unsafe #11 +mpi_core_get_mont_r2_unsafe:"d1cece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e" MPI Selftest depends_on:MBEDTLS_SELF_TEST From c98871339d8b80c120d40b2611840c8c9bb90b2c Mon Sep 17 00:00:00 2001 From: Hanno Becker Date: Wed, 24 Aug 2022 12:54:36 +0100 Subject: [PATCH 0879/1028] Extract MPI_CORE(add) from the prototype Signed-off-by: Tom Cosgrove --- library/bignum_core.c | 18 +++++++++++++++--- library/bignum_core.h | 23 +++++++++++++++++++++++ 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 00837298b0..3f4e6510aa 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -316,8 +316,6 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *X, return( 0 ); } - - void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, size_t count ) { @@ -360,7 +358,21 @@ void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, } } - +mbedtls_mpi_uint MPI_CORE(add)( mbedtls_mpi_uint *d, + const mbedtls_mpi_uint *l, + const mbedtls_mpi_uint *r, + size_t n ) +{ + mbedtls_mpi_uint c = 0, t; + for( size_t i = 0; i < n; i++ ) + { + t = c; + t += l[i]; c = ( t < l[i] ); + t += r[i]; c += ( t < r[i] ); + d[i] = t; + } + return( c ); +} mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, diff --git a/library/bignum_core.h b/library/bignum_core.h index 56a3bf874f..0d7b89f20a 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -277,6 +277,29 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, size_t count ); +#define MPI_CORE(func) mbedtls_mpi_core_ ## func ## _minimal + +/** + * \brief Add two known-size large unsigned integers, returning the carry. + * + * Calculate l + r where l and r have the same size. + * This function operates modulo (2^ciL)^n and returns the carry + * (1 if there was a wraparound, and 0 otherwise). + * + * d may be aliased to l or r. + * + * \param[out] d The result of the addition. + * \param[in] l The left operand. + * \param[in] r The right operand. + * \param n Number of limbs of \p d, \p l and \p r. + * + * \return 1 if `l + r >= (2^{ciL})^n`, 0 otherwise. + */ +mbedtls_mpi_uint MPI_CORE(add)( mbedtls_mpi_uint *d, + const mbedtls_mpi_uint *l, + const mbedtls_mpi_uint *r, + size_t n ); + /** * \brief Conditional addition of two fixed-size large unsigned integers, * returning the carry. From af7d44b4d2a098317dea61c7692757f5b827713f Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 24 Aug 2022 14:05:26 +0100 Subject: [PATCH 0880/1028] Tidy up, remove MPI_CORE(), apply the naming convention, and use the new mbedtls_mpi_core_add() Signed-off-by: Tom Cosgrove --- library/bignum.c | 31 ++++++++++++++----------------- library/bignum_core.c | 23 +++++++++++++---------- library/bignum_core.h | 29 ++++++++++++++--------------- 3 files changed, 41 insertions(+), 42 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 58cd2f7329..f30df2bc59 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -867,8 +867,7 @@ int mbedtls_mpi_cmp_int( const mbedtls_mpi *X, mbedtls_mpi_sint z ) int mbedtls_mpi_add_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - size_t i, j; - mbedtls_mpi_uint *o, *p, c, tmp; + size_t j; MPI_VALIDATE_RET( X != NULL ); MPI_VALIDATE_RET( A != NULL ); MPI_VALIDATE_RET( B != NULL ); @@ -882,7 +881,7 @@ int mbedtls_mpi_add_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi MBEDTLS_MPI_CHK( mbedtls_mpi_copy( X, A ) ); /* - * X should always be positive as a result of unsigned additions. + * X must always be positive as a result of unsigned additions. */ X->s = 1; @@ -892,27 +891,25 @@ int mbedtls_mpi_add_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, j ) ); - o = B->p; p = X->p; c = 0; + /* j is the number of non-zero limbs of B. Add those to X. */ - /* - * tmp is used because it might happen that p == o - */ - for( i = 0; i < j; i++, o++, p++ ) - { - tmp= *o; - *p += c; c = ( *p < c ); - *p += tmp; c += ( *p < tmp ); - } + mbedtls_mpi_uint *p = X->p; + + mbedtls_mpi_uint c = mbedtls_mpi_core_add( p, p, B->p, j); + + p += j; + + /* Now propagate any carry */ while( c != 0 ) { - if( i >= X->n ) + if( j >= X->n ) { - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, i + 1 ) ); - p = X->p + i; + MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, j + 1 ) ); + p = X->p + j; } - *p += c; c = ( *p < c ); i++; p++; + *p += c; c = ( *p < c ); j++; p++; } cleanup: diff --git a/library/bignum_core.c b/library/bignum_core.c index 3f4e6510aa..6862316c46 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -358,19 +358,22 @@ void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, } } -mbedtls_mpi_uint MPI_CORE(add)( mbedtls_mpi_uint *d, - const mbedtls_mpi_uint *l, - const mbedtls_mpi_uint *r, - size_t n ) +mbedtls_mpi_uint mbedtls_mpi_core_add( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t limbs ) { - mbedtls_mpi_uint c = 0, t; - for( size_t i = 0; i < n; i++ ) + mbedtls_mpi_uint c = 0; + + for( size_t i = 0; i < limbs; i++ ) { - t = c; - t += l[i]; c = ( t < l[i] ); - t += r[i]; c += ( t < r[i] ); - d[i] = t; + mbedtls_mpi_uint t = c + A[i]; + c = ( t < A[i] ); + t += B[i]; + c += ( t < B[i] ); + X[i] = t; } + return( c ); } diff --git a/library/bignum_core.h b/library/bignum_core.h index 0d7b89f20a..8cc985ef33 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -277,28 +277,27 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, size_t count ); -#define MPI_CORE(func) mbedtls_mpi_core_ ## func ## _minimal - /** - * \brief Add two known-size large unsigned integers, returning the carry. + * \brief Add two fixed-size large unsigned integers, returning the carry. * - * Calculate l + r where l and r have the same size. - * This function operates modulo (2^ciL)^n and returns the carry + * Calculates `A + B` where `A` and `B` have the same size. + * + * This function operates modulo 2^(biL*limbs) and returns the carry * (1 if there was a wraparound, and 0 otherwise). * - * d may be aliased to l or r. + * \p X may be aliased to \p A or \p B. * - * \param[out] d The result of the addition. - * \param[in] l The left operand. - * \param[in] r The right operand. - * \param n Number of limbs of \p d, \p l and \p r. + * \param[out] X The result of the addition. + * \param[in] A Little-endian presentation of the left operand. + * \param[in] B Little-endian presentation of the right operand. + * \param limbs Number of limbs of \p X, \p A and \p B. * - * \return 1 if `l + r >= (2^{ciL})^n`, 0 otherwise. + * \return 1 if `A + B >= 2^(biL*limbs)`, 0 otherwise. */ -mbedtls_mpi_uint MPI_CORE(add)( mbedtls_mpi_uint *d, - const mbedtls_mpi_uint *l, - const mbedtls_mpi_uint *r, - size_t n ); +mbedtls_mpi_uint mbedtls_mpi_core_add( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t limbs ); /** * \brief Conditional addition of two fixed-size large unsigned integers, From eee0d6ce6bcf5f280f9986f2679d2e3dd43c4736 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 25 Oct 2022 12:45:50 +0100 Subject: [PATCH 0881/1028] Extend the unit tests for mbedtls_mpi_core_add_if() to also test mbedtls_mpi_core_add() Signed-off-by: Tom Cosgrove --- scripts/mbedtls_dev/bignum_core.py | 8 +-- tests/suites/test_suite_bignum_core.function | 64 +++++++++++++++----- 2 files changed, 53 insertions(+), 19 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index e46364b1a4..0d238e714b 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -144,12 +144,12 @@ class BignumCoreOperationArchSplit(BignumCoreOperation): yield cls(a_value, b_value, 32).create_test_case() yield cls(a_value, b_value, 64).create_test_case() -class BignumCoreAddIf(BignumCoreOperationArchSplit): - """Test cases for bignum core add if.""" +class BignumCoreAddAndAddIf(BignumCoreOperationArchSplit): + """Test cases for bignum core add and add-if.""" count = 0 symbol = "+" - test_function = "mpi_core_add_if" - test_name = "mbedtls_mpi_core_add_if" + test_function = "mpi_core_add_and_add_if" + test_name = "mpi_core_add_and_add_if" def result(self) -> List[str]: result = self.int_a + self.int_b diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index fb5fe3ae49..1cd8b40819 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -359,41 +359,52 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_add_if( char * input_A, char * input_B, - char * input_S, int carry ) +void mpi_core_add_and_add_if( char * input_A, char * input_B, + char * input_S, int carry ) { mbedtls_mpi_uint *A = NULL; /* first value to add */ - size_t A_limbs; mbedtls_mpi_uint *B = NULL; /* second value to add */ - size_t B_limbs; mbedtls_mpi_uint *S = NULL; /* expected result */ - size_t S_limbs; mbedtls_mpi_uint *X = NULL; /* destination - the in/out first operand */ - size_t X_limbs; + size_t A_limbs, B_limbs, S_limbs; TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &B, &B_limbs, input_B ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &S, &S_limbs, input_S ) ); - X_limbs = S_limbs; - ASSERT_ALLOC( X, X_limbs ); - /* add_if expects all operands to be the same length */ + /* add and add_if expect all operands to be the same length */ TEST_EQUAL( A_limbs, B_limbs ); TEST_EQUAL( A_limbs, S_limbs ); size_t limbs = A_limbs; size_t bytes = limbs * sizeof( *A ); + ASSERT_ALLOC( X, limbs ); + /* The test cases have A <= B to avoid repetition, so we test A + B then, * if A != B, B + A. If A == B, we can test when A and B are aliased */ /* A + B */ - /* cond = 0 => X unchanged, no carry */ + /* add => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, B, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* add, alias output and first operand => correct result and carry */ + memcpy( X, A, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, B, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* add, alias output and second operand => correct result and carry */ + memcpy( X, B, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, X, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* add_if: cond = 0 => X unchanged, no carry */ memcpy( X, A, bytes ); TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, B, limbs, 0 ) ); ASSERT_COMPARE( X, bytes, A, bytes ); - /* cond = 1 => correct result and carry */ + /* add_if: cond = 1 => correct result and carry */ TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, B, limbs, 1 ) ); ASSERT_COMPARE( X, bytes, S, bytes ); @@ -401,12 +412,21 @@ void mpi_core_add_if( char * input_A, char * input_B, { /* A == B, so test where A and B are aliased */ - /* cond = 0 => X unchanged, no carry */ + /* add => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, A, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* add, output aliased to both operands => correct result and carry */ + memcpy( X, A, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, X, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* add_if: cond = 0 => X unchanged, no carry */ memcpy( X, B, bytes ); TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, X, limbs, 0 ) ); ASSERT_COMPARE( X, bytes, B, bytes ); - /* cond = 1 => correct result and carry */ + /* add_if: cond = 1 => correct result and carry */ TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, X, limbs, 1 ) ); ASSERT_COMPARE( X, bytes, S, bytes ); } @@ -414,12 +434,26 @@ void mpi_core_add_if( char * input_A, char * input_B, { /* A != B, so test B + A */ - /* cond = 0 => d unchanged, no carry */ + /* add => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, B, A, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* add, alias output and first operand => correct result and carry */ + memcpy( X, B, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, A, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* add, alias output and second operand => correct result and carry */ + memcpy( X, A, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, B, X, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* add_if: cond = 0 => d unchanged, no carry */ memcpy( X, B, bytes ); TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, A, limbs, 0 ) ); ASSERT_COMPARE( X, bytes, B, bytes ); - /* cond = 1 => correct result and carry */ + /* add_if: cond = 1 => correct result and carry */ TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, A, limbs, 1 ) ); ASSERT_COMPARE( X, bytes, S, bytes ); } From 82f131063a871f40f9cd06ceb59735530514f4ef Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 25 Oct 2022 12:46:03 +0100 Subject: [PATCH 0882/1028] Update documentation following review comment Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 8cc985ef33..084af74878 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -282,7 +282,7 @@ void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, * * Calculates `A + B` where `A` and `B` have the same size. * - * This function operates modulo 2^(biL*limbs) and returns the carry + * This function operates modulo `2^(biL*limbs)` and returns the carry * (1 if there was a wraparound, and 0 otherwise). * * \p X may be aliased to \p A or \p B. From 6469fdfb0aa44da4ccb7e55a692deaf02a9bf14c Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 25 Oct 2022 12:46:13 +0100 Subject: [PATCH 0883/1028] Fix whitespace issue spotted in review Signed-off-by: Tom Cosgrove --- library/bignum.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bignum.c b/library/bignum.c index f30df2bc59..d33f07cc46 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -895,7 +895,7 @@ int mbedtls_mpi_add_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi mbedtls_mpi_uint *p = X->p; - mbedtls_mpi_uint c = mbedtls_mpi_core_add( p, p, B->p, j); + mbedtls_mpi_uint c = mbedtls_mpi_core_add( p, p, B->p, j ); p += j; From dd0c8f9c26b576464f72b080da7d922f2c2bce98 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 25 Oct 2022 17:35:29 +0200 Subject: [PATCH 0884/1028] tls13-kex-modes.sh: Remove unnecessary GnuTLS option Signed-off-by: Ronald Cron --- tests/opt-testcases/tls13-kex-modes.sh | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 209c34a2fd..f4997402ff 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -3161,7 +3161,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->G: psk/all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "=> write client hello" \ @@ -3181,7 +3181,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->G: psk/ephemeral_all, fail - no common kex mode" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ -c "=> write client hello" \ @@ -3202,7 +3202,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: psk_all/all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "=> write client hello" \ @@ -3223,7 +3223,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: psk_all/ephemeral_all, fail - no fallback" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ -c "=> write client hello" \ @@ -3243,7 +3243,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: psk_ephemeral/all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "=> write client hello" \ @@ -3263,7 +3263,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: psk_ephemeral/ephemeral_all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "=> write client hello" \ @@ -3284,7 +3284,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: ephemeral/all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ -c "Selected key exchange mode: ephemeral" \ @@ -3297,7 +3297,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: ephemeral/ephemeral_all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ -c "Selected key exchange mode: ephemeral" \ @@ -3312,7 +3312,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: ephemeral_all/all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "=> write client hello" \ @@ -3333,7 +3333,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: ephemeral_all/ephemeral_all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "=> write client hello" \ @@ -3356,7 +3356,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: all/all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "=> write client hello" \ @@ -3378,7 +3378,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: all/ephemeral_all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "=> write client hello" \ From 37ca3a9acdaa2e7d2f1c991d0616181b84275902 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Tue, 25 Oct 2022 15:59:09 +0100 Subject: [PATCH 0885/1028] Moved tests from test_suite_bignum to test_suite_bignum_core This patch moves the following tests to test_suite_bignum_core: * `mbedtls_mpi_core_get_mont_r2_unsafe_neg()` * `mbedtls_mpi_core_get_mont_r2_unsafe()` Signed-off-by: Minos Galanakis --- tests/suites/test_suite_bignum.function | 70 ------------------- tests/suites/test_suite_bignum.misc.data | 36 ---------- tests/suites/test_suite_bignum_core.function | 69 ++++++++++++++++++ tests/suites/test_suite_bignum_core.misc.data | 36 ++++++++++ 4 files changed, 105 insertions(+), 106 deletions(-) diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index fc3e9ef91e..4cec0a7c71 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -1,6 +1,5 @@ /* BEGIN_HEADER */ #include "mbedtls/bignum.h" -#include "bignum_core.h" #include "mbedtls/entropy.h" #include "constant_time_internal.h" #include "test/constant_flow.h" @@ -1415,75 +1414,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ -void mpi_core_get_mont_r2_unsafe_neg( ) -{ - mbedtls_mpi N, RR; - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &RR ); - const char * n = "7ffffffffffffff1"; - - /* Test for zero divisor */ - TEST_EQUAL( MBEDTLS_ERR_MPI_DIVISION_BY_ZERO, - mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); - - /* Test for negative input */ - TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, n ) ); - N.s = -1; - TEST_EQUAL( MBEDTLS_ERR_MPI_NEGATIVE_VALUE, - mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); - N.s = 1; - -exit: - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &RR ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_core_get_mont_r2_unsafe( char * input_N, - char * input_RR_X4, - char * input_RR_X8 ) -{ - mbedtls_mpi N, RR, RR_REF; - - /* Select the appropriate output */ - char * input_rr = ( sizeof(mbedtls_mpi_uint) == 4 ) ? input_RR_X4: input_RR_X8; - - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &RR ); - mbedtls_mpi_init( &RR_REF ); - - /* Read inputs */ - TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &RR_REF, input_rr ) ); - - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, sign_is_valid( &N ) ); - TEST_EQUAL( 1, sign_is_valid( &RR_REF ) ); - - /* Test valid input */ - TEST_EQUAL( 0, mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); - - /* Test that the moduli is odd */ - TEST_EQUAL( N.p[0] ^ 1, N.p[0] - 1 ); - - /* Output is +ve (or zero) */ - TEST_EQUAL( 1, sign_is_valid( &RR ) ); - - /* rr is updated to a valid pointer */ - TEST_ASSERT( RR.p != NULL ); - - /* Calculated rr matches expected value */ - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &RR, &RR_REF ) == 0 ); - -exit: - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &RR ); - mbedtls_mpi_free( &RR_REF ); -} -/* END_CASE */ - /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ void mpi_selftest( ) { diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index f3522df8a4..78afcb64c5 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1902,42 +1902,6 @@ mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA -mbedtls_mpi_core_get_mont_r2_unsafe_neg -mpi_core_get_mont_r2_unsafe_neg: - -mbedtls_mpi_core_get_mont_r2_unsafe #1 -mpi_core_get_mont_r2_unsafe:"f":"1":"1" - -mbedtls_mpi_core_get_mont_r2_unsafe #2 -mpi_core_get_mont_r2_unsafe:"fd":"ec":"24" - -mbedtls_mpi_core_get_mont_r2_unsafe #3 -mpi_core_get_mont_r2_unsafe:"eeff99aa37":"a23bd6a686":"a23bd6a686" - -mbedtls_mpi_core_get_mont_r2_unsafe #4 -mpi_core_get_mont_r2_unsafe:"eeff99aa11":"3308cb71":"3308cb71" - -mbedtls_mpi_core_get_mont_r2_unsafe #5 -mpi_core_get_mont_r2_unsafe:"800000000005":"6400000000":"6400000000" - -mbedtls_mpi_core_get_mont_r2_unsafe #6 -mpi_core_get_mont_r2_unsafe:"7fffffffffffffff":"4":"4" - -mbedtls_mpi_core_get_mont_r2_unsafe #7 -mpi_core_get_mont_r2_unsafe:"80fe000a10000001":"5dbc6e833bad575a":"5dbc6e833bad575a" - -mbedtls_mpi_core_get_mont_r2_unsafe #8 -mpi_core_get_mont_r2_unsafe:"25a55a46e5da99c71c7":"11637ce1347edeaf669":"1e455bf7451c05bc711" - -mbedtls_mpi_core_get_mont_r2_unsafe #9 -mpi_core_get_mont_r2_unsafe:"314dc643fb763f2b8c0e2de00879":"1058ad82120c3a10196bb36229c1":"1058ad82120c3a10196bb36229c1" - -mbedtls_mpi_core_get_mont_r2_unsafe #10 -mpi_core_get_mont_r2_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396" - -mbedtls_mpi_core_get_mont_r2_unsafe #11 -mpi_core_get_mont_r2_unsafe:"d1cece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e" - MPI Selftest depends_on:MBEDTLS_SELF_TEST mpi_selftest: diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index fb5fe3ae49..74ee27a0ba 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -766,3 +766,72 @@ exit: mbedtls_mpi_free( &R ); } /* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_get_mont_r2_unsafe_neg( ) +{ + mbedtls_mpi N, RR; + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &RR ); + const char * n = "7ffffffffffffff1"; + + /* Test for zero divisor */ + TEST_EQUAL( MBEDTLS_ERR_MPI_DIVISION_BY_ZERO, + mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); + + /* Test for negative input */ + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, n ) ); + N.s = -1; + TEST_EQUAL( MBEDTLS_ERR_MPI_NEGATIVE_VALUE, + mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); + N.s = 1; + +exit: + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &RR ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_get_mont_r2_unsafe( char * input_N, + char * input_RR_X4, + char * input_RR_X8 ) +{ + mbedtls_mpi N, RR, RR_REF; + + /* Select the appropriate output */ + char * input_rr = ( sizeof(mbedtls_mpi_uint) == 4 ) ? input_RR_X4: input_RR_X8; + + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &RR ); + mbedtls_mpi_init( &RR_REF ); + + /* Read inputs */ + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &RR_REF, input_rr ) ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, N.s ); + TEST_EQUAL( 1, RR_REF.s ); + + /* Test valid input */ + TEST_EQUAL( 0, mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); + + /* Test that the moduli is odd */ + TEST_EQUAL( N.p[0] ^ 1, N.p[0] - 1 ); + + /* Output is +ve (or zero) */ + TEST_EQUAL( 1, RR_REF.s ); + + /* rr is updated to a valid pointer */ + TEST_ASSERT( RR.p != NULL ); + + /* Calculated rr matches expected value */ + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &RR, &RR_REF ) == 0 ); + +exit: + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &RR ); + mbedtls_mpi_free( &RR_REF ); +} +/* END_CASE */ diff --git a/tests/suites/test_suite_bignum_core.misc.data b/tests/suites/test_suite_bignum_core.misc.data index cb6fe424b0..a8fe9ab9d1 100644 --- a/tests/suites/test_suite_bignum_core.misc.data +++ b/tests/suites/test_suite_bignum_core.misc.data @@ -328,3 +328,39 @@ mpi_montg_init:"baea2d65939296fc2536f18f2a4042a741f33088ecd5000e76c67a466e7a1e69 mbedtls_mpi_montg_init #15 mpi_montg_init:"bf741f75e28a44e271cf43e68dbadd23c72d2f2e1fc78a6d6aaaadf2ccbf26c9a232aff5b3f3f29323b114f3018144ed9438943e07820e222137d3bb229b61671e61f75f6021a26436df9e669929fa392df021f105d2fce0717468a522018721ccde541b9a7b558128419f457ef33a5753f00c20c2d709727eef6278c55b278b10abe1d13e538514128b5dcb7bfd015e0fdcb081555071813974135d5ab5000630a94f5b0f4021a504ab4f3df2403e6140b9939f8bbe714635f5cff10744be03":"aab901da57bba355" + +mbedtls_mpi_core_get_mont_r2_unsafe_neg +mpi_core_get_mont_r2_unsafe_neg: + +mbedtls_mpi_core_get_mont_r2_unsafe #1 +mpi_core_get_mont_r2_unsafe:"f":"1":"1" + +mbedtls_mpi_core_get_mont_r2_unsafe #2 +mpi_core_get_mont_r2_unsafe:"fd":"ec":"24" + +mbedtls_mpi_core_get_mont_r2_unsafe #3 +mpi_core_get_mont_r2_unsafe:"eeff99aa37":"a23bd6a686":"a23bd6a686" + +mbedtls_mpi_core_get_mont_r2_unsafe #4 +mpi_core_get_mont_r2_unsafe:"eeff99aa11":"3308cb71":"3308cb71" + +mbedtls_mpi_core_get_mont_r2_unsafe #5 +mpi_core_get_mont_r2_unsafe:"800000000005":"6400000000":"6400000000" + +mbedtls_mpi_core_get_mont_r2_unsafe #6 +mpi_core_get_mont_r2_unsafe:"7fffffffffffffff":"4":"4" + +mbedtls_mpi_core_get_mont_r2_unsafe #7 +mpi_core_get_mont_r2_unsafe:"80fe000a10000001":"5dbc6e833bad575a":"5dbc6e833bad575a" + +mbedtls_mpi_core_get_mont_r2_unsafe #8 +mpi_core_get_mont_r2_unsafe:"25a55a46e5da99c71c7":"11637ce1347edeaf669":"1e455bf7451c05bc711" + +mbedtls_mpi_core_get_mont_r2_unsafe #9 +mpi_core_get_mont_r2_unsafe:"314dc643fb763f2b8c0e2de00879":"1058ad82120c3a10196bb36229c1":"1058ad82120c3a10196bb36229c1" + +mbedtls_mpi_core_get_mont_r2_unsafe #10 +mpi_core_get_mont_r2_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396" + +mbedtls_mpi_core_get_mont_r2_unsafe #11 +mpi_core_get_mont_r2_unsafe:"d1cece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e" From 93003d87a93879f647251b2f7994f1e57d1b2e9f Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 25 Oct 2022 17:01:19 +0100 Subject: [PATCH 0886/1028] Split out testing of core_add and core_add_if per Janos' request Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_bignum_core.function | 230 ++++++++++++------- 1 file changed, 151 insertions(+), 79 deletions(-) diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 1cd8b40819..c5ef62dde5 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -5,6 +5,154 @@ #include "constant_time_internal.h" #include "test/constant_flow.h" +/** Verifies mbedtls_mpi_core_add(). + * + * \param[in] A Little-endian presentation of the left operand. + * \param[in] B Little-endian presentation of the right operand. + * \param limbs Number of limbs in each MPI (\p A, \p B, \p S and \p X). + * \param[in] S Little-endian presentation of the expected sum. + * \param carry Expected carry from the addition. + * \param[in,out] X Temporary storage to be used for results. + * + * \return 1 if mbedtls_mpi_core_add() passes this test, otherwise 0. + */ +static int mpi_core_verify_add( mbedtls_mpi_uint *A, + mbedtls_mpi_uint *B, + size_t limbs, + mbedtls_mpi_uint *S, + int carry, + mbedtls_mpi_uint *X ) +{ + int ret = 0; + + size_t bytes = limbs * sizeof( *A ); + + /* The test cases have A <= B to avoid repetition, so we test A + B then, + * if A != B, B + A. If A == B, we can test when A and B are aliased */ + + /* A + B */ + + /* A + B => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, B, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* A + B; alias output and first operand => correct result and carry */ + memcpy( X, A, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, B, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* A + B; alias output and second operand => correct result and carry */ + memcpy( X, B, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, X, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + if ( memcmp( A, B, bytes ) == 0 ) + { + /* A == B, so test where A and B are aliased */ + + /* A + A => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, A, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* A + A, output aliased to both operands => correct result and carry */ + memcpy( X, A, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, X, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + } + else + { + /* A != B, so test B + A */ + + /* B + A => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, B, A, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* B + A; alias output and first operand => correct result and carry */ + memcpy( X, B, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, A, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* B + A; alias output and second operand => correct result and carry */ + memcpy( X, A, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, B, X, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + } + + ret = 1; + +exit: + return ret; +} + +/** Verifies mbedtls_mpi_core_add_if(). + * + * \param[in] A Little-endian presentation of the left operand. + * \param[in] B Little-endian presentation of the right operand. + * \param limbs Number of limbs in each MPI (\p A, \p B, \p S and \p X). + * \param[in] S Little-endian presentation of the expected sum. + * \param carry Expected carry from the addition. + * \param[in,out] X Temporary storage to be used for results. + * + * \return 1 if mbedtls_mpi_core_add_if() passes this test, otherwise 0. + */ +static int mpi_core_verify_add_if( mbedtls_mpi_uint *A, + mbedtls_mpi_uint *B, + size_t limbs, + mbedtls_mpi_uint *S, + int carry, + mbedtls_mpi_uint *X ) +{ + int ret = 0; + + size_t bytes = limbs * sizeof( *A ); + + /* The test cases have A <= B to avoid repetition, so we test A + B then, + * if A != B, B + A. If A == B, we can test when A and B are aliased */ + + /* A + B */ + + /* cond = 0 => X unchanged, no carry */ + memcpy( X, A, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, B, limbs, 0 ) ); + ASSERT_COMPARE( X, bytes, A, bytes ); + + /* cond = 1 => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, B, limbs, 1 ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + if ( memcmp( A, B, bytes ) == 0 ) + { + /* A == B, so test where A and B are aliased */ + + /* cond = 0 => X unchanged, no carry */ + memcpy( X, B, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, X, limbs, 0 ) ); + ASSERT_COMPARE( X, bytes, B, bytes ); + + /* cond = 1 => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, X, limbs, 1 ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + } + else + { + /* A != B, so test B + A */ + + /* cond = 0 => d unchanged, no carry */ + memcpy( X, B, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, A, limbs, 0 ) ); + ASSERT_COMPARE( X, bytes, B, bytes ); + + /* cond = 1 => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, A, limbs, 1 ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + } + + ret = 1; + +exit: + return ret; +} + /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -375,88 +523,12 @@ void mpi_core_add_and_add_if( char * input_A, char * input_B, /* add and add_if expect all operands to be the same length */ TEST_EQUAL( A_limbs, B_limbs ); TEST_EQUAL( A_limbs, S_limbs ); - size_t limbs = A_limbs; - size_t bytes = limbs * sizeof( *A ); + size_t limbs = A_limbs; ASSERT_ALLOC( X, limbs ); - /* The test cases have A <= B to avoid repetition, so we test A + B then, - * if A != B, B + A. If A == B, we can test when A and B are aliased */ - - /* A + B */ - - /* add => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, B, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - /* add, alias output and first operand => correct result and carry */ - memcpy( X, A, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, B, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - /* add, alias output and second operand => correct result and carry */ - memcpy( X, B, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, X, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - /* add_if: cond = 0 => X unchanged, no carry */ - memcpy( X, A, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, B, limbs, 0 ) ); - ASSERT_COMPARE( X, bytes, A, bytes ); - - /* add_if: cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, B, limbs, 1 ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - if ( memcmp( A, B, bytes ) == 0 ) - { - /* A == B, so test where A and B are aliased */ - - /* add => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, A, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - /* add, output aliased to both operands => correct result and carry */ - memcpy( X, A, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, X, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - /* add_if: cond = 0 => X unchanged, no carry */ - memcpy( X, B, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, X, limbs, 0 ) ); - ASSERT_COMPARE( X, bytes, B, bytes ); - - /* add_if: cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, X, limbs, 1 ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - } - else - { - /* A != B, so test B + A */ - - /* add => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, B, A, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - /* add, alias output and first operand => correct result and carry */ - memcpy( X, B, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, A, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - /* add, alias output and second operand => correct result and carry */ - memcpy( X, A, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, B, X, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - /* add_if: cond = 0 => d unchanged, no carry */ - memcpy( X, B, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, A, limbs, 0 ) ); - ASSERT_COMPARE( X, bytes, B, bytes ); - - /* add_if: cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, A, limbs, 1 ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - } + TEST_ASSERT( mpi_core_verify_add( A, B, limbs, S, carry, X ) ); + TEST_ASSERT( mpi_core_verify_add_if( A, B, limbs, S, carry, X ) ); exit: mbedtls_free( A ); From a709a0f2c62b89f11a1b277bbf13a5a2d85ce96b Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 27 Sep 2022 16:46:11 +0200 Subject: [PATCH 0887/1028] tls13: Declare PSK ephemeral key exchange mode first In the PSK exchange modes extension declare first PSK ephemeral if we support both PSK ephemeral and PSK. This is aligned with our implementation giving precedence to PSK ephemeral over pure PSK and improve compatibility with GnuTLS. Signed-off-by: Ronald Cron --- library/ssl_tls13_client.c | 16 ++++++++-------- tests/opt-testcases/tls13-kex-modes.sh | 13 +++++++------ tests/ssl-opt.sh | 2 +- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 72f48577ab..ac19f63081 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -648,14 +648,6 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, */ p += 5; - if( mbedtls_ssl_conf_tls13_psk_enabled( ssl ) ) - { - *p++ = MBEDTLS_SSL_TLS1_3_PSK_MODE_PURE; - ke_modes_len++; - - MBEDTLS_SSL_DEBUG_MSG( 4, ( "Adding pure PSK key exchange mode" ) ); - } - if( mbedtls_ssl_conf_tls13_psk_ephemeral_enabled( ssl ) ) { *p++ = MBEDTLS_SSL_TLS1_3_PSK_MODE_ECDHE; @@ -664,6 +656,14 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 4, ( "Adding PSK-ECDHE key exchange mode" ) ); } + if( mbedtls_ssl_conf_tls13_psk_enabled( ssl ) ) + { + *p++ = MBEDTLS_SSL_TLS1_3_PSK_MODE_PURE; + ke_modes_len++; + + MBEDTLS_SSL_DEBUG_MSG( 4, ( "Adding pure PSK key exchange mode" ) ); + } + /* Now write the extension and ke_modes length */ MBEDTLS_PUT_UINT16_BE( ke_modes_len + 1, buf, 2 ); buf[4] = ke_modes_len; diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index f4997402ff..4f62ed69bf 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -3212,7 +3212,7 @@ run_test "TLS 1.3: m->G: psk_all/all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Selected key exchange mode: psk$" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3222,10 +3222,10 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED -run_test "TLS 1.3: m->G: psk_all/ephemeral_all, fail - no fallback" \ +run_test "TLS 1.3: m->G: psk_all/ephemeral_all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - 1 \ + 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -3233,7 +3233,8 @@ run_test "TLS 1.3: m->G: psk_all/ephemeral_all, fail - no fallback" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" + -c "Selected key exchange mode: psk_ephemeral" \ + -c "HTTP/1.0 200 OK" #GNUTLS-SERVER psk_ephemeral mode requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3366,7 +3367,7 @@ run_test "TLS 1.3: m->G: all/all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Selected key exchange mode: psk$" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3388,5 +3389,5 @@ run_test "TLS 1.3: m->G: all/ephemeral_all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Selected key exchange mode: ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index e2f9206ec3..a75b3f593c 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12882,7 +12882,7 @@ requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->G" \ - "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+PSK --disable-client-cert" \ + "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert" \ "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ 0 \ -c "Protocol is TLSv1.3" \ From eac00ad2a6abb35b648f3ad9929eb0d704ab8489 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 13 Sep 2022 10:16:31 +0200 Subject: [PATCH 0888/1028] tls13: server: Note down client not being authenticated in SSL context Signed-off-by: Ronald Cron --- library/ssl_tls13_server.c | 3 + tests/opt-testcases/tls13-compat.sh | 1440 +++++------------- tests/scripts/generate_tls13_compat_tests.py | 2 +- 3 files changed, 364 insertions(+), 1081 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 8b9ac343a0..f82cc04c83 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2429,7 +2429,10 @@ static int ssl_tls13_certificate_request_coordinate( mbedtls_ssl_context *ssl ) authmode = ssl->conf->authmode; if( authmode == MBEDTLS_SSL_VERIFY_NONE ) + { + ssl->session_negotiate->verify_result = MBEDTLS_X509_BADCERT_SKIP_VERIFY; return( SSL_CERTIFICATE_REQUEST_SKIP ); + } ssl->handshake->certificate_request_sent = 1; diff --git a/tests/opt-testcases/tls13-compat.sh b/tests/opt-testcases/tls13-compat.sh index 59e305246a..7f9d46fe4a 100755 --- a/tests/opt-testcases/tls13-compat.sh +++ b/tests/opt-testcases/tls13-compat.sh @@ -27,7 +27,6 @@ # requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -39,12 +38,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -56,12 +54,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -73,12 +70,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -91,12 +87,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -108,12 +103,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -125,12 +119,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -142,12 +135,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -160,12 +152,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -177,12 +168,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -194,12 +184,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -211,12 +200,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -229,12 +217,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -246,12 +233,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -263,12 +249,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -280,12 +265,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -298,12 +282,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -315,12 +298,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -332,12 +314,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -349,12 +330,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -367,12 +347,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -384,12 +363,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -401,12 +379,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -418,12 +395,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -436,12 +412,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -453,12 +428,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -470,12 +444,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -487,12 +460,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -505,12 +477,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -522,12 +493,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -539,12 +509,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -556,12 +525,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -574,12 +542,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -591,12 +558,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -608,12 +574,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -625,12 +590,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -643,12 +607,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -660,12 +623,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -677,12 +639,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -694,12 +655,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -712,12 +672,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -729,12 +688,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -746,12 +704,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -763,12 +720,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -781,12 +737,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -798,12 +753,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -815,12 +769,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -832,12 +785,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -850,12 +802,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -867,12 +818,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -884,12 +834,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -901,12 +850,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -919,12 +867,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -936,12 +883,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -953,12 +899,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -970,12 +915,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -988,12 +932,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1005,12 +948,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1022,12 +964,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1039,12 +980,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1057,12 +997,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1074,12 +1013,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1091,12 +1029,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1108,12 +1045,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1126,12 +1062,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1143,12 +1078,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1160,12 +1094,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1177,12 +1110,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1195,12 +1127,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1212,12 +1143,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1229,12 +1159,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1246,12 +1175,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1264,12 +1192,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1281,12 +1208,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1298,12 +1224,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1315,12 +1240,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1333,12 +1257,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1350,12 +1273,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1367,12 +1289,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1384,12 +1305,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1402,12 +1322,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1419,12 +1338,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1436,12 +1354,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1453,12 +1370,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1471,12 +1387,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1488,12 +1403,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1505,12 +1419,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1522,12 +1435,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1540,12 +1452,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1557,12 +1468,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1574,12 +1484,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1591,12 +1500,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1609,12 +1517,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1626,12 +1533,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1643,12 +1549,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1660,12 +1565,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1678,12 +1582,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1695,12 +1598,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1712,12 +1614,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1729,12 +1630,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1747,12 +1647,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1766,12 +1665,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1785,12 +1683,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1804,12 +1701,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1824,12 +1720,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1843,12 +1738,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1862,12 +1756,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1881,12 +1774,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1901,12 +1793,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1920,12 +1811,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1939,12 +1829,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1958,12 +1847,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1978,12 +1866,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1997,12 +1884,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2016,12 +1902,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2035,12 +1920,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2055,12 +1939,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2074,12 +1957,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2093,12 +1975,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2112,12 +1993,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2132,12 +2012,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2151,12 +2030,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2170,12 +2048,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2189,12 +2066,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2209,12 +2085,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2228,12 +2103,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2247,12 +2121,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2266,12 +2139,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2286,12 +2158,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2305,12 +2176,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2324,12 +2194,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2343,12 +2212,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2363,12 +2231,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2382,12 +2249,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2401,12 +2267,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2420,12 +2285,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2440,12 +2304,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2459,12 +2322,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2478,12 +2340,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2497,12 +2358,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2517,12 +2377,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2536,12 +2395,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2555,12 +2413,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2574,12 +2431,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2594,12 +2450,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2613,12 +2468,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2632,12 +2486,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2651,12 +2504,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2671,12 +2523,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2690,12 +2541,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2709,12 +2559,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2728,12 +2577,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2748,12 +2596,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2767,12 +2614,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2786,12 +2632,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2805,12 +2650,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2825,12 +2669,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2844,12 +2687,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2863,12 +2705,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2882,12 +2723,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2902,12 +2742,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2921,12 +2760,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2940,12 +2778,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2959,12 +2796,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2979,12 +2815,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2998,12 +2833,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3017,12 +2851,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3036,12 +2869,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3056,12 +2888,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3075,12 +2906,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3094,12 +2924,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3113,12 +2942,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3133,12 +2961,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3152,12 +2979,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3171,12 +2997,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3190,12 +3015,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3210,12 +3034,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3229,12 +3052,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3248,12 +3070,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3267,12 +3088,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3287,12 +3107,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3306,12 +3125,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3325,12 +3143,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3344,12 +3161,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3364,12 +3180,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3383,12 +3198,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3402,12 +3216,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3421,12 +3234,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3441,12 +3253,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3460,12 +3271,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3479,12 +3289,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3498,12 +3307,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3518,12 +3326,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3537,12 +3344,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3556,12 +3362,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3575,12 +3380,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3595,12 +3399,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3614,12 +3417,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3633,12 +3435,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3652,12 +3453,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3672,13 +3472,12 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -3696,7 +3495,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -3714,7 +3512,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -3732,7 +3529,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3751,7 +3547,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -3769,7 +3564,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -3787,7 +3581,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -3805,7 +3598,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3824,7 +3616,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -3842,7 +3633,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -3860,7 +3650,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -3878,7 +3667,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3897,7 +3685,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -3915,7 +3702,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -3933,7 +3719,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -3951,7 +3736,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3970,7 +3754,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -3988,7 +3771,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -4006,7 +3788,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -4024,7 +3805,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4043,7 +3823,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ @@ -4061,7 +3840,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ @@ -4079,7 +3857,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ @@ -4097,7 +3874,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4116,7 +3892,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ @@ -4134,7 +3909,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ @@ -4152,7 +3926,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ @@ -4170,7 +3943,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4189,7 +3961,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ @@ -4207,7 +3978,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ @@ -4225,7 +3995,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ @@ -4243,7 +4012,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4262,7 +4030,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ @@ -4280,7 +4047,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ @@ -4298,7 +4064,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ @@ -4316,7 +4081,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4335,7 +4099,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ @@ -4353,7 +4116,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ @@ -4371,7 +4133,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ @@ -4389,7 +4150,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4408,7 +4168,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -4426,7 +4185,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -4444,7 +4202,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -4462,7 +4219,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4481,7 +4237,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -4499,7 +4254,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -4517,7 +4271,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -4535,7 +4288,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4554,7 +4306,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -4572,7 +4323,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -4590,7 +4340,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -4608,7 +4357,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4627,7 +4375,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -4645,7 +4392,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -4663,7 +4409,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -4681,7 +4426,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4700,7 +4444,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -4718,7 +4461,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -4736,7 +4478,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -4754,7 +4495,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4773,7 +4513,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -4791,7 +4530,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -4809,7 +4547,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -4827,7 +4564,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4846,7 +4582,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -4864,7 +4599,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -4882,7 +4616,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -4900,7 +4633,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4919,7 +4651,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -4937,7 +4668,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -4955,7 +4685,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -4973,7 +4702,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4992,7 +4720,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -5010,7 +4737,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -5028,7 +4754,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -5046,7 +4771,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5065,7 +4789,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -5083,7 +4806,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -5101,7 +4823,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -5119,7 +4840,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5138,7 +4858,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -5156,7 +4875,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -5174,7 +4892,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -5192,7 +4909,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5211,7 +4927,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -5229,7 +4944,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -5247,7 +4961,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -5265,7 +4978,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5284,7 +4996,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -5302,7 +5013,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -5320,7 +5030,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -5338,7 +5047,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5357,7 +5065,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -5375,7 +5082,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -5393,7 +5099,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -5411,7 +5116,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5430,7 +5134,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -5448,7 +5151,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -5466,7 +5168,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -5484,7 +5185,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5505,7 +5205,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -5525,7 +5224,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -5545,7 +5243,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -5565,7 +5262,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5586,7 +5282,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -5606,7 +5301,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -5626,7 +5320,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -5646,7 +5339,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5667,7 +5359,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -5687,7 +5378,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -5707,7 +5397,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -5727,7 +5416,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5748,7 +5436,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -5768,7 +5455,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -5788,7 +5474,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -5808,7 +5493,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5829,7 +5513,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -5849,7 +5532,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -5869,7 +5551,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -5889,7 +5570,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5910,7 +5590,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ @@ -5930,7 +5609,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ @@ -5950,7 +5628,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ @@ -5970,7 +5647,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5991,7 +5667,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ @@ -6011,7 +5686,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ @@ -6031,7 +5705,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ @@ -6051,7 +5724,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6072,7 +5744,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ @@ -6092,7 +5763,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ @@ -6112,7 +5782,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ @@ -6132,7 +5801,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6153,7 +5821,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ @@ -6173,7 +5840,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ @@ -6193,7 +5859,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ @@ -6213,7 +5878,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6234,7 +5898,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ @@ -6254,7 +5917,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ @@ -6274,7 +5936,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ @@ -6294,7 +5955,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6315,7 +5975,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -6335,7 +5994,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -6355,7 +6013,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -6375,7 +6032,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6396,7 +6052,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -6416,7 +6071,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -6436,7 +6090,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -6456,7 +6109,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6477,7 +6129,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -6497,7 +6148,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -6517,7 +6167,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -6537,7 +6186,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6558,7 +6206,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -6578,7 +6225,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -6598,7 +6244,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -6618,7 +6263,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6639,7 +6283,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -6659,7 +6302,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -6679,7 +6321,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -6699,7 +6340,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6720,7 +6360,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -6740,7 +6379,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -6760,7 +6398,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -6780,7 +6417,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6801,7 +6437,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -6821,7 +6456,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -6841,7 +6475,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -6861,7 +6494,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6882,7 +6514,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -6902,7 +6533,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -6922,7 +6552,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -6942,7 +6571,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6963,7 +6591,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -6983,7 +6610,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -7003,7 +6629,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -7023,7 +6648,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7044,7 +6668,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -7064,7 +6687,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -7084,7 +6706,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -7104,7 +6725,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7125,7 +6745,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -7145,7 +6764,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -7165,7 +6783,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -7185,7 +6802,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7206,7 +6822,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -7226,7 +6841,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -7246,7 +6860,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -7266,7 +6879,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7287,7 +6899,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -7307,7 +6918,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -7327,7 +6937,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -7347,7 +6956,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7368,7 +6976,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -7388,7 +6995,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -7408,7 +7014,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -7428,7 +7033,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7449,7 +7053,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -7469,7 +7072,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -7489,7 +7091,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -7509,7 +7110,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7527,12 +7127,10 @@ run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -7543,7 +7141,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -7553,12 +7151,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -7569,7 +7165,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -7579,12 +7175,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -7595,7 +7189,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -7605,13 +7199,11 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7623,7 +7215,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -7633,12 +7225,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -7649,7 +7239,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -7659,12 +7249,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -7675,7 +7263,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -7685,12 +7273,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -7701,7 +7287,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -7711,13 +7297,11 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7729,7 +7313,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -7739,12 +7323,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -7755,7 +7337,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -7765,12 +7347,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -7781,7 +7361,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -7791,12 +7371,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -7807,7 +7385,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -7817,13 +7395,11 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7835,7 +7411,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -7845,12 +7421,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -7861,7 +7435,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -7871,12 +7445,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -7887,7 +7459,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -7897,12 +7469,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -7913,7 +7483,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -7923,13 +7493,11 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7941,7 +7509,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -7951,12 +7519,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -7967,7 +7533,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -7977,12 +7543,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -7993,7 +7557,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8003,12 +7567,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -8019,7 +7581,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8029,13 +7591,11 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8047,7 +7607,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8057,12 +7617,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ @@ -8073,7 +7631,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8083,12 +7641,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ @@ -8099,7 +7655,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8109,12 +7665,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ @@ -8125,7 +7679,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8135,13 +7689,11 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8153,7 +7705,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8163,12 +7715,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ @@ -8179,7 +7729,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8189,12 +7739,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ @@ -8205,7 +7753,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8215,12 +7763,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ @@ -8231,7 +7777,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8241,13 +7787,11 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8259,7 +7803,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8269,12 +7813,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ @@ -8285,7 +7827,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8295,12 +7837,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ @@ -8311,7 +7851,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8321,12 +7861,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ @@ -8337,7 +7875,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8347,13 +7885,11 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8365,7 +7901,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8375,12 +7911,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ @@ -8391,7 +7925,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8401,12 +7935,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ @@ -8417,7 +7949,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8427,12 +7959,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ @@ -8443,7 +7973,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8453,13 +7983,11 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8471,7 +7999,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8481,12 +8009,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ @@ -8497,7 +8023,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8507,12 +8033,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ @@ -8523,7 +8047,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8533,12 +8057,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ @@ -8549,7 +8071,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8559,13 +8081,11 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8577,7 +8097,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8587,12 +8107,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -8603,7 +8121,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8613,12 +8131,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -8629,7 +8145,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8639,12 +8155,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -8655,7 +8169,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8665,13 +8179,11 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8683,7 +8195,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8693,12 +8205,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -8709,7 +8219,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8719,12 +8229,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -8735,7 +8243,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8745,12 +8253,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -8761,7 +8267,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8771,13 +8277,11 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8789,7 +8293,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8799,12 +8303,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -8815,7 +8317,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8825,12 +8327,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -8841,7 +8341,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8851,12 +8351,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -8867,7 +8365,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8877,13 +8375,11 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8895,7 +8391,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8905,12 +8401,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -8921,7 +8415,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8931,12 +8425,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -8947,7 +8439,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8957,12 +8449,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -8973,7 +8463,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8983,13 +8473,11 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9001,7 +8489,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9011,12 +8499,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -9027,7 +8513,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9037,12 +8523,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -9053,7 +8537,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9063,12 +8547,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -9079,7 +8561,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9089,13 +8571,11 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9107,7 +8587,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9117,12 +8597,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -9133,7 +8611,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9143,12 +8621,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -9159,7 +8635,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9169,12 +8645,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -9185,7 +8659,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9195,13 +8669,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9213,7 +8685,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9223,12 +8695,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -9239,7 +8709,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9249,12 +8719,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -9265,7 +8733,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9275,12 +8743,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -9291,7 +8757,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9301,13 +8767,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9319,7 +8783,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9329,12 +8793,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -9345,7 +8807,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9355,12 +8817,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -9371,7 +8831,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9381,12 +8841,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -9397,7 +8855,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9407,13 +8865,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9425,7 +8881,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9435,12 +8891,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -9451,7 +8905,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9461,12 +8915,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -9477,7 +8929,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9487,12 +8939,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -9503,7 +8953,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9513,13 +8963,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9531,7 +8979,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9541,12 +8989,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -9557,7 +9003,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9567,12 +9013,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -9583,7 +9027,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9593,12 +9037,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -9609,7 +9051,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9619,13 +9061,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9637,7 +9077,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9647,12 +9087,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -9663,7 +9101,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9673,12 +9111,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -9689,7 +9125,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9699,12 +9135,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -9715,7 +9149,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9725,13 +9159,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9743,7 +9175,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9753,12 +9185,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -9769,7 +9199,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9779,12 +9209,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -9795,7 +9223,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9805,12 +9233,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -9821,7 +9247,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9831,13 +9257,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9849,7 +9273,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9859,12 +9283,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -9875,7 +9297,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9885,12 +9307,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -9901,7 +9321,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9911,12 +9331,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -9927,7 +9345,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9937,13 +9355,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9955,7 +9371,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9965,12 +9381,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -9981,7 +9395,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9991,12 +9405,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -10007,7 +9419,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -10017,12 +9429,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -10033,7 +9443,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -10043,13 +9453,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -10061,7 +9469,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -10071,12 +9479,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -10087,7 +9493,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -10097,12 +9503,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -10113,7 +9517,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -10123,12 +9527,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -10139,7 +9541,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -10149,13 +9551,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -10167,7 +9567,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -10177,7 +9577,6 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10187,12 +9586,11 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp384r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10202,12 +9600,11 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp521r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10217,12 +9614,11 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x25519" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10232,12 +9628,11 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x448" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10247,12 +9642,11 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp256r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10262,12 +9656,11 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp521r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10277,12 +9670,11 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x25519" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10292,12 +9684,11 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x448" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10307,12 +9698,11 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp256r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10322,12 +9712,11 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp384r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10337,12 +9726,11 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x25519" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10352,12 +9740,11 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x448" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10367,12 +9754,11 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp256r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10382,12 +9768,11 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp384r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10397,12 +9782,11 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp521r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10412,12 +9796,11 @@ run_test "TLS 1.3 O->m: HRR x25519 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x448" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10427,12 +9810,11 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp256r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10442,12 +9824,11 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp384r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10457,12 +9838,11 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp521r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10472,12 +9852,11 @@ run_test "TLS 1.3 O->m: HRR x448 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x25519" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10489,12 +9868,11 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp384r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10506,12 +9884,11 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp521r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10523,12 +9900,11 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x25519" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10540,12 +9916,11 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x448" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10557,12 +9932,11 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp256r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10574,12 +9948,11 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp521r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10591,12 +9964,11 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x25519" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10608,12 +9980,11 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x448" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10625,12 +9996,11 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp256r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10642,12 +10012,11 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp384r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10659,12 +10028,11 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x25519" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10676,12 +10044,11 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x448" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10693,12 +10060,11 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp256r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10710,12 +10076,11 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp384r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10727,12 +10092,11 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp521r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10744,12 +10108,11 @@ run_test "TLS 1.3 G->m: HRR x25519 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x448" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10761,12 +10124,11 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp256r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10778,12 +10140,11 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp384r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10795,12 +10156,11 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp521r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10812,13 +10172,12 @@ run_test "TLS 1.3 G->m: HRR x448 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x25519" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> secp384r1" \ @@ -10836,7 +10195,6 @@ run_test "TLS 1.3 m->O: HRR secp256r1 -> secp384r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> secp521r1" \ @@ -10854,7 +10212,6 @@ run_test "TLS 1.3 m->O: HRR secp256r1 -> secp521r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> x25519" \ @@ -10872,7 +10229,6 @@ run_test "TLS 1.3 m->O: HRR secp256r1 -> x25519" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> x448" \ @@ -10890,7 +10246,6 @@ run_test "TLS 1.3 m->O: HRR secp256r1 -> x448" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> secp256r1" \ @@ -10908,7 +10263,6 @@ run_test "TLS 1.3 m->O: HRR secp384r1 -> secp256r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> secp521r1" \ @@ -10926,7 +10280,6 @@ run_test "TLS 1.3 m->O: HRR secp384r1 -> secp521r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> x25519" \ @@ -10944,7 +10297,6 @@ run_test "TLS 1.3 m->O: HRR secp384r1 -> x25519" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> x448" \ @@ -10962,7 +10314,6 @@ run_test "TLS 1.3 m->O: HRR secp384r1 -> x448" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> secp256r1" \ @@ -10980,7 +10331,6 @@ run_test "TLS 1.3 m->O: HRR secp521r1 -> secp256r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> secp384r1" \ @@ -10998,7 +10348,6 @@ run_test "TLS 1.3 m->O: HRR secp521r1 -> secp384r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> x25519" \ @@ -11016,7 +10365,6 @@ run_test "TLS 1.3 m->O: HRR secp521r1 -> x25519" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> x448" \ @@ -11034,7 +10382,6 @@ run_test "TLS 1.3 m->O: HRR secp521r1 -> x448" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp256r1" \ @@ -11052,7 +10399,6 @@ run_test "TLS 1.3 m->O: HRR x25519 -> secp256r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp384r1" \ @@ -11070,7 +10416,6 @@ run_test "TLS 1.3 m->O: HRR x25519 -> secp384r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp521r1" \ @@ -11088,7 +10433,6 @@ run_test "TLS 1.3 m->O: HRR x25519 -> secp521r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> x448" \ @@ -11106,7 +10450,6 @@ run_test "TLS 1.3 m->O: HRR x25519 -> x448" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp256r1" \ @@ -11124,7 +10467,6 @@ run_test "TLS 1.3 m->O: HRR x448 -> secp256r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp384r1" \ @@ -11142,7 +10484,6 @@ run_test "TLS 1.3 m->O: HRR x448 -> secp384r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp521r1" \ @@ -11160,7 +10501,6 @@ run_test "TLS 1.3 m->O: HRR x448 -> secp521r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> x25519" \ @@ -11180,7 +10520,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> secp384r1" \ @@ -11200,7 +10539,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> secp521r1" \ @@ -11220,7 +10558,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> x25519" \ @@ -11240,7 +10577,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> x448" \ @@ -11260,7 +10596,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> secp256r1" \ @@ -11280,7 +10615,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> secp521r1" \ @@ -11300,7 +10634,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> x25519" \ @@ -11320,7 +10653,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> x448" \ @@ -11340,7 +10672,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> secp256r1" \ @@ -11360,7 +10691,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> secp384r1" \ @@ -11380,7 +10710,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> x25519" \ @@ -11400,7 +10729,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> x448" \ @@ -11420,7 +10748,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp256r1" \ @@ -11440,7 +10767,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp384r1" \ @@ -11460,7 +10786,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp521r1" \ @@ -11480,7 +10805,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> x448" \ @@ -11500,7 +10824,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp256r1" \ @@ -11520,7 +10843,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp384r1" \ @@ -11540,7 +10862,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp521r1" \ @@ -11560,7 +10881,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> x25519" \ @@ -11577,12 +10897,10 @@ run_test "TLS 1.3 m->G: HRR x448 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> secp384r1" \ @@ -11591,7 +10909,7 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp256r1 ( 17 )" \ -c "NamedGroup: secp384r1 ( 18 )" \ @@ -11602,12 +10920,10 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> secp521r1" \ @@ -11616,7 +10932,7 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp256r1 ( 17 )" \ -c "NamedGroup: secp521r1 ( 19 )" \ @@ -11627,12 +10943,10 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> x25519" \ @@ -11641,7 +10955,7 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp256r1 ( 17 )" \ -c "NamedGroup: x25519 ( 1d )" \ @@ -11652,12 +10966,10 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> x448" \ @@ -11666,7 +10978,7 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp256r1 ( 17 )" \ -c "NamedGroup: x448 ( 1e )" \ @@ -11677,12 +10989,10 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> secp256r1" \ @@ -11691,7 +11001,7 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp384r1 ( 18 )" \ -c "NamedGroup: secp256r1 ( 17 )" \ @@ -11702,12 +11012,10 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> secp521r1" \ @@ -11716,7 +11024,7 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp384r1 ( 18 )" \ -c "NamedGroup: secp521r1 ( 19 )" \ @@ -11727,12 +11035,10 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> x25519" \ @@ -11741,7 +11047,7 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp384r1 ( 18 )" \ -c "NamedGroup: x25519 ( 1d )" \ @@ -11752,12 +11058,10 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> x448" \ @@ -11766,7 +11070,7 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp384r1 ( 18 )" \ -c "NamedGroup: x448 ( 1e )" \ @@ -11777,12 +11081,10 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> secp256r1" \ @@ -11791,7 +11093,7 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp521r1 ( 19 )" \ -c "NamedGroup: secp256r1 ( 17 )" \ @@ -11802,12 +11104,10 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> secp384r1" \ @@ -11816,7 +11116,7 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp521r1 ( 19 )" \ -c "NamedGroup: secp384r1 ( 18 )" \ @@ -11827,12 +11127,10 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> x25519" \ @@ -11841,7 +11139,7 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp521r1 ( 19 )" \ -c "NamedGroup: x25519 ( 1d )" \ @@ -11852,12 +11150,10 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> x448" \ @@ -11866,7 +11162,7 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp521r1 ( 19 )" \ -c "NamedGroup: x448 ( 1e )" \ @@ -11877,12 +11173,10 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp256r1" \ @@ -11891,7 +11185,7 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: x25519 ( 1d )" \ -c "NamedGroup: secp256r1 ( 17 )" \ @@ -11902,12 +11196,10 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp384r1" \ @@ -11916,7 +11208,7 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: x25519 ( 1d )" \ -c "NamedGroup: secp384r1 ( 18 )" \ @@ -11927,12 +11219,10 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp521r1" \ @@ -11941,7 +11231,7 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: x25519 ( 1d )" \ -c "NamedGroup: secp521r1 ( 19 )" \ @@ -11952,12 +11242,10 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> x448" \ @@ -11966,7 +11254,7 @@ run_test "TLS 1.3 m->m: HRR x25519 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: x25519 ( 1d )" \ -c "NamedGroup: x448 ( 1e )" \ @@ -11977,12 +11265,10 @@ run_test "TLS 1.3 m->m: HRR x25519 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp256r1" \ @@ -11991,7 +11277,7 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: x448 ( 1e )" \ -c "NamedGroup: secp256r1 ( 17 )" \ @@ -12002,12 +11288,10 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp384r1" \ @@ -12016,7 +11300,7 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: x448 ( 1e )" \ -c "NamedGroup: secp384r1 ( 18 )" \ @@ -12027,12 +11311,10 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp521r1" \ @@ -12041,7 +11323,7 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: x448 ( 1e )" \ -c "NamedGroup: secp521r1 ( 19 )" \ @@ -12052,12 +11334,10 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> x25519" \ @@ -12066,7 +11346,7 @@ run_test "TLS 1.3 m->m: HRR x448 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: x448 ( 1e )" \ -c "NamedGroup: x25519 ( 1d )" \ diff --git a/tests/scripts/generate_tls13_compat_tests.py b/tests/scripts/generate_tls13_compat_tests.py index 764c0ee3f8..1d665e046d 100755 --- a/tests/scripts/generate_tls13_compat_tests.py +++ b/tests/scripts/generate_tls13_compat_tests.py @@ -398,7 +398,7 @@ class MbedTLSServ(MbedTLSBase): named_group=named_group, iana_value=NAMED_GROUP_IANA_VALUE[named_group])] - check_strings.append("Verifying peer X.509 certificate... ok") + check_strings.append("Certificate verification was skipped") return ['-s "{}"'.format(i) for i in check_strings] def pre_cmd(self): From 93dcb1ba8d1b139b9bb77cfca473840b3997f162 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 3 Oct 2022 12:02:17 +0200 Subject: [PATCH 0889/1028] Update TLS 1.3 support document Signed-off-by: Ronald Cron --- docs/architecture/tls13-support.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/architecture/tls13-support.md b/docs/architecture/tls13-support.md index 2a1faed00b..f30590bd47 100644 --- a/docs/architecture/tls13-support.md +++ b/docs/architecture/tls13-support.md @@ -28,9 +28,12 @@ Support description - Mbed TLS does not support DHE key establishment. - - Mbed TLS does not support pre-shared keys, including any form of - session resumption. This implies that it does not support sending early - data (0-RTT data). + - Mbed TLS supports pre-shared keys for key establishment, pre-shared keys + provisioned externally as well as provisioned via the ticket mechanism. + + - Mbed TLS supports session resumption via the ticket mechanism. + + - Mbed TLS does not support sending or receiving early data (0-RTT data). - Supported cipher suites: depends on the library configuration. Potentially all of them: @@ -54,8 +57,8 @@ Support description | server_certificate_type | no | | padding | no | | key_share | YES | - | pre_shared_key | no | - | psk_key_exchange_modes | no | + | pre_shared_key | YES | + | psk_key_exchange_modes | YES | | early_data | no | | cookie | no | | supported_versions | YES | @@ -118,7 +121,7 @@ Support description | MBEDTLS_SSL_RENEGOTIATION | n/a | | MBEDTLS_SSL_MAX_FRAGMENT_LENGTH | no | | | | - | MBEDTLS_SSL_SESSION_TICKETS | no | + | MBEDTLS_SSL_SESSION_TICKETS | yes | | MBEDTLS_SSL_SERVER_NAME_INDICATION | yes | | MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH | no | | | | @@ -175,8 +178,7 @@ Prototype upstreaming status The following parts of the TLS 1.3 prototype remain to be upstreamed: -- Pre-shared keys, session resumption and 0-RTT data (both client and server - side). +- Sending (client) and receiving (server) early data (0-RTT data). - New TLS Message Processing Stack (MPS) From 78bffd1ff59fa7cdca7198e03c7eb324d6a85b92 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 25 Oct 2022 21:02:33 +0200 Subject: [PATCH 0890/1028] Fix spelling of a disabled option Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 74c56d5794..a99ebbc36f 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1564,7 +1564,7 @@ component_test_crypto_for_psa_service () { # System stuff scripts/config.py unset MBEDTLS_ERROR_C scripts/config.py unset MBEDTLS_TIMING_C - scripts/config.py unset MBEDTLS_VERSION_FEATURES_C + scripts/config.py unset MBEDTLS_VERSION_FEATURES # Crypto stuff with no PSA interface scripts/config.py unset MBEDTLS_BASE64_C scripts/config.py unset MBEDTLS_NIST_KW_C From 1f10807837b0f47c4b606bd2fbfa8be5337f4cfb Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 25 Oct 2022 21:02:56 +0200 Subject: [PATCH 0891/1028] Disable pk in the PSA service config build It's not needed as a feature. It gets reenabled automatically in build_info.h like pk_write and pk_parse, but that's an implementation detail. Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index a99ebbc36f..9bd2c2d061 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1575,6 +1575,7 @@ component_test_crypto_for_psa_service () { # MBEDTLS_PK_PARSE_C and MBEDTLS_PK_WRITE_C are actually currently needed # in PSA code to work with RSA keys. We don't require users to set those: # they will be reenabled in build_info.h. + scripts/config.py unset MBEDTLS_PK_C scripts/config.py unset MBEDTLS_PK_PARSE_C scripts/config.py unset MBEDTLS_PK_WRITE_C make CFLAGS='-O1 -Werror' all test From 649e04e3d1a1b56b858cc58e20514b9c564b6fb5 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 25 Oct 2022 21:05:57 +0200 Subject: [PATCH 0892/1028] PSA service config build: note why we aren't disabling cipher and md Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 9bd2c2d061..6e5d9236e7 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1567,6 +1567,8 @@ component_test_crypto_for_psa_service () { scripts/config.py unset MBEDTLS_VERSION_FEATURES # Crypto stuff with no PSA interface scripts/config.py unset MBEDTLS_BASE64_C + # Keep MBEDTLS_CIPHER_C because psa_crypto_cipher, CCM and GCM need it. + # Keep MBEDTLS_MD_C because deterministic ECDSA needs it for HMAC_DRBG. scripts/config.py unset MBEDTLS_NIST_KW_C scripts/config.py unset MBEDTLS_PEM_PARSE_C scripts/config.py unset MBEDTLS_PEM_WRITE_C From b06f0717b3504fec669d93e17171a040e08cc269 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 25 Oct 2022 21:06:11 +0200 Subject: [PATCH 0893/1028] PSA service config build: disable more modules not used by PSA Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 6e5d9236e7..30d10cb108 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1568,6 +1568,7 @@ component_test_crypto_for_psa_service () { # Crypto stuff with no PSA interface scripts/config.py unset MBEDTLS_BASE64_C # Keep MBEDTLS_CIPHER_C because psa_crypto_cipher, CCM and GCM need it. + scripts/config.py unset MBEDTLS_HKDF_C # PSA's HKDF is independent # Keep MBEDTLS_MD_C because deterministic ECDSA needs it for HMAC_DRBG. scripts/config.py unset MBEDTLS_NIST_KW_C scripts/config.py unset MBEDTLS_PEM_PARSE_C From 4ef4c89af20c267ad858232c8c5345b318814ffb Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 25 Oct 2022 13:39:16 +0000 Subject: [PATCH 0894/1028] Fix CI failure in build_info.h Signed-off-by: Xiaokang Qian --- include/mbedtls/build_info.h | 1 + include/mbedtls/mbedtls_config.h | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index 9c9a345465..006233a377 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -96,6 +96,7 @@ #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +#undef MBEDTLS_SSL_EARLY_DATA #endif #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) || \ diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 2524133786..fcdd5782aa 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1640,7 +1640,8 @@ * Requires: MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED or * MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED * -* Comment this to disable support for early data. +* Comment this to disable support for early data. If MBEDTLS_SSL_PROTO_TLS1_3 +* is not enabled, this option does not have any effect on the build. * * This feature is experimental, not completed and thus not ready for * production. From 72dbfef6e4b48d02327f663dcc695cc2abadfa75 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 26 Oct 2022 06:33:57 +0000 Subject: [PATCH 0895/1028] Improve coding styles Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 2 +- library/ssl_tls.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index a07c723262..01ede4088d 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1935,7 +1935,7 @@ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); * */ void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, - int early_data_enabled ); + int early_data_enabled ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_EARLY_DATA */ #if defined(MBEDTLS_X509_CRT_PARSE_C) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index f385f5d4b9..6b545a6f3e 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1428,7 +1428,7 @@ void mbedtls_ssl_conf_tls13_key_exchange_modes( mbedtls_ssl_config *conf, #if defined(MBEDTLS_SSL_EARLY_DATA) void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, - int early_data_enabled ) + int early_data_enabled ) { conf->early_data_enabled = early_data_enabled; } From 7cb0077c5d611a9782ed009c52e4da20cda06cbb Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 24 Oct 2022 10:49:22 -0400 Subject: [PATCH 0896/1028] Add all.sh components running depends.py without MBEDTLS_USE_PSA_CRYPTO Signed-off-by: Andrzej Kurek --- tests/scripts/all.sh | 49 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 61d675f4fc..4c81174165 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1777,38 +1777,75 @@ component_build_key_exchanges () { tests/scripts/key-exchanges.pl } +# depends.py family of tests component_test_depends_py_cipher_id () { msg "test/build: depends.py cipher_id (gcc)" - tests/scripts/depends.py cipher_id + tests/scripts/depends.py cipher_id --unset-use-psa } component_test_depends_py_cipher_chaining () { msg "test/build: depends.py cipher_chaining (gcc)" - tests/scripts/depends.py cipher_chaining + tests/scripts/depends.py cipher_chaining --unset-use-psa } component_test_depends_py_cipher_padding () { msg "test/build: depends.py cipher_padding (gcc)" - tests/scripts/depends.py cipher_padding + tests/scripts/depends.py cipher_padding --unset-use-psa } component_test_depends_py_curves () { msg "test/build: depends.py curves (gcc)" - tests/scripts/depends.py curves + tests/scripts/depends.py curves --unset-use-psa } component_test_depends_py_hashes () { msg "test/build: depends.py hashes (gcc)" - tests/scripts/depends.py hashes + tests/scripts/depends.py hashes --unset-use-psa } component_test_depends_py_kex () { msg "test/build: depends.py kex (gcc)" - tests/scripts/depends.py kex + tests/scripts/depends.py kex --unset-use-psa } component_test_depends_py_pkalgs () { msg "test/build: depends.py pkalgs (gcc)" + tests/scripts/depends.py pkalgs --unset-use-psa +} + +# PSA equivalents of the depends.py tests +component_test_depends_py_cipher_id_psa () { + msg "test/build: depends.py cipher_id (gcc) with MBEDTLS_USE_PSA_CRYPTO defined" + tests/scripts/depends.py cipher_id +} + +component_test_depends_py_cipher_chaining_psa () { + msg "test/build: depends.py cipher_chaining (gcc) with MBEDTLS_USE_PSA_CRYPTO defined" + tests/scripts/depends.py cipher_chaining +} + +component_test_depends_py_cipher_padding_psa () { + msg "test/build: depends.py cipher_padding (gcc) with MBEDTLS_USE_PSA_CRYPTO defined" + tests/scripts/depends.py cipher_padding +} + +component_test_depends_py_curves_psa () { + msg "test/build: depends.py curves (gcc) with MBEDTLS_USE_PSA_CRYPTO defined" + tests/scripts/depends.py curves +} + +component_test_depends_py_hashes_psa () { + msg "test/build: depends.py hashes (gcc) with MBEDTLS_USE_PSA_CRYPTO defined" + tests/scripts/depends.py hashes +} + +component_test_depends_py_kex_psa () { + msg "test/build: depends.py kex (gcc) with MBEDTLS_USE_PSA_CRYPTO defined" + tests/scripts/depends.py kex +} + +component_test_depends_py_pkalgs_psa () { + msg "test/build: depends.py pkalgs (gcc) with MBEDTLS_USE_PSA_CRYPTO defined" tests/scripts/depends.py pkalgs } From 29c002ebdf5e8233adc0a08bf9e2c9cd714e9c47 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 24 Oct 2022 10:59:55 -0400 Subject: [PATCH 0897/1028] Remove unused perl dependency scripts curves.pl, depends-hashes.pl, key-exchanges.pl and depends-pkalgs.pl are now superseded by depends.py. Update all references to them accordingly. Signed-off-by: Andrzej Kurek --- README.md | 2 +- tests/scripts/all.sh | 38 ---------- tests/scripts/basic-in-docker.sh | 4 +- tests/scripts/curves.pl | 126 ------------------------------- tests/scripts/depends-hashes.pl | 101 ------------------------- tests/scripts/depends-pkalgs.pl | 107 -------------------------- tests/scripts/key-exchanges.pl | 76 ------------------- 7 files changed, 3 insertions(+), 451 deletions(-) delete mode 100755 tests/scripts/curves.pl delete mode 100755 tests/scripts/depends-hashes.pl delete mode 100755 tests/scripts/depends-pkalgs.pl delete mode 100755 tests/scripts/key-exchanges.pl diff --git a/README.md b/README.md index 9c9cf9112e..cc61da03c3 100644 --- a/README.md +++ b/README.md @@ -242,7 +242,7 @@ For machines with a Unix shell and OpenSSL (and optionally GnuTLS) installed, ad - `tests/ssl-opt.sh` runs integration tests for various TLS options (renegotiation, resumption, etc.) and tests interoperability of these options with other implementations. - `tests/compat.sh` tests interoperability of every ciphersuite with other implementations. - `tests/scripts/test-ref-configs.pl` test builds in various reduced configurations. -- `tests/scripts/key-exchanges.pl` test builds in configurations with a single key exchange enabled +- `tests/scripts/depends.py` test builds in configurations with a single curve, key exchange, hash, cipher, or pkalg on. - `tests/scripts/all.sh` runs a combination of the above tests, plus some more, with various build options (such as ASan, full `mbedtls_config.h`, etc). Porting Mbed TLS diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 4c81174165..c9abbd69f3 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1739,44 +1739,6 @@ support_build_baremetal () { ! grep -q -F time.h /usr/include/x86_64-linux-gnu/sys/types.h } -component_test_depends_curves () { - msg "test/build: curves.pl (gcc)" # ~ 4 min - tests/scripts/curves.pl -} - -component_test_depends_curves_psa () { - msg "test/build: curves.pl with MBEDTLS_USE_PSA_CRYPTO defined (gcc)" - scripts/config.py set MBEDTLS_USE_PSA_CRYPTO - tests/scripts/curves.pl -} - -component_test_depends_hashes () { - msg "test/build: depends-hashes.pl (gcc)" # ~ 2 min - tests/scripts/depends-hashes.pl -} - -component_test_depends_hashes_psa () { - msg "test/build: depends-hashes.pl with MBEDTLS_USE_PSA_CRYPTO defined (gcc)" - scripts/config.py set MBEDTLS_USE_PSA_CRYPTO - tests/scripts/depends-hashes.pl -} - -component_test_depends_pkalgs () { - msg "test/build: depends-pkalgs.pl (gcc)" # ~ 2 min - tests/scripts/depends-pkalgs.pl -} - -component_test_depends_pkalgs_psa () { - msg "test/build: depends-pkalgs.pl with MBEDTLS_USE_PSA_CRYPTO defined (gcc)" - scripts/config.py set MBEDTLS_USE_PSA_CRYPTO - tests/scripts/depends-pkalgs.pl -} - -component_build_key_exchanges () { - msg "test/build: key-exchanges (gcc)" # ~ 1 min - tests/scripts/key-exchanges.pl -} - # depends.py family of tests component_test_depends_py_cipher_id () { msg "test/build: depends.py cipher_id (gcc)" diff --git a/tests/scripts/basic-in-docker.sh b/tests/scripts/basic-in-docker.sh index 50bcb05b3a..1f65710c8a 100755 --- a/tests/scripts/basic-in-docker.sh +++ b/tests/scripts/basic-in-docker.sh @@ -40,6 +40,6 @@ for compiler in clang gcc; do 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/curves.pl - run_in_docker tests/scripts/key-exchanges.pl + run_in_docker tests/scripts/depends.py curves + run_in_docker tests/scripts/depends.py kex done diff --git a/tests/scripts/curves.pl b/tests/scripts/curves.pl deleted file mode 100755 index fcaca9141b..0000000000 --- a/tests/scripts/curves.pl +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/env perl - -# curves.pl -# -# Copyright The Mbed TLS Contributors -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Purpose -# -# The purpose of this test script is to validate that the library works -# when only a single curve is enabled. In particular, this validates that -# curve-specific code is guarded by the proper preprocessor conditionals, -# both in the library and in tests. -# -# Since this script only tests builds with a single curve, it can't detect -# bugs that are only triggered when multiple curves are present. We do -# also test in many configurations where all curves are enabled, as well -# as a few configurations in configs/*.h with a restricted subset of curves. -# -# Here are some known test gaps that could be addressed by testing all -# 2^n combinations of support for n curves, which is impractical: -# * There could be product bugs when curves A and B are enabled but not C. -# For example, a MAX_SIZE calculation that forgets B, where -# size(A) < size(B) < size(C). -# * For test cases that require three or more curves, validate that they're -# not missing dependencies. This is extremely rare. (For test cases that -# require curves A and B but are missing a dependency on B, this is -# detected in the A-only build.) -# Usage: tests/scripts/curves.pl -# -# This script should be executed from the root of the project directory. -# -# Only curves that are enabled in mbedtls_config.h will be tested. -# -# For best effect, run either with cmake disabled, or cmake enabled in a mode -# that includes -Werror. - -use warnings; -use strict; - --d 'library' && -d 'include' && -d 'tests' or die "Must be run from root\n"; - -my $sed_cmd = 's/^#define \(MBEDTLS_ECP_DP.*_ENABLED\)/\1/p'; -my $config_h = 'include/mbedtls/mbedtls_config.h'; -my @curves = split( /\s+/, `sed -n -e '$sed_cmd' $config_h` ); - -# Determine which curves support ECDSA by checking the dependencies of -# ECDSA in check_config.h. -my %curve_supports_ecdsa = (); -{ - local $/ = ""; - local *CHECK_CONFIG; - open(CHECK_CONFIG, '<', 'include/mbedtls/check_config.h') - or die "open include/mbedtls/check_config.h: $!"; - while (my $stanza = ) { - if ($stanza =~ /\A#if defined\(MBEDTLS_ECDSA_C\)/) { - for my $curve ($stanza =~ /(?<=\()MBEDTLS_ECP_DP_\w+_ENABLED(?=\))/g) { - $curve_supports_ecdsa{$curve} = 1; - } - last; - } - } - close(CHECK_CONFIG); -} - -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; -} - -# Disable all the curves. We'll then re-enable them one by one. -for my $curve (@curves) { - system( "scripts/config.pl unset $curve" ) - and abort "Failed to disable $curve\n"; -} -# Depends on a specific curve. Also, ignore error if it wasn't enabled. -system( "scripts/config.pl unset MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED" ); -system( "scripts/config.pl unset MBEDTLS_ECJPAKE_C" ); - -# Test with only $curve enabled, for each $curve. -for my $curve (@curves) { - system( "make clean" ) and die; - - print "\n******************************************\n"; - print "* Testing with only curve: $curve\n"; - print "******************************************\n"; - $ENV{MBEDTLS_TEST_CONFIGURATION} = "$curve"; - - system( "scripts/config.pl set $curve" ) - and abort "Failed to enable $curve\n"; - - my $ecdsa = $curve_supports_ecdsa{$curve} ? "set" : "unset"; - for my $dep (qw(MBEDTLS_ECDSA_C - MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED - MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)) { - system( "scripts/config.pl $ecdsa $dep" ) - and abort "Failed to $ecdsa $dep\n"; - } - - system( "CFLAGS='-Werror -Wall -Wextra' make" ) - and abort "Failed to build: only $curve\n"; - system( "make test" ) - and abort "Failed test suite: only $curve\n"; - - system( "scripts/config.pl unset $curve" ) - and abort "Failed to disable $curve\n"; -} - -system( "mv $config_h.bak $config_h" ) and die "$config_h not restored\n"; -system( "make clean" ) and die; -exit 0; diff --git a/tests/scripts/depends-hashes.pl b/tests/scripts/depends-hashes.pl deleted file mode 100755 index db18a92ae8..0000000000 --- a/tests/scripts/depends-hashes.pl +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env perl - -# depends-hashes.pl -# -# Copyright The Mbed TLS Contributors -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Purpose -# -# To test the code dependencies on individual hashes in each test suite. This -# is a verification step to ensure we don't ship test suites that do not work -# for some build options. -# -# The process is: -# for each possible hash -# build the library and test suites with the hash disabled -# execute the test suites -# -# And any test suite with the wrong dependencies will fail. -# -# Usage: tests/scripts/depends-hashes.pl -# -# This script should be executed from the root of the project directory. -# -# For best effect, run either with cmake disabled, or cmake enabled in a mode -# that includes -Werror. - -use warnings; -use strict; - --d 'library' && -d 'include' && -d 'tests' or die "Must be run from root\n"; - -my $config_h = 'include/mbedtls/mbedtls_config.h'; - -# as many SSL options depend on specific hashes, -# and SSL is not in the test suites anyways, -# disable it to avoid dependency issues -my $ssl_sed_cmd = 's/^#define \(MBEDTLS_SSL.*\)/\1/p'; -my @ssl = split( /\s+/, `sed -n -e '$ssl_sed_cmd' $config_h` ); - -# Each element of this array holds list of configuration options that -# should be tested together. Certain options depend on each other and -# separating them would generate invalid configurations. -my @hash_configs = ( - ['unset MBEDTLS_MD5_C'], - ['unset MBEDTLS_SHA512_C', 'unset MBEDTLS_SHA384_C '], - ['unset MBEDTLS_SHA384_C'], - ['unset MBEDTLS_SHA256_C', 'unset MBEDTLS_SHA224_C', 'unset MBEDTLS_LMS_C', 'unset MBEDTLS_LMS_PRIVATE'], - ['unset MBEDTLS_SHA1_C'], -); - -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; -} - -for my $hash_config (@hash_configs) { - system( "cp $config_h.bak $config_h" ) and die "$config_h not restored\n"; - system( "make clean" ) and die; - - my $hash_config_string = join(', ', @$hash_config); - - print "\n******************************************\n"; - print "* Testing hash options: $hash_config_string\n"; - print "******************************************\n"; - $ENV{MBEDTLS_TEST_CONFIGURATION} = "-$hash_config_string"; - - for my $hash (@$hash_config) { - system( "scripts/config.py $hash" ) - and abort "Failed to $hash\n"; - } - - for my $opt (@ssl) { - system( "scripts/config.py unset $opt" ) - and abort "Failed to disable $opt\n"; - } - - system( "CFLAGS='-Werror -Wall -Wextra' make lib" ) - and abort "Failed to build lib: $hash_config_string\n"; - system( "cd tests && make" ) and abort "Failed to build tests: $hash_config_string\n"; - system( "make test" ) and abort "Failed test suite: $hash_config_string\n"; -} - -system( "mv $config_h.bak $config_h" ) and die "$config_h not restored\n"; -system( "make clean" ) and die; -exit 0; diff --git a/tests/scripts/depends-pkalgs.pl b/tests/scripts/depends-pkalgs.pl deleted file mode 100755 index 6eb726927e..0000000000 --- a/tests/scripts/depends-pkalgs.pl +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/env perl - -# depends-pkalgs.pl -# -# Copyright The Mbed TLS Contributors -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Purpose -# -# To test the code dependencies on individual PK algs (those that can be used -# from the PK layer, so currently signature and encryption but not key -# exchange) in each test suite. This is a verification step to ensure we don't -# ship test suites that do not work for some build options. -# -# The process is: -# for each possible PK alg -# build the library and test suites with that alg disabled -# execute the test suites -# -# And any test suite with the wrong dependencies will fail. -# -# Usage: tests/scripts/depends-pkalgs.pl -# -# This script should be executed from the root of the project directory. -# -# For best effect, run either with cmake disabled, or cmake enabled in a mode -# that includes -Werror. - -use warnings; -use strict; - --d 'library' && -d 'include' && -d 'tests' or die "Must be run from root\n"; - -my $config_h = 'include/mbedtls/mbedtls_config.h'; - -# Some algorithms can't be disabled on their own as others depend on them, so -# we list those reverse-dependencies here to keep check_config.h happy. -my %algs = ( - 'MBEDTLS_ECDSA_C' => ['MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED'], - 'MBEDTLS_ECP_C' => ['MBEDTLS_ECDSA_C', - 'MBEDTLS_ECDH_C', - 'MBEDTLS_ECJPAKE_C', - 'MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED'], - 'MBEDTLS_X509_RSASSA_PSS_SUPPORT' => [], - 'MBEDTLS_PKCS1_V21' => ['MBEDTLS_X509_RSASSA_PSS_SUPPORT'], - 'MBEDTLS_PKCS1_V15' => ['MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED'], - 'MBEDTLS_RSA_C' => ['MBEDTLS_X509_RSASSA_PSS_SUPPORT', - 'MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED'], -); - -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; -} - -while( my ($alg, $extras) = each %algs ) { - system( "cp $config_h.bak $config_h" ) and die "$config_h not restored\n"; - system( "make clean" ) and die; - - print "\n******************************************\n"; - print "* Testing without alg: $alg\n"; - print "******************************************\n"; - $ENV{MBEDTLS_TEST_CONFIGURATION} = "-$alg"; - - system( "scripts/config.py unset $alg" ) - and abort "Failed to disable $alg\n"; - for my $opt (@$extras) { - system( "scripts/config.py unset $opt" ) - and abort "Failed to disable $opt\n"; - } - - system( "CFLAGS='-Werror -Wall -Wextra' make lib" ) - and abort "Failed to build lib: $alg\n"; - system( "cd tests && make" ) and abort "Failed to build tests: $alg\n"; - system( "make test" ) and abort "Failed test suite: $alg\n"; -} - -system( "mv $config_h.bak $config_h" ) and die "$config_h not restored\n"; -system( "make clean" ) and die; -exit 0; diff --git a/tests/scripts/key-exchanges.pl b/tests/scripts/key-exchanges.pl deleted file mode 100755 index 46f1b97542..0000000000 --- a/tests/scripts/key-exchanges.pl +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/env perl - -# key-exchanges.pl -# -# Copyright The Mbed TLS Contributors -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Purpose -# -# To test the code dependencies on individual key exchanges in the SSL module. -# is a verification step to ensure we don't ship SSL code that do not work -# for some build options. -# -# The process is: -# for each possible key exchange -# build the library with all but that key exchange disabled -# -# Usage: tests/scripts/key-exchanges.pl -# -# This script should be executed from the root of the project directory. -# -# For best effect, run either with cmake disabled, or cmake enabled in a mode -# that includes -Werror. - -use warnings; -use strict; - --d 'library' && -d 'include' && -d 'tests' or die "Must be run from root\n"; - -my $sed_cmd = 's/^#define \(MBEDTLS_KEY_EXCHANGE_.*_ENABLED\)/\1/p'; -my $config_h = 'include/mbedtls/mbedtls_config.h'; -my @kexes = split( /\s+/, `sed -n -e '$sed_cmd' $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; -} - -for my $kex (@kexes) { - system( "cp $config_h.bak $config_h" ) and die "$config_h not restored\n"; - system( "make clean" ) and die; - - print "\n******************************************\n"; - print "* Testing with key exchange: $kex\n"; - print "******************************************\n"; - $ENV{MBEDTLS_TEST_CONFIGURATION} = $kex; - - # full config with all key exchanges disabled except one - system( "scripts/config.py full" ) and abort "Failed config full\n"; - for my $k (@kexes) { - next if $k eq $kex; - system( "scripts/config.py unset $k" ) - and abort "Failed to disable $k\n"; - } - - system( "make lib CFLAGS='-Os -Werror'" ) and abort "Failed to build lib: $kex\n"; -} - -system( "mv $config_h.bak $config_h" ) and die "$config_h not restored\n"; -system( "make clean" ) and die; -exit 0; From 85b9e095254691c7626ae152a88b91726247ec05 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 24 Oct 2022 19:08:59 +0200 Subject: [PATCH 0898/1028] Add change log Signed-off-by: Ronald Cron --- ChangeLog.d/tls13-misc.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 ChangeLog.d/tls13-misc.txt diff --git a/ChangeLog.d/tls13-misc.txt b/ChangeLog.d/tls13-misc.txt new file mode 100644 index 0000000000..497ed38d20 --- /dev/null +++ b/ChangeLog.d/tls13-misc.txt @@ -0,0 +1,9 @@ +Features + * Mbed TLS supports TLS 1.3 key establishment via pre-shared keys, + pre-shared keys provisioned externally or via the ticket mechanism + (session resumption). + The MBEDTLS_SSL_SESSION_TICKETS configuration option controls the support + for the ticket mechanism. + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_xxx_ENABLED configuration options + have been introduced to control the support for the three possible + TLS 1.3 key exchange modes. From 49540ac5292bfbc0399badb3383a418c0e3dd4bd Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 26 Oct 2022 18:02:56 +0200 Subject: [PATCH 0899/1028] Move copyright notice out of the Doxygen documentation Signed-off-by: Gilles Peskine --- include/mbedtls/constant_time.h | 3 ++- include/mbedtls/legacy_or_psa.h | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/constant_time.h b/include/mbedtls/constant_time.h index c5de57a01f..fb1f7e98ea 100644 --- a/include/mbedtls/constant_time.h +++ b/include/mbedtls/constant_time.h @@ -1,6 +1,7 @@ /** * Constant-time functions - * + */ +/* * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * diff --git a/include/mbedtls/legacy_or_psa.h b/include/mbedtls/legacy_or_psa.h index 2156be946b..fe87399e77 100644 --- a/include/mbedtls/legacy_or_psa.h +++ b/include/mbedtls/legacy_or_psa.h @@ -2,6 +2,8 @@ * Macros to express dependencies for code and tests that may use either the * legacy API or PSA in various builds; mostly for internal use. * + */ +/* * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * From 3a9ebd69c38aa92b310d7e4acf64ee9e3d82aade Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 26 Oct 2022 18:03:14 +0200 Subject: [PATCH 0900/1028] Declare legacy_or_psa.h as private We think we're likely to change these macros. So make them *only* for internal use, not just "mostly". Signed-off-by: Gilles Peskine --- include/mbedtls/legacy_or_psa.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/legacy_or_psa.h b/include/mbedtls/legacy_or_psa.h index fe87399e77..f872ddaf1f 100644 --- a/include/mbedtls/legacy_or_psa.h +++ b/include/mbedtls/legacy_or_psa.h @@ -1,7 +1,8 @@ /** * Macros to express dependencies for code and tests that may use either the - * legacy API or PSA in various builds; mostly for internal use. - * + * legacy API or PSA in various builds. This whole header file is currently + * for internal use only and both the header file and the macros it defines + * may change or be removed without notice. */ /* * Copyright The Mbed TLS Contributors From cd860dfe0290d21afd69bcc0cae18f8dc6a4d170 Mon Sep 17 00:00:00 2001 From: Hanno Becker Date: Thu, 18 Aug 2022 16:23:05 +0100 Subject: [PATCH 0901/1028] bignum_mod: Added Montgomery constants This patch adds the Montgomery constants to the `mbedtls_mpi_mont_struct`. Signed-off-by: Minos Galanakis --- library/bignum_mod.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index c25eb87423..3b3338c2de 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -53,7 +53,11 @@ typedef struct size_t limbs; } mbedtls_mpi_mod_residue; -typedef void *mbedtls_mpi_mont_struct; +typedef struct { + mbedtls_mpi_uint const *rr; /* The residue for 2^{2*n*biL} mod N */ + mbedtls_mpi_uint mm; /* Montgomery const for -N^{-1} mod 2^{ciL} */ +} mbedtls_mpi_mont_struct; + typedef void *mbedtls_mpi_opt_red_struct; typedef struct { From 760f5d6b6b82767e0ce6e22a9e384161734bc2ea Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 11 Aug 2022 12:21:09 +0100 Subject: [PATCH 0902/1028] bignum_mod: Updated mbedtls_mpi_mod_modulus_setup/free with new fields At the current state, those fields are initialised to 0, NULL. Signed-off-by: Minos Galanakis --- library/bignum_mod.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index f2c11a582a..7cf1b012c5 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -77,8 +77,8 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ) switch( m->int_rep ) { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: - mbedtls_free( m->rep.mont ); - break; + m->rep.mont.rr = NULL; + m->rep.mont.mm = 0; break; case MBEDTLS_MPI_MOD_REP_OPT_RED: mbedtls_free( m->rep.ored ); break; @@ -120,8 +120,8 @@ int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: m->int_rep = int_rep; - m->rep.mont = NULL; - break; + m->rep.mont.rr = NULL; + m->rep.mont.mm = 0; break; case MBEDTLS_MPI_MOD_REP_OPT_RED: m->int_rep = int_rep; m->rep.ored = NULL; From 8b3336331507ee2ccc49e3a13c73fde1820cff5a Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Tue, 11 Oct 2022 11:28:24 +0100 Subject: [PATCH 0903/1028] bignum_mod: Updated modulus lifecycle with mm and rr. This patch updates the `mbedtls_mpi_mod_modulus_setup/free()` methods to precalculate mm and rr(Montgomery const squared) during setup and zeroize it during free. A static `set_mont_const_square()` is added to manage the memory allocation and parameter checking before invoking the `mbedtls_mpi_core_get_mont_r2_unsafe()` Signed-off-by: Minos Galanakis --- library/bignum_mod.c | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 7cf1b012c5..92c011cffe 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -77,6 +77,9 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ) switch( m->int_rep ) { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: + mbedtls_platform_zeroize( (mbedtls_mpi_uint *) m->rep.mont.rr, + m->limbs ); + mbedtls_free( (mbedtls_mpi_uint *)m->rep.mont.rr ); m->rep.mont.rr = NULL; m->rep.mont.mm = 0; break; case MBEDTLS_MPI_MOD_REP_OPT_RED: @@ -93,6 +96,38 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ) m->int_rep = MBEDTLS_MPI_MOD_REP_INVALID; } +static int set_mont_const_square( const mbedtls_mpi_uint **X, + const mbedtls_mpi_uint *A, + size_t limbs ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + mbedtls_mpi N; + mbedtls_mpi RR; + + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &RR ); + + if ( A == NULL || limbs == 0 || limbs >= ( MBEDTLS_MPI_MAX_LIMBS / 2 ) - 2 ) + goto cleanup; + + if ( !mbedtls_mpi_grow( &N, limbs )) + memcpy( N.p, A, sizeof(mbedtls_mpi_uint) * limbs ); + else + goto cleanup; + + mbedtls_mpi_core_get_mont_r2_unsafe(&RR, &N); + + *X = RR.p; + RR.p = NULL; + ret = 0; + +cleanup: + mbedtls_mpi_free(&N); + mbedtls_mpi_free(&RR); + ret = ( ret != 0 ) ? MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED : 0; + return( ret ); +} + int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, const mbedtls_mpi_uint *p, size_t p_limbs, @@ -120,8 +155,9 @@ int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: m->int_rep = int_rep; - m->rep.mont.rr = NULL; - m->rep.mont.mm = 0; break; + m->rep.mont.mm = mbedtls_mpi_core_montmul_init( m->p ); + set_mont_const_square( &m->rep.mont.rr, m->p, m->limbs ); + break; case MBEDTLS_MPI_MOD_REP_OPT_RED: m->int_rep = int_rep; m->rep.ored = NULL; From dd365a526fc32cd688558e0c4aa9642f4670c97f Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 19 Oct 2022 01:48:32 +0100 Subject: [PATCH 0904/1028] test_suite_bignum: Updated `mpi_mod_setup()` test This patch updates the `mpi_mod_setup()` test suite to check for incosistencies in the montgomery constant data's lifecycle. Signed-off-by: Minos Galanakis --- tests/suites/test_suite_bignum_mod.function | 30 ++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 9f73209656..8716f679a3 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -17,20 +17,48 @@ void mpi_mod_setup( int ext_rep, int int_rep, int iret ) #define MLIMBS 8 mbedtls_mpi_uint mp[MLIMBS]; mbedtls_mpi_mod_modulus m; + const size_t mp_size = sizeof(mbedtls_mpi_uint); + mbedtls_mpi_uint * rr; int ret; - memset( mp, 0xFF, sizeof(mp) ); + memset( mp, 0xFF, mp_size ); mbedtls_mpi_mod_modulus_init( &m ); ret = mbedtls_mpi_mod_modulus_setup( &m, mp, MLIMBS, ext_rep, int_rep ); TEST_EQUAL( ret, iret ); + /* Only test if the constants have been set-up */ + if ( ret == 0 && int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + { + /* Test that the consts have been calculated */ + TEST_ASSERT( m.rep.mont.rr != NULL ); + TEST_ASSERT( m.rep.mont.mm != 0 ); + + /* Keep a copy of the memory location used to store Montgomery const */ + rr = (mbedtls_mpi_uint *)m.rep.mont.rr; + } + /* Address sanitiser should catch if we try to free mp */ mbedtls_mpi_mod_modulus_free( &m ); /* Make sure that the modulus doesn't have reference to mp anymore */ TEST_ASSERT( m.p != mp ); + /* Only test if the constants have been set-up */ + if ( ret == 0 && int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + { + /* Reuse the allocated buffer for a zeroization check */ + memset( mp, 0x00, mp_size ); + + /* Verify the data and pointers allocated have been properly wiped */ + TEST_ASSERT( m.rep.mont.rr == NULL ); + TEST_ASSERT( m.rep.mont.mm == 0 ); + + /* mbedtls_mpi_mod_modulus_free() has set the + * (mbedtls_mpi_uint *)m.rep.mont.rr -> NULL. + * Verify that the actual data have been zeroed */ + ASSERT_COMPARE( rr, mp_size, &mp, mp_size ); + } exit: /* It should be safe to call an mbedtls free several times */ mbedtls_mpi_mod_modulus_free( &m ); From 771c47055f2b9db6762ab32dab36092952990573 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 27 Oct 2022 12:22:22 +0100 Subject: [PATCH 0905/1028] bignum_mod: Style changes This patch addresses review comments with regards to style of `mbedtls_mpi_mod_modulus_setup/free()`. It also removes a test check which was triggering a use-after-free. Signed-off-by: Minos Galanakis --- library/bignum_mod.c | 9 +++++---- tests/suites/test_suite_bignum_mod.function | 7 ------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 92c011cffe..705b2dbae6 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -81,7 +81,8 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ) m->limbs ); mbedtls_free( (mbedtls_mpi_uint *)m->rep.mont.rr ); m->rep.mont.rr = NULL; - m->rep.mont.mm = 0; break; + m->rep.mont.mm = 0; + break; case MBEDTLS_MPI_MOD_REP_OPT_RED: mbedtls_free( m->rep.ored ); break; @@ -110,11 +111,11 @@ static int set_mont_const_square( const mbedtls_mpi_uint **X, if ( A == NULL || limbs == 0 || limbs >= ( MBEDTLS_MPI_MAX_LIMBS / 2 ) - 2 ) goto cleanup; - if ( !mbedtls_mpi_grow( &N, limbs )) - memcpy( N.p, A, sizeof(mbedtls_mpi_uint) * limbs ); - else + if ( mbedtls_mpi_grow( &N, limbs )) goto cleanup; + memcpy( N.p, A, sizeof(mbedtls_mpi_uint) * limbs ); + mbedtls_mpi_core_get_mont_r2_unsafe(&RR, &N); *X = RR.p; diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 8716f679a3..2e0377a703 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -18,7 +18,6 @@ void mpi_mod_setup( int ext_rep, int int_rep, int iret ) mbedtls_mpi_uint mp[MLIMBS]; mbedtls_mpi_mod_modulus m; const size_t mp_size = sizeof(mbedtls_mpi_uint); - mbedtls_mpi_uint * rr; int ret; memset( mp, 0xFF, mp_size ); @@ -34,8 +33,6 @@ void mpi_mod_setup( int ext_rep, int int_rep, int iret ) TEST_ASSERT( m.rep.mont.rr != NULL ); TEST_ASSERT( m.rep.mont.mm != 0 ); - /* Keep a copy of the memory location used to store Montgomery const */ - rr = (mbedtls_mpi_uint *)m.rep.mont.rr; } /* Address sanitiser should catch if we try to free mp */ @@ -54,10 +51,6 @@ void mpi_mod_setup( int ext_rep, int int_rep, int iret ) TEST_ASSERT( m.rep.mont.rr == NULL ); TEST_ASSERT( m.rep.mont.mm == 0 ); - /* mbedtls_mpi_mod_modulus_free() has set the - * (mbedtls_mpi_uint *)m.rep.mont.rr -> NULL. - * Verify that the actual data have been zeroed */ - ASSERT_COMPARE( rr, mp_size, &mp, mp_size ); } exit: /* It should be safe to call an mbedtls free several times */ From 66e05505b627c5a34799ff53f99540024d391d92 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 27 Oct 2022 16:29:38 +0100 Subject: [PATCH 0906/1028] Support generating DER format certificates Signed-off-by: Dave Rodgman --- programs/x509/cert_write.c | 41 +++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 5a13f4e78b..1f4b1a09a6 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -69,6 +69,9 @@ int main( void ) #define USAGE_CSR "" #endif /* MBEDTLS_X509_CSR_PARSE_C */ +#define FORMAT_PEM 0 +#define FORMAT_DER 1 + #define DFL_ISSUER_CRT "" #define DFL_REQUEST_FILE "" #define DFL_SUBJECT_KEY "subject.key" @@ -93,6 +96,7 @@ int main( void ) #define DFL_SUBJ_IDENT 1 #define DFL_CONSTRAINTS 1 #define DFL_DIGEST MBEDTLS_MD_SHA256 +#define DFL_FORMAT FORMAT_PEM #define USAGE \ "\n usage: cert_write param=<>...\n" \ @@ -161,6 +165,7 @@ int main( void ) " ssl_ca\n" \ " email_ca\n" \ " object_signing_ca\n" \ + " format=pem|der default: pem\n" \ "\n" @@ -192,6 +197,7 @@ struct options unsigned char key_usage; /* key usage flags */ mbedtls_asn1_sequence *ext_key_usage; /* extended key usages */ unsigned char ns_cert_type; /* NS cert type */ + int format; /* format */ } opt; int write_certificate( mbedtls_x509write_cert *crt, const char *output_file, @@ -201,19 +207,33 @@ int write_certificate( mbedtls_x509write_cert *crt, const char *output_file, int ret; FILE *f; unsigned char output_buf[4096]; + unsigned char *output_start; size_t len = 0; memset( output_buf, 0, 4096 ); - if( ( ret = mbedtls_x509write_crt_pem( crt, output_buf, 4096, - f_rng, p_rng ) ) < 0 ) - return( ret ); + if ( opt.format == FORMAT_DER ) + { + ret = mbedtls_x509write_crt_der( crt, output_buf, 4096, + f_rng, p_rng ); + if( ret < 0 ) + return( ret ); - len = strlen( (char *) output_buf ); + len = ret; + output_start = output_buf + 4096 - len; + } else { + ret = mbedtls_x509write_crt_pem( crt, output_buf, 4096, + f_rng, p_rng ); + if( ret < 0 ) + return( ret ); + + len = strlen( (char *) output_buf ); + output_start = output_buf; + } if( ( f = fopen( output_file, "w" ) ) == NULL ) return( -1 ); - if( fwrite( output_buf, 1, len, f ) != len ) + if( fwrite( output_start, 1, len, f ) != len ) { fclose( f ); return( -1 ); @@ -292,6 +312,7 @@ int main( int argc, char *argv[] ) opt.subject_identifier = DFL_SUBJ_IDENT; opt.authority_identifier = DFL_AUTH_IDENT; opt.basic_constraints = DFL_CONSTRAINTS; + opt.format = DFL_FORMAT; for( i = 1; i < argc; i++ ) { @@ -508,6 +529,16 @@ int main( int argc, char *argv[] ) q = r; } } + else if( strcmp( p, "format" ) == 0 ) + { + if ( strcmp(q, "der" ) == 0 ) opt.format = FORMAT_DER; + else if ( strcmp(q, "pem" ) == 0 ) opt.format = FORMAT_PEM; + else + { + mbedtls_printf( "Invalid argument for option %s\n", p ); + goto usage; + } + } else goto usage; } From 4d4c98b1b959a2f1ac270806cfa36d849d286889 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 27 Oct 2022 15:58:02 +0100 Subject: [PATCH 0907/1028] bignum_mod: `mbedtls_mpi_mod_modulus_setup()` refactoring. This patch addresses more review comments, and fixes a circular depedency in the `mbedtls_mpi_mod_modulus_setup()`. Signed-off-by: Minos Galanakis --- library/bignum_mod.c | 28 +++++++++++++-------- tests/suites/test_suite_bignum_mod.function | 7 +----- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 705b2dbae6..60c073ac4e 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -77,10 +77,13 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ) switch( m->int_rep ) { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: - mbedtls_platform_zeroize( (mbedtls_mpi_uint *) m->rep.mont.rr, - m->limbs ); - mbedtls_free( (mbedtls_mpi_uint *)m->rep.mont.rr ); - m->rep.mont.rr = NULL; + if (m->rep.mont.rr != NULL) + { + mbedtls_platform_zeroize( (mbedtls_mpi_uint *) m->rep.mont.rr, + m->limbs ); + mbedtls_free( (mbedtls_mpi_uint *)m->rep.mont.rr ); + m->rep.mont.rr = NULL; + } m->rep.mont.mm = 0; break; case MBEDTLS_MPI_MOD_REP_OPT_RED: @@ -104,6 +107,7 @@ static int set_mont_const_square( const mbedtls_mpi_uint **X, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi N; mbedtls_mpi RR; + *X = NULL; mbedtls_mpi_init( &N ); mbedtls_mpi_init( &RR ); @@ -111,16 +115,18 @@ static int set_mont_const_square( const mbedtls_mpi_uint **X, if ( A == NULL || limbs == 0 || limbs >= ( MBEDTLS_MPI_MAX_LIMBS / 2 ) - 2 ) goto cleanup; - if ( mbedtls_mpi_grow( &N, limbs )) + if ( mbedtls_mpi_grow( &N, limbs ) ) goto cleanup; - memcpy( N.p, A, sizeof(mbedtls_mpi_uint) * limbs ); + memcpy( N.p, A, sizeof(mbedtls_mpi_uint) * limbs ); - mbedtls_mpi_core_get_mont_r2_unsafe(&RR, &N); + ret = mbedtls_mpi_core_get_mont_r2_unsafe(&RR, &N); - *X = RR.p; - RR.p = NULL; - ret = 0; + if ( ret == 0 ) + { + *X = RR.p; + RR.p = NULL; + } cleanup: mbedtls_mpi_free(&N); @@ -157,7 +163,7 @@ int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, case MBEDTLS_MPI_MOD_REP_MONTGOMERY: m->int_rep = int_rep; m->rep.mont.mm = mbedtls_mpi_core_montmul_init( m->p ); - set_mont_const_square( &m->rep.mont.rr, m->p, m->limbs ); + ret = set_mont_const_square( &m->rep.mont.rr, m->p, m->limbs ); break; case MBEDTLS_MPI_MOD_REP_OPT_RED: m->int_rep = int_rep; diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 2e0377a703..ad89bdf3e7 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -17,10 +17,9 @@ void mpi_mod_setup( int ext_rep, int int_rep, int iret ) #define MLIMBS 8 mbedtls_mpi_uint mp[MLIMBS]; mbedtls_mpi_mod_modulus m; - const size_t mp_size = sizeof(mbedtls_mpi_uint); int ret; - memset( mp, 0xFF, mp_size ); + memset( mp, 0xFF, sizeof(mp) ); mbedtls_mpi_mod_modulus_init( &m ); ret = mbedtls_mpi_mod_modulus_setup( &m, mp, MLIMBS, ext_rep, int_rep ); @@ -44,13 +43,9 @@ void mpi_mod_setup( int ext_rep, int int_rep, int iret ) /* Only test if the constants have been set-up */ if ( ret == 0 && int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) { - /* Reuse the allocated buffer for a zeroization check */ - memset( mp, 0x00, mp_size ); - /* Verify the data and pointers allocated have been properly wiped */ TEST_ASSERT( m.rep.mont.rr == NULL ); TEST_ASSERT( m.rep.mont.mm == 0 ); - } exit: /* It should be safe to call an mbedtls free several times */ From 683850b416bb7dbf6ecf102274c67e5c13ea5076 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 27 Oct 2022 20:24:46 +0100 Subject: [PATCH 0908/1028] Update tests/suites/test_suite_ecdsa.function Co-authored-by: Gilles Peskine Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.function | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function index b1a1611fb4..d5959d5dc4 100644 --- a/tests/suites/test_suite_ecdsa.function +++ b/tests/suites/test_suite_ecdsa.function @@ -479,9 +479,7 @@ void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, data_t * mbedtls_mpi_init( &sig_s ); /* Prepare ECP group context */ - curve_info = mbedtls_ecp_curve_info_from_grp_id( grp_id ); - TEST_ASSERT( curve_info != NULL ); - TEST_EQUAL( mbedtls_ecp_group_load( &ctx.grp, curve_info->grp_id ), 0 ); + TEST_EQUAL( mbedtls_ecp_group_load( &ctx.grp, grp_id ), 0 ); /* Prepare public key */ TEST_EQUAL( mbedtls_test_read_mpi( &ctx.Q.X, x ), 0 ); From 5d13e5e568aed78745b0e2d4552e25f65c369c6f Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 27 Oct 2022 20:34:21 +0100 Subject: [PATCH 0909/1028] Improve changelog for ECDSA verify fix Signed-off-by: Dave Rodgman --- ChangeLog.d/ecdsa-verify-fixes.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ChangeLog.d/ecdsa-verify-fixes.txt b/ChangeLog.d/ecdsa-verify-fixes.txt index 6dbd4702e5..166f91ecb1 100644 --- a/ChangeLog.d/ecdsa-verify-fixes.txt +++ b/ChangeLog.d/ecdsa-verify-fixes.txt @@ -1,5 +1,5 @@ Bugfix - * Fix ECDSA verification, where it was failing to validate the public key - for signatures where R == 1 and S == 1. This bug meant that it was - possible to verify such signatures with an invalid public key, in some - cases. + * Fix ECDSA verification, where it was not always validating the + public key. This bug meant that it was possible to verify a + signature with an invalid public key, in some cases. Reported by + Guido Vranken in #4420. From ce48c92c6c2291faddf28409341d38820faf7b75 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 27 Oct 2022 20:36:47 +0100 Subject: [PATCH 0910/1028] Credit Cryptofuzz in the changelog Signed-off-by: Dave Rodgman --- ChangeLog.d/ecdsa-verify-fixes.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog.d/ecdsa-verify-fixes.txt b/ChangeLog.d/ecdsa-verify-fixes.txt index 166f91ecb1..b41b0461ab 100644 --- a/ChangeLog.d/ecdsa-verify-fixes.txt +++ b/ChangeLog.d/ecdsa-verify-fixes.txt @@ -2,4 +2,4 @@ Bugfix * Fix ECDSA verification, where it was not always validating the public key. This bug meant that it was possible to verify a signature with an invalid public key, in some cases. Reported by - Guido Vranken in #4420. + Guido Vranken using Cryptofuzz in #4420. From 0c61a749b79663e2445e2da7884041badf4c80c4 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 27 Oct 2022 18:20:33 +0100 Subject: [PATCH 0911/1028] test_suite_bignum_mod_raw: Removed parameter for `mbedtls_mpi_mod_modulus_setup()` This patch updates the tests `mpi_mod_raw_cond_swap()` & `mpi_mod_raw_cond_assign()` to use a non-zero modulus when invoking `mbedtls_mpi_mod_modulus_setup()` Signed-off-by: Minos Galanakis --- tests/suites/test_suite_bignum_mod_raw.function | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 88b8917809..7c9d5dbe4e 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -134,6 +134,7 @@ void mpi_mod_raw_cond_assign( data_t * input_X, ASSERT_ALLOC( Y, limbs ); ASSERT_ALLOC( buff_m, limbs ); + memset( buff_m, 0xFF, copy_bytes ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, @@ -214,6 +215,7 @@ void mpi_mod_raw_cond_swap( data_t * input_X, ASSERT_ALLOC( tmp_Y, limbs ); ASSERT_ALLOC( buff_m, copy_limbs ); + memset( buff_m, 0xFF, copy_bytes ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, From 84645e92c61d91e2ee8b40053cb83336a77e33a9 Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Thu, 27 Oct 2022 10:17:09 +0800 Subject: [PATCH 0912/1028] Simplify code of adding output in ssl_client2 - print build version macro defined in build_info.h directly - Remove all the MBEDTLS_VERSION_C guards as build version information is always available in build_info.h Signed-off-by: Yanray Wang --- programs/ssl/ssl_client2.c | 34 +++++++--------------------------- 1 file changed, 7 insertions(+), 27 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index e74656ee78..e3fdb1f7c5 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -25,10 +25,6 @@ #include "test/psa_crypto_helpers.h" #endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */ -#if defined(MBEDTLS_VERSION_C) -#include "mbedtls/version.h" -#endif /* MBEDTLS_VERSION_C */ - #if defined(MBEDTLS_SSL_TEST_IMPOSSIBLE) int main( void ) { @@ -364,14 +360,6 @@ int main( void ) #define USAGE_TLS1_3_KEY_EXCHANGE_MODES "" #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ -#if defined(MBEDTLS_VERSION_C) -#define USAGE_BUILD_VERSION \ - " build_version=%%d default: none (disabled)\n" \ - " option: 1 (print the build version only a stop)\n" -#else -#define USAGE_BUILD_VERSION "" -#endif /* MBEDTLS_VERSION_C */ - /* USAGE is arbitrarily split to stay under the portable string literal * length limit: 4095 bytes in C99. */ #define USAGE1 \ @@ -387,8 +375,9 @@ int main( void ) " application data message is sent followed by\n" \ " a second non-empty message before attempting\n" \ " to read a response from the server\n" \ - USAGE_BUILD_VERSION \ " debug_level=%%d default: 0 (disabled)\n" \ + " build_version=%%d default: none (disabled)\n" \ + " option: 1 (print build version only and stop)\n" \ " nbio=%%d default: 0 (blocking I/O)\n" \ " options: 1 (non-blocking), 2 (added delays)\n" \ " event=%%d default: 0 (loop)\n" \ @@ -995,20 +984,16 @@ int main( int argc, char *argv[] ) if( opt.debug_level < 0 || opt.debug_level > 65535 ) goto usage; } -#if defined(MBEDTLS_VERSION_C) else if( strcmp( p, "build_version" ) == 0 ) { if( strcmp( q, "1" ) == 0 ) { - char version_str[10]; - memset( version_str, 0, 10 ); - mbedtls_version_get_string( version_str ); - mbedtls_printf( "build version: %s (build %u)\n", - version_str, mbedtls_version_get_number() ); + mbedtls_printf( "build version: %s (build %d)\n", + MBEDTLS_VERSION_STRING_FULL, + MBEDTLS_VERSION_NUMBER ); goto exit; } } -#endif /* MBEDTLS_VERSION_C */ else if( strcmp( p, "context_crt_cb" ) == 0 ) { opt.context_crt_cb = atoi( q ); @@ -1721,13 +1706,8 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_SSL_ALPN */ -#if defined(MBEDTLS_VERSION_C) - char version_str[10]; - memset( version_str, 0, 10 ); - mbedtls_version_get_string( version_str ); - mbedtls_printf( "build version: %s (build %u)\n", - version_str, mbedtls_version_get_number() ); -#endif /* MBEDTLS_VERSION_C */ + mbedtls_printf( "build version: %s (build %d)\n", + MBEDTLS_VERSION_STRING_FULL, MBEDTLS_VERSION_NUMBER ); /* * 0. Initialize the RNG and the session data From eaf46d1291d57ed36d31cf14ca61edf5505b9972 Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Fri, 28 Oct 2022 10:38:37 +0800 Subject: [PATCH 0913/1028] Add output of build version in ssl_server2 Usage: - By default, build version is printed out in the beginning of ssl_server2 application. - ./ssl_server2 build_version=1 only prints build verison and stop Signed-off-by: Yanray Wang --- programs/ssl/ssl_server2.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 1fd63d2d0d..7aead3ade0 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -489,6 +489,8 @@ int main( void ) " server_addr=%%s default: (all interfaces)\n" \ " server_port=%%d default: 4433\n" \ " debug_level=%%d default: 0 (disabled)\n" \ + " build_version=%%d default: none (disabled)\n" \ + " option: 1 (print build version only and stop)\n" \ " buffer_size=%%d default: 200 \n" \ " (minimum: 1)\n" \ " response_size=%%d default: about 152 (basic response)\n" \ @@ -1745,6 +1747,16 @@ int main( int argc, char *argv[] ) if( opt.debug_level < 0 || opt.debug_level > 65535 ) goto usage; } + else if( strcmp( p, "build_version" ) == 0 ) + { + if( strcmp( q, "1" ) == 0 ) + { + mbedtls_printf( "build version: %s (build %d)\n", + MBEDTLS_VERSION_STRING_FULL, + MBEDTLS_VERSION_NUMBER ); + goto exit; + } + } else if( strcmp( p, "nbio" ) == 0 ) { opt.nbio = atoi( q ); @@ -2576,6 +2588,9 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_SSL_ALPN */ + mbedtls_printf( "build version: %s (build %d)\n", + MBEDTLS_VERSION_STRING_FULL, MBEDTLS_VERSION_NUMBER ); + /* * 0. Initialize the RNG and the session data */ From ad9e99bd2ea52b32f0b62ed55d8b6781c88be272 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 28 Oct 2022 12:18:52 +0800 Subject: [PATCH 0914/1028] fix session resumption fail when hostname is not localhost Change-Id: Icb2f625bb11debb5c7cae36e34d7270f7baae4d5 Signed-off-by: Jerry Yu --- programs/ssl/ssl_client2.c | 12 +++++++----- tests/ssl-opt.sh | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 80862f96a0..d183c66336 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -83,6 +83,7 @@ int main( void ) #define DFL_RECSPLIT -1 #define DFL_DHMLEN -1 #define DFL_RECONNECT 0 +#define DFL_RECO_SERVER_NAME NULL #define DFL_RECO_DELAY 0 #define DFL_RECO_MODE 1 #define DFL_CID_ENABLED 0 @@ -403,8 +404,8 @@ int main( void ) USAGE_RENEGO \ " exchanges=%%d default: 1\n" \ " reconnect=%%d number of reconnections using session resumption\n" \ - " default: 0 (disabled)\n" \ - " reco_server_name=%%s default: localhost\n" \ + " default: 0 (disabled)\n" \ + " reco_server_name=%%s default: NULL\n" \ " reco_delay=%%d default: 0 seconds\n" \ " reco_mode=%%d 0: copy session, 1: serialize session\n" \ " default: 1\n" \ @@ -921,7 +922,7 @@ int main( int argc, char *argv[] ) opt.recsplit = DFL_RECSPLIT; opt.dhmlen = DFL_DHMLEN; opt.reconnect = DFL_RECONNECT; - opt.reco_server_name = DFL_SERVER_NAME; + opt.reco_server_name = DFL_RECO_SERVER_NAME; opt.reco_delay = DFL_RECO_DELAY; opt.reco_mode = DFL_RECO_MODE; opt.reconnect_hard = DFL_RECONNECT_HARD; @@ -1118,7 +1119,7 @@ int main( int argc, char *argv[] ) if( opt.reconnect < 0 || opt.reconnect > 2 ) goto usage; } - else if( strcmp( p, "rec_server_name" ) == 0 ) + else if( strcmp( p, "reco_server_name" ) == 0 ) opt.reco_server_name = q; else if( strcmp( p, "reco_delay" ) == 0 ) { @@ -3113,7 +3114,8 @@ reconnect: } #if defined(MBEDTLS_X509_CRT_PARSE_C) - if( ( ret = mbedtls_ssl_set_hostname( &ssl, + if( opt.reco_server_name != NULL && + ( ret = mbedtls_ssl_set_hostname( &ssl, opt.reco_server_name ) ) != 0 ) { mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index e2f9206ec3..eff37df827 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -13018,7 +13018,7 @@ requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ - "$P_CLI debug_level=4 server_name=localhost rec_server_name=remote reco_mode=1 reconnect=1" \ + "$P_CLI debug_level=4 server_name=localhost reco_server_name=remote reco_mode=1 reconnect=1" \ 1 \ -c "Protocol is TLSv1.3" \ -c "got new session ticket." \ From c3a7fa386e0c8098207cb3b959a4550c51ebd159 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 28 Oct 2022 12:38:33 +0800 Subject: [PATCH 0915/1028] Update output message when certification verified fail Signed-off-by: Jerry Yu --- programs/ssl/ssl_client2.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index d183c66336..11c3ccc265 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -2240,7 +2240,10 @@ int main( int argc, char *argv[] ) " or you didn't set ca_file or ca_path " "to an appropriate value.\n" " Alternatively, you may want to use " - "auth_mode=optional for testing purposes.\n" ); + "auth_mode=optional for testing purposes if " + "server is not TLS 1.3.\n" + " For TLS 1.3 server, try `ca_path=/etc/ssl/certs/`" + "or other folder that has root certificates\n" ); mbedtls_printf( "\n" ); goto exit; } From f00466e2e06b18f12b790d8ac69f138742c6dc54 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 28 Oct 2022 09:22:28 +0100 Subject: [PATCH 0916/1028] Build fix - remove line of dead code Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.function | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function index d5959d5dc4..28351e229e 100644 --- a/tests/suites/test_suite_ecdsa.function +++ b/tests/suites/test_suite_ecdsa.function @@ -472,7 +472,6 @@ void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, data_t * { mbedtls_ecdsa_context ctx; mbedtls_mpi sig_r, sig_s; - const mbedtls_ecp_curve_info *curve_info; mbedtls_ecdsa_init( &ctx ); mbedtls_mpi_init( &sig_r ); From 169ae4f528244653eb6629351c4eeab4932ac30c Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 28 Oct 2022 11:24:29 +0100 Subject: [PATCH 0917/1028] Add Changelog entry Signed-off-by: Dave Rodgman --- ChangeLog.d/cert_write-set-extended-key-usages.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ChangeLog.d/cert_write-set-extended-key-usages.txt diff --git a/ChangeLog.d/cert_write-set-extended-key-usages.txt b/ChangeLog.d/cert_write-set-extended-key-usages.txt new file mode 100644 index 0000000000..5843d9e70c --- /dev/null +++ b/ChangeLog.d/cert_write-set-extended-key-usages.txt @@ -0,0 +1,4 @@ +Features + * cert_write: support for setting extended key usage attributes. + * cert_write: support for writing certificate files in either PEM + or DER format. From d7dfc0922efc8211a511710482418240b18eb07f Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 28 Oct 2022 11:38:05 +0100 Subject: [PATCH 0918/1028] Update Changelog Signed-off-by: Dave Rodgman --- ChangeLog.d/cert_write-set-extended-key-usages.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ChangeLog.d/cert_write-set-extended-key-usages.txt b/ChangeLog.d/cert_write-set-extended-key-usages.txt index 5843d9e70c..02bc8013c2 100644 --- a/ChangeLog.d/cert_write-set-extended-key-usages.txt +++ b/ChangeLog.d/cert_write-set-extended-key-usages.txt @@ -1,4 +1,6 @@ Features - * cert_write: support for setting extended key usage attributes. + * cert_write: support for setting extended key usage attributes. A + corresponding new public API call has been added in the library, + mbedtls_x509write_crt_set_ext_key_usage. * cert_write: support for writing certificate files in either PEM or DER format. From b3166f4b2f9577aeb04afba02062d61d6b1c1334 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 28 Oct 2022 11:39:04 +0100 Subject: [PATCH 0919/1028] Update Changelog Signed-off-by: Dave Rodgman --- ChangeLog.d/cert_write-set-extended-key-usages.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog.d/cert_write-set-extended-key-usages.txt b/ChangeLog.d/cert_write-set-extended-key-usages.txt index 02bc8013c2..18b7b040d1 100644 --- a/ChangeLog.d/cert_write-set-extended-key-usages.txt +++ b/ChangeLog.d/cert_write-set-extended-key-usages.txt @@ -1,6 +1,6 @@ Features * cert_write: support for setting extended key usage attributes. A corresponding new public API call has been added in the library, - mbedtls_x509write_crt_set_ext_key_usage. + mbedtls_x509write_crt_set_ext_key_usage(). * cert_write: support for writing certificate files in either PEM or DER format. From a4b4041219cf7cc273949ef560a3e81122d1a1f9 Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Sun, 26 Jun 2022 19:32:09 -0400 Subject: [PATCH 0920/1028] Shared code to free x509 structs Signed-off-by: Glenn Strauss --- ChangeLog.d/mbedtls_asn1_type_free.txt | 2 + include/mbedtls/asn1.h | 9 +++ library/asn1parse.c | 10 +++ library/ssl_tls12_client.c | 10 +-- library/x509.c | 15 +--- library/x509_crl.c | 24 +------ library/x509_crt.c | 80 ++-------------------- library/x509_csr.c | 12 +--- tests/suites/test_suite_x509parse.function | 24 +------ 9 files changed, 37 insertions(+), 149 deletions(-) create mode 100644 ChangeLog.d/mbedtls_asn1_type_free.txt diff --git a/ChangeLog.d/mbedtls_asn1_type_free.txt b/ChangeLog.d/mbedtls_asn1_type_free.txt new file mode 100644 index 0000000000..87ac5ec5bb --- /dev/null +++ b/ChangeLog.d/mbedtls_asn1_type_free.txt @@ -0,0 +1,2 @@ +Features + * Shared code to free x509 structs like mbedtls_x509_named_data diff --git a/include/mbedtls/asn1.h b/include/mbedtls/asn1.h index be2cae7b5a..5d274950ae 100644 --- a/include/mbedtls/asn1.h +++ b/include/mbedtls/asn1.h @@ -625,6 +625,15 @@ void mbedtls_asn1_free_named_data( mbedtls_asn1_named_data *entry ); */ void mbedtls_asn1_free_named_data_list( mbedtls_asn1_named_data **head ); +/** + * \brief Free all shallow entries in a mbedtls_asn1_named_data list, + * but do not free internal pointer targets. + * + * \param name Head of the list of named data entries to free. + * This function calls mbedtls_free() on each list element. + */ +void mbedtls_asn1_free_named_data_list_shallow( mbedtls_asn1_named_data *name ); + /** \} name Functions to parse ASN.1 data structures */ /** \} addtogroup asn1_module */ diff --git a/library/asn1parse.c b/library/asn1parse.c index d874fff469..12a378cf31 100644 --- a/library/asn1parse.c +++ b/library/asn1parse.c @@ -455,6 +455,16 @@ void mbedtls_asn1_free_named_data_list( mbedtls_asn1_named_data **head ) } } +void mbedtls_asn1_free_named_data_list_shallow( mbedtls_asn1_named_data *name ) +{ + for( mbedtls_asn1_named_data *next; name != NULL; name = next ) + { + next = name->next; + mbedtls_platform_zeroize( name, sizeof( *name ) ); + mbedtls_free( name ); + } +} + const mbedtls_asn1_named_data *mbedtls_asn1_find_named_data( const mbedtls_asn1_named_data *list, const char *oid, size_t len ) { diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 5360b3cb7f..1c53a09903 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -2680,7 +2680,6 @@ static int ssl_parse_certificate_request( mbedtls_ssl_context *ssl ) { unsigned char *p = dn + i + 2; mbedtls_x509_name name; - mbedtls_x509_name *name_cur, *name_prv; size_t asn1_len; char s[MBEDTLS_X509_MAX_DN_NAME_SIZE]; memset( &name, 0, sizeof( name ) ); @@ -2700,14 +2699,7 @@ static int ssl_parse_certificate_request( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_DEBUG_MSG( 3, ( "DN hint: %.*s", mbedtls_x509_dn_gets( s, sizeof(s), &name ), s ) ); - name_cur = name.next; - while( name_cur != NULL ) - { - name_prv = name_cur; - name_cur = name_cur->next; - mbedtls_platform_zeroize( name_prv, sizeof( mbedtls_x509_name ) ); - mbedtls_free( name_prv ); - } + mbedtls_asn1_free_named_data_list_shallow( name.next ); } #endif diff --git a/library/x509.c b/library/x509.c index c5b0161e71..362e036766 100644 --- a/library/x509.c +++ b/library/x509.c @@ -472,7 +472,6 @@ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, size_t set_len; const unsigned char *end_set; mbedtls_x509_name *head = cur; - mbedtls_x509_name *prev, *allocated; /* don't use recursion, we'd risk stack overflow if not optimized */ while( 1 ) @@ -530,18 +529,8 @@ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, error: /* Skip the first element as we did not allocate it */ - allocated = head->next; - - while( allocated != NULL ) - { - prev = allocated; - allocated = allocated->next; - - mbedtls_platform_zeroize( prev, sizeof( *prev ) ); - mbedtls_free( prev ); - } - - mbedtls_platform_zeroize( head, sizeof( *head ) ); + mbedtls_asn1_free_named_data_list_shallow( head->next ); + head->next = NULL; return( ret ); } diff --git a/library/x509_crl.c b/library/x509_crl.c index 2a3fac7900..d830fcd05f 100644 --- a/library/x509_crl.c +++ b/library/x509_crl.c @@ -705,28 +705,16 @@ void mbedtls_x509_crl_free( mbedtls_x509_crl *crl ) { mbedtls_x509_crl *crl_cur = crl; mbedtls_x509_crl *crl_prv; - mbedtls_x509_name *name_cur; - mbedtls_x509_name *name_prv; mbedtls_x509_crl_entry *entry_cur; mbedtls_x509_crl_entry *entry_prv; - if( crl == NULL ) - return; - - do + while( crl_cur != NULL ) { #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) mbedtls_free( crl_cur->sig_opts ); #endif - name_cur = crl_cur->issuer.next; - while( name_cur != NULL ) - { - name_prv = name_cur; - name_cur = name_cur->next; - mbedtls_platform_zeroize( name_prv, sizeof( mbedtls_x509_name ) ); - mbedtls_free( name_prv ); - } + mbedtls_asn1_free_named_data_list_shallow( crl_cur->issuer.next ); entry_cur = crl_cur->entry.next; while( entry_cur != NULL ) @@ -744,13 +732,6 @@ void mbedtls_x509_crl_free( mbedtls_x509_crl *crl ) mbedtls_free( crl_cur->raw.p ); } - crl_cur = crl_cur->next; - } - while( crl_cur != NULL ); - - crl_cur = crl; - do - { crl_prv = crl_cur; crl_cur = crl_cur->next; @@ -758,7 +739,6 @@ void mbedtls_x509_crl_free( mbedtls_x509_crl *crl ) if( crl_prv != crl ) mbedtls_free( crl_prv ); } - while( crl_cur != NULL ); } #endif /* MBEDTLS_X509_CRL_PARSE_C */ diff --git a/library/x509_crt.c b/library/x509_crt.c index c4f97bbe2b..81186fa0c0 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -685,16 +685,7 @@ static int x509_get_subject_alt_name( unsigned char **p, */ if( ret != 0 && ret != MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE ) { - mbedtls_x509_sequence *seq_cur = subject_alt_name->next; - mbedtls_x509_sequence *seq_prv; - while( seq_cur != NULL ) - { - seq_prv = seq_cur; - seq_cur = seq_cur->next; - mbedtls_platform_zeroize( seq_prv, - sizeof( mbedtls_x509_sequence ) ); - mbedtls_free( seq_prv ); - } + mbedtls_asn1_sequence_free( subject_alt_name->next ); subject_alt_name->next = NULL; return( ret ); } @@ -3300,15 +3291,8 @@ void mbedtls_x509_crt_free( mbedtls_x509_crt *crt ) { mbedtls_x509_crt *cert_cur = crt; mbedtls_x509_crt *cert_prv; - mbedtls_x509_name *name_cur; - mbedtls_x509_name *name_prv; - mbedtls_x509_sequence *seq_cur; - mbedtls_x509_sequence *seq_prv; - if( crt == NULL ) - return; - - do + while( cert_cur != NULL ) { mbedtls_pk_free( &cert_cur->pk ); @@ -3316,53 +3300,11 @@ void mbedtls_x509_crt_free( mbedtls_x509_crt *crt ) mbedtls_free( cert_cur->sig_opts ); #endif - name_cur = cert_cur->issuer.next; - while( name_cur != NULL ) - { - name_prv = name_cur; - name_cur = name_cur->next; - mbedtls_platform_zeroize( name_prv, sizeof( mbedtls_x509_name ) ); - mbedtls_free( name_prv ); - } - - name_cur = cert_cur->subject.next; - while( name_cur != NULL ) - { - name_prv = name_cur; - name_cur = name_cur->next; - mbedtls_platform_zeroize( name_prv, sizeof( mbedtls_x509_name ) ); - mbedtls_free( name_prv ); - } - - seq_cur = cert_cur->ext_key_usage.next; - while( seq_cur != NULL ) - { - seq_prv = seq_cur; - seq_cur = seq_cur->next; - mbedtls_platform_zeroize( seq_prv, - sizeof( mbedtls_x509_sequence ) ); - mbedtls_free( seq_prv ); - } - - seq_cur = cert_cur->subject_alt_names.next; - while( seq_cur != NULL ) - { - seq_prv = seq_cur; - seq_cur = seq_cur->next; - mbedtls_platform_zeroize( seq_prv, - sizeof( mbedtls_x509_sequence ) ); - mbedtls_free( seq_prv ); - } - - seq_cur = cert_cur->certificate_policies.next; - while( seq_cur != NULL ) - { - seq_prv = seq_cur; - seq_cur = seq_cur->next; - mbedtls_platform_zeroize( seq_prv, - sizeof( mbedtls_x509_sequence ) ); - mbedtls_free( seq_prv ); - } + mbedtls_asn1_free_named_data_list_shallow( cert_cur->issuer.next ); + mbedtls_asn1_free_named_data_list_shallow( cert_cur->subject.next ); + mbedtls_asn1_sequence_free( cert_cur->ext_key_usage.next ); + mbedtls_asn1_sequence_free( cert_cur->subject_alt_names.next ); + mbedtls_asn1_sequence_free( cert_cur->certificate_policies.next ); if( cert_cur->raw.p != NULL && cert_cur->own_buffer ) { @@ -3370,13 +3312,6 @@ void mbedtls_x509_crt_free( mbedtls_x509_crt *crt ) mbedtls_free( cert_cur->raw.p ); } - cert_cur = cert_cur->next; - } - while( cert_cur != NULL ); - - cert_cur = crt; - do - { cert_prv = cert_cur; cert_cur = cert_cur->next; @@ -3384,7 +3319,6 @@ void mbedtls_x509_crt_free( mbedtls_x509_crt *crt ) if( cert_prv != crt ) mbedtls_free( cert_prv ); } - while( cert_cur != NULL ); } #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) diff --git a/library/x509_csr.c b/library/x509_csr.c index dee0ea62d7..f9462added 100644 --- a/library/x509_csr.c +++ b/library/x509_csr.c @@ -375,9 +375,6 @@ void mbedtls_x509_csr_init( mbedtls_x509_csr *csr ) */ void mbedtls_x509_csr_free( mbedtls_x509_csr *csr ) { - mbedtls_x509_name *name_cur; - mbedtls_x509_name *name_prv; - if( csr == NULL ) return; @@ -387,14 +384,7 @@ void mbedtls_x509_csr_free( mbedtls_x509_csr *csr ) mbedtls_free( csr->sig_opts ); #endif - name_cur = csr->subject.next; - while( name_cur != NULL ) - { - name_prv = name_cur; - name_cur = name_cur->next; - mbedtls_platform_zeroize( name_prv, sizeof( mbedtls_x509_name ) ); - mbedtls_free( name_prv ); - } + mbedtls_asn1_free_named_data_list_shallow( csr->subject.next ); if( csr->raw.p != NULL ) { diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index a3606f29b5..3369a8a3f5 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -825,7 +825,6 @@ void mbedtls_x509_get_name( char * rdn_sequence, int exp_ret ) unsigned char *p; size_t name_len; mbedtls_x509_name head; - mbedtls_x509_name *allocated, *prev; int ret; memset( &head, 0, sizeof( head ) ); @@ -835,17 +834,7 @@ void mbedtls_x509_get_name( char * rdn_sequence, int exp_ret ) ret = mbedtls_x509_get_name( &p, ( name + name_len ), &head ); if( ret == 0 ) - { - allocated = head.next; - - while( allocated != NULL ) - { - prev = allocated; - allocated = allocated->next; - - mbedtls_free( prev ); - } - } + mbedtls_asn1_free_named_data_list_shallow( head.next ); TEST_EQUAL( ret, exp_ret ); @@ -859,7 +848,7 @@ void mbedtls_x509_dn_get_next( char * name_str, int next_merged, char * expected int ret = 0, i; size_t len = 0, out_size; mbedtls_asn1_named_data *names = NULL; - mbedtls_x509_name parsed, *parsed_cur, *parsed_prv; + mbedtls_x509_name parsed, *parsed_cur; // Size of buf is maximum required for test cases unsigned char buf[80], *out = NULL, *c; const char *short_name; @@ -913,14 +902,7 @@ void mbedtls_x509_dn_get_next( char * name_str, int next_merged, char * expected exit: mbedtls_free( out ); mbedtls_asn1_free_named_data_list( &names ); - - parsed_cur = parsed.next; - while( parsed_cur != 0 ) - { - parsed_prv = parsed_cur; - parsed_cur = parsed_cur->next; - mbedtls_free( parsed_prv ); - } + mbedtls_asn1_free_named_data_list_shallow( parsed.next ); } /* END_CASE */ From 7db3124c00afe5162c595c1e73eeec21438c1a23 Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Fri, 1 Jul 2022 13:22:45 -0400 Subject: [PATCH 0921/1028] Skip asn1 zeroize if freeing shallow pointers This skips zeroizing additional pointers to data. (Note: actual sensitive data should still be zeroized when freed.) Signed-off-by: Glenn Strauss --- library/asn1parse.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/library/asn1parse.c b/library/asn1parse.c index 12a378cf31..4bc17710c0 100644 --- a/library/asn1parse.c +++ b/library/asn1parse.c @@ -314,7 +314,6 @@ void mbedtls_asn1_sequence_free( mbedtls_asn1_sequence *seq ) while( seq != NULL ) { mbedtls_asn1_sequence *next = seq->next; - mbedtls_platform_zeroize( seq, sizeof( *seq ) ); mbedtls_free( seq ); seq = next; } @@ -450,7 +449,8 @@ void mbedtls_asn1_free_named_data_list( mbedtls_asn1_named_data **head ) while( ( cur = *head ) != NULL ) { *head = cur->next; - mbedtls_asn1_free_named_data( cur ); + mbedtls_free( cur->oid.p ); + mbedtls_free( cur->val.p ); mbedtls_free( cur ); } } @@ -460,7 +460,6 @@ void mbedtls_asn1_free_named_data_list_shallow( mbedtls_asn1_named_data *name ) for( mbedtls_asn1_named_data *next; name != NULL; name = next ) { next = name->next; - mbedtls_platform_zeroize( name, sizeof( *name ) ); mbedtls_free( name ); } } From 4bb369c4eb155711099fca602d16761831532168 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sat, 29 Oct 2022 17:44:19 +0200 Subject: [PATCH 0922/1028] Always enable MBEDTLS_TEST_HOOKS in TLS 1.3-only test configurations MBEDTLS_TEST_HOOKS is not supposed to change the behavior of the library, so it's generally good to have it on in functional tests. Signed-off-by: Gilles Peskine --- tests/configs/tls13-only.h | 5 +++++ tests/scripts/all.sh | 16 ++-------------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/tests/configs/tls13-only.h b/tests/configs/tls13-only.h index 0a22c544b7..7483f1cd97 100644 --- a/tests/configs/tls13-only.h +++ b/tests/configs/tls13-only.h @@ -22,9 +22,11 @@ * limitations under the License. */ +/* Enable TLS 1.3 and core 1.3 features */ #define MBEDTLS_SSL_PROTO_TLS1_3 #define MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +/* Disable TLS 1.2 and 1.2-specific features */ #undef MBEDTLS_SSL_ENCRYPT_THEN_MAC #undef MBEDTLS_SSL_EXTENDED_MASTER_SECRET #undef MBEDTLS_SSL_PROTO_TLS1_2 @@ -32,3 +34,6 @@ #undef MBEDTLS_SSL_DTLS_ANTI_REPLAY #undef MBEDTLS_SSL_DTLS_HELLO_VERIFY #undef MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE + +/* Enable some invasive tests */ +#define MBEDTLS_TEST_HOOKS diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index e8f1726076..6e1d4014a0 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -3248,8 +3248,8 @@ component_test_tls13_only () { msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3, without MBEDTLS_SSL_PROTO_TLS1_2" make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" - msg "test_suite_ssl: TLS 1.3 only, all key exchange modes enabled" - cd tests; ./test_suite_ssl; cd .. + msg "test: TLS 1.3 only, all key exchange modes enabled" + make test msg "ssl-opt.sh: TLS 1.3 only, all key exchange modes enabled" tests/ssl-opt.sh @@ -3334,18 +3334,6 @@ component_test_tls13_only_ephemeral_all () { tests/ssl-opt.sh } -component_test_tls13_only_with_hooks () { - msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3 and MBEDTLS_TEST_HOOKS, without MBEDTLS_SSL_PROTO_TLS1_2" - scripts/config.py set MBEDTLS_TEST_HOOKS - make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" - - msg "test: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, without MBEDTLS_SSL_PROTO_TLS1_2" - if_build_succeeded make test - - msg "ssl-opt.sh (TLS 1.3)" - if_build_succeeded tests/ssl-opt.sh -} - component_test_tls13 () { msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, without padding" scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3 From 8a4fd0e7a9b04b82cf6331b54cd5b296fe9cb8d3 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sat, 29 Oct 2022 17:51:19 +0200 Subject: [PATCH 0923/1028] Remove redundant build-only driver interface component component_build_psa_accel_alg_ecdsa is subsumed by component_test_psa_crypto_config_accel_ecdsa, which has the same configuration and additionally runs the unit tests. Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 6e1d4014a0..8231644566 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2238,25 +2238,6 @@ component_test_psa_crypto_config_chachapoly_disabled() { make test } -# This should be renamed to test and updated once the accelerator ECDSA code is in place and ready to test. -component_build_psa_accel_alg_ecdsa() { - # full plus MBEDTLS_PSA_CRYPTO_CONFIG with PSA_WANT_ALG_ECDSA - # without MBEDTLS_ECDSA_C - # PSA_WANT_ALG_ECDSA and PSA_WANT_ALG_DETERMINISTIC_ECDSA are already - # set in include/psa/crypto_config.h - msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG + PSA_WANT_ALG_ECDSA without MBEDTLS_ECDSA_C" - scripts/config.py full - scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG - scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS - scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO - scripts/config.py unset MBEDTLS_SSL_PROTO_TLS1_3 - scripts/config.py unset MBEDTLS_ECDSA_C - scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED - scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED - # Need to define the correct symbol and include the test driver header path in order to build with the test driver - make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_ECDSA -DMBEDTLS_PSA_ACCEL_ALG_DETERMINISTIC_ECDSA -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" -} - # This should be renamed to test and updated once the accelerator ECDH code is in place and ready to test. component_build_psa_accel_alg_ecdh() { # full plus MBEDTLS_PSA_CRYPTO_CONFIG with PSA_WANT_ALG_ECDH From 78e06a1054d89a2db0eadfee219c9127b39272ea Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sat, 29 Oct 2022 17:55:11 +0200 Subject: [PATCH 0924/1028] Remove redundant TLS 1.3 components * component_test_tls13_with_padding: just explicitly sets some options that are identical with full. * component_test_tls13_with_ecp_restartable: redundant since TLS 1.3 doesn't have any support for restartable ECC. * component_test_tls13_with_everest: not useful since TLS 1.3 doesn't call ECDH directly, it just relies on the PSA abstraction. Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 40 ---------------------------------------- 1 file changed, 40 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 8231644566..12affa19f5 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -3341,46 +3341,6 @@ component_test_tls13_no_compatibility_mode () { tests/ssl-opt.sh } -component_test_tls13_with_padding () { - msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with padding" - scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3 - scripts/config.py set MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE - scripts/config.py set MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY 16 - CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . - make - msg "test: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with padding" - make test - msg "ssl-opt.sh (TLS 1.3 with padding)" - tests/ssl-opt.sh -} - -component_test_tls13_with_ecp_restartable () { - msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with ecp_restartable" - scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3 - scripts/config.py set MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE - scripts/config.py set MBEDTLS_ECP_RESTARTABLE - CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . - make - msg "test: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with ecp_restartable" - make test - msg "ssl-opt.sh (TLS 1.3 with ecp_restartable)" - tests/ssl-opt.sh -} - -component_test_tls13_with_everest () { - msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with Everest" - scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3 - scripts/config.py set MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE - scripts/config.py set MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED - scripts/config.py unset MBEDTLS_ECP_RESTARTABLE - CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . - make - msg "test: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with Everest" - make test - msg "ssl-opt.sh (TLS 1.3 with everest)" - tests/ssl-opt.sh -} - component_build_mingw () { msg "build: Windows cross build - mingw64, make (Link Library)" # ~ 30s make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall -Wextra' WINDOWS_BUILD=1 lib programs From 2883219edbb54d02d2954d8fec43b820e64a0b48 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sun, 30 Oct 2022 13:53:31 +0800 Subject: [PATCH 0925/1028] Improve output message Signed-off-by: Jerry Yu --- programs/ssl/ssl_client2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 11c3ccc265..86a9c1e196 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -2241,7 +2241,7 @@ int main( int argc, char *argv[] ) "to an appropriate value.\n" " Alternatively, you may want to use " "auth_mode=optional for testing purposes if " - "server is not TLS 1.3.\n" + "not using TLS 1.3.\n" " For TLS 1.3 server, try `ca_path=/etc/ssl/certs/`" "or other folder that has root certificates\n" ); mbedtls_printf( "\n" ); From def7ae4404f707aa3ce2228137d5e88804bb5a35 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sun, 30 Oct 2022 14:13:19 +0800 Subject: [PATCH 0926/1028] Add auth mode check Signed-off-by: Jerry Yu --- library/ssl_tls.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index a49f774ed1..6446b760e0 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1012,6 +1012,30 @@ static int ssl_conf_check(const mbedtls_ssl_context *ssl) if( ret != 0 ) return( ret ); +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + /* RFC 8446 section 4.4.3 + * + * If the verification fails, the receiver MUST terminate the handshake with + * a "decrypt_error" alert. + * + * If the client is configured as TLS 1.3 only with optional verify, return + * bad config. + * + */ + if( mbedtls_ssl_conf_tls13_ephemeral_enabled( + (mbedtls_ssl_context *)ssl ) && + ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT && + ssl->conf->max_tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && + ssl->conf->min_tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && + ssl->conf->authmode == MBEDTLS_SSL_VERIFY_OPTIONAL ) + { + MBEDTLS_SSL_DEBUG_MSG( + 1, ( "Optional verfiy auth mode " + "is not available for TLS 1.3 client" ) ); + return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + } +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ + /* Space for further checks */ return( 0 ); From 12f5c6b2bcc9e9f8e64a6324c9b5c2fe58c4cce4 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sun, 30 Oct 2022 14:24:07 +0800 Subject: [PATCH 0927/1028] Add changelog entry Signed-off-by: Jerry Yu --- ...session_resumption_fail_when_hostname_is_not_localhost.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt diff --git a/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt b/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt new file mode 100644 index 0000000000..4a4d535aea --- /dev/null +++ b/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt @@ -0,0 +1,4 @@ +Bugfix + * Fix TLS 1.3 session reumption fail. Fixes #6488. + * Add configuration check to exclude TLS 1.3 optional authentication of + client. From da6017cbe340ab9907e4882816c3ffdbfa1bf815 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 30 Oct 2022 21:02:40 +0100 Subject: [PATCH 0928/1028] Group cpp_dummy_build test into an existing component No need to do yet another build just to compile an additional trivial program. Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 12affa19f5..9295c9d00f 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1542,12 +1542,15 @@ component_test_psa_collect_statuses () { component_test_full_cmake_clang () { msg "build: cmake, full config, clang" # ~ 50s scripts/config.py full - CC=clang cmake -D CMAKE_BUILD_TYPE:String=Release -D ENABLE_TESTING=On . + CC=clang CXX=clang cmake -D CMAKE_BUILD_TYPE:String=Release -D ENABLE_TESTING=On -D TEST_CPP=1 . make msg "test: main suites (full config, clang)" # ~ 5s make test + msg "test: cpp_dummy_build (full config, clang)" # ~ 1s + programs/test/cpp_dummy_build + msg "test: psa_constant_names (full config, clang)" # ~ 1s tests/scripts/test_psa_constant_names.py @@ -1842,15 +1845,6 @@ component_test_depends_py_pkalgs_psa () { tests/scripts/depends.py pkalgs } -component_test_make_cxx () { - msg "build: Unix make, full, gcc + g++" - scripts/config.py full - make TEST_CPP=1 lib programs - - msg "test: cpp_dummy_build" - programs/test/cpp_dummy_build -} - component_build_module_alt () { msg "build: MBEDTLS_XXX_ALT" # ~30s scripts/config.py full From 471dee5a128a33da461eaf7e546188b99572f7bb Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 4 Aug 2022 16:33:14 +0800 Subject: [PATCH 0929/1028] Add debug helpers to track extensions Signed-off-by: Jerry Yu --- library/ssl_debug_helpers.h | 21 ++++++ library/ssl_tls13_generic.c | 126 ++++++++++++++++++++++++++++++++++++ library/ssl_tls13_server.c | 60 +---------------- 3 files changed, 150 insertions(+), 57 deletions(-) diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index 9f1df736bd..07e8c7103f 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -45,4 +45,25 @@ const char *mbedtls_ssl_named_group_to_str( uint16_t in ); #endif /* MBEDTLS_DEBUG_C */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) +#if defined(MBEDTLS_DEBUG_C) + +const char *mbedtls_tls13_get_extension_name( uint16_t extension_type ); + +void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + const char *hs_msg_name, + uint32_t extensions_present ); + +#define MBEDTLS_SSL_TLS1_3_PRINT_EXTS( level, hs_msg_name, extensions_present ) \ + mbedtls_ssl_tls13_print_extensions( \ + ssl, level, __FILE__, __LINE__, hs_msg_name, extensions_present ) +#else + +#define MBEDTLS_SSL_TLS1_3_PRINT_EXTS( level, hs_msg_name, extensions_present ) + +#endif + +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ + #endif /* SSL_DEBUG_HELPERS_H */ diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 48e3675820..662e6f4c81 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1485,4 +1485,130 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( } #endif /* MBEDTLS_ECDH_C */ +#if defined(MBEDTLS_DEBUG_C) +const char *mbedtls_tls13_get_extension_name( uint16_t extension_type ) +{ + switch( extension_type ) + { + case MBEDTLS_TLS_EXT_SERVERNAME: + return( "server_name" ); + + case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: + return( "max_fragment_length" ); + + case MBEDTLS_TLS_EXT_STATUS_REQUEST: + return( "status_request" ); + + case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: + return( "supported_groups" ); + + case MBEDTLS_TLS_EXT_SIG_ALG: + return( "signature_algorithms" ); + + case MBEDTLS_TLS_EXT_USE_SRTP: + return( "use_srtp" ); + + case MBEDTLS_TLS_EXT_HEARTBEAT: + return( "heartbeat" ); + + case MBEDTLS_TLS_EXT_ALPN: + return( "application_layer_protocol_negotiation" ); + + case MBEDTLS_TLS_EXT_SCT: + return( "signed_certificate_timestamp" ); + + case MBEDTLS_TLS_EXT_CLI_CERT_TYPE: + return( "client_certificate_type" ); + + case MBEDTLS_TLS_EXT_SERV_CERT_TYPE: + return( "server_certificate_type" ); + + case MBEDTLS_TLS_EXT_PADDING: + return( "padding" ); + + case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: + return( "pre_shared_key" ); + + case MBEDTLS_TLS_EXT_EARLY_DATA: + return( "early_data" ); + + case MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS: + return( "supported_versions" ); + + case MBEDTLS_TLS_EXT_COOKIE: + return( "cookie" ); + + case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: + return( "psk_key_exchange_modes" ); + + case MBEDTLS_TLS_EXT_CERT_AUTH: + return( "certificate_authorities" ); + + case MBEDTLS_TLS_EXT_OID_FILTERS: + return( "oid_filters" ); + + case MBEDTLS_TLS_EXT_POST_HANDSHAKE_AUTH: + return( "post_handshake_auth" ); + + case MBEDTLS_TLS_EXT_SIG_ALG_CERT: + return( "signature_algorithms_cert" ); + + case MBEDTLS_TLS_EXT_KEY_SHARE: + return( "key_share" ); + }; + + return( "unknown" ); +} + +void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + const char *hs_msg_name, + uint32_t extensions_present ) +{ + static const struct{ + uint32_t extension_mask; + const char *extension_name; + } mask_to_str_table[] = { + { MBEDTLS_SSL_EXT_SERVERNAME, "server_name" }, + { MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH, "max_fragment_length" }, + { MBEDTLS_SSL_EXT_STATUS_REQUEST, "status_request" }, + { MBEDTLS_SSL_EXT_SUPPORTED_GROUPS, "supported_groups" }, + { MBEDTLS_SSL_EXT_SIG_ALG, "signature_algorithms" }, + { MBEDTLS_SSL_EXT_USE_SRTP, "use_srtp" }, + { MBEDTLS_SSL_EXT_HEARTBEAT, "heartbeat" }, + { MBEDTLS_SSL_EXT_ALPN, "application_layer_protocol_negotiation" }, + { MBEDTLS_SSL_EXT_SCT, "signed_certificate_timestamp" }, + { MBEDTLS_SSL_EXT_CLI_CERT_TYPE, "client_certificate_type" }, + { MBEDTLS_SSL_EXT_SERV_CERT_TYPE, "server_certificate_type" }, + { MBEDTLS_SSL_EXT_PADDING, "padding" }, + { MBEDTLS_SSL_EXT_PRE_SHARED_KEY, "pre_shared_key" }, + { MBEDTLS_SSL_EXT_EARLY_DATA, "early_data" }, + { MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS, "supported_versions" }, + { MBEDTLS_SSL_EXT_COOKIE, "cookie" }, + { MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES, "psk_key_exchange_modes" }, + { MBEDTLS_SSL_EXT_CERT_AUTH, "certificate_authorities" }, + { MBEDTLS_SSL_EXT_OID_FILTERS, "oid_filters" }, + { MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH, "post_handshake_auth" }, + { MBEDTLS_SSL_EXT_SIG_ALG_CERT, "signature_algorithms_cert" }, + { MBEDTLS_SSL_EXT_KEY_SHARE, "key_share" } }; + + mbedtls_debug_print_msg( ssl, level, file, line, + "extension list of %s:", hs_msg_name ); + + for( unsigned i = 0; + i < sizeof( mask_to_str_table ) / sizeof( mask_to_str_table[0] ); + i++ ) + { + const char *extension_name = mask_to_str_table[i].extension_name; + uint32_t is_present = extensions_present & + mask_to_str_table[i].extension_mask; + + mbedtls_debug_print_msg( ssl, level, file, line, + "- %s extension ( %s )", extension_name, + is_present ? "true" : "false" ); + } +} + +#endif /* MBEDTLS_DEBUG_C */ + #endif /* MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 3762393b96..b24aa4a8c5 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -926,56 +926,6 @@ static int ssl_tls13_parse_key_shares_ext( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_ECDH_C */ -#if defined(MBEDTLS_DEBUG_C) -static void ssl_tls13_debug_print_client_hello_exts( mbedtls_ssl_context *ssl ) -{ - ((void) ssl); - - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Supported Extensions:" ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "- KEY_SHARE_EXTENSION ( %s )", - ( ( ssl->handshake->extensions_present - & MBEDTLS_SSL_EXT_KEY_SHARE ) > 0 ) ? "TRUE" : "FALSE" ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "- PSK_KEY_EXCHANGE_MODES_EXTENSION ( %s )", - ( ( ssl->handshake->extensions_present - & MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ) > 0 ) ? - "TRUE" : "FALSE" ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "- PRE_SHARED_KEY_EXTENSION ( %s )", - ( ( ssl->handshake->extensions_present - & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) > 0 ) ? "TRUE" : "FALSE" ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "- SIGNATURE_ALGORITHM_EXTENSION ( %s )", - ( ( ssl->handshake->extensions_present - & MBEDTLS_SSL_EXT_SIG_ALG ) > 0 ) ? "TRUE" : "FALSE" ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "- SUPPORTED_GROUPS_EXTENSION ( %s )", - ( ( ssl->handshake->extensions_present - & MBEDTLS_SSL_EXT_SUPPORTED_GROUPS ) >0 ) ? - "TRUE" : "FALSE" ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "- SUPPORTED_VERSION_EXTENSION ( %s )", - ( ( ssl->handshake->extensions_present - & MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) > 0 ) ? - "TRUE" : "FALSE" ) ); -#if defined ( MBEDTLS_SSL_SERVER_NAME_INDICATION ) - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "- SERVERNAME_EXTENSION ( %s )", - ( ( ssl->handshake->extensions_present - & MBEDTLS_SSL_EXT_SERVERNAME ) > 0 ) ? - "TRUE" : "FALSE" ) ); -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ -#if defined ( MBEDTLS_SSL_ALPN ) - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "- ALPN_EXTENSION ( %s )", - ( ( ssl->handshake->extensions_present - & MBEDTLS_SSL_EXT_ALPN ) > 0 ) ? - "TRUE" : "FALSE" ) ); -#endif /* MBEDTLS_SSL_ALPN */ -} -#endif /* MBEDTLS_DEBUG_C */ - MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_client_hello_has_exts( mbedtls_ssl_context *ssl, int exts_mask ) @@ -1655,18 +1605,14 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, default: MBEDTLS_SSL_DEBUG_MSG( 3, - ( "unknown extension found: %ud ( ignoring )", - extension_type ) ); + ( "client hello: received %s(%u) extension ( ignored )", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); } p += extension_data_len; } -#if defined(MBEDTLS_DEBUG_C) - /* List all the extensions we have received */ - ssl_tls13_debug_print_client_hello_exts( ssl ); -#endif /* MBEDTLS_DEBUG_C */ - mbedtls_ssl_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, p - buf ); From e18dc7eb9ac8d4d4161dace796c436cb6a2ef225 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 4 Aug 2022 16:29:22 +0800 Subject: [PATCH 0930/1028] Add forbidden extensions check for ClientHello Signed-off-by: Jerry Yu --- library/ssl_misc.h | 173 ++++++++++++++++++++++++++++++++++++- library/ssl_tls13_server.c | 57 +++++++++--- 2 files changed, 216 insertions(+), 14 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 41bb9c514d..cf3010a8fa 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -103,6 +103,93 @@ #define MBEDTLS_SSL_EXT_SIG_ALG_CERT ( 1 << 20 ) #define MBEDTLS_SSL_EXT_KEY_SHARE ( 1 << 21 ) +/* Except ServerHello, other message should ignore unrecognized extension. + * + * RFC 8446 page 31 + * + * The ServerHello MUST only include extensions which are required to establish + * the cryptographic context and negotiate the protocol version. + * + * RFC 8446 page 35 + * + * If an implementation receives an extension which it recognizes and which is + * not specified for the message in which it appears, it MUST abort the handshake + * with an "illegal_parameter" alert. + */ +#define MBEDTLS_SSL_EXT_UNRECOGNIZED ( 1U << 31 ) + +/* RFC 8446 page 36. Allowed extensions for ClienHello */ +#define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH \ + ( MBEDTLS_SSL_EXT_SERVERNAME | \ + MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH | \ + MBEDTLS_SSL_EXT_STATUS_REQUEST | \ + MBEDTLS_SSL_EXT_SUPPORTED_GROUPS | \ + MBEDTLS_SSL_EXT_SIG_ALG | \ + MBEDTLS_SSL_EXT_USE_SRTP | \ + MBEDTLS_SSL_EXT_HEARTBEAT | \ + MBEDTLS_SSL_EXT_ALPN | \ + MBEDTLS_SSL_EXT_SCT | \ + MBEDTLS_SSL_EXT_CLI_CERT_TYPE | \ + MBEDTLS_SSL_EXT_SERV_CERT_TYPE | \ + MBEDTLS_SSL_EXT_PADDING | \ + MBEDTLS_SSL_EXT_KEY_SHARE | \ + MBEDTLS_SSL_EXT_PRE_SHARED_KEY | \ + MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES | \ + MBEDTLS_SSL_EXT_EARLY_DATA | \ + MBEDTLS_SSL_EXT_COOKIE | \ + MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS | \ + MBEDTLS_SSL_EXT_CERT_AUTH | \ + MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH | \ + MBEDTLS_SSL_EXT_SIG_ALG_CERT | \ + MBEDTLS_SSL_EXT_UNRECOGNIZED ) + +/* RFC 8446 page 36. Allowed extensions for EncryptedExtensions */ +#define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE \ + ( MBEDTLS_SSL_EXT_SERVERNAME | \ + MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH | \ + MBEDTLS_SSL_EXT_SUPPORTED_GROUPS | \ + MBEDTLS_SSL_EXT_USE_SRTP | \ + MBEDTLS_SSL_EXT_HEARTBEAT | \ + MBEDTLS_SSL_EXT_ALPN | \ + MBEDTLS_SSL_EXT_CLI_CERT_TYPE | \ + MBEDTLS_SSL_EXT_SERV_CERT_TYPE | \ + MBEDTLS_SSL_EXT_EARLY_DATA | \ + MBEDTLS_SSL_EXT_UNRECOGNIZED ) + +/* RFC 8446 page 36. Allowed extensions for CertificateRequest */ +#define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CR \ + ( MBEDTLS_SSL_EXT_STATUS_REQUEST | \ + MBEDTLS_SSL_EXT_SIG_ALG | \ + MBEDTLS_SSL_EXT_SCT | \ + MBEDTLS_SSL_EXT_CERT_AUTH | \ + MBEDTLS_SSL_EXT_OID_FILTERS | \ + MBEDTLS_SSL_EXT_SIG_ALG_CERT | \ + MBEDTLS_SSL_EXT_UNRECOGNIZED ) + +/* RFC 8446 page 36. Allowed extensions for Certificate */ +#define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT \ + ( MBEDTLS_SSL_EXT_STATUS_REQUEST | \ + MBEDTLS_SSL_EXT_SCT | \ + MBEDTLS_SSL_EXT_UNRECOGNIZED ) + +/* RFC 8446 page 36. Allowed extensions for ServerHello */ +#define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_SH \ + ( MBEDTLS_SSL_EXT_KEY_SHARE | \ + MBEDTLS_SSL_EXT_PRE_SHARED_KEY | \ + MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) + +/* RFC 8446 page 36. Allowed extensions for HelloRetryRequest */ +#define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_HRR \ + ( MBEDTLS_SSL_EXT_KEY_SHARE | \ + MBEDTLS_SSL_EXT_COOKIE | \ + MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS | \ + MBEDTLS_SSL_EXT_UNRECOGNIZED ) + +/* RFC 8446 page 36. Allowed extensions for NewSessionTicket */ +#define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_NST \ + ( MBEDTLS_SSL_EXT_EARLY_DATA | \ + MBEDTLS_SSL_EXT_UNRECOGNIZED ) + /* * Helper macros for function call with return check. */ @@ -858,7 +945,7 @@ struct mbedtls_ssl_handshake_params #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - int extensions_present; /*!< extension presence; Each bitfield + uint32_t extensions_present; /*!< extension presence; Each bitfield represents an extension and defined as \c MBEDTLS_SSL_EXT_XXX */ @@ -1838,6 +1925,90 @@ static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) #endif /* MBEDTLS_SSL_SRV_C && MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ +/* + * Helper functions to check if the extension is allowed or forbiden + */ +static inline int mbedtls_ssl_tls13_has_extensions( mbedtls_ssl_context *ssl, + int extensions_mask ) +{ + int masked = ssl->handshake->extensions_present & extensions_mask; + return( masked != 0 ); +} + +static inline int mbedtls_tls13_get_extension_mask( uint16_t extension_type ) +{ + switch( extension_type ) + { + case MBEDTLS_TLS_EXT_SERVERNAME: + return( MBEDTLS_SSL_EXT_SERVERNAME ); + + case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: + return( MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH ); + + case MBEDTLS_TLS_EXT_STATUS_REQUEST: + return( MBEDTLS_SSL_EXT_STATUS_REQUEST ); + + case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: + return( MBEDTLS_SSL_EXT_SUPPORTED_GROUPS ); + + case MBEDTLS_TLS_EXT_SIG_ALG: + return( MBEDTLS_SSL_EXT_SIG_ALG ); + + case MBEDTLS_TLS_EXT_USE_SRTP: + return( MBEDTLS_SSL_EXT_USE_SRTP ); + + case MBEDTLS_TLS_EXT_HEARTBEAT: + return( MBEDTLS_SSL_EXT_HEARTBEAT ); + + case MBEDTLS_TLS_EXT_ALPN: + return( MBEDTLS_SSL_EXT_ALPN ); + + case MBEDTLS_TLS_EXT_SCT: + return( MBEDTLS_SSL_EXT_SCT ); + + case MBEDTLS_TLS_EXT_CLI_CERT_TYPE: + return( MBEDTLS_SSL_EXT_CLI_CERT_TYPE ); + + case MBEDTLS_TLS_EXT_SERV_CERT_TYPE: + return( MBEDTLS_SSL_EXT_SERV_CERT_TYPE ); + + case MBEDTLS_TLS_EXT_PADDING: + return( MBEDTLS_SSL_EXT_PADDING ); + + case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: + return( MBEDTLS_SSL_EXT_PRE_SHARED_KEY ); + + case MBEDTLS_TLS_EXT_EARLY_DATA: + return( MBEDTLS_SSL_EXT_EARLY_DATA ); + + case MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS: + return( MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ); + + case MBEDTLS_TLS_EXT_COOKIE: + return( MBEDTLS_SSL_EXT_COOKIE ); + + case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: + return( MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ); + + case MBEDTLS_TLS_EXT_CERT_AUTH: + return( MBEDTLS_SSL_EXT_CERT_AUTH ); + + case MBEDTLS_TLS_EXT_OID_FILTERS: + return( MBEDTLS_SSL_EXT_OID_FILTERS ); + + case MBEDTLS_TLS_EXT_POST_HANDSHAKE_AUTH: + return( MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH ); + + case MBEDTLS_TLS_EXT_SIG_ALG_CERT: + return( MBEDTLS_SSL_EXT_SIG_ALG_CERT ); + + case MBEDTLS_TLS_EXT_KEY_SHARE: + return( MBEDTLS_SSL_EXT_KEY_SHARE ); + }; + + return( MBEDTLS_SSL_EXT_UNRECOGNIZED ); +} + /* * Helper functions to check the selected key exchange mode. */ diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index b24aa4a8c5..32f64d73c9 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -1239,6 +1239,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, const unsigned char *cipher_suites_end; size_t extensions_len; const unsigned char *extensions_end; + uint32_t extensions_present; int hrr_required = 0; #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) @@ -1247,7 +1248,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, const unsigned char *pre_shared_key_ext_end = NULL; #endif - ssl->handshake->extensions_present = MBEDTLS_SSL_EXT_NONE; + extensions_present = MBEDTLS_SSL_EXT_NONE; /* * ClientHello layout: @@ -1431,7 +1432,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, * Servers MUST check that it is the last extension and otherwise fail * the handshake with an "illegal_parameter" alert. */ - if( ssl->handshake->extensions_present & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) + if( extensions_present & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "pre_shared_key is not last extension." ) ); @@ -1449,6 +1450,27 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); extension_data_end = p + extension_data_len; + /* RFC 8446 page 35 + * + * If an implementation receives an extension which it recognizes and which + * is not specified for the message in which it appears, it MUST abort the + * handshake with an "illegal_parameter" alert. + */ + extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "client hello : received %s(%u) extension", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); + if( ( extensions_present & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH ) == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "forbidden extension received." ) ); + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } + switch( extension_type ) { #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) @@ -1462,7 +1484,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, 1, "mbedtls_ssl_parse_servername_ext", ret ); return( ret ); } - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_SERVERNAME; break; #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ @@ -1485,7 +1506,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, return( ret ); } - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_SUPPORTED_GROUPS; break; #endif /* MBEDTLS_ECDH_C */ @@ -1515,7 +1535,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, return( ret ); } - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_KEY_SHARE; break; #endif /* MBEDTLS_ECDH_C */ @@ -1530,7 +1549,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, ( "ssl_tls13_parse_supported_versions_ext" ), ret ); return( ret ); } - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS; break; #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) @@ -1546,13 +1564,12 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, return( ret ); } - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES; break; #endif case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found pre_shared_key extension" ) ); - if( ( ssl->handshake->extensions_present & + if( ( extensions_present & MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ) == 0 ) { MBEDTLS_SSL_PEND_FATAL_ALERT( @@ -1567,8 +1584,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, */ pre_shared_key_ext = p; pre_shared_key_ext_end = extension_data_end; -#endif - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PRE_SHARED_KEY; +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ break; #if defined(MBEDTLS_SSL_ALPN) @@ -1582,7 +1598,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, 1, ( "mbedtls_ssl_parse_alpn_ext" ), ret ); return( ret ); } - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_ALPN; break; #endif /* MBEDTLS_SSL_ALPN */ @@ -1599,7 +1614,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, ret ) ); return( ret ); } - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_SIG_ALG; break; #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ @@ -1613,6 +1627,22 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, p += extension_data_len; } + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "ClientHello", extensions_present ); + + /* RFC 8446 page 102 + * - "supported_versions" is REQUIRED for all ClientHello, ServerHello, and + * HelloRetryRequest messages. + */ + if( ( extensions_present & MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "client hello: supported_versions not found" ) ); + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_MISSING_EXTENSION, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } + mbedtls_ssl_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, p - buf ); @@ -1636,7 +1666,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, cipher_suites_end ); if( ret == MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY ) { - ssl->handshake->extensions_present &= ~MBEDTLS_SSL_EXT_PRE_SHARED_KEY; + extensions_present &= ~MBEDTLS_SSL_EXT_PRE_SHARED_KEY; } else if( ret != 0 ) { @@ -1651,6 +1681,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, ssl->handshake->update_checksum( ssl, buf, p - buf ); } + ssl->handshake->extensions_present = extensions_present; ret = ssl_tls13_determine_key_exchange_mode( ssl ); if( ret < 0 ) return( ret ); From cbd082f396eabdba054c03215b6636c254275d87 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 4 Aug 2022 16:55:10 +0800 Subject: [PATCH 0931/1028] Add extension check for EncryptedExtensions Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 40 +++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index ac19f63081..db0eb44d75 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -32,6 +32,7 @@ #include "ssl_misc.h" #include "ssl_client.h" #include "ssl_tls13_keys.h" +#include "ssl_debug_helpers.h" /* Write extensions */ @@ -1969,6 +1970,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, size_t extensions_len; const unsigned char *p = buf; const unsigned char *extensions_end; + uint32_t extensions_present; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); extensions_len = MBEDTLS_GET_UINT16_BE( p, 0 ); @@ -1978,6 +1980,8 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); extensions_end = p + extensions_len; + extensions_present = MBEDTLS_SSL_EXT_NONE; + while( p < extensions_end ) { unsigned int extension_type; @@ -1996,10 +2000,27 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); - /* The client MUST check EncryptedExtensions for the - * presence of any forbidden extensions and if any are found MUST abort - * the handshake with an "unsupported_extension" alert. + /* RFC 8446 page 35 + * + * If an implementation receives an extension which it recognizes and which + * is not specified for the message in which it appears, it MUST abort the + * handshake with an "illegal_parameter" alert. */ + extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "encrypted extensions : received %s(%u) extension", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); + if( ( extensions_present & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE ) == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "forbidden extension received." ) ); + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } + switch( extension_type ) { case MBEDTLS_TLS_EXT_SERVERNAME: @@ -2024,17 +2045,18 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, break; #endif /* MBEDTLS_SSL_ALPN */ default: - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "unsupported extension found: %u ", extension_type) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT, - MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); - return ( MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "encrypted extensions: received %s(%u) extension ( ignored )", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); + break; } p += extension_data_len; } + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "EncrypedExtensions", extensions_present ); + /* Check that we consumed all the message. */ if( p != end ) { From c55a6af9eb9749cba60c67954b4d077e21e9d0ac Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 4 Aug 2022 17:01:21 +0800 Subject: [PATCH 0932/1028] Add extensions check for CertificateRequest Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 66 +++++++++++++++++++++++++++++--------- 1 file changed, 51 insertions(+), 15 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index db0eb44d75..599f488be5 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2162,7 +2162,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, size_t certificate_request_context_len = 0; size_t extensions_len = 0; const unsigned char *extensions_end; - unsigned char sig_alg_ext_found = 0; + uint32_t extensions_present; /* ... * opaque certificate_request_context<0..2^8-1> @@ -2202,10 +2202,13 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); extensions_end = p + extensions_len; + extensions_present = MBEDTLS_SSL_EXT_NONE; + while( p < extensions_end ) { unsigned int extension_type; size_t extension_data_len; + uint32_t extension_mask; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, 4 ); extension_type = MBEDTLS_GET_UINT16_BE( p, 0 ); @@ -2214,6 +2217,38 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); + /* RFC 8446 page 35 + * + * If an implementation receives an extension which it recognizes and which + * is not specified for the message in which it appears, it MUST abort the + * handshake with an "illegal_parameter" alert. + */ + extension_mask = mbedtls_tls13_get_extension_mask( extension_type ); + + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "encrypted extensions : received %s(%u) extension", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); + if( ( extension_mask & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CR ) == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "forbidden extension received." ) ); + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } + + if( extensions_present & extension_mask ) + { + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "Duplicate %s extensions found", + mbedtls_tls13_get_extension_name( extension_type ) ) ); + goto decode_error; + + } + extensions_present |= extension_mask; + switch( extension_type ) { case MBEDTLS_TLS_EXT_SIG_ALG: @@ -2223,25 +2258,22 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, p + extension_data_len ); if( ret != 0 ) return( ret ); - if( ! sig_alg_ext_found ) - sig_alg_ext_found = 1; - else - { - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "Duplicate signature algorithms extensions found" ) ); - goto decode_error; - } + break; default: - MBEDTLS_SSL_DEBUG_MSG( - 3, - ( "unknown extension found: %u ( ignoring )", - extension_type ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "certificate request: received %s(%u) extension ( ignored )", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); break; } + p += extension_data_len; } + + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "CertificateRequest", extensions_present ); + /* Check that we consumed all the message. */ if( p != end ) { @@ -2249,8 +2281,12 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, ( "CertificateRequest misaligned" ) ); goto decode_error; } - /* Check that we found signature algorithms extension */ - if( ! sig_alg_ext_found ) + + /* RFC 8446 page 60 + * + * The "signature_algorithms" extension MUST be specified + */ + if( ( extensions_present & MBEDTLS_SSL_EXT_SIG_ALG ) == 0 ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "no signature algorithms extension found" ) ); From 2eaa76044b13e6ced8d828438629718c3221cc2f Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 4 Aug 2022 17:28:15 +0800 Subject: [PATCH 0933/1028] Add extension check for Certificate Signed-off-by: Jerry Yu --- library/ssl_tls13_generic.c | 59 ++++++++++++++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 662e6f4c81..bd56666a97 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -447,6 +447,8 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, while( p < certificate_list_end ) { size_t cert_data_len, extensions_len; + const unsigned char *extensions_end; + uint32_t extensions_present; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, certificate_list_end, 3 ); cert_data_len = MBEDTLS_GET_UINT24_BE( p, 0 ); @@ -504,7 +506,62 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, extensions_len = MBEDTLS_GET_UINT16_BE( p, 0 ); p += 2; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, certificate_list_end, extensions_len ); - p += extensions_len; + + extensions_end = p + extensions_len; + extensions_present = MBEDTLS_SSL_EXT_NONE; + + while( p < extensions_end ) + { + unsigned int extension_type; + size_t extension_data_len; + + /* + * struct { + * ExtensionType extension_type; (2 bytes) + * opaque extension_data<0..2^16-1>; + * } Extension; + */ + MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, 4 ); + extension_type = MBEDTLS_GET_UINT16_BE( p, 0 ); + extension_data_len = MBEDTLS_GET_UINT16_BE( p, 2 ); + p += 4; + + MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); + + /* RFC 8446 page 35 + * + * If an implementation receives an extension which it recognizes and + * which is not specified for the message in which it appears, it MUST + * abort the handshake with an "illegal_parameter" alert. + */ + extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "encrypted extensions : received %s(%u) extension", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); + if( ( extensions_present & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT ) == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "forbidden extension received." ) ); + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } + switch( extension_type ) + { + default: + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "Certificate: received %s(%u) extension ( ignored )", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); + break; + } + + p += extension_data_len; + } + + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "Certificate", extensions_present ); } exit: From 2c5363e58b92c245e03dd0ad3997622d6bedf320 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 4 Aug 2022 17:42:49 +0800 Subject: [PATCH 0934/1028] Add extension check for ServerHello and HRR Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 50 +++++++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 599f488be5..f42e591bdc 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1496,6 +1496,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, mbedtls_ssl_handshake_params *handshake = ssl->handshake; size_t extensions_len; const unsigned char *extensions_end; + uint32_t extensions_present, allowed_extension_mask; uint16_t cipher_suite; const mbedtls_ssl_ciphersuite_t *ciphersuite_info; int fatal_alert = 0; @@ -1641,6 +1642,11 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "server hello extensions", p, extensions_len ); + extensions_present = MBEDTLS_SSL_EXT_NONE; + allowed_extension_mask = is_hrr ? + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_HRR : + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_SH; + while( p < extensions_end ) { unsigned int extension_type; @@ -1655,6 +1661,24 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); extension_data_end = p + extension_data_len; + /* RFC 8446 page 35 + * + * If an implementation receives an extension which it recognizes and which + * is not specified for the message in which it appears, it MUST abort the + * handshake with an "illegal_parameter" alert. + */ + extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "%s: received %s(%u) extension", + is_hrr ? "hello retry request" : "server hello", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); + if( ( extensions_present & allowed_extension_mask ) == 0 ) + { + fatal_alert = MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER; + goto cleanup; + } + switch( extension_type ) { case MBEDTLS_TLS_EXT_COOKIE: @@ -1727,18 +1751,32 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, break; default: - MBEDTLS_SSL_DEBUG_MSG( - 3, - ( "unknown extension found: %u ( ignoring )", + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "%s: ignore %s(%u) extension", + is_hrr ? "hello retry request" : "server hello", + mbedtls_tls13_get_extension_name( extension_type ), extension_type ) ); - - fatal_alert = MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT; - goto cleanup; + break; } p += extension_data_len; } + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( + 3, is_hrr ? "HelloRetryRequest" : "ServerHello", extensions_present ); + + /* RFC 8446 page 102 + * - "supported_versions" is REQUIRED for all ClientHello, ServerHello, and + * HelloRetryRequest messages. + */ + if( ( extensions_present & MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "%s: supported_versions not found", + is_hrr ? "hello retry request" : "server hello" ) ); + fatal_alert = MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER; + } + cleanup: if( fatal_alert == MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT ) From 6ba9f1c959cdcb30e0da23c1a7ced1ceb85e73a6 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 4 Aug 2022 17:53:25 +0800 Subject: [PATCH 0935/1028] Add extension check for NewSessionTicket Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index f42e591bdc..1abe09e5ed 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2565,9 +2565,12 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, const unsigned char *end ) { const unsigned char *p = buf; + uint32_t extensions_present; ((void) ssl); + extensions_present = MBEDTLS_SSL_EXT_NONE; + while( p < end ) { unsigned int extension_type; @@ -2580,6 +2583,27 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extension_data_len ); + /* RFC 8446 page 35 + * + * If an implementation receives an extension which it recognizes and which + * is not specified for the message in which it appears, it MUST abort the + * handshake with an "illegal_parameter" alert. + */ + extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "NewSessionTicket : received %s(%u) extension", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); + if( ( extensions_present & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_NST ) == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "forbidden extension received." ) ); + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } + switch( extension_type ) { case MBEDTLS_TLS_EXT_EARLY_DATA: @@ -2587,11 +2611,18 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, break; default: + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "NewSessionTicket : received %s(%u) extension ( ignored )", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); break; } + p += extension_data_len; } + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "NewSessionTicket", extensions_present ); + return( 0 ); } From d15992d3ce5aba001a843b0b832cbbf3a4cd8da5 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 29 Aug 2022 10:58:31 +0800 Subject: [PATCH 0936/1028] fix wrong setting of unrecognized ext Signed-off-by: Jerry Yu --- library/ssl_misc.h | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index cf3010a8fa..aaa910fc81 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -103,14 +103,18 @@ #define MBEDTLS_SSL_EXT_SIG_ALG_CERT ( 1 << 20 ) #define MBEDTLS_SSL_EXT_KEY_SHARE ( 1 << 21 ) -/* Except ServerHello, other message should ignore unrecognized extension. +/* For request messages, we should just ignore unrecognized extension when + * parsing messages. For response messages, we should not ignore unrecognized + * extension when parsing messages. Request messages include ClientHello, + * Certificate and NewSessionTicket. Response messages include ServerHello, + * EncryptExtensions, Certificate and HelloRetryRequest. * - * RFC 8446 page 31 + * RFC 8446 section 4.1.3 * * The ServerHello MUST only include extensions which are required to establish * the cryptographic context and negotiate the protocol version. * - * RFC 8446 page 35 + * RFC 8446 section 4.2 * * If an implementation receives an extension which it recognizes and which is * not specified for the message in which it appears, it MUST abort the handshake @@ -118,7 +122,7 @@ */ #define MBEDTLS_SSL_EXT_UNRECOGNIZED ( 1U << 31 ) -/* RFC 8446 page 36. Allowed extensions for ClienHello */ +/* RFC 8446 section 4.2. Allowed extensions for ClienHello */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH \ ( MBEDTLS_SSL_EXT_SERVERNAME | \ MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH | \ @@ -143,7 +147,7 @@ MBEDTLS_SSL_EXT_SIG_ALG_CERT | \ MBEDTLS_SSL_EXT_UNRECOGNIZED ) -/* RFC 8446 page 36. Allowed extensions for EncryptedExtensions */ +/* RFC 8446 section 4.2. Allowed extensions for EncryptedExtensions */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE \ ( MBEDTLS_SSL_EXT_SERVERNAME | \ MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH | \ @@ -153,10 +157,9 @@ MBEDTLS_SSL_EXT_ALPN | \ MBEDTLS_SSL_EXT_CLI_CERT_TYPE | \ MBEDTLS_SSL_EXT_SERV_CERT_TYPE | \ - MBEDTLS_SSL_EXT_EARLY_DATA | \ - MBEDTLS_SSL_EXT_UNRECOGNIZED ) + MBEDTLS_SSL_EXT_EARLY_DATA ) -/* RFC 8446 page 36. Allowed extensions for CertificateRequest */ +/* RFC 8446 section 4.2. Allowed extensions for CertificateRequest */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CR \ ( MBEDTLS_SSL_EXT_STATUS_REQUEST | \ MBEDTLS_SSL_EXT_SIG_ALG | \ @@ -166,26 +169,24 @@ MBEDTLS_SSL_EXT_SIG_ALG_CERT | \ MBEDTLS_SSL_EXT_UNRECOGNIZED ) -/* RFC 8446 page 36. Allowed extensions for Certificate */ +/* RFC 8446 section 4.2. Allowed extensions for Certificate */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT \ ( MBEDTLS_SSL_EXT_STATUS_REQUEST | \ - MBEDTLS_SSL_EXT_SCT | \ - MBEDTLS_SSL_EXT_UNRECOGNIZED ) + MBEDTLS_SSL_EXT_SCT ) -/* RFC 8446 page 36. Allowed extensions for ServerHello */ +/* RFC 8446 section 4.2. Allowed extensions for ServerHello */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_SH \ ( MBEDTLS_SSL_EXT_KEY_SHARE | \ MBEDTLS_SSL_EXT_PRE_SHARED_KEY | \ MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) -/* RFC 8446 page 36. Allowed extensions for HelloRetryRequest */ +/* RFC 8446 section 4.2. Allowed extensions for HelloRetryRequest */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_HRR \ ( MBEDTLS_SSL_EXT_KEY_SHARE | \ MBEDTLS_SSL_EXT_COOKIE | \ - MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS | \ - MBEDTLS_SSL_EXT_UNRECOGNIZED ) + MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) -/* RFC 8446 page 36. Allowed extensions for NewSessionTicket */ +/* RFC 8446 section 4.2. Allowed extensions for NewSessionTicket */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_NST \ ( MBEDTLS_SSL_EXT_EARLY_DATA | \ MBEDTLS_SSL_EXT_UNRECOGNIZED ) From 43ff252688c77568d3a19f43e75efa96effbee60 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 29 Aug 2022 12:58:05 +0800 Subject: [PATCH 0937/1028] Remove unnecessary checks. Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 1abe09e5ed..5b7a14a289 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1683,12 +1683,6 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, { case MBEDTLS_TLS_EXT_COOKIE: - if( !is_hrr ) - { - fatal_alert = MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT; - goto cleanup; - } - ret = ssl_tls13_parse_cookie_ext( ssl, p, extension_data_end ); if( ret != 0 ) @@ -1711,11 +1705,6 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found pre_shared_key extension" ) ); - if( is_hrr ) - { - fatal_alert = MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT; - goto cleanup; - } if( ( ret = ssl_tls13_parse_server_pre_shared_key_ext( ssl, p, extension_data_end ) ) != 0 ) @@ -1765,18 +1754,6 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, is_hrr ? "HelloRetryRequest" : "ServerHello", extensions_present ); - /* RFC 8446 page 102 - * - "supported_versions" is REQUIRED for all ClientHello, ServerHello, and - * HelloRetryRequest messages. - */ - if( ( extensions_present & MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "%s: supported_versions not found", - is_hrr ? "hello retry request" : "server hello" ) ); - fatal_alert = MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER; - } - cleanup: if( fatal_alert == MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT ) @@ -2277,14 +2254,6 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); } - if( extensions_present & extension_mask ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "Duplicate %s extensions found", - mbedtls_tls13_get_extension_name( extension_type ) ) ); - goto decode_error; - - } extensions_present |= extension_mask; switch( extension_type ) From 9872eb2d691602f51fae5629c2ff606666c25f80 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 29 Aug 2022 13:42:01 +0800 Subject: [PATCH 0938/1028] change return type for unexpected extension Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 5b7a14a289..2e0599d008 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1740,12 +1740,13 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, break; default: - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "%s: ignore %s(%u) extension", + MBEDTLS_SSL_DEBUG_MSG( 2, + ( "%s: unexpected extension (%s(%u)) received .", is_hrr ? "hello retry request" : "server hello", mbedtls_tls13_get_extension_name( extension_type ), extension_type ) ); - break; + ret = MBEDTLS_ERR_SSL_INTERNAL_ERROR; + goto cleanup; } p += extension_data_len; From ffa15827933a9fcc5af5fb39155a4650e56bb48d Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 29 Aug 2022 15:19:42 +0800 Subject: [PATCH 0939/1028] move get_extension mask Signed-off-by: Jerry Yu --- library/ssl_misc.h | 81 +------------------------------------ library/ssl_tls13_generic.c | 74 +++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 79 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index aaa910fc81..10ebfff988 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -1927,88 +1927,11 @@ static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ /* - * Helper functions to check if the extension is allowed or forbiden + * Helper functions for extensions checking and convert. */ -static inline int mbedtls_ssl_tls13_has_extensions( mbedtls_ssl_context *ssl, - int extensions_mask ) -{ - int masked = ssl->handshake->extensions_present & extensions_mask; - return( masked != 0 ); -} -static inline int mbedtls_tls13_get_extension_mask( uint16_t extension_type ) -{ - switch( extension_type ) - { - case MBEDTLS_TLS_EXT_SERVERNAME: - return( MBEDTLS_SSL_EXT_SERVERNAME ); +uint32_t mbedtls_tls13_get_extension_mask( uint16_t extension_type ); - case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: - return( MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH ); - - case MBEDTLS_TLS_EXT_STATUS_REQUEST: - return( MBEDTLS_SSL_EXT_STATUS_REQUEST ); - - case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: - return( MBEDTLS_SSL_EXT_SUPPORTED_GROUPS ); - - case MBEDTLS_TLS_EXT_SIG_ALG: - return( MBEDTLS_SSL_EXT_SIG_ALG ); - - case MBEDTLS_TLS_EXT_USE_SRTP: - return( MBEDTLS_SSL_EXT_USE_SRTP ); - - case MBEDTLS_TLS_EXT_HEARTBEAT: - return( MBEDTLS_SSL_EXT_HEARTBEAT ); - - case MBEDTLS_TLS_EXT_ALPN: - return( MBEDTLS_SSL_EXT_ALPN ); - - case MBEDTLS_TLS_EXT_SCT: - return( MBEDTLS_SSL_EXT_SCT ); - - case MBEDTLS_TLS_EXT_CLI_CERT_TYPE: - return( MBEDTLS_SSL_EXT_CLI_CERT_TYPE ); - - case MBEDTLS_TLS_EXT_SERV_CERT_TYPE: - return( MBEDTLS_SSL_EXT_SERV_CERT_TYPE ); - - case MBEDTLS_TLS_EXT_PADDING: - return( MBEDTLS_SSL_EXT_PADDING ); - - case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: - return( MBEDTLS_SSL_EXT_PRE_SHARED_KEY ); - - case MBEDTLS_TLS_EXT_EARLY_DATA: - return( MBEDTLS_SSL_EXT_EARLY_DATA ); - - case MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS: - return( MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ); - - case MBEDTLS_TLS_EXT_COOKIE: - return( MBEDTLS_SSL_EXT_COOKIE ); - - case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: - return( MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ); - - case MBEDTLS_TLS_EXT_CERT_AUTH: - return( MBEDTLS_SSL_EXT_CERT_AUTH ); - - case MBEDTLS_TLS_EXT_OID_FILTERS: - return( MBEDTLS_SSL_EXT_OID_FILTERS ); - - case MBEDTLS_TLS_EXT_POST_HANDSHAKE_AUTH: - return( MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH ); - - case MBEDTLS_TLS_EXT_SIG_ALG_CERT: - return( MBEDTLS_SSL_EXT_SIG_ALG_CERT ); - - case MBEDTLS_TLS_EXT_KEY_SHARE: - return( MBEDTLS_SSL_EXT_KEY_SHARE ); - }; - - return( MBEDTLS_SSL_EXT_UNRECOGNIZED ); -} /* * Helper functions to check the selected key exchange mode. diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index bd56666a97..5eac1f1b14 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1542,6 +1542,80 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( } #endif /* MBEDTLS_ECDH_C */ +uint32_t mbedtls_tls13_get_extension_mask( uint16_t extension_type ) +{ + switch( extension_type ) + { + case MBEDTLS_TLS_EXT_SERVERNAME: + return( MBEDTLS_SSL_EXT_SERVERNAME ); + + case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: + return( MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH ); + + case MBEDTLS_TLS_EXT_STATUS_REQUEST: + return( MBEDTLS_SSL_EXT_STATUS_REQUEST ); + + case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: + return( MBEDTLS_SSL_EXT_SUPPORTED_GROUPS ); + + case MBEDTLS_TLS_EXT_SIG_ALG: + return( MBEDTLS_SSL_EXT_SIG_ALG ); + + case MBEDTLS_TLS_EXT_USE_SRTP: + return( MBEDTLS_SSL_EXT_USE_SRTP ); + + case MBEDTLS_TLS_EXT_HEARTBEAT: + return( MBEDTLS_SSL_EXT_HEARTBEAT ); + + case MBEDTLS_TLS_EXT_ALPN: + return( MBEDTLS_SSL_EXT_ALPN ); + + case MBEDTLS_TLS_EXT_SCT: + return( MBEDTLS_SSL_EXT_SCT ); + + case MBEDTLS_TLS_EXT_CLI_CERT_TYPE: + return( MBEDTLS_SSL_EXT_CLI_CERT_TYPE ); + + case MBEDTLS_TLS_EXT_SERV_CERT_TYPE: + return( MBEDTLS_SSL_EXT_SERV_CERT_TYPE ); + + case MBEDTLS_TLS_EXT_PADDING: + return( MBEDTLS_SSL_EXT_PADDING ); + + case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: + return( MBEDTLS_SSL_EXT_PRE_SHARED_KEY ); + + case MBEDTLS_TLS_EXT_EARLY_DATA: + return( MBEDTLS_SSL_EXT_EARLY_DATA ); + + case MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS: + return( MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ); + + case MBEDTLS_TLS_EXT_COOKIE: + return( MBEDTLS_SSL_EXT_COOKIE ); + + case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: + return( MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ); + + case MBEDTLS_TLS_EXT_CERT_AUTH: + return( MBEDTLS_SSL_EXT_CERT_AUTH ); + + case MBEDTLS_TLS_EXT_OID_FILTERS: + return( MBEDTLS_SSL_EXT_OID_FILTERS ); + + case MBEDTLS_TLS_EXT_POST_HANDSHAKE_AUTH: + return( MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH ); + + case MBEDTLS_TLS_EXT_SIG_ALG_CERT: + return( MBEDTLS_SSL_EXT_SIG_ALG_CERT ); + + case MBEDTLS_TLS_EXT_KEY_SHARE: + return( MBEDTLS_SSL_EXT_KEY_SHARE ); + }; + + return( MBEDTLS_SSL_EXT_UNRECOGNIZED ); +} + #if defined(MBEDTLS_DEBUG_C) const char *mbedtls_tls13_get_extension_name( uint16_t extension_type ) { From 0c354a211bed62b86e8c00b6eb806e16e0dc563a Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 29 Aug 2022 15:25:36 +0800 Subject: [PATCH 0940/1028] introduce sent/recv extensions field And remove `extensions_present` Signed-off-by: Jerry Yu --- library/ssl_client.c | 24 ++++- library/ssl_debug_helpers.h | 6 +- library/ssl_misc.h | 17 +++- library/ssl_tls.c | 8 +- library/ssl_tls13_client.c | 189 +++++++++++++++--------------------- library/ssl_tls13_generic.c | 118 +++++++++++++++++----- library/ssl_tls13_server.c | 64 ++++-------- 7 files changed, 235 insertions(+), 191 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index d9c6781592..b0d2dcf3ca 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -106,6 +106,14 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, *olen = hostname_len + 9; +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_SERVERNAME ); + MBEDTLS_SSL_DEBUG_MSG( + 4, ( "sent %s extension", + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_SERVERNAME ) ) ); +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ return( 0 ); } #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ @@ -177,6 +185,14 @@ static int ssl_write_alpn_ext( mbedtls_ssl_context *ssl, /* Extension length = *out_len - 2 (ext_type) - 2 (ext_len) */ MBEDTLS_PUT_UINT16_BE( *out_len - 4, buf, 2 ); +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_ALPN ); + MBEDTLS_SSL_DEBUG_MSG( + 4, ( "sent %s extension", + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_ALPN ) ) ); +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ return( 0 ); } #endif /* MBEDTLS_SSL_ALPN */ @@ -296,7 +312,11 @@ static int ssl_write_supported_groups_ext( mbedtls_ssl_context *ssl, *out_len = p - buf; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_SUPPORTED_GROUPS; + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ); + MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ) ) ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ return( 0 ); @@ -557,7 +577,7 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) /* Keeping track of the included extensions */ - handshake->extensions_present = MBEDTLS_SSL_EXT_NONE; + handshake->sent_extensions = MBEDTLS_SSL_EXT_NONE; #endif /* First write extensions, then the total length */ diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index 07e8c7103f..6b97bc6523 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -52,12 +52,12 @@ const char *mbedtls_tls13_get_extension_name( uint16_t extension_type ); void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, int level, const char *file, int line, - const char *hs_msg_name, + int hs_msg_type, uint32_t extensions_present ); -#define MBEDTLS_SSL_TLS1_3_PRINT_EXTS( level, hs_msg_name, extensions_present ) \ +#define MBEDTLS_SSL_TLS1_3_PRINT_EXTS( level, hs_msg_type, extensions_present ) \ mbedtls_ssl_tls13_print_extensions( \ - ssl, level, __FILE__, __LINE__, hs_msg_name, extensions_present ) + ssl, level, __FILE__, __LINE__, hs_msg_type, extensions_present ) #else #define MBEDTLS_SSL_TLS1_3_PRINT_EXTS( level, hs_msg_name, extensions_present ) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 10ebfff988..b7f1440bb8 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -946,9 +946,8 @@ struct mbedtls_ssl_handshake_params #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - uint32_t extensions_present; /*!< extension presence; Each bitfield - represents an extension and defined - as \c MBEDTLS_SSL_EXT_XXX */ + uint32_t sent_extensions; /*!< extensions sent by endpoint */ + uint32_t received_extensions; /*!< extensions received by endpoint */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) unsigned char certificate_request_context_len; @@ -1932,6 +1931,18 @@ static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) uint32_t mbedtls_tls13_get_extension_mask( uint16_t extension_type ); +MBEDTLS_CHECK_RETURN_CRITICAL +int mbedtls_tls13_check_received_extensions( mbedtls_ssl_context *ssl, + int hs_msg_type, + uint32_t extension_type, + uint32_t allowed_mask ); + +static inline void mbedtls_tls13_set_sent_ext_mask( mbedtls_ssl_context *ssl, + uint16_t extension_type ) +{ + ssl->handshake->sent_extensions |= + mbedtls_tls13_get_extension_mask( extension_type ); +} /* * Helper functions to check the selected key exchange mode. diff --git a/library/ssl_tls.c b/library/ssl_tls.c index a49f774ed1..9947d39d82 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -8713,8 +8713,14 @@ int mbedtls_ssl_write_sig_alg_ext( mbedtls_ssl_context *ssl, unsigned char *buf, *out_len = p - buf; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_SIG_ALG; + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_SIG_ALG ); + MBEDTLS_SSL_DEBUG_MSG( + 4, ( "sent %s extension", + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_SIG_ALG ) ) ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ + return( 0 ); } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 2e0599d008..c29b90ee33 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -89,7 +89,12 @@ static int ssl_tls13_write_supported_versions_ext( mbedtls_ssl_context *ssl, } *out_len = 5 + versions_len; - + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ); + MBEDTLS_SSL_DEBUG_MSG( + 4, ( "sent %s extension", + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ) ) ); return( 0 ); } @@ -360,7 +365,13 @@ static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, key_share extension", buf, *out_len ); - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_KEY_SHARE; + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_KEY_SHARE ); + MBEDTLS_SSL_DEBUG_MSG( + 4, ( "sent %s extension", + + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_KEY_SHARE ) ) ); cleanup: @@ -513,7 +524,6 @@ static int ssl_tls13_parse_key_share_ext( mbedtls_ssl_context *ssl, else return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_KEY_SHARE; return( ret ); } @@ -601,6 +611,13 @@ static int ssl_tls13_write_cookie_ext( mbedtls_ssl_context *ssl, *out_len = handshake->hrr_cookie_len + 6; + + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_COOKIE ); + MBEDTLS_SSL_DEBUG_MSG( + 4, ( "sent %s extension", + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_COOKIE ) ) ); return( 0 ); } @@ -670,7 +687,13 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, buf[4] = ke_modes_len; *out_len = p - buf; - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES; + + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES ); + MBEDTLS_SSL_DEBUG_MSG( + 4, ( "sent %s extension", + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES ) ) ); return ( 0 ); } @@ -982,8 +1005,6 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( MBEDTLS_SSL_DEBUG_BUF( 3, "pre_shared_key identities", buf, p - buf ); - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PRE_SHARED_KEY; - return( 0 ); } @@ -1038,6 +1059,13 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( MBEDTLS_SSL_DEBUG_BUF( 3, "pre_shared_key binders", buf, p - buf ); + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_PRE_SHARED_KEY ); + MBEDTLS_SSL_DEBUG_MSG( + 4, ( "sent %s extension", + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_PRE_SHARED_KEY ) ) ); + return( 0 ); } @@ -1110,8 +1138,6 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, return( ret ); } - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PRE_SHARED_KEY; - return( 0 ); } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ @@ -1389,7 +1415,7 @@ static int ssl_tls13_preprocess_server_hello( mbedtls_ssl_context *ssl, ssl->session_negotiate->tls_version = ssl->tls_version; #endif /* MBEDTLS_SSL_SESSION_TICKETS */ - handshake->extensions_present = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; ret = ssl_server_hello_is_hrr( ssl, buf, end ); switch( ret ) @@ -1496,10 +1522,10 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, mbedtls_ssl_handshake_params *handshake = ssl->handshake; size_t extensions_len; const unsigned char *extensions_end; - uint32_t extensions_present, allowed_extension_mask; uint16_t cipher_suite; const mbedtls_ssl_ciphersuite_t *ciphersuite_info; int fatal_alert = 0; + uint32_t allowed_extensions_mask; /* * Check there is space for minimal fields @@ -1642,8 +1668,8 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "server hello extensions", p, extensions_len ); - extensions_present = MBEDTLS_SSL_EXT_NONE; - allowed_extension_mask = is_hrr ? + ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + allowed_extensions_mask = is_hrr ? MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_HRR : MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_SH; @@ -1661,23 +1687,14 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); extension_data_end = p + extension_data_len; - /* RFC 8446 page 35 - * - * If an implementation receives an extension which it recognizes and which - * is not specified for the message in which it appears, it MUST abort the - * handshake with an "illegal_parameter" alert. - */ - extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "%s: received %s(%u) extension", - is_hrr ? "hello retry request" : "server hello", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); - if( ( extensions_present & allowed_extension_mask ) == 0 ) - { - fatal_alert = MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER; - goto cleanup; - } + ret = mbedtls_tls13_check_received_extensions( + ssl, + is_hrr ? + -MBEDTLS_SSL_HS_SERVER_HELLO : MBEDTLS_SSL_HS_SERVER_HELLO, + extension_type, + allowed_extensions_mask ); + if( ret != 0 ) + return( ret ); switch( extension_type ) { @@ -1740,11 +1757,6 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, break; default: - MBEDTLS_SSL_DEBUG_MSG( 2, - ( "%s: unexpected extension (%s(%u)) received .", - is_hrr ? "hello retry request" : "server hello", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); ret = MBEDTLS_ERR_SSL_INTERNAL_ERROR; goto cleanup; } @@ -1753,7 +1765,8 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_TLS1_3_PRINT_EXTS( - 3, is_hrr ? "HelloRetryRequest" : "ServerHello", extensions_present ); + 3, is_hrr ? -MBEDTLS_SSL_HS_SERVER_HELLO : MBEDTLS_SSL_HS_SERVER_HELLO, + ssl->handshake->received_extensions ); cleanup: @@ -1803,7 +1816,7 @@ static int ssl_tls13_postprocess_server_hello( mbedtls_ssl_context *ssl ) * 3) If only the key_share extension was received then the key * exchange mode is EPHEMERAL-only. */ - switch( handshake->extensions_present & + switch( handshake->received_extensions & ( MBEDTLS_SSL_EXT_PRE_SHARED_KEY | MBEDTLS_SSL_EXT_KEY_SHARE ) ) { /* Only the pre_shared_key extension was received */ @@ -1986,7 +1999,6 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, size_t extensions_len; const unsigned char *p = buf; const unsigned char *extensions_end; - uint32_t extensions_present; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); extensions_len = MBEDTLS_GET_UINT16_BE( p, 0 ); @@ -1996,7 +2008,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); extensions_end = p + extensions_len; - extensions_present = MBEDTLS_SSL_EXT_NONE; + ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < extensions_end ) { @@ -2016,26 +2028,11 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); - /* RFC 8446 page 35 - * - * If an implementation receives an extension which it recognizes and which - * is not specified for the message in which it appears, it MUST abort the - * handshake with an "illegal_parameter" alert. - */ - extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "encrypted extensions : received %s(%u) extension", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); - if( ( extensions_present & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "forbidden extension received." ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - } + ret = mbedtls_tls13_check_received_extensions( + ssl, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE ); + if( ret != 0 ) + return( ret ); switch( extension_type ) { @@ -2071,7 +2068,8 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "EncrypedExtensions", extensions_present ); + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, + ssl->handshake->received_extensions ); /* Check that we consumed all the message. */ if( p != end ) @@ -2178,7 +2176,6 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, size_t certificate_request_context_len = 0; size_t extensions_len = 0; const unsigned char *extensions_end; - uint32_t extensions_present; /* ... * opaque certificate_request_context<0..2^8-1> @@ -2218,13 +2215,12 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); extensions_end = p + extensions_len; - extensions_present = MBEDTLS_SSL_EXT_NONE; + ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < extensions_end ) { unsigned int extension_type; size_t extension_data_len; - uint32_t extension_mask; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, 4 ); extension_type = MBEDTLS_GET_UINT16_BE( p, 0 ); @@ -2233,29 +2229,11 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); - /* RFC 8446 page 35 - * - * If an implementation receives an extension which it recognizes and which - * is not specified for the message in which it appears, it MUST abort the - * handshake with an "illegal_parameter" alert. - */ - extension_mask = mbedtls_tls13_get_extension_mask( extension_type ); - - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "encrypted extensions : received %s(%u) extension", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); - if( ( extension_mask & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CR ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "forbidden extension received." ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - } - - extensions_present |= extension_mask; + ret = mbedtls_tls13_check_received_extensions( + ssl, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CR ); + if( ret != 0 ) + return( ret ); switch( extension_type ) { @@ -2280,7 +2258,9 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "CertificateRequest", extensions_present ); + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, + MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, + ssl->handshake->received_extensions ); /* Check that we consumed all the message. */ if( p != end ) @@ -2290,11 +2270,11 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, goto decode_error; } - /* RFC 8446 page 60 + /* RFC 8446 section 4.3.2 * * The "signature_algorithms" extension MUST be specified */ - if( ( extensions_present & MBEDTLS_SSL_EXT_SIG_ALG ) == 0 ) + if( ( ssl->handshake->received_extensions & MBEDTLS_SSL_EXT_SIG_ALG ) == 0 ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "no signature algorithms extension found" ) ); @@ -2535,16 +2515,15 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, const unsigned char *end ) { const unsigned char *p = buf; - uint32_t extensions_present; - ((void) ssl); - extensions_present = MBEDTLS_SSL_EXT_NONE; + ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < end ) { unsigned int extension_type; size_t extension_data_len; + int ret; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 4 ); extension_type = MBEDTLS_GET_UINT16_BE( p, 0 ); @@ -2553,26 +2532,11 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extension_data_len ); - /* RFC 8446 page 35 - * - * If an implementation receives an extension which it recognizes and which - * is not specified for the message in which it appears, it MUST abort the - * handshake with an "illegal_parameter" alert. - */ - extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "NewSessionTicket : received %s(%u) extension", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); - if( ( extensions_present & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_NST ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "forbidden extension received." ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - } + ret = mbedtls_tls13_check_received_extensions( + ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH ); + if( ret != 0 ) + return( ret ); switch( extension_type ) { @@ -2591,7 +2555,8 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "NewSessionTicket", extensions_present ); + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( + 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, ssl->handshake->received_extensions ); return( 0 ); } diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 5eac1f1b14..7b66be1c73 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -448,7 +448,6 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, { size_t cert_data_len, extensions_len; const unsigned char *extensions_end; - uint32_t extensions_present; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, certificate_list_end, 3 ); cert_data_len = MBEDTLS_GET_UINT24_BE( p, 0 ); @@ -508,7 +507,7 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, certificate_list_end, extensions_len ); extensions_end = p + extensions_len; - extensions_present = MBEDTLS_SSL_EXT_NONE; + ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < extensions_end ) { @@ -528,26 +527,12 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); - /* RFC 8446 page 35 - * - * If an implementation receives an extension which it recognizes and - * which is not specified for the message in which it appears, it MUST - * abort the handshake with an "illegal_parameter" alert. - */ - extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "encrypted extensions : received %s(%u) extension", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); - if( ( extensions_present & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "forbidden extension received." ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - } + ret = mbedtls_tls13_check_received_extensions( + ssl, MBEDTLS_SSL_HS_CERTIFICATE, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT ); + if( ret != 0 ) + return( ret ); + switch( extension_type ) { default: @@ -561,7 +546,8 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "Certificate", extensions_present ); + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( + 3, MBEDTLS_SSL_HS_CERTIFICATE, ssl->handshake->received_extensions ); } exit: @@ -1691,9 +1677,31 @@ const char *mbedtls_tls13_get_extension_name( uint16_t extension_type ) return( "unknown" ); } +static const char *ssl_tls13_get_hs_msg_name( int hs_msg_type ) +{ + switch( hs_msg_type ) + { + case MBEDTLS_SSL_HS_CLIENT_HELLO: + return( "ClientHello" ); + case MBEDTLS_SSL_HS_SERVER_HELLO: + return( "ServerHello" ); + case -MBEDTLS_SSL_HS_SERVER_HELLO: // HRR does not have IANA value. + return( "HelloRetryRequest" ); + case MBEDTLS_SSL_HS_NEW_SESSION_TICKET: + return( "NewSessionTicket" ); + case MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS: + return( "EncryptedExtensions" ); + case MBEDTLS_SSL_HS_CERTIFICATE: + return( "Certificate" ); + case MBEDTLS_SSL_HS_CERTIFICATE_REQUEST: + return( "CertificateRequest" ); + } + return( NULL ); +} + void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, int level, const char *file, int line, - const char *hs_msg_name, + int hs_msg_type, uint32_t extensions_present ) { static const struct{ @@ -1724,7 +1732,8 @@ void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, { MBEDTLS_SSL_EXT_KEY_SHARE, "key_share" } }; mbedtls_debug_print_msg( ssl, level, file, line, - "extension list of %s:", hs_msg_name ); + "extension list of %s:", + ssl_tls13_get_hs_msg_name( hs_msg_type ) ); for( unsigned i = 0; i < sizeof( mask_to_str_table ) / sizeof( mask_to_str_table[0] ); @@ -1742,4 +1751,63 @@ void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, #endif /* MBEDTLS_DEBUG_C */ +/* RFC 8446 section 4.2 + * + * If an implementation receives an extension which it recognizes and which is + * not specified for the message in which it appears, it MUST abort the handshake + * with an "illegal_parameter" alert. + * + */ + +int mbedtls_tls13_check_received_extensions( mbedtls_ssl_context *ssl, + int hs_msg_type, + uint32_t extension_type, + uint32_t allowed_mask ) +{ + uint32_t extension_mask; + +#if defined(MBEDTLS_DEBUG_C) + const char *hs_msg_name = ssl_tls13_get_hs_msg_name( hs_msg_type ); +#endif + + extension_mask = mbedtls_tls13_get_extension_mask( extension_type ); + + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "%s : received %s(%x) extension", + hs_msg_name, + mbedtls_tls13_get_extension_name( extension_type ), + (unsigned int)extension_type ) ); + + if( ( extension_mask & allowed_mask ) == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "%s : forbidden extension received.", hs_msg_name ) ); + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } + + ssl->handshake->received_extensions |= extension_mask; + switch( hs_msg_type ) + { + case MBEDTLS_SSL_HS_SERVER_HELLO: + case -MBEDTLS_SSL_HS_SERVER_HELLO: // HRR does not have IANA value. + case MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS: + case MBEDTLS_SSL_HS_CERTIFICATE: + if( ( ~ssl->handshake->sent_extensions & extension_mask ) == 0 ) + return( 0 ); + break; + default: + return( 0 ); + } + + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "%s : forbidden extension received.", hs_msg_name ) ); + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); +} + #endif /* MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 32f64d73c9..4fdd6ade8e 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -930,7 +930,7 @@ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_client_hello_has_exts( mbedtls_ssl_context *ssl, int exts_mask ) { - int masked = ssl->handshake->extensions_present & exts_mask; + int masked = ssl->handshake->received_extensions & exts_mask; return( masked == exts_mask ); } @@ -1239,7 +1239,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, const unsigned char *cipher_suites_end; size_t extensions_len; const unsigned char *extensions_end; - uint32_t extensions_present; int hrr_required = 0; #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) @@ -1248,8 +1247,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, const unsigned char *pre_shared_key_ext_end = NULL; #endif - extensions_present = MBEDTLS_SSL_EXT_NONE; - /* * ClientHello layout: * 0 . 1 protocol version @@ -1419,20 +1416,23 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "client hello extensions", p, extensions_len ); + ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + while( p < extensions_end ) { unsigned int extension_type; size_t extension_data_len; const unsigned char *extension_data_end; - /* RFC 8446, page 57 + /* RFC 8446, section 4.2.11 * * The "pre_shared_key" extension MUST be the last extension in the * ClientHello (this facilitates implementation as described below). * Servers MUST check that it is the last extension and otherwise fail * the handshake with an "illegal_parameter" alert. */ - if( extensions_present & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) + if( ssl->handshake->received_extensions & + mbedtls_tls13_get_extension_mask( MBEDTLS_TLS_EXT_PRE_SHARED_KEY ) ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "pre_shared_key is not last extension." ) ); @@ -1450,26 +1450,11 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); extension_data_end = p + extension_data_len; - /* RFC 8446 page 35 - * - * If an implementation receives an extension which it recognizes and which - * is not specified for the message in which it appears, it MUST abort the - * handshake with an "illegal_parameter" alert. - */ - extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "client hello : received %s(%u) extension", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); - if( ( extensions_present & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "forbidden extension received." ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - } + ret = mbedtls_tls13_check_received_extensions( + ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH ); + if( ret != 0 ) + return( ret ); switch( extension_type ) { @@ -1569,7 +1554,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found pre_shared_key extension" ) ); - if( ( extensions_present & + if( ( ssl->handshake->received_extensions & MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ) == 0 ) { MBEDTLS_SSL_PEND_FATAL_ALERT( @@ -1622,26 +1607,14 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, ( "client hello: received %s(%u) extension ( ignored )", mbedtls_tls13_get_extension_name( extension_type ), extension_type ) ); + break; } p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "ClientHello", extensions_present ); - - /* RFC 8446 page 102 - * - "supported_versions" is REQUIRED for all ClientHello, ServerHello, and - * HelloRetryRequest messages. - */ - if( ( extensions_present & MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "client hello: supported_versions not found" ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_MISSING_EXTENSION, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - } + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( + 3, MBEDTLS_SSL_HS_CLIENT_HELLO, ssl->handshake->received_extensions ); mbedtls_ssl_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, @@ -1655,7 +1628,8 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, /* If we've settled on a PSK-based exchange, parse PSK identity ext */ if( mbedtls_ssl_tls13_some_psk_enabled( ssl ) && mbedtls_ssl_conf_tls13_some_psk_enabled( ssl ) && - ( ssl->handshake->extensions_present & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) ) + ( ssl->handshake->received_extensions & + MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) ) { ssl->handshake->update_checksum( ssl, buf, pre_shared_key_ext - buf ); @@ -1666,7 +1640,8 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, cipher_suites_end ); if( ret == MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY ) { - extensions_present &= ~MBEDTLS_SSL_EXT_PRE_SHARED_KEY; + ssl->handshake->received_extensions &= + ~MBEDTLS_SSL_EXT_PRE_SHARED_KEY; } else if( ret != 0 ) { @@ -1681,7 +1656,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, ssl->handshake->update_checksum( ssl, buf, p - buf ); } - ssl->handshake->extensions_present = extensions_present; ret = ssl_tls13_determine_key_exchange_mode( ssl ); if( ret < 0 ) return( ret ); From 03112ae0228e2031eb01c8fc70a0df371ddb2191 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 30 Aug 2022 16:27:17 +0800 Subject: [PATCH 0941/1028] change input extension_type Signed-off-by: Jerry Yu --- library/ssl_misc.h | 2 +- library/ssl_tls13_generic.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index b7f1440bb8..dad1c82a12 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -1929,7 +1929,7 @@ static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) * Helper functions for extensions checking and convert. */ -uint32_t mbedtls_tls13_get_extension_mask( uint16_t extension_type ); +uint32_t mbedtls_tls13_get_extension_mask( unsigned int extension_type ); MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_tls13_check_received_extensions( mbedtls_ssl_context *ssl, diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 7b66be1c73..2fbcdf063c 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1528,7 +1528,7 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( } #endif /* MBEDTLS_ECDH_C */ -uint32_t mbedtls_tls13_get_extension_mask( uint16_t extension_type ) +uint32_t mbedtls_tls13_get_extension_mask( unsigned int extension_type ) { switch( extension_type ) { From c4bf5d658e47f6b0d6b73e4ab851a074b92681ae Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sat, 29 Oct 2022 09:08:47 +0800 Subject: [PATCH 0942/1028] fix various issues - Signature of - mbedtls_tls13_set_hs_sent_ext_mask - check_received_extension and issues - Also fix comment issue. - improve readablity. Signed-off-by: Jerry Yu --- library/ssl_client.c | 9 ++---- library/ssl_misc.h | 24 ++++++++------- library/ssl_tls.c | 3 +- library/ssl_tls13_client.c | 58 +++++++++++++++---------------------- library/ssl_tls13_generic.c | 50 +++++++++++++++++--------------- library/ssl_tls13_server.c | 34 ++++++++++------------ 6 files changed, 84 insertions(+), 94 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index b0d2dcf3ca..16cef0204a 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -107,8 +107,7 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, *olen = hostname_len + 9; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_SERVERNAME ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SERVERNAME ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", mbedtls_tls13_get_extension_name( @@ -186,8 +185,7 @@ static int ssl_write_alpn_ext( mbedtls_ssl_context *ssl, MBEDTLS_PUT_UINT16_BE( *out_len - 4, buf, 2 ); #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_ALPN ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_ALPN ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", mbedtls_tls13_get_extension_name( @@ -312,8 +310,7 @@ static int ssl_write_supported_groups_ext( mbedtls_ssl_context *ssl, *out_len = p - buf; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", mbedtls_tls13_get_extension_name( MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ) ) ); diff --git a/library/ssl_misc.h b/library/ssl_misc.h index dad1c82a12..3aeab0cd84 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -103,11 +103,12 @@ #define MBEDTLS_SSL_EXT_SIG_ALG_CERT ( 1 << 20 ) #define MBEDTLS_SSL_EXT_KEY_SHARE ( 1 << 21 ) -/* For request messages, we should just ignore unrecognized extension when - * parsing messages. For response messages, we should not ignore unrecognized - * extension when parsing messages. Request messages include ClientHello, - * Certificate and NewSessionTicket. Response messages include ServerHello, - * EncryptExtensions, Certificate and HelloRetryRequest. +/* In messages containing extension requests, we should ignore unrecognized + * extensions. In messages containing extension responses, unrecognized + * extensions should result in handshake abortion. Messages containing + * extension requests include ClientHello, CertificateRequest and + * NewSessionTicket. Messages containing extension responses include + * ServerHello, HelloRetryRequest, EncryptedExtensions and Certificate. * * RFC 8446 section 4.1.3 * @@ -1932,13 +1933,14 @@ static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) uint32_t mbedtls_tls13_get_extension_mask( unsigned int extension_type ); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_tls13_check_received_extensions( mbedtls_ssl_context *ssl, - int hs_msg_type, - uint32_t extension_type, - uint32_t allowed_mask ); +int mbedtls_ssl_tls13_check_received_extension( + mbedtls_ssl_context *ssl, + int hs_msg_type, + unsigned int received_extension_type, + uint32_t hs_msg_allowed_extensions_mask ); -static inline void mbedtls_tls13_set_sent_ext_mask( mbedtls_ssl_context *ssl, - uint16_t extension_type ) +static inline void mbedtls_ssl_tls13_set_hs_sent_ext_mask( + mbedtls_ssl_context *ssl, unsigned int extension_type ) { ssl->handshake->sent_extensions |= mbedtls_tls13_get_extension_mask( extension_type ); diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 9947d39d82..3678ec0bd6 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -8713,8 +8713,7 @@ int mbedtls_ssl_write_sig_alg_ext( mbedtls_ssl_context *ssl, unsigned char *buf, *out_len = p - buf; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_SIG_ALG ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SIG_ALG ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", mbedtls_tls13_get_extension_name( diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index c29b90ee33..27747a2097 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -89,8 +89,8 @@ static int ssl_tls13_write_supported_versions_ext( mbedtls_ssl_context *ssl, } *out_len = 5 + versions_len; - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( + ssl, MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", mbedtls_tls13_get_extension_name( @@ -365,8 +365,7 @@ static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, key_share extension", buf, *out_len ); - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_KEY_SHARE ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_KEY_SHARE ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", @@ -612,8 +611,7 @@ static int ssl_tls13_write_cookie_ext( mbedtls_ssl_context *ssl, *out_len = handshake->hrr_cookie_len + 6; - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_COOKIE ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_COOKIE ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", mbedtls_tls13_get_extension_name( @@ -688,8 +686,8 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, *out_len = p - buf; - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( + ssl, MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", mbedtls_tls13_get_extension_name( @@ -1059,8 +1057,8 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( MBEDTLS_SSL_DEBUG_BUF( 3, "pre_shared_key binders", buf, p - buf ); - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_PRE_SHARED_KEY ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( + ssl, MBEDTLS_TLS_EXT_PRE_SHARED_KEY ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", mbedtls_tls13_get_extension_name( @@ -1668,7 +1666,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "server hello extensions", p, extensions_len ); - ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; allowed_extensions_mask = is_hrr ? MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_HRR : MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_SH; @@ -1687,7 +1685,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); extension_data_end = p + extension_data_len; - ret = mbedtls_tls13_check_received_extensions( + ret = mbedtls_ssl_tls13_check_received_extension( ssl, is_hrr ? -MBEDTLS_SSL_HS_SERVER_HELLO : MBEDTLS_SSL_HS_SERVER_HELLO, @@ -1766,7 +1764,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, is_hrr ? -MBEDTLS_SSL_HS_SERVER_HELLO : MBEDTLS_SSL_HS_SERVER_HELLO, - ssl->handshake->received_extensions ); + handshake->received_extensions ); cleanup: @@ -1999,6 +1997,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, size_t extensions_len; const unsigned char *p = buf; const unsigned char *extensions_end; + mbedtls_ssl_handshake_params *handshake = ssl->handshake; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); extensions_len = MBEDTLS_GET_UINT16_BE( p, 0 ); @@ -2008,7 +2007,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); extensions_end = p + extensions_len; - ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < extensions_end ) { @@ -2028,7 +2027,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); - ret = mbedtls_tls13_check_received_extensions( + ret = mbedtls_ssl_tls13_check_received_extension( ssl, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, extension_type, MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE ); if( ret != 0 ) @@ -2036,16 +2035,6 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, switch( extension_type ) { - case MBEDTLS_TLS_EXT_SERVERNAME: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found server_name extension" ) ); - - /* The server_name extension should be an empty extension */ - - break; - case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found extensions supported groups" ) ); - break; - #if defined(MBEDTLS_SSL_ALPN) case MBEDTLS_TLS_EXT_ALPN: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found alpn extension" ) ); @@ -2069,7 +2058,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, - ssl->handshake->received_extensions ); + handshake->received_extensions ); /* Check that we consumed all the message. */ if( p != end ) @@ -2176,6 +2165,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, size_t certificate_request_context_len = 0; size_t extensions_len = 0; const unsigned char *extensions_end; + mbedtls_ssl_handshake_params *handshake = ssl->handshake; /* ... * opaque certificate_request_context<0..2^8-1> @@ -2191,7 +2181,6 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "Certificate Request Context", p, certificate_request_context_len ); - mbedtls_ssl_handshake_params *handshake = ssl->handshake; handshake->certificate_request_context = mbedtls_calloc( 1, certificate_request_context_len ); if( handshake->certificate_request_context == NULL ) @@ -2215,7 +2204,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); extensions_end = p + extensions_len; - ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < extensions_end ) { @@ -2229,7 +2218,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); - ret = mbedtls_tls13_check_received_extensions( + ret = mbedtls_ssl_tls13_check_received_extension( ssl, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, extension_type, MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CR ); if( ret != 0 ) @@ -2260,7 +2249,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, - ssl->handshake->received_extensions ); + handshake->received_extensions ); /* Check that we consumed all the message. */ if( p != end ) @@ -2274,7 +2263,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, * * The "signature_algorithms" extension MUST be specified */ - if( ( ssl->handshake->received_extensions & MBEDTLS_SSL_EXT_SIG_ALG ) == 0 ) + if( ( handshake->received_extensions & MBEDTLS_SSL_EXT_SIG_ALG ) == 0 ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "no signature algorithms extension found" ) ); @@ -2514,10 +2503,11 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, const unsigned char *buf, const unsigned char *end ) { + mbedtls_ssl_handshake_params *handshake = ssl->handshake; const unsigned char *p = buf; - ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < end ) { @@ -2532,7 +2522,7 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extension_data_len ); - ret = mbedtls_tls13_check_received_extensions( + ret = mbedtls_ssl_tls13_check_received_extension( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, extension_type, MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH ); if( ret != 0 ) @@ -2556,7 +2546,7 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_TLS1_3_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, ssl->handshake->received_extensions ); + 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, handshake->received_extensions ); return( 0 ); } diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 2fbcdf063c..21644ede43 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -398,6 +398,7 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, size_t certificate_list_len = 0; const unsigned char *p = buf; const unsigned char *certificate_list_end; + mbedtls_ssl_handshake_params *handshake = ssl->handshake; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 4 ); certificate_request_context_len = p[0]; @@ -507,7 +508,7 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, certificate_list_end, extensions_len ); extensions_end = p + extensions_len; - ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < extensions_end ) { @@ -527,9 +528,9 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); - ret = mbedtls_tls13_check_received_extensions( - ssl, MBEDTLS_SSL_HS_CERTIFICATE, extension_type, - MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT ); + ret = mbedtls_ssl_tls13_check_received_extension( + ssl, MBEDTLS_SSL_HS_CERTIFICATE, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT ); if( ret != 0 ) return( ret ); @@ -547,7 +548,7 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_TLS1_3_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_CERTIFICATE, ssl->handshake->received_extensions ); + 3, MBEDTLS_SSL_HS_CERTIFICATE, handshake->received_extensions ); } exit: @@ -555,7 +556,7 @@ exit: if( p != end ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad Certificate message" ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, \ + MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, MBEDTLS_ERR_SSL_DECODE_ERROR ); return( MBEDTLS_ERR_SSL_DECODE_ERROR ); } @@ -1759,43 +1760,46 @@ void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, * */ -int mbedtls_tls13_check_received_extensions( mbedtls_ssl_context *ssl, - int hs_msg_type, - uint32_t extension_type, - uint32_t allowed_mask ) +int mbedtls_ssl_tls13_check_received_extension( + mbedtls_ssl_context *ssl, + int hs_msg_type, + unsigned int received_extension_type, + uint32_t hs_msg_allowed_extensions_mask ) { - uint32_t extension_mask; - #if defined(MBEDTLS_DEBUG_C) const char *hs_msg_name = ssl_tls13_get_hs_msg_name( hs_msg_type ); #endif - - extension_mask = mbedtls_tls13_get_extension_mask( extension_type ); + uint32_t extension_mask = mbedtls_tls13_get_extension_mask( received_extension_type ); MBEDTLS_SSL_DEBUG_MSG( 3, ( "%s : received %s(%x) extension", hs_msg_name, - mbedtls_tls13_get_extension_name( extension_type ), - (unsigned int)extension_type ) ); + mbedtls_tls13_get_extension_name( received_extension_type ), + (unsigned int)received_extension_type ) ); - if( ( extension_mask & allowed_mask ) == 0 ) + if( ( extension_mask & hs_msg_allowed_extensions_mask ) == 0 ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "%s : forbidden extension received.", hs_msg_name ) ); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); } ssl->handshake->received_extensions |= extension_mask; + /* + * If it is a message containing extension responses, check that we + * previously sent the extension. + */ switch( hs_msg_type ) { case MBEDTLS_SSL_HS_SERVER_HELLO: case -MBEDTLS_SSL_HS_SERVER_HELLO: // HRR does not have IANA value. case MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS: case MBEDTLS_SSL_HS_CERTIFICATE: - if( ( ~ssl->handshake->sent_extensions & extension_mask ) == 0 ) + /* Check if the received extension is sent by peer message.*/ + if( ( ssl->handshake->sent_extensions & extension_mask ) != 0 ) return( 0 ); break; default: @@ -1803,11 +1807,11 @@ int mbedtls_tls13_check_received_extensions( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_DEBUG_MSG( - 3, ( "%s : forbidden extension received.", hs_msg_name ) ); + 3, ( "%s : unexpected extension received.", hs_msg_name ) ); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); + return( MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); } #endif /* MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 4fdd6ade8e..f0f06b81a7 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -1239,6 +1239,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, const unsigned char *cipher_suites_end; size_t extensions_len; const unsigned char *extensions_end; + mbedtls_ssl_handshake_params *handshake = ssl->handshake; int hrr_required = 0; #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) @@ -1304,7 +1305,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, random bytes", p, MBEDTLS_CLIENT_HELLO_RANDOM_LEN ); - memcpy( &ssl->handshake->randbytes[0], p, MBEDTLS_CLIENT_HELLO_RANDOM_LEN ); + memcpy( &handshake->randbytes[0], p, MBEDTLS_CLIENT_HELLO_RANDOM_LEN ); p += MBEDTLS_CLIENT_HELLO_RANDOM_LEN; /* ... @@ -1374,13 +1375,13 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, continue; ssl->session_negotiate->ciphersuite = cipher_suite; - ssl->handshake->ciphersuite_info = ciphersuite_info; + handshake->ciphersuite_info = ciphersuite_info; MBEDTLS_SSL_DEBUG_MSG( 2, ( "selected ciphersuite: %04x - %s", cipher_suite, ciphersuite_info->name ) ); } - if( ssl->handshake->ciphersuite_info == NULL ) + if( handshake->ciphersuite_info == NULL ) { MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); @@ -1416,7 +1417,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "client hello extensions", p, extensions_len ); - ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < extensions_end ) { @@ -1431,8 +1432,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, * Servers MUST check that it is the last extension and otherwise fail * the handshake with an "illegal_parameter" alert. */ - if( ssl->handshake->received_extensions & - mbedtls_tls13_get_extension_mask( MBEDTLS_TLS_EXT_PRE_SHARED_KEY ) ) + if( handshake->received_extensions & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "pre_shared_key is not last extension." ) ); @@ -1450,7 +1450,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); extension_data_end = p + extension_data_len; - ret = mbedtls_tls13_check_received_extensions( + ret = mbedtls_ssl_tls13_check_received_extension( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, extension_type, MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH ); if( ret != 0 ) @@ -1554,13 +1554,13 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found pre_shared_key extension" ) ); - if( ( ssl->handshake->received_extensions & + if( ( handshake->received_extensions & MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ) == 0 ) { MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); } #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* Delay processing of the PSK identity once we have @@ -1614,7 +1614,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_TLS1_3_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_CLIENT_HELLO, ssl->handshake->received_extensions ); + 3, MBEDTLS_SSL_HS_CLIENT_HELLO, handshake->received_extensions ); mbedtls_ssl_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, @@ -1628,10 +1628,9 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, /* If we've settled on a PSK-based exchange, parse PSK identity ext */ if( mbedtls_ssl_tls13_some_psk_enabled( ssl ) && mbedtls_ssl_conf_tls13_some_psk_enabled( ssl ) && - ( ssl->handshake->received_extensions & - MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) ) + ( handshake->received_extensions & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) ) { - ssl->handshake->update_checksum( ssl, buf, + handshake->update_checksum( ssl, buf, pre_shared_key_ext - buf ); ret = ssl_tls13_parse_pre_shared_key_ext( ssl, pre_shared_key_ext, @@ -1640,8 +1639,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, cipher_suites_end ); if( ret == MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY ) { - ssl->handshake->received_extensions &= - ~MBEDTLS_SSL_EXT_PRE_SHARED_KEY; + handshake->received_extensions &= ~MBEDTLS_SSL_EXT_PRE_SHARED_KEY; } else if( ret != 0 ) { @@ -1653,14 +1651,14 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, else #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ { - ssl->handshake->update_checksum( ssl, buf, p - buf ); + handshake->update_checksum( ssl, buf, p - buf ); } ret = ssl_tls13_determine_key_exchange_mode( ssl ); if( ret < 0 ) return( ret ); - mbedtls_ssl_optimize_checksum( ssl, ssl->handshake->ciphersuite_info ); + mbedtls_ssl_optimize_checksum( ssl, handshake->ciphersuite_info ); return( hrr_required ? SSL_CLIENT_HELLO_HRR_REQUIRED : SSL_CLIENT_HELLO_OK ); } From 7a485c1fdf02b6370c1a96eec44700243c31dcee Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 13:08:18 +0800 Subject: [PATCH 0943/1028] Add ext id and utilities - Remove `MBEDTLS_SSL_EXT_*` - Add macros and functions for translating iana identifer. - Add internal identity for extension Signed-off-by: Jerry Yu --- library/ssl_misc.h | 67 +++++++++++++++----------- library/ssl_tls.c | 95 +++++++++++++++++++++++++++++++++++++ library/ssl_tls13_generic.c | 74 ----------------------------- 3 files changed, 134 insertions(+), 102 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 3aeab0cd84..8bd98b3c44 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -75,33 +75,46 @@ #define MBEDTLS_SSL_RENEGOTIATION_PENDING 3 /* Requested (server only) */ /* - * Mask of TLS 1.3 handshake extensions used in extensions_present - * of mbedtls_ssl_handshake_params. + * Inernal identity of handshake extensions */ -#define MBEDTLS_SSL_EXT_NONE 0 +#define MBEDTLS_SSL_EXT_ID_UNRECOGNIZED 0 +#define MBEDTLS_SSL_EXT_ID_SERVERNAME 1 +#define MBEDTLS_SSL_EXT_ID_SERVERNAME_HOSTNAME 1 +#define MBEDTLS_SSL_EXT_ID_MAX_FRAGMENT_LENGTH 2 +#define MBEDTLS_SSL_EXT_ID_STATUS_REQUEST 3 +#define MBEDTLS_SSL_EXT_ID_SUPPORTED_GROUPS 4 +#define MBEDTLS_SSL_EXT_ID_SUPPORTED_ELLIPTIC_CURVES 4 +#define MBEDTLS_SSL_EXT_ID_SIG_ALG 5 +#define MBEDTLS_SSL_EXT_ID_USE_SRTP 6 +#define MBEDTLS_SSL_EXT_ID_HEARTBEAT 7 +#define MBEDTLS_SSL_EXT_ID_ALPN 8 +#define MBEDTLS_SSL_EXT_ID_SCT 9 +#define MBEDTLS_SSL_EXT_ID_CLI_CERT_TYPE 10 +#define MBEDTLS_SSL_EXT_ID_SERV_CERT_TYPE 11 +#define MBEDTLS_SSL_EXT_ID_PADDING 12 +#define MBEDTLS_SSL_EXT_ID_PRE_SHARED_KEY 13 +#define MBEDTLS_SSL_EXT_ID_EARLY_DATA 14 +#define MBEDTLS_SSL_EXT_ID_SUPPORTED_VERSIONS 15 +#define MBEDTLS_SSL_EXT_ID_COOKIE 16 +#define MBEDTLS_SSL_EXT_ID_PSK_KEY_EXCHANGE_MODES 17 +#define MBEDTLS_SSL_EXT_ID_CERT_AUTH 18 +#define MBEDTLS_SSL_EXT_ID_OID_FILTERS 19 +#define MBEDTLS_SSL_EXT_ID_POST_HANDSHAKE_AUTH 20 +#define MBEDTLS_SSL_EXT_ID_SIG_ALG_CERT 21 +#define MBEDTLS_SSL_EXT_ID_KEY_SHARE 22 +#define MBEDTLS_SSL_EXT_ID_TRUNCATED_HMAC 23 +#define MBEDTLS_SSL_EXT_ID_SUPPORTED_POINT_FORMATS 24 +#define MBEDTLS_SSL_EXT_ID_ENCRYPT_THEN_MAC 25 +#define MBEDTLS_SSL_EXT_ID_EXTENDED_MASTER_SECRET 26 +#define MBEDTLS_SSL_EXT_ID_SESSION_TICKET 27 -#define MBEDTLS_SSL_EXT_SERVERNAME ( 1 << 0 ) -#define MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH ( 1 << 1 ) -#define MBEDTLS_SSL_EXT_STATUS_REQUEST ( 1 << 2 ) -#define MBEDTLS_SSL_EXT_SUPPORTED_GROUPS ( 1 << 3 ) -#define MBEDTLS_SSL_EXT_SIG_ALG ( 1 << 4 ) -#define MBEDTLS_SSL_EXT_USE_SRTP ( 1 << 5 ) -#define MBEDTLS_SSL_EXT_HEARTBEAT ( 1 << 6 ) -#define MBEDTLS_SSL_EXT_ALPN ( 1 << 7 ) -#define MBEDTLS_SSL_EXT_SCT ( 1 << 8 ) -#define MBEDTLS_SSL_EXT_CLI_CERT_TYPE ( 1 << 9 ) -#define MBEDTLS_SSL_EXT_SERV_CERT_TYPE ( 1 << 10 ) -#define MBEDTLS_SSL_EXT_PADDING ( 1 << 11 ) -#define MBEDTLS_SSL_EXT_PRE_SHARED_KEY ( 1 << 12 ) -#define MBEDTLS_SSL_EXT_EARLY_DATA ( 1 << 13 ) -#define MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ( 1 << 14 ) -#define MBEDTLS_SSL_EXT_COOKIE ( 1 << 15 ) -#define MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ( 1 << 16 ) -#define MBEDTLS_SSL_EXT_CERT_AUTH ( 1 << 17 ) -#define MBEDTLS_SSL_EXT_OID_FILTERS ( 1 << 18 ) -#define MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH ( 1 << 19 ) -#define MBEDTLS_SSL_EXT_SIG_ALG_CERT ( 1 << 20 ) -#define MBEDTLS_SSL_EXT_KEY_SHARE ( 1 << 21 ) +/* Utility for translating IANA extension type. */ +uint32_t mbedtls_ssl_get_extension_id( unsigned int extension_type ); +uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); +/* Macros used to define mask constants */ +#define MBEDTLS_SSL_EXT_MASK( id ) ( 1ULL << ( MBEDTLS_SSL_EXT_ID_##id ) ) +/* Reset value of extension mask */ +#define MBEDTLS_SSL_EXT_MASK_NONE 0 /* In messages containing extension requests, we should ignore unrecognized * extensions. In messages containing extension responses, unrecognized @@ -1930,8 +1943,6 @@ static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) * Helper functions for extensions checking and convert. */ -uint32_t mbedtls_tls13_get_extension_mask( unsigned int extension_type ); - MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_check_received_extension( mbedtls_ssl_context *ssl, @@ -1943,7 +1954,7 @@ static inline void mbedtls_ssl_tls13_set_hs_sent_ext_mask( mbedtls_ssl_context *ssl, unsigned int extension_type ) { ssl->handshake->sent_extensions |= - mbedtls_tls13_get_extension_mask( extension_type ); + mbedtls_ssl_get_extension_mask( extension_type ); } /* diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 3678ec0bd6..b3210c4155 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -521,6 +521,101 @@ static void ssl_clear_peer_cert( mbedtls_ssl_session *session ) } #endif /* MBEDTLS_X509_CRT_PARSE_C */ +uint32_t mbedtls_ssl_get_extension_id( unsigned int extension_type ) +{ + switch( extension_type ) + { + case MBEDTLS_TLS_EXT_SERVERNAME: + return( MBEDTLS_SSL_EXT_ID_SERVERNAME ); + + case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: + return( MBEDTLS_SSL_EXT_ID_MAX_FRAGMENT_LENGTH ); + + case MBEDTLS_TLS_EXT_STATUS_REQUEST: + return( MBEDTLS_SSL_EXT_ID_STATUS_REQUEST ); + + case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: + return( MBEDTLS_SSL_EXT_ID_SUPPORTED_GROUPS ); + + case MBEDTLS_TLS_EXT_SIG_ALG: + return( MBEDTLS_SSL_EXT_ID_SIG_ALG ); + + case MBEDTLS_TLS_EXT_USE_SRTP: + return( MBEDTLS_SSL_EXT_ID_USE_SRTP ); + + case MBEDTLS_TLS_EXT_HEARTBEAT: + return( MBEDTLS_SSL_EXT_ID_HEARTBEAT ); + + case MBEDTLS_TLS_EXT_ALPN: + return( MBEDTLS_SSL_EXT_ID_ALPN ); + + case MBEDTLS_TLS_EXT_SCT: + return( MBEDTLS_SSL_EXT_ID_SCT ); + + case MBEDTLS_TLS_EXT_CLI_CERT_TYPE: + return( MBEDTLS_SSL_EXT_ID_CLI_CERT_TYPE ); + + case MBEDTLS_TLS_EXT_SERV_CERT_TYPE: + return( MBEDTLS_SSL_EXT_ID_SERV_CERT_TYPE ); + + case MBEDTLS_TLS_EXT_PADDING: + return( MBEDTLS_SSL_EXT_ID_PADDING ); + + case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: + return( MBEDTLS_SSL_EXT_ID_PRE_SHARED_KEY ); + + case MBEDTLS_TLS_EXT_EARLY_DATA: + return( MBEDTLS_SSL_EXT_ID_EARLY_DATA ); + + case MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS: + return( MBEDTLS_SSL_EXT_ID_SUPPORTED_VERSIONS ); + + case MBEDTLS_TLS_EXT_COOKIE: + return( MBEDTLS_SSL_EXT_ID_COOKIE ); + + case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: + return( MBEDTLS_SSL_EXT_ID_PSK_KEY_EXCHANGE_MODES ); + + case MBEDTLS_TLS_EXT_CERT_AUTH: + return( MBEDTLS_SSL_EXT_ID_CERT_AUTH ); + + case MBEDTLS_TLS_EXT_OID_FILTERS: + return( MBEDTLS_SSL_EXT_ID_OID_FILTERS ); + + case MBEDTLS_TLS_EXT_POST_HANDSHAKE_AUTH: + return( MBEDTLS_SSL_EXT_ID_POST_HANDSHAKE_AUTH ); + + case MBEDTLS_TLS_EXT_SIG_ALG_CERT: + return( MBEDTLS_SSL_EXT_ID_SIG_ALG_CERT ); + + case MBEDTLS_TLS_EXT_KEY_SHARE: + return( MBEDTLS_SSL_EXT_ID_KEY_SHARE ); + + case MBEDTLS_TLS_EXT_TRUNCATED_HMAC: + return( MBEDTLS_SSL_EXT_ID_TRUNCATED_HMAC ); + + case MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS: + return( MBEDTLS_SSL_EXT_ID_SUPPORTED_POINT_FORMATS ); + + case MBEDTLS_TLS_EXT_ENCRYPT_THEN_MAC: + return( MBEDTLS_SSL_EXT_ID_ENCRYPT_THEN_MAC ); + + case MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET: + return( MBEDTLS_SSL_EXT_ID_EXTENDED_MASTER_SECRET ); + + case MBEDTLS_TLS_EXT_SESSION_TICKET: + return( MBEDTLS_SSL_EXT_ID_SESSION_TICKET ); + + } + + return( MBEDTLS_SSL_EXT_ID_UNRECOGNIZED ); +} + +uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ) +{ + return( 1 << mbedtls_ssl_get_extension_id( extension_type ) ); +} + void mbedtls_ssl_optimize_checksum( mbedtls_ssl_context *ssl, const mbedtls_ssl_ciphersuite_t *ciphersuite_info ) { diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 21644ede43..a52b4ca696 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1529,80 +1529,6 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( } #endif /* MBEDTLS_ECDH_C */ -uint32_t mbedtls_tls13_get_extension_mask( unsigned int extension_type ) -{ - switch( extension_type ) - { - case MBEDTLS_TLS_EXT_SERVERNAME: - return( MBEDTLS_SSL_EXT_SERVERNAME ); - - case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: - return( MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH ); - - case MBEDTLS_TLS_EXT_STATUS_REQUEST: - return( MBEDTLS_SSL_EXT_STATUS_REQUEST ); - - case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: - return( MBEDTLS_SSL_EXT_SUPPORTED_GROUPS ); - - case MBEDTLS_TLS_EXT_SIG_ALG: - return( MBEDTLS_SSL_EXT_SIG_ALG ); - - case MBEDTLS_TLS_EXT_USE_SRTP: - return( MBEDTLS_SSL_EXT_USE_SRTP ); - - case MBEDTLS_TLS_EXT_HEARTBEAT: - return( MBEDTLS_SSL_EXT_HEARTBEAT ); - - case MBEDTLS_TLS_EXT_ALPN: - return( MBEDTLS_SSL_EXT_ALPN ); - - case MBEDTLS_TLS_EXT_SCT: - return( MBEDTLS_SSL_EXT_SCT ); - - case MBEDTLS_TLS_EXT_CLI_CERT_TYPE: - return( MBEDTLS_SSL_EXT_CLI_CERT_TYPE ); - - case MBEDTLS_TLS_EXT_SERV_CERT_TYPE: - return( MBEDTLS_SSL_EXT_SERV_CERT_TYPE ); - - case MBEDTLS_TLS_EXT_PADDING: - return( MBEDTLS_SSL_EXT_PADDING ); - - case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: - return( MBEDTLS_SSL_EXT_PRE_SHARED_KEY ); - - case MBEDTLS_TLS_EXT_EARLY_DATA: - return( MBEDTLS_SSL_EXT_EARLY_DATA ); - - case MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS: - return( MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ); - - case MBEDTLS_TLS_EXT_COOKIE: - return( MBEDTLS_SSL_EXT_COOKIE ); - - case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: - return( MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ); - - case MBEDTLS_TLS_EXT_CERT_AUTH: - return( MBEDTLS_SSL_EXT_CERT_AUTH ); - - case MBEDTLS_TLS_EXT_OID_FILTERS: - return( MBEDTLS_SSL_EXT_OID_FILTERS ); - - case MBEDTLS_TLS_EXT_POST_HANDSHAKE_AUTH: - return( MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH ); - - case MBEDTLS_TLS_EXT_SIG_ALG_CERT: - return( MBEDTLS_SSL_EXT_SIG_ALG_CERT ); - - case MBEDTLS_TLS_EXT_KEY_SHARE: - return( MBEDTLS_SSL_EXT_KEY_SHARE ); - }; - - return( MBEDTLS_SSL_EXT_UNRECOGNIZED ); -} - #if defined(MBEDTLS_DEBUG_C) const char *mbedtls_tls13_get_extension_name( uint16_t extension_type ) { From e50f2f1a8e5d56d162cf7dd58b835c5ee96295a1 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 26 Oct 2022 15:14:33 +0100 Subject: [PATCH 0944/1028] Add mbedtls_mpi_core_ct_uint_table_lookup This will be needed for extracting modular exponentiation from the prototype. The function signature is kept aligned to the prototype, but the implementation is new. (The implementation of this function in the prototype has further optimisations which are out of scope for now.) The function is not reused in the bignum counterpart as it will become redundant soon. This function is meant to be static, but doesn't have the qualifier as it is not used yet and would cause compiler warnings. The MBEDTLS_STATIC_TESTABLE macro will be added in a later commit. Signed-off-by: Janos Follath --- library/bignum_core.c | 14 ++++++++++++++ library/bignum_core.h | 19 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/library/bignum_core.c b/library/bignum_core.c index b401fa36cb..c1da93d0a0 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -540,4 +540,18 @@ cleanup: return( ret ); } +void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, + const mbedtls_mpi_uint *table, + size_t limbs, + size_t count, + size_t index ) +{ + for( size_t i = 0; i < count; i++ ) + { + unsigned char assign = mbedtls_ct_size_bool_eq( i, index ); + const mbedtls_mpi_uint *current = table + i * limbs; + mbedtls_mpi_core_cond_assign( dest, current, limbs, assign ); + } +} + #endif /* MBEDTLS_BIGNUM_C */ diff --git a/library/bignum_core.h b/library/bignum_core.h index 9a5b89fc6e..3618e42006 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -452,4 +452,23 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, int mbedtls_mpi_core_get_mont_r2_unsafe( mbedtls_mpi *X, const mbedtls_mpi *N ); +/** + * Select an MPI from a table without leaking the index. + * + * \param dest The destination buffer. This must point to a writable + * buffer of at least \p limbs limbs. + * \param table The address of the table. This must point to a readable + * array of \p count elements of + * \p limbs limbs each each. + * \param limbs The length of a table entry in limbs. + * \param count The number of elements in \p table. + * \param index The secret table index to look up. This must be in the + * range `0,..,count-1`. + */ +void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, + const mbedtls_mpi_uint *table, + size_t limbs, + size_t count, + size_t index ); + #endif /* MBEDTLS_BIGNUM_CORE_H */ From 032924f29759f6ca43395e9b42cf615c7e1da0ce Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 26 Oct 2022 19:10:29 +0100 Subject: [PATCH 0945/1028] Add mbedtls_mpi_core_ct_uint_table_lookup tests Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 38 ++++++++++++++++++++ tests/suites/test_suite_bignum_core.function | 37 +++++++++++++++++++ 2 files changed, 75 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 0d238e714b..e88f469a14 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -69,6 +69,44 @@ class BignumCoreShiftR(BignumCoreTarget, metaclass=ABCMeta): for count in counts: yield cls(input_hex, descr, count).create_test_case() +class BignumCoreCTLookup(BignumCoreTarget, metaclass=ABCMeta): + """Test cases for mbedtls_mpi_core_ct_uint_table_lookup().""" + count = 0 + test_function = "mpi_core_ct_uint_table_lookup" + test_name = "Constant time MPI table lookup" + + bitsizes = [ + (32, "One limb"), + (192, "Smallest curve sized"), + (512, "Largest curve sized"), + (2048, "Small FF/RSA sized"), + (4096, "Large FF/RSA sized"), + ] + + window_sizes = [ 0, 1, 2, 3, 4, 5, 6 ] + + def __init__(self, + bitsize: int, descr: str, window_size: int) -> None: + self.bitsize = bitsize + self.bitsize_description = descr + self.window_size = window_size + + def arguments(self) -> List[str]: + return [str(self.bitsize), str(self.window_size)] + + def description(self) -> str: + return '{} - {} MPI with {} bit window'.format( + BignumCoreCTLookup.test_name, + self.bitsize_description, + self.window_size + ) + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + for bitsize, bitsize_description in cls.bitsizes: + for window_size in cls.window_sizes: + yield (cls(bitsize, bitsize_description, window_size) + .create_test_case()) class BignumCoreOperation(bignum_common.OperationCommon, BignumCoreTarget, metaclass=ABCMeta): #pylint: disable=abstract-method diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 57c2f37387..696d873eaf 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -941,3 +941,40 @@ exit: mbedtls_mpi_free( &RR_REF ); } /* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_ct_uint_table_lookup( int bitlen, int window_size ) +{ + size_t limbs = BITS_TO_LIMBS( bitlen ); + size_t count = ( (size_t) 1 ) << window_size; + + mbedtls_mpi_uint *table = NULL; + ASSERT_ALLOC( table, limbs * count ); + + mbedtls_mpi_uint *dest = NULL; + ASSERT_ALLOC( dest, limbs ); + + /* + * Fill the table with a unique counter so that differences are easily + * detected. (And have their relationship to the index relatively non-trivial just + * to be sure.) + */ + for( size_t i = 0; i < count * limbs; i++ ) + { + table[i] = ~i - 1; + } + + for( size_t i = 0; i < count; i++ ) + { + memset( dest, 0x00, limbs * sizeof( *dest ) ); + mbedtls_mpi_core_ct_uint_table_lookup( dest, table, limbs, count, i ); + + mbedtls_mpi_uint *current = table + i * limbs; + ASSERT_COMPARE( dest, limbs * sizeof( *dest ), + current, limbs * sizeof( *current ) ); + } + +exit: + ; +} +/* END_CASE */ From 133f4e427b65354095dc3c6f96087fc14e1b4df4 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Fri, 28 Oct 2022 10:54:46 +0100 Subject: [PATCH 0946/1028] Test mpi_core_table_lookup for constant timeness Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_core.function | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 696d873eaf..f4fd51c160 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -966,12 +966,23 @@ void mpi_core_ct_uint_table_lookup( int bitlen, int window_size ) for( size_t i = 0; i < count; i++ ) { + /* + * We shouldn't leak anything through timing. + * We need to set these in every loop as we need to make the loop + * variable public for the loop head and comparison macros make the + * rest public automatically. + */ + TEST_CF_SECRET( &i, sizeof( i ) ); + TEST_CF_SECRET( dest, limbs * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( table, count * limbs * sizeof( mbedtls_mpi_uint ) ); + memset( dest, 0x00, limbs * sizeof( *dest ) ); mbedtls_mpi_core_ct_uint_table_lookup( dest, table, limbs, count, i ); mbedtls_mpi_uint *current = table + i * limbs; ASSERT_COMPARE( dest, limbs * sizeof( *dest ), current, limbs * sizeof( *current ) ); + TEST_CF_PUBLIC( &i, sizeof( i ) ); } exit: From e8734d8a55877592f73c530a0711ebe4ae2a5a01 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 31 Oct 2022 14:30:24 +0000 Subject: [PATCH 0947/1028] Apply suggestions from code review Two spelling fixes (changelog & a comment) Signed-off-by: Dave Rodgman --- ...3_session_resumption_fail_when_hostname_is_not_localhost.txt | 2 +- library/ssl_tls.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt b/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt index 4a4d535aea..5797f48e81 100644 --- a/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt +++ b/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt @@ -1,4 +1,4 @@ Bugfix - * Fix TLS 1.3 session reumption fail. Fixes #6488. + * Fix TLS 1.3 session resumption fail. Fixes #6488. * Add configuration check to exclude TLS 1.3 optional authentication of client. diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 6446b760e0..981ec7b681 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1030,7 +1030,7 @@ static int ssl_conf_check(const mbedtls_ssl_context *ssl) ssl->conf->authmode == MBEDTLS_SSL_VERIFY_OPTIONAL ) { MBEDTLS_SSL_DEBUG_MSG( - 1, ( "Optional verfiy auth mode " + 1, ( "Optional verify auth mode " "is not available for TLS 1.3 client" ) ); return( MBEDTLS_ERR_SSL_BAD_CONFIG ); } From 88e3177fccd7fb3ea1db4ef0b5a1addc6b770c45 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 31 Oct 2022 14:32:46 +0000 Subject: [PATCH 0948/1028] Make pylint happy Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index e88f469a14..f8ba12b025 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -76,14 +76,14 @@ class BignumCoreCTLookup(BignumCoreTarget, metaclass=ABCMeta): test_name = "Constant time MPI table lookup" bitsizes = [ - (32, "One limb"), - (192, "Smallest curve sized"), - (512, "Largest curve sized"), - (2048, "Small FF/RSA sized"), - (4096, "Large FF/RSA sized"), - ] + (32, "One limb"), + (192, "Smallest curve sized"), + (512, "Largest curve sized"), + (2048, "Small FF/RSA sized"), + (4096, "Large FF/RSA sized"), + ] - window_sizes = [ 0, 1, 2, 3, 4, 5, 6 ] + window_sizes = [0, 1, 2, 3, 4, 5, 6] def __init__(self, bitsize: int, descr: str, window_size: int) -> None: @@ -96,10 +96,10 @@ class BignumCoreCTLookup(BignumCoreTarget, metaclass=ABCMeta): def description(self) -> str: return '{} - {} MPI with {} bit window'.format( - BignumCoreCTLookup.test_name, - self.bitsize_description, - self.window_size - ) + BignumCoreCTLookup.test_name, + self.bitsize_description, + self.window_size + ) @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: From 3d973314b22a840e047f910e6cfdc69ccdf354d1 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 31 Oct 2022 14:54:24 +0000 Subject: [PATCH 0949/1028] Update PR template Signed-off-by: Dave Rodgman --- .github/pull_request_template.md | 50 ++++++++++++-------------------- 1 file changed, 19 insertions(+), 31 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 9bc3b0a4f4..0650969a4d 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,40 +1,28 @@ -Notes: -* Pull requests cannot be accepted until the PR follows the [contributing guidelines](../CONTRIBUTING.md). In particular, each commit must have at least one `Signed-off-by:` line from the committer to certify that the contribution is made under the terms of the [Developer Certificate of Origin](../dco.txt). -* This is just a template, so feel free to use/remove the unnecessary things ## Description -A few sentences describing the overall goals of the pull request's commits. + +Please write a few sentences describing the overall goals of the pull request's commits. -## Status -**READY/IN DEVELOPMENT/HOLD** -## Requires Backporting +## Gatekeeper checklist + +- [ ] **changelog** provided, or not required +- [ ] **backport** done, or not required +- [ ] **tests** provided, or not required + + + +## Notes for the submitter + +Pull requests cannot be accepted until the PR follows the [contributing guidelines](../CONTRIBUTING.md). In particular, each commit must have at least one `Signed-off-by:` line from the committer to certify that the contribution is made under the terms of the [Developer Certificate of Origin](../dco.txt). + +#### Backporting + When there is a bug fix, it should be backported to all maintained and supported branches. Changes do not have to be backported if: -- This PR is a new feature\enhancement + +- This PR is a new feature / enhancement - This PR contains changes in the API. If this is true, and there is a need for the fix to be backported, the fix should be handled differently in the legacy branch -Yes | NO -Which branch? +It is fine to defer providing a backport until the main PR is approved. -## Requires ChangeLog entry - -YES | NO - if no, why not? - -## Migrations -If there is any API change, what's the incentive and logic for it. - -YES | NO - -## Additional comments -Any additional information that could be of interest - -## Todos -- [ ] Tests -- [ ] Documentation -- [ ] Changelog updated -- [ ] Backported - - -## Steps to test or reproduce -Outline the steps to test or reproduce the PR here. From ef67d38bc0a7c610f021154ef296207b4ea1bc6e Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 31 Oct 2022 15:11:49 +0000 Subject: [PATCH 0950/1028] Fix memory leak in mpi_core_ct_uint_table_lookup test Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_core.function | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index f4fd51c160..c0bee70d26 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -949,9 +949,9 @@ void mpi_core_ct_uint_table_lookup( int bitlen, int window_size ) size_t count = ( (size_t) 1 ) << window_size; mbedtls_mpi_uint *table = NULL; - ASSERT_ALLOC( table, limbs * count ); - mbedtls_mpi_uint *dest = NULL; + + ASSERT_ALLOC( table, limbs * count ); ASSERT_ALLOC( dest, limbs ); /* @@ -986,6 +986,7 @@ void mpi_core_ct_uint_table_lookup( int bitlen, int window_size ) } exit: - ; + mbedtls_free(table); + mbedtls_free(dest); } /* END_CASE */ From 12cee78ea72d2775aaabe20c30b9fd954bbb2382 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 31 Oct 2022 15:34:11 +0000 Subject: [PATCH 0951/1028] Update PSA links in README.md Signed-off-by: Dave Rodgman --- README.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index cc61da03c3..1a4edb05cc 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Documentation The main Mbed TLS documentation is available via [ReadTheDocs](https://mbed-tls.readthedocs.io/). -Documentation for the PSA Cryptography API is available [on GitHub](https://armmbed.github.io/mbed-crypto/psa/#application-programming-interface). +Documentation for the PSA Cryptography API is available [on GitHub](https://arm-software.github.io/psa-api/crypto/). To generate a local copy of the library documentation in HTML format, tailored to your compile-time configuration: @@ -265,11 +265,11 @@ Mbed TLS is mostly written in portable C99; however, it has a few platform requi PSA cryptography API -------------------- -### PSA API design +### PSA API Arm's [Platform Security Architecture (PSA)](https://developer.arm.com/architectures/security-architectures/platform-security-architecture) is a holistic set of threat models, security analyses, hardware and firmware architecture specifications, and an open source firmware reference implementation. PSA provides a recipe, based on industry best practice, that allows security to be consistently designed in, at both a hardware and firmware level. -The [PSA cryptography API](https://armmbed.github.io/mbed-crypto/psa/#application-programming-interface) provides access to a set of cryptographic primitives. It has a dual purpose. First, it can be used in a PSA-compliant platform to build services, such as secure boot, secure storage and secure communication. Second, it can also be used independently of other PSA components on any platform. +The [PSA cryptography API](https://arm-software.github.io/psa-api/crypto/) provides access to a set of cryptographic primitives. It has a dual purpose. First, it can be used in a PSA-compliant platform to build services, such as secure boot, secure storage and secure communication. Second, it can also be used independently of other PSA components on any platform. The design goals of the PSA cryptography API include: @@ -281,10 +281,6 @@ The design goals of the PSA cryptography API include: Arm welcomes feedback on the design of the API. If you think something could be improved, please open an issue on our Github repository. Alternatively, if you prefer to provide your feedback privately, please email us at [`mbed-crypto@arm.com`](mailto:mbed-crypto@arm.com). All feedback received by email is treated confidentially. -### PSA API documentation - -A browsable copy of the PSA Cryptography API documents is available on the [PSA cryptography interfaces documentation portal](https://armmbed.github.io/mbed-crypto/psa/#application-programming-interface) in [PDF](https://armmbed.github.io/mbed-crypto/PSA_Cryptography_API_Specification.pdf) and [HTML](https://armmbed.github.io/mbed-crypto/html/index.html) formats. - ### PSA implementation in Mbed TLS Mbed TLS includes a reference implementation of the PSA Cryptography API. From 119e5d7a6b379be074aa7a0452acb401a41e820d Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 31 Oct 2022 15:57:31 +0000 Subject: [PATCH 0952/1028] Update CONTRIBUTING.md, and refer to this from the template Signed-off-by: Dave Rodgman --- .github/pull_request_template.md | 13 ++----------- CONTRIBUTING.md | 14 ++++++++++---- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 0650969a4d..94fb0202a9 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -14,15 +14,6 @@ Please write a few sentences describing the overall goals of the pull request's ## Notes for the submitter -Pull requests cannot be accepted until the PR follows the [contributing guidelines](../CONTRIBUTING.md). In particular, each commit must have at least one `Signed-off-by:` line from the committer to certify that the contribution is made under the terms of the [Developer Certificate of Origin](../dco.txt). - -#### Backporting - -When there is a bug fix, it should be backported to all maintained and supported branches. -Changes do not have to be backported if: - -- This PR is a new feature / enhancement -- This PR contains changes in the API. If this is true, and there is a need for the fix to be backported, the fix should be handled differently in the legacy branch - -It is fine to defer providing a backport until the main PR is approved. +Please refer to the [contributing guidelines](../CONTRIBUTING.md), especially the +checklist for PR contributors. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0e2cf49121..0eca8aba0b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,9 +1,15 @@ Contributing ============ -We gratefully accept bug reports and contributions from the community. There are some requirements we need to fulfill in order to be able to integrate contributions: +We gratefully accept bug reports and contributions from the community. - - As with any open source project, contributions will be reviewed by the project team and community and may need some modifications to be accepted. - - The contribution should not break API or ABI, unless there is a real justification for that. If there is an API change, the contribution, if accepted, will be merged only when there will be a major release. +Quick Checklist for PR contributors +----------------------------------- +More details on all of these points may be found in the sections below. + +- [Sign-off](#license-and-copyright): all commits must be signed off +- [Tests](#tests): please ensure the PR includes adequate tests +- [Changelog](#documentation): if needed, please provide a changelog entry +- [Backports](#long-term-support-branches): provide a backport if needed (it's fine to wait until the main PR is accepted) Coding Standards ---------------- @@ -25,7 +31,7 @@ Backwards Compatibility The project aims to minimise the impact on users upgrading to newer versions of the library and it should not be necessary for a user to make any changes to their own code to work with a newer version of the library. Unless the user has made an active decision to use newer features, a newer generation of the library or a change has been necessary due to a security issue or other significant software defect, no modifications to their own code should be necessary. To achieve this, API compatibility is maintained between different versions of Mbed TLS on the main development branch and in LTS (Long Term Support) branches, as described in [BRANCHES.md](BRANCHES.md). -To minimise such disruption to users, where a change to the interface is required, all changes to the ABI or API, even on the main development branch where new features are added, need to be justifiable by either being a significant enhancement, new feature or bug fix which is best resolved by an interface change. +To minimise such disruption to users, where a change to the interface is required, all changes to the ABI or API, even on the main development branch where new features are added, need to be justifiable by either being a significant enhancement, new feature or bug fix which is best resolved by an interface change. If there is an API change, the contribution, if accepted, will be merged only when there will be a major release. Where changes to an existing interface are necessary, functions in the public interface which need to be changed, are marked as 'deprecated'. This is done with the preprocessor symbols `MBEDTLS_DEPRECATED_WARNING` and `MBEDTLS_DEPRECATED_REMOVED`. Then, a new function with a new name but similar if not identical behaviour to the original function containing the necessary changes should be created alongside the existing deprecated function. From 8904a2db297aeff67cceb16ff9369b7c03116865 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 31 Oct 2022 15:32:28 +0000 Subject: [PATCH 0953/1028] mpi_core_ct_uint_table_lookup: style and docs Signed-off-by: Janos Follath --- library/bignum_core.c | 13 ++++++------- library/bignum_core.h | 13 ++++++------- scripts/mbedtls_dev/bignum_core.py | 1 - 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index c1da93d0a0..b3bb3bcb88 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -541,16 +541,15 @@ cleanup: } void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, - const mbedtls_mpi_uint *table, - size_t limbs, - size_t count, - size_t index ) + const mbedtls_mpi_uint *table, + size_t limbs, + size_t count, + size_t index ) { - for( size_t i = 0; i < count; i++ ) + for( size_t i = 0; i < count; i++, table += limbs ) { unsigned char assign = mbedtls_ct_size_bool_eq( i, index ); - const mbedtls_mpi_uint *current = table + i * limbs; - mbedtls_mpi_core_cond_assign( dest, current, limbs, assign ); + mbedtls_mpi_core_cond_assign( dest, table, limbs, assign ); } } diff --git a/library/bignum_core.h b/library/bignum_core.h index 3618e42006..ccccebbffa 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -453,17 +453,16 @@ int mbedtls_mpi_core_get_mont_r2_unsafe( mbedtls_mpi *X, const mbedtls_mpi *N ); /** - * Select an MPI from a table without leaking the index. + * Copy an MPI from a table without leaking the index. * * \param dest The destination buffer. This must point to a writable * buffer of at least \p limbs limbs. * \param table The address of the table. This must point to a readable - * array of \p count elements of - * \p limbs limbs each each. - * \param limbs The length of a table entry in limbs. - * \param count The number of elements in \p table. - * \param index The secret table index to look up. This must be in the - * range `0,..,count-1`. + * array of \p count elements of \p limbs limbs each. + * \param limbs The number of limbs in each table entry. + * \param count The number of entries in \p table. + * \param index The (secret) table index to look up. This must be in the + * range `0 .. count-1`. */ void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, const mbedtls_mpi_uint *table, diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index f8ba12b025..9929e13fa3 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -71,7 +71,6 @@ class BignumCoreShiftR(BignumCoreTarget, metaclass=ABCMeta): class BignumCoreCTLookup(BignumCoreTarget, metaclass=ABCMeta): """Test cases for mbedtls_mpi_core_ct_uint_table_lookup().""" - count = 0 test_function = "mpi_core_ct_uint_table_lookup" test_name = "Constant time MPI table lookup" From 29b9b2b699cc4ed27e637a90404a77806cc20e32 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 1 Nov 2022 16:08:14 +0000 Subject: [PATCH 0954/1028] Fix zeroization at NULL pointer Signed-off-by: Dave Rodgman --- library/ssl_tls.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index a49f774ed1..3c91b45139 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -5635,7 +5635,9 @@ static int tls_prf_generic( mbedtls_md_type_t md_type, exit: mbedtls_md_free( &md_ctx ); - mbedtls_platform_zeroize( tmp, tmp_len ); + if ( tmp != NULL ) + mbedtls_platform_zeroize( tmp, tmp_len ); + mbedtls_platform_zeroize( h_i, sizeof( h_i ) ); mbedtls_free( tmp ); From 5875f5f96bc514afd841fdfc5987dfbe72e5c840 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 1 Nov 2022 16:27:14 +0000 Subject: [PATCH 0955/1028] Add Changelog Signed-off-by: Dave Rodgman --- ChangeLog.d/fix_zeroization.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 ChangeLog.d/fix_zeroization.txt diff --git a/ChangeLog.d/fix_zeroization.txt b/ChangeLog.d/fix_zeroization.txt new file mode 100644 index 0000000000..ad74d9c59f --- /dev/null +++ b/ChangeLog.d/fix_zeroization.txt @@ -0,0 +1,3 @@ +Bugfix + * Fix possible crash in TLS PRF code, if a failure to allocate memory occurs. + Reported by Michael Madsen in #6516. From ba864848e7dd6f5807092faa17e9a4de27d0e66e Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 1 Nov 2022 16:40:40 +0000 Subject: [PATCH 0956/1028] Remove duplicate function prototype Signed-off-by: Dave Rodgman --- library/psa_crypto_cipher.h | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/library/psa_crypto_cipher.h b/library/psa_crypto_cipher.h index fae98473c4..e5fe23bb31 100644 --- a/library/psa_crypto_cipher.h +++ b/library/psa_crypto_cipher.h @@ -24,22 +24,6 @@ #include #include -/** Get Mbed TLS cipher information given the cipher algorithm PSA identifier - * as well as the PSA type and size of the key to be used with the cipher - * algorithm. - * - * \param alg PSA cipher algorithm identifier - * \param key_type PSA key type - * \param key_bits Size of the key in bits - * \param[out] cipher_id Mbed TLS cipher algorithm identifier - * - * \return The Mbed TLS cipher information of the cipher algorithm. - * \c NULL if the PSA cipher algorithm is not supported. - */ -const mbedtls_cipher_info_t *mbedtls_cipher_info_from_psa( - psa_algorithm_t alg, psa_key_type_t key_type, size_t key_bits, - mbedtls_cipher_id_t *cipher_id ); - /** * \brief Set the key for a multipart symmetric encryption operation. * From f3928fb3e0d3f67047dd935e17e7b2d783194a33 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 1 Nov 2022 20:39:04 +0000 Subject: [PATCH 0957/1028] Reinstate note about all PRs receiving review Signed-off-by: Dave Rodgman --- CONTRIBUTING.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0eca8aba0b..8645da7357 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,7 @@ Contributing ============ -We gratefully accept bug reports and contributions from the community. +We gratefully accept bug reports and contributions from the community. All PRs are reviewed by the project team / community, and may need some modifications to +be accepted. Quick Checklist for PR contributors ----------------------------------- From b256640d72ed9b5a29796292edc20fada47f915a Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 1 Nov 2022 20:40:48 +0000 Subject: [PATCH 0958/1028] Improve list formatting Signed-off-by: Dave Rodgman --- CONTRIBUTING.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8645da7357..d19fe57ccc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,10 +7,10 @@ Quick Checklist for PR contributors ----------------------------------- More details on all of these points may be found in the sections below. -- [Sign-off](#license-and-copyright): all commits must be signed off -- [Tests](#tests): please ensure the PR includes adequate tests -- [Changelog](#documentation): if needed, please provide a changelog entry -- [Backports](#long-term-support-branches): provide a backport if needed (it's fine to wait until the main PR is accepted) +- [Sign-off](#license-and-copyright): all commits must be signed off. +- [Tests](#tests): please ensure the PR includes adequate tests. +- [Changelog](#documentation): if needed, please provide a changelog entry. +- [Backports](#long-term-support-branches): provide a backport if needed (it's fine to wait until the main PR is accepted). Coding Standards ---------------- From 1630447eed7e2023222db1efdb92acd5062d6112 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 2 Nov 2022 09:25:38 +0000 Subject: [PATCH 0959/1028] Move declaration of mbedtls_cipher_info_from_psa into psa_crypto_cipher.h Signed-off-by: Dave Rodgman --- library/psa_crypto_aead.c | 1 + library/psa_crypto_cipher.h | 16 ++++++++++++++++ library/psa_crypto_core.h | 16 ---------------- library/psa_crypto_mac.c | 1 + 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/library/psa_crypto_aead.c b/library/psa_crypto_aead.c index 48969b3a37..730ef9555c 100644 --- a/library/psa_crypto_aead.c +++ b/library/psa_crypto_aead.c @@ -24,6 +24,7 @@ #include "psa_crypto_aead.h" #include "psa_crypto_core.h" +#include "psa_crypto_cipher.h" #include #include "mbedtls/platform.h" diff --git a/library/psa_crypto_cipher.h b/library/psa_crypto_cipher.h index e5fe23bb31..fae98473c4 100644 --- a/library/psa_crypto_cipher.h +++ b/library/psa_crypto_cipher.h @@ -24,6 +24,22 @@ #include #include +/** Get Mbed TLS cipher information given the cipher algorithm PSA identifier + * as well as the PSA type and size of the key to be used with the cipher + * algorithm. + * + * \param alg PSA cipher algorithm identifier + * \param key_type PSA key type + * \param key_bits Size of the key in bits + * \param[out] cipher_id Mbed TLS cipher algorithm identifier + * + * \return The Mbed TLS cipher information of the cipher algorithm. + * \c NULL if the PSA cipher algorithm is not supported. + */ +const mbedtls_cipher_info_t *mbedtls_cipher_info_from_psa( + psa_algorithm_t alg, psa_key_type_t key_type, size_t key_bits, + mbedtls_cipher_id_t *cipher_id ); + /** * \brief Set the key for a multipart symmetric encryption operation. * diff --git a/library/psa_crypto_core.h b/library/psa_crypto_core.h index 8c91b04d03..98638481c8 100644 --- a/library/psa_crypto_core.h +++ b/library/psa_crypto_core.h @@ -246,22 +246,6 @@ psa_status_t psa_copy_key_material_into_slot( psa_key_slot_t *slot, */ psa_status_t mbedtls_to_psa_error( int ret ); -/** Get Mbed TLS cipher information given the cipher algorithm PSA identifier - * as well as the PSA type and size of the key to be used with the cipher - * algorithm. - * - * \param alg PSA cipher algorithm identifier - * \param key_type PSA key type - * \param key_bits Size of the key in bits - * \param[out] cipher_id Mbed TLS cipher algorithm identifier - * - * \return The Mbed TLS cipher information of the cipher algorithm. - * \c NULL if the PSA cipher algorithm is not supported. - */ -const mbedtls_cipher_info_t *mbedtls_cipher_info_from_psa( - psa_algorithm_t alg, psa_key_type_t key_type, size_t key_bits, - mbedtls_cipher_id_t *cipher_id ); - /** Import a key in binary format. * * \note The signature of this function is that of a PSA driver diff --git a/library/psa_crypto_mac.c b/library/psa_crypto_mac.c index dcf065a672..d771e23e1b 100644 --- a/library/psa_crypto_mac.c +++ b/library/psa_crypto_mac.c @@ -24,6 +24,7 @@ #include #include "psa_crypto_core.h" +#include "psa_crypto_cipher.h" #include "psa_crypto_mac.h" #include From 0877dc8f558f4a199d714b86c2ccfd63f085ed2d Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 2 Nov 2022 09:29:35 +0000 Subject: [PATCH 0960/1028] Improve documentation for psa_crypto_cipher.h Signed-off-by: Dave Rodgman --- library/psa_crypto_cipher.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/psa_crypto_cipher.h b/library/psa_crypto_cipher.h index fae98473c4..3bd5360cda 100644 --- a/library/psa_crypto_cipher.h +++ b/library/psa_crypto_cipher.h @@ -1,5 +1,5 @@ /* - * PSA cipher driver entry points + * PSA cipher driver entry points and associated auxiliary functions */ /* * Copyright The Mbed TLS Contributors From 28f85e6683adb7a6f6c01252a8cd01ee4f12a012 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 09:51:02 +0000 Subject: [PATCH 0961/1028] Fix const time in mpi_core_ct_uint_table_lookup test Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_core.function | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index c0bee70d26..d5d58d870b 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -966,20 +966,22 @@ void mpi_core_ct_uint_table_lookup( int bitlen, int window_size ) for( size_t i = 0; i < count; i++ ) { + mbedtls_mpi_uint *current = table + i * limbs; + memset( dest, 0x00, limbs * sizeof( *dest ) ); + /* * We shouldn't leak anything through timing. * We need to set these in every loop as we need to make the loop - * variable public for the loop head and comparison macros make the - * rest public automatically. + * variable public for the loop head and the buffers for comparison. */ TEST_CF_SECRET( &i, sizeof( i ) ); - TEST_CF_SECRET( dest, limbs * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( table, count * limbs * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( dest, limbs * sizeof( *dest ) ); + TEST_CF_SECRET( table, count * limbs * sizeof( *table ) ); - memset( dest, 0x00, limbs * sizeof( *dest ) ); mbedtls_mpi_core_ct_uint_table_lookup( dest, table, limbs, count, i ); - mbedtls_mpi_uint *current = table + i * limbs; + TEST_CF_PUBLIC( dest, limbs * sizeof( *dest ) ); + TEST_CF_PUBLIC( table, count * limbs * sizeof( *table ) ); ASSERT_COMPARE( dest, limbs * sizeof( *dest ), current, limbs * sizeof( *current ) ); TEST_CF_PUBLIC( &i, sizeof( i ) ); From df0ad658a30e1a6a613852522fe322582666b49a Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 13:20:57 +0800 Subject: [PATCH 0962/1028] tls13: Add allowed extesions constants. - And refactor check_received_extension Signed-off-by: Jerry Yu --- library/ssl_misc.h | 105 +++++++++++++++++++----------------- library/ssl_tls13_generic.c | 25 ++++----- 2 files changed, 66 insertions(+), 64 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 8bd98b3c44..8ffdccb378 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -134,76 +134,83 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); * not specified for the message in which it appears, it MUST abort the handshake * with an "illegal_parameter" alert. */ -#define MBEDTLS_SSL_EXT_UNRECOGNIZED ( 1U << 31 ) + +/* Extensions that not recognized by TLS 1.3 */ +#define MBEDTLS_SSL_TLS1_3_EXT_MASK_UNREOGNIZED \ + ( MBEDTLS_SSL_EXT_MASK( SUPPORTED_POINT_FORMATS ) | \ + MBEDTLS_SSL_EXT_MASK( ENCRYPT_THEN_MAC ) | \ + MBEDTLS_SSL_EXT_MASK( EXTENDED_MASTER_SECRET ) | \ + MBEDTLS_SSL_EXT_MASK( SESSION_TICKET ) | \ + MBEDTLS_SSL_EXT_MASK( UNRECOGNIZED ) ) /* RFC 8446 section 4.2. Allowed extensions for ClienHello */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH \ - ( MBEDTLS_SSL_EXT_SERVERNAME | \ - MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH | \ - MBEDTLS_SSL_EXT_STATUS_REQUEST | \ - MBEDTLS_SSL_EXT_SUPPORTED_GROUPS | \ - MBEDTLS_SSL_EXT_SIG_ALG | \ - MBEDTLS_SSL_EXT_USE_SRTP | \ - MBEDTLS_SSL_EXT_HEARTBEAT | \ - MBEDTLS_SSL_EXT_ALPN | \ - MBEDTLS_SSL_EXT_SCT | \ - MBEDTLS_SSL_EXT_CLI_CERT_TYPE | \ - MBEDTLS_SSL_EXT_SERV_CERT_TYPE | \ - MBEDTLS_SSL_EXT_PADDING | \ - MBEDTLS_SSL_EXT_KEY_SHARE | \ - MBEDTLS_SSL_EXT_PRE_SHARED_KEY | \ - MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES | \ - MBEDTLS_SSL_EXT_EARLY_DATA | \ - MBEDTLS_SSL_EXT_COOKIE | \ - MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS | \ - MBEDTLS_SSL_EXT_CERT_AUTH | \ - MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH | \ - MBEDTLS_SSL_EXT_SIG_ALG_CERT | \ - MBEDTLS_SSL_EXT_UNRECOGNIZED ) + ( MBEDTLS_SSL_EXT_MASK( SERVERNAME ) | \ + MBEDTLS_SSL_EXT_MASK( MAX_FRAGMENT_LENGTH ) | \ + MBEDTLS_SSL_EXT_MASK( STATUS_REQUEST ) | \ + MBEDTLS_SSL_EXT_MASK( SUPPORTED_GROUPS ) | \ + MBEDTLS_SSL_EXT_MASK( SIG_ALG ) | \ + MBEDTLS_SSL_EXT_MASK( USE_SRTP ) | \ + MBEDTLS_SSL_EXT_MASK( HEARTBEAT ) | \ + MBEDTLS_SSL_EXT_MASK( ALPN ) | \ + MBEDTLS_SSL_EXT_MASK( SCT ) | \ + MBEDTLS_SSL_EXT_MASK( CLI_CERT_TYPE ) | \ + MBEDTLS_SSL_EXT_MASK( SERV_CERT_TYPE ) | \ + MBEDTLS_SSL_EXT_MASK( PADDING ) | \ + MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) | \ + MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | \ + MBEDTLS_SSL_EXT_MASK( PSK_KEY_EXCHANGE_MODES ) | \ + MBEDTLS_SSL_EXT_MASK( EARLY_DATA ) | \ + MBEDTLS_SSL_EXT_MASK( COOKIE ) | \ + MBEDTLS_SSL_EXT_MASK( SUPPORTED_VERSIONS ) | \ + MBEDTLS_SSL_EXT_MASK( CERT_AUTH ) | \ + MBEDTLS_SSL_EXT_MASK( POST_HANDSHAKE_AUTH ) | \ + MBEDTLS_SSL_EXT_MASK( SIG_ALG_CERT ) | \ + MBEDTLS_SSL_TLS1_3_EXT_MASK_UNREOGNIZED ) /* RFC 8446 section 4.2. Allowed extensions for EncryptedExtensions */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE \ - ( MBEDTLS_SSL_EXT_SERVERNAME | \ - MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH | \ - MBEDTLS_SSL_EXT_SUPPORTED_GROUPS | \ - MBEDTLS_SSL_EXT_USE_SRTP | \ - MBEDTLS_SSL_EXT_HEARTBEAT | \ - MBEDTLS_SSL_EXT_ALPN | \ - MBEDTLS_SSL_EXT_CLI_CERT_TYPE | \ - MBEDTLS_SSL_EXT_SERV_CERT_TYPE | \ - MBEDTLS_SSL_EXT_EARLY_DATA ) + ( MBEDTLS_SSL_EXT_MASK( SERVERNAME ) | \ + MBEDTLS_SSL_EXT_MASK( MAX_FRAGMENT_LENGTH ) | \ + MBEDTLS_SSL_EXT_MASK( SUPPORTED_GROUPS ) | \ + MBEDTLS_SSL_EXT_MASK( USE_SRTP ) | \ + MBEDTLS_SSL_EXT_MASK( HEARTBEAT ) | \ + MBEDTLS_SSL_EXT_MASK( ALPN ) | \ + MBEDTLS_SSL_EXT_MASK( CLI_CERT_TYPE ) | \ + MBEDTLS_SSL_EXT_MASK( SERV_CERT_TYPE ) | \ + MBEDTLS_SSL_EXT_MASK( EARLY_DATA ) ) /* RFC 8446 section 4.2. Allowed extensions for CertificateRequest */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CR \ - ( MBEDTLS_SSL_EXT_STATUS_REQUEST | \ - MBEDTLS_SSL_EXT_SIG_ALG | \ - MBEDTLS_SSL_EXT_SCT | \ - MBEDTLS_SSL_EXT_CERT_AUTH | \ - MBEDTLS_SSL_EXT_OID_FILTERS | \ - MBEDTLS_SSL_EXT_SIG_ALG_CERT | \ - MBEDTLS_SSL_EXT_UNRECOGNIZED ) + ( MBEDTLS_SSL_EXT_MASK( STATUS_REQUEST ) | \ + MBEDTLS_SSL_EXT_MASK( SIG_ALG ) | \ + MBEDTLS_SSL_EXT_MASK( SCT ) | \ + MBEDTLS_SSL_EXT_MASK( CERT_AUTH ) | \ + MBEDTLS_SSL_EXT_MASK( OID_FILTERS ) | \ + MBEDTLS_SSL_EXT_MASK( SIG_ALG_CERT ) | \ + MBEDTLS_SSL_TLS1_3_EXT_MASK_UNREOGNIZED ) /* RFC 8446 section 4.2. Allowed extensions for Certificate */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT \ - ( MBEDTLS_SSL_EXT_STATUS_REQUEST | \ - MBEDTLS_SSL_EXT_SCT ) + ( MBEDTLS_SSL_EXT_MASK( STATUS_REQUEST ) | \ + MBEDTLS_SSL_EXT_MASK( SCT ) ) /* RFC 8446 section 4.2. Allowed extensions for ServerHello */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_SH \ - ( MBEDTLS_SSL_EXT_KEY_SHARE | \ - MBEDTLS_SSL_EXT_PRE_SHARED_KEY | \ - MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) + ( MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) | \ + MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | \ + MBEDTLS_SSL_EXT_MASK( SUPPORTED_VERSIONS ) ) /* RFC 8446 section 4.2. Allowed extensions for HelloRetryRequest */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_HRR \ - ( MBEDTLS_SSL_EXT_KEY_SHARE | \ - MBEDTLS_SSL_EXT_COOKIE | \ - MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) + ( MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) | \ + MBEDTLS_SSL_EXT_MASK( COOKIE ) | \ + MBEDTLS_SSL_EXT_MASK( SUPPORTED_VERSIONS ) ) /* RFC 8446 section 4.2. Allowed extensions for NewSessionTicket */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_NST \ - ( MBEDTLS_SSL_EXT_EARLY_DATA | \ - MBEDTLS_SSL_EXT_UNRECOGNIZED ) + ( MBEDTLS_SSL_EXT_MASK( EARLY_DATA ) | \ + MBEDTLS_SSL_TLS1_3_EXT_MASK_UNREOGNIZED ) /* * Helper macros for function call with return check. diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index a52b4ca696..1bbd7f033b 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1685,28 +1685,22 @@ void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, * with an "illegal_parameter" alert. * */ - int mbedtls_ssl_tls13_check_received_extension( mbedtls_ssl_context *ssl, int hs_msg_type, unsigned int received_extension_type, uint32_t hs_msg_allowed_extensions_mask ) { -#if defined(MBEDTLS_DEBUG_C) - const char *hs_msg_name = ssl_tls13_get_hs_msg_name( hs_msg_type ); -#endif - uint32_t extension_mask = mbedtls_tls13_get_extension_mask( received_extension_type ); + uint32_t extension_mask = mbedtls_ssl_get_extension_mask( + received_extension_type ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "%s : received %s(%x) extension", - hs_msg_name, - mbedtls_tls13_get_extension_name( received_extension_type ), - (unsigned int)received_extension_type ) ); + MBEDTLS_SSL_PRINT_EXT_TYPE( + 3, hs_msg_type, received_extension_type, "received" ); if( ( extension_mask & hs_msg_allowed_extensions_mask ) == 0 ) { - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "%s : forbidden extension received.", hs_msg_name ) ); + MBEDTLS_SSL_PRINT_EXT_TYPE( + 3, hs_msg_type, received_extension_type, "is illegal" ); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); @@ -1721,7 +1715,7 @@ int mbedtls_ssl_tls13_check_received_extension( switch( hs_msg_type ) { case MBEDTLS_SSL_HS_SERVER_HELLO: - case -MBEDTLS_SSL_HS_SERVER_HELLO: // HRR does not have IANA value. + case MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST: case MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS: case MBEDTLS_SSL_HS_CERTIFICATE: /* Check if the received extension is sent by peer message.*/ @@ -1732,8 +1726,8 @@ int mbedtls_ssl_tls13_check_received_extension( return( 0 ); } - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "%s : unexpected extension received.", hs_msg_name ) ); + MBEDTLS_SSL_PRINT_EXT_TYPE( + 3, hs_msg_type, received_extension_type, "is unsupported" ); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT, MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); @@ -1741,3 +1735,4 @@ int mbedtls_ssl_tls13_check_received_extension( } #endif /* MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_PROTO_TLS1_3 */ + From 909e03c52f7e2132656ed83e5f985466f51f9b24 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 18 Oct 2022 18:14:33 +0200 Subject: [PATCH 0963/1028] Bignum core: fill_random: prototype Signed-off-by: Gilles Peskine --- library/bignum_core.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/library/bignum_core.h b/library/bignum_core.h index ccccebbffa..624eaf49a3 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -470,4 +470,28 @@ void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, size_t count, size_t index ); +/** + * \brief Fill an integer with a number of random bytes. + * + * \param X The destination MPI. + * \param X_limbs The number of limbs of \p X. + * \param bytes The number of random bytes to generate. + * \param f_rng The RNG function to use. This must not be \c NULL. + * \param p_rng The RNG parameter to be passed to \p f_rng. This may be + * \c NULL if \p f_rng doesn't need a context argument. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X does not have + * enough room for \p bytes bytes. + * \return A negative error code on RNG failure. + * + * \note The bytes obtained from the RNG are interpreted + * as a big-endian representation of an MPI; this can + * be relevant in applications like deterministic ECDSA. + */ +int mbedtls_mpi_core_fill_random( mbedtls_mpi_uint *X, size_t X_limbs, + size_t bytes, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ); + #endif /* MBEDTLS_BIGNUM_CORE_H */ From 5980f2bd36b6e5508550085dd05d59069e4047ab Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 9 Sep 2022 20:55:53 +0200 Subject: [PATCH 0964/1028] Implement mbedtls_mpi_core_fill_random Turn mpi_fill_random_internal() into mbedtls_mpi_core_fill_random(). It had basically the right code except for how X is passed to the function. Write unit tests. Signed-off-by: Gilles Peskine --- library/bignum.c | 23 ++++--- tests/suites/test_suite_bignum_core.function | 53 +++++++++++++++ tests/suites/test_suite_bignum_core.misc.data | 66 +++++++++++++++++++ 3 files changed, 132 insertions(+), 10 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index d33f07cc46..b5431a0fec 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1934,25 +1934,26 @@ cleanup: /* Fill X with n_bytes random bytes. * X must already have room for those bytes. * The ordering of the bytes returned from the RNG is suitable for - * deterministic ECDSA (see RFC 6979 §3.3 and mbedtls_mpi_random()). + * deterministic ECDSA (see RFC 6979 §3.3 and mbedtls_mpi_core_random()). * The size and sign of X are unchanged. * n_bytes must not be 0. */ -static int mpi_fill_random_internal( - mbedtls_mpi *X, size_t n_bytes, +int mbedtls_mpi_core_fill_random( + mbedtls_mpi_uint *X, size_t X_limbs, + size_t n_bytes, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const size_t limbs = CHARS_TO_LIMBS( n_bytes ); const size_t overhead = ( limbs * ciL ) - n_bytes; - if( X->n < limbs ) + if( X_limbs < limbs ) return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - memset( X->p, 0, overhead ); - memset( (unsigned char *) X->p + limbs * ciL, 0, ( X->n - limbs ) * ciL ); - MBEDTLS_MPI_CHK( f_rng( p_rng, (unsigned char *) X->p + overhead, n_bytes ) ); - mbedtls_mpi_core_bigendian_to_host( X->p, limbs ); + memset( X, 0, overhead ); + memset( (unsigned char *) X + limbs * ciL, 0, ( X_limbs - limbs ) * ciL ); + MBEDTLS_MPI_CHK( f_rng( p_rng, (unsigned char *) X + overhead, n_bytes ) ); + mbedtls_mpi_core_bigendian_to_host( X, limbs ); cleanup: return( ret ); @@ -1980,7 +1981,7 @@ int mbedtls_mpi_fill_random( mbedtls_mpi *X, size_t size, if( size == 0 ) return( 0 ); - ret = mpi_fill_random_internal( X, size, f_rng, p_rng ); + ret = mbedtls_mpi_core_fill_random( X->p, X->n, size, f_rng, p_rng ); cleanup: return( ret ); @@ -2042,7 +2043,9 @@ int mbedtls_mpi_random( mbedtls_mpi *X, */ do { - MBEDTLS_MPI_CHK( mpi_fill_random_internal( X, n_bytes, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_core_fill_random( X->p, X->n, + n_bytes, + f_rng, p_rng ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( X, 8 * n_bytes - n_bits ) ); if( --count == 0 ) diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index d5d58d870b..745a8af46c 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -992,3 +992,56 @@ exit: mbedtls_free(dest); } /* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_fill_random( int wanted_bytes_arg, int extra_rng_bytes, + int extra_limbs, int before, int expected_ret ) +{ + size_t wanted_bytes = wanted_bytes_arg; + mbedtls_mpi_uint *X = NULL; + size_t X_limbs = CHARS_TO_LIMBS( wanted_bytes ) + extra_limbs; + size_t rng_bytes = wanted_bytes + extra_rng_bytes; + unsigned char *rnd_data = NULL; + mbedtls_test_rnd_buf_info rnd_info = {NULL, rng_bytes, NULL, NULL}; + int ret; + + /* Prepare an RNG with known output, limited to rng_bytes. */ + ASSERT_ALLOC( rnd_data, rng_bytes ); + TEST_EQUAL( 0, mbedtls_test_rnd_std_rand( NULL, rnd_data, rng_bytes ) ); + rnd_info.buf = rnd_data; + + /* Allocate an MPI with room for wanted_bytes plus extra_limbs. + * extra_limbs may be negative but the total limb count must be positive. + * Fill the MPI with the byte value in before. */ + TEST_LE_U( 1, X_limbs ); + ASSERT_ALLOC( X, X_limbs ); + memset( X, before, X_limbs * sizeof( *X ) ); + + ret = mbedtls_mpi_core_fill_random( X, X_limbs, wanted_bytes, + mbedtls_test_rnd_buffer_rand, + &rnd_info ); + TEST_EQUAL( expected_ret, ret ); + + if( expected_ret == 0 ) + { + /* mbedtls_mpi_core_fill_random is documented to use bytes from the + * RNG as a big-endian representation of the number. We used an RNG + * with known output, so check that the output contains the + * expected value. Bytes above wanted_bytes must be zero. */ + for( size_t i = 0; i < wanted_bytes; i++ ) + { + mbedtls_test_set_step( i ); + TEST_EQUAL( GET_BYTE( X, i ), rnd_data[wanted_bytes - 1 - i] ); + } + for( size_t i = wanted_bytes; i < X_limbs * ciL; i++ ) + { + mbedtls_test_set_step( i ); + TEST_EQUAL( GET_BYTE( X, i ), 0 ); + } + } + +exit: + mbedtls_free( rnd_data ); + mbedtls_free( X ); +} +/* END_CASE */ diff --git a/tests/suites/test_suite_bignum_core.misc.data b/tests/suites/test_suite_bignum_core.misc.data index a8fe9ab9d1..743bb3efe1 100644 --- a/tests/suites/test_suite_bignum_core.misc.data +++ b/tests/suites/test_suite_bignum_core.misc.data @@ -364,3 +364,69 @@ mpi_core_get_mont_r2_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"5 mbedtls_mpi_core_get_mont_r2_unsafe #11 mpi_core_get_mont_r2_unsafe:"d1cece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e" + +Fill random core: 0 bytes +mpi_core_fill_random:0:0:1:0:0 + +Fill random core: 1 byte, RNG stops at 0 +mpi_core_fill_random:1:-1:0:0:MBEDTLS_ERR_ENTROPY_SOURCE_FAILED + +Fill random core: 1 byte, RNG just sufficient +mpi_core_fill_random:1:0:0:0:0 + +Fill random core: 1 byte, RNG not exhausted +mpi_core_fill_random:1:1:0:0:0 + +Fill random core: 1 byte, prior content nonzero +mpi_core_fill_random:1:0:0:0xba:0 + +Fill random core: 1 byte, 1 extra limb +mpi_core_fill_random:1:0:1:0:0 + +Fill random core: 1 byte, 1 extra limb, prior content nonzero +mpi_core_fill_random:1:0:1:0xba:0 + +Fill random core: 8 bytes, RNG stops before +mpi_core_fill_random:8:-1:0:0:MBEDTLS_ERR_ENTROPY_SOURCE_FAILED + +Fill random core: 8 bytes, RNG just sufficient +mpi_core_fill_random:8:0:0:0:0 + +Fill random core: 8 bytes, RNG not exhausted +mpi_core_fill_random:8:1:0:0:0 + +Fill random core: 8 bytes, prior content nonzero +mpi_core_fill_random:8:0:0:0xba:0 + +Fill random core: 8 bytes, 1 extra limb +mpi_core_fill_random:8:0:1:0:0 + +Fill random core: 8 bytes, 1 extra limb, prior content nonzero +mpi_core_fill_random:8:0:1:0xba:0 + +Fill random core: 9 bytes, 1 missing limb +mpi_core_fill_random:9:0:-1:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +Fill random core: 42 bytes, RNG stops before +mpi_core_fill_random:42:-1:0:0:MBEDTLS_ERR_ENTROPY_SOURCE_FAILED + +Fill random core: 42 bytes, RNG just sufficient +mpi_core_fill_random:42:0:0:0:0 + +Fill random core: 42 bytes, RNG not exhausted +mpi_core_fill_random:42:1:0:0:0 + +Fill random core: 42 bytes, prior content nonzero +mpi_core_fill_random:42:0:0:0xba:0 + +Fill random core: 42 bytes, 1 extra limb +mpi_core_fill_random:42:0:1:0:0 + +Fill random core: 42 bytes, 1 extra limb, prior content nonzero +mpi_core_fill_random:42:0:1:0xba:0 + +Fill random core: 42 bytes, 1 missing limb +mpi_core_fill_random:42:0:-1:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +Fill random core: 42 bytes, 5 missing limbs +mpi_core_fill_random:42:0:-5:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA From 009d195a56522868cc7a887783f5db04706fd2ac Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 9 Sep 2022 21:00:00 +0200 Subject: [PATCH 0965/1028] Move mbedtls_mpi_core_fill_random to the proper .c file Signed-off-by: Gilles Peskine --- library/bignum.c | 28 ---------------------------- library/bignum_core.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index b5431a0fec..76202fe514 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1931,34 +1931,6 @@ cleanup: return( ret ); } -/* Fill X with n_bytes random bytes. - * X must already have room for those bytes. - * The ordering of the bytes returned from the RNG is suitable for - * deterministic ECDSA (see RFC 6979 §3.3 and mbedtls_mpi_core_random()). - * The size and sign of X are unchanged. - * n_bytes must not be 0. - */ -int mbedtls_mpi_core_fill_random( - mbedtls_mpi_uint *X, size_t X_limbs, - size_t n_bytes, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) -{ - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - const size_t limbs = CHARS_TO_LIMBS( n_bytes ); - const size_t overhead = ( limbs * ciL ) - n_bytes; - - if( X_limbs < limbs ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - - memset( X, 0, overhead ); - memset( (unsigned char *) X + limbs * ciL, 0, ( X_limbs - limbs ) * ciL ); - MBEDTLS_MPI_CHK( f_rng( p_rng, (unsigned char *) X + overhead, n_bytes ) ); - mbedtls_mpi_core_bigendian_to_host( X, limbs ); - -cleanup: - return( ret ); -} - /* * Fill X with size bytes of random. * diff --git a/library/bignum_core.c b/library/bignum_core.c index b3bb3bcb88..e405995969 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -553,4 +553,33 @@ void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, } } + +/* Fill X with n_bytes random bytes. + * X must already have room for those bytes. + * The ordering of the bytes returned from the RNG is suitable for + * deterministic ECDSA (see RFC 6979 §3.3 and mbedtls_mpi_core_random()). + * The size and sign of X are unchanged. + * n_bytes must not be 0. + */ +int mbedtls_mpi_core_fill_random( + mbedtls_mpi_uint *X, size_t X_limbs, + size_t n_bytes, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + const size_t limbs = CHARS_TO_LIMBS( n_bytes ); + const size_t overhead = ( limbs * ciL ) - n_bytes; + + if( X_limbs < limbs ) + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + + memset( X, 0, overhead ); + memset( (unsigned char *) X + limbs * ciL, 0, ( X_limbs - limbs ) * ciL ); + MBEDTLS_MPI_CHK( f_rng( p_rng, (unsigned char *) X + overhead, n_bytes ) ); + mbedtls_mpi_core_bigendian_to_host( X, limbs ); + +cleanup: + return( ret ); +} + #endif /* MBEDTLS_BIGNUM_C */ From dd54324765bceba86a983a2ad4f8ba87d023e959 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Sep 2022 23:07:23 +0200 Subject: [PATCH 0966/1028] Increase iterations for some statistical tests I ran into a sequence where the assertion `stats[8] > 0` failed for the range 1..272 with 100 iterations. Signed-off-by: Gilles Peskine --- tests/suites/test_suite_bignum.misc.data | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index 78afcb64c5..29ba4ab46d 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1766,16 +1766,16 @@ MPI random in range: 1..12 mpi_random_many:1:"0c":1000 MPI random in range: 1..255 -mpi_random_many:1:"ff":100 +mpi_random_many:1:"ff":200 MPI random in range: 1..256 -mpi_random_many:1:"0100":100 +mpi_random_many:1:"0100":200 MPI random in range: 1..257 -mpi_random_many:1:"0101":100 +mpi_random_many:1:"0101":200 MPI random in range: 1..272 -mpi_random_many:1:"0110":100 +mpi_random_many:1:"0110":200 MPI random in range: 1..2^64-1 mpi_random_many:1:"ffffffffffffffff":100 From 22cdd0ccd3af1f4721181ebcc949bf2f25db0ccd Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 27 Oct 2022 20:15:13 +0200 Subject: [PATCH 0967/1028] Update some internal comments The refactoring of fill_random had left some obsolete bits in comments. Signed-off-by: Gilles Peskine --- library/bignum.c | 7 +++---- library/bignum_core.c | 5 ++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 76202fe514..521787d749 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1933,10 +1933,9 @@ cleanup: /* * Fill X with size bytes of random. - * - * Use a temporary bytes representation to make sure the result is the same - * regardless of the platform endianness (useful when f_rng is actually - * deterministic, eg for tests). + * The bytes returned from the RNG are used in a specific order which + * is suitable for deterministic ECDSA (see the specification of + * mbedtls_mpi_random() and the implementation in mbedtls_mpi_fill_random()). */ int mbedtls_mpi_fill_random( mbedtls_mpi *X, size_t size, int (*f_rng)(void *, unsigned char *, size_t), diff --git a/library/bignum_core.c b/library/bignum_core.c index e405995969..b990a8dcce 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -557,9 +557,8 @@ void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, /* Fill X with n_bytes random bytes. * X must already have room for those bytes. * The ordering of the bytes returned from the RNG is suitable for - * deterministic ECDSA (see RFC 6979 §3.3 and mbedtls_mpi_core_random()). - * The size and sign of X are unchanged. - * n_bytes must not be 0. + * deterministic ECDSA (see RFC 6979 §3.3 and the specification of + * mbedtls_mpi_core_random()). */ int mbedtls_mpi_core_fill_random( mbedtls_mpi_uint *X, size_t X_limbs, From 9bd28dc1e199d79257321aee4639bea6b201f1db Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Wed, 2 Nov 2022 16:36:14 +0100 Subject: [PATCH 0968/1028] Update changed log Signed-off-by: Asfandyar Orakzai --- ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ChangeLog b/ChangeLog index 6dfb23fa6a..29428a9001 100644 --- a/ChangeLog +++ b/ChangeLog @@ -122,6 +122,11 @@ Features and hmac_demo.c, which use PSA and the md/cipher interfaces side by side in order to illustrate how the operation is performed in PSA. Addresses #5208. + * Brought in PSA code gen driver list JSON, + auto generated templating support for key management, + transparent and opaque keys ( import/export/copy ), iincluded some + general JSON validation, and more specifically for the given entry points. + Addresses ver 1.1 of #5137 Security * Zeroize dynamically-allocated buffers used by the PSA Crypto key storage From 2a8bcf8c6fe64099bdd274b0b2aa2c7af2f81fc4 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 10:47:30 +0000 Subject: [PATCH 0969/1028] Add bignum merge scaffolding Signed-off-by: Janos Follath --- library/bignum_core.c | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index b990a8dcce..34aecda501 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -553,7 +553,6 @@ void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, } } - /* Fill X with n_bytes random bytes. * X must already have room for those bytes. * The ordering of the bytes returned from the RNG is suitable for @@ -581,4 +580,44 @@ cleanup: return( ret ); } +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ + #endif /* MBEDTLS_BIGNUM_C */ From 5933f691a24125b95e9d1d086694e87953490a09 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 14:35:17 +0000 Subject: [PATCH 0970/1028] Add merge slots to Bignum files Legacy Bignum is excluded as it doesn't get regular extensions like new ones. Each slot uses comments of their respective filetype. Since .data files don't have a syntax for comments, dummy test cases are used. (These test cases will never be executed and no noise will be added to tests.) Signed-off-by: Janos Follath --- library/bignum_core.h | 40 ++++++++++ library/bignum_mod.c | 40 ++++++++++ library/bignum_mod.h | 40 ++++++++++ library/bignum_mod_raw.c | 40 ++++++++++ library/bignum_mod_raw.h | 40 ++++++++++ scripts/mbedtls_dev/bignum_core.py | 41 ++++++++++ tests/suites/test_suite_bignum_core.function | 40 ++++++++++ tests/suites/test_suite_bignum_core.misc.data | 80 +++++++++++++++++++ tests/suites/test_suite_bignum_mod.data | 80 +++++++++++++++++++ tests/suites/test_suite_bignum_mod.function | 40 ++++++++++ tests/suites/test_suite_bignum_mod_raw.data | 80 +++++++++++++++++++ .../suites/test_suite_bignum_mod_raw.function | 40 ++++++++++ 12 files changed, 601 insertions(+) diff --git a/library/bignum_core.h b/library/bignum_core.h index 624eaf49a3..ad04e08283 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -494,4 +494,44 @@ int mbedtls_mpi_core_fill_random( mbedtls_mpi_uint *X, size_t X_limbs, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ); +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ + #endif /* MBEDTLS_BIGNUM_CORE_H */ diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 60c073ac4e..13108c51f1 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -184,4 +184,44 @@ exit: return( ret ); } +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ + #endif /* MBEDTLS_BIGNUM_C */ diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 3b3338c2de..29c26f2ef9 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -148,4 +148,44 @@ int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, */ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ); +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ + #endif /* MBEDTLS_BIGNUM_MOD_H */ diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 4b8a69800a..a329e86dfb 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -102,4 +102,44 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, } } +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ + #endif /* MBEDTLS_BIGNUM_C */ diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 6f8f1559c0..30648d3cc4 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -138,4 +138,44 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, unsigned char *output, size_t output_length ); +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ + #endif /* MBEDTLS_BIGNUM_MOD_RAW_H */ diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 9929e13fa3..87098075fd 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -815,3 +815,44 @@ def mpi_modmul_case_generate() -> None: ) i += 1 print(generated_inputs) + +# BEGIN MERGE SLOT 1 + +# END MERGE SLOT 1 + +# BEGIN MERGE SLOT 2 + +# END MERGE SLOT 2 + +# BEGIN MERGE SLOT 3 + +# END MERGE SLOT 3 + +# BEGIN MERGE SLOT 4 + +# END MERGE SLOT 4 + +# BEGIN MERGE SLOT 5 + +# END MERGE SLOT 5 + +# BEGIN MERGE SLOT 6 + +# END MERGE SLOT 6 + +# BEGIN MERGE SLOT 7 + +# END MERGE SLOT 7 + +# BEGIN MERGE SLOT 8 + +# END MERGE SLOT 8 + +# BEGIN MERGE SLOT 9 + +# END MERGE SLOT 9 + +# BEGIN MERGE SLOT 10 + +# END MERGE SLOT 10 + diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 745a8af46c..f50fd07e41 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -1045,3 +1045,43 @@ exit: mbedtls_free( X ); } /* END_CASE */ + +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ diff --git a/tests/suites/test_suite_bignum_core.misc.data b/tests/suites/test_suite_bignum_core.misc.data index 743bb3efe1..28de243928 100644 --- a/tests/suites/test_suite_bignum_core.misc.data +++ b/tests/suites/test_suite_bignum_core.misc.data @@ -430,3 +430,83 @@ mpi_core_fill_random:42:0:-1:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA Fill random core: 42 bytes, 5 missing limbs mpi_core_fill_random:42:0:-5:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +BEGIN MERGE SLOT 1 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 1 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 2 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 2 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 3 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 3 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 4 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 4 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 5 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 5 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 6 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 6 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 7 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 7 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 8 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 8 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 9 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 9 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 10 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 10 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index cb781403d6..c80bfa3380 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -24,3 +24,83 @@ mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 Test mbedtls_mpi_mod_setup #9 (Both representations valid) mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 1 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 1 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 2 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 2 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 3 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 3 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 4 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 4 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 5 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 5 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 6 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 6 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 7 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 7 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 8 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 8 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 9 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 9 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 10 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 10 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index ad89bdf3e7..1a2d0c135b 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -54,3 +54,43 @@ exit: #undef MLIMBS } /* END_CASE */ + +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ diff --git a/tests/suites/test_suite_bignum_mod_raw.data b/tests/suites/test_suite_bignum_mod_raw.data index 788165d1a6..c47d473966 100644 --- a/tests/suites/test_suite_bignum_mod_raw.data +++ b/tests/suites/test_suite_bignum_mod_raw.data @@ -178,3 +178,83 @@ mpi_mod_raw_cond_swap:"000000001111111122222222333333334444444455555555666666667 mbedtls_mpi_mod_raw_cond_swap: copy half of the limbs mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 + +BEGIN MERGE SLOT 1 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 1 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 2 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 2 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 3 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 3 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 4 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 4 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 5 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 5 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 6 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 6 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 7 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 7 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 8 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 8 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 9 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 9 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 10 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 10 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 7c9d5dbe4e..a6361d7e07 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -279,4 +279,44 @@ exit: mbedtls_mpi_mod_modulus_free( &m ); mbedtls_free( buff_m ); } + +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ /* END_CASE */ From df8239b846b2f61b59751071c402f5d6b626abb1 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 14:40:58 +0000 Subject: [PATCH 0971/1028] Add script for generating mod_raw test cases This commit only adds the boilerplate, no actual tests are added. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_mod_raw.py | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 scripts/mbedtls_dev/bignum_mod_raw.py diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py new file mode 100644 index 0000000000..767073171a --- /dev/null +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -0,0 +1,29 @@ +"""Framework classes for generation of bignum mod_raw test cases.""" +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random + +from abc import ABCMeta +from typing import Dict, Iterator, List, Tuple + +from . import test_data_generation +from . import bignum_common + +class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): + #pylint: disable=abstract-method + """Target for bignum mod_raw test case generation.""" + target_basename = 'test_suite_bignum_mod_raw.generated' + From b99b056f0af8c07db063987a75b96ee65bd0975f Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 14:44:08 +0000 Subject: [PATCH 0972/1028] Add script for generating mod test cases This commit only adds the boilerplate, no actual tests are added. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_mod.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 scripts/mbedtls_dev/bignum_mod.py diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py new file mode 100644 index 0000000000..3bed853c66 --- /dev/null +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -0,0 +1,29 @@ +"""Framework classes for generation of bignum mod test cases.""" +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random + +from abc import ABCMeta +from typing import Dict, Iterator, List, Tuple + +from . import test_data_generation +from . import bignum_common + +class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): + #pylint: disable=abstract-method + """Target for bignum mod test case generation.""" + target_basename = 'test_suite_bignum_mod.generated' + From 1be322a79569e8d7c56c24f7880919f7dc37d93e Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 14:46:23 +0000 Subject: [PATCH 0973/1028] Add merge slots to raw and mod_raw test generation Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_mod.py | 40 +++++++++++++++++++++++++++ scripts/mbedtls_dev/bignum_mod_raw.py | 40 +++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index 3bed853c66..f4f05912f0 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -27,3 +27,43 @@ class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): """Target for bignum mod test case generation.""" target_basename = 'test_suite_bignum_mod.generated' +# BEGIN MERGE SLOT 1 + +# END MERGE SLOT 1 + +# BEGIN MERGE SLOT 2 + +# END MERGE SLOT 2 + +# BEGIN MERGE SLOT 3 + +# END MERGE SLOT 3 + +# BEGIN MERGE SLOT 4 + +# END MERGE SLOT 4 + +# BEGIN MERGE SLOT 5 + +# END MERGE SLOT 5 + +# BEGIN MERGE SLOT 6 + +# END MERGE SLOT 6 + +# BEGIN MERGE SLOT 7 + +# END MERGE SLOT 7 + +# BEGIN MERGE SLOT 8 + +# END MERGE SLOT 8 + +# BEGIN MERGE SLOT 9 + +# END MERGE SLOT 9 + +# BEGIN MERGE SLOT 10 + +# END MERGE SLOT 10 + diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 767073171a..d5d48fe326 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -27,3 +27,43 @@ class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): """Target for bignum mod_raw test case generation.""" target_basename = 'test_suite_bignum_mod_raw.generated' +# BEGIN MERGE SLOT 1 + +# END MERGE SLOT 1 + +# BEGIN MERGE SLOT 2 + +# END MERGE SLOT 2 + +# BEGIN MERGE SLOT 3 + +# END MERGE SLOT 3 + +# BEGIN MERGE SLOT 4 + +# END MERGE SLOT 4 + +# BEGIN MERGE SLOT 5 + +# END MERGE SLOT 5 + +# BEGIN MERGE SLOT 6 + +# END MERGE SLOT 6 + +# BEGIN MERGE SLOT 7 + +# END MERGE SLOT 7 + +# BEGIN MERGE SLOT 8 + +# END MERGE SLOT 8 + +# BEGIN MERGE SLOT 9 + +# END MERGE SLOT 9 + +# BEGIN MERGE SLOT 10 + +# END MERGE SLOT 10 + From be136522961081c83b9e129c80e81dbee25e9690 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 15:12:04 +0000 Subject: [PATCH 0974/1028] Use comments for merge separators in .data files We do have a comment syntax for .data files, there is no need for dummy test cases. Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_core.misc.data | 80 +++++------------- tests/suites/test_suite_bignum_mod.data | 81 +++++-------------- tests/suites/test_suite_bignum_mod_raw.data | 81 +++++-------------- 3 files changed, 62 insertions(+), 180 deletions(-) diff --git a/tests/suites/test_suite_bignum_core.misc.data b/tests/suites/test_suite_bignum_core.misc.data index 28de243928..30c767c742 100644 --- a/tests/suites/test_suite_bignum_core.misc.data +++ b/tests/suites/test_suite_bignum_core.misc.data @@ -431,82 +431,42 @@ mpi_core_fill_random:42:0:-1:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA Fill random core: 42 bytes, 5 missing limbs mpi_core_fill_random:42:0:-5:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA -BEGIN MERGE SLOT 1 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 1 -END MERGE SLOT 1 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 1 -BEGIN MERGE SLOT 2 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 2 -END MERGE SLOT 2 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 2 -BEGIN MERGE SLOT 3 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 3 -END MERGE SLOT 3 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 3 -BEGIN MERGE SLOT 4 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 4 -END MERGE SLOT 4 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 4 -BEGIN MERGE SLOT 5 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 5 -END MERGE SLOT 5 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 5 -BEGIN MERGE SLOT 6 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 6 -END MERGE SLOT 6 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 6 -BEGIN MERGE SLOT 7 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 7 -END MERGE SLOT 7 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 7 -BEGIN MERGE SLOT 8 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 8 -END MERGE SLOT 8 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 8 -BEGIN MERGE SLOT 9 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 9 -END MERGE SLOT 9 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 9 -BEGIN MERGE SLOT 10 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 10 -END MERGE SLOT 10 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 10 diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index c80bfa3380..d06541fd63 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -25,82 +25,43 @@ mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 Test mbedtls_mpi_mod_setup #9 (Both representations valid) mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 -BEGIN MERGE SLOT 1 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 1 -END MERGE SLOT 1 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 1 -BEGIN MERGE SLOT 2 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 2 -END MERGE SLOT 2 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 2 -BEGIN MERGE SLOT 3 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 3 -END MERGE SLOT 3 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 3 -BEGIN MERGE SLOT 4 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 4 -END MERGE SLOT 4 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 4 -BEGIN MERGE SLOT 5 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 5 -END MERGE SLOT 5 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 5 -BEGIN MERGE SLOT 6 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 6 -END MERGE SLOT 6 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 6 -BEGIN MERGE SLOT 7 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 7 -END MERGE SLOT 7 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 7 -BEGIN MERGE SLOT 8 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 8 -END MERGE SLOT 8 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 8 -BEGIN MERGE SLOT 9 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 9 -END MERGE SLOT 9 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 9 -BEGIN MERGE SLOT 10 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 10 + +# END MERGE SLOT 10 -END MERGE SLOT 10 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 diff --git a/tests/suites/test_suite_bignum_mod_raw.data b/tests/suites/test_suite_bignum_mod_raw.data index c47d473966..6644b1e222 100644 --- a/tests/suites/test_suite_bignum_mod_raw.data +++ b/tests/suites/test_suite_bignum_mod_raw.data @@ -179,82 +179,43 @@ mpi_mod_raw_cond_swap:"000000001111111122222222333333334444444455555555666666667 mbedtls_mpi_mod_raw_cond_swap: copy half of the limbs mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 -BEGIN MERGE SLOT 1 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 1 -END MERGE SLOT 1 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 1 -BEGIN MERGE SLOT 2 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 2 -END MERGE SLOT 2 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 2 -BEGIN MERGE SLOT 3 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 3 -END MERGE SLOT 3 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 3 -BEGIN MERGE SLOT 4 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 4 -END MERGE SLOT 4 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 4 -BEGIN MERGE SLOT 5 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 5 -END MERGE SLOT 5 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 5 -BEGIN MERGE SLOT 6 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 6 -END MERGE SLOT 6 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 6 -BEGIN MERGE SLOT 7 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 7 -END MERGE SLOT 7 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 7 -BEGIN MERGE SLOT 8 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 8 -END MERGE SLOT 8 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 8 -BEGIN MERGE SLOT 9 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 9 -END MERGE SLOT 9 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 9 -BEGIN MERGE SLOT 10 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 10 + +# END MERGE SLOT 10 -END MERGE SLOT 10 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 From 6642cafae39ee01e2767c0b13e74d4ffa057a4bd Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 16:14:08 +0000 Subject: [PATCH 0975/1028] Fix merge separator position Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_mod_raw.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index a6361d7e07..8ac1ef4977 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -279,6 +279,7 @@ exit: mbedtls_mpi_mod_modulus_free( &m ); mbedtls_free( buff_m ); } +/* END_CASE */ /* BEGIN MERGE SLOT 1 */ @@ -319,4 +320,3 @@ exit: /* BEGIN MERGE SLOT 10 */ /* END MERGE SLOT 10 */ -/* END_CASE */ From 9cf14cd6b0efe947aee100749406a3f46788775f Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 16:15:25 +0000 Subject: [PATCH 0976/1028] Make pylint happy Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 1 - scripts/mbedtls_dev/bignum_mod.py | 5 ----- scripts/mbedtls_dev/bignum_mod_raw.py | 5 ----- 3 files changed, 11 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 87098075fd..0cc86b8096 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -855,4 +855,3 @@ def mpi_modmul_case_generate() -> None: # BEGIN MERGE SLOT 10 # END MERGE SLOT 10 - diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index f4f05912f0..117e1ee7b3 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -14,13 +14,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -import random - from abc import ABCMeta -from typing import Dict, Iterator, List, Tuple from . import test_data_generation -from . import bignum_common class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method @@ -66,4 +62,3 @@ class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): # BEGIN MERGE SLOT 10 # END MERGE SLOT 10 - diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index d5d48fe326..2a4886ca97 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -14,13 +14,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -import random - from abc import ABCMeta -from typing import Dict, Iterator, List, Tuple from . import test_data_generation -from . import bignum_common class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method @@ -66,4 +62,3 @@ class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): # BEGIN MERGE SLOT 10 # END MERGE SLOT 10 - From c1a81bc998f22c57bc25318c66d1f931f06e5c5d Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 17:33:11 +0000 Subject: [PATCH 0977/1028] Remove trailing new lines Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_mod.data | 1 - tests/suites/test_suite_bignum_mod_raw.data | 1 - 2 files changed, 2 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index d06541fd63..95faa53b80 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -64,4 +64,3 @@ mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 # BEGIN MERGE SLOT 10 # END MERGE SLOT 10 - diff --git a/tests/suites/test_suite_bignum_mod_raw.data b/tests/suites/test_suite_bignum_mod_raw.data index 6644b1e222..8cbd918f88 100644 --- a/tests/suites/test_suite_bignum_mod_raw.data +++ b/tests/suites/test_suite_bignum_mod_raw.data @@ -218,4 +218,3 @@ mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA # BEGIN MERGE SLOT 10 # END MERGE SLOT 10 - From ee2b637d03c8835dda0eb29ea0782114f80f75cd Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Wed, 2 Nov 2022 21:50:27 +0100 Subject: [PATCH 0978/1028] Fixed change log issue Signed-off-by: Asfandyar Orakzai --- ChangeLog | 7 +------ ChangeLog.d/psa_crypto_code_gen_1_1.txt | 6 ++++++ 2 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 ChangeLog.d/psa_crypto_code_gen_1_1.txt diff --git a/ChangeLog b/ChangeLog index 29428a9001..aedcb16bc0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -122,12 +122,7 @@ Features and hmac_demo.c, which use PSA and the md/cipher interfaces side by side in order to illustrate how the operation is performed in PSA. Addresses #5208. - * Brought in PSA code gen driver list JSON, - auto generated templating support for key management, - transparent and opaque keys ( import/export/copy ), iincluded some - general JSON validation, and more specifically for the given entry points. - Addresses ver 1.1 of #5137 - + Security * Zeroize dynamically-allocated buffers used by the PSA Crypto key storage module before freeing them. These buffers contain secret key material, and diff --git a/ChangeLog.d/psa_crypto_code_gen_1_1.txt b/ChangeLog.d/psa_crypto_code_gen_1_1.txt new file mode 100644 index 0000000000..549d68ddaf --- /dev/null +++ b/ChangeLog.d/psa_crypto_code_gen_1_1.txt @@ -0,0 +1,6 @@ +Features + * Brought in PSA code geneneration JSON driver list. + Added auto generated templating support for key management. + Added Support for transparent and opaque keys (import/export/copy). + Included some general JSON validation, and more specifically for the given entry points. + Addresses version 1.1 of #5137 \ No newline at end of file From d820ca5d07835e490a5dcb99402be8929dff001d Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 3 Nov 2022 08:42:54 +0000 Subject: [PATCH 0979/1028] Fix bignum test generator class names Co-authored-by: minosgalanakis <30719586+minosgalanakis@users.noreply.github.com> Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_mod.py | 2 +- scripts/mbedtls_dev/bignum_mod_raw.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index 117e1ee7b3..2bd7fbbda3 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -18,7 +18,7 @@ from abc import ABCMeta from . import test_data_generation -class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): +class BignumModTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method """Target for bignum mod test case generation.""" target_basename = 'test_suite_bignum_mod.generated' diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 2a4886ca97..2e059b26e8 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -18,7 +18,7 @@ from abc import ABCMeta from . import test_data_generation -class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): +class BignumModRawTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method """Target for bignum mod_raw test case generation.""" target_basename = 'test_suite_bignum_mod_raw.generated' From 4f63ac43582826d76111830f1bd548ff2a5f9daa Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Thu, 3 Nov 2022 10:18:05 +0100 Subject: [PATCH 0980/1028] fixed changelog formating Signed-off-by: Asfandyar Orakzai --- ChangeLog.d/psa_crypto_code_gen_1_1.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog.d/psa_crypto_code_gen_1_1.txt b/ChangeLog.d/psa_crypto_code_gen_1_1.txt index 549d68ddaf..94c9ac184e 100644 --- a/ChangeLog.d/psa_crypto_code_gen_1_1.txt +++ b/ChangeLog.d/psa_crypto_code_gen_1_1.txt @@ -2,5 +2,5 @@ Features * Brought in PSA code geneneration JSON driver list. Added auto generated templating support for key management. Added Support for transparent and opaque keys (import/export/copy). - Included some general JSON validation, and more specifically for the given entry points. - Addresses version 1.1 of #5137 \ No newline at end of file + Included some general JSON validation, and more specifically for the + given entry points. Addresses version 1.1 of #5137 \ No newline at end of file From 65cd8a4a23652474f6ec0cf95f6114269bc0647c Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Thu, 3 Nov 2022 11:16:40 +0100 Subject: [PATCH 0981/1028] fixed formating issues in psa_crypto_code_gen_1_1.txt Signed-off-by: Asfandyar Orakzai --- ChangeLog.d/psa_crypto_code_gen_1_1.txt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ChangeLog.d/psa_crypto_code_gen_1_1.txt b/ChangeLog.d/psa_crypto_code_gen_1_1.txt index 94c9ac184e..087e4ee49b 100644 --- a/ChangeLog.d/psa_crypto_code_gen_1_1.txt +++ b/ChangeLog.d/psa_crypto_code_gen_1_1.txt @@ -1,6 +1,7 @@ Features - * Brought in PSA code geneneration JSON driver list. - Added auto generated templating support for key management. - Added Support for transparent and opaque keys (import/export/copy). - Included some general JSON validation, and more specifically for the - given entry points. Addresses version 1.1 of #5137 \ No newline at end of file + * Brought in PSA code geneneration JSON driver list. + Added auto generated templating support for key management. + Added Support for transparent and opaque keys (import/export/copy). + Included some general JSON validation for the given entry points. + Addresses version 1.1 of #5137. + From 9b656d3c80c41144019a85f54d68fc9a84d0d827 Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Thu, 3 Nov 2022 11:39:36 +0100 Subject: [PATCH 0982/1028] removed stray whitespaces from change logs Signed-off-by: Asfandyar Orakzai --- ChangeLog | 2 +- ChangeLog.d/psa_crypto_code_gen_1_1.txt | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index aedcb16bc0..6dfb23fa6a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -122,7 +122,7 @@ Features and hmac_demo.c, which use PSA and the md/cipher interfaces side by side in order to illustrate how the operation is performed in PSA. Addresses #5208. - + Security * Zeroize dynamically-allocated buffers used by the PSA Crypto key storage module before freeing them. These buffers contain secret key material, and diff --git a/ChangeLog.d/psa_crypto_code_gen_1_1.txt b/ChangeLog.d/psa_crypto_code_gen_1_1.txt index 087e4ee49b..2c18e6f31a 100644 --- a/ChangeLog.d/psa_crypto_code_gen_1_1.txt +++ b/ChangeLog.d/psa_crypto_code_gen_1_1.txt @@ -1,7 +1,6 @@ Features * Brought in PSA code geneneration JSON driver list. - Added auto generated templating support for key management. - Added Support for transparent and opaque keys (import/export/copy). + Added auto generated templating support for key management. + Added Support for transparent and opaque keys (import/export/copy). Included some general JSON validation for the given entry points. Addresses version 1.1 of #5137. - From f8b3b7291033aee81691575c562194005793cbe9 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 3 Nov 2022 14:46:18 +0000 Subject: [PATCH 0983/1028] Add merge slots to bignum_common.py Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index c81770ed7d..279668fd5f 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -124,3 +124,43 @@ class OperationCommon: for b in cls.input_values ) yield from cls.input_cases + +# BEGIN MERGE SLOT 1 + +# END MERGE SLOT 1 + +# BEGIN MERGE SLOT 2 + +# END MERGE SLOT 2 + +# BEGIN MERGE SLOT 3 + +# END MERGE SLOT 3 + +# BEGIN MERGE SLOT 4 + +# END MERGE SLOT 4 + +# BEGIN MERGE SLOT 5 + +# END MERGE SLOT 5 + +# BEGIN MERGE SLOT 6 + +# END MERGE SLOT 6 + +# BEGIN MERGE SLOT 7 + +# END MERGE SLOT 7 + +# BEGIN MERGE SLOT 8 + +# END MERGE SLOT 8 + +# BEGIN MERGE SLOT 9 + +# END MERGE SLOT 9 + +# BEGIN MERGE SLOT 10 + +# END MERGE SLOT 10 From b85838f2f4ce9289061fd0bf07c51bb596af2ca7 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 3 Nov 2022 17:49:29 +0000 Subject: [PATCH 0984/1028] Change test templating syntax to be valid C For the benefit of auto-formatting tools, move from the '$placeholder' templating syntax to a new syntax of the form: __MBEDTLS_TEST_TEMPLATE__PLACEHOLDER This change allows the test code template to be almost entirely valid C. Signed-off-by: David Horstmann --- tests/scripts/generate_test_code.py | 75 ++++++++++++++++++----------- tests/suites/main_test.function | 44 ++++++++--------- 2 files changed, 69 insertions(+), 50 deletions(-) diff --git a/tests/scripts/generate_test_code.py b/tests/scripts/generate_test_code.py index f5750aacfa..6d65986c88 100755 --- a/tests/scripts/generate_test_code.py +++ b/tests/scripts/generate_test_code.py @@ -126,33 +126,33 @@ code that is generated or read from helpers and platform files. This script replaces following fields in the template and generates the test source file: -$test_common_helpers <-- All common code from helpers.function - is substituted here. -$functions_code <-- Test functions are substituted here - from the input test_suit_xyz.function - file. C preprocessor checks are generated - for the build dependencies specified - in the input file. This script also - generates wrappers for the test - functions with code to expand the - string parameters read from the data - file. -$expression_code <-- This script enumerates the - expressions in the .data file and - generates code to handle enumerated - expression Ids and return the values. -$dep_check_code <-- This script enumerates all - build dependencies and generate - code to handle enumerated build - dependency Id and return status: if - the dependency is defined or not. -$dispatch_code <-- This script enumerates the functions - specified in the input test data file - and generates the initializer for the - function table in the template - file. -$platform_code <-- Platform specific setup and test - dispatch code. +__MBEDTLS_TEST_TEMPLATE__TEST_COMMON_HELPERS <-- All common code from helpers.function + is substituted here. +__MBEDTLS_TEST_TEMPLATE__FUNCTIONS_CODE <-- Test functions are substituted here + from the input test_suit_xyz.function + file. C preprocessor checks are generated + for the build dependencies specified + in the input file. This script also + generates wrappers for the test + functions with code to expand the + string parameters read from the data + file. +__MBEDTLS_TEST_TEMPLATE__EXPRESSION_CODE <-- This script enumerates the + expressions in the .data file and + generates code to handle enumerated + expression Ids and return the values. +__MBEDTLS_TEST_TEMPLATE__DEP_CHECK_CODE <-- This script enumerates all + build dependencies and generate + code to handle enumerated build + dependency Id and return status: if + the dependency is defined or not. +__MBEDTLS_TEST_TEMPLATE__DISPATCH_CODE <-- This script enumerates the functions + specified in the input test data file + and generates the initializer for the + function table in the template + file. +__MBEDTLS_TEST_TEMPLATE__PLATFORM_CODE <-- Platform specific setup and test + dispatch code. """ @@ -974,11 +974,30 @@ def write_test_source_file(template_file, c_file, snippets): :param snippets: Generated and code snippets :return: """ + + # Create a placeholder pattern with the correct named capture groups + # to override the default provided with Template. + # Match nothing (no way of escaping placeholders). + escaped = "(?P(?!))" + # Match the "__MBEDTLS_TEST_TEMPLATE__PLACEHOLDER_NAME" pattern. + named = "__MBEDTLS_TEST_TEMPLATE__(?P[A-Z][_A-Z0-9]*)" + # Match nothing (no braced placeholder syntax). + braced = "(?P(?!))" + # If not already matched, a "__MBEDTLS_TEST_TEMPLATE__" prefix is invalid. + invalid = "(?P__MBEDTLS_TEST_TEMPLATE__)" + placeholder_pattern = re.compile(escaped \ + + "|" + named \ + + "|" + braced \ + + "|" + invalid) + with open(template_file, 'r') as template_f, open(c_file, 'w') as c_f: for line_no, line in enumerate(template_f.readlines(), 1): # Update line number. +1 as #line directive sets next line number snippets['line_no'] = line_no + 1 - code = string.Template(line).substitute(**snippets) + template = string.Template(line) + template.pattern = placeholder_pattern + snippets = {k.upper():v for (k, v) in snippets.items()} + code = template.substitute(**snippets) c_f.write(code) diff --git a/tests/suites/main_test.function b/tests/suites/main_test.function index e016865348..48003d4f27 100644 --- a/tests/suites/main_test.function +++ b/tests/suites/main_test.function @@ -3,17 +3,17 @@ * *** THIS FILE HAS BEEN MACHINE GENERATED *** * * This file has been machine generated using the script: - * $generator_script + * __MBEDTLS_TEST_TEMPLATE__GENERATOR_SCRIPT * - * Test file : $test_file + * Test file : __MBEDTLS_TEST_TEMPLATE__TEST_FILE * * The following files were used to create this file. * - * Main code file : $test_main_file - * Platform code file : $test_platform_file - * Helper file : $test_common_helper_file - * Test suite file : $test_case_file - * Test suite data : $test_case_data_file + * Main code file : __MBEDTLS_TEST_TEMPLATE__TEST_MAIN_FILE + * Platform code file : __MBEDTLS_TEST_TEMPLATE__TEST_PLATFORM_FILE + * Helper file : __MBEDTLS_TEST_TEMPLATE__TEST_COMMON_HELPER_FILE + * Test suite file : __MBEDTLS_TEST_TEMPLATE__TEST_CASE_FILE + * Test suite data : __MBEDTLS_TEST_TEMPLATE__TEST_CASE_DATA_FILE * */ @@ -37,9 +37,9 @@ /*----------------------------------------------------------------------------*/ /* Common helper code */ -$test_common_helpers +__MBEDTLS_TEST_TEMPLATE__TEST_COMMON_HELPERS -#line $line_no "suites/main_test.function" +#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" /*----------------------------------------------------------------------------*/ @@ -48,9 +48,9 @@ $test_common_helpers #define TEST_SUITE_ACTIVE -$functions_code +__MBEDTLS_TEST_TEMPLATE__FUNCTIONS_CODE -#line $line_no "suites/main_test.function" +#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" /*----------------------------------------------------------------------------*/ @@ -62,7 +62,7 @@ $functions_code * For optimizing space for embedded targets each expression/macro * is identified by a unique identifier instead of string literals. * Identifiers and evaluation code is generated by script: - * $generator_script + * __MBEDTLS_TEST_TEMPLATE__GENERATOR_SCRIPT * * \param exp_id Expression identifier. * \param out_value Pointer to int to hold the integer. @@ -78,8 +78,8 @@ int get_expression( int32_t exp_id, int32_t * out_value ) switch( exp_id ) { -$expression_code -#line $line_no "suites/main_test.function" +__MBEDTLS_TEST_TEMPLATE__EXPRESSION_CODE +#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" default: { ret = KEY_VALUE_MAPPING_NOT_FOUND; @@ -95,7 +95,7 @@ $expression_code * For optimizing space for embedded targets each dependency * is identified by a unique identifier instead of string literals. * Identifiers and check code is generated by script: - * $generator_script + * __MBEDTLS_TEST_TEMPLATE__GENERATOR_SCRIPT * * \param dep_id Dependency identifier. * @@ -109,8 +109,8 @@ int dep_check( int dep_id ) switch( dep_id ) { -$dep_check_code -#line $line_no "suites/main_test.function" +__MBEDTLS_TEST_TEMPLATE__DEP_CHECK_CODE +#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" default: break; } @@ -137,13 +137,13 @@ typedef void (*TestWrapper_t)( void **param_array ); /** * \brief Table of test function wrappers. Used by dispatch_test(). * This table is populated by script: - * $generator_script + * __MBEDTLS_TEST_TEMPLATE__GENERATOR_SCRIPT * */ TestWrapper_t test_funcs[] = { -$dispatch_code -#line $line_no "suites/main_test.function" +__MBEDTLS_TEST_TEMPLATE__DISPATCH_CODE +#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" }; /** @@ -219,9 +219,9 @@ int check_test( size_t func_idx ) } -$platform_code +__MBEDTLS_TEST_TEMPLATE__PLATFORM_CODE -#line $line_no "suites/main_test.function" +#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" /*----------------------------------------------------------------------------*/ /* Main Test code */ From d25cab0327d40e05f5bd9ea84fb5cc61f820cdd8 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 12:48:30 +0800 Subject: [PATCH 0985/1028] Refactor debug helpers for exts and hs message Signed-off-by: Jerry Yu --- library/ssl_debug_helpers.h | 46 +++++++---- library/ssl_misc.h | 3 + library/ssl_tls.c | 146 +++++++++++++++++++++++++++++++++++ library/ssl_tls13_generic.c | 149 ------------------------------------ 4 files changed, 180 insertions(+), 164 deletions(-) diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index 6b97bc6523..8fce87a985 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -43,27 +43,43 @@ const char *mbedtls_ssl_sig_alg_to_str( uint16_t in ); const char *mbedtls_ssl_named_group_to_str( uint16_t in ); -#endif /* MBEDTLS_DEBUG_C */ +const char *mbedtls_ssl_get_extension_name( unsigned int extension_type ); -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) -#if defined(MBEDTLS_DEBUG_C) +void mbedtls_ssl_print_extensions( const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + int hs_msg_type, uint32_t extensions_mask, + const char *extra ); -const char *mbedtls_tls13_get_extension_name( uint16_t extension_type ); +void mbedtls_ssl_print_extension_type( const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + int hs_msg_type, + unsigned int extension_type, + const char *extra_msg0, + const char *extra_msg1 ); -void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, - int level, const char *file, int line, - int hs_msg_type, - uint32_t extensions_present ); +#define MBEDTLS_SSL_PRINT_SENT_EXTS( level, hs_msg_type ) \ + mbedtls_ssl_print_extensions( ssl, level, __FILE__, __LINE__, \ + hs_msg_type, \ + ssl->handshake->sent_extensions, \ + "sent" ) -#define MBEDTLS_SSL_TLS1_3_PRINT_EXTS( level, hs_msg_type, extensions_present ) \ - mbedtls_ssl_tls13_print_extensions( \ - ssl, level, __FILE__, __LINE__, hs_msg_type, extensions_present ) +#define MBEDTLS_SSL_PRINT_RECEIVED_EXTS( level, hs_msg_type ) \ + mbedtls_ssl_print_extensions( ssl, level, __FILE__, __LINE__, \ + hs_msg_type, \ + ssl->handshake->received_extensions, \ + "received" ) + +#define MBEDTLS_SSL_PRINT_EXT_TYPE( level, hs_msg_type, extension_type, extra ) \ + mbedtls_ssl_print_extension_type( ssl, level, __FILE__, __LINE__, \ + hs_msg_type, extension_type, extra, NULL ) #else -#define MBEDTLS_SSL_TLS1_3_PRINT_EXTS( level, hs_msg_name, extensions_present ) +#define MBEDTLS_SSL_PRINT_SENT_EXTS( level, hs_msg_type ) -#endif +#define MBEDTLS_SSL_PRINT_RECEIVED_EXTS( level, hs_msg_type ) -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ +#define MBEDTLS_SSL_PRINT_EXT_TYPE( level, hs_msg_type, extension_type, extra ) -#endif /* SSL_DEBUG_HELPERS_H */ +#endif /* MBEDTLS_DEBUG_C */ + +#endif /* MBEDTLS_SSL_DEBUG_HELPERS_H */ diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 8ffdccb378..7c32969b2b 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -74,6 +74,9 @@ #define MBEDTLS_SSL_RENEGOTIATION_DONE 2 /* Done or aborted */ #define MBEDTLS_SSL_RENEGOTIATION_PENDING 3 /* Requested (server only) */ +/* Faked handshake message identity for HelloRetryRequest. */ +#define MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST ( -MBEDTLS_SSL_HS_SERVER_HELLO ) + /* * Inernal identity of handshake extensions */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index b3210c4155..7bc0a0cd5b 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -616,6 +616,152 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ) return( 1 << mbedtls_ssl_get_extension_id( extension_type ) ); } +#if defined(MBEDTLS_DEBUG_C) +static const char *extension_name_table[] = { + [MBEDTLS_SSL_EXT_ID_UNRECOGNIZED] = "unreognized", + [MBEDTLS_SSL_EXT_ID_SERVERNAME] = "server_name", + [MBEDTLS_SSL_EXT_ID_MAX_FRAGMENT_LENGTH] = "max_fragment_length", + [MBEDTLS_SSL_EXT_ID_STATUS_REQUEST] = "status_request", + [MBEDTLS_SSL_EXT_ID_SUPPORTED_GROUPS] = "supported_groups", + [MBEDTLS_SSL_EXT_ID_SIG_ALG] = "signature_algorithms", + [MBEDTLS_SSL_EXT_ID_USE_SRTP] = "use_srtp", + [MBEDTLS_SSL_EXT_ID_HEARTBEAT] = "heartbeat", + [MBEDTLS_SSL_EXT_ID_ALPN] = "application_layer_protocol_negotiation", + [MBEDTLS_SSL_EXT_ID_SCT] = "signed_certificate_timestamp", + [MBEDTLS_SSL_EXT_ID_CLI_CERT_TYPE] = "client_certificate_type", + [MBEDTLS_SSL_EXT_ID_SERV_CERT_TYPE] = "server_certificate_type", + [MBEDTLS_SSL_EXT_ID_PADDING] = "padding", + [MBEDTLS_SSL_EXT_ID_PRE_SHARED_KEY] = "pre_shared_key", + [MBEDTLS_SSL_EXT_ID_EARLY_DATA] = "early_data", + [MBEDTLS_SSL_EXT_ID_SUPPORTED_VERSIONS] = "supported_versions", + [MBEDTLS_SSL_EXT_ID_COOKIE] = "cookie", + [MBEDTLS_SSL_EXT_ID_PSK_KEY_EXCHANGE_MODES] = "psk_key_exchange_modes", + [MBEDTLS_SSL_EXT_ID_CERT_AUTH] = "certificate_authorities", + [MBEDTLS_SSL_EXT_ID_OID_FILTERS] = "oid_filters", + [MBEDTLS_SSL_EXT_ID_POST_HANDSHAKE_AUTH] = "post_handshake_auth", + [MBEDTLS_SSL_EXT_ID_SIG_ALG_CERT] = "signature_algorithms_cert", + [MBEDTLS_SSL_EXT_ID_KEY_SHARE] = "key_share", + [MBEDTLS_SSL_EXT_ID_TRUNCATED_HMAC] = "truncated_hmac", + [MBEDTLS_SSL_EXT_ID_SUPPORTED_POINT_FORMATS] = "supported_point_formats", + [MBEDTLS_SSL_EXT_ID_ENCRYPT_THEN_MAC] = "encrypt_then_mac", + [MBEDTLS_SSL_EXT_ID_EXTENDED_MASTER_SECRET] = "extended_master_secret", + [MBEDTLS_SSL_EXT_ID_SESSION_TICKET] = "session_ticket" +}; + +static unsigned int extension_type_tbl[]={ + [MBEDTLS_SSL_EXT_ID_UNRECOGNIZED] = 0xff, + [MBEDTLS_SSL_EXT_ID_SERVERNAME] = MBEDTLS_TLS_EXT_SERVERNAME, + [MBEDTLS_SSL_EXT_ID_MAX_FRAGMENT_LENGTH] = MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH, + [MBEDTLS_SSL_EXT_ID_STATUS_REQUEST] = MBEDTLS_TLS_EXT_STATUS_REQUEST, + [MBEDTLS_SSL_EXT_ID_SUPPORTED_GROUPS] = MBEDTLS_TLS_EXT_SUPPORTED_GROUPS, + [MBEDTLS_SSL_EXT_ID_SIG_ALG] = MBEDTLS_TLS_EXT_SIG_ALG, + [MBEDTLS_SSL_EXT_ID_USE_SRTP] = MBEDTLS_TLS_EXT_USE_SRTP, + [MBEDTLS_SSL_EXT_ID_HEARTBEAT] = MBEDTLS_TLS_EXT_HEARTBEAT, + [MBEDTLS_SSL_EXT_ID_ALPN] = MBEDTLS_TLS_EXT_ALPN, + [MBEDTLS_SSL_EXT_ID_SCT] = MBEDTLS_TLS_EXT_SCT, + [MBEDTLS_SSL_EXT_ID_CLI_CERT_TYPE] = MBEDTLS_TLS_EXT_CLI_CERT_TYPE, + [MBEDTLS_SSL_EXT_ID_SERV_CERT_TYPE] = MBEDTLS_TLS_EXT_SERV_CERT_TYPE, + [MBEDTLS_SSL_EXT_ID_PADDING] = MBEDTLS_TLS_EXT_PADDING, + [MBEDTLS_SSL_EXT_ID_PRE_SHARED_KEY] = MBEDTLS_TLS_EXT_PRE_SHARED_KEY, + [MBEDTLS_SSL_EXT_ID_EARLY_DATA] = MBEDTLS_TLS_EXT_EARLY_DATA, + [MBEDTLS_SSL_EXT_ID_SUPPORTED_VERSIONS] = MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS, + [MBEDTLS_SSL_EXT_ID_COOKIE] = MBEDTLS_TLS_EXT_COOKIE, + [MBEDTLS_SSL_EXT_ID_PSK_KEY_EXCHANGE_MODES] = MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES, + [MBEDTLS_SSL_EXT_ID_CERT_AUTH] = MBEDTLS_TLS_EXT_CERT_AUTH, + [MBEDTLS_SSL_EXT_ID_OID_FILTERS] = MBEDTLS_TLS_EXT_OID_FILTERS, + [MBEDTLS_SSL_EXT_ID_POST_HANDSHAKE_AUTH] = MBEDTLS_TLS_EXT_POST_HANDSHAKE_AUTH, + [MBEDTLS_SSL_EXT_ID_SIG_ALG_CERT] = MBEDTLS_TLS_EXT_SIG_ALG_CERT, + [MBEDTLS_SSL_EXT_ID_KEY_SHARE] = MBEDTLS_TLS_EXT_KEY_SHARE, + [MBEDTLS_SSL_EXT_ID_TRUNCATED_HMAC] = MBEDTLS_TLS_EXT_TRUNCATED_HMAC, + [MBEDTLS_SSL_EXT_ID_SUPPORTED_POINT_FORMATS] = MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS, + [MBEDTLS_SSL_EXT_ID_ENCRYPT_THEN_MAC] = MBEDTLS_TLS_EXT_ENCRYPT_THEN_MAC, + [MBEDTLS_SSL_EXT_ID_EXTENDED_MASTER_SECRET] = MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET, + [MBEDTLS_SSL_EXT_ID_SESSION_TICKET] = MBEDTLS_TLS_EXT_SESSION_TICKET +}; + +const char *mbedtls_ssl_get_extension_name( unsigned int extension_type ) +{ + return( extension_name_table[ + mbedtls_ssl_get_extension_id( extension_type ) ] ); +} + +static const char *ssl_tls13_get_hs_msg_name( int hs_msg_type ) +{ + switch( hs_msg_type ) + { + case MBEDTLS_SSL_HS_CLIENT_HELLO: + return( "ClientHello" ); + case MBEDTLS_SSL_HS_SERVER_HELLO: + return( "ServerHello" ); + case MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST: + return( "HelloRetryRequest" ); + case MBEDTLS_SSL_HS_NEW_SESSION_TICKET: + return( "NewSessionTicket" ); + case MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS: + return( "EncryptedExtensions" ); + case MBEDTLS_SSL_HS_CERTIFICATE: + return( "Certificate" ); + case MBEDTLS_SSL_HS_CERTIFICATE_REQUEST: + return( "CertificateRequest" ); + } + return( NULL ); +} + +void mbedtls_ssl_print_extension_type( const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + int hs_msg_type, + unsigned int extension_type, + const char *extra_msg0, + const char *extra_msg1 ) +{ + const char *extra_msg; + if( extra_msg0 && extra_msg1 ) + { + mbedtls_debug_print_msg( + ssl, level, file, line, + "%s: %s(%u) extension %s %s.", + ssl_tls13_get_hs_msg_name( hs_msg_type ), + mbedtls_ssl_get_extension_name( extension_type ), + extension_type, + extra_msg0, extra_msg1 ); + return; + } + + extra_msg = extra_msg0 ? extra_msg0 : extra_msg1; + if( extra_msg ) + { + mbedtls_debug_print_msg( + ssl, level, file, line, + "%s: %s(%u) extension %s.", ssl_tls13_get_hs_msg_name( hs_msg_type ), + mbedtls_ssl_get_extension_name( extension_type ), extension_type, + extra_msg ); + return; + } + + mbedtls_debug_print_msg( + ssl, level, file, line, + "%s: %s(%u) extension.", ssl_tls13_get_hs_msg_name( hs_msg_type ), + mbedtls_ssl_get_extension_name( extension_type ), extension_type ); +} + +void mbedtls_ssl_print_extensions( const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + int hs_msg_type, uint32_t extensions_mask, + const char *extra ) +{ + + for( unsigned i = 0; + i < sizeof( extension_name_table ) / sizeof( extension_name_table[0] ); + i++ ) + { + mbedtls_ssl_print_extension_type( + ssl, level, file, line, hs_msg_type, extension_type_tbl[i], + extensions_mask & ( 1 << i ) ? "was" : "was not", extra ); + } +} + +#endif /* MBEDTLS_DEBUG_C */ + void mbedtls_ssl_optimize_checksum( mbedtls_ssl_context *ssl, const mbedtls_ssl_ciphersuite_t *ciphersuite_info ) { diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 1bbd7f033b..a94bbef283 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1529,155 +1529,6 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( } #endif /* MBEDTLS_ECDH_C */ -#if defined(MBEDTLS_DEBUG_C) -const char *mbedtls_tls13_get_extension_name( uint16_t extension_type ) -{ - switch( extension_type ) - { - case MBEDTLS_TLS_EXT_SERVERNAME: - return( "server_name" ); - - case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: - return( "max_fragment_length" ); - - case MBEDTLS_TLS_EXT_STATUS_REQUEST: - return( "status_request" ); - - case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: - return( "supported_groups" ); - - case MBEDTLS_TLS_EXT_SIG_ALG: - return( "signature_algorithms" ); - - case MBEDTLS_TLS_EXT_USE_SRTP: - return( "use_srtp" ); - - case MBEDTLS_TLS_EXT_HEARTBEAT: - return( "heartbeat" ); - - case MBEDTLS_TLS_EXT_ALPN: - return( "application_layer_protocol_negotiation" ); - - case MBEDTLS_TLS_EXT_SCT: - return( "signed_certificate_timestamp" ); - - case MBEDTLS_TLS_EXT_CLI_CERT_TYPE: - return( "client_certificate_type" ); - - case MBEDTLS_TLS_EXT_SERV_CERT_TYPE: - return( "server_certificate_type" ); - - case MBEDTLS_TLS_EXT_PADDING: - return( "padding" ); - - case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: - return( "pre_shared_key" ); - - case MBEDTLS_TLS_EXT_EARLY_DATA: - return( "early_data" ); - - case MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS: - return( "supported_versions" ); - - case MBEDTLS_TLS_EXT_COOKIE: - return( "cookie" ); - - case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: - return( "psk_key_exchange_modes" ); - - case MBEDTLS_TLS_EXT_CERT_AUTH: - return( "certificate_authorities" ); - - case MBEDTLS_TLS_EXT_OID_FILTERS: - return( "oid_filters" ); - - case MBEDTLS_TLS_EXT_POST_HANDSHAKE_AUTH: - return( "post_handshake_auth" ); - - case MBEDTLS_TLS_EXT_SIG_ALG_CERT: - return( "signature_algorithms_cert" ); - - case MBEDTLS_TLS_EXT_KEY_SHARE: - return( "key_share" ); - }; - - return( "unknown" ); -} - -static const char *ssl_tls13_get_hs_msg_name( int hs_msg_type ) -{ - switch( hs_msg_type ) - { - case MBEDTLS_SSL_HS_CLIENT_HELLO: - return( "ClientHello" ); - case MBEDTLS_SSL_HS_SERVER_HELLO: - return( "ServerHello" ); - case -MBEDTLS_SSL_HS_SERVER_HELLO: // HRR does not have IANA value. - return( "HelloRetryRequest" ); - case MBEDTLS_SSL_HS_NEW_SESSION_TICKET: - return( "NewSessionTicket" ); - case MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS: - return( "EncryptedExtensions" ); - case MBEDTLS_SSL_HS_CERTIFICATE: - return( "Certificate" ); - case MBEDTLS_SSL_HS_CERTIFICATE_REQUEST: - return( "CertificateRequest" ); - } - return( NULL ); -} - -void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, - int level, const char *file, int line, - int hs_msg_type, - uint32_t extensions_present ) -{ - static const struct{ - uint32_t extension_mask; - const char *extension_name; - } mask_to_str_table[] = { - { MBEDTLS_SSL_EXT_SERVERNAME, "server_name" }, - { MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH, "max_fragment_length" }, - { MBEDTLS_SSL_EXT_STATUS_REQUEST, "status_request" }, - { MBEDTLS_SSL_EXT_SUPPORTED_GROUPS, "supported_groups" }, - { MBEDTLS_SSL_EXT_SIG_ALG, "signature_algorithms" }, - { MBEDTLS_SSL_EXT_USE_SRTP, "use_srtp" }, - { MBEDTLS_SSL_EXT_HEARTBEAT, "heartbeat" }, - { MBEDTLS_SSL_EXT_ALPN, "application_layer_protocol_negotiation" }, - { MBEDTLS_SSL_EXT_SCT, "signed_certificate_timestamp" }, - { MBEDTLS_SSL_EXT_CLI_CERT_TYPE, "client_certificate_type" }, - { MBEDTLS_SSL_EXT_SERV_CERT_TYPE, "server_certificate_type" }, - { MBEDTLS_SSL_EXT_PADDING, "padding" }, - { MBEDTLS_SSL_EXT_PRE_SHARED_KEY, "pre_shared_key" }, - { MBEDTLS_SSL_EXT_EARLY_DATA, "early_data" }, - { MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS, "supported_versions" }, - { MBEDTLS_SSL_EXT_COOKIE, "cookie" }, - { MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES, "psk_key_exchange_modes" }, - { MBEDTLS_SSL_EXT_CERT_AUTH, "certificate_authorities" }, - { MBEDTLS_SSL_EXT_OID_FILTERS, "oid_filters" }, - { MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH, "post_handshake_auth" }, - { MBEDTLS_SSL_EXT_SIG_ALG_CERT, "signature_algorithms_cert" }, - { MBEDTLS_SSL_EXT_KEY_SHARE, "key_share" } }; - - mbedtls_debug_print_msg( ssl, level, file, line, - "extension list of %s:", - ssl_tls13_get_hs_msg_name( hs_msg_type ) ); - - for( unsigned i = 0; - i < sizeof( mask_to_str_table ) / sizeof( mask_to_str_table[0] ); - i++ ) - { - const char *extension_name = mask_to_str_table[i].extension_name; - uint32_t is_present = extensions_present & - mask_to_str_table[i].extension_mask; - - mbedtls_debug_print_msg( ssl, level, file, line, - "- %s extension ( %s )", extension_name, - is_present ? "true" : "false" ); - } -} - -#endif /* MBEDTLS_DEBUG_C */ - /* RFC 8446 section 4.2 * * If an implementation receives an extension which it recognizes and which is From 4b8f2f72668270e46b475c697565df0bbb305876 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 13:31:22 +0800 Subject: [PATCH 0986/1028] Refactor sent extension message output Signed-off-by: Jerry Yu --- library/ssl_client.c | 18 ++++++------------ library/ssl_tls.c | 4 ---- library/ssl_tls13_client.c | 26 ++++---------------------- library/ssl_tls13_generic.c | 2 ++ library/ssl_tls13_server.c | 10 ++++++++++ 5 files changed, 22 insertions(+), 38 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 16cef0204a..1c5b447fe0 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -108,10 +108,6 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SERVERNAME ); - MBEDTLS_SSL_DEBUG_MSG( - 4, ( "sent %s extension", - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_SERVERNAME ) ) ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ return( 0 ); } @@ -186,10 +182,6 @@ static int ssl_write_alpn_ext( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_ALPN ); - MBEDTLS_SSL_DEBUG_MSG( - 4, ( "sent %s extension", - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_ALPN ) ) ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ return( 0 ); } @@ -310,10 +302,8 @@ static int ssl_write_supported_groups_ext( mbedtls_ssl_context *ssl, *out_len = p - buf; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ); - MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ) ) ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( + ssl, MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ return( 0 ); @@ -684,6 +674,10 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, p_extensions_len, extensions_len ); } +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_CLIENT_HELLO ); +#endif + *out_len = p - buf; return( 0 ); } diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 7bc0a0cd5b..04d2ef440b 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -8955,10 +8955,6 @@ int mbedtls_ssl_write_sig_alg_ext( mbedtls_ssl_context *ssl, unsigned char *buf, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SIG_ALG ); - MBEDTLS_SSL_DEBUG_MSG( - 4, ( "sent %s extension", - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_SIG_ALG ) ) ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ return( 0 ); diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 27747a2097..54101cb344 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -89,12 +89,10 @@ static int ssl_tls13_write_supported_versions_ext( mbedtls_ssl_context *ssl, } *out_len = 5 + versions_len; + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ); - MBEDTLS_SSL_DEBUG_MSG( - 4, ( "sent %s extension", - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ) ) ); + return( 0 ); } @@ -366,11 +364,6 @@ static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, key_share extension", buf, *out_len ); mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_KEY_SHARE ); - MBEDTLS_SSL_DEBUG_MSG( - 4, ( "sent %s extension", - - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_KEY_SHARE ) ) ); cleanup: @@ -610,12 +603,8 @@ static int ssl_tls13_write_cookie_ext( mbedtls_ssl_context *ssl, *out_len = handshake->hrr_cookie_len + 6; - mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_COOKIE ); - MBEDTLS_SSL_DEBUG_MSG( - 4, ( "sent %s extension", - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_COOKIE ) ) ); + return( 0 ); } @@ -688,10 +677,7 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES ); - MBEDTLS_SSL_DEBUG_MSG( - 4, ( "sent %s extension", - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES ) ) ); + return ( 0 ); } @@ -1059,10 +1045,6 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_PRE_SHARED_KEY ); - MBEDTLS_SSL_DEBUG_MSG( - 4, ( "sent %s extension", - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_PRE_SHARED_KEY ) ) ); return( 0 ); } diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index a94bbef283..1a17372837 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -887,6 +887,8 @@ static int ssl_tls13_write_certificate_body( mbedtls_ssl_context *ssl, *out_len = p - buf; + MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE ); + return( 0 ); } diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index f0f06b81a7..0239090f35 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2128,6 +2128,10 @@ static int ssl_tls13_write_server_hello_body( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "server hello", buf, *out_len ); + MBEDTLS_SSL_PRINT_SENT_EXTS( + 3, is_hrr ? MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST : + MBEDTLS_SSL_HS_SERVER_HELLO ); + return( ret ); } @@ -2312,6 +2316,8 @@ static int ssl_tls13_write_encrypted_extensions_body( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 4, "encrypted extensions", buf, *out_len ); + MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS ); + return( 0 ); } @@ -2441,6 +2447,8 @@ static int ssl_tls13_write_certificate_request_body( mbedtls_ssl_context *ssl, *out_len = p - buf; + MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST ); + return( 0 ); } @@ -2834,6 +2842,8 @@ static int ssl_tls13_write_new_session_ticket_body( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 4, "ticket", buf, *out_len ); MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write new session ticket" ) ); + MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET ); + return( 0 ); } From 63a459cde5995c1909d873c707fae8fef09e8e37 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 13:38:40 +0800 Subject: [PATCH 0987/1028] Refactor client_hello parser and writer Signed-off-by: Jerry Yu --- library/ssl_client.c | 2 +- library/ssl_tls13_server.c | 42 ++++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 1c5b447fe0..ebf0fa701e 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -564,7 +564,7 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) /* Keeping track of the included extensions */ - handshake->sent_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->sent_extensions = MBEDTLS_SSL_EXT_MASK_NONE; #endif /* First write extensions, then the total length */ diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 0239090f35..607347d730 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -940,9 +940,9 @@ static int ssl_tls13_client_hello_has_exts_for_ephemeral_key_exchange( { return( ssl_tls13_client_hello_has_exts( ssl, - MBEDTLS_SSL_EXT_SUPPORTED_GROUPS | - MBEDTLS_SSL_EXT_KEY_SHARE | - MBEDTLS_SSL_EXT_SIG_ALG ) ); + MBEDTLS_SSL_EXT_MASK( SUPPORTED_GROUPS ) | + MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) | + MBEDTLS_SSL_EXT_MASK( SIG_ALG ) ) ); } #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) @@ -952,8 +952,8 @@ static int ssl_tls13_client_hello_has_exts_for_psk_key_exchange( { return( ssl_tls13_client_hello_has_exts( ssl, - MBEDTLS_SSL_EXT_PRE_SHARED_KEY | - MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ) ); + MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | + MBEDTLS_SSL_EXT_MASK( PSK_KEY_EXCHANGE_MODES ) ) ); } MBEDTLS_CHECK_RETURN_CRITICAL @@ -962,10 +962,10 @@ static int ssl_tls13_client_hello_has_exts_for_psk_ephemeral_key_exchange( { return( ssl_tls13_client_hello_has_exts( ssl, - MBEDTLS_SSL_EXT_SUPPORTED_GROUPS | - MBEDTLS_SSL_EXT_KEY_SHARE | - MBEDTLS_SSL_EXT_PRE_SHARED_KEY | - MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ) ); + MBEDTLS_SSL_EXT_MASK( SUPPORTED_GROUPS ) | + MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) | + MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | + MBEDTLS_SSL_EXT_MASK( PSK_KEY_EXCHANGE_MODES ) ) ); } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ @@ -1417,7 +1417,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "client hello extensions", p, extensions_len ); - handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; while( p < extensions_end ) { @@ -1432,7 +1432,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, * Servers MUST check that it is the last extension and otherwise fail * the handshake with an "illegal_parameter" alert. */ - if( handshake->received_extensions & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) + if( handshake->received_extensions & MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "pre_shared_key is not last extension." ) ); @@ -1555,7 +1555,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found pre_shared_key extension" ) ); if( ( handshake->received_extensions & - MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ) == 0 ) + MBEDTLS_SSL_EXT_MASK( PSK_KEY_EXCHANGE_MODES ) ) == 0 ) { MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, @@ -1603,18 +1603,16 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ default: - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "client hello: received %s(%u) extension ( ignored )", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); + MBEDTLS_SSL_PRINT_EXT_TYPE( + 3, MBEDTLS_SSL_HS_CLIENT_HELLO, + extension_type, "( ignored )" ); break; } p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_CLIENT_HELLO, handshake->received_extensions ); + MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_CLIENT_HELLO ); mbedtls_ssl_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, @@ -1628,7 +1626,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, /* If we've settled on a PSK-based exchange, parse PSK identity ext */ if( mbedtls_ssl_tls13_some_psk_enabled( ssl ) && mbedtls_ssl_conf_tls13_some_psk_enabled( ssl ) && - ( handshake->received_extensions & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) ) + ( handshake->received_extensions & MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) ) ) { handshake->update_checksum( ssl, buf, pre_shared_key_ext - buf ); @@ -1639,12 +1637,12 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, cipher_suites_end ); if( ret == MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY ) { - handshake->received_extensions &= ~MBEDTLS_SSL_EXT_PRE_SHARED_KEY; + handshake->received_extensions &= ~MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ); } else if( ret != 0 ) { - MBEDTLS_SSL_DEBUG_RET( 1, ( "ssl_tls13_parse_pre_shared_key_ext" ), - ret ); + MBEDTLS_SSL_DEBUG_RET( + 1, "ssl_tls13_parse_pre_shared_key_ext" , ret ); return( ret ); } } From 9eba750916b751bb1cf1a1d4c0fc2c59bd7be64f Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 13:46:16 +0800 Subject: [PATCH 0988/1028] Refactor encrypted extensions Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 54101cb344..082be20b35 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1989,7 +1989,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); extensions_end = p + extensions_len; - handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; while( p < extensions_end ) { @@ -2029,18 +2029,16 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, break; #endif /* MBEDTLS_SSL_ALPN */ default: - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "encrypted extensions: received %s(%u) extension ( ignored )", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); + MBEDTLS_SSL_PRINT_EXT_TYPE( + 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, + extension_type, "( ignored )" ); break; } p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, - handshake->received_extensions ); + MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS ); /* Check that we consumed all the message. */ if( p != end ) From 6d0e78ba22cbaa19e4de862a79b03cdedefe4ff2 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 14:13:25 +0800 Subject: [PATCH 0989/1028] Refactor certificate request Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 082be20b35..688eb52018 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2184,7 +2184,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); extensions_end = p + extensions_len; - handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; while( p < extensions_end ) { @@ -2217,19 +2217,16 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, break; default: - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "certificate request: received %s(%u) extension ( ignored )", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); + MBEDTLS_SSL_PRINT_EXT_TYPE( + 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, + extension_type, "( ignored )" ); break; } p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, - MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, - handshake->received_extensions ); + MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST ); /* Check that we consumed all the message. */ if( p != end ) @@ -2243,7 +2240,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, * * The "signature_algorithms" extension MUST be specified */ - if( ( handshake->received_extensions & MBEDTLS_SSL_EXT_SIG_ALG ) == 0 ) + if( ( handshake->received_extensions & MBEDTLS_SSL_EXT_MASK( SIG_ALG ) ) == 0 ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "no signature algorithms extension found" ) ); From 0d5cfb7703c51be78e71a6efd4548753ca7929c9 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 14:15:48 +0800 Subject: [PATCH 0990/1028] Refactor Certificate Signed-off-by: Jerry Yu --- library/ssl_tls13_generic.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 1a17372837..a9c8c973f8 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -508,7 +508,7 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, certificate_list_end, extensions_len ); extensions_end = p + extensions_len; - handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; while( p < extensions_end ) { @@ -537,18 +537,16 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, switch( extension_type ) { default: - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "Certificate: received %s(%u) extension ( ignored )", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); + MBEDTLS_SSL_PRINT_EXT_TYPE( + 3, MBEDTLS_SSL_HS_CERTIFICATE, + extension_type, "( ignored )" ); break; } p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_CERTIFICATE, handshake->received_extensions ); + MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE ); } exit: From edab637b515d4015c10c59b4ecc176e66bea62d1 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 14:37:31 +0800 Subject: [PATCH 0991/1028] Refactor new session ticket Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 20 +++++++------------- library/ssl_tls13_server.c | 2 ++ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 688eb52018..b0a835f4e3 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2484,7 +2484,7 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, const unsigned char *p = buf; - handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; while( p < end ) { @@ -2500,30 +2500,24 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extension_data_len ); ret = mbedtls_ssl_tls13_check_received_extension( - ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, extension_type, - MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH ); + ssl, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_NST ); if( ret != 0 ) return( ret ); switch( extension_type ) { - case MBEDTLS_TLS_EXT_EARLY_DATA: - MBEDTLS_SSL_DEBUG_MSG( 4, ( "early_data extension received" ) ); - break; - default: - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "NewSessionTicket : received %s(%u) extension ( ignored )", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); + MBEDTLS_SSL_PRINT_EXT_TYPE( + 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, + extension_type, "( ignored )" ); break; } p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, handshake->received_extensions ); + MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET ); return( 0 ); } diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 607347d730..f31e7ab89e 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2832,6 +2832,8 @@ static int ssl_tls13_write_new_session_ticket_body( mbedtls_ssl_context *ssl, * Note: We currently don't have any extensions. * Set length to zero. */ + ssl->handshake->sent_extensions = MBEDTLS_SSL_EXT_MASK_NONE; + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); MBEDTLS_PUT_UINT16_BE( 0, p, 0 ); p += 2; From 50e00e3ac6b7c9f7940d0f459d727bd35a96c9fc Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 14:45:01 +0800 Subject: [PATCH 0992/1028] Refactor server hello Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 24 ++++++++++-------------- library/ssl_tls13_server.c | 1 + 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index b0a835f4e3..fff0febed8 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1395,7 +1395,7 @@ static int ssl_tls13_preprocess_server_hello( mbedtls_ssl_context *ssl, ssl->session_negotiate->tls_version = ssl->tls_version; #endif /* MBEDTLS_SSL_SESSION_TICKETS */ - handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; ret = ssl_server_hello_is_hrr( ssl, buf, end ); switch( ret ) @@ -1506,6 +1506,8 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, const mbedtls_ssl_ciphersuite_t *ciphersuite_info; int fatal_alert = 0; uint32_t allowed_extensions_mask; + int hs_msg_type = is_hrr ? MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST : + MBEDTLS_SSL_HS_SERVER_HELLO; /* * Check there is space for minimal fields @@ -1648,7 +1650,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "server hello extensions", p, extensions_len ); - handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; allowed_extensions_mask = is_hrr ? MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_HRR : MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_SH; @@ -1668,11 +1670,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, extension_data_end = p + extension_data_len; ret = mbedtls_ssl_tls13_check_received_extension( - ssl, - is_hrr ? - -MBEDTLS_SSL_HS_SERVER_HELLO : MBEDTLS_SSL_HS_SERVER_HELLO, - extension_type, - allowed_extensions_mask ); + ssl, hs_msg_type, extension_type, allowed_extensions_mask ); if( ret != 0 ) return( ret ); @@ -1744,9 +1742,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( - 3, is_hrr ? -MBEDTLS_SSL_HS_SERVER_HELLO : MBEDTLS_SSL_HS_SERVER_HELLO, - handshake->received_extensions ); + MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, hs_msg_type ); cleanup: @@ -1797,20 +1793,20 @@ static int ssl_tls13_postprocess_server_hello( mbedtls_ssl_context *ssl ) * exchange mode is EPHEMERAL-only. */ switch( handshake->received_extensions & - ( MBEDTLS_SSL_EXT_PRE_SHARED_KEY | MBEDTLS_SSL_EXT_KEY_SHARE ) ) + ( MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) ) ) { /* Only the pre_shared_key extension was received */ - case MBEDTLS_SSL_EXT_PRE_SHARED_KEY: + case MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ): handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK; break; /* Only the key_share extension was received */ - case MBEDTLS_SSL_EXT_KEY_SHARE: + case MBEDTLS_SSL_EXT_MASK( KEY_SHARE ): handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL; break; /* Both the pre_shared_key and key_share extensions were received */ - case ( MBEDTLS_SSL_EXT_PRE_SHARED_KEY | MBEDTLS_SSL_EXT_KEY_SHARE ): + case ( MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) ): handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL; break; diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index f31e7ab89e..288332865b 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2001,6 +2001,7 @@ static int ssl_tls13_write_server_hello_body( mbedtls_ssl_context *ssl, size_t output_len; *out_len = 0; + ssl->handshake->sent_extensions = MBEDTLS_SSL_EXT_MASK_NONE; /* ... * ProtocolVersion legacy_version = 0x0303; // TLS 1.2 From f467d46bbbcee711d647441152d0f316a354e855 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 7 Nov 2022 13:12:44 +0800 Subject: [PATCH 0993/1028] move get_srv_psk_list It can be reused in other test-suites Signed-off-by: Jerry Yu --- tests/opt-testcases/tls13-kex-modes.sh | 9 --------- tests/ssl-opt.sh | 10 ++++++++++ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 4f62ed69bf..b1320c5b59 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -18,15 +18,6 @@ # limitations under the License. # -get_srv_psk_list () -{ - case $(( TESTS % 3 )) in - 0) echo "psk_list=abc,dead,def,beef,Client_identity,6162636465666768696a6b6c6d6e6f70";; - 1) echo "psk_list=abc,dead,Client_identity,6162636465666768696a6b6c6d6e6f70,def,beef";; - 2) echo "psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef";; - esac -} - requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index a75b3f593c..f264b5ed12 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -1024,6 +1024,16 @@ is_gnutls() { esac } +# Generate random psk_list argument for ssl_server2 +get_srv_psk_list () +{ + case $(( TESTS % 3 )) in + 0) echo "psk_list=abc,dead,def,beef,Client_identity,6162636465666768696a6b6c6d6e6f70";; + 1) echo "psk_list=abc,dead,Client_identity,6162636465666768696a6b6c6d6e6f70,def,beef";; + 2) echo "psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef";; + esac +} + # Determine what calc_verify trace is to be expected, if any. # # calc_verify is only called for two things: to calculate the From 38860e2f1952ba6179ef24604c2ef9abb04ae9c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 7 Nov 2022 10:05:49 +0100 Subject: [PATCH 0994/1028] Improve test suite detection in run-test-suites.pl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Looking for executables causes problems with leftover compiled test suites from other branches when we forget to run make clean before switching branches. Using the .data files is more robust as most of them are tracked, so will be removed when switching branches. Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/run-test-suites.pl | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tests/scripts/run-test-suites.pl b/tests/scripts/run-test-suites.pl index 22eadd1805..8a5bb937dc 100755 --- a/tests/scripts/run-test-suites.pl +++ b/tests/scripts/run-test-suites.pl @@ -50,11 +50,13 @@ GetOptions( 'verbose|v:1' => \$verbose, ) or die; -# All test suites = executable files, excluding source files, debug -# and profiling information, etc. We can't just grep {! /\./} because -# some of our test cases' base names contain a dot. -my @suites = grep { -x $_ || /\.exe$/ } glob 'test_suite_*'; -@suites = grep { !/\.c$/ && !/\.data$/ && -f } @suites; +# All test suites = executable files derived from a .data file. +my @suites = (); +for my $data_file (glob 'suites/test_suite_*.data') { + (my $base = $data_file) =~ s#^suites/(.*)\.data$#$1#; + push @suites, $base if -x $base; + push @suites, "$base.exe" if -e "$base.exe"; +} die "$0: no test suite found\n" unless @suites; # "foo" as a skip pattern skips "test_suite_foo" and "test_suite_foo.bar" From 7ba7b3aded7f51051213704edc6c6e710cdee9aa Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Wed, 19 Oct 2022 17:22:15 +0200 Subject: [PATCH 0995/1028] Update tests to use mbedtls_test_read_mpi_core In conditional assign and swap tests use the mbedtls_test_read_mpi_core function for reading MPIs. Signed-off-by: Gabor Mezei --- tests/suites/test_suite_bignum_core.function | 54 +++++--------- .../suites/test_suite_bignum_mod_raw.function | 70 ++++++------------- 2 files changed, 39 insertions(+), 85 deletions(-) diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index f50fd07e41..021b7b31cf 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -345,14 +345,18 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_cond_assign( data_t * input_X, - data_t * input_Y, +void mpi_core_cond_assign( char * input_X, + char * input_Y, int input_bytes ) { mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; - size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); - size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t limbs_X; + size_t limbs_Y; + + TEST_EQUAL( mbedtls_test_read_mpi_core( &X, &limbs_X, input_X ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &Y, &limbs_Y, input_Y ), 0 ); + size_t limbs = limbs_X; size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); @@ -361,24 +365,12 @@ void mpi_core_cond_assign( data_t * input_X, TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); - ASSERT_ALLOC( X, limbs ); - ASSERT_ALLOC( Y, limbs ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, input_X->x, input_X->len ) - == 0 ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs, input_Y->x, input_Y->len ) - == 0 ); - /* condition is false */ TEST_CF_SECRET( X, bytes ); TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 0 ); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); /* condition is true */ @@ -387,9 +379,6 @@ void mpi_core_cond_assign( data_t * input_X, mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 1 ); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs < limbs ) @@ -407,16 +396,20 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_cond_swap( data_t * input_X, - data_t * input_Y, +void mpi_core_cond_swap( char * input_X, + char * input_Y, int input_bytes ) { mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; - size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); - size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t limbs_X; + size_t limbs_Y; + + TEST_EQUAL( mbedtls_test_read_mpi_core( &tmp_X, &limbs_X, input_X ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &tmp_Y, &limbs_Y, input_Y ), 0 ); + size_t limbs = limbs_X; size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); @@ -425,18 +418,9 @@ void mpi_core_cond_swap( data_t * input_X, TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); - ASSERT_ALLOC( tmp_X, limbs ); - ASSERT_ALLOC( tmp_Y, limbs ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, - input_X->x, input_X->len ) - == 0 ); ASSERT_ALLOC( X, limbs ); memcpy( X, tmp_X, bytes ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, - input_Y->x, input_Y->len ) - == 0 ); ASSERT_ALLOC( Y, limbs ); memcpy( Y, tmp_Y, bytes ); @@ -446,9 +430,6 @@ void mpi_core_cond_swap( data_t * input_X, mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 0 ); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - ASSERT_COMPARE( X, bytes, tmp_X, bytes ); ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); @@ -458,9 +439,6 @@ void mpi_core_cond_swap( data_t * input_X, mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 1 ); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs < limbs ) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 8ac1ef4977..556cca07f0 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -110,16 +110,20 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_raw_cond_assign( data_t * input_X, - data_t * input_Y, +void mpi_mod_raw_cond_assign( char * input_X, + char * input_Y, int input_bytes ) { mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; mbedtls_mpi_uint *buff_m = NULL; mbedtls_mpi_mod_modulus m; - size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); - size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t limbs_X; + size_t limbs_Y; + + TEST_EQUAL( mbedtls_test_read_mpi_core( &X, &limbs_X, input_X ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &Y, &limbs_Y, input_Y ), 0 ); + size_t limbs = limbs_X; size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); @@ -130,24 +134,12 @@ void mpi_mod_raw_cond_assign( data_t * input_X, TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); - ASSERT_ALLOC( X, limbs ); - ASSERT_ALLOC( Y, limbs ); - - ASSERT_ALLOC( buff_m, limbs ); - memset( buff_m, 0xFF, copy_bytes ); - TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( + ASSERT_ALLOC( buff_m, copy_limbs ); + memset( buff_m, 0xFF, copy_limbs ); + TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) - == 0 ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, - input_X->x, input_X->len ) - == 0 ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs, - input_Y->x, input_Y->len ) - == 0 ); + MBEDTLS_MPI_MOD_REP_MONTGOMERY ), 0 ); /* condition is false */ TEST_CF_SECRET( X, bytes ); @@ -155,9 +147,6 @@ void mpi_mod_raw_cond_assign( data_t * input_X, mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); /* condition is true */ @@ -166,9 +155,6 @@ void mpi_mod_raw_cond_assign( data_t * input_X, mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs len ); - size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t limbs_X; + size_t limbs_Y; + + TEST_EQUAL( mbedtls_test_read_mpi_core( &tmp_X, &limbs_X, input_X ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &tmp_Y, &limbs_Y, input_Y ), 0 ); + size_t limbs = limbs_X; size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); @@ -211,24 +201,16 @@ void mpi_mod_raw_cond_swap( data_t * input_X, TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); - ASSERT_ALLOC( tmp_X, limbs ); - ASSERT_ALLOC( tmp_Y, limbs ); - ASSERT_ALLOC( buff_m, copy_limbs ); - memset( buff_m, 0xFF, copy_bytes ); - TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( + memset( buff_m, 0xFF, copy_limbs ); + TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) - == 0 ); + MBEDTLS_MPI_MOD_REP_MONTGOMERY ), 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, input_X->x, input_X->len ) - == 0 ); ASSERT_ALLOC( X, limbs ); memcpy( X, tmp_X, bytes ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) - == 0 ); ASSERT_ALLOC( Y, bytes ); memcpy( Y, tmp_Y, bytes ); @@ -238,9 +220,6 @@ void mpi_mod_raw_cond_swap( data_t * input_X, mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - ASSERT_COMPARE( X, bytes, tmp_X, bytes ); ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); @@ -250,9 +229,6 @@ void mpi_mod_raw_cond_swap( data_t * input_X, mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs < limbs ) From a8cf998bc9569ce29dae28c3387a44882d226cdc Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 20 Oct 2022 12:27:36 +0200 Subject: [PATCH 0996/1028] Let the allocated memory visible for the memory sanitizer Signed-off-by: Gabor Mezei --- tests/suites/test_suite_bignum_core.function | 15 +++++++++++++++ tests/suites/test_suite_bignum_mod_raw.function | 12 ++++++++++++ 2 files changed, 27 insertions(+) diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 021b7b31cf..612a7c6bd4 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -371,6 +371,9 @@ void mpi_core_cond_assign( char * input_X, mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 0 ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); /* condition is true */ @@ -379,10 +382,16 @@ void mpi_core_cond_assign( char * input_X, mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 1 ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs < limbs ) { + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + ASSERT_COMPARE( X, copy_bytes, Y, copy_bytes ); TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); } @@ -430,6 +439,9 @@ void mpi_core_cond_swap( char * input_X, mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 0 ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + ASSERT_COMPARE( X, bytes, tmp_X, bytes ); ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); @@ -439,6 +451,9 @@ void mpi_core_cond_swap( char * input_X, mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 1 ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs < limbs ) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 556cca07f0..4b906751f2 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -147,6 +147,9 @@ void mpi_mod_raw_cond_assign( char * input_X, mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); /* condition is true */ @@ -155,6 +158,9 @@ void mpi_mod_raw_cond_assign( char * input_X, mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs Date: Mon, 7 Nov 2022 15:28:49 +0100 Subject: [PATCH 0997/1028] Fix outdated reference in debug message Signed-off-by: Jan Bruckner --- library/ssl_msg.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/library/ssl_msg.c b/library/ssl_msg.c index 4cd4107ca1..dbc6391885 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -1797,8 +1797,7 @@ int mbedtls_ssl_fetch_input( mbedtls_ssl_context *ssl, size_t nb_want ) if( ssl->f_recv == NULL && ssl->f_recv_timeout == NULL ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Bad usage of mbedtls_ssl_set_bio() " - "or mbedtls_ssl_set_bio()" ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, ( "Bad usage of mbedtls_ssl_set_bio() " ) ); return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } @@ -2013,8 +2012,7 @@ int mbedtls_ssl_flush_output( mbedtls_ssl_context *ssl ) if( ssl->f_send == NULL ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Bad usage of mbedtls_ssl_set_bio() " - "or mbedtls_ssl_set_bio()" ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, ( "Bad usage of mbedtls_ssl_set_bio() " ) ); return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } From 82ba274c01378f9e7e5ff72ffae6d8819d157309 Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Fri, 4 Nov 2022 04:01:23 -0400 Subject: [PATCH 0998/1028] Deprecate mbedtls_asn1_free_named_data() Signed-off-by: Glenn Strauss --- ChangeLog.d/mbedtls_asn1_type_free.txt | 4 ++++ include/mbedtls/asn1.h | 16 ++++++++++++---- library/asn1parse.c | 2 ++ tests/suites/test_suite_asn1parse.data | 5 +++++ tests/suites/test_suite_asn1parse.function | 4 ++-- 5 files changed, 25 insertions(+), 6 deletions(-) diff --git a/ChangeLog.d/mbedtls_asn1_type_free.txt b/ChangeLog.d/mbedtls_asn1_type_free.txt index 87ac5ec5bb..81f3a2007f 100644 --- a/ChangeLog.d/mbedtls_asn1_type_free.txt +++ b/ChangeLog.d/mbedtls_asn1_type_free.txt @@ -1,2 +1,6 @@ Features * Shared code to free x509 structs like mbedtls_x509_named_data +New deprecations + * Deprecate mbedtls_asn1_free_named_data(). + Use mbedtls_asn1_free_named_data_list() + or mbedtls_asn1_free_named_data_list_shallow() diff --git a/include/mbedtls/asn1.h b/include/mbedtls/asn1.h index 5d274950ae..8b66ee228c 100644 --- a/include/mbedtls/asn1.h +++ b/include/mbedtls/asn1.h @@ -24,6 +24,7 @@ #include "mbedtls/private_access.h" #include "mbedtls/build_info.h" +#include "mbedtls/platform_util.h" #include @@ -606,22 +607,29 @@ int mbedtls_asn1_get_alg_null( unsigned char **p, const mbedtls_asn1_named_data *mbedtls_asn1_find_named_data( const mbedtls_asn1_named_data *list, const char *oid, size_t len ); +#if !defined(MBEDTLS_DEPRECATED_REMOVED) /** * \brief Free a mbedtls_asn1_named_data entry * + * \deprecated This function is deprecated and will be removed in a + * future version of the library. + * Please use mbedtls_asn1_free_named_data_list() + * or mbedtls_asn1_free_named_data_list_shallow(). + * * \param entry The named data entry to free. * This function calls mbedtls_free() on * `entry->oid.p` and `entry->val.p`. */ -void mbedtls_asn1_free_named_data( mbedtls_asn1_named_data *entry ); +void MBEDTLS_DEPRECATED mbedtls_asn1_free_named_data( mbedtls_asn1_named_data *entry ); +#endif /* MBEDTLS_DEPRECATED_REMOVED */ /** * \brief Free all entries in a mbedtls_asn1_named_data list. * * \param head Pointer to the head of the list of named data entries to free. - * This function calls mbedtls_asn1_free_named_data() and - * mbedtls_free() on each list element and - * sets \c *head to \c NULL. + * This function calls mbedtls_free() on + * `entry->oid.p` and `entry->val.p` and then on `entry` + * for each list entry, and sets \c *head to \c NULL. */ void mbedtls_asn1_free_named_data_list( mbedtls_asn1_named_data **head ); diff --git a/library/asn1parse.c b/library/asn1parse.c index 4bc17710c0..28a3b144bf 100644 --- a/library/asn1parse.c +++ b/library/asn1parse.c @@ -431,6 +431,7 @@ int mbedtls_asn1_get_alg_null( unsigned char **p, return( 0 ); } +#if !defined(MBEDTLS_DEPRECATED_REMOVED) void mbedtls_asn1_free_named_data( mbedtls_asn1_named_data *cur ) { if( cur == NULL ) @@ -441,6 +442,7 @@ void mbedtls_asn1_free_named_data( mbedtls_asn1_named_data *cur ) mbedtls_platform_zeroize( cur, sizeof( mbedtls_asn1_named_data ) ); } +#endif /* MBEDTLS_DEPRECATED_REMOVED */ void mbedtls_asn1_free_named_data_list( mbedtls_asn1_named_data **head ) { diff --git a/tests/suites/test_suite_asn1parse.data b/tests/suites/test_suite_asn1parse.data index 36ab1e481c..c129e3c8f7 100644 --- a/tests/suites/test_suite_asn1parse.data +++ b/tests/suites/test_suite_asn1parse.data @@ -608,18 +608,23 @@ Find named data: first match find_named_data:"414141":"414141":"434343":"444444":"414141":0:0 Free named data: null pointer +depends_on:MBEDTLS_TEST_DEPRECATED free_named_data_null: Free named data: all null +depends_on:MBEDTLS_TEST_DEPRECATED free_named_data:0:0:0 Free named data: with oid +depends_on:MBEDTLS_TEST_DEPRECATED free_named_data:1:0:0 Free named data: with val +depends_on:MBEDTLS_TEST_DEPRECATED free_named_data:0:1:0 Free named data: with next +depends_on:MBEDTLS_TEST_DEPRECATED free_named_data:0:0:1 Free named data list (empty) diff --git a/tests/suites/test_suite_asn1parse.function b/tests/suites/test_suite_asn1parse.function index 002d8c4269..dac8e312b8 100644 --- a/tests/suites/test_suite_asn1parse.function +++ b/tests/suites/test_suite_asn1parse.function @@ -735,7 +735,7 @@ void find_named_data( data_t *oid0, data_t *oid1, data_t *oid2, data_t *oid3, } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:!MBEDTLS_DEPRECATED_REMOVED */ void free_named_data_null( ) { mbedtls_asn1_free_named_data( NULL ); @@ -743,7 +743,7 @@ void free_named_data_null( ) } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:!MBEDTLS_DEPRECATED_REMOVED */ void free_named_data( int with_oid, int with_val, int with_next ) { mbedtls_asn1_named_data next = From aa36c2a6f66a2db081238f3e202ca28a625fae3b Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Mon, 7 Nov 2022 20:08:54 -0500 Subject: [PATCH 0999/1028] Update tests/suites/test_suite_asn1parse.function Co-authored-by: Andrzej Kurek Signed-off-by: Glenn Strauss --- tests/suites/test_suite_asn1parse.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_asn1parse.function b/tests/suites/test_suite_asn1parse.function index dac8e312b8..6d7e49ee47 100644 --- a/tests/suites/test_suite_asn1parse.function +++ b/tests/suites/test_suite_asn1parse.function @@ -743,7 +743,7 @@ void free_named_data_null( ) } /* END_CASE */ -/* BEGIN_CASE depends_on:!MBEDTLS_DEPRECATED_REMOVED */ +/* BEGIN_CASE depends_on:!MBEDTLS_DEPRECATED_REMOVED:!MBEDTLS_DEPRECATED_WARNING */ void free_named_data( int with_oid, int with_val, int with_next ) { mbedtls_asn1_named_data next = From 2a642996483a26166aa20284d46540a10a992aa7 Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Mon, 7 Nov 2022 20:09:38 -0500 Subject: [PATCH 1000/1028] Update tests/suites/test_suite_asn1parse.function Co-authored-by: Andrzej Kurek Signed-off-by: Glenn Strauss --- tests/suites/test_suite_asn1parse.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_asn1parse.function b/tests/suites/test_suite_asn1parse.function index 6d7e49ee47..62669b35f1 100644 --- a/tests/suites/test_suite_asn1parse.function +++ b/tests/suites/test_suite_asn1parse.function @@ -735,7 +735,7 @@ void find_named_data( data_t *oid0, data_t *oid1, data_t *oid2, data_t *oid3, } /* END_CASE */ -/* BEGIN_CASE depends_on:!MBEDTLS_DEPRECATED_REMOVED */ +/* BEGIN_CASE depends_on:!MBEDTLS_DEPRECATED_REMOVED:!MBEDTLS_DEPRECATED_WARNING */ void free_named_data_null( ) { mbedtls_asn1_free_named_data( NULL ); From 0750d08601df0c68f25ee0f929732f67c252f7ed Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Tue, 8 Nov 2022 02:25:01 -0500 Subject: [PATCH 1001/1028] Add comments for some forbidden aliasing in bignum Signed-off-by: Glenn Strauss --- include/mbedtls/bignum.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/include/mbedtls/bignum.h b/include/mbedtls/bignum.h index ee37430488..9d15955f34 100644 --- a/include/mbedtls/bignum.h +++ b/include/mbedtls/bignum.h @@ -758,11 +758,11 @@ int mbedtls_mpi_mul_int( mbedtls_mpi *X, const mbedtls_mpi *A, * * \param Q The destination MPI for the quotient. * This may be \c NULL if the value of the - * quotient is not needed. + * quotient is not needed. This must not alias A or B. * \param R The destination MPI for the remainder value. * This may be \c NULL if the value of the - * remainder is not needed. - * \param A The dividend. This must point to an initialized MPi. + * remainder is not needed. This must not alias A or B. + * \param A The dividend. This must point to an initialized MPI. * \param B The divisor. This must point to an initialized MPI. * * \return \c 0 if successful. @@ -779,10 +779,10 @@ int mbedtls_mpi_div_mpi( mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A, * * \param Q The destination MPI for the quotient. * This may be \c NULL if the value of the - * quotient is not needed. + * quotient is not needed. This must not alias A. * \param R The destination MPI for the remainder value. * This may be \c NULL if the value of the - * remainder is not needed. + * remainder is not needed. This must not alias A. * \param A The dividend. This must point to an initialized MPi. * \param b The divisor. * @@ -837,6 +837,7 @@ int mbedtls_mpi_mod_int( mbedtls_mpi_uint *r, const mbedtls_mpi *A, * \brief Perform a sliding-window exponentiation: X = A^E mod N * * \param X The destination MPI. This must point to an initialized MPI. + * This must not alias E or N. * \param A The base of the exponentiation. * This must point to an initialized MPI. * \param E The exponent MPI. This must point to an initialized MPI. From e5991328ffaa3139f6a747cd6a68fbac55e931aa Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 7 Nov 2022 14:03:44 +0800 Subject: [PATCH 1002/1028] fix tls13 psk only test fail Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 17 ++++++-- tests/opt-testcases/tls13-misc.sh | 70 +++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+), 4 deletions(-) create mode 100755 tests/opt-testcases/tls13-misc.sh diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 288332865b..598ca91bfa 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -934,6 +934,7 @@ static int ssl_tls13_client_hello_has_exts( mbedtls_ssl_context *ssl, return( masked == exts_mask ); } +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_client_hello_has_exts_for_ephemeral_key_exchange( mbedtls_ssl_context *ssl ) @@ -944,8 +945,9 @@ static int ssl_tls13_client_hello_has_exts_for_ephemeral_key_exchange( MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) | MBEDTLS_SSL_EXT_MASK( SIG_ALG ) ) ); } +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_client_hello_has_exts_for_psk_key_exchange( mbedtls_ssl_context *ssl ) @@ -955,7 +957,9 @@ static int ssl_tls13_client_hello_has_exts_for_psk_key_exchange( MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | MBEDTLS_SSL_EXT_MASK( PSK_KEY_EXCHANGE_MODES ) ) ); } +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED */ +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_client_hello_has_exts_for_psk_ephemeral_key_exchange( mbedtls_ssl_context *ssl ) @@ -967,19 +971,24 @@ static int ssl_tls13_client_hello_has_exts_for_psk_ephemeral_key_exchange( MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | MBEDTLS_SSL_EXT_MASK( PSK_KEY_EXCHANGE_MODES ) ) ); } -#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED */ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_check_ephemeral_key_exchange( mbedtls_ssl_context *ssl ) { +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) return( mbedtls_ssl_conf_tls13_ephemeral_enabled( ssl ) && ssl_tls13_client_hello_has_exts_for_ephemeral_key_exchange( ssl ) ); +#else + ((void) ssl); + return( 0 ); +#endif } MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_check_psk_key_exchange( mbedtls_ssl_context *ssl ) { -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) return( mbedtls_ssl_conf_tls13_psk_enabled( ssl ) && mbedtls_ssl_tls13_psk_enabled( ssl ) && ssl_tls13_client_hello_has_exts_for_psk_key_exchange( ssl ) ); @@ -992,7 +1001,7 @@ static int ssl_tls13_check_psk_key_exchange( mbedtls_ssl_context *ssl ) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_check_psk_ephemeral_key_exchange( mbedtls_ssl_context *ssl ) { -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) return( mbedtls_ssl_conf_tls13_psk_ephemeral_enabled( ssl ) && mbedtls_ssl_tls13_psk_ephemeral_enabled( ssl ) && ssl_tls13_client_hello_has_exts_for_psk_ephemeral_key_exchange( ssl ) ); diff --git a/tests/opt-testcases/tls13-misc.sh b/tests/opt-testcases/tls13-misc.sh new file mode 100755 index 0000000000..661b3500b1 --- /dev/null +++ b/tests/opt-testcases/tls13-misc.sh @@ -0,0 +1,70 @@ +#!/bin/sh + +# tls13-misc.sh +# +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +requires_gnutls_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_all_configs_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +run_test "TLS 1.3: G->m: PSK: configured psk only, good." \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ + "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:+GROUP-ALL \ + --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ + localhost" \ + 0 \ + -s "found psk key exchange modes extension" \ + -s "found pre_shared_key extension" \ + -s "Found PSK_EPHEMERAL KEX MODE" \ + -s "Found PSK KEX MODE" \ + -s "key exchange mode: psk$" + +requires_gnutls_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +requires_all_configs_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +run_test "TLS 1.3: G->m: PSK: configured psk_ephemeral only, good." \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ + "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:+GROUP-ALL \ + --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ + localhost" \ + 0 \ + -s "found psk key exchange modes extension" \ + -s "found pre_shared_key extension" \ + -s "Found PSK_EPHEMERAL KEX MODE" \ + -s "Found PSK KEX MODE" \ + -s "key exchange mode: psk_ephemeral$" + +requires_gnutls_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +run_test "TLS 1.3: G->m: PSK: configured ephemeral only, good." \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ + "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:+GROUP-ALL \ + --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ + localhost" \ + 0 \ + -s "key exchange mode: ephemeral$" + From ea52ed91cf746915736625ad6205c5adc615e160 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 8 Nov 2022 21:01:17 +0800 Subject: [PATCH 1003/1028] fix typo and spell issues Signed-off-by: Jerry Yu --- library/ssl_misc.h | 14 +++++++------- library/ssl_tls.c | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 7c32969b2b..77b091d030 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -78,7 +78,7 @@ #define MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST ( -MBEDTLS_SSL_HS_SERVER_HELLO ) /* - * Inernal identity of handshake extensions + * Internal identity of handshake extensions */ #define MBEDTLS_SSL_EXT_ID_UNRECOGNIZED 0 #define MBEDTLS_SSL_EXT_ID_SERVERNAME 1 @@ -138,8 +138,8 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); * with an "illegal_parameter" alert. */ -/* Extensions that not recognized by TLS 1.3 */ -#define MBEDTLS_SSL_TLS1_3_EXT_MASK_UNREOGNIZED \ +/* Extensions that are not recognized by TLS 1.3 */ +#define MBEDTLS_SSL_TLS1_3_EXT_MASK_UNRECOGNIZED \ ( MBEDTLS_SSL_EXT_MASK( SUPPORTED_POINT_FORMATS ) | \ MBEDTLS_SSL_EXT_MASK( ENCRYPT_THEN_MAC ) | \ MBEDTLS_SSL_EXT_MASK( EXTENDED_MASTER_SECRET ) | \ @@ -169,7 +169,7 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); MBEDTLS_SSL_EXT_MASK( CERT_AUTH ) | \ MBEDTLS_SSL_EXT_MASK( POST_HANDSHAKE_AUTH ) | \ MBEDTLS_SSL_EXT_MASK( SIG_ALG_CERT ) | \ - MBEDTLS_SSL_TLS1_3_EXT_MASK_UNREOGNIZED ) + MBEDTLS_SSL_TLS1_3_EXT_MASK_UNRECOGNIZED ) /* RFC 8446 section 4.2. Allowed extensions for EncryptedExtensions */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE \ @@ -191,7 +191,7 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); MBEDTLS_SSL_EXT_MASK( CERT_AUTH ) | \ MBEDTLS_SSL_EXT_MASK( OID_FILTERS ) | \ MBEDTLS_SSL_EXT_MASK( SIG_ALG_CERT ) | \ - MBEDTLS_SSL_TLS1_3_EXT_MASK_UNREOGNIZED ) + MBEDTLS_SSL_TLS1_3_EXT_MASK_UNRECOGNIZED ) /* RFC 8446 section 4.2. Allowed extensions for Certificate */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT \ @@ -213,7 +213,7 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); /* RFC 8446 section 4.2. Allowed extensions for NewSessionTicket */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_NST \ ( MBEDTLS_SSL_EXT_MASK( EARLY_DATA ) | \ - MBEDTLS_SSL_TLS1_3_EXT_MASK_UNREOGNIZED ) + MBEDTLS_SSL_TLS1_3_EXT_MASK_UNRECOGNIZED ) /* * Helper macros for function call with return check. @@ -1950,7 +1950,7 @@ static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ /* - * Helper functions for extensions checking and convert. + * Helper functions for extensions checking. */ MBEDTLS_CHECK_RETURN_CRITICAL diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 04d2ef440b..cf71d263a5 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -618,7 +618,7 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ) #if defined(MBEDTLS_DEBUG_C) static const char *extension_name_table[] = { - [MBEDTLS_SSL_EXT_ID_UNRECOGNIZED] = "unreognized", + [MBEDTLS_SSL_EXT_ID_UNRECOGNIZED] = "unrecognized", [MBEDTLS_SSL_EXT_ID_SERVERNAME] = "server_name", [MBEDTLS_SSL_EXT_ID_MAX_FRAGMENT_LENGTH] = "max_fragment_length", [MBEDTLS_SSL_EXT_ID_STATUS_REQUEST] = "status_request", @@ -648,7 +648,7 @@ static const char *extension_name_table[] = { [MBEDTLS_SSL_EXT_ID_SESSION_TICKET] = "session_ticket" }; -static unsigned int extension_type_tbl[]={ +static unsigned int extension_type_table[]={ [MBEDTLS_SSL_EXT_ID_UNRECOGNIZED] = 0xff, [MBEDTLS_SSL_EXT_ID_SERVERNAME] = MBEDTLS_TLS_EXT_SERVERNAME, [MBEDTLS_SSL_EXT_ID_MAX_FRAGMENT_LENGTH] = MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH, @@ -755,7 +755,7 @@ void mbedtls_ssl_print_extensions( const mbedtls_ssl_context *ssl, i++ ) { mbedtls_ssl_print_extension_type( - ssl, level, file, line, hs_msg_type, extension_type_tbl[i], + ssl, level, file, line, hs_msg_type, extension_type_table[i], extensions_mask & ( 1 << i ) ? "was" : "was not", extra ); } } From c437ee3bac80e52b5d6d637f6816426fb12a7c2a Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 8 Nov 2022 21:04:15 +0800 Subject: [PATCH 1004/1028] fix wrong return value Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 598ca91bfa..378ce8fc91 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -1447,8 +1447,8 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, 3, ( "pre_shared_key is not last extension." ) ); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); } MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, 4 ); From c018204019a6a935ae0bf3ab888cd7a6d7fc2039 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 8 Nov 2022 08:12:56 -0500 Subject: [PATCH 1005/1028] Improve error injection in EC J-PAKE tests Instead of corrupting the public key part of the message, corrupt the proof part. A proof is conceptually similar to a signature, and changing anything in it should make it invalid with a high probability. Also, instead of shifting data, perform a bitflip. Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_psa_crypto.function | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 36a8efaae5..779f594dca 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -790,8 +790,8 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, if( inject_error == 1 ) { - buffer0[s_x1_pk_off + 8] >>= 4; - buffer0[s_x2_pk_off + 7] <<= 4; + buffer0[s_x1_pr_off + 8] ^= 1; + buffer0[s_x2_pr_off + 7] ^= 1; expected_status = PSA_ERROR_DATA_INVALID; } @@ -1013,8 +1013,8 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, if( inject_error == 2 ) { - buffer1[c_x1_pk_off + 12] >>= 4; - buffer1[c_x2_pk_off + 7] <<= 4; + buffer1[c_x1_pr_off + 12] ^= 1; + buffer1[c_x2_pr_off + 7] ^= 1; expected_status = PSA_ERROR_DATA_INVALID; } From b95dd3683b99d5a34876952f65d915656804c819 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 8 Nov 2022 21:19:34 +0800 Subject: [PATCH 1006/1028] Add missing mask set and tls13 unrecognized extension Signed-off-by: Jerry Yu --- library/ssl_misc.h | 1 + library/ssl_tls.c | 5 +++++ library/ssl_tls13_server.c | 9 +++++++++ 3 files changed, 15 insertions(+) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 77b091d030..ad8754cac2 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -144,6 +144,7 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); MBEDTLS_SSL_EXT_MASK( ENCRYPT_THEN_MAC ) | \ MBEDTLS_SSL_EXT_MASK( EXTENDED_MASTER_SECRET ) | \ MBEDTLS_SSL_EXT_MASK( SESSION_TICKET ) | \ + MBEDTLS_SSL_EXT_MASK( TRUNCATED_HMAC ) | \ MBEDTLS_SSL_EXT_MASK( UNRECOGNIZED ) ) /* RFC 8446 section 4.2. Allowed extensions for ClienHello */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index cf71d263a5..4787ca0585 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -9155,6 +9155,11 @@ int mbedtls_ssl_write_alpn_ext( mbedtls_ssl_context *ssl, p[6] = MBEDTLS_BYTE_0( protocol_name_len ); memcpy( p + 7, ssl->alpn_chosen, protocol_name_len ); + +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_ALPN ); +#endif + return ( 0 ); } #endif /* MBEDTLS_SSL_ALPN */ diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 378ce8fc91..051afa2705 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -700,6 +700,8 @@ static int ssl_tls13_write_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent selected_identity: %u", ssl->handshake->selected_identity ) ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_PRE_SHARED_KEY ); + return( 0 ); } @@ -1812,6 +1814,9 @@ static int ssl_tls13_write_server_hello_supported_versions_ext( *out_len = 6; + mbedtls_ssl_tls13_set_hs_sent_ext_mask( + ssl, MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ); + return( 0 ); } @@ -1918,6 +1923,8 @@ static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl, *out_len = p - buf; + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_KEY_SHARE ); + return( 0 ); } @@ -1982,6 +1989,8 @@ static int ssl_tls13_write_hrr_key_share_ext( mbedtls_ssl_context *ssl, *out_len = 6; + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_KEY_SHARE ); + return( 0 ); } From 79aa721adee6042afecae06c124d35a36337b18a Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 8 Nov 2022 21:30:21 +0800 Subject: [PATCH 1007/1028] Rename ext print function and macro Signed-off-by: Jerry Yu --- library/ssl_debug_helpers.h | 19 +++++++++---------- library/ssl_tls.c | 14 ++++++-------- library/ssl_tls13_client.c | 6 +++--- library/ssl_tls13_generic.c | 8 ++++---- library/ssl_tls13_server.c | 2 +- 5 files changed, 23 insertions(+), 26 deletions(-) diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index 8fce87a985..ad84619a0d 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -50,12 +50,10 @@ void mbedtls_ssl_print_extensions( const mbedtls_ssl_context *ssl, int hs_msg_type, uint32_t extensions_mask, const char *extra ); -void mbedtls_ssl_print_extension_type( const mbedtls_ssl_context *ssl, - int level, const char *file, int line, - int hs_msg_type, - unsigned int extension_type, - const char *extra_msg0, - const char *extra_msg1 ); +void mbedtls_ssl_print_extension( const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + int hs_msg_type, unsigned int extension_type, + const char *extra_msg0, const char *extra_msg1 ); #define MBEDTLS_SSL_PRINT_SENT_EXTS( level, hs_msg_type ) \ mbedtls_ssl_print_extensions( ssl, level, __FILE__, __LINE__, \ @@ -69,16 +67,17 @@ void mbedtls_ssl_print_extension_type( const mbedtls_ssl_context *ssl, ssl->handshake->received_extensions, \ "received" ) -#define MBEDTLS_SSL_PRINT_EXT_TYPE( level, hs_msg_type, extension_type, extra ) \ - mbedtls_ssl_print_extension_type( ssl, level, __FILE__, __LINE__, \ - hs_msg_type, extension_type, extra, NULL ) +#define MBEDTLS_SSL_PRINT_EXT( level, hs_msg_type, extension_type, extra ) \ + mbedtls_ssl_print_extension( ssl, level, __FILE__, __LINE__, \ + hs_msg_type, extension_type, \ + extra, NULL ) #else #define MBEDTLS_SSL_PRINT_SENT_EXTS( level, hs_msg_type ) #define MBEDTLS_SSL_PRINT_RECEIVED_EXTS( level, hs_msg_type ) -#define MBEDTLS_SSL_PRINT_EXT_TYPE( level, hs_msg_type, extension_type, extra ) +#define MBEDTLS_SSL_PRINT_EXT( level, hs_msg_type, extension_type, extra ) #endif /* MBEDTLS_DEBUG_C */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 4787ca0585..efe24634fe 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -704,15 +704,13 @@ static const char *ssl_tls13_get_hs_msg_name( int hs_msg_type ) case MBEDTLS_SSL_HS_CERTIFICATE_REQUEST: return( "CertificateRequest" ); } - return( NULL ); + return( "Unknown" ); } -void mbedtls_ssl_print_extension_type( const mbedtls_ssl_context *ssl, - int level, const char *file, int line, - int hs_msg_type, - unsigned int extension_type, - const char *extra_msg0, - const char *extra_msg1 ) +void mbedtls_ssl_print_extension( const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + int hs_msg_type, unsigned int extension_type, + const char *extra_msg0, const char *extra_msg1 ) { const char *extra_msg; if( extra_msg0 && extra_msg1 ) @@ -754,7 +752,7 @@ void mbedtls_ssl_print_extensions( const mbedtls_ssl_context *ssl, i < sizeof( extension_name_table ) / sizeof( extension_name_table[0] ); i++ ) { - mbedtls_ssl_print_extension_type( + mbedtls_ssl_print_extension( ssl, level, file, line, hs_msg_type, extension_type_table[i], extensions_mask & ( 1 << i ) ? "was" : "was not", extra ); } diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index fff0febed8..f4502d290f 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2025,7 +2025,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, break; #endif /* MBEDTLS_SSL_ALPN */ default: - MBEDTLS_SSL_PRINT_EXT_TYPE( + MBEDTLS_SSL_PRINT_EXT( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, extension_type, "( ignored )" ); break; @@ -2213,7 +2213,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, break; default: - MBEDTLS_SSL_PRINT_EXT_TYPE( + MBEDTLS_SSL_PRINT_EXT( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, extension_type, "( ignored )" ); break; @@ -2504,7 +2504,7 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, switch( extension_type ) { default: - MBEDTLS_SSL_PRINT_EXT_TYPE( + MBEDTLS_SSL_PRINT_EXT( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, extension_type, "( ignored )" ); break; diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index a9c8c973f8..39b86b984a 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -537,7 +537,7 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, switch( extension_type ) { default: - MBEDTLS_SSL_PRINT_EXT_TYPE( + MBEDTLS_SSL_PRINT_EXT( 3, MBEDTLS_SSL_HS_CERTIFICATE, extension_type, "( ignored )" ); break; @@ -1545,12 +1545,12 @@ int mbedtls_ssl_tls13_check_received_extension( uint32_t extension_mask = mbedtls_ssl_get_extension_mask( received_extension_type ); - MBEDTLS_SSL_PRINT_EXT_TYPE( + MBEDTLS_SSL_PRINT_EXT( 3, hs_msg_type, received_extension_type, "received" ); if( ( extension_mask & hs_msg_allowed_extensions_mask ) == 0 ) { - MBEDTLS_SSL_PRINT_EXT_TYPE( + MBEDTLS_SSL_PRINT_EXT( 3, hs_msg_type, received_extension_type, "is illegal" ); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, @@ -1577,7 +1577,7 @@ int mbedtls_ssl_tls13_check_received_extension( return( 0 ); } - MBEDTLS_SSL_PRINT_EXT_TYPE( + MBEDTLS_SSL_PRINT_EXT( 3, hs_msg_type, received_extension_type, "is unsupported" ); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT, diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 051afa2705..28f242295b 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -1614,7 +1614,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ default: - MBEDTLS_SSL_PRINT_EXT_TYPE( + MBEDTLS_SSL_PRINT_EXT( 3, MBEDTLS_SSL_HS_CLIENT_HELLO, extension_type, "( ignored )" ); break; From 7de2ff0310f4c7e7493844533e10785a6207a2a8 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 8 Nov 2022 21:43:46 +0800 Subject: [PATCH 1008/1028] Refactor extension list print Signed-off-by: Jerry Yu --- library/ssl_client.c | 3 ++- library/ssl_debug_helpers.h | 16 +++------------- library/ssl_tls.c | 2 +- library/ssl_tls13_client.c | 12 ++++++++---- library/ssl_tls13_generic.c | 6 ++++-- library/ssl_tls13_server.c | 17 +++++++++++------ 6 files changed, 29 insertions(+), 27 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index ebf0fa701e..b226caffff 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -675,7 +675,8 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_CLIENT_HELLO ); + MBEDTLS_SSL_PRINT_EXTS( + 3, MBEDTLS_SSL_HS_CLIENT_HELLO, ssl->handshake->sent_extensions ); #endif *out_len = p - buf; diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index ad84619a0d..ccdda2a0d6 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -55,17 +55,9 @@ void mbedtls_ssl_print_extension( const mbedtls_ssl_context *ssl, int hs_msg_type, unsigned int extension_type, const char *extra_msg0, const char *extra_msg1 ); -#define MBEDTLS_SSL_PRINT_SENT_EXTS( level, hs_msg_type ) \ +#define MBEDTLS_SSL_PRINT_EXTS( level, hs_msg_type, extension_mask ) \ mbedtls_ssl_print_extensions( ssl, level, __FILE__, __LINE__, \ - hs_msg_type, \ - ssl->handshake->sent_extensions, \ - "sent" ) - -#define MBEDTLS_SSL_PRINT_RECEIVED_EXTS( level, hs_msg_type ) \ - mbedtls_ssl_print_extensions( ssl, level, __FILE__, __LINE__, \ - hs_msg_type, \ - ssl->handshake->received_extensions, \ - "received" ) + hs_msg_type, extension_mask, NULL ) #define MBEDTLS_SSL_PRINT_EXT( level, hs_msg_type, extension_type, extra ) \ mbedtls_ssl_print_extension( ssl, level, __FILE__, __LINE__, \ @@ -73,9 +65,7 @@ void mbedtls_ssl_print_extension( const mbedtls_ssl_context *ssl, extra, NULL ) #else -#define MBEDTLS_SSL_PRINT_SENT_EXTS( level, hs_msg_type ) - -#define MBEDTLS_SSL_PRINT_RECEIVED_EXTS( level, hs_msg_type ) +#define MBEDTLS_SSL_PRINT_EXTS( level, hs_msg_type, extension_mask ) #define MBEDTLS_SSL_PRINT_EXT( level, hs_msg_type, extension_type, extra ) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index efe24634fe..ea8464f0c8 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -754,7 +754,7 @@ void mbedtls_ssl_print_extensions( const mbedtls_ssl_context *ssl, { mbedtls_ssl_print_extension( ssl, level, file, line, hs_msg_type, extension_type_table[i], - extensions_mask & ( 1 << i ) ? "was" : "was not", extra ); + extensions_mask & ( 1 << i ) ? "exists" : "does not exists", extra ); } } diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index f4502d290f..364e886bca 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1742,7 +1742,8 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, hs_msg_type ); + MBEDTLS_SSL_PRINT_EXTS( + 3, hs_msg_type, ssl->handshake->received_extensions ); cleanup: @@ -2034,7 +2035,8 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS ); + MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, + ssl->handshake->received_extensions ); /* Check that we consumed all the message. */ if( p != end ) @@ -2222,7 +2224,8 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST ); + MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, + ssl->handshake->received_extensions ); /* Check that we consumed all the message. */ if( p != end ) @@ -2513,7 +2516,8 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET ); + MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, + ssl->handshake->received_extensions ); return( 0 ); } diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 39b86b984a..a39949c1cd 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -546,7 +546,8 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE ); + MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE, + ssl->handshake->received_extensions ); } exit: @@ -885,7 +886,8 @@ static int ssl_tls13_write_certificate_body( mbedtls_ssl_context *ssl, *out_len = p - buf; - MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE ); + MBEDTLS_SSL_PRINT_EXTS( + 3, MBEDTLS_SSL_HS_CERTIFICATE, ssl->handshake->sent_extensions ); return( 0 ); } diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 28f242295b..597fbb7e63 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -1623,7 +1623,8 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_CLIENT_HELLO ); + MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_CLIENT_HELLO, + ssl->handshake->received_extensions ); mbedtls_ssl_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, @@ -2145,9 +2146,10 @@ static int ssl_tls13_write_server_hello_body( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "server hello", buf, *out_len ); - MBEDTLS_SSL_PRINT_SENT_EXTS( + MBEDTLS_SSL_PRINT_EXTS( 3, is_hrr ? MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST : - MBEDTLS_SSL_HS_SERVER_HELLO ); + MBEDTLS_SSL_HS_SERVER_HELLO, + ssl->handshake->sent_extensions ); return( ret ); } @@ -2333,7 +2335,8 @@ static int ssl_tls13_write_encrypted_extensions_body( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 4, "encrypted extensions", buf, *out_len ); - MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS ); + MBEDTLS_SSL_PRINT_EXTS( + 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, ssl->handshake->sent_extensions ); return( 0 ); } @@ -2464,7 +2467,8 @@ static int ssl_tls13_write_certificate_request_body( mbedtls_ssl_context *ssl, *out_len = p - buf; - MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST ); + MBEDTLS_SSL_PRINT_EXTS( + 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, ssl->handshake->sent_extensions ); return( 0 ); } @@ -2861,7 +2865,8 @@ static int ssl_tls13_write_new_session_ticket_body( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 4, "ticket", buf, *out_len ); MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write new session ticket" ) ); - MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET ); + MBEDTLS_SSL_PRINT_EXTS( + 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, ssl->handshake->sent_extensions ); return( 0 ); } From 616ba75c233b47dac91ac652621acb15b30a32c9 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 8 Nov 2022 21:49:47 +0800 Subject: [PATCH 1009/1028] move test cases and mark `tls13-kex-modes.sh` as locked Signed-off-by: Jerry Yu --- tests/opt-testcases/tls13-kex-modes.sh | 215 +------------------------ tests/opt-testcases/tls13-misc.sh | 214 ++++++++++++++++++++++++ 2 files changed, 216 insertions(+), 213 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index b1320c5b59..2681f61f17 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -18,219 +18,8 @@ # limitations under the License. # -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED - -run_test "TLS 1.3: PSK: No valid ciphersuite. G->m" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ - "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-CIPHER-ALL:+AES-256-GCM:+AEAD:+SHA384:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ - --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ - localhost" \ - 1 \ - -s "found psk key exchange modes extension" \ - -s "found pre_shared_key extension" \ - -s "Found PSK_EPHEMERAL KEX MODE" \ - -s "Found PSK KEX MODE" \ - -s "No matched ciphersuite" - -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED - -run_test "TLS 1.3: PSK: No valid ciphersuite. O->m" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ - "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -ciphersuites TLS_AES_256_GCM_SHA384\ - -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ - 1 \ - -s "found psk key exchange modes extension" \ - -s "found pre_shared_key extension" \ - -s "Found PSK_EPHEMERAL KEX MODE" \ - -s "Found PSK KEX MODE" \ - -s "No matched ciphersuite" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Multiple PSKs: valid ticket, reconnect with ticket" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8" \ - "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 2" \ - -s "sent selected_identity: 0" \ - -s "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: psk$" \ - -S "key exchange mode: ephemeral$" \ - -S "ticket is not authentic" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Multiple PSKs: invalid ticket, reconnect with PSK" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=1" \ - "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 2" \ - -s "sent selected_identity: 1" \ - -s "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: psk$" \ - -S "key exchange mode: ephemeral$" \ - -s "ticket is not authentic" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Session resumption failure, ticket authentication failed." \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=1" \ - "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 1" \ - -S "sent selected_identity:" \ - -s "key exchange mode: ephemeral" \ - -S "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: psk$" \ - -s "ticket is not authentic" \ - -S "ticket is expired" \ - -S "Invalid ticket start time" \ - -S "Ticket age exceeds limitation" \ - -S "Ticket age outside tolerance window" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Session resumption failure, ticket expired." \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=2" \ - "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 1" \ - -S "sent selected_identity:" \ - -s "key exchange mode: ephemeral" \ - -S "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: psk$" \ - -S "ticket is not authentic" \ - -s "ticket is expired" \ - -S "Invalid ticket start time" \ - -S "Ticket age exceeds limitation" \ - -S "Ticket age outside tolerance window" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Session resumption failure, invalid start time." \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=3" \ - "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 1" \ - -S "sent selected_identity:" \ - -s "key exchange mode: ephemeral" \ - -S "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: psk$" \ - -S "ticket is not authentic" \ - -S "ticket is expired" \ - -s "Invalid ticket start time" \ - -S "Ticket age exceeds limitation" \ - -S "Ticket age outside tolerance window" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Session resumption failure, ticket expired. too old" \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=4" \ - "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 1" \ - -S "sent selected_identity:" \ - -s "key exchange mode: ephemeral" \ - -S "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: psk$" \ - -S "ticket is not authentic" \ - -S "ticket is expired" \ - -S "Invalid ticket start time" \ - -s "Ticket age exceeds limitation" \ - -S "Ticket age outside tolerance window" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Session resumption failure, age outside tolerance window, too young." \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=5" \ - "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 1" \ - -S "sent selected_identity:" \ - -s "key exchange mode: ephemeral" \ - -S "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: psk$" \ - -S "ticket is not authentic" \ - -S "ticket is expired" \ - -S "Invalid ticket start time" \ - -S "Ticket age exceeds limitation" \ - -s "Ticket age outside tolerance window" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Session resumption failure, age outside tolerance window, too old." \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=6" \ - "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 1" \ - -S "sent selected_identity:" \ - -s "key exchange mode: ephemeral" \ - -S "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: psk$" \ - -S "ticket is not authentic" \ - -S "ticket is expired" \ - -S "Invalid ticket start time" \ - -S "Ticket age exceeds limitation" \ - -s "Ticket age outside tolerance window" - -requires_gnutls_tls1_3 -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED -run_test "TLS 1.3: G->m: ephemeral_all/psk, fail, no common kex mode" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ - "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ - --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ - localhost" \ - 1 \ - -s "found psk key exchange modes extension" \ - -s "found pre_shared_key extension" \ - -s "Found PSK_EPHEMERAL KEX MODE" \ - -S "Found PSK KEX MODE" \ - -S "key exchange mode: psk$" \ - -S "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: ephemeral" +# DO NOT ADD NEW TEST CASES INTO THIS FILE. The left cases can be generated by +# scripts in future(#6280) requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C diff --git a/tests/opt-testcases/tls13-misc.sh b/tests/opt-testcases/tls13-misc.sh index 661b3500b1..4ad6faa48f 100755 --- a/tests/opt-testcases/tls13-misc.sh +++ b/tests/opt-testcases/tls13-misc.sh @@ -18,6 +18,220 @@ # limitations under the License. # +requires_gnutls_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + +run_test "TLS 1.3: PSK: No valid ciphersuite. G->m" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ + "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-CIPHER-ALL:+AES-256-GCM:+AEAD:+SHA384:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ + --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ + localhost" \ + 1 \ + -s "found psk key exchange modes extension" \ + -s "found pre_shared_key extension" \ + -s "Found PSK_EPHEMERAL KEX MODE" \ + -s "Found PSK KEX MODE" \ + -s "No matched ciphersuite" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + +run_test "TLS 1.3: PSK: No valid ciphersuite. O->m" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ + "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -ciphersuites TLS_AES_256_GCM_SHA384\ + -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ + 1 \ + -s "found psk key exchange modes extension" \ + -s "found pre_shared_key extension" \ + -s "Found PSK_EPHEMERAL KEX MODE" \ + -s "Found PSK KEX MODE" \ + -s "No matched ciphersuite" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Multiple PSKs: valid ticket, reconnect with ticket" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8" \ + "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 2" \ + -s "sent selected_identity: 0" \ + -s "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -S "key exchange mode: ephemeral$" \ + -S "ticket is not authentic" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Multiple PSKs: invalid ticket, reconnect with PSK" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=1" \ + "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 2" \ + -s "sent selected_identity: 1" \ + -s "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -S "key exchange mode: ephemeral$" \ + -s "ticket is not authentic" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Session resumption failure, ticket authentication failed." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=1" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -s "ticket is not authentic" \ + -S "ticket is expired" \ + -S "Invalid ticket start time" \ + -S "Ticket age exceeds limitation" \ + -S "Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Session resumption failure, ticket expired." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=2" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -S "ticket is not authentic" \ + -s "ticket is expired" \ + -S "Invalid ticket start time" \ + -S "Ticket age exceeds limitation" \ + -S "Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Session resumption failure, invalid start time." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=3" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -S "ticket is not authentic" \ + -S "ticket is expired" \ + -s "Invalid ticket start time" \ + -S "Ticket age exceeds limitation" \ + -S "Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Session resumption failure, ticket expired. too old" \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=4" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -S "ticket is not authentic" \ + -S "ticket is expired" \ + -S "Invalid ticket start time" \ + -s "Ticket age exceeds limitation" \ + -S "Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Session resumption failure, age outside tolerance window, too young." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=5" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -S "ticket is not authentic" \ + -S "ticket is expired" \ + -S "Invalid ticket start time" \ + -S "Ticket age exceeds limitation" \ + -s "Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Session resumption failure, age outside tolerance window, too old." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=6" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -S "ticket is not authentic" \ + -S "ticket is expired" \ + -S "Invalid ticket start time" \ + -S "Ticket age exceeds limitation" \ + -s "Ticket age outside tolerance window" + +requires_gnutls_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +run_test "TLS 1.3: G->m: ephemeral_all/psk, fail, no common kex mode" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ + "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ + --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ + localhost" \ + 1 \ + -s "found psk key exchange modes extension" \ + -s "found pre_shared_key extension" \ + -s "Found PSK_EPHEMERAL KEX MODE" \ + -S "Found PSK KEX MODE" \ + -S "key exchange mode: psk$" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: ephemeral" + requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C \ MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ From ab45425623fa487e423070df499017e65a210c0a Mon Sep 17 00:00:00 2001 From: Moritz Fischer Date: Tue, 8 Nov 2022 14:55:32 -0800 Subject: [PATCH 1010/1028] include: mbedtls: Add missing private_access header This adds a missing private access header. Signed-off-by: Moritz Fischer --- include/mbedtls/lms.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 5e03d9b5f9..fe87d40a5a 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -30,6 +30,7 @@ #include #include +#include "mbedtls/private_access.h" #include "mbedtls/build_info.h" #define MBEDTLS_ERR_LMS_BAD_INPUT_DATA -0x0011 /**< Bad data has been input to an LMS function */ From 0b7e07904e6c325c6cb1a581e1cb3925e792296a Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 9 Nov 2022 10:45:15 +0100 Subject: [PATCH 1011/1028] Forbid empty mpi_core in test data This way static analyzers have a chance of knowing we don't expect the bignum functions to support empty inputs. As things are, Coverity keeps complaining about it. Signed-off-by: Gilles Peskine --- tests/src/helpers.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/src/helpers.c b/tests/src/helpers.c index b7c83646c1..cc23fd7c4d 100644 --- a/tests/src/helpers.c +++ b/tests/src/helpers.c @@ -357,8 +357,12 @@ int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, size_t hex_len = strlen( input ); size_t byte_len = ( hex_len + 1 ) / 2; *plimbs = CHARS_TO_LIMBS( byte_len ); + + /* A core bignum is not allowed to be empty. Forbid it as test data, + * this way static analyzers have a chance of knowing we don't expect + * the bignum functions to support empty inputs. */ if( *plimbs == 0 ) - return( 0 ); + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); *pX = mbedtls_calloc( *plimbs, sizeof( **pX ) ); if( *pX == NULL ) From 95b5addcd63dfccd6ac7470983bbdefa36e9c255 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 9 Nov 2022 11:18:38 +0100 Subject: [PATCH 1012/1028] Don't test mbedtls_mpi_core_lt_ct with 0 limbs A core MPI must have at least 1 limb. We can no longer test with 0 limbs, and we don't need to anyway, so don't try. Signed-off-by: Gilles Peskine --- library/constant_time_internal.h | 1 + tests/suites/test_suite_bignum_core.misc.data | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/library/constant_time_internal.h b/library/constant_time_internal.h index 9cc63c2308..1e4a3ab0be 100644 --- a/library/constant_time_internal.h +++ b/library/constant_time_internal.h @@ -138,6 +138,7 @@ unsigned mbedtls_ct_mpi_uint_lt( const mbedtls_mpi_uint x, * \param B The right-hand MPI. This must point to an array of limbs * with the same allocated length as \p A. * \param limbs The number of limbs in \p A and \p B. + * This must not be 0. * * \return The result of the comparison: * \c 1 if \p A is less than \p B. diff --git a/tests/suites/test_suite_bignum_core.misc.data b/tests/suites/test_suite_bignum_core.misc.data index 30c767c742..62480e47f7 100644 --- a/tests/suites/test_suite_bignum_core.misc.data +++ b/tests/suites/test_suite_bignum_core.misc.data @@ -167,9 +167,6 @@ mpi_core_lt_ct:"2B5":"2B4":0 mbedtls_mpi_core_lt_ct: xy (63 bit x, y first byte greater) mpi_core_lt_ct:"7FFFFFFFFFFFFFFF":"00000000000000FF":0 From 91e35e3c32426387541f176f2d9320d3514b3564 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 9 Nov 2022 11:45:29 +0000 Subject: [PATCH 1013/1028] Enable mpi_mod_int test case to take full-range MPI integers Also add commented-out test cases that currently fail Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_bignum.function | 37 +++++++++++++++++----- tests/suites/test_suite_bignum.misc.data | 40 +++++++++++++++++------- 2 files changed, 58 insertions(+), 19 deletions(-) diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index 4cec0a7c71..40b23fe63d 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -959,24 +959,47 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_int( char * input_X, int input_Y, - int input_A, int div_result ) +void mpi_mod_int( char * input_X, char * input_Y, + char * input_A, int mod_result ) { mbedtls_mpi X; + mbedtls_mpi Y; + mbedtls_mpi A; int res; mbedtls_mpi_uint r; - mbedtls_mpi_init( &X ); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - res = mbedtls_mpi_mod_int( &r, &X, input_Y ); - TEST_ASSERT( res == div_result ); + mbedtls_mpi_init( &X ); + mbedtls_mpi_init( &Y ); + mbedtls_mpi_init( &A ); + + /* We use MPIs to read Y and A since the test framework limits us to + * ints, so we can't have 64-bit values */ + TEST_EQUAL( mbedtls_test_read_mpi( &X, input_X ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &Y, input_Y ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &A, input_A ), 0 ); + + TEST_EQUAL( Y.n, 1 ); + TEST_EQUAL( A.n, 1 ); + + /* Convert the MPIs for Y and A to signed mbedtls_mpi_uints */ + mbedtls_mpi_uint y = Y.p[0]; + if( Y.s == -1 ) + y = -y; + mbedtls_mpi_uint a = A.p[0]; + if( A.s == -1 ) + a = -a; + + res = mbedtls_mpi_mod_int( &r, &X, y ); + TEST_EQUAL( res, mod_result ); if( res == 0 ) { - TEST_ASSERT( r == (mbedtls_mpi_uint) input_A ); + TEST_EQUAL( r, a ); } exit: mbedtls_mpi_free( &X ); + mbedtls_mpi_free( &Y ); + mbedtls_mpi_free( &A ); } /* END_CASE */ diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index 29ba4ab46d..70b4998e28 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1205,40 +1205,56 @@ Test mbedtls_mpi_mod_mpi: 0 (null) % -1 mpi_mod_mpi:"":"-1":"":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_mod_int #1 -mpi_mod_int:"3e8":13:12:0 +mpi_mod_int:"3e8":"d":"c":0 Base test mbedtls_mpi_mod_int #2 (Divide by zero) -mpi_mod_int:"3e8":0:0:MBEDTLS_ERR_MPI_DIVISION_BY_ZERO +mpi_mod_int:"3e8":"0":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Base test mbedtls_mpi_mod_int #3 -mpi_mod_int:"-3e8":13:1:0 +mpi_mod_int:"-3e8":"d":"1":0 Base test mbedtls_mpi_mod_int #4 (Negative modulo) -mpi_mod_int:"3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_mod_int:"3e8":"-d":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_mod_int #5 (Negative modulo) -mpi_mod_int:"-3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_mod_int:"-3e8":"-d":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_mod_int #6 (By 1) -mpi_mod_int:"3e8":1:0:0 +mpi_mod_int:"3e8":"1":"0":0 Base test mbedtls_mpi_mod_int #7 (By 2) -mpi_mod_int:"3e9":2:1:0 +mpi_mod_int:"3e9":"2":"1":0 Base test mbedtls_mpi_mod_int #8 (By 2) -mpi_mod_int:"3e8":2:0:0 +mpi_mod_int:"3e8":"2":"0":0 Test mbedtls_mpi_mod_int: 0 (null) % 1 -mpi_mod_int:"":1:0:0 +mpi_mod_int:"":"1":"0":0 Test mbedtls_mpi_mod_int: 0 (null) % 2 -mpi_mod_int:"":2:0:0 +mpi_mod_int:"":"2":"0":0 Test mbedtls_mpi_mod_int: 0 (null) % -1 -mpi_mod_int:"":-1:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_mod_int:"":"-1":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Test mbedtls_mpi_mod_int: 0 (null) % -2 -mpi_mod_int:"":-2:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_mod_int:"":"-2":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +# CURRENTLY FAILS +#Test mbedtls_mpi_mod_int: 230772460340063000000100500000300000010 % 5178236083361335880 -> 3386266129388798810 +#depends_on:MBEDTLS_HAVE_INT64 +#mpi_mod_int:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA4847DCCA48":"2EFE6F1A7D28035A":0 + +Test mbedtls_mpi_mod_mpi: 230772460340063000000100500000300000010 % 5178236083361335880 -> 3386266129388798810 +mpi_mod_mpi:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA4847DCCA48":"2EFE6F1A7D28035A":0 + +# CURRENTLY FAILS WHEN MPIS ARE 32-BIT: WHEN FIXED, REMOVE "depends_on" LINE +Test mbedtls_mpi_mod_int: 230772460340063000000100500000300000010 % 1205652040 -> 3644370 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_int:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA48":"379BD2":0 + +Test mbedtls_mpi_mod_mpi: 230772460340063000000100500000300000010 % 1205652040 -> 3644370 +mpi_mod_mpi:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA48":"379BD2":0 Base test mbedtls_mpi_exp_mod #1 mpi_exp_mod:"17":"d":"1d":"18":0 From 97be6a913ecf7d4436ca7bf923958b5bb5191421 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 9 Nov 2022 22:43:31 +0800 Subject: [PATCH 1014/1028] fix various issues - typo error - replace `ssl->hanshake` with handshake Signed-off-by: Jerry Yu --- library/ssl_client.c | 2 +- library/ssl_debug_helpers.h | 4 ++-- library/ssl_tls.c | 2 +- library/ssl_tls13_client.c | 9 ++++----- library/ssl_tls13_generic.c | 2 +- library/ssl_tls13_server.c | 2 +- tests/opt-testcases/tls13-kex-modes.sh | 2 +- 7 files changed, 11 insertions(+), 12 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index b226caffff..0f0ea1dc52 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -676,7 +676,7 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) MBEDTLS_SSL_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_CLIENT_HELLO, ssl->handshake->sent_extensions ); + 3, MBEDTLS_SSL_HS_CLIENT_HELLO, handshake->sent_extensions ); #endif *out_len = p - buf; diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index ccdda2a0d6..4412f8e213 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -55,9 +55,9 @@ void mbedtls_ssl_print_extension( const mbedtls_ssl_context *ssl, int hs_msg_type, unsigned int extension_type, const char *extra_msg0, const char *extra_msg1 ); -#define MBEDTLS_SSL_PRINT_EXTS( level, hs_msg_type, extension_mask ) \ +#define MBEDTLS_SSL_PRINT_EXTS( level, hs_msg_type, extensions_mask ) \ mbedtls_ssl_print_extensions( ssl, level, __FILE__, __LINE__, \ - hs_msg_type, extension_mask, NULL ) + hs_msg_type, extensions_mask, NULL ) #define MBEDTLS_SSL_PRINT_EXT( level, hs_msg_type, extension_type, extra ) \ mbedtls_ssl_print_extension( ssl, level, __FILE__, __LINE__, \ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index ea8464f0c8..20648a1667 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -754,7 +754,7 @@ void mbedtls_ssl_print_extensions( const mbedtls_ssl_context *ssl, { mbedtls_ssl_print_extension( ssl, level, file, line, hs_msg_type, extension_type_table[i], - extensions_mask & ( 1 << i ) ? "exists" : "does not exists", extra ); + extensions_mask & ( 1 << i ) ? "exists" : "does not exist", extra ); } } diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 364e886bca..9940a0e5ea 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1742,8 +1742,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_PRINT_EXTS( - 3, hs_msg_type, ssl->handshake->received_extensions ); + MBEDTLS_SSL_PRINT_EXTS( 3, hs_msg_type, handshake->received_extensions ); cleanup: @@ -2036,7 +2035,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, - ssl->handshake->received_extensions ); + handshake->received_extensions ); /* Check that we consumed all the message. */ if( p != end ) @@ -2225,7 +2224,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, - ssl->handshake->received_extensions ); + handshake->received_extensions ); /* Check that we consumed all the message. */ if( p != end ) @@ -2517,7 +2516,7 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, - ssl->handshake->received_extensions ); + handshake->received_extensions ); return( 0 ); } diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index a39949c1cd..f854998893 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -547,7 +547,7 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE, - ssl->handshake->received_extensions ); + handshake->received_extensions ); } exit: diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 597fbb7e63..3cd03108f6 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -1624,7 +1624,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_CLIENT_HELLO, - ssl->handshake->received_extensions ); + handshake->received_extensions ); mbedtls_ssl_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 2681f61f17..974d513d8e 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -18,7 +18,7 @@ # limitations under the License. # -# DO NOT ADD NEW TEST CASES INTO THIS FILE. The left cases can be generated by +# DO NOT ADD NEW TEST CASES INTO THIS FILE. The left cases will be generated by # scripts in future(#6280) requires_gnutls_tls1_3 From 360f8e442971fcb8f48820d6138ee4b8405befb9 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Wed, 9 Nov 2022 17:27:33 +0000 Subject: [PATCH 1015/1028] Minor improvements to test code script Signed-off-by: David Horstmann --- tests/scripts/generate_test_code.py | 65 +++++++++++++++-------------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/tests/scripts/generate_test_code.py b/tests/scripts/generate_test_code.py index 6d65986c88..938f24cf4f 100755 --- a/tests/scripts/generate_test_code.py +++ b/tests/scripts/generate_test_code.py @@ -126,33 +126,39 @@ code that is generated or read from helpers and platform files. This script replaces following fields in the template and generates the test source file: -__MBEDTLS_TEST_TEMPLATE__TEST_COMMON_HELPERS <-- All common code from helpers.function - is substituted here. -__MBEDTLS_TEST_TEMPLATE__FUNCTIONS_CODE <-- Test functions are substituted here - from the input test_suit_xyz.function - file. C preprocessor checks are generated - for the build dependencies specified - in the input file. This script also - generates wrappers for the test - functions with code to expand the - string parameters read from the data - file. -__MBEDTLS_TEST_TEMPLATE__EXPRESSION_CODE <-- This script enumerates the - expressions in the .data file and - generates code to handle enumerated - expression Ids and return the values. -__MBEDTLS_TEST_TEMPLATE__DEP_CHECK_CODE <-- This script enumerates all - build dependencies and generate - code to handle enumerated build - dependency Id and return status: if - the dependency is defined or not. -__MBEDTLS_TEST_TEMPLATE__DISPATCH_CODE <-- This script enumerates the functions - specified in the input test data file - and generates the initializer for the - function table in the template - file. -__MBEDTLS_TEST_TEMPLATE__PLATFORM_CODE <-- Platform specific setup and test - dispatch code. +__MBEDTLS_TEST_TEMPLATE__TEST_COMMON_HELPERS + All common code from helpers.function + is substituted here. +__MBEDTLS_TEST_TEMPLATE__FUNCTIONS_CODE + Test functions are substituted here + from the input test_suit_xyz.function + file. C preprocessor checks are generated + for the build dependencies specified + in the input file. This script also + generates wrappers for the test + functions with code to expand the + string parameters read from the data + file. +__MBEDTLS_TEST_TEMPLATE__EXPRESSION_CODE + This script enumerates the + expressions in the .data file and + generates code to handle enumerated + expression Ids and return the values. +__MBEDTLS_TEST_TEMPLATE__DEP_CHECK_CODE + This script enumerates all + build dependencies and generate + code to handle enumerated build + dependency Id and return status: if + the dependency is defined or not. +__MBEDTLS_TEST_TEMPLATE__DISPATCH_CODE + This script enumerates the functions + specified in the input test data file + and generates the initializer for the + function table in the template + file. +__MBEDTLS_TEST_TEMPLATE__PLATFORM_CODE + Platform specific setup and test + dispatch code. """ @@ -985,10 +991,7 @@ def write_test_source_file(template_file, c_file, snippets): braced = "(?P(?!))" # If not already matched, a "__MBEDTLS_TEST_TEMPLATE__" prefix is invalid. invalid = "(?P__MBEDTLS_TEST_TEMPLATE__)" - placeholder_pattern = re.compile(escaped \ - + "|" + named \ - + "|" + braced \ - + "|" + invalid) + placeholder_pattern = re.compile("|".join([escaped, named, braced, invalid])) with open(template_file, 'r') as template_f, open(c_file, 'w') as c_f: for line_no, line in enumerate(template_f.readlines(), 1): From e9c86a100a90196e2560bc1614c53e68b3d71d2a Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 9 Nov 2022 11:46:47 +0000 Subject: [PATCH 1016/1028] bignum_mod_raw.py: Added BignumModRawOperation This patch is adding a basic instantance of `BignumModRawOperation` and creates an `BignumModRawOperationArchSplit` class, copying over the implementation of `BignumCoreRawOperationArchSplit`. Signed-off-by: Minos Galanakis --- scripts/mbedtls_dev/bignum_mod_raw.py | 38 +++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 2e059b26e8..1127ced8d8 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -15,8 +15,11 @@ # limitations under the License. from abc import ABCMeta +from typing import Dict, Iterator, List +from . import test_case from . import test_data_generation +from . import bignum_common class BignumModRawTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method @@ -48,7 +51,42 @@ class BignumModRawTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): # END MERGE SLOT 6 # BEGIN MERGE SLOT 7 +class BignumModRawOperation(bignum_common.OperationCommon, BignumModRawTarget, metaclass=ABCMeta): + #pylint: disable=abstract-method + pass +class BignumModRawOperationArchSplit(BignumModRawOperation): + #pylint: disable=abstract-method + """Common features for bignum core operations where the result depends on + the limb size.""" + + def __init__(self, val_a: str, val_b: str, bits_in_limb: int) -> None: + super().__init__(val_a, val_b) + bound_val = max(self.int_a, self.int_b) + self.bits_in_limb = bits_in_limb + self.bound = bignum_common.bound_mpi(bound_val, self.bits_in_limb) + limbs = bignum_common.limbs_mpi(bound_val, self.bits_in_limb) + byte_len = limbs * self.bits_in_limb // 8 + self.hex_digits = 2 * byte_len + if self.bits_in_limb == 32: + self.dependencies = ["MBEDTLS_HAVE_INT32"] + elif self.bits_in_limb == 64: + self.dependencies = ["MBEDTLS_HAVE_INT64"] + else: + raise ValueError("Invalid number of bits in limb!") + self.arg_a = self.arg_a.zfill(self.hex_digits) + self.arg_b = self.arg_b.zfill(self.hex_digits) + self.arg_a_int = bignum_common.hex_to_int(self.arg_a) + self.arg_b_int = bignum_common.hex_to_int(self.arg_b) + + def pad_to_limbs(self, val) -> str: + return "{:x}".format(val).zfill(self.hex_digits) + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + for a_value, b_value in cls.get_value_pairs(): + yield cls(a_value, b_value, 32).create_test_case() + yield cls(a_value, b_value, 64).create_test_case() # END MERGE SLOT 7 # BEGIN MERGE SLOT 8 From a461ece8104d1e50b0d9e041c63fb0218ca265e0 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 9 Nov 2022 12:36:02 +0000 Subject: [PATCH 1017/1028] bignum_mod_raw.py: Refactoring `BignumModRawOperation` This patch modifies the BignumModRawOperation class to provide special access to key members commonly used in tests. It binds the module's getters to conversion functions which enable automatic conversions such as: * hex to int. * zero padding hex strings. * common Montgomery constants such as R, R^2 and R^01 are now be calculated upon access. class `BignumModRawOperationArchSplit` is also updated to utilise the new design. Signed-off-by: Minos Galanakis --- scripts/mbedtls_dev/bignum_mod_raw.py | 83 +++++++++++++++++++-------- 1 file changed, 59 insertions(+), 24 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 1127ced8d8..19942ed160 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -53,40 +53,75 @@ class BignumModRawTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): # BEGIN MERGE SLOT 7 class BignumModRawOperation(bignum_common.OperationCommon, BignumModRawTarget, metaclass=ABCMeta): #pylint: disable=abstract-method - pass + """Target for bignum mod_raw test case generation.""" + + def __init__(self, val_n: str, val_a: str, val_b: str = "0", bits_in_limb: int = 64) -> None: + super().__init__(val_a=val_a, val_b=val_b) + self.val_n = val_n + self.bits_in_limb = bits_in_limb + + @property + def int_n(self) -> int: + return bignum_common.hex_to_int(self.val_n) + + @property + def boundary(self) -> int: + data_in = [self.int_a, self.int_b, self.int_n] + return max([n for n in data_in if n is not None]) + + @property + def limbs(self) -> int: + return bignum_common.limbs_mpi(self.boundary, self.bits_in_limb) + + @property + def hex_digits(self) -> int: + return 2 * (self.limbs * self.bits_in_limb // 8) + + @property + def hex_n(self) -> str: + return "{:x}".format(self.int_n).zfill(self.hex_digits) + + @property + def hex_a(self) -> str: + return "{:x}".format(self.int_a).zfill(self.hex_digits) + + @property + def hex_b(self) -> str: + return "{:x}".format(self.int_b).zfill(self.hex_digits) + + @property + def r(self) -> int: # pylint: disable=invalid-name + l = bignum_common.limbs_mpi(self.int_n, self.bits_in_limb) + return bignum_common.bound_mpi_limbs(l, self.bits_in_limb) + + @property + def r_inv(self) -> int: + return bignum_common.invmod(self.r, self.int_n) + + @property + def r_sqrt(self) -> int: # pylint: disable=invalid-name + return pow(self.r, 2) class BignumModRawOperationArchSplit(BignumModRawOperation): #pylint: disable=abstract-method - """Common features for bignum core operations where the result depends on + """Common features for bignum mod raw operations where the result depends on the limb size.""" - def __init__(self, val_a: str, val_b: str, bits_in_limb: int) -> None: - super().__init__(val_a, val_b) - bound_val = max(self.int_a, self.int_b) - self.bits_in_limb = bits_in_limb - self.bound = bignum_common.bound_mpi(bound_val, self.bits_in_limb) - limbs = bignum_common.limbs_mpi(bound_val, self.bits_in_limb) - byte_len = limbs * self.bits_in_limb // 8 - self.hex_digits = 2 * byte_len - if self.bits_in_limb == 32: - self.dependencies = ["MBEDTLS_HAVE_INT32"] - elif self.bits_in_limb == 64: - self.dependencies = ["MBEDTLS_HAVE_INT64"] - else: - raise ValueError("Invalid number of bits in limb!") - self.arg_a = self.arg_a.zfill(self.hex_digits) - self.arg_b = self.arg_b.zfill(self.hex_digits) - self.arg_a_int = bignum_common.hex_to_int(self.arg_a) - self.arg_b_int = bignum_common.hex_to_int(self.arg_b) + limb_sizes = [32, 64] # type: List[int] - def pad_to_limbs(self, val) -> str: - return "{:x}".format(val).zfill(self.hex_digits) + def __init__(self, val_n: str, val_a: str, val_b: str = "0", bits_in_limb: int = 64) -> None: + super().__init__(val_n=val_n, val_a=val_a, val_b=val_b, bits_in_limb=bits_in_limb) + + if bits_in_limb not in self.limb_sizes: + raise ValueError("Invalid number of bits in limb!") + + self.dependencies = ["MBEDTLS_HAVE_INT{:d}".format(bits_in_limb)] @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: for a_value, b_value in cls.get_value_pairs(): - yield cls(a_value, b_value, 32).create_test_case() - yield cls(a_value, b_value, 64).create_test_case() + for bil in cls.limb_sizes: + yield cls(a_value, b_value, bits_in_limb=bil).create_test_case() # END MERGE SLOT 7 # BEGIN MERGE SLOT 8 From 5566eff65740025802810e55cdaad026d563c34c Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Mon, 7 Nov 2022 16:02:21 +0000 Subject: [PATCH 1018/1028] generate_bignum_tests: Enabled BignumModRaw automatic generation Signed-off-by: Minos Galanakis --- tests/scripts/generate_bignum_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 4ac9210e71..a105203b04 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -66,7 +66,7 @@ from mbedtls_dev import bignum_common # Import modules containing additional test classes # Test function classes in these modules will be registered by # the framework -from mbedtls_dev import bignum_core # pylint: disable=unused-import +from mbedtls_dev import bignum_core, bignum_mod_raw # pylint: disable=unused-import class BignumTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method From 855c228b29ccdb6723608e6089565be318fabd9a Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 10 Nov 2022 11:33:25 +0000 Subject: [PATCH 1019/1028] bignum_mod_raw.py: Moved Classes outside of slots This patch moves `BignumModRawOperation` and `BignumModRawOperationArchSplit` outside of the scaffolding merge slot. It also renames `r_sqrt` property to `r2`. Signed-off-by: Minos Galanakis --- scripts/mbedtls_dev/bignum_mod_raw.py | 53 ++++++++++++++------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 19942ed160..1465e3ed75 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -26,31 +26,6 @@ class BignumModRawTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): """Target for bignum mod_raw test case generation.""" target_basename = 'test_suite_bignum_mod_raw.generated' -# BEGIN MERGE SLOT 1 - -# END MERGE SLOT 1 - -# BEGIN MERGE SLOT 2 - -# END MERGE SLOT 2 - -# BEGIN MERGE SLOT 3 - -# END MERGE SLOT 3 - -# BEGIN MERGE SLOT 4 - -# END MERGE SLOT 4 - -# BEGIN MERGE SLOT 5 - -# END MERGE SLOT 5 - -# BEGIN MERGE SLOT 6 - -# END MERGE SLOT 6 - -# BEGIN MERGE SLOT 7 class BignumModRawOperation(bignum_common.OperationCommon, BignumModRawTarget, metaclass=ABCMeta): #pylint: disable=abstract-method """Target for bignum mod_raw test case generation.""" @@ -99,7 +74,7 @@ class BignumModRawOperation(bignum_common.OperationCommon, BignumModRawTarget, m return bignum_common.invmod(self.r, self.int_n) @property - def r_sqrt(self) -> int: # pylint: disable=invalid-name + def r2(self) -> int: # pylint: disable=invalid-name return pow(self.r, 2) class BignumModRawOperationArchSplit(BignumModRawOperation): @@ -122,6 +97,32 @@ class BignumModRawOperationArchSplit(BignumModRawOperation): for a_value, b_value in cls.get_value_pairs(): for bil in cls.limb_sizes: yield cls(a_value, b_value, bits_in_limb=bil).create_test_case() +# BEGIN MERGE SLOT 1 + +# END MERGE SLOT 1 + +# BEGIN MERGE SLOT 2 + +# END MERGE SLOT 2 + +# BEGIN MERGE SLOT 3 + +# END MERGE SLOT 3 + +# BEGIN MERGE SLOT 4 + +# END MERGE SLOT 4 + +# BEGIN MERGE SLOT 5 + +# END MERGE SLOT 5 + +# BEGIN MERGE SLOT 6 + +# END MERGE SLOT 6 + +# BEGIN MERGE SLOT 7 + # END MERGE SLOT 7 # BEGIN MERGE SLOT 8 From 9feb19f98dedd0aa516c38dd83e7f6bccd3fa052 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 10 Nov 2022 12:05:55 +0000 Subject: [PATCH 1020/1028] Use mbedtls_mpi_sint not mbedtls_mpi_uint in mpi_mod_int test Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_bignum.function | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index 40b23fe63d..5c3d776f09 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -981,11 +981,21 @@ void mpi_mod_int( char * input_X, char * input_Y, TEST_EQUAL( Y.n, 1 ); TEST_EQUAL( A.n, 1 ); - /* Convert the MPIs for Y and A to signed mbedtls_mpi_uints */ - mbedtls_mpi_uint y = Y.p[0]; + /* Convert the MPIs for Y and A to (signed) mbedtls_mpi_sints */ + + /* Since we're converting sign+magnitude to two's complement, we lose one + * bit of value in the output. This means there are some values we can't + * represent, e.g. (hex) -A0000000 on 32-bit systems. These are technically + * invalid test cases, so could be considered "won't happen", but they are + * easy to test for, and this helps guard against human error. */ + + mbedtls_mpi_sint y = (mbedtls_mpi_sint) Y.p[0]; + TEST_ASSERT( y >= 0 ); /* If y < 0 here, we can't make negative y */ if( Y.s == -1 ) y = -y; - mbedtls_mpi_uint a = A.p[0]; + + mbedtls_mpi_sint a = (mbedtls_mpi_sint) A.p[0]; + TEST_ASSERT( a >= 0 ); /* Same goes for a */ if( A.s == -1 ) a = -a; From 163d8952b391f00665c3badd7357e6cb1bcfb172 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 10 Nov 2022 12:17:36 +0000 Subject: [PATCH 1021/1028] Add additional (would fail) test cases for mpi_mod_int with 0 remainder Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_bignum.misc.data | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index 70b4998e28..0b8aa334ac 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1240,7 +1240,7 @@ mpi_mod_int:"":"-1":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Test mbedtls_mpi_mod_int: 0 (null) % -2 mpi_mod_int:"":"-2":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE -# CURRENTLY FAILS +# CURRENTLY FAILS - SEE GITHUB ISSUE #6540 #Test mbedtls_mpi_mod_int: 230772460340063000000100500000300000010 % 5178236083361335880 -> 3386266129388798810 #depends_on:MBEDTLS_HAVE_INT64 #mpi_mod_int:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA4847DCCA48":"2EFE6F1A7D28035A":0 @@ -1248,7 +1248,15 @@ mpi_mod_int:"":"-2":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Test mbedtls_mpi_mod_mpi: 230772460340063000000100500000300000010 % 5178236083361335880 -> 3386266129388798810 mpi_mod_mpi:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA4847DCCA48":"2EFE6F1A7D28035A":0 -# CURRENTLY FAILS WHEN MPIS ARE 32-BIT: WHEN FIXED, REMOVE "depends_on" LINE +# CURRENTLY FAILS - SEE GITHUB ISSUE #6540 +#Test mbedtls_mpi_mod_int: 230772460340062999996714233870911201200 % 5178236083361335880 -> 0 +#depends_on:MBEDTLS_HAVE_INT64 +#mpi_mod_int:"AD9D28BF6C4E98FDC2584FEF03A6DFB0":"47DCCA4847DCCA48":"0":0 + +Test mbedtls_mpi_mod_mpi: 230772460340062999996714233870911201200 % 5178236083361335880 -> 0 +mpi_mod_mpi:"AD9D28BF6C4E98FDC2584FEF03A6DFB0":"47DCCA4847DCCA48":"0":0 + +# CURRENTLY FAILS WHEN MPIS ARE 32-BIT (ISSUE #6450): WHEN FIXED, REMOVE "depends_on" LINE Test mbedtls_mpi_mod_int: 230772460340063000000100500000300000010 % 1205652040 -> 3644370 depends_on:MBEDTLS_HAVE_INT64 mpi_mod_int:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA48":"379BD2":0 @@ -1256,6 +1264,14 @@ mpi_mod_int:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA48":"379BD2":0 Test mbedtls_mpi_mod_mpi: 230772460340063000000100500000300000010 % 1205652040 -> 3644370 mpi_mod_mpi:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA48":"379BD2":0 +# CURRENTLY FAILS WHEN MPIS ARE 32-BIT (ISSUE #6450): WHEN FIXED, REMOVE "depends_on" LINE +Test mbedtls_mpi_mod_int: 230772460340063000000100500000296355640 % 1205652040 -> 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_int:"AD9D28BF6C4E98FDF156BF0980974738":"47DCCA48":"0":0 + +Test mbedtls_mpi_mod_mpi: 230772460340063000000100500000296355640 % 1205652040 -> 0 +mpi_mod_mpi:"AD9D28BF6C4E98FDF156BF0980974738":"47DCCA48":"0":0 + Base test mbedtls_mpi_exp_mod #1 mpi_exp_mod:"17":"d":"1d":"18":0 From 5ad4a93596ef3b7ec4d70ade7a30a18149f09efc Mon Sep 17 00:00:00 2001 From: Hanno Becker Date: Tue, 9 Aug 2022 14:45:53 +0100 Subject: [PATCH 1022/1028] bignum_mod_raw: Added conversion methods for internal/public data representation Signed-off-by: Minos Galanakis --- library/bignum_mod_raw.c | 21 +++++++++++++++++++++ library/bignum_mod_raw.h | 18 ++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index a329e86dfb..97f7731c4c 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -127,7 +127,28 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ +int mbedtls_mpi_mod_raw_conv_inv( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *modulus ) +{ + mbedtls_mpi_uint one = 1; + mbedtls_mpi T; + mbedtls_mpi_init( &T ); + mbedtls_mpi_core_montmul( X, X, &one, 1, m->p, m->limbs, + m->rep.mont.mm, T.p ); + mbedtls_mpi_free( &T ); + return( 0 ); +} +int mbedtls_mpi_mod_raw_conv_fwd( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *modulus ) +{ + mbedtls_mpi T; + mbedtls_mpi_init( &T ); + mbedtls_mpi_core_montmul( X, X, m->rep.mont.rr, 1, m->p, m->limbs, + m->rep.mont.mm, T.p ); + mbedtls_mpi_free( &T ); + return( 0 ); +} /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 30648d3cc4..38415f415f 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -163,7 +163,25 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ +/** Convert from internal to public (little endian) data presentation + * + * \param X The address of the MPI. + * \param m The address of a modulus. + * + * \return \c 0 if successful. + */ +int mbedtls_mpi_mod_raw_conv_inv( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *modulus ); +/** Convert from public (little endian) to internal data presentation. + * + * \param X The address of the MPI. + * \param m The address of a modulus. + * + * \return \c 0 if successful. + */ +int mbedtls_mpi_mod_raw_conv_fwd( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *modulus ); /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ From d9299c388e9bb60166c72e943c704a3d079256bd Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Tue, 1 Nov 2022 16:19:07 +0000 Subject: [PATCH 1023/1028] bignum_mod_raw: Refactored Montgomery conversion functions This patch updates the `mbedtls_mpi_mod_raw_conv_xx()` methods as follows: * Renamed for simplicity: conv_fwd -> from_mont_rep, conv_inv -> to_mont_rep. * Uncoupled the dependency on the legaly bignum interface. * `mbedtls_mpi` is no longer used for temporary buffer allocation. Signed-off-by: Minos Galanakis --- library/bignum_mod_raw.c | 42 ++++++++++++++++++++++++++-------------- library/bignum_mod_raw.h | 20 +++++++++++-------- 2 files changed, 39 insertions(+), 23 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 97f7731c4c..b43add77d3 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -127,26 +127,38 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ -int mbedtls_mpi_mod_raw_conv_inv( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *modulus ) +int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *m ) { - mbedtls_mpi_uint one = 1; - mbedtls_mpi T; - mbedtls_mpi_init( &T ); - mbedtls_mpi_core_montmul( X, X, &one, 1, m->p, m->limbs, - m->rep.mont.mm, T.p ); - mbedtls_mpi_free( &T ); + mbedtls_mpi_uint *T; + const size_t t_limbs = m->limbs * 2 + 1; + + if( ( T = (mbedtls_mpi_uint *) mbedtls_calloc( t_limbs, ciL ) ) == NULL ) + return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); + + mbedtls_mpi_core_montmul( X, X, m->rep.mont.rr, m->limbs, m->p, m->limbs, + m->rep.mont.mm, T ); + + mbedtls_platform_zeroize( T, t_limbs * ciL ); + mbedtls_free( T ); return( 0 ); } -int mbedtls_mpi_mod_raw_conv_fwd( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *modulus ) +int mbedtls_mpi_mod_raw_from_mont_rep( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *m ) { - mbedtls_mpi T; - mbedtls_mpi_init( &T ); - mbedtls_mpi_core_montmul( X, X, m->rep.mont.rr, 1, m->p, m->limbs, - m->rep.mont.mm, T.p ); - mbedtls_mpi_free( &T ); + const mbedtls_mpi_uint one = 1; + const size_t t_limbs = m->limbs * 2 + 1; + mbedtls_mpi_uint *T; + + if( ( T = (mbedtls_mpi_uint *) mbedtls_calloc( t_limbs, ciL ) ) == NULL ) + return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); + + mbedtls_mpi_core_montmul( X, X, &one, 1, m->p, m->limbs, + m->rep.mont.mm, T ); + + mbedtls_platform_zeroize( T, t_limbs * ciL ); + mbedtls_free( T ); return( 0 ); } /* END MERGE SLOT 7 */ diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 38415f415f..f738e917e1 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -163,25 +163,29 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ -/** Convert from internal to public (little endian) data presentation +/** Convert an MPI into Montgomery form. * * \param X The address of the MPI. - * \param m The address of a modulus. + * Must have the same number of limbs as \p m. + * \param m The address of the modulus, which gives the size of + * the base `R` = 2^(biL*m->limbs). * * \return \c 0 if successful. */ -int mbedtls_mpi_mod_raw_conv_inv( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *modulus ); +int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *m ); -/** Convert from public (little endian) to internal data presentation. +/** Convert an MPI back from Montgomery representation. * * \param X The address of the MPI. - * \param m The address of a modulus. + * Must have the same number of limbs as \p m. + * \param m The address of the modulus, which gives the size of + * the base `R`= 2^(biL*m->limbs). * * \return \c 0 if successful. */ -int mbedtls_mpi_mod_raw_conv_fwd( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *modulus ); +int mbedtls_mpi_mod_raw_from_mont_rep( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *m ); /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ From 631b491cbf7de025d4a0c670789ab8b5e42f4e8d Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Mon, 7 Nov 2022 15:53:23 +0000 Subject: [PATCH 1024/1028] bignum_tests: Added test for `mbedtls_mpi_mod_raw_to_mont_rep()` Signed-off-by: Minos Galanakis --- .../suites/test_suite_bignum_mod_raw.function | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 4b906751f2..026b49d13c 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -294,7 +294,43 @@ exit: /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ +/* BEGIN_CASE */ +void mpi_mod_raw_to_mont_rep( char * input_N, char * input_A, char * input_X ) +{ + mbedtls_mpi N, A, X; + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &X ); + + /* Read inputs */ + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X, input_X ) ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, X.s ); + TEST_EQUAL( 1, A.s ); + + mbedtls_mpi_mod_modulus_init( &m ); + TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N.p, N.n, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + + TEST_EQUAL(0, mbedtls_mpi_mod_raw_to_mont_rep( A.p ,&m ) ); + + /* Calculated matches expected value */ + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &A, &X ) == 0 ); + + /* Output is +ve (or zero) */ + TEST_EQUAL( 1, A.s ); + +exit: + mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &X ); +} +/* END_CASE */ /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ From df070d660d6eaee91ba0811894ea1d0ccdad8c48 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Tue, 8 Nov 2022 16:19:04 +0000 Subject: [PATCH 1025/1028] bignum_tests: Added test for `mbedtls_mpi_mod_raw_from_mont_rep()` Signed-off-by: Minos Galanakis --- .../suites/test_suite_bignum_mod_raw.function | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 026b49d13c..8536e310ef 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -324,6 +324,44 @@ void mpi_mod_raw_to_mont_rep( char * input_N, char * input_A, char * input_X ) /* Output is +ve (or zero) */ TEST_EQUAL( 1, A.s ); +exit: + mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &X ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_raw_from_mont_rep( char * input_N, char * input_A, char * input_X ) +{ + mbedtls_mpi N, A, X; + mbedtls_mpi_mod_modulus m; + + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &X ); + + /* Read inputs */ + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X, input_X ) ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, X.s ); + TEST_EQUAL( 1, A.s ); + + mbedtls_mpi_mod_modulus_init( &m ); + TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N.p, N.n, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + + TEST_EQUAL(0, mbedtls_mpi_mod_raw_from_mont_rep( A.p ,&m ) ); + + /* Calculated matches expected value */ + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &A, &X ) == 0 ); + + /* Output is +ve (or zero) */ + TEST_EQUAL( 1, A.s ); + exit: mbedtls_mpi_mod_modulus_free( &m ); mbedtls_mpi_free( &N ); From 47691fb75619044716a3a5f9c356bbf595d5fd70 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 10 Nov 2022 09:02:51 +0000 Subject: [PATCH 1026/1028] bignum_tests: Refactored mpi_mod_raw_to/fromt_mont_rep This patch migrates the tests to use the `mbedtls_test_read_mpi_core()`. Signed-off-by: Minos Galanakis --- .../suites/test_suite_bignum_mod_raw.function | 82 +++++++++---------- 1 file changed, 38 insertions(+), 44 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 8536e310ef..d0ffd27b0f 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -297,76 +297,70 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_to_mont_rep( char * input_N, char * input_A, char * input_X ) { - mbedtls_mpi N, A, X; + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *X = NULL; mbedtls_mpi_mod_modulus m; - - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &X ); + size_t n_limbs, a_limbs, x_limbs, x_bytes; /* Read inputs */ - TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X, input_X ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &a_limbs, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &x_limbs, input_X ) ); + x_bytes = x_limbs * sizeof(mbedtls_mpi_uint); - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, X.s ); - TEST_EQUAL( 1, A.s ); + /* Test that input does not require more limbs than modulo */ + TEST_LE_U(a_limbs, n_limbs); mbedtls_mpi_mod_modulus_init( &m ); - TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N.p, N.n, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, + MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); - TEST_EQUAL(0, mbedtls_mpi_mod_raw_to_mont_rep( A.p ,&m ) ); - - /* Calculated matches expected value */ - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &A, &X ) == 0 ); - - /* Output is +ve (or zero) */ - TEST_EQUAL( 1, A.s ); + /* Convert from cannonical into Montgomery representation */ + TEST_EQUAL(0, mbedtls_mpi_mod_raw_to_mont_rep( A, &m ) ); + /* The result matches expected value */ + ASSERT_COMPARE( A, x_bytes, X, x_bytes ); exit: mbedtls_mpi_mod_modulus_free( &m ); - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &X ); + mbedtls_free( N ); + mbedtls_free( A ); + mbedtls_free( X ); } /* END_CASE */ /* BEGIN_CASE */ void mpi_mod_raw_from_mont_rep( char * input_N, char * input_A, char * input_X ) { - mbedtls_mpi N, A, X; + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *X = NULL; mbedtls_mpi_mod_modulus m; - - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &X ); + size_t n_limbs, a_limbs, x_limbs, x_bytes; /* Read inputs */ - TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X, input_X ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &a_limbs, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &x_limbs, input_X ) ); + x_bytes = x_limbs * sizeof(mbedtls_mpi_uint); - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, X.s ); - TEST_EQUAL( 1, A.s ); + /* Test that input does not require more limbs than modulo */ + TEST_LE_U(a_limbs, n_limbs); mbedtls_mpi_mod_modulus_init( &m ); - TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N.p, N.n, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, + MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); - TEST_EQUAL(0, mbedtls_mpi_mod_raw_from_mont_rep( A.p ,&m ) ); - - /* Calculated matches expected value */ - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &A, &X ) == 0 ); - - /* Output is +ve (or zero) */ - TEST_EQUAL( 1, A.s ); + /* Convert from Montgomery into cannonical representation */ + TEST_EQUAL(0, mbedtls_mpi_mod_raw_from_mont_rep( A, &m ) ); + /* The result matches expected value */ + ASSERT_COMPARE( A, x_bytes, X, x_bytes ); exit: mbedtls_mpi_mod_modulus_free( &m ); - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &X ); + mbedtls_free( N ); + mbedtls_free( A ); + mbedtls_free( X ); } /* END_CASE */ /* END MERGE SLOT 7 */ From a252f6b24c95322617059a2ba61bc691cb63df19 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 9 Nov 2022 19:23:53 +0000 Subject: [PATCH 1027/1028] bignum_mod_raw.py: Added BignumModRawConvertToMont This patch adds test class for 'mpi_mod_raw_to_mont_rep()`. Signed-off-by: Minos Galanakis --- scripts/mbedtls_dev/bignum_mod_raw.py | 88 +++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 1465e3ed75..cea7ec78d1 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -122,7 +122,95 @@ class BignumModRawOperationArchSplit(BignumModRawOperation): # END MERGE SLOT 6 # BEGIN MERGE SLOT 7 +class BignumModRawConvertToMont(BignumModRawOperationArchSplit): + """ Test cases for mpi_mod_raw_to_mont_rep(). """ + test_function = "mpi_mod_raw_to_mont_rep" + test_name = "Convert into Mont: " + + test_data_moduli = ["b", + "fd", + "eeff99aa37", + "eeff99aa11", + "800000000005", + "7fffffffffffffff", + "80fe000a10000001", + "25a55a46e5da99c71c7", + "1058ad82120c3a10196bb36229c1", + "7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f" + "18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a" + "98df75154f8c914a282f8b", + "8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63", + "ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f" + "2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a6" + "4d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2" + "deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d" + "6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a0" + "7e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d389" + "8c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6" + "bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3a" + "d4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181d" + "b8896f33bb12e6ef73f12ec5c5ea7a8a337" + ] + + test_input_numbers = ["0", + "1", + "97", + "f5", + "6f5c3", + "745bfe50f7", + "ffa1f9924123", + "334a8b983c79bd", + "5b84f632b58f3461", + "19acd15bc38008e1", + "ffffffffffffffff", + "54ce6a6bb8247fa0427cfc75a6b0599", + "fecafe8eca052f154ce6a6bb8247fa019558bfeecce9bb9", + "a87d7a56fa4bfdc7da42ef798b9cf6843d4c54794698cb14d72" + "851dec9586a319f4bb6d5695acbd7c92e7a42a5ede6972adcbc" + "f68425265887f2d721f462b7f1b91531bac29fa648facb8e3c6" + "1bd5ae42d5a59ba1c89a95897bfe541a8ce1d633b98f379c481" + "6f25e21f6ac49286b261adb4b78274fe5f61c187581f213e84b" + "2a821e341ef956ecd5de89e6c1a35418cd74a549379d2d4594a" + "577543147f8e35b3514e62cf3e89d1156cdc91ab5f4c928fbd6" + "9148c35df5962fed381f4d8a62852a36823d5425f7487c13a12" + "523473fb823aa9d6ea5f42e794e15f2c1a8785cf6b7d51a4617" + "947fb3baf674f74a673cf1d38126983a19ed52c7439fab42c2185" + ] + + descr_tpl = '{} #{} N: \"{}\" A: \"{}\".' + + def result(self) -> List[str]: + return [self.hex_x] + + def arguments(self) -> List[str]: + return [bignum_common.quote_str(n) for n in [self.hex_n, + self.hex_a, + self.hex_x]] + + def description(self) -> str: + return self.descr_tpl.format(self.test_name, + self.count, + self.int_n, + self.int_a) + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + for bil in [32, 64]: + for n in cls.test_data_moduli: + for i in cls.test_input_numbers: + # Skip invalid combinations where A.limbs > N.limbs + if bignum_common.hex_to_int(i) > bignum_common.hex_to_int(n): + continue + yield cls(n, i, bits_in_limb=bil).create_test_case() + + @property + def x(self) -> int: # pylint: disable=invalid-name + return (self.int_a * self.r) % self.int_n + + @property + def hex_x(self) -> str: + return "{:x}".format(self.x).zfill(self.hex_digits) # END MERGE SLOT 7 # BEGIN MERGE SLOT 8 From 50de073c84a5cc0946a87dddc457b3d125cb5ac1 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 9 Nov 2022 19:36:16 +0000 Subject: [PATCH 1028/1028] bignum_mod_raw.py: Added BignumModRawConvertfromMont This patch adds test class for 'mpi_mod_raw_from_mont_rep()`. Signed-off-by: Minos Galanakis --- scripts/mbedtls_dev/bignum_mod_raw.py | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index cea7ec78d1..bd694a6084 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -211,6 +211,37 @@ class BignumModRawConvertToMont(BignumModRawOperationArchSplit): @property def hex_x(self) -> str: return "{:x}".format(self.x).zfill(self.hex_digits) + +class BignumModRawConvertFromMont(BignumModRawConvertToMont): + """ Test cases for mpi_mod_raw_from_mont_rep(). """ + + test_function = "mpi_mod_raw_from_mont_rep" + test_name = "Convert from Mont: " + + test_input_numbers = ["0", + "1", + "3ca", + "539ed428", + "7dfe5c6beb35a2d6", + "dca8de1c2adfc6d7aafb9b48e", + "a7d17b6c4be72f3d5c16bf9c1af6fc933", + "2fec97beec546f9553142ed52f147845463f579", + "378dc83b8bc5a7b62cba495af4919578dce6d4f175cadc4f", + "b6415f2a1a8e48a518345db11f56db3829c8f2c6415ab4a395a" + "b3ac2ea4cbef4af86eb18a84eb6ded4c6ecbfc4b59c2879a675" + "487f687adea9d197a84a5242a5cf6125ce19a6ad2e7341f1c57" + "d43ea4f4c852a51cb63dabcd1c9de2b827a3146a3d175b35bea" + "41ae75d2a286a3e9d43623152ac513dcdea1d72a7da846a8ab3" + "58d9be4926c79cfb287cf1cf25b689de3b912176be5dcaf4d4c" + "6e7cb839a4a3243a6c47c1e2c99d65c59d6fa3672575c2f1ca8" + "de6a32e854ec9d8ec635c96af7679fce26d7d159e4a9da3bd74" + "e1272c376cd926d74fe3fb164a5935cff3d5cdb92b35fe2cea32" + "138a7e6bfbc319ebd1725dacb9a359cbf693f2ecb785efb9d627" + ] + + @property + def x(self): # pylint: disable=invalid-name + return (self.int_a * self.r_inv) % self.int_n # END MERGE SLOT 7 # BEGIN MERGE SLOT 8